Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
94 lines (87 loc) · 2.67 KB
/
Copy pathpyproject.toml
File metadata and controls
94 lines (87 loc) · 2.67 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
[project]
name = "acopula"
version = "0.1.0"
description = "Archimedean copula inference via Taylor-mode automatic differentiation in JAX"
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
license-files = ["LICENSE"]
authors = [
{ name = "Cambridge Yang", email = "camyang@csail.mit.edu" },
{ name = "Dongdong Li", email = "dli.stats@gmail.com" },
]
keywords = [
"copula",
"archimedean-copula",
"nested-copula",
"automatic-differentiation",
"taylor-mode",
"jax",
"survival-analysis",
"censored-likelihood",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Mathematics",
]
dependencies = [
"jax>=0.8,<0.9",
"jet-array==0.1.0a2",
"jaxopt>=0.8",
"optimistix>=0.0.6",
"quadax>=0.2.9",
"equinox>=0.13",
# Direct ref to the patched fork (jax-0.8 import fixes + copy_p ILDJ +
# tfp-nightly dep). pip and uv both honor this, so `pip install
# git+<acopula>` works. NOTE: a git URL here makes the package
# un-uploadable to PyPI; swap back to `oryx>=<ver>` once a jax-0.8
# compatible oryx is published.
"oryx @ git+https://github.com/thisiscam/oryx.git@copulaad_support",
"tfp-nightly==0.26.0.dev20251116",
"scipy>=1.11",
"sympy>=1.12",
"optax>=0.2",
]
[project.urls]
Homepage = "https://github.com/thisiscam/acopula"
Repository = "https://github.com/thisiscam/acopula"
Issues = "https://github.com/thisiscam/acopula/issues"
[project.optional-dependencies]
examples = [
"matplotlib>=3.7",
"networkx>=3",
"pydot>=2",
]
gpu = [
"jax[cuda12]>=0.8,<0.9; sys_platform == 'linux' and platform_machine == 'x86_64'",
]
test = ["pytest>=7", "mpmath>=1.3", "pytest-xdist>=3"]
docs = [
"mkdocs-material>=9.5",
"mkdocstrings[python]>=0.26",
"mkdocs-llmstxt>=0.1",
"mkdocs-jupyter>=0.24",
]
[tool.uv]
required-environments = [
"sys_platform == 'linux' and platform_machine == 'x86_64'",
]
[tool.hatch.metadata]
# acopula depends on the oryx fork via a git direct reference (see
# [project.dependencies]); hatchling requires opting in to build it.
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["acopula"]
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
"slow: heavy test (deep nesting / e2e sampling / high-d). Deselected in the PR gate via -m 'not slow'; run in the nightly full-suite job.",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"