jrnl/pyproject.toml
2024-05-19 13:51:37 +02:00

180 lines
4 KiB
TOML

[tool.poetry]
name = "jrnl"
version = "v4.1"
description = "Collect your thoughts and notes without leaving the command line."
authors = [
"jrnl contributors <maintainers@jrnl.sh>",
"Manuel Ebert <manuel@1450.me>",
"Jonathan Wren <jonathan@nowandwren.com>",
"Micah Ellison <micahellison@gmail.com>"
]
maintainers = [
"Jonathan Wren and Micah Ellison <maintainers@jrnl.sh>",
]
license = "GPL-3.0-only"
readme = "README.md"
homepage = "https://jrnl.sh"
repository = "https://github.com/jrnl-org/jrnl"
classifiers = [
"Topic :: Office/Business :: News/Diary",
"Environment :: Console",
"Operating System :: OS Independent"
]
[tool.poetry.urls]
"Documentation" = "https://jrnl.sh"
"Issue Tracker" = "https://github.com/jrnl-org/jrnl/issues"
"Funding" = "https://opencollective.com/jrnl"
[tool.poetry.dependencies]
python = ">=3.10.0, <3.13"
colorama = ">=0.4" # https://github.com/tartley/colorama/blob/master/CHANGELOG.rst
cryptography = ">=3.0" # https://cryptography.io/en/latest/api-stability.html
keyring = ">=21.0" # https://github.com/jaraco/keyring#integration
parsedatetime = ">=2.6"
python-dateutil = "^2.8" # https://github.com/dateutil/dateutil/blob/master/RELEASING
pyxdg = ">=0.27.0"
"ruamel.yaml" = ">=0.17.22"
rich = ">=12.2.0, <14.0.0"
# dayone-only deps
tzlocal = ">=4.0" # https://github.com/regebro/tzlocal/blob/master/CHANGES.txt
[tool.poetry.dev-dependencies]
black = { version = ">=23.11.0", allow-prereleases = true }
ipdb = "*"
mkdocs = ">=1.4"
parse-type = ">=0.6.0"
poethepoet = "*"
pytest = ">=6.2,<=8.1"
pytest-bdd = ">=6.0"
pytest-clarity = "*"
pytest-xdist = ">=2.5.0"
requests = "*"
ruff = ">=0.0.276"
toml = ">=0.10"
tox = "*"
xmltodict = "*"
[tool.poetry.scripts]
jrnl = 'jrnl.main:run'
[tool.poe.tasks]
docs-check.default_item_type = "script"
docs-check.sequence = [
"tasks:delete_files(['sitemap.xml', 'config.json'])",
"tasks:generate_sitemap",
"tasks:output_file('sitemap.xml')",
"tasks:generate_pa11y_config_from_sitemap",
"tasks:output_file('config.json')",
"tasks:run_shell('npx pa11y-ci -c config.json')",
"tasks:delete_files(['sitemap.xml', 'config.json'])",
]
docs-run = [
{cmd = "mkdocs serve"},
]
test-run = [
{cmd = "tox -q -e py --"},
]
# Groups of tasks
format.default_item_type = "cmd"
format.sequence = [
"ruff check . --select I --fix", # equivalent to "isort ."
"black .",
]
lint.default_item_type = "cmd"
lint.sequence = [
"poetry --version",
"poetry check",
"ruff --version",
"ruff .",
"black --version",
"black --check ."
]
test = [
"lint",
"test-run",
]
[tool.pytest.ini_options]
minversion = "6.0"
required_plugins = [
"pytest-bdd"
]
markers = [
"todo",
"skip_win",
"skip_posix",
"on_win",
"on_posix",
]
addopts = [
"--pdbcls=IPython.terminal.debugger:Pdb",
"--tb=native",
"-n=auto",
]
filterwarnings = [
"ignore::DeprecationWarning",
"ignore:[WinError 32].*",
"ignore:[WinError 5].*"
]
[tool.ruff]
line-length = 88
target-version = "py310"
# https://beta.ruff.rs/docs/rules/
select = [
'F', # Pyflakes
'E', # pycodestyle errors
'W', # pycodestyle warnings
'I', # isort
'ASYNC', # flake8-async
'S110', # try-except-pass
'S112', # try-except-continue
'EM', # flake8-errmsg
'ISC', # flake8-implicit-str-concat
'Q', # flake8-quotes
'RSE', # flake8-raise
'TID', # flake8-tidy-imports
'TCH', # flake8-type-checking
'T100', # debugger, don't allow break points
'ICN' # flake8-import-conventions
]
exclude = [".git", ".tox", ".venv", "node_modules"]
[tool.ruff.isort]
force-single-line = true
known-first-party = ["jrnl", "tests"]
[tool.ruff.per-file-ignores]
"__init__.py" = ["F401"] # unused imports
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.tox]
# see: https://tox.wiki/en/latest/example/basic.html
legacy_tox_ini = """
[tox]
envlist = py
isolated_build = True
[testenv]
deps =
pytest >=6.2,<=8.1
pytest-bdd >=6.0
pytest-xdist >=2.5.0
parse-type >=0.6.0
toml >=0.10
commands = pytest {posargs}
passenv = HOME
"""