Skip to content

Commit 8afb1df

Browse files
authored
Merge pull request #206 from stefdoerr/pyproject
Modernized package by using pyproject.toml instead of setup.py
2 parents ece3739 + fdd82aa commit 8afb1df

File tree

5 files changed

+121
-91
lines changed

5 files changed

+121
-91
lines changed

LONG_DESCRIPTION.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# PROPKA3
2+
3+
PROPKA predicts the pKa values of ionizable groups in proteins (version 3.0) and
4+
protein-ligand complexes (version 3.1 and later) based on the 3D structure.
5+
6+
For proteins without ligands both versions should produce the same result.
7+
8+
The method is described in the following papers, which you should cite
9+
in publications:
10+
11+
* Sondergaard, Chresten R., Mats HM Olsson, Michal Rostkowski, and Jan
12+
H. Jensen. "Improved Treatment of Ligands and Coupling Effects in
13+
Empirical Calculation and Rationalization of pKa Values." Journal of
14+
Chemical Theory and Computation 7, no. 7 (2011): 2284-2295.
15+
16+
* Olsson, Mats HM, Chresten R. Sondergaard, Michal Rostkowski, and Jan
17+
H. Jensen. "PROPKA3: consistent treatment of internal and surface
18+
residues in empirical pKa predictions." Journal of Chemical Theory
19+
and Computation 7, no. 2 (2011): 525-537.
20+
21+
See http://propka.org/ for the PROPKA web server.

MANIFEST.in

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
include README.md INSTALL
2-
include setup.py setup.cfg
1+
include README.md LONG_DESCRIPTION.md INSTALL
2+
include setup.py
33
include propka.cfg
44

55
include versioneer.py
66
include propka/_version.py
77

88
# Python type annotation declarations, see PEP-561
99
include propka/py.typed
10+
11+
prune docs
12+
prune tests

pyproject.toml

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
[project]
2+
name = "propka"
3+
description = "Heuristic pKa calculations with ligands"
4+
authors = [{ name = "Jan H. Jensen", email = "jhjensen@chem.ku.dk" }]
5+
maintainers = [{ name = "Nathan Baker", email = "nathanandrewbaker@gmail.com" }]
6+
license = { text = "LGPL v2.1" }
7+
readme = "LONG_DESCRIPTION.md"
8+
requires-python = ">=3.10"
9+
keywords = ["science", "chemistry", "bioinformatics", "pKa", "proteins"]
10+
classifiers = [
11+
"Development Status :: 6 - Mature",
12+
"Environment :: Console",
13+
"Intended Audience :: Science/Research",
14+
"License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)",
15+
"Operating System :: POSIX",
16+
"Operating System :: MacOS :: MacOS X",
17+
"Operating System :: Microsoft :: Windows",
18+
"Programming Language :: Python",
19+
"Programming Language :: Python :: 3.10",
20+
"Programming Language :: Python :: 3.11",
21+
"Programming Language :: Python :: 3.12",
22+
"Topic :: Scientific/Engineering :: Bio-Informatics",
23+
"Topic :: Scientific/Engineering :: Chemistry",
24+
]
25+
dynamic = ["version"]
26+
dependencies = ["numpy"]
27+
28+
[project.urls]
29+
Homepage = "http://propka.org"
30+
Repository = "https://github.com/jensengroup/propka"
31+
Documentation = "https://propka.readthedocs.io"
32+
33+
[project.scripts]
34+
propka3 = "propka.run:main"
35+
36+
[project.optional-dependencies]
37+
test = ["pytest", "numpy"]
38+
docs = ["sphinx>=3.1", "sphinx_rtd_theme", "sphinx_sitemap"]
39+
dev = [
40+
"pytest",
41+
"numpy",
42+
"sphinx>=3.1",
43+
"sphinx_rtd_theme",
44+
"sphinx_sitemap",
45+
"mypy",
46+
"coverage",
47+
"yapf",
48+
]
49+
50+
[build-system]
51+
requires = ["setuptools>=61.0", "versioneer[toml]==0.29"]
52+
build-backend = "setuptools.build_meta"
53+
54+
[tool.setuptools]
55+
zip-safe = true
56+
57+
58+
[tool.setuptools.packages.find]
59+
exclude = ["scripts*", "tests*"]
60+
61+
[tool.setuptools.package-data]
62+
propka = ["*.dat", "*.cfg", "*.json", "py.typed"]
63+
64+
[tool.versioneer]
65+
VCS = "git"
66+
style = "pep440"
67+
versionfile_source = "propka/_version.py"
68+
versionfile_build = "propka/_version.py"
69+
tag_prefix = "v"
70+
parentdir_prefix = "propka-"
71+
72+
[tool.coverage.run]
73+
source = ["propka"]
74+
omit = [
75+
# exclude versioneer generated file
76+
"propka/_version.py",
77+
# do not cover tests (already covered with source = propka)
78+
"tests/*",
79+
]
80+
81+
[tool.coverage.report]
82+
exclude_lines = ["pragma: no cover"]
83+
84+
[tool.yapf]
85+
column_limit = 88
86+
based_on_style = "pep8"
87+
allow_split_before_dict_value = false
88+
89+
[tool.mypy]
90+
files = ["propka", "tests"]
91+
exclude = ["_version\\.py$"]
92+
explicit_package_bases = true
93+
ignore_missing_imports = true

setup.cfg

Lines changed: 0 additions & 33 deletions
This file was deleted.

setup.py

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,8 @@
11
#! /usr/bin/python
22
# PROPKA 3
33

4-
from setuptools import setup, find_packages
4+
from setuptools import setup
55
import versioneer
66

77

8-
setup(
9-
name="propka",
10-
version=versioneer.get_version(),
11-
cmdclass=versioneer.get_cmdclass(),
12-
description="Heuristic pKa calculations with ligands", long_description="""
13-
PROPKA predicts the pKa values of ionizable groups in proteins (version 3.0) and
14-
protein-ligand complexes (version 3.1 and later) based on the 3D structure.
15-
16-
For proteins without ligands both version should produce the same result.
17-
18-
The method is described in the following papers, which you should cite
19-
in publications:
20-
21-
* Sondergaard, Chresten R., Mats HM Olsson, Michal Rostkowski, and Jan
22-
H. Jensen. "Improved Treatment of Ligands and Coupling Effects in
23-
Empirical Calculation and Rationalization of pKa Values." Journal of
24-
Chemical Theory and Computation 7, no. 7 (2011): 2284-2295.
25-
26-
* Olsson, Mats HM, Chresten R. Sondergaard, Michal Rostkowski, and Jan
27-
H. Jensen. "PROPKA3: consistent treatment of internal and surface
28-
residues in empirical pKa predictions." Journal of Chemical Theory
29-
and Computation 7, no. 2 (2011): 525-537.
30-
31-
See http://propka.org/ for the PROPKA web server.
32-
""",
33-
author="Jan H. Jensen",
34-
author_email="jhjensen@chem.ku.dk",
35-
maintainer="Nathan Baker",
36-
maintainer_email="nathanandrewbaker@gmail.com",
37-
license="LGPL v2.1",
38-
url="http://propka.org",
39-
keywords="science",
40-
classifiers=[
41-
'Development Status :: 6 - Mature',
42-
'Environment :: Console',
43-
'Intended Audience :: Science/Research',
44-
'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)',
45-
'Operating System :: POSIX',
46-
'Operating System :: MacOS :: MacOS X',
47-
'Operating System :: Microsoft :: Windows',
48-
'Programming Language :: Python',
49-
'Programming Language :: Python :: 3.10',
50-
'Programming Language :: Python :: 3.11',
51-
'Programming Language :: Python :: 3.12',
52-
'Topic :: Scientific/Engineering :: Bio-Informatics',
53-
'Topic :: Scientific/Engineering :: Chemistry',
54-
],
55-
packages=find_packages(exclude=['scripts']),
56-
package_data={'propka': ['*.dat', '*.cfg', '*.json']},
57-
entry_points={'console_scripts': ['propka3 = propka.run:main', ]},
58-
zip_safe=True,
59-
python_requires='>=3.10',
60-
tests_require=["numpy", "pytest"],
61-
test_suite="tests",
62-
)
8+
setup(version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass())

0 commit comments

Comments
 (0)