From e158cb21f93f1a8b84da9927b0e6a43a0b91e51c Mon Sep 17 00:00:00 2001 From: cproudlock Date: Mon, 3 Aug 2026 15:06:02 -0400 Subject: [PATCH] deps: keep build-machine paths out of the lockfiles The '# via' annotations recorded the absolute path of the temporary file the lockfile was compiled from, which is meaningless to anyone else and does not belong in a published artifact. They now read 'requirements.in', which is where these requirements actually come from. Pins and hashes are unchanged - verified by a hash-checked dry-run install. --- requirements-dev.txt | 78 ++++++++++++++++++++++---------------------- requirements.txt | 76 +++++++++++++++++++++--------------------- 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 3ca9dde..577cb92 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -8,25 +8,25 @@ alembic==1.18.4 \ --hash=sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a \ --hash=sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask-migrate blinker==1.9.0 \ --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask cachelib==0.13.0 \ --hash=sha256:209d8996e3c57595bee274ff97116d1d73c4980b2fd9a34c7846cd07fd2e1a48 \ --hash=sha256:8c8019e53b6302967d4e8329a504acf75e7bc46130291d30188a6e4e58162516 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask-caching certifi==2026.4.22 \ --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # requests cffi==2.1.0 ; platform_python_implementation != 'PyPy' \ --hash=sha256:02cb7ff33ded4f1532476731f89ede53e2e488a8e6205515a82144246ffa7dcc \ @@ -130,7 +130,7 @@ cffi==2.1.0 ; platform_python_implementation != 'PyPy' \ --hash=sha256:fb62edb5bb52cca65fab91a63afa7561607120d26090a7e8fda6fb9f064726da \ --hash=sha256:ff067a8d8d880e7809e4ac88eb009bb848870115317b306666502ccad30b147f # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # cryptography charset-normalizer==3.4.7 \ --hash=sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc \ @@ -263,20 +263,20 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # requests click==8.3.3 \ --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in # flask colorama==0.4.6 ; sys_platform == 'win32' \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # click # pytest coverage==7.15.3 \ @@ -420,25 +420,25 @@ cryptography==50.0.0 \ --hash=sha256:f89831ef99dd7dd169ab06d63a831adb9e20a87aac6d380266bbda5823349169 \ --hash=sha256:fd9192b7b70c573d7f214eb1ae35e00d359f6f5e4b27c7e21e30de1fc6204645 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in dnspython==2.8.0 \ --hash=sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af \ --hash=sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # email-validator email-validator==2.3.0 \ --hash=sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4 \ --hash=sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in flask==3.1.3 \ --hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \ --hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in # flask-caching # flask-cors @@ -451,37 +451,37 @@ flask-caching==2.4.0 \ --hash=sha256:a7f14e43617cd0612a57bec2f80516d6d2ec888bfc50a807b1e4e41ca345a3b5 \ --hash=sha256:d15b8135f055c4f28f6f7dbcf8d36a3de4af1224def975ae6e0b43cbfa684486 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in flask-cors==6.0.2 \ --hash=sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423 \ --hash=sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in flask-jwt-extended==4.7.3 \ --hash=sha256:905ac807b52b5409bc9244dbcca434968c13ca6f9d91bffe7d4cb71e0e6231cb \ --hash=sha256:a8318a3d983d1f360724b901889f1947ffee418e2a3950b48e99c70923b6615e # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in flask-marshmallow==1.5.0 \ --hash=sha256:7c06b56e41647eccdb3cd57c25b109f19191b4c62509362bd64920cdf601a066 \ --hash=sha256:99951c77e5654111ed733811c6dc9310bfb4c3688c78a9e76f80b5ae0b2279a6 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in flask-migrate==4.1.0 \ --hash=sha256:1a336b06eb2c3ace005f5f2ded8641d534c18798d64061f6ff11f79e1434126d \ --hash=sha256:24d8051af161782e0743af1b04a152d007bad9772b2bca67b7ec1e8ceeb3910d # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in flask-sqlalchemy==3.1.1 \ --hash=sha256:4ba4be7f419dc72f4efd8802d69974803c37259dd42f3913b0dcf75c9447e0a0 \ --hash=sha256:e4b68bb881802dda1a7d878b2fc84c06d1ee57fb40b874d3dc97dabfa36b8312 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in # flask-migrate greenlet==3.5.0 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' \ @@ -545,13 +545,13 @@ greenlet==3.5.0 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or --hash=sha256:f8c30c2225f40dd76c50790f0eb3b5c7c18431efb299e2782083e1981feed243 \ --hash=sha256:fa94cb2288681e3a11645958f1871d48ee9211bd2f66628fdace505927d6e564 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # sqlalchemy idna==3.13 \ --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # email-validator # requests iniconfig==2.3.0 \ @@ -562,19 +562,19 @@ itsdangerous==2.2.0 \ --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask mako==1.3.12 \ --hash=sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9 \ --hash=sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # alembic markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -667,7 +667,7 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask # jinja2 # mako @@ -676,14 +676,14 @@ marshmallow==4.3.0 \ --hash=sha256:46c4fe6984707e3cbd485dfebbf0a59874f58d695aad05c1668d15e8c6e13b46 \ --hash=sha256:fb43c53b3fe240b8f6af37223d6ef1636f927ad9bea8ab323afad95dff090880 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask-marshmallow # marshmallow-sqlalchemy marshmallow-sqlalchemy==1.5.0 \ --hash=sha256:3865232672f3dd38c4d5e4e85fdedce76904200742c3594948a2d11d0af93258 \ --hash=sha256:e51192c204770645a2fab0d72f44f8789272eef75951f84b1608d6b4b0bfe0e6 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in mysql-connector-python==9.7.0 \ --hash=sha256:079ce68d617250ef5cefffd5243056dc9f87c6034c804235fd6f45a0daf5a6ae \ @@ -713,7 +713,7 @@ mysql-connector-python==9.7.0 \ --hash=sha256:ea4e05ab864ab8b0b5066d885d89ca51e5ba1320dba520c20a6f9388a8eca022 \ --hash=sha256:ee90c5f44f706f012be17f03f6ad158ff96e7f2dcc077896fe4537d3d28b3cf4 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in packaging==26.2 \ --hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \ @@ -729,7 +729,7 @@ pycparser==3.0 ; implementation_name != 'PyPy' and platform_python_implementatio --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # cffi pygments==2.20.0 \ --hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \ @@ -739,13 +739,13 @@ pyjwt==2.12.1 \ --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # flask-jwt-extended pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in pytest==9.1.1 \ --hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \ @@ -766,13 +766,13 @@ python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in requests==2.33.1 \ --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in sqlalchemy==2.0.49 \ --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ @@ -839,7 +839,7 @@ sqlalchemy==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # alembic # flask-sqlalchemy # marshmallow-sqlalchemy @@ -847,38 +847,38 @@ tabulate==0.10.0 \ --hash=sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d \ --hash=sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # alembic # sqlalchemy tzdata==2026.3 \ --hash=sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415 \ --hash=sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in urllib3==2.7.0 \ --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # requests waitress==3.0.2 \ --hash=sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f \ --hash=sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in werkzeug==3.1.8 \ --hash=sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50 \ --hash=sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44 # via - # -c /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/prod.txt + # -c requirements.txt # -r requirements.in # flask # flask-cors diff --git a/requirements.txt b/requirements.txt index 6db1dee..2c89e3b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,25 +19,25 @@ alembic==1.18.4 \ --hash=sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a \ --hash=sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask-migrate blinker==1.9.0 \ --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask cachelib==0.13.0 \ --hash=sha256:209d8996e3c57595bee274ff97116d1d73c4980b2fd9a34c7846cd07fd2e1a48 \ --hash=sha256:8c8019e53b6302967d4e8329a504acf75e7bc46130291d30188a6e4e58162516 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask-caching certifi==2026.4.22 \ --hash=sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a \ --hash=sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # requests cffi==2.1.0 \ --hash=sha256:02cb7ff33ded4f1532476731f89ede53e2e488a8e6205515a82144246ffa7dcc \ @@ -141,7 +141,7 @@ cffi==2.1.0 \ --hash=sha256:fb62edb5bb52cca65fab91a63afa7561607120d26090a7e8fda6fb9f064726da \ --hash=sha256:ff067a8d8d880e7809e4ac88eb009bb848870115317b306666502ccad30b147f # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # cryptography charset-normalizer==3.4.7 \ --hash=sha256:007d05ec7321d12a40227aae9e2bc6dca73f3cb21058999a1df9e193555a9dcc \ @@ -274,13 +274,13 @@ charset-normalizer==3.4.7 \ --hash=sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79 \ --hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # requests click==8.3.3 \ --hash=sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2 \ --hash=sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask colorama==0.4.6 ; sys_platform == 'win32' \ --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ @@ -333,22 +333,22 @@ cryptography==50.0.0 \ --hash=sha256:f59e38625469987d7ef6d495323c55e7db6c212eaf6112267e0d3b565a2e9c9f \ --hash=sha256:f89831ef99dd7dd169ab06d63a831adb9e20a87aac6d380266bbda5823349169 \ --hash=sha256:fd9192b7b70c573d7f214eb1ae35e00d359f6f5e4b27c7e21e30de1fc6204645 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in dnspython==2.8.0 \ --hash=sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af \ --hash=sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # email-validator email-validator==2.3.0 \ --hash=sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4 \ --hash=sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in flask==3.1.3 \ --hash=sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb \ --hash=sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask-caching # flask-cors # flask-jwt-extended @@ -358,28 +358,28 @@ flask==3.1.3 \ flask-caching==2.4.0 \ --hash=sha256:a7f14e43617cd0612a57bec2f80516d6d2ec888bfc50a807b1e4e41ca345a3b5 \ --hash=sha256:d15b8135f055c4f28f6f7dbcf8d36a3de4af1224def975ae6e0b43cbfa684486 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in flask-cors==6.0.2 \ --hash=sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423 \ --hash=sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in flask-jwt-extended==4.7.3 \ --hash=sha256:905ac807b52b5409bc9244dbcca434968c13ca6f9d91bffe7d4cb71e0e6231cb \ --hash=sha256:a8318a3d983d1f360724b901889f1947ffee418e2a3950b48e99c70923b6615e - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in flask-marshmallow==1.5.0 \ --hash=sha256:7c06b56e41647eccdb3cd57c25b109f19191b4c62509362bd64920cdf601a066 \ --hash=sha256:99951c77e5654111ed733811c6dc9310bfb4c3688c78a9e76f80b5ae0b2279a6 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in flask-migrate==4.1.0 \ --hash=sha256:1a336b06eb2c3ace005f5f2ded8641d534c18798d64061f6ff11f79e1434126d \ --hash=sha256:24d8051af161782e0743af1b04a152d007bad9772b2bca67b7ec1e8ceeb3910d - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in flask-sqlalchemy==3.1.1 \ --hash=sha256:4ba4be7f419dc72f4efd8802d69974803c37259dd42f3913b0dcf75c9447e0a0 \ --hash=sha256:e4b68bb881802dda1a7d878b2fc84c06d1ee57fb40b874d3dc97dabfa36b8312 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask-migrate greenlet==3.5.0 \ --hash=sha256:0ecec963079cd58cbd14723582384f11f166fd58883c15dcbfb342e0bc9b5846 \ @@ -442,32 +442,32 @@ greenlet==3.5.0 \ --hash=sha256:f8c30c2225f40dd76c50790f0eb3b5c7c18431efb299e2782083e1981feed243 \ --hash=sha256:fa94cb2288681e3a11645958f1871d48ee9211bd2f66628fdace505927d6e564 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # sqlalchemy idna==3.13 \ --hash=sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242 \ --hash=sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # email-validator # requests itsdangerous==2.2.0 \ --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask jinja2==3.1.6 \ --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask mako==1.3.12 \ --hash=sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9 \ --hash=sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # alembic markupsafe==3.0.3 \ --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ @@ -560,7 +560,7 @@ markupsafe==3.0.3 \ --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask # jinja2 # mako @@ -569,13 +569,13 @@ marshmallow==4.3.0 \ --hash=sha256:46c4fe6984707e3cbd485dfebbf0a59874f58d695aad05c1668d15e8c6e13b46 \ --hash=sha256:fb43c53b3fe240b8f6af37223d6ef1636f927ad9bea8ab323afad95dff090880 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask-marshmallow # marshmallow-sqlalchemy marshmallow-sqlalchemy==1.5.0 \ --hash=sha256:3865232672f3dd38c4d5e4e85fdedce76904200742c3594948a2d11d0af93258 \ --hash=sha256:e51192c204770645a2fab0d72f44f8789272eef75951f84b1608d6b4b0bfe0e6 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in mysql-connector-python==9.7.0 \ --hash=sha256:079ce68d617250ef5cefffd5243056dc9f87c6034c804235fd6f45a0daf5a6ae \ --hash=sha256:15106ed73d74487f86de6b1859ff7f362efca7c7f9c494497ccb7439d3139fe6 \ @@ -603,31 +603,31 @@ mysql-connector-python==9.7.0 \ --hash=sha256:e3842ecd62391a28c1dda5eb817f40418715e68482a8c146b3c478ac8bb7a23f \ --hash=sha256:ea4e05ab864ab8b0b5066d885d89ca51e5ba1320dba520c20a6f9388a8eca022 \ --hash=sha256:ee90c5f44f706f012be17f03f6ad158ff96e7f2dcc077896fe4537d3d28b3cf4 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in pycparser==3.0 \ --hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \ --hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # cffi pyjwt==2.12.1 \ --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \ --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask-jwt-extended pymysql==1.1.3 \ --hash=sha256:8164ba62c552f6105f3b11753352d0f16b90d1703ba67d81923d5a8a5d1c5289 \ --hash=sha256:e70ebf2047a4edf6138cf79c68ad418ef620af65900aa585c5e8bfc95044d43a - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in python-dotenv==1.2.2 \ --hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \ --hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in requests==2.33.1 \ --hash=sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517 \ --hash=sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in sqlalchemy==2.0.49 \ --hash=sha256:01146546d84185f12721a1d2ce0c6673451a7894d1460b592d378ca4871a0c72 \ --hash=sha256:059d7151fff513c53a4638da8778be7fce81a0c4854c7348ebd0c4078ddf28fe \ @@ -693,40 +693,40 @@ sqlalchemy==2.0.49 \ --hash=sha256:ec44cfa7ef1a728e88ad41674de50f6db8cfdb3e2af84af86e0041aaf02d43d0 \ --hash=sha256:fb37f15714ec2652d574f021d479e78cd4eb9d04396dca36568fdfffb3487982 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # alembic # flask-sqlalchemy # marshmallow-sqlalchemy tabulate==0.10.0 \ --hash=sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d \ --hash=sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # alembic # sqlalchemy tzdata==2026.3 \ --hash=sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415 \ --hash=sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931 - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in urllib3==2.7.0 \ --hash=sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c \ --hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # requests waitress==3.0.2 \ --hash=sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f \ --hash=sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e - # via -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # via -r requirements.in werkzeug==3.1.8 \ --hash=sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50 \ --hash=sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44 # via - # -r /tmp/claude-1000/-home-camp-projects/284ab26c-19f5-4dcf-8631-ed7edab74218/scratchpad/req-pinned.in + # -r requirements.in # flask # flask-cors # flask-jwt-extended