-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
132 lines (120 loc) · 4.95 KB
/
pyproject.toml
File metadata and controls
132 lines (120 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# ics-query
# Copyright (C) 2024 Nicco Kunzmann
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "ics-query"
license = {file = "LICENSE"}
keywords = ["calendar", "ics", "rfc5545", "icalendar", "scheduling", "command line"]
dynamic = ["urls", "version"]
authors = [
{ name="Nicco Kunzmann", email="niccokunzmann@rambler.ru" },
]
maintainers = [
{ name="Nicco Kunzmann", email="niccokunzmann@rambler.ru" },
]
description = "Find out what happens in ICS calendar files - query and filter RFC 5545 compatible .ics files for events, journals, TODOs and more."
readme = "README.md"
requires-python = ">=3.9"
# see https://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers = [
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: OS Independent",
"Topic :: Office/Business :: Scheduling",
]
dependencies = [
"icalendar==6.3.2",
"recurring-ical-events==3.8.1",
"click==8.1.8",
"x-wr-timezone==2.0.1",
"tzlocal==5.3.1",
"tzdata==2025.3",
"python-dateutil==2.9.0.post0",
"six==1.17.0",
]
[project.optional-dependencies]
test = [
"pytest",
]
[project.scripts]
ics-query = "ics_query.cli:main"
[tool.hatch.metadata.hooks.vcs.urls]
#[project.urls]
Homepage = "https://github.com/niccokunzmann/ics-query/"
Repository = "https://github.com/niccokunzmann/ics-query/"
source_archive = "https://github.com/niccokunzmann/ics-query/archive/{commit_hash}.zip"
Issues = "https://github.com/niccokunzmann/ics-query/issues"
Documentation = "https://github.com/niccokunzmann/ics-query/"
Changelog = "https://github.com/niccokunzmann/ics-query/#changelog"
[tool.hatch.version]
source = "vcs"
[tool.hatch.version.raw-options]
# see https://github.com/ofek/hatch-vcs/issues/43#issuecomment-1553065222
local_scheme = "no-local-version"
[tool.hatch.build.hooks.vcs]
version-file = "ics_query/_version.py"
[tool.hatch.metadata]
allow-direct-references = true
[tool.ruff]
target-version = "py39"
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"ANN", # flake8-annotations
"B020", # Loop control variable {name} overrides iterable it iterates
"C401", # Unnecessary generator (rewrite as a set comprehension)
"C901", # {name} is too complex ({complexity} > {max_complexity})
"COM812", # Trailing comma missing
"D1", # Missing docstring
"D2", # docstrings stuffs
"D4", # docstrings stuffs
"EM10", # Exception string usage
"ERA001", # Found commented-out code
"FBT002", # Boolean default positional argument in function definition
"FIX", # TODO comments
"ISC001", # Implicitly concatenated string literals on one line (to avoid with formatter)
"N818", # Exception name {name} should be named with an Error suffix
"PLR091", # Too many things (complexity, arguments, branches, etc...)
"PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
"RUF012", # Mutable class attributes should be annotated with typing.ClassVar
"RUF015", # Prefer next({iterable}) over single element slice
"S101", # Use of assert detected
"TD", # TODO comments
"TRY003", # Avoid specifying long messages outside the exception class
"T201", # print found
]
extend-safe-fixes = [
"PT006", # Wrong type passed to first argument of @pytest.mark.parametrize; expected {expected_string}
]
[tool.ruff.lint.per-file-ignores]
"ics_query/tests" = [
"B011", # Do not assert False (python -O removes these calls), raise AssertionError()
"DTZ001", # datetime.datetime() called without a tzinfo argument
"E501", # Indentation is not a multiple of {indent_size}
"N802", # Function name {name} should be lowercase
"PT011", # pytest.raises({exception}) is too broad, set the match parameter or use a more specific exception
"PT012", # pytest.raises() block should contain a single simple statement
"PT015", # Assertion always fails, replace with pytest.fail()
"T201", # print found
]