|
| 1 | +[build-system] |
| 2 | +# setuptools added pyproject.toml support in v61.0.0 |
| 3 | +requires = ["setuptools >= 61", "wheel"] |
| 4 | +build-backend = "setuptools.build_meta" |
| 5 | + |
| 6 | +[project] |
| 7 | +name = "zulip-term" |
| 8 | +description = "Zulip's official terminal client" |
| 9 | +authors = [ |
| 10 | + { name= "Zulip Open Source Project", email= "[email protected]"} |
| 11 | +] |
| 12 | +classifiers = [ |
| 13 | + "Development Status :: 4 - Beta", |
| 14 | + "Intended Audience :: End Users/Desktop", |
| 15 | + "Topic :: Communications :: Chat", |
| 16 | + "License :: OSI Approved :: Apache Software License", |
| 17 | + "Programming Language :: Python :: 3 :: Only", |
| 18 | + "Programming Language :: Python :: 3.7", |
| 19 | + "Programming Language :: Python :: 3.8", |
| 20 | + "Programming Language :: Python :: 3.9", |
| 21 | + "Programming Language :: Python :: 3.10", |
| 22 | + "Programming Language :: Python :: 3.11", |
| 23 | + "Programming Language :: Python :: Implementation :: CPython", |
| 24 | + "Programming Language :: Python :: Implementation :: PyPy", |
| 25 | +] |
| 26 | +keywords = [] |
| 27 | +requires-python = ">=3.7, <3.12" |
| 28 | +dynamic = ["version", "readme"] |
| 29 | +dependencies = [ |
| 30 | + "urwid~=2.1.2", |
| 31 | + "zulip>=0.8.2,<0.9.0", # Next release, 0.9.0, requires Python 3.9 |
| 32 | + "urwid_readline>=0.15.1", |
| 33 | + "beautifulsoup4>=4.13.4", |
| 34 | + "lxml==4.9.4", |
| 35 | + "pygments>=2.17.2,<2.18.0", # 2.18.0 will drop support for Python 3.7 |
| 36 | + "typing_extensions~=4.5.0", |
| 37 | + "python-dateutil>=2.8.2", |
| 38 | + "pytz>=2025", # Can use native support from Python 3.9 onwards |
| 39 | + "tzlocal>=5.0,<5.1", # 5.1 will drop support for Python 3.7 |
| 40 | + "pyperclip>=1.9.0", |
| 41 | +] |
| 42 | + |
| 43 | +[project.optional-dependencies] |
| 44 | +dev = ["zulip-term[testing,linting,typing,dev-helper,gitlint]"] |
| 45 | +testing = ["zulip-term[testing-minimal, testing-plugins]"] |
| 46 | +testing-minimal = [ |
| 47 | + "pytest>=7.4.0,<8.0.0", # 8.0.0 drops support for Python 3.7 |
| 48 | + "pytest-mock>=3.10.0,<3.12.0", # 3.12.0 drops support for Python 3.7 |
| 49 | +] |
| 50 | +testing-plugins = [ |
| 51 | + "pytest-cov>=4.0.0,<5.0.0", # 5.0.0 drops support for Python 3.7 (6.0.0 drops 3.8) |
| 52 | +] |
| 53 | +linting = [ |
| 54 | + "isort~=5.11.0,<5.12.0", # 5.12.0 drops support for Python 3.7, 6.0.0 drops 3.8 |
| 55 | + "black==23.3.0", # Later versions drop support for Python 3.7 |
| 56 | + "ruff==0.0.267", |
| 57 | + "codespell[toml]==2.2.5,<2.2.6", # 2.2.6 drops support for Python 3.7 |
| 58 | + "typos>=1.32.0", |
| 59 | +] |
| 60 | +gitlint = [ |
| 61 | + "gitlint~=0.18.0", |
| 62 | +] |
| 63 | +typing = [ |
| 64 | + "lxml-stubs", |
| 65 | + "mypy~=1.8.0", # >=1.9.0 requires Python 3.8+, >=1.15.0 requires 3.9+ |
| 66 | + "types-beautifulsoup4", |
| 67 | + "types-pygments", |
| 68 | + "types-python-dateutil", |
| 69 | + "types-tzlocal", |
| 70 | + "types-pytz", |
| 71 | + "types-requests", |
| 72 | + "types-setuptools", |
| 73 | +] |
| 74 | +dev-helper = [ |
| 75 | + "pudb==2022.1.1", |
| 76 | + "snakeviz>=2.1.1", |
| 77 | +] |
| 78 | + |
| 79 | +[project.scripts] |
| 80 | +zulip-term = "zulipterminal.cli.run:main" |
| 81 | +zulip-term-check-symbols = "zulipterminal.scripts.render_symbols:main" |
| 82 | + |
| 83 | +[project.urls] |
| 84 | +Changelog = "https://github.com/zulip/zulip-terminal/blob/main/CHANGELOG.md" |
| 85 | +FAQs = "https://github.com/zulip/zulip-terminal/blob/main/docs/FAQ.md" |
| 86 | +Issues = "https://github.com/zulip/zulip-terminal/issues" |
| 87 | +"Hot Keys" = "https://github.com/zulip/zulip-terminal/blob/main/docs/hotkeys.md" |
| 88 | +# NOTE: This Was home-page, ie. url |
| 89 | +Repository = "https://github.com/zulip/zulip-terminal" |
| 90 | + |
| 91 | +[tool.setuptools.packages.find] |
| 92 | +include=["zulipterminal"] |
| 93 | + |
| 94 | +[tool.setuptools.dynamic] |
| 95 | +version = {attr = "zulipterminal.version.ZT_VERSION"} |
| 96 | +# FIXME ? This doesn't support losing the top title line, like with setup.py |
| 97 | +readme = {file = ["README.md"], content-type = "text/markdown"} |
| 98 | + |
1 | 99 | [tool.black]
|
2 | 100 | # Default line-length, but use explicit value here since used for isort & ruff
|
3 | 101 | line-length = 88
|
@@ -191,8 +289,6 @@ select = [
|
191 | 289 | "YTT", # Year TwentyTwenty (flake8-2020), sys.version checks
|
192 | 290 | ]
|
193 | 291 | [tool.ruff.per-file-ignores]
|
194 |
| -# ANN: We don't consider this worth typing |
195 |
| -"setup.py" = ["ANN"] |
196 | 292 | # ANN: These test files are not yet typed
|
197 | 293 | "tests/model/test_model.py" = ["ANN"]
|
198 | 294 | "tests/ui/test_ui_tools.py" = ["ANN"]
|
|
0 commit comments