173 строки
4.4 KiB
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
|