Skip to content

Commit

Permalink
Gradually cut over to pyproject.toml
Browse files Browse the repository at this point in the history
  • Loading branch information
rocky committed Aug 5, 2024
1 parent 09e240b commit 9daa219
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 63 deletions.
9 changes: 6 additions & 3 deletions mathicsscript/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@
"""
mathicsscript is a command-line interface to Mathics.
Copyright 2020-2021 The Mathics Team
Copyright 2020-2021, 2024 The Mathics Team
"""

import os.path as osp

from mathics.core.definitions import autoload_files

from mathicsscript.version import __version__


def load_default_settings_files(definitions):
import os.path as osp
from mathics.core.definitions import autoload_files

root_dir = osp.realpath(osp.dirname(__file__))

Expand Down
79 changes: 79 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
[build-system]
requires = [
"setuptools>=70.0.0", # CVE-2024-38335 recommends this
# needed for building tables for the sdist:
"PyYAML",
"click",
]
build-backend = "setuptools.build_meta"

[project]
name = "mathicsscript"
description = "Command-line interface to Mathics3"
dependencies = [
"Mathics_Scanner>=1.3.0",
"Mathics3 >= 7.0.0dev0",
"click",
"colorama",
"columnize",
"networkx",
"prompt_toolkit>=3.0.18",
"Pygments>=2.9.0", # Want something late enough that has the "inkpot" style
"mathics_pygments>=1.0.2",
"term-background >= 1.0.1",
]
requires-python = ">=3.8"
readme = "README.rst"
license = {text = "GPL-3.0-only"}
keywords = ["Mathematica", "Wolfram", "Interpreter", "Shell", "Math", "CAS"]
maintainers = [
{name = "Mathics3 Group"},
]
classifiers = [
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"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 :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Scientific/Engineering :: Physics",
"Topic :: Software Development :: Interpreters",
]
dynamic = ["version"]

[project.optional-dependencies]
dev = [
"pytest",
]
full = [
"PyYAML", # Used for admin-tools/make-tables.sh to build JSON tables
"PyQT5", # For interactive display of graphs via matplotlib
"cairosvg", # For rendering Plots and Graphs as SVGs via matplotlib
"cson", # for xasy
"matplotlib" # For rendering SVG plots
]

[project.scripts]
mathicsscript = "mathicsscript.__main__:main"
# fake_psviewer.py = "mathicsscript.fake_psviewer:main"

[project.urls]
Homepage = "https://mathics.org/"

[tool.setuptools.package-data]
"mathics_scanner" = [
"mathicsscript/data/inputrc-no-unicode",
"mathicsscript/data/inputrc-unicode",
"mathicsscript/user-settings.m",
"mathicsscript/autoload/settings.m",
"mathicsscript/config.asy",
]

[tool.setuptools.dynamic]
version = {attr = "mathicsscript.version.__version__"}
60 changes: 0 additions & 60 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,56 +13,11 @@
python setup.py --help install
"""

import sys
import platform

import os.path as osp
import re
from setuptools import setup, find_packages


def get_srcdir():
filename = osp.normcase(osp.dirname(osp.abspath(__file__)))
return osp.realpath(filename)


srcdir = get_srcdir()

# Ensure user has the correct Python version
if sys.version_info < (3, 6):
print("mathicsscript does not support Python %d.%d" % sys.version_info[:2])
sys.exit(-1)


def read(*rnames):
return open(osp.join(get_srcdir(), *rnames)).read()


# stores __version__ in the current namespace
exec(compile(read("mathicsscript/version.py"), "mathicsscript/version.py", "exec"))

long_description = read("README.rst") + "\n"
exec(read("mathicsscript/version.py"))

is_PyPy = platform.python_implementation() == "PyPy"

EXTRAS_REQUIRE = {}
for kind in ("dev", "full"):
extras_require = []
requirements_file = f"requirements-{kind}.txt"
for line in open(requirements_file).read().split("\n"):
if line and not line.startswith("#"):
requires = re.sub(r"([^#]+)(\s*#.*$)?", r"\1", line)
extras_require.append(requires)
EXTRAS_REQUIRE[kind] = extras_require

setup(
maintainer="Mathics Group",
maintainer_email="[email protected]",
author_email="[email protected]",
data_files=["requirements-dev.txt", "requirements-full.txt"],
name="mathicsscript",
version=__version__, # noqa
packages=find_packages(),
include_package_data=True,
package_data={
Expand All @@ -74,27 +29,12 @@ def read(*rnames):
"mathicsscript/config.asy",
]
},
install_requires=[
"Mathics_Scanner>=1.3.0",
"Mathics3 >= 6.2.0,<7.1.0",
"click",
"colorama",
"columnize",
"networkx",
"prompt_toolkit>=3.0.18",
"Pygments>=2.9.0", # Want something late enough that has the "inkpot" style
# "mathics_pygments @ https://github.com/Mathics3/mathics-pygments/archive/master.zip#egg=mathics_pygments",
"mathics_pygments>=1.0.2",
"term-background >= 1.0.1",
],
entry_points={
"console_scripts": [
"mathicsscript = mathicsscript.__main__:main",
"fake_psviewer.py = mathicsscript.fake_psviewer:main",
]
},
extras_require=EXTRAS_REQUIRE,
long_description=long_description,
long_description_content_type="text/x-rst",
# don't pack Mathics in egg because of media files, etc.
zip_safe=False,
Expand Down

0 comments on commit 9daa219

Please sign in to comment.