forked from pgmpy/pgmpy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
169 lines (155 loc) · 5.09 KB
/
pyproject.toml
File metadata and controls
169 lines (155 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
[project]
name = "pgmpy"
version = "1.0.0"
description = "Python Library for Causal and Probabilistic Modeling using Bayesian Networks"
readme = "README.md"
license = { file = "LICENSE" }
authors = [
{ name = "Ankur Ankan", email = "ankurankan@gmail.com" }
]
requires-python = ">=3.10,<3.15"
classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"Operating System :: Unix",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Scientific/Engineering :: Bio-Informatics"
]
dependencies = [
"huggingface_hub>=0.23",
"networkx>=3.0",
"numpy>=2.0",
"scipy>=1.10",
"scikit-learn>=1.2",
"pandas>=1.5",
"statsmodels>=0.14.5",
"tqdm>=4.64",
"pyparsing>=3.0",
"joblib>=1.2",
"opt_einsum>=3.3",
"scikit-base>=0.12.4",
]
[project.optional-dependencies]
torch = [
"torch>=2.5",
"pyro-ppl>=1.9.1",
]
optional = [
"pgmpy[torch]",
"daft-pgm>=0.1.4",
"xgboost>=2.0.3",
"litellm>=1.61.15",
"pygraphviz",
]
tests = [
"xdoctest>=0.11.0",
"pytest>=3.3.1",
"pytest-cov",
"pytest-split",
"pytest-xdist",
"coverage>=4.3.4",
"mock",
"black",
"pre-commit",
"jsonschema",
]
docs = [
"sphinx>=5.0",
"nbsphinx",
"numpydoc",
"sphinx_rtd_theme",
"sphinx-copybutton",
"sphinx-design",
"sphinxext-opengraph",
"sphinx_sitemap",
]
all = [
"pgmpy[optional,tests,docs]",
]
[project.urls]
Documentation = "https://www.pgmpy.org"
Download = "https://pypi.org/project/pgmpy/#files"
Homepage = "https://www.pgmpy.org"
Repository = "https://github.com/pgmpy/pgmpy"
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
exclude = ["tests"]
[tool.setuptools]
include-package-data = true
[tool.setuptools.package-data]
pgmpy = [
"utils/example_models/*.bif.gz",
"utils/example_models/*.json",
"utils/example_models/*.txt"
]
[tool.pytest.ini_options]
addopts = "-p no:doctest"
norecursedirs = [".git", "ignore", "build", "__pycache__"]
filterwarnings = ["default"]
[tool.ruff]
line-length = 120
exclude = [".git", "examples/*", "docs/source/conf.py", "pgmpy/estimators/__init__.py",
"pgmpy/factors/discrete/__init__.py", "pgmpy/identification/__init__.py", "pgmpy/inference/__init__.py",
"pgmpy/extern/*", "pgmpy/.github/*"]
target-version = "py314"
extend-include = ["*.ipynb"]
[tool.ruff.lint]
select = [
"E", # https://pypi.org/project/pycodestyle
"W", # https://pypi.org/project/pycodestyle
"F", # https://pypi.org/project/pyflakes
"S", # https://pypi.org/project/flake8-bandit
"UP", # https://docs.astral.sh/ruff/rules/#pyupgrade-up
"YTT", # https://pypi.org/project/flake8-2020/
"I", # isort
"C4", # https://pypi.org/project/flake8-comprehensions
"G010", # Deprecated log warn.
"PLR1722", # Use sys.exit() instead of exit() and quit().
"PT014", # pytest-duplicate-parametrize-test-cases.
"PT006", # Checks for the type of parameter names passed to pytest.mark.parametrize.
"PT007", # Checks for the type of parameter values passed to pytest.mark.parametrize.
]
ignore = [
"E203", # Whitespace-before-punctuation.
"E221", # Multiple spaces before operator.
"E222", # Multiple spaces after operator.
"E231", # Missing whitespace after comma.
"E241", # Multiple spaces after comma.
"E712", # Comparison to True/False using == or !=.
"E402", # Module-import-not-at-top-of-file.
"E731", # Do not assign a lambda expression, use a def.
"E741", # Ambiguous variable name
"S101", # Use of `assert` detected.
"S102", # Use of excec
"S105", # Possible hardcoded password
"S107", # Possible hardcoded password
"S110", # try-except-pass detected.
"S113", # Probable use of httpx call without timeout
"S202", # Uses of `tarfile.extractall()`
"S301", # pickle and modules that wrap it can be unsafe
"S307", # Use of possibly insecure function
"S310", # Audit URL open for permitted schemes
"S311", # Standard pseudo-random generators not suitable for crypto.
"S314", # Using xml to parse untrusted data.
"S318", # Using xml minidom to parse untrusted data.
"S602", # sub process call with shell=True unsafe
"S605", # Starting a process with a shell, possible injection detected
"C408", # Unnecessary dict call - rewrite as a literal.
"C409", # Unnecessary `list` literal passed to `tuple()` (rewrite as a `tuple` literal)
"C414", # Unnecessary `list` call within `sorted()`
"C416", # Unnecessary list comprehension - rewrite as a generator
"C417", # Unnecessary `map` usage (rewrite using a generator expression)
"C419", # Unnecessary list comprehension, some are flagged yet are not
"UP026", # Replace mock with unittest.mock (external mock has different behavior).
"UP031", # Use format specifier instead of %
]