dowhy/pyproject.toml

173 строки
4.4 KiB
TOML

[tool.poetry]
name = "dowhy"
#
# 0.0.0 is standard placeholder for poetry-dynamic-versioning
# any changes to this should not be checked in
#
version = "0.0.0"
description = "DoWhy is a Python library for causal inference that supports explicit modeling and testing of causal assumptions"
authors = ["PyWhy Community <amshar@microsoft.com>"]
maintainers = []
license = "MIT"
documentation = "https://py-why.github.io/dowhy"
repository = "https://github.com/pywhy/dowhy"
classifiers = [
'Development Status :: 4 - Beta',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
]
keywords = [
'causality',
'machine-learning',
'causal-inference',
'statistics',
'graphical-model',
]
include = ['docs', 'tests', 'CONTRIBUTING.md', 'LICENSE']
readme = 'README.rst'
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
[tool.poetry-dynamic-versioning.substitution]
files = ["dowhy/__init__.py"]
#
# Dependency compatibility notes:
# * xgboost requires Python >=3.7,<3.11
# * pygraphviz requires Python >=3.8
# * networkx requires Python >= 3.8
# * llvmlite requires Python >=3.6,<3.11
#
[tool.poetry.dependencies]
python = ">=3.8,<3.10"
cython = "^0.29.32"
scipy = "^1.8.1"
statsmodels = "^0.13.2"
numpy = "^1.23.1"
pandas = "^1.4.3"
networkx = "^2.8.5"
sympy = "^1.10.1"
scikit-learn = "1.0.2"
pydot = { version = "^1.4.2", optional = true }
joblib = "^1.1.0"
pygraphviz = { version = "^1.9", optional = true }
econml = { version = "*", optional = true }
tqdm = "^4.64.0"
# CausalML Extra (causalml is wired to use llvmlite 0.36)
causalml = { git = "https://github.com/uber/causalml", branch = "master", optional = true }
llvmlite = { version = "^0.36.0", optional = true }
#Plotting Extra
matplotlib = { version = "^3.5.3", optional = true }
[tool.poetry.extras]
econml = ["econml"]
pygraphviz = ["pygraphviz"]
pydot = ["pydot"]
plotting = ["matplotlib"]
causalml = ["causalml", "llvmlite", "cython"]
[tool.poetry.group.dev.dependencies]
poethepoet = "^0.16.0"
flake8 = "^4.0.1"
black = { version = "^22.6.0", extras = ["jupyter"] }
isort = "^5.10.1"
pytest = "^7.1.2"
pytest-cov = "^3.0.0"
pytest-split = "^0.8.0"
nbformat = "^5.4.0"
jupyter = "^1.0.0"
flaky = "^3.7.0"
tensorflow = "^2.9.1"
keras = "^2.9.0"
xgboost = "^1.6.1"
mypy = "^0.971"
econml = "*"
pygraphviz = "^1.9"
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
#
# Dependencies for Documentation Generation
#
rpy2 = "^3.5.2"
sphinx-multiversion = { git = "https://github.com/petergtz/sphinx-multiversion.git", branch = "override-version-with-refname" }
sphinxcontrib-googleanalytics = { git = "https://github.com/sphinx-contrib/googleanalytics.git", branch = "master" }
nbsphinx = "^0.8.9"
sphinx-rtd-theme = "^1.0.0"
pydata-sphinx-theme = "^0.9.0"
ipykernel = "^6.15.1"
sphinx-copybutton = "0.5.0"
#
# Versions defined for security reasons
#
# https://github.com/py-why/dowhy/security/dependabot/1 - CVE-2022-34749
nbconvert = { version = "7.0.0rc3", allow-prereleases = true }
[tool.pytest.ini_options]
markers = ["advanced: not be to run each time. only on package updates."]
[tool.poe.tasks]
# stop the build if there are Python syntax errors or undefined names
_flake8Errors = "flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics"
_flake8Warnings = "flake8 . --count --exit-zero --statistics"
_black = 'black .'
_isort = 'isort .'
_black_check = 'black --check .'
_isort_check = 'isort --check .'
# testing tasks
test = "pytest -v -m 'not advanced' --durations=0 --durations-min=60.0"
test_durations = "poetry run poe test --store-durations"
test_advanced = "pytest -v"
test_focused = "pytest -v -m 'focused'"
[tool.poe.tasks.format]
sequence = ['_black', '_isort']
ignore_fail = 'return_non_zero'
[tool.poe.tasks.format_check]
sequence = ['_black_check', '_isort_check']
ignore_fail = 'return_non_zero'
[tool.poe.tasks.lint]
sequence = ['_flake8Errors', '_flake8Warnings']
ignore_fail = 'return_non_zero'
[tool.poe.tasks.verify]
sequence = ['lint', 'format_check', 'test']
ignore_fail = "return_non_zero"
[tool.black]
line-length = 120
target-version = ['py38']
include = '\.pyi?$'
extend-exclude = '''
(
__pycache__
| \.github
)
'''
[tool.pylint]
max-line-length = 120
disable = ["W0511"]
[tool.isort]
profile = 'black'
multi_line_output = 3
line_length = 120
py_version = 38