[build-system] # PEP 518 https://www.python.org/dev/peps/pep-0518/ # https://discuss.python.org/t/help-testing-experimental-features-in-setuptools/13821 requires = ["setuptools>=61", "wheel"] # PEP 517 https://peps.python.org/pep-0517/ build-backend = "setuptools.build_meta" [project] # PEP 621 project metadata # See https://www.python.org/dev/peps/pep-0621/ name = "xonsh" dynamic = ["version", "readme"] description = "Python-powered, cross-platform, Unix-gazing shell" authors = [{ name = "Anthony Scopatz" }, { email = "scopatz@gmail.com" }] maintainers = [{ name = "Anthony Scopatz" }, { email = "scopatz@gmail.com" }] license = { text = "BSD 2-Clause License" } requires-python = ">=3.8" [tool.setuptools.dynamic] version = {attr = "xonsh.__version__"} readme = {file = ["README.rst"]} [tool.setuptools] packages = [ "xonsh", "xonsh.ply.ply", "xonsh.ptk_shell", "xonsh.procs", "xonsh.parsers", "xonsh.xoreutils", "xontrib", "xonsh.completers", "xonsh.history", "xonsh.prompt", "xonsh.pytest", "xonsh.lib", "xonsh.webconfig", "xonsh.virtualenv", "xompletions", ] platforms = ["Cross Platform"] include-package-data = false [tool.setuptools.package-dir] xonsh = "xonsh" xontrib = "xontrib" xompletions = "xompletions" "xonsh.lib" = "xonsh/lib" "xonsh.webconfig" = "xonsh/webconfig" [tool.setuptools.package-data] xonsh = [ "*.json", "*.githash", ] xontrib = ["*.xsh"] "xonsh.lib" = ["*.xsh"] "xonsh.virtualenv" = ["*.xsh"] "xonsh.webconfig" = [ "*.html", "js/app.min.js", "js/bootstrap.min.css", "js/LICENSE-bootstrap", ] [project.entry-points] pytest11 = { xonsh = "xonsh.pytest.plugin" } [project.entry-points."pygments.lexers"] xonsh = "xonsh.pyghooks:XonshLexer" xonshcon = "xonsh.pyghooks:XonshConsoleLexer" [project.entry-points."virtualenv.activate"] xonsh = "xonsh.virtualenv:XonshActivator" [project.urls] Homepage = "https://xon.sh" documentation = "https://xon.sh/contents.html" repository = "https://github.com/xonsh/xonsh" changelog = "https://github.com/xonsh/xonsh/blob/main/CHANGELOG.rst" "Issue tracker" = "https://github.com/xonsh/xonsh/issues" [project.optional-dependencies] ptk = [ "prompt-toolkit>=3.0.29", "pyperclip", ] pygments = ["pygments>=2.2"] mac = ["gnureadline"] linux = ["distro"] proctitle = ["setproctitle"] full = [ "xonsh[ptk,pygments]", "distro; platform_system=='Linux'", "setproctitle; platform_system=='Windows'", "gnureadline; platform_system=='Darwin'", ] bestshell = [ "prompt_toolkit>=3.0.29", "pygments>=2.2", ] test = [ "xonsh[bestshell]", "pytest>=7", "restructuredtext_lint", "pytest-cov", "pytest-mock", "pytest-timeout", "pytest-subprocess", "pytest-rerunfailures", "prompt-toolkit>=3.0.29", "pygments>=2.2", "coverage>=5.3.1", "pyte>=0.8.0", "virtualenv>=20.7.2", ] dev = [ "xonsh[test,doc]", "pre-commit", "re-ver", "tomli", ] doc = [ "xonsh[bestshell]", "furo", "numpydoc", "sphinx<5,>=3.1", "psutil", "pyzmq", "matplotlib", "doctr", "tornado", "runthis-sphinxext", "livereload", "myst-parser", ] [project.scripts] xonsh = "xonsh.main:main" xonsh-cat = "xonsh.xoreutils.cat:main" xonsh-uname = "xonsh.xoreutils.uname:main" xonsh-uptime = "xonsh.xoreutils.uptime:main" [tool.black] # better to keep default line-length than to match flake8 exclude = ''' ( # exclude entire contents of these top level directories... /( \.eggs | \.git | \.hg | \.mypy | _cache | \.nox | \.tox | \.venv | _build | buck-out | build | dist )/ ) | ( # and these additional random rules /( __pycache__ | \.circleci | \.github | \.vscode | \.pytest_cache | ply )/ ) ''' extend_exclude = ''' ((xonsh/parser_table.py)|(xonsh/completion_parser_table.py)) ''' [tool.isort] profile = "black" extend_skip_glob = ["xonsh/*_table.py", "xonsh/ply/**.py"] src_paths = ["xonsh", "xontrib", "xompletions", "tests"] known_first_party = ["xonsh", "xontrib", "xompletions", "tests"] known_third_party = ["ply", "pytest"]