Skip to content

Switch from setup.py to pyproject.toml #167

Open
@benmwebb

Description

@benmwebb

Modern Python packaging wants us to use pyproject.toml rather than setup.py. Notably, the --install-option argument does not work with the latest setuptools, and the replacement, --config-settings, strongly recommends pyproject.toml.

The file might look somewhat like

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "ihm"
version = "2.4"
url='https://github.com/ihmwg/python-ihm'
authors = [
    {name="Ben Webb", email="ben@salilab.org"}
]
readme = "README.md"
description='Package for handling IHM mmCIF and BinaryCIF files'
classifiers=[
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Intended Audience :: Science/Research",
    "Topic :: Scientific/Engineering",
]
dependencies=['msgpack']

[tool.ruff.lint]
select = ["E", "F"]
ignore = ["E402"]

[tool.setuptools]
packages=['ihm', 'ihm.util']
ext-modules = [
  {name="ihm._format", sources=["src/ihm_format.c", "src/cmp.c", "src/ihm_format.i"], include_dirs=['src'], swig_opts=['-keyword', '-nodefaultctor', '-nodefaultdtor', '-noproxy']}
]

This doesn't currently handle the precompiled SWIG wrapper that we use in setup.py, though.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions