xonsh/pyproject.toml
Andy Kipp 7a915113f6
Pin prompt-toolkit version (#5288)
* Update pyproject.toml

* Create pin-ptk.rst

* chore: strip whitespace

---------

Co-authored-by: Gil Forsyth <gil@forsyth.dev>
2024-02-24 18:42:50 -05:00

289 lines
7.4 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[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.9"
[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",
"js/xonsh_sticker_mini.png",
]
[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,<3.0.41",
"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'",
"ujson",
]
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,<3.0.41",
"pygments>=2.2",
"coverage>=5.3.1",
"pyte>=0.8.0",
"virtualenv>=20.16.2",
]
dev = [
"xonsh[test,doc]",
"pre-commit",
"re-ver",
"tomli",
]
doc = [
"xonsh[bestshell]",
"furo",
"numpydoc",
"sphinx>=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.ruff.isort]
known-first-party = ["xonsh", "xontrib", "xompletions", "tests"]
known-third-party = ["ply", "pytest"]
[tool.ruff]
src = [
"xonsh", "xontrib", "xompletions", "tests"
]
exclude = [
"docs/",
"*/ply/",
"parser*_table.py",
"completion_parser_table.py",
"build/",
"dist/",
"setup.py",
".vscode/",
"feedstock",
"rever",
".venv*/",
".local.out*/",
]
ignore = [
"D100", # Missing docstring in public module
"D101", # Missing docstring in public class
"D102", # Missing docstring in public method
"D103", # Missing docstring in public function
"D104", # Missing docstring in public package
"D105", # Missing docstring in magic method
"D200", # One-line docstring should fit on one line with quotes
"D202", # No blank lines allowed after function docstring
"D205", # 1 blank line required between summary line and description
"D207", # Docstring is under-indented
"D208", # Docstring is over-indented
"D209", # Multi-line docstring closing quotes should be on a separate line
"D210", # No whitespaces allowed surrounding docstring text
"D301", # Use r""" if any backslashes in a docstring
"D400", # First line should end with a period
"D401", # First line should be in imperative mood
"D403", # First word of the first line should be properly capitalized
"D404", # First word of the docstring should not be This
"D406", # Section name should end with a newline
"D407", # Missing dashed underline after section
"D409", # Section underline should be in the line following the sections name
"D411", # Missing blank line before section
"D418", # Function decorated with `@overload` shouldn't contain a docstring
"E402", # Module level import not at top of file
"E731", # Do not assign a lambda expression, use a def
]
line-length = 180
select = [
"B", # https://beta.ruff.rs/docs/rules/#flake8-bugbear-b
"D", # https://beta.ruff.rs/docs/rules/#pydocstyle-d
"E", # https://beta.ruff.rs/docs/rules/#pycodestyle-e-w
"F", # https://beta.ruff.rs/docs/rules/#pyflakes-f
"I", # https://beta.ruff.rs/docs/rules/#isort-i
"T10", # https://beta.ruff.rs/docs/rules/#flake8-debugger-t10
"YTT", # https://beta.ruff.rs/docs/rules/#flake8-2020-ytt
"W", # https://beta.ruff.rs/docs/rules/#pycodestyle-e-w
"UP", # https://beta.ruff.rs/docs/rules/#pyupgrade-up
]
[tool.ruff.pydocstyle]
convention = "numpy"
[tool.ruff.per-file-ignores]
"xonsh/timings.py" = ["F401"]
"xonsh/history.py" = ["F821"]
"xonsh/lexer.py" = ["E741"]
"xonsh/parsers/completion_context.py" = ["B018"]
"xonsh/tokenize.py" = [
"F821",
"F841",
"B904" # Within an `except` clause, raise exceptions with `raise ... from err`
]
"xonsh/pyghooks.py" = ["F821"]
"tests/test_builtins.py" = [
"F821",
"B011",
]
"xonsh/built_ins.py" = [
"F821",
"E721",
"E721",
]
"xonsh/style_tools.py" = ["F821"]
"xonsh/xoreutils/*.py" = ["E722"]
"xonsh/completers/python.py" = ["E722"]
"xonsh/ptk/shell.py" = ["E731"]
"xonsh/ast.py" = ["F401"]
"xonsh/readline_shell.py" = ["F401"]
"xonsh/commands_cache.py" = ["F841"]
"xonsh/ptk/key_bindings.py" = ["F841"]
"xonsh/tools.py" = [
"E731",
]
"xonsh/xonfig.py" = ["E731"]
"xontrib/vox.py" = ["F821"]
"xonsh/inspectors.py" = ["E722"]
"xonsh/platform.py" = ["F401"]
"xonsh/parsers/*.py" = [
"E741", # E741 Ambiguous variable name
]
"tests/test*.py" = [
"E741", # E741 Ambiguous variable name
]