diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 9b37dee9..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -include requirements*.txt -include *.md *.rst -include LICENSE -include pymc_experimental/version.txt diff --git a/pymc_experimental/__init__.py b/pymc_experimental/__init__.py index d519ff3d..1541e677 100644 --- a/pymc_experimental/__init__.py +++ b/pymc_experimental/__init__.py @@ -17,7 +17,8 @@ from pymc_experimental.inference.fit import fit from pymc_experimental.model.marginal_model import MarginalModel from pymc_experimental.model.model_api import as_model -from pymc_experimental.version import __version__ + +__version__ = "1.1.0" _log = logging.getLogger("pmx") @@ -36,5 +37,4 @@ "fit", "MarginalModel", "as_model", - "__version__", ] diff --git a/pymc_experimental/version.py b/pymc_experimental/version.py deleted file mode 100644 index cc0aacca..00000000 --- a/pymc_experimental/version.py +++ /dev/null @@ -1,11 +0,0 @@ -import os - - -def get_version(): - version_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.txt") - with open(version_file) as f: - version = f.read().strip() - return version - - -__version__ = get_version() diff --git a/pymc_experimental/version.txt b/pymc_experimental/version.txt deleted file mode 100644 index 17e51c38..00000000 --- a/pymc_experimental/version.txt +++ /dev/null @@ -1 +0,0 @@ -0.1.1 diff --git a/pyproject.toml b/pyproject.toml index 1fb70104..55b7b5c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,72 @@ +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "pymc_experimental" +authors = [ + {name = "PyMC Developers", email = "pymc.devs@gmail.com"}, +] +description = "A home for new additions to PyMC, which may include unusual probability distributions, advanced model fitting algorithms, or any code that may be inappropriate to include in the pymc repository, but may want to be made available to users." +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "License :: OSI Approved :: Apache Software License", + "Intended Audience :: Science/Research", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics", + "Operating System :: OS Independent", +] +readme = "README.md" +requires-python = ">=3.10" +keywords = [ + "probability", + "machine learning", + "statistics", + "mcmc", + "sampling", + "bayesian", +] +license = {file = "LICENSE"} +dynamic = ["version"] # specify the version in the __init__.py file +dependencies = [ + "pymc>=5.16.1", + "scikit-learn", +] + +[project.optional-dependencies] +dev = [ + "pytest>=6.0", + "dask[all]", + "blackjax>1.0.0", + "statsmodels", +] +docs = [ + "nbsphinx>=0.4.2", + "pydata-sphinx-theme>=0.6.3", + "sphinx>=4.0", + "pymc-sphinx-theme@git+https://github.com/pymc-devs/pymc-sphinx-theme", +] + +[project.urls] +Documentation = "https://www.pymc.io/projects/experimental/" +Repository = "https://github.com/pymc-devs/pymc-experimental.git" +Issues = "https://github.com/pymc-devs/pymc-experimental/issues" + +[tool.setuptools.packages.find] +where = ["."] +include = ["pymc_experimental"] +exclude = ["tests", "notebooks"] +# Additional install requirements for running tests +namespaces = false + +[tool.setuptools.dynamic] +version = {attr = "pymc_experimental.__version__"} + [tool.pytest.ini_options] minversion = "6.0" xfail_strict = true diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index a28518d8..00000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,5 +0,0 @@ -dask[all] -blackjax - -# Used as benchmark for statespace models -statsmodels diff --git a/requirements-docs.txt b/requirements-docs.txt deleted file mode 100644 index 185288a8..00000000 --- a/requirements-docs.txt +++ /dev/null @@ -1,4 +0,0 @@ -nbsphinx>=0.4.2 -pydata-sphinx-theme>=0.6.3 -sphinx>=4 -git+https://github.com/pymc-devs/pymc-sphinx-theme diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index a7141a82..00000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -pymc>=5.16.1 -scikit-learn diff --git a/setup.py b/setup.py deleted file mode 100644 index 404e0411..00000000 --- a/setup.py +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright 2022 The PyMC Developers -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import itertools -import os - -from codecs import open -from os.path import dirname, join, realpath - -from setuptools import find_packages, setup - -DISTNAME = "pymc-experimental" -DESCRIPTION = "A home for new additions to PyMC, which may include unusual probability distribitions, advanced model fitting algorithms, or any code that may be inappropriate to include in the pymc repository, but may want to be made available to users." -AUTHOR = "PyMC Developers" -AUTHOR_EMAIL = "pymc.devs@gmail.com" -URL = "http://github.com/pymc-devs/pymc-experimental" -LICENSE = "Apache License, Version 2.0" - -classifiers = [ - "Development Status :: 5 - Production/Stable", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "License :: OSI Approved :: Apache Software License", - "Intended Audience :: Science/Research", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Mathematics", - "Operating System :: OS Independent", -] - -PROJECT_ROOT = dirname(realpath(__file__)) - -# Get the long description from the README file -with open(join(PROJECT_ROOT, "README.md"), encoding="utf-8") as buff: - LONG_DESCRIPTION = buff.read() - -REQUIREMENTS_FILE = join(PROJECT_ROOT, "requirements.txt") -DEV_REQUIREMENTS_FILE = join(PROJECT_ROOT, "requirements-dev.txt") - -with open(REQUIREMENTS_FILE) as f: - install_reqs = f.read().splitlines() - - -with open(DEV_REQUIREMENTS_FILE) as f: - dev_install_reqs = f.read().splitlines() - - -extras_require = dict( - dask_histogram=["dask[complete]", "xhistogram"], - histogram=["xhistogram"], -) -extras_require["complete"] = sorted(set(itertools.chain.from_iterable(extras_require.values()))) -extras_require["dev"] = dev_install_reqs - - -def read_version(): - here = os.path.abspath(os.path.dirname(__file__)) - with open(os.path.join(here, "pymc_experimental", "version.txt")) as f: - version = f.read().strip() - return version - - -if __name__ == "__main__": - setup( - name="pymc-experimental", - version=read_version(), - maintainer=AUTHOR, - maintainer_email=AUTHOR_EMAIL, - description=DESCRIPTION, - license=LICENSE, - url=URL, - long_description=LONG_DESCRIPTION, - long_description_content_type="text/markdown", - packages=find_packages(), - # because of an upload-size limit by PyPI, we're temporarily removing docs from the tarball. - # Also see MANIFEST.in - # package_data={'docs': ['*']}, - include_package_data=True, - classifiers=classifiers, - python_requires=">=3.10", - install_requires=install_reqs, - extras_require=extras_require, - ) diff --git a/setupegg.py b/setupegg.py deleted file mode 100755 index 168c05b9..00000000 --- a/setupegg.py +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2020 The PyMC Developers -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#!/usr/bin/env python -""" -A setup.py script to use setuptools, which gives egg goodness, etc. -""" - -with open("setup.py") as s: - exec(s.read())