Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/actions/setup-deps/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ inputs:
default: 'pytest-cov'
pytest-xdist:
default: 'pytest-xdist'
trove-classifiers:
default: 'trove-classifiers'
# pip-install optional dependencies
duecredit:
default: 'duecredit'
Expand Down Expand Up @@ -145,6 +147,7 @@ runs:
${{ inputs.coverage }}
${{ inputs.pytest-cov }}
${{ inputs.pytest-xdist }}
${{ inputs.trove-classifiers }}
PIP_OPT_DEPS: |
${{ inputs.duecredit }}
${{ inputs.parmed }}
Expand Down
1 change: 1 addition & 0 deletions package/CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Fixes
(e.g. bonds, angles) (PR #3779).

Enhancements
* MDAnalysis now follows PEP621 (PR #3528)
* Added a reader for GROMACS TNG files based on PyTNG (PR #3765,
Issue #3237, partially addressing Issue #865)
* Added ability for hbond analysis to use types when resnames are not
Expand Down
195 changes: 0 additions & 195 deletions package/pypi-description.rst

This file was deleted.

87 changes: 87 additions & 0 deletions package/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,90 @@ requires = [
"setuptools",
"wheel",
]

[project]
name = "MDAnalysis"
dynamic = ['version',]
license = {file = "LICENSE"}
readme = "README.rst"
description = "An object-oriented toolkit to analyze molecular dynamics trajectories."
authors = [
{name = 'MDAnalysis Development Team', email = 'mdanalysis@numfocus.org'}
]
maintainers = [
{name = 'MDAnalysis Core Developers', email = 'mdanalysis@numfocus.org'}
]
requires-python = ">=3.8"
dependencies = [
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't too sure how to deal with the optional deps here.

Tests -> should I just add MDAnalysisTests as the dep? How do you dynamically set the version number in pyproject.toml?
Extra deps ->

  • Not sure what the keyword should be here (it's unclear if you can just say "extra").
  • How do we deal with conda only deps? Does it matter?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

conda only deps seems like a bad idea in general, not sure you can do much about them here..

As for dependencies, I think it should just be the mandatory runtime dependencies, and then [project.optional-dependencies] can contain sections for test, doc, and dev tools (I'd suggest just looking at i.e., the SciPy example pyproject.toml and adapting for our purposes, if you aren't already doing that).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, for now let's just skip [project.optional-dependencies] since most are conda based, I'll raise an issue on merge of this PR with all the things that can be added at a later date to augment the pyproject.toml.

'numpy>=1.20.0',
'biopython>=1.71',
'networkx>=2.0',
'GridDataFormats>=0.4.0',
'mmtf-python>=1.0.0',
'joblib>=0.12',
'scipy>=1.5.0',
'matplotlib>=1.5.1',
'tqdm>=4.43.0',
'threadpoolctl',
'packaging',
'fasteners',
'gsd>=1.9.3',
]
keywords = [
"python", "science", "chemistry", "biophysics", "molecular-dynamics",
"computational-chemistry", "molecular-simulation", "analysis",
"trajectory-analysis",
]
classifiers = [
'Development Status :: 6 - Mature',
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)',
'Operating System :: POSIX',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Programming Language :: Python',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: C',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Bio-Informatics',
'Topic :: Scientific/Engineering :: Chemistry',
'Topic :: Software Development :: Libraries :: Python Modules',
]

[project.optional-dependencies]
extra_formats = [
"netCDF4>=1.0",
"h5py>=2.10",
"chemfiles>=0.10",
"pyedr>=0.7.0",
]
analysis = [
"seaborn",
"scikit-learn",
"tidynamics>=1.0.0",
]
doc = [
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing test entry because passing in a dynamic version for MDAnalysisTests doesn't really work...

"sphinx",
"sphinx-sitemap",
"sphinx_rtd_theme",
"msmb_theme==1.2.0",
"sphinxcontrib-bibtex",
"pybtex",
"pybtex-docutils",
]


[project.urls]
Documentation = 'https://docs.mdanalysis.org/'
"User Guide" = 'https://userguide.mdanalysis.org/'
"Issue Tracker" = 'https://github.com/mdanalysis/mdanalysis/issues'
"User Group" = 'https://groups.google.com/g/mdnalysis-discussion/'
Discord = 'https://discord.com/channels/807348386012987462/'
Blog = 'https://www.mdanalysis.org/blog/'
Twitter = 'https://twitter.com/mdanalysis'
Source = 'https://github.com/mdanalysis/mdanalysis'

7 changes: 3 additions & 4 deletions package/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ def long_description(readme):
'Development Status :: 6 - Mature',
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',
'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)',
'Operating System :: POSIX',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows ',
Expand Down Expand Up @@ -610,8 +610,7 @@ def long_description(readme):

setup(name='MDAnalysis',
version=RELEASE,
description=('An object-oriented toolkit to analyze molecular dynamics '
'trajectories generated by CHARMM, Gromacs, NAMD, LAMMPS, or Amber.'),
description='An object-oriented toolkit to analyze molecular dynamics trajectories.',
long_description=LONG_DESCRIPTION,
long_description_content_type='text/x-rst',
author='MDAnalysis Development Team',
Expand All @@ -629,7 +628,7 @@ def long_description(readme):
'Twitter': 'https://twitter.com/mdanalysis',
'Source': 'https://github.com/mdanalysis/mdanalysis',
},
license='GPL 2',
license='GPL-2.0-or-later',
classifiers=CLASSIFIERS,
provides=['MDAnalysis'],
packages=find_packages(),
Expand Down
4 changes: 2 additions & 2 deletions testsuite/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def run(self):
'Development Status :: 6 - Mature',
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',
'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)',
'Operating System :: POSIX',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows ',
Expand Down Expand Up @@ -129,7 +129,7 @@ def run(self):
'Issue Tracker': 'https://github.com/mdanalysis/mdanalysis/issues',
'Source': 'https://github.com/mdanalysis/mdanalysis',
},
license='GPL 2',
license='GPL-2.0-or-later',
classifiers=CLASSIFIERS,
packages=find_packages(),
package_dir={'MDAnalysisTests': 'MDAnalysisTests',
Expand Down