[build-system] build-backend = "setuptools.build_meta" requires = [ "setuptools>=77.0.3", "setuptools-scm>=8", ] [project] name = "openfe" description = "" readme = "README.md" license = "MIT" license-files = [ "LICENSE" ] authors = [ { name = "The OpenFE developers", email = "openfe@omsf.io" } ] # blocked by OpenMM 8.4 for python 3.14 support requires-python = ">=3.10,<3.14" classifiers = [ "Development Status :: 1 - Planning", "Intended Audience :: Science/Research", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Chemistry", ] dynamic = [ "version" ] urls = { Homepage = "https://github.com/OpenFreeEnergy/openfe" } scripts.openfe = "openfecli.cli:main" [tool.setuptools] zip-safe = false include-package-data = true [tool.setuptools.packages] find = { namespaces = false } [tool.setuptools.package-data] openfe = [ '"./openfe/tests/data/lomap_basic/toluene.mol2"' ] [tool.setuptools_scm] fallback_version = "0.0.0" [tool.ruff] line-length = 100 # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. lint.select = [ # "F", # Pyflakes # "I", # isort # "W", # pycodestyle warnings # "E", # pycodestyle errors # "C901" # mccabe complexity TODO: add this back in # "UP", # TODO: add this in ] lint.ignore = [ "E402", # module-level import not at top (conflicts w/ isort) "E722", # bare excepts (TODO: we should fix these in a follow-up PR) "E731", # lambda expressions (TODO: we should fix these) "F401", # unused imports (TODO: we should fix these) "UP03", # pyupgrade linting (TODO: we should fix these) ] lint.isort.known-first-party = [ "openfe" ] [tool.coverage.run] omit = [ "openfe/due.py", "*/tests/dev/*py", "*/tests/protocols/test_openmm_rfe_slow.py", ] [tool.coverage.report] exclude_lines = [ 'if __name__ == "__main__"', "pragma: no cover", "pragma: no-cover", "-no-cov", "raise NotImplementedError", ] [tool.mypy] files = "openfe" ignore_missing_imports = true warn_unused_ignores = true