diff --git a/CHANGES.rst b/CHANGES.rst index 23c8410a..3ac214ab 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,8 @@ +Upcoming +======== + * The ``setup.cfg`` packaging configuration has been replaced by + ``pyproject.toml``. (+527) + v3.3.0 ====== * The unpickler was updated to avoid using ``eval``, which helps improve its diff --git a/pyproject.toml b/pyproject.toml index 8e907569..572944ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,82 @@ [build-system] -requires = ["setuptools>=56", "setuptools_scm[toml]>=3.4.1"] +requires = ["setuptools>=61.2", "setuptools_scm[toml]>=6.0"] build-backend = "setuptools.build_meta" +[project] +name = "jsonpickle" +authors = [ + { name = "Theelx" }, + { name = "David Aguilar", email = "davvid+jsonpickle@gmail.com" }, +] +description = "jsonpickle encodes/decodes any Python object to/from JSON" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", +] +requires-python = ">=3.7" +dependencies = [ +] +dynamic = ["version"] + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.urls] +Documentation = "https://jsonpickle.readthedocs.io/" +Homepage = "https://jsonpickle.readthedocs.io/" +Source = "https://github.com/jsonpickle/jsonpickle" + +[project.optional-dependencies] +dev = [ + "black", +] +testing = [ + # core + "pytest >= 6.0, != 8.1.*", + "pytest-benchmark", + "pytest-benchmark[histogram]", + "pytest-checkdocs >= 1.2.3", + "pytest-enabler >= 1.0.1", + "pytest-ruff >= 0.2.1", + # local + "bson", + "ecdsa", + "feedparser", + "gmpy2", + "numpy", + "pandas", + "pymongo", + "scikit-learn", + "scipy>=1.9.3; python_version > '3.10'", + "scipy; python_version <= '3.10'", + "simplejson", + "sqlalchemy", + "ujson", +] +docs = [ + "furo", + "rst.linker >= 1.9", + "sphinx >= 3.5", +] +packaging = [ + "build", + "setuptools>=61.2", + "setuptools_scm[toml]>=6.0", + "twine", +] + +[tool.setuptools] +packages = [ + "jsonpickle", + "jsonpickle.ext", +] +include-package-data = true +license-files = ["LICENSE"] + [tool.black] skip-string-normalization = true diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index e9530a02..00000000 --- a/setup.cfg +++ /dev/null @@ -1,80 +0,0 @@ -[metadata] -license_files = LICENSE -name = jsonpickle -author = David Aguilar -author_email = davvid@gmail.com -description = Python library for serializing arbitrary object graphs into JSON -long_description = file:README.rst -url = https://github.com/jsonpickle/jsonpickle -classifiers = - Development Status :: 5 - Production/Stable - Intended Audience :: Developers - License :: OSI Approved :: BSD License - Programming Language :: Python - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Programming Language :: Python :: 3.11 - Programming Language :: Python :: 3.12 - Programming Language :: Python :: 3.13 - Programming Language :: JavaScript - Operating System :: OS Independent - Topic :: Software Development :: Libraries :: Python Modules -platforms = - POSIX - Windows -keywords = - json pickle - json - pickle - marshal - serialization - JavaScript Object Notation - -[options] -packages = find: -include_package_data = true -python_requires = >=3.7 -install_requires = - importlib_metadata; python_version<"3.8" -setup_requires = setuptools_scm[toml] >= 3.4.1 - -[options.extras_require] -testing = - # upstream - pytest >= 3.5, !=3.7.3 - pytest-checkdocs >= 1.2.3 - pytest-cov - pytest-enabler >= 1.0.1 - pytest-ruff >= 0.2.1 - - # local - bson - ecdsa - feedparser - gmpy2 - numpy - pandas - pymongo - pytest-benchmark - pytest-benchmark[histogram] - scikit-learn - scipy>=1.9.3; python_version>"3.10" - scipy; python_version<="3.10" - simplejson - sqlalchemy - ujson - -docs = - # upstream - sphinx - rst.linker >= 1.9 - furo - - # local - -packaging = - build - twine