j40-cejst-2/data/data-pipeline/pyproject.toml
Matt Bowen d5fbb802e8
Add FUDS ETL (#1817)
* Add spatial join method (#1871)

Since we'll need to figure out the tracts for a large number of points
in future tickets, add a utility to handle grabbing the tract geometries
and adding tract data to a point dataset.

* Add FUDS, also jupyter lab (#1871)

* Add YAML configs for FUDS (#1871)

* Allow input geoid to be optional (#1871)

* Add FUDS ETL, tests, test-datae noteobook (#1871)

This adds the ETL class for Formerly Used Defense Sites (FUDS). This is
different from most other ETLs since these FUDS are not provided by
tract, but instead by geographic point, so we need to assign FUDS to
tracts and then do calculations from there.

* Floats -> Ints, as I intended (#1871)

* Floats -> Ints, as I intended (#1871)

* Formatting fixes (#1871)

* Add test false positive GEOIDs (#1871)

* Add gdal binaries (#1871)

* Refactor pandas code to be more idiomatic (#1871)

Per Emma, the more pandas-y way of doing my counts is using np.where to
add the values i need, then groupby and size. It is definitely more
compact, and also I think more correct!

* Update configs per Emma suggestions (#1871)

* Type fixed! (#1871)

* Remove spurious import from vscode (#1871)

* Snapshot update after changing col name (#1871)

* Move up GDAL (#1871)

* Adjust geojson strategy (#1871)

* Try running census separately first (#1871)

* Fix import order (#1871)

* Cleanup cache strategy (#1871)

* Download census data from S3 instead of re-calculating (#1871)

* Clarify pandas code per Emma (#1871)
2022-08-16 13:28:39 -04:00

144 lines
No EOL
4 KiB
TOML

[tool.poetry]
name = "justice40-data-pipeline"
version = "0.1.0"
description = "ETL, Score and Map Generation of Justice 40 Tool"
authors = ["Justice40 Engineering <j40-engineering@lists.usds.gov>"]
keywords = ["justice40", "environmental_justice", "python", "etl"]
readme = "README.md"
license = "MIT"
homepage = "https://github.com/usds/justice40-tool/tree/main/data/data-pipeline"
repository = "https://github.com/usds/justice40-tool"
include = [
"LICENSE",
]
packages = [
{include = "data_pipeline"}
]
[tool.poetry.dependencies]
CensusData = "^1.13"
click = "8.0.4" # pinning for now per https://github.com/psf/black/issues/2964
dynaconf = "^3.1.4"
geopandas = "^0.11.0"
ipdb = "^0.13.9"
ipython = "^7.31.1"
jupyter = "^1.0.0"
jupyter-contrib-nbextensions = "^0.5.1"
marshmallow-dataclass = "^8.5.3"
marshmallow-enum = "^1.5.1"
matplotlib = "^3.4.2"
numpy = "^1.22.1"
pandas = "^1.2.5"
pylint = "^2.11.1"
pillow = "9.0.1"
python = "^3.8"
pypandoc = "^1.6.3"
PyYAML = "^6.0"
requests = "^2.25.1"
tqdm = "4.62.0"
types-requests = "^2.25.0"
us = "^2.0.2"
xlsxwriter = "^2.0.0"
pydantic = "^1.9.0"
Rtree = "^1.0.0"
[tool.poetry.dev-dependencies]
black = {version = "^21.6b0", allow-prereleases = true}
flake8 = "^3.9.2"
liccheck = "^0.6.2"
mypy = "^0.910"
openpyxl = "^3.0.7"
pylint = "^2.9.6"
pytest = "^6.2.4"
safety = "^1.10.3"
tox = "^3.24.0"
pytest-mock = "^3.6.1"
tox-poetry = "^0.4.1"
pandas-vet = "^0.2.2"
pytest-snapshot = "^0.8.1"
nb-black = "^1.0.7"
seaborn = "^0.11.2"
papermill = "^2.3.4"
jupyterlab = "^3.4.4"
[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core>=1.0.0"]
[tool.pylint]
[tool.pylint."MESSAGE CONTROL"]
disable = [
"C0114", # Disables module docstrings
"R0903", # Disables too few public methods
"C0103", # Disables name case styling
"W0511", # Disables FIXME warning
"W1203", # Disables f-string interpolation for logging warning # Errors temporarily ignored for further discussion
"W0107", # Disables unnecessary pass
"W0221", # Disables arguments differ
"R0902", # Disables too many instance attributes
"R0914", # Disables too many local variables
"W0621", # Disables redefined outer name
"C0302", # Disables too many lines in module
"R1732", # Disables consider using "with"
"R1720", # Disables unnecessary "else" after "raise"
"C0206", # Disables consider iteratig with ".items()"
"C0200", # Disables consider using "enumerate" instead of "range" + "len"
"W0612", # Disables unused variable
"W0613", # Disables unused argument
"C0116", # Disables missing function or method docstring
"C0115", # Disables missing class docstring
"R0915", # Disables too many statements (score generation transform)
"W0231", # Disables super init not called
"R0801", # Disables duplicate code. There are a couple places we have similar code and
# unfortunately you can't disable this rule for individual lines or files, it's a
# known bug. https://github.com/PyCQA/pylint/issues/214#
]
[tool.pylint.FORMAT]
max-line-length = 150
[tool.pylint.typecheck]
generated-members = "pandas.*" # fixes E1101 for ETL.df
[tool.pylint.SIMILARITIES]
# Configures how pylint detects repetitive code
ignore-comments = "yes"
ignore-docstrings = "yes"
ignore-imports = "yes"
min-similarity-lines = 4
[tool.black]
line-length = 80
[tool.liccheck]
# Authorized and unauthorized licenses in LOWER CASE
authorized_licenses = [
"bsd",
"new bsd",
"bsd license",
"bsd 3-clause",
"new bsd license",
"simplified bsd",
"apache",
"apache 2.0",
"apache license 2.0",
"apache software license",
"apache software",
"gnu lgpl",
"gnu lesser general public license v2 (lgplv2)",
"gnu general public license v2 (gplv2)",
"gnu library or lesser general public license (lgpl)",
"lgpl with exceptions or zpl",
"isc license",
"isc license (iscl)",
"mit",
"mit license",
"mozilla public license 2.0 (mpl 2.0)",
"public domain",
"python software foundation license",
"python software foundation",
"zpl 2.1",
"gpl v3",
"historical permission notice and disclaimer (hpnd)",
]