-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
145 lines (134 loc) · 4.52 KB
/
Copy pathpyproject.toml
File metadata and controls
145 lines (134 loc) · 4.52 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
[build-system]
requires = ["setuptools>=61.0", "versioningit~=2.0"]
build-backend = "setuptools.build_meta"
# Self-descriptive entries which should always be present
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
[project]
name = "openfit"
description = "Molecular Density Fitting Using 3D Gaussian Functions"
dynamic = ["version"]
readme = "README.md"
authors = [
{ name = "Carlos Bueno", email = "carlos.bueno@rice.edu" }
]
license = "MIT"
license-files = ["LICENSE"]
# See https://pypi.org/classifiers/
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Chemistry",
"Topic :: Scientific/Engineering :: Physics",
]
requires-python = ">=3.10"
# Run-time dependencies. The core fitting code always imports these.
# Heavier, situational dependencies are kept lazy-imported and declared as
# optional extras below, so the core install stays lightweight.
dependencies = [
"numpy",
"scipy",
"numba",
]
[project.urls]
"Source" = "https://github.com/cabb99/OpenFit"
"Documentation" = "https://openfit.readthedocs.io/"
[project.scripts]
openfit = "openfit.cli:main"
[project.optional-dependencies]
# OpenMM molecular dynamics integration (add_force / update_force).
openmm = [
"openmm",
]
# Reading/writing density maps and trajectories.
io = [
"mrcfile",
"mdtraj",
]
# PDB/CIF/GRO parsing and the Scene-based workflow.
# MolScene is not on PyPI/conda yet, so install it from GitHub for now.
pdb = [
"molscene @ git+https://github.com/cabb99/molscene",
]
# Plotting helpers
viz = [
"matplotlib",
]
# YAML config support for `openfit run`.
cli = [
"pyyaml",
]
# Structure-based-model integration (Fit.from_smog / from_smog_structure).
smog = [
"OpenSMOG",
]
# OpenAWSEM coarse-grained force field (Fit.from_awsem).
awsem = [
"openawsem @ git+https://github.com/cabb99/openawsem",
]
# Everything needed for the full feature set (awsem kept separate — heavy + git-only).
all = [
"openmm",
"mrcfile",
"mdtraj",
"molscene @ git+https://github.com/cabb99/molscene",
"matplotlib",
"pyyaml",
"OpenSMOG",
]
test = [
"pytest>=6.1.2",
"pytest-cov",
]
[tool.setuptools]
# This subkey is a beta stage development and keys may change in the future, see https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html for more details
#
# As of version 0.971, mypy does not support type checking of installed zipped
# packages (because it does not actually import the Python packages).
# We declare the package not-zip-safe so that our type hints are also available
# when checking client code that uses our (installed) package.
# Ref:
# https://mypy.readthedocs.io/en/stable/installed_packages.html?highlight=zip#using-installed-packages-with-mypy-pep-561
zip-safe = false
# Let setuptools discover the package in the current directory,
# but be explicit about non-Python files.
# See also:
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#setuptools-specific-configuration
# Note that behavior is currently evolving with respect to how to interpret the
# "data" and "tests" subdirectories. As of setuptools 63, both are automatically
# included if namespaces is true (default), even if the package is named explicitly
# (instead of using 'find'). With 'find', the 'tests' subpackage is discovered
# recursively because of its __init__.py file, but the data subdirectory is excluded
# with include-package-data = false and namespaces = false.
include-package-data = false
[tool.setuptools.packages.find]
namespaces = false
where = ["."]
# Ref https://setuptools.pypa.io/en/latest/userguide/datafiles.html#package-data
[tool.setuptools.package-data]
openfit = [
"py.typed"
]
[tool.versioningit]
default-version = "1+unknown"
[tool.versioningit.format]
distance = "{base_version}+{distance}.{vcs}{rev}"
dirty = "{base_version}+{distance}.{vcs}{rev}.dirty"
distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty"
[tool.versioningit.vcs]
# The method key:
method = "git" # <- The method name
# Parameters to pass to the method:
match = ["*"]
default-tag = "1.0.0"
[tool.versioningit.write]
file = "openfit/_version.py"
[tool.black]
line-length = 119
target-version = ["py310", "py311", "py312", "py313"]
# Generated by versioningit; never reformat it.
extend-exclude = "openfit/_version.py"