[build-system] requires = [ "setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2", ] build-backend = "setuptools.build_meta" [project] name = "build123d" dynamic = ["version"] authors = [ {name = "Roger Maitland", email = "gumyr9@gmail.com"}, ] description = "A python CAD programming library" readme = "README.md" requires-python = ">= 3.10, < 3.14" keywords = [ "3d models", "3d printing", "3d", "brep", "cad", "cadquery", "opencascade", "python", ] license = {text = "Apache-2.0"} classifiers = [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", ] dependencies = [ "cadquery-ocp >= 7.8, < 7.9", "typing_extensions >= 4.6.0, < 5", "numpy >= 2, < 3", "svgpathtools >= 1.5.1, < 2", "anytree >= 2.8.0, < 3", "ezdxf >= 1.1.0, < 2", "ipython >= 8.0.0, < 10", "lib3mf >= 2.4.1", "ocpsvg >= 0.5, < 0.6", "ocp_gordon >= 0.1.17", "trianglesolver", "sympy", "scipy", "webcolors ~= 24.8.0", ] [project.urls] "Homepage" = "https://github.com/gumyr/build123d" "Documentation" = "https://build123d.readthedocs.io/en/latest/index.html" "Bug Tracker" = "https://github.com/gumyr/build123d/issues" "Citation" = "https://doi.org/10.5281/zenodo.14872323" [project.optional-dependencies] # enable the optional ocp_vscode visualization package ocp_vscode = [ "ocp_vscode", ] # development dependencies development = [ "black", "mypy", "pylint", "pytest==8.4.2", # TODO: unpin on resolution of pytest-dev/pytest-xdist/issues/1273 "pytest-benchmark", "pytest-cov", "pytest-xdist", "wheel", ] # typing stubs for the OCP CAD kernel stubs = [ "cadquery-ocp-stubs >= 7.8, < 7.9", ] # dependencies to build the docs docs = [ "sphinx==8.1.3", # pin for stability of docs builds "sphinx-design", "sphinx-copybutton", "sphinx-hoverxref", "sphinx-rtd-theme", "sphinx_autodoc_typehints", ] # all dependencies all = [ "build123d[ocp_vscode]", "build123d[development]", "build123d[docs]", # "build123d[stubs]", # excluded for now as mypy fails ] [tool.setuptools.packages.find] where = ["src"] # exclude build123d._dev from wheels exclude = ["build123d._dev"] [tool.setuptools_scm] write_to = "src/build123d/_version.py" [tool.black] target-version = ["py310", "py311", "py312", "py313"] line-length = 88