j40-cejst-2/data/data-pipeline/pyproject.toml
Shaun Verch 0abf04d6c2
Remove requirements.txt as a dependency (#1111)
* Remove requirements.txt as a dependency

This converts both docker and tox to use poetry, eliminating usage of
requirements.txt in both flows.

- In tox, uses the tox-poetry package which installs dependencies from
  the lockfile.
- In docker, uses
  https://stackoverflow.com/questions/53835198/integrating-python-poetry-with-docker
  as a reference.

* Don't copy pyproject.toml

* Remove obsoleted docs about requirements.txt

* Add --full-trace option to pytest

* Fix liccheck

liccheck works with requirements.txt, not with poetry, so there needs to
be an extra translation step.

* TEMP: Add WIP fix for pandas issue

This is just to see if the github actions would pass once this fix gets
merged, but it's being reviewed separately.

* Revert "TEMP: Add WIP fix for pandas issue"

This reverts commit 06e38e8cc77f5f3105c6e7a9449901db67aa1c82.
2022-01-10 16:43:56 -05:00

122 lines
3.4 KiB
TOML

[tool.poetry]
authors = ["Your Name <you@example.com>"]
description = "ETL and Generation of Justice 40 Score"
name = "data-pipeline"
version = "0.1.0"
[tool.poetry.dependencies]
CensusData = "^1.13"
click = "^8.0.1"
dynaconf = "^3.1.4"
geopandas = "^0.9.0"
ipython = "^7.24.1"
jupyter = "^1.0.0"
jupyter-contrib-nbextensions = "^0.5.1"
matplotlib = "^3.4.2"
numpy = "^1.21.0"
pandas = "^1.2.5"
python = "^3.7.1"
pypandoc = "^1.6.3"
requests = "^2.25.1"
tqdm = "4.62.0"
types-requests = "^2.25.0"
us = "^2.0.2"
xlsxwriter = "^2.0.0"
ipdb = "^0.13.9"
pylint = "^2.11.1"
[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"
[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
"R0201", # Disables method could have been a function
"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)",
]