diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..87788cd --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,51 @@ +[build-system] +requires = ["setuptools>=64", "setuptools_scm>=8"] +build-backend = "setuptools.build_meta" + +[project] +name = "cortecs" + +authors = [ + {name = "Arjun Savel", email = "asavel@umd.edu"}, + {name= "Megan Bedell"}, + {name= "Eliza M.-R. Kempton"}, +] +description = "Compress opacity for radiative transfer" +readme = "README.md" +requires-python = ">=3.8" +keywords = ["astronomy"] +license = {text = "MIT"} +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Natural Language :: English", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Topic :: Scientific/Engineering :: Astronomy", +] +dependencies = [ + "numpy", + "jaxlib", + "jax", + "tqdm", + "h5py", + "matplotlib", + "pandas", +] +dynamic = ["version"] + + + +[project.optional-dependencies] +neural_networks = ["tensorflow<2.16", + "keras"] + +[project.urls] +Homepage = "https://github.com/arjunsavel/cortecs" +Issues = "https://github.com/arjunsavel/cortecs/issues" +Documentation = "https://cortecs.readthedocs.io" diff --git a/setup.py b/setup.py deleted file mode 100644 index c1410b5..0000000 --- a/setup.py +++ /dev/null @@ -1,96 +0,0 @@ -# Inspired by: -# https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/ - -import codecs -import os -import re - -from setuptools import find_packages, setup - -################################################################### - -NAME = "cortecs" -PACKAGES = find_packages(where="src") -META_PATH = os.path.join("src", NAME, "__init__.py") -CLASSIFIERS = [ - "Development Status :: 4 - Beta", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "Natural Language :: English", - "License :: OSI Approved :: MIT License", - "Programming Language :: Python", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Topic :: Scientific/Engineering :: Astronomy", -] -# todo: pin to requirements -INSTALL_REQUIRES = [ - "numpy", - "jaxlib", - "jax", - "tqdm", - "h5py", - "matplotlib", - "pandas", -] - -################################################################### - -HERE = os.path.abspath(os.path.dirname(__file__)) - - -def read(*parts): - """ - Build an absolute path from *parts* and and return the contents of the - resulting file. Assume UTF-8 encoding. - """ - with codecs.open(os.path.join(HERE, *parts), "rb", "utf-8") as f: - return f.read() - - -META_FILE = read(META_PATH) - - -def find_meta(meta): - """ - Extract __*meta*__ from META_FILE. - """ - meta_match = re.search( - r"^__{meta}__ = ['\"]([^'\"]*)['\"]".format(meta=meta), META_FILE, re.M - ) - if meta_match: - return meta_match.group(1) - raise RuntimeError("Unable to find __{meta}__ string.".format(meta=meta)) - - -if __name__ == "__main__": - setup( - name=NAME, - description=find_meta("description"), - license=find_meta("license"), - url=find_meta("uri"), - version=find_meta("version"), - author=find_meta("author"), - author_email=find_meta("email"), - maintainer=find_meta("author"), - maintainer_email=find_meta("email"), - package_data={"": ["README.md", "LICENSE"]}, - long_description=read("README.md"), - long_description_content_type="text/markdown", - packages=PACKAGES, - package_dir={"": "src"}, - zip_safe=False, - python_requires=">3.8.0", - classifiers=CLASSIFIERS, - include_package_data=True, - extras_require={ - "neural_networks": [ - "tensorflow<2.16", - "keras", - ] - }, - install_requires=INSTALL_REQUIRES, - options={"bdist_wheel": {"universal": "1"}}, - )