diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100644 index 032fd4a1..00000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,138 +0,0 @@ -{ - "projectName": "vacant-lots-proj", - "projectOwner": "CodeForPhilly", - "files": ["README.md"], - "commitType": "docs", - "commitConvention": "angular", - "contributorsPerLine": 7, - "contributors": [ - { - "login": "nlebovits", - "name": "Nissim Lebovits", - "avatar_url": "https://avatars.githubusercontent.com/u/111617674?v=4", - "profile": "https://github.com/nlebovits", - "contributions": [ - "doc", - "code", - "content", - "data", - "fundingFinding", - "maintenance", - "projectManagement", - "research" - ] - }, - { - "login": "Kenny4297", - "name": "Kedgard Cordero", - "avatar_url": "https://avatars.githubusercontent.com/u/97119018?v=4", - "profile": "https://kedgard-cordero.netlify.app", - "contributions": ["code"] - }, - { - "login": "brandonfcohen1", - "name": "Brandon Cohen", - "avatar_url": "https://avatars.githubusercontent.com/u/2308834?v=4", - "profile": "https://github.com/brandonfcohen1", - "contributions": ["code", "doc", "infra"] - }, - { - "login": "jroper-scottlogic", - "name": "Jack Roper", - "avatar_url": "https://avatars.githubusercontent.com/u/125047199?v=4", - "profile": "https://github.com/jroper-scottlogic", - "contributions": ["code"] - }, - { - "login": "willonabike", - "name": "Will", - "avatar_url": "https://avatars.githubusercontent.com/u/1652510?v=4", - "profile": "http://coroflot.com/willonabike", - "contributions": ["research", "design"] - }, - { - "login": "thansidwell", - "name": "Nathaniel Sidwell", - "avatar_url": "https://avatars.githubusercontent.com/u/1965986?v=4", - "profile": "https://github.com/thansidwell", - "contributions": ["design", "research"] - }, - { - "login": "marvieqa", - "name": "Marvie Mulder", - "avatar_url": "https://avatars.githubusercontent.com/u/102739972?v=4", - "profile": "https://github.com/marvieqa", - "contributions": ["a11y"] - }, - { - "login": "markgoetz", - "name": "Mark Goetz", - "avatar_url": "https://avatars.githubusercontent.com/u/4121678?v=4", - "profile": "http://markandrewgoetz.com", - "contributions": ["code"] - }, - { - "login": "bacitracin", - "name": "Tracy Tran", - "avatar_url": "https://avatars.githubusercontent.com/u/7329799?v=4", - "profile": "https://www.linkedin.com/in/tracyctran/", - "contributions": ["a11y"] - }, - { - "login": "19ewalker", - "name": "Elizabeth Walker", - "avatar_url": "https://avatars.githubusercontent.com/u/44076192?v=4", - "profile": "http://elizabethwalker.site", - "contributions": ["code"] - }, - { - "login": "AZBL", - "name": "Alex Byrd-Leitner", - "avatar_url": "https://avatars.githubusercontent.com/u/111008425?v=4", - "profile": "https://alexbyrdleitner-portfolio.netlify.app/", - "contributions": ["code", "a11y"] - }, - { - "login": "gturmel", - "name": "Greg Turmel", - "avatar_url": "https://avatars.githubusercontent.com/u/16137908?v=4", - "profile": "https://github.com/gturmel", - "contributions": ["code"] - }, - { - "login": "liathirsh", - "name": "Liat", - "avatar_url": "https://avatars.githubusercontent.com/u/110303683?v=4", - "profile": "https://github.com/liathirsh", - "contributions": ["code"] - }, - { - "login": "jgaye", - "name": "Julien Gaye", - "avatar_url": "https://avatars.githubusercontent.com/u/4049458?v=4", - "profile": "https://github.com/jgaye", - "contributions": ["code"] - }, - { - "login": "BayLadyCoder", - "name": "Bay Chairangsaris", - "avatar_url": "https://avatars.githubusercontent.com/u/33296817?v=4", - "profile": "https://github.com/BayLadyCoder", - "contributions": ["code", "doc"] - }, - { - "login": "paulhchoi", - "name": "Paul Choi", - "avatar_url": "https://avatars.githubusercontent.com/u/8061917?v=4", - "profile": "http://paulchoi.dev", - "contributions": ["code"] - }, - { - "login": "Amberroseweeks", - "name": "Amberroseweeks", - "avatar_url": "https://avatars.githubusercontent.com/u/61482332?v=4", - "profile": "https://github.com/Amberroseweeks", - "contributions": ["code", "a11y"] - } - ] -} diff --git a/.github/workflows/flag-stale-prs.yml b/.github/workflows/flag-stale.yml similarity index 96% rename from .github/workflows/flag-stale-prs.yml rename to .github/workflows/flag-stale.yml index a029a2a9..7cf9ca8e 100644 --- a/.github/workflows/flag-stale-prs.yml +++ b/.github/workflows/flag-stale.yml @@ -23,3 +23,4 @@ jobs: days-before-issue-stale: 30 stale-issue-message: 'This issue has been marked as stale because it has been open for 30 days with no activity.' stale-issue-label: 'stale' + days-before-close: -1 diff --git a/.github/workflows/weekly-pr-to-main.yml b/.github/workflows/weekly-pr-to-main.yml new file mode 100644 index 00000000..53a2370e --- /dev/null +++ b/.github/workflows/weekly-pr-to-main.yml @@ -0,0 +1,51 @@ +name: Open PR from Staging to Main + +on: + schedule: + - cron: '0 0 * * 0' # Runs every Sunday at midnight + workflow_dispatch: # Allows manual triggering + inputs: + branch: + description: 'The branch to create the PR from' + required: true + default: 'staging' + +jobs: + open-pr: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Git + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + + - name: Check if staging is ahead of main + id: check_diff + run: | + git fetch origin main + git fetch origin staging + if git rev-list --count main..staging > 0; then + echo "::set-output name=staging_ahead::true" + else + echo "::set-output name=staging_ahead::false" + shell: bash + + - name: Open PR if staging is ahead + if: steps.check_diff.outputs.staging_ahead == 'true' + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.GITHUB_TOKEN }} + base: main + branch: staging + title: 'Weekly PR from Staging to Main' + body: 'Automated PR to merge staging into main. This PR was generated as part of the weekly process.' + labels: 'automated-pr' + commit-message: '[create-pull-request] Merge staging into main' + draft: false + + - name: Skip PR if no changes + if: steps.check_diff.outputs.staging_ahead == 'false' + run: echo "No changes to merge from staging to main." diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bb934b8d..c54c5fe9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,6 +27,16 @@ repos: language: system files: ^data/src/Pipfile$ + # Radon MI and Halstead checks + - id: radon-check + name: Radon Maintainability and Halstead Checks + entry: | + bash -c 'radon mi -s {} | grep -E " - [CDEF] \(" && echo "Radon MI grade below B detected!" && exit 1 || echo "All MI grades are B or above." + radon hal {} -s | awk "/effort/ { if (\$3 > 2000) print FILENAME \": High Halstead effort:\" \$3 }"' + language: system + files: \.py$ + exclude: ^data/src/awkde/ + - repo: https://github.com/jendrikseipp/vulture rev: 'v2.3' # or any later Vulture version hooks: diff --git a/README.md b/README.md index 263ab058..fcac137a 100644 --- a/README.md +++ b/README.md @@ -78,40 +78,6 @@ Please see the documents in our [docs](/docs) folder for background on the proje ### Point of Contact - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nissim Lebovits
Nissim Lebovits

📖 💻 🖋 🔣 🔍 🚧 📆 🔬
Kedgard Cordero
Kedgard Cordero

💻
Brandon Cohen
Brandon Cohen

💻 📖 🚇
Jack Roper
Jack Roper

💻
Will
Will

🔬 🎨
Nathaniel Sidwell
Nathaniel Sidwell

🎨 🔬
Marvie Mulder
Marvie Mulder

️️️️♿️
Mark Goetz
Mark Goetz

💻
Tracy Tran
Tracy Tran

️️️️♿️
Elizabeth Walker
Elizabeth Walker

💻
Alex Byrd-Leitner
Alex Byrd-Leitner

💻 ️️️️♿️
Greg Turmel
Greg Turmel

💻
Liat
Liat

💻
Julien Gaye
Julien Gaye

💻
Bay Chairangsaris
Bay Chairangsaris

💻 📖
Paul Choi
Paul Choi

💻
Amberroseweeks
Amberroseweeks

💻 ️️️️♿️
- - - - - - ## License MIT © Code for Philly diff --git a/data/Dockerfile-pg b/data/Dockerfile-pg index 7ec716c8..d4d62d77 100644 --- a/data/Dockerfile-pg +++ b/data/Dockerfile-pg @@ -5,11 +5,11 @@ FROM postgres:16-bullseye LABEL maintainer="PostGIS Project - https://postgis.net" \ - org.opencontainers.image.description="PostGIS 3.4.2+dfsg-1.pgdg110+1 spatial database extension with PostgreSQL 16 bullseye" \ + org.opencontainers.image.description="PostGIS 3.4.3+dfsg-2.pgdg110+1 spatial database extension with PostgreSQL 16 bullseye" \ org.opencontainers.image.source="https://github.com/postgis/docker-postgis" ENV POSTGIS_MAJOR 3 -ENV POSTGIS_VERSION 3.4.2+dfsg-1.pgdg110+1 +ENV POSTGIS_VERSION 3.4.3+dfsg-2.pgdg110+1 RUN apt-get update \ && apt-cache showpkg postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR \ diff --git a/data/src/Pipfile b/data/src/Pipfile index 1bb1af60..5c2b41e5 100644 --- a/data/src/Pipfile +++ b/data/src/Pipfile @@ -33,6 +33,7 @@ pyarrow = "*" tqdm = "*" vulture = "*" pylint = "*" +radon = "*" [dev-packages] diff --git a/data/src/Pipfile.lock b/data/src/Pipfile.lock index 154e84d2..1d6d561e 100644 --- a/data/src/Pipfile.lock +++ b/data/src/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "505ce10a0c0cedd58f603c5d5816895b103253cfdfd5a584bea510104414623d" + "sha256": "96d3d538b2f2943e62c3ec5ca3d96a8e55831888b586e1d916cc400b1161e330" }, "pipfile-spec": 6, "requires": { @@ -185,19 +185,19 @@ }, "boto3": { "hashes": [ - "sha256:b04087afd3570ba540fd293823c77270ec675672af23da9396bd5988a3f8128b", - "sha256:c31db992655db233d98762612690cfe60723c9e1503b5709aad92c1c564877bb" + "sha256:d2851aec8e9dc6937977acbe9a5124ecc31b3ad5f50a10cd9ae52636da3f52fa", + "sha256:d89c3459db89c5408e83219ab849ffd0146bc4285e75cdc67c6e45d390a12df2" ], "markers": "python_version >= '3.8'", - "version": "==1.35.26" + "version": "==1.35.30" }, "botocore": { "hashes": [ - "sha256:0b9dee5e4a3314e251e103585837506b17fcc7485c3c8adb61a9a913f46da1e7", - "sha256:19efc3a22c9df77960712b4e203f912486f8bcd3794bff0fd7b2a0f5f1d5712d" + "sha256:3bb9f9dde001608671ea74681ac3cec06bbbb10cba8cb8c1387a25e843075ce0", + "sha256:ab5350e8a50e48d371fa2d517d65c29a40c43788cb9a15387f93eac5a23df0fd" ], "markers": "python_version >= '3.8'", - "version": "==1.35.26" + "version": "==1.35.30" }, "cachecontrol": { "hashes": [ @@ -420,7 +420,7 @@ "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'", + "markers": "python_version >= '3.5'", "version": "==0.4.6" }, "comm": { @@ -616,31 +616,31 @@ }, "debugpy": { "hashes": [ - "sha256:0a1029a2869d01cb777216af8c53cda0476875ef02a2b6ff8b2f2c9a4b04176c", - "sha256:1cd04a73eb2769eb0bfe43f5bfde1215c5923d6924b9b90f94d15f207a402226", - "sha256:28ced650c974aaf179231668a293ecd5c63c0a671ae6d56b8795ecc5d2f48d3c", - "sha256:345d6a0206e81eb68b1493ce2fbffd57c3088e2ce4b46592077a943d2b968ca3", - "sha256:3df6692351172a42af7558daa5019651f898fc67450bf091335aa8a18fbf6f3a", - "sha256:4413b7a3ede757dc33a273a17d685ea2b0c09dbd312cc03f5534a0fd4d40750a", - "sha256:4fbb3b39ae1aa3e5ad578f37a48a7a303dad9a3d018d369bc9ec629c1cfa7408", - "sha256:55919dce65b471eff25901acf82d328bbd5b833526b6c1364bd5133754777a44", - "sha256:5b5c770977c8ec6c40c60d6f58cacc7f7fe5a45960363d6974ddb9b62dbee156", - "sha256:606bccba19f7188b6ea9579c8a4f5a5364ecd0bf5a0659c8a5d0e10dcee3032a", - "sha256:7b0fe36ed9d26cb6836b0a51453653f8f2e347ba7348f2bbfe76bfeb670bfb1c", - "sha256:7e4d594367d6407a120b76bdaa03886e9eb652c05ba7f87e37418426ad2079f7", - "sha256:8f913ee8e9fcf9d38a751f56e6de12a297ae7832749d35de26d960f14280750a", - "sha256:a697beca97dad3780b89a7fb525d5e79f33821a8bc0c06faf1f1289e549743cf", - "sha256:ad84b7cde7fd96cf6eea34ff6c4a1b7887e0fe2ea46e099e53234856f9d99a34", - "sha256:b2112cfeb34b4507399d298fe7023a16656fc553ed5246536060ca7bd0e668d0", - "sha256:b78c1250441ce893cb5035dd6f5fc12db968cc07f91cc06996b2087f7cefdd8e", - "sha256:c0a65b00b7cdd2ee0c2cf4c7335fef31e15f1b7056c7fdbce9e90193e1a8c8cb", - "sha256:c9f7c15ea1da18d2fcc2709e9f3d6de98b69a5b0fff1807fb80bc55f906691f7", - "sha256:db9fb642938a7a609a6c865c32ecd0d795d56c1aaa7a7a5722d77855d5e77f2b", - "sha256:dd3811bd63632bb25eda6bd73bea8e0521794cda02be41fa3160eb26fc29e7ed", - "sha256:e84c276489e141ed0b93b0af648eef891546143d6a48f610945416453a8ad406" - ], - "markers": "python_version >= '3.8'", - "version": "==1.8.5" + "sha256:0a85707c6a84b0c5b3db92a2df685b5230dd8fb8c108298ba4f11dba157a615a", + "sha256:22140bc02c66cda6053b6eb56dfe01bbe22a4447846581ba1dd6df2c9f97982d", + "sha256:30f467c5345d9dfdcc0afdb10e018e47f092e383447500f125b4e013236bf14b", + "sha256:3358aa619a073b620cd0d51d8a6176590af24abcc3fe2e479929a154bf591b51", + "sha256:43996632bee7435583952155c06881074b9a742a86cee74e701d87ca532fe833", + "sha256:538c6cdcdcdad310bbefd96d7850be1cd46e703079cc9e67d42a9ca776cdc8a8", + "sha256:567419081ff67da766c898ccf21e79f1adad0e321381b0dfc7a9c8f7a9347972", + "sha256:5d73d8c52614432f4215d0fe79a7e595d0dd162b5c15233762565be2f014803b", + "sha256:67479a94cf5fd2c2d88f9615e087fcb4fec169ec780464a3f2ba4a9a2bb79955", + "sha256:9fb8653f6cbf1dd0a305ac1aa66ec246002145074ea57933978346ea5afdf70b", + "sha256:b48892df4d810eff21d3ef37274f4c60d32cdcafc462ad5647239036b0f0649f", + "sha256:c1cef65cffbc96e7b392d9178dbfd524ab0750da6c0023c027ddcac968fd1caa", + "sha256:c931a9371a86784cee25dec8d65bc2dc7a21f3f1552e3833d9ef8f919d22280a", + "sha256:c9834dfd701a1f6bf0f7f0b8b1573970ae99ebbeee68314116e0ccc5c78eea3c", + "sha256:cdaf0b9691879da2d13fa39b61c01887c34558d1ff6e5c30e2eb698f5384cd43", + "sha256:db891b141fc6ee4b5fc6d1cc8035ec329cabc64bdd2ae672b4550c87d4ecb128", + "sha256:df5dc9eb4ca050273b8e374a4cd967c43be1327eeb42bfe2f58b3cdfe7c68dcb", + "sha256:e3a82da039cfe717b6fb1886cbbe5c4a3f15d7df4765af857f4307585121c2dd", + "sha256:e3e182cd98eac20ee23a00653503315085b29ab44ed66269482349d307b08df9", + "sha256:e4ce0570aa4aca87137890d23b86faeadf184924ad892d20c54237bcaab75d8f", + "sha256:f1e60bd06bb3cc5c0e957df748d1fab501e01416c43a7bdc756d2a992ea1b881", + "sha256:f7158252803d0752ed5398d291dee4c553bb12d14547c0e1843ab74ee9c31123" + ], + "markers": "python_version >= '3.8'", + "version": "==1.8.6" }, "decorator": { "hashes": [ @@ -668,11 +668,11 @@ }, "dill": { "hashes": [ - "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca", - "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7" + "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a", + "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c" ], "markers": "python_version >= '3.11'", - "version": "==0.3.8" + "version": "==0.3.9" }, "dsnparse": { "hashes": [ @@ -1104,11 +1104,11 @@ }, "jaraco.functools": { "hashes": [ - "sha256:3460c74cd0d32bf82b9576bbb3527c4364d5b27a21f5158a62aed6c4b42e23f5", - "sha256:c9d16a3ed4ccb5a889ad8e0b7a343401ee5b2a71cee6ed192d3f68bc351e94e3" + "sha256:70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d", + "sha256:ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649" ], "markers": "python_version >= '3.8'", - "version": "==4.0.2" + "version": "==4.1.0" }, "jedi": { "hashes": [ @@ -1469,6 +1469,13 @@ ], "version": "==1.5.3" }, + "mando": { + "hashes": [ + "sha256:18baa999b4b613faefb00eac4efadcf14f510b59b924b66e08289aa1de8c3500", + "sha256:26ef1d70928b6057ee3ca12583d73c63e05c49de8972d620c278a7b206581a8a" + ], + "version": "==0.7.1" + }, "mapbox": { "hashes": [ "sha256:13c0774d8e4a4de07c224db00f04f6da21a40c1df7febda1791444d95c3d3c2b", @@ -1855,7 +1862,7 @@ "sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521", "sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b" ], - "markers": "python_version == '3.11'", + "markers": "python_version >= '3.10'", "version": "==2.1.1" }, "ordered-set": { @@ -2077,11 +2084,11 @@ }, "prompt-toolkit": { "hashes": [ - "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10", - "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360" + "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90", + "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.0.47" + "version": "==3.0.48" }, "proto-plus": { "hashes": [ @@ -2432,35 +2439,40 @@ }, "pyogrio": { "hashes": [ - "sha256:019731a856a9abfe909e86f50eb13f8362f6742337caf757c54b7c8acfe75b89", - "sha256:083351b258b3e08b6c6085dac560bd321b68de5cb4a66229095da68d5f3d696b", - "sha256:13642608a1cd67797ae8b5d792b0518d8ef3eb76506c8232ab5eaa1ea1159dff", - "sha256:17420febc17651876d5140b54b24749aa751d482b5f9ef6267b8053e6e962876", - "sha256:1a495ca4fb77c69595747dd688f8f17bb7d2ea9cd86603aa71c7fc98cc8b4174", - "sha256:2829615cf58b1b24a9f96fea42abedaa1a800dd351c67374cc2f6341138608f3", - "sha256:2e98913fa183f7597c609e774820a149e9329fd2a0f8d33978252fbd00ae87e6", - "sha256:2f2ec57ab74785db9c2bf47c0a6731e5175595a13f8253f06fa84136adb310a9", - "sha256:30cbeeaedb9bced7012487e7438919aa0c7dfba18ac3d4315182b46eb3139b9d", - "sha256:3a2fcaa269031dbbc8ebd91243c6452c5d267d6df939c008ab7533413c9cf92d", - "sha256:3f964002d445521ad5b8e732a6b5ef0e2d2be7fe566768e5075c1d71398da64a", - "sha256:4a289584da6df7ca318947301fe0ba9177e7f863f63110e087c80ac5f3658de8", - "sha256:4da0b9deb380bd9a200fee13182c4f95b02b4c554c923e2e0032f32aaf1439ed", - "sha256:4e0f90a6c3771ee1f1fea857778b4b6a1b64000d851b819f435f9091b3c38c60", - "sha256:6a6fa2e8cf95b3d4a7c0fac48bce6e5037579e28d3eb33b53349d6e11f15e5a8", - "sha256:6dc94a67163218581c7df275223488ac9b31dc582ccd756da607c3338908566c", - "sha256:796e4f6a4e769b2eb6fea9a10546ea4bdee16182d1e29802b4d6349363c3c1d7", - "sha256:7fcafed24371fe6e23bcf5abebbb29269f8d79915f1dd818ac85453657ea714a", - "sha256:9440466c0211ac81f3417f274da5903f15546b486f76b2f290e74a56aaf0e737", - "sha256:959022f3ad04053f8072dc9a2ad110c46edd9e4f92352061ba835fc91df3ca96", - "sha256:d668cb10f2bf6ccd7c402f91e8b06290722dd09dbe265ae95b2c13db29ebeba0", - "sha256:e38c3c6d37cf2cc969407e4d051dcb507cfd948eb26c7b0840c4f7d7d4a71bd4", - "sha256:f47c9b6818cc0f420015b672d5dcc488530a5ee63e5ba35a184957b21ea3922a", - "sha256:f5d80eb846be4fc4e642cbedc1ed0c143e8d241653382ecc76a7620bbd2a5c3a", - "sha256:f8bf193269ea9d347ac3ddada960a59f1ab2e4a5c009be95dc70e6505346b2fc", - "sha256:fb04bd80964428491951766452f0071b0bc37c7d38c45ef02502dbd83e5d74a0" + "sha256:02e54bcfb305af75f829044b0045f74de31b77c2d6546f7aaf96822066147848", + "sha256:046eeeae12a03a3ebc3dc5ff5a87664e4f5fc0a4fb1ea5d5c45d547fa941072b", + "sha256:0a47f702d29808c557d2ebea8542c23903f021eae44e16838adef2ab4281c71b", + "sha256:11e6c71d12da6b445e77d0fc0198db1bd35a77e03a0685e45338cbab9ce02add", + "sha256:14fd3b72b4e2dc59e264607b265c742b0c5ec2ea9e748b115f742381b28dd373", + "sha256:19f18411bdf836d24cdc08b9337eb3ec415e4ac4086ba64516b36b73a2e88622", + "sha256:1abbcdd9876f30bebf1df8a0273f6cdeb29d03259290008275c7fddebe139f20", + "sha256:1fea7892f4633cab04d13563e47ec2e87dc2b5cd71b9546018d123184528c151", + "sha256:216d69cd77b2b4a0c9d7d449bc239f8b77f3d73f4a05d9c738a0745b236902d8", + "sha256:22d57495e835fe51b88da43dfbda606c07e1f6c3b849af0c3cfc18e17467641c", + "sha256:28cb139f8a5d0365ede602230104b407ae52bb6b55173c8d5a35424d28c4a2c5", + "sha256:2a3e09839590d71ff832aa95c4f23fa00a2c63c3de82c1fbd4fb8d265792acfc", + "sha256:2d6558b180e020f71ab7aa7f82d592ed3305c9f698d98f6d0a4637ec7a84c4ce", + "sha256:32d349600561459791a43f528a92f3e9343a59bdc9bc30b1be9376f0b80cbf16", + "sha256:3539596a76eb8a9d166d6f9d3f36731a8c5bd5c43901209d89dc66b9dc00f079", + "sha256:3a4c373281d7cbf560c5b61f8f3c7442103ad7f1c7ac4ef3a84572ed7a5dd2f6", + "sha256:44380f4d9245c776f432526e29ce4d29238aea26adad991803c4f453474f51d3", + "sha256:5b1a51431a27a1cb3e4e19558939c1423106e06e7b67d6285f4fba9c2d0a91b9", + "sha256:6166ae81462c257ed8e151c404e316642703813cf771c95ef8e11dcdf2581e47", + "sha256:7c02b207ea8cf09c501ea3e95d29152781a00d3c32267286bc36fa457c332205", + "sha256:82f7bd6a87bd2e9484bcb4c87ab94eee4c2f573ad148707431c8b341d7f13d99", + "sha256:a2f0b75f0077ce33256aec6278c2a9c3b79bf0637ddf4f93d3ab2609f0501d96", + "sha256:a99102037eead8ba491bc57825c1e395ee31c9956d7bff7b4a9e4fdbff3a13c2", + "sha256:c90478209537a31dcc65664a87a04c094bb0e08efe502908a6682b8cec0259bf", + "sha256:cea0187fcc2d574e52af8cfab041fa0a7ad71d5ef6b94b49a3f3d2a04534a27e", + "sha256:d0d74e91a9c0ff2f9abe01b556ff663977193b2d6922208406172d0fc833beff", + "sha256:ea96a1338ed7991735b955d3f84ad5f71b3bc070b6a7a42449941aedecc71768", + "sha256:eac90b2501656892c63bc500c12e71f3dbf7d66ddc5a7fb05cd480d25d1b7022", + "sha256:ec051cb568324de878828fae96379b71858933413e185148acb6c162851ab23c", + "sha256:eea82171bfc07fc778b8dc87b0cdc9ac06c389bc56b0c0b6f34bf9e45fb78c0e", + "sha256:fec45e1963b7058e5a1aa98598aed07c0858512c833d6aad2c672c3ec98bbf04" ], - "markers": "python_version >= '3.8'", - "version": "==0.9.0" + "markers": "python_version >= '3.9'", + "version": "==0.10.0" }, "pyparsing": { "hashes": [ @@ -2472,36 +2484,33 @@ }, "pyproj": { "hashes": [ - "sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3", - "sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746", - "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb", - "sha256:36b64c2cb6ea1cc091f329c5bd34f9c01bb5da8c8e4492c709bda6a09f96808f", - "sha256:38a3361941eb72b82bd9a18f60c78b0df8408416f9340521df442cebfc4306e2", - "sha256:447db19c7efad70ff161e5e46a54ab9cc2399acebb656b6ccf63e4bc4a04b97a", - "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf", - "sha256:4ba1f9b03d04d8cab24d6375609070580a26ce76eaed54631f03bab00a9c737b", - "sha256:4bc0472302919e59114aa140fd7213c2370d848a7249d09704f10f5b062031fe", - "sha256:50100b2726a3ca946906cbaa789dd0749f213abf0cbb877e6de72ca7aa50e1ae", - "sha256:5279586013b8d6582e22b6f9e30c49796966770389a9d5b85e25a4223286cd3f", - "sha256:6420ea8e7d2a88cb148b124429fba8cd2e0fae700a2d96eab7083c0928a85110", - "sha256:65ad699e0c830e2b8565afe42bd58cc972b47d829b2e0e48ad9638386d994915", - "sha256:6d227a865356f225591b6732430b1d1781e946893789a609bb34f59d09b8b0f8", - "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0", - "sha256:80fafd1f3eb421694857f254a9bdbacd1eb22fc6c24ca74b136679f376f97d35", - "sha256:83039e5ae04e5afc974f7d25ee0870a80a6bd6b7957c3aca5613ccbe0d3e72bf", - "sha256:8b8acc31fb8702c54625f4d5a2a6543557bec3c28a0ef638778b7ab1d1772132", - "sha256:9274880263256f6292ff644ca92c46d96aa7e57a75c6df3f11d636ce845a1877", - "sha256:ab7aa4d9ff3c3acf60d4b285ccec134167a948df02347585fdd934ebad8811b4", - "sha256:c41e80ddee130450dcb8829af7118f1ab69eaf8169c4bf0ee8d52b72f098dc2f", - "sha256:db3aedd458e7f7f21d8176f0a1d924f1ae06d725228302b872885a1c34f3119e", - "sha256:e7e13c40183884ec7f94eb8e0f622f08f1d5716150b8d7a134de48c6110fee85", - "sha256:ebfbdbd0936e178091309f6cd4fcb4decd9eab12aa513cdd9add89efa3ec2882", - "sha256:fd43bd9a9b9239805f406fd82ba6b106bf4838d9ef37c167d3ed70383943ade1", - "sha256:fd93c1a0c6c4aedc77c0fe275a9f2aba4d59b8acf88cebfc19fe3c430cfabf4f", - "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d" + "sha256:0692f806224e8ed82fe4acfa57268ff444fdaf9f330689f24c0d96e59480cce1", + "sha256:0dd31b0740ee010934234f848d2d092c66146cb8d0ba009a64e41d192caa7686", + "sha256:10a8dc6ec61af97c89ff032647d743f8dc023645773da42ef43f7ae1125b3509", + "sha256:24fa4e9e0abba875f9524808410cc520067eaf38fd5549ed0ef7c43ac39923c9", + "sha256:34e1bbb3f89c68d4a6835c40b2da8b27680eec60e8cc7cdb08c09bcc725b2b62", + "sha256:38cba7c4c5679e40242dd959133e95b908d3b912dd66291094fd13510e8517ff", + "sha256:448958c46bd3fe2da91c89ba551ac5835e63073ca861422c6eb1af89979dfab1", + "sha256:53c442c5081dc95346996f5c4323fde2caafc69c6e60b4707aa46e88244f1e04", + "sha256:64cb5c17d6f6305a8b978a40f95560c87c5b363fcac40632337955664437875a", + "sha256:7764b64a0aefe40134a2828b3a40be88f6c8b7832c45d8a9f2bd592ace4b2a3b", + "sha256:7943d85ba39e89c51b920339ff63162d63bf89da161f0acb6206b0d39b11661e", + "sha256:82624fb42aa31f6b1a860fbc0316babd07fd712642bc31022df4e9b4056bf463", + "sha256:8c4a8e4d3ba76c3adac3c087544cf92f7f9a19ea34946904a13fca48cc1c0106", + "sha256:8cbec92bdd6e9933ca08795c12717d1384e9b51cf4b1acf0d753db255a75c51e", + "sha256:94e8b903a9e83448fd2379c49dec3e8cd83c9ed36f54354e68b601cef56d5426", + "sha256:952515d5592167ad4436b355485f82acebed2a49b46722159e4584b75a763dd3", + "sha256:b9e8353fc3c79dc14d1f5ac758a1a6e4eee04102c3c0b138670f121f5ac52eb4", + "sha256:bc5b305d4d5d7697885681d9b660623e328227612823d5c660e0a9566cb48838", + "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813", + "sha256:d5c7e7d24b967e328a5efd013f466804a1f226d1106ac7efc47dcc99360dbc8f", + "sha256:de2b47d748dc41cccb6b3b713d4d7dc9aa1046a82141c8665026908726426abc", + "sha256:e66d8d42dbdf232e121546c5a1dec097caf0454e4885c09a8e03cdcee0753c03", + "sha256:ee60895f60cbd1a9c903ab2bc22adea63004296a1c28b8775a11cf50905cf085", + "sha256:f673ca345bb92afc93d4235938ca0c9a76237aa7addf42a95965c8dc8cad9b49" ], - "markers": "python_version >= '3.9'", - "version": "==3.6.1" + "markers": "python_version >= '3.10'", + "version": "==3.7.0" }, "pytest": { "hashes": [ @@ -2724,37 +2733,41 @@ "markers": "python_version >= '3.7'", "version": "==26.2.0" }, + "radon": { + "hashes": [ + "sha256:632cc032364a6f8bb1010a2f6a12d0f14bc7e5ede76585ef29dc0cecf4cd8859", + "sha256:d1ac0053943a893878940fedc8b19ace70386fc9c9bf0a09229a44125ebf45b5" + ], + "index": "pypi", + "version": "==6.0.1" + }, "rasterio": { "hashes": [ - "sha256:04464e06a881c7447d91d92922a5f731131fa7d070f1b77b5a3fafc423bdd135", - "sha256:0e9ae169dcc497d7bc6e059810ffa74c69c5d1173f62e7b3b1aaf1ce5a9a0a58", - "sha256:102c49a679ef96b336f5bd826cba461045906d735fb6b3623a5bc35be21a1105", - "sha256:171af16371988f2f12d29568c5cd963efaad9b27d5fea7596b58462a37e042b6", - "sha256:18d296abd40d220f062c4459968b77f157aa503a5d1b676d510475fbe9ba1331", - "sha256:1f2addd17573a875101cd1f2b7d98980cce6521f3a5df1400f5d7d6b5d8d2a2c", - "sha256:24491dafca5baafc909c5b53f7b035c4ccfb0f18326b15b24c4d112754c6cc8f", - "sha256:2cd38249e07582c05b333d7b3c2c257852a1a36c347a189ba5d847b2cd130d88", - "sha256:3fc055651d40ca8d0e02b80472d9081d7e6efa59a0a171fd20d243fcdd67a41c", - "sha256:476be03290bb937b63b14bb4394b1300c828d79cb4acc540fdc5cbdae8af8cf6", - "sha256:47aa70b4718ebc80d825bb7db3127577d74e31c53048ce215145c0baf530ece9", - "sha256:5c811f77e20c439195f93367390ec054790b337b51f1ff689691a558976e80c6", - "sha256:5d955d26884c8b40db03b92114e78bbc603294023e5b9ea381a24a1ac5695a89", - "sha256:6b62b576fa94bf31c0faabcd796d9f32ed23ea5620878bda2ba8258163b006cd", - "sha256:7394e324c6477f85e80ed2e2e0775a928e55f5706870c510b3b91d33e6338eda", - "sha256:8a2538862657c0f36475fc418ae4170698a37f9790f9498f27a9a82821120609", - "sha256:958d7cb4b81ed9bab8167eced60c3b0f4263c9d12dc7cfd395531ed5579baf07", - "sha256:962315780045dbd37a88d58516d2d73c5d4de7534102677b1c5e4c9b7ff4c5f9", - "sha256:a751f20c991f2c38bb26a987676e2e012cebb2ce6a0f83d774891152fec87b98", - "sha256:c1abf049ac88534280a596989e1e19e8a880621defa7ed88562e7c747c5d4112", - "sha256:d2c0287627570542b43b91f04ac5398b8ec5ff7651679b00505c61b1d4cce37d", - "sha256:d886b742f1edc6e6a4d17fd56b05c7929099a3da66266b7e3074f56fd0b08614", - "sha256:e075be4d173d943b87fb1d40064b1a88e88666d20c2847654ceb2076fc1c0597", - "sha256:f12e94dab367138a7c2fe6daf581ba84e6eb03c94fe0070c60c7a81cac2de0d3", - "sha256:f2ecb588953c83a8adf33d6aa6234b87fbb56aa9110000c243627340224a7c22" + "sha256:03f0d04ed18b4311ec807fe00fff85a9c744cb340e494dbb208ed1dc39dc1cd4", + "sha256:0c2f21b4fe0f6f8af0a902c4f86fb51d25a058fabf4dada1d453f8dce6be7938", + "sha256:0f0903fe08724e99b7404c8069474eab08c50b06c3436476f8fa63e381bd0a36", + "sha256:22a7222911e96a77a5b09f1ea444cff574cc704872801b685edf5057e016ff47", + "sha256:2466adf39009115de23209a4b343fdb0db9a3aef97119d826d09df26b7f3beb9", + "sha256:2e6a8fbdf31053a3ff95c138976ffc8ee547f361326cb42bd26fcee26422e157", + "sha256:33be7bc0e50c1a27a47faaac934d98275aea68db14d045130303bbd32db34d96", + "sha256:5037188f3582cdb21a308d6cacfc6a4f2828cd05d382f8b848c8bb405a0778b4", + "sha256:50fb06c2895cc055f34d813600cb5dc56b170d02c216913fdf80b573d771e972", + "sha256:5b85f7d912b868ce8dd25e01d5042c8426cc9208a715f093081503ee864e870b", + "sha256:6832fb300615e5d8649346b4aad557330cfae23bc5499832d106c415cc85173b", + "sha256:919c3fada8825b385fa057f9dfdde502b10f65b940ce3299cc932252edb1c57b", + "sha256:a0cd7b8eda7d3b0097a42a047d2604c3f1f27b4093e2a4e1e7ad379c9f639f65", + "sha256:af5e0559eb8da3cf0adbc1d26ce86e505ea82814012b7b6711855674ae3f6425", + "sha256:b30c4f60951e70f25cca03c8c127ff1cb6eb4670c551d8561cb71f8cd5aaad3f", + "sha256:b53e08a86d9180d87021b0ea0d5d4eacf7c252adfaa85dafcd8f1e3daf89dbf9", + "sha256:c5b626dc0c08dc593e462265ce974266f3e1dd90fa67807bef33704d88c62a28", + "sha256:d750362bb792d2311f94803ff309baec48486ecba75c9b905ea9b1f5eb06ef9f", + "sha256:e4a89441afa7cbd2f5df4e822b0d9f581971f805fa6884b59911cf238bdfa9b6", + "sha256:e7b18c4ccf0d813b6056704af86e14d6841e29ec558a9bce2f1ce2e3ee2ef70d", + "sha256:ef99c77d2c52bd95b42ff862c252a74c7528ec3b3cbb665c783e3948ebd811cf" ], "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==1.3.11" + "markers": "python_version >= '3.9'", + "version": "==1.4.1" }, "referencing": { "hashes": [ @@ -2791,11 +2804,11 @@ }, "rich": { "hashes": [ - "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06", - "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a" + "sha256:097cffdf85db1babe30cc7deba5ab3a29e1b9885047dab24c57e9a7f8a9c1466", + "sha256:b340e739f30aa58921dc477b8adaa9ecdb7cecc217be01d93730ee1bc8aa83be" ], - "markers": "python_full_version >= '3.7.0'", - "version": "==13.8.1" + "markers": "python_full_version >= '3.8.0'", + "version": "==13.9.1" }, "rpds-py": { "hashes": [ @@ -3087,13 +3100,6 @@ "markers": "python_version >= '3.7'", "version": "==1.3.1" }, - "snuggs": { - "hashes": [ - "sha256:501cf113fe3892e14e2fee76da5cd0606b7e149c411c271898e6259ebde2617b", - "sha256:988dde5d4db88e9d71c99457404773dabcc7a1c45971bfbe81900999942d9f07" - ], - "version": "==1.4.7" - }, "soupsieve": { "hashes": [ "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", diff --git a/docs/SETUP/BACK_END.md b/docs/SETUP/BACK_END.md index a0fff516..9a184d1c 100644 --- a/docs/SETUP/BACK_END.md +++ b/docs/SETUP/BACK_END.md @@ -32,7 +32,7 @@ POSTGRES_PASSWORD=a-strong-password-here VACANT_LOTS_DB=postgresql://postgres:${POSTGRES_PASSWORD}@localhost:5433/vacantlotdb ``` -All local environment variables will be passed through to docker-compose, so if you have them set up in the `.env` file, you should not need to hard-code them elsewhere. +All local environment variables will be passed through to docker compose, so if you have them set up in the `.env` file, you should not need to hard-code them elsewhere. #### Setting Environment Variables Locally @@ -45,13 +45,13 @@ export POSTGRES_PASSWORD=a-strong-password-here export VACANT_LOTS_DB=postgresql://postgres:${POSTGRES_PASSWORD}@localhost:5433/vacantlotdb ``` -All of your local environment variables will be passed through to docker-compose, so if you have them locally, you should not have to hard-code them. +All of your local environment variables will be passed through to docker compose, so if you have them locally, you should not have to hard-code them. ### Docker Build Docker is a platform that allows you to containerize and run applications in isolated environments, making it easier to manage dependencies and ensure consistent deployments. Download the [latest version of Docker Desktop for your operating system](https://www.docker.com/products/docker-desktop/). -We use [docker compose](https://docs.docker.com/compose/) to manage the backend Docker services. The `data/docker compose.yaml` file defines the services. The only service that runs perpetually in Docker is `postgres`. The other services are one-time batch jobs to build the data sets. +We use [docker compose](https://docs.docker.com/compose/) to manage the backend Docker services. The `data/docker-compose.yaml` file defines the services. The only service that runs perpetually in Docker is `postgres`. The other services are one-time batch jobs to build the data sets. 1. The first time you set up your backend, or any time either of the two Docker files change, build the Docker services by running: @@ -84,7 +84,7 @@ All Docker commands should be run from the `data/` directory. There is one main 1. In the terminal, navigate to your repository location using `cd path/to/clean-and-green-philly`. Then run `cd data` to move into the `data` directory. 2. Run `docker compose run vacant-lots-proj`. Enter your password if requested. If you run into an error message related to "KEY_ID" or something similar, you may have to do the following: - - Hard-code your `VACANT_LOTS_DB` variable in `docker compose.yml`. + - Hard-code your `VACANT_LOTS_DB` variable in `docker-compose.yml`. The backend also works on WSL Ubuntu running Docker for Linux on Windows 10. @@ -92,7 +92,7 @@ The backend also works on WSL Ubuntu running Docker for Linux on Windows 10. #### macOS -In the terminal, use the `cd` command to navigate to your repository location, and then into the `data` directory. Run `docker compose run vacant-lots-proj`. This command starts Docker Compose and sets up your environment as defined in your `docker compose.yml` file. When you're finished and want to shut down the Docker containers, run `docker compose down`. +In the terminal, use the `cd` command to navigate to your repository location, and then into the `data` directory. Run `docker compose run vacant-lots-proj`. This command starts Docker Compose and sets up your environment as defined in your `docker-compose.yml` file. When you're finished and want to shut down the Docker containers, run `docker compose down`. ### PostgreSQL