py-wait-until 0.0.6__tar.gz → 0.0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {py_wait_until-0.0.6 → py_wait_until-0.0.7}/PKG-INFO +24 -11
- {py_wait_until-0.0.6 → py_wait_until-0.0.7}/README.md +9 -9
- py_wait_until-0.0.7/pyproject.toml +92 -0
- py_wait_until-0.0.7/setup.cfg +4 -0
- py_wait_until-0.0.7/src/py_wait_until.egg-info/PKG-INFO +87 -0
- py_wait_until-0.0.7/src/py_wait_until.egg-info/SOURCES.txt +10 -0
- py_wait_until-0.0.7/src/py_wait_until.egg-info/dependency_links.txt +1 -0
- py_wait_until-0.0.7/src/py_wait_until.egg-info/entry_points.txt +2 -0
- py_wait_until-0.0.7/src/py_wait_until.egg-info/top_level.txt +1 -0
- py_wait_until-0.0.6/pyproject.toml +0 -134
- py_wait_until-0.0.6/pyproject.toml.orig +0 -129
- py_wait_until-0.0.6/src/py_wait_until/braille-chars.txt +0 -15
- {py_wait_until-0.0.6 → py_wait_until-0.0.7}/LICENSE +0 -0
- {py_wait_until-0.0.6 → py_wait_until-0.0.7}/src/py_wait_until/__init__.py +0 -0
- {py_wait_until-0.0.6 → py_wait_until-0.0.7}/src/py_wait_until/main.py +0 -0
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: py-wait-until
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.7
|
|
4
4
|
Summary: Print a loading spinner while another command is running.
|
|
5
5
|
Author: billwallis
|
|
6
|
-
|
|
6
|
+
Maintainer: billwallis
|
|
7
|
+
License-Expression: GPL-3.0-or-later
|
|
8
|
+
Project-URL: Homepage, https://github.com/billwallis/py-wait-until
|
|
9
|
+
Project-URL: Repository, https://github.com/billwallis/py-wait-until
|
|
10
|
+
Project-URL: Issues, https://github.com/billwallis/py-wait-until/issues
|
|
11
|
+
Project-URL: Documentation, https://github.com/billwallis/py-wait-until/blob/main/README.md
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
7
18
|
Requires-Python: >=3.11
|
|
8
19
|
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Dynamic: license-file
|
|
9
22
|
|
|
10
23
|
<span align="center">
|
|
11
24
|
|
|
12
25
|
[](https://www.python.org/downloads/)
|
|
13
|
-
[](https://github.com/astral-sh/uv)
|
|
14
26
|
[](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml)
|
|
15
27
|
[](https://smarie.github.io/python-genbadge/)
|
|
16
28
|
|
|
@@ -55,14 +67,6 @@ uvx py-wait-until --message "Processing..." python -c "import time; time.sleep(2
|
|
|
55
67
|
|
|
56
68
|
This option _must_ be specified before the command to run
|
|
57
69
|
|
|
58
|
-
## Contributing
|
|
59
|
-
|
|
60
|
-
Install [uv](https://docs.astral.sh/uv/getting-started/installation/) and then install the dependencies:
|
|
61
|
-
|
|
62
|
-
```shell
|
|
63
|
-
uvx --from poethepoet poe install
|
|
64
|
-
```
|
|
65
|
-
|
|
66
70
|
### Choose a spinner
|
|
67
71
|
|
|
68
72
|
There are a selection of spinner animations available which can be specified with the `--spinner` argument; check the CLI help for the latest set of options:
|
|
@@ -72,3 +76,12 @@ py-wait-until --help
|
|
|
72
76
|
```
|
|
73
77
|
|
|
74
78
|
By default, a spinner will be chosen randomly.
|
|
79
|
+
|
|
80
|
+
## Contributing
|
|
81
|
+
|
|
82
|
+
Install the dependencies:
|
|
83
|
+
|
|
84
|
+
```shell
|
|
85
|
+
pip install --editable . --group dev --group test
|
|
86
|
+
pre-commit install --install-hooks
|
|
87
|
+
```
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<span align="center">
|
|
2
2
|
|
|
3
3
|
[](https://www.python.org/downloads/)
|
|
4
|
-
[](https://github.com/astral-sh/uv)
|
|
5
4
|
[](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml)
|
|
6
5
|
[](https://smarie.github.io/python-genbadge/)
|
|
7
6
|
|
|
@@ -46,14 +45,6 @@ uvx py-wait-until --message "Processing..." python -c "import time; time.sleep(2
|
|
|
46
45
|
|
|
47
46
|
This option _must_ be specified before the command to run
|
|
48
47
|
|
|
49
|
-
## Contributing
|
|
50
|
-
|
|
51
|
-
Install [uv](https://docs.astral.sh/uv/getting-started/installation/) and then install the dependencies:
|
|
52
|
-
|
|
53
|
-
```shell
|
|
54
|
-
uvx --from poethepoet poe install
|
|
55
|
-
```
|
|
56
|
-
|
|
57
48
|
### Choose a spinner
|
|
58
49
|
|
|
59
50
|
There are a selection of spinner animations available which can be specified with the `--spinner` argument; check the CLI help for the latest set of options:
|
|
@@ -63,3 +54,12 @@ py-wait-until --help
|
|
|
63
54
|
```
|
|
64
55
|
|
|
65
56
|
By default, a spinner will be chosen randomly.
|
|
57
|
+
|
|
58
|
+
## Contributing
|
|
59
|
+
|
|
60
|
+
Install the dependencies:
|
|
61
|
+
|
|
62
|
+
```shell
|
|
63
|
+
pip install --editable . --group dev --group test
|
|
64
|
+
pre-commit install --install-hooks
|
|
65
|
+
```
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://json.schemastore.org/pyproject.json
|
|
2
|
+
[build-system]
|
|
3
|
+
requires = ["setuptools"]
|
|
4
|
+
build-backend = "setuptools.build_meta"
|
|
5
|
+
|
|
6
|
+
[project]
|
|
7
|
+
name = "py-wait-until"
|
|
8
|
+
version = "0.0.7"
|
|
9
|
+
description = "Print a loading spinner while another command is running."
|
|
10
|
+
authors = [{name = "billwallis"}]
|
|
11
|
+
maintainers = [{name = "billwallis"}]
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
urls.Homepage = "https://github.com/billwallis/py-wait-until"
|
|
14
|
+
urls.Repository = "https://github.com/billwallis/py-wait-until"
|
|
15
|
+
urls.Issues = "https://github.com/billwallis/py-wait-until/issues"
|
|
16
|
+
urls.Documentation = "https://github.com/billwallis/py-wait-until/blob/main/README.md"
|
|
17
|
+
license = "GPL-3.0-or-later"
|
|
18
|
+
license-files = ["LICENSE"]
|
|
19
|
+
requires-python = ">=3.11"
|
|
20
|
+
classifiers = [
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3.11",
|
|
23
|
+
"Programming Language :: Python :: 3.12",
|
|
24
|
+
"Programming Language :: Python :: 3.13",
|
|
25
|
+
"Programming Language :: Python :: 3.14",
|
|
26
|
+
"Programming Language :: Python :: 3.15",
|
|
27
|
+
]
|
|
28
|
+
dependencies = []
|
|
29
|
+
scripts.py-wait-until = "py_wait_until.main:main"
|
|
30
|
+
|
|
31
|
+
[dependency-groups]
|
|
32
|
+
dev = [
|
|
33
|
+
"poethepoet>=0.48.0",
|
|
34
|
+
"pre-commit>=4.6.2",
|
|
35
|
+
]
|
|
36
|
+
test = [
|
|
37
|
+
"covdefaults>=2.3.0",
|
|
38
|
+
"coverage>=7.16.0",
|
|
39
|
+
"pytest>=9.1.1",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
[tool.pytest.ini_options]
|
|
44
|
+
testpaths = ["tests"]
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
[tool.coverage]
|
|
48
|
+
run.source = ["src", "tests"]
|
|
49
|
+
run.plugins = ["covdefaults"] # https://youtu.be/70T6OxKwxm0
|
|
50
|
+
report.fail_under = 100
|
|
51
|
+
report.exclude_lines = [
|
|
52
|
+
"@pytest.mark.skip",
|
|
53
|
+
"@pytest.mark.xfail",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
[tool.poe]
|
|
58
|
+
verbosity = -1
|
|
59
|
+
envfile.optional = ".env"
|
|
60
|
+
|
|
61
|
+
[tool.poe.tasks]
|
|
62
|
+
install.shell = """
|
|
63
|
+
pip install --editable . --group dev --group test
|
|
64
|
+
pre-commit install --install-hooks
|
|
65
|
+
"""
|
|
66
|
+
test.shell = """
|
|
67
|
+
coverage erase
|
|
68
|
+
coverage run -m pytest -vvv
|
|
69
|
+
coverage xml --quiet
|
|
70
|
+
coverage report --no-skip-covered --include 'tests/*' --fail-under 100
|
|
71
|
+
coverage report --no-skip-covered --include 'src/*'
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
[tool.poe.tasks.lint]
|
|
75
|
+
control.expr = "sys.platform"
|
|
76
|
+
|
|
77
|
+
[[tool.poe.tasks.lint.switch]]
|
|
78
|
+
case = "win32"
|
|
79
|
+
shell = """
|
|
80
|
+
echo '=== pre-commit checks ==='
|
|
81
|
+
SKIP=identity pre-commit run --all-files --hook-stage pre-commit
|
|
82
|
+
echo '=== pre-push checks ==='
|
|
83
|
+
SKIP=identity pre-commit run --all-files --hook-stage pre-push
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
[[tool.poe.tasks.lint.switch]]
|
|
87
|
+
shell = """
|
|
88
|
+
echo '\\033[0;34mpre-commit checks\\033[0m'
|
|
89
|
+
SKIP=identity pre-commit run --all-files --hook-stage pre-commit
|
|
90
|
+
echo '\\033[0;34mpre-push checks\\033[0m'
|
|
91
|
+
SKIP=identity pre-commit run --all-files --hook-stage pre-push
|
|
92
|
+
"""
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: py-wait-until
|
|
3
|
+
Version: 0.0.7
|
|
4
|
+
Summary: Print a loading spinner while another command is running.
|
|
5
|
+
Author: billwallis
|
|
6
|
+
Maintainer: billwallis
|
|
7
|
+
License-Expression: GPL-3.0-or-later
|
|
8
|
+
Project-URL: Homepage, https://github.com/billwallis/py-wait-until
|
|
9
|
+
Project-URL: Repository, https://github.com/billwallis/py-wait-until
|
|
10
|
+
Project-URL: Issues, https://github.com/billwallis/py-wait-until/issues
|
|
11
|
+
Project-URL: Documentation, https://github.com/billwallis/py-wait-until/blob/main/README.md
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Dynamic: license-file
|
|
22
|
+
|
|
23
|
+
<span align="center">
|
|
24
|
+
|
|
25
|
+
[](https://www.python.org/downloads/)
|
|
26
|
+
[](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml)
|
|
27
|
+
[](https://smarie.github.io/python-genbadge/)
|
|
28
|
+
|
|
29
|
+
[](https://results.pre-commit.ci/latest/github/billwallis/py-wait-until/main)
|
|
30
|
+
[](https://shields.io/badges/git-hub-last-commit)
|
|
31
|
+
[](https://shields.io/badges/py-pi-downloads)
|
|
32
|
+
|
|
33
|
+
</span>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# Wait Until
|
|
38
|
+
|
|
39
|
+
Print a loading spinner while another command is running.
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
`py-wait-until` is a CLI tool which runs a command and displays a loading spinner while the command is executing.
|
|
44
|
+
|
|
45
|
+
The easiest way to use `py-wait-until` is via [`uvx`](https://docs.astral.sh/uv/guides/tools/), for example:
|
|
46
|
+
|
|
47
|
+
```shell
|
|
48
|
+
uvx py-wait-until python -c "import time; time.sleep(2)"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Alternatively, install from PyPI and run without `uvx`:
|
|
52
|
+
|
|
53
|
+
```shell
|
|
54
|
+
pip install py-wait-until
|
|
55
|
+
py-wait-until python -c "import time; time.sleep(2)"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The return code of the original command is preserved. Specifying no command will exit with code 1 and show the help message.
|
|
59
|
+
|
|
60
|
+
### Custom loading message
|
|
61
|
+
|
|
62
|
+
You can specify a custom loading message using the `--message` (or `-m`) option:
|
|
63
|
+
|
|
64
|
+
```shell
|
|
65
|
+
uvx py-wait-until --message "Processing..." python -c "import time; time.sleep(2)"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
This option _must_ be specified before the command to run
|
|
69
|
+
|
|
70
|
+
### Choose a spinner
|
|
71
|
+
|
|
72
|
+
There are a selection of spinner animations available which can be specified with the `--spinner` argument; check the CLI help for the latest set of options:
|
|
73
|
+
|
|
74
|
+
```shell
|
|
75
|
+
py-wait-until --help
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
By default, a spinner will be chosen randomly.
|
|
79
|
+
|
|
80
|
+
## Contributing
|
|
81
|
+
|
|
82
|
+
Install the dependencies:
|
|
83
|
+
|
|
84
|
+
```shell
|
|
85
|
+
pip install --editable . --group dev --group test
|
|
86
|
+
pre-commit install --install-hooks
|
|
87
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
src/py_wait_until/__init__.py
|
|
5
|
+
src/py_wait_until/main.py
|
|
6
|
+
src/py_wait_until.egg-info/PKG-INFO
|
|
7
|
+
src/py_wait_until.egg-info/SOURCES.txt
|
|
8
|
+
src/py_wait_until.egg-info/dependency_links.txt
|
|
9
|
+
src/py_wait_until.egg-info/entry_points.txt
|
|
10
|
+
src/py_wait_until.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
py_wait_until
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["uv_build"]
|
|
3
|
-
build-backend = "uv_build"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "py-wait-until"
|
|
7
|
-
version = "0.0.6"
|
|
8
|
-
description = "Print a loading spinner while another command is running."
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
license-files = ["LICENSE"]
|
|
11
|
-
requires-python = ">=3.11"
|
|
12
|
-
dependencies = []
|
|
13
|
-
|
|
14
|
-
[[project.authors]]
|
|
15
|
-
name = "billwallis"
|
|
16
|
-
|
|
17
|
-
[project.scripts]
|
|
18
|
-
py-wait-until = "py_wait_until.main:main"
|
|
19
|
-
|
|
20
|
-
[dependency-groups]
|
|
21
|
-
dev = [
|
|
22
|
-
"poethepoet>=0.46.0",
|
|
23
|
-
"pre-commit>=4.6.0",
|
|
24
|
-
]
|
|
25
|
-
test = [
|
|
26
|
-
"coverage>=7.13.5",
|
|
27
|
-
"covdefaults>=2.3.0",
|
|
28
|
-
"pytest>=9.0.3",
|
|
29
|
-
]
|
|
30
|
-
|
|
31
|
-
[tool.uv]
|
|
32
|
-
default-groups = "all"
|
|
33
|
-
|
|
34
|
-
[tool.poe]
|
|
35
|
-
verbosity = -1
|
|
36
|
-
|
|
37
|
-
[tool.poe.envfile]
|
|
38
|
-
optional = ".env"
|
|
39
|
-
|
|
40
|
-
[tool.poe.tasks.install]
|
|
41
|
-
shell = """
|
|
42
|
-
uv sync --refresh
|
|
43
|
-
uv run pre-commit install --install-hooks
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
[tool.poe.tasks.upgrade]
|
|
47
|
-
shell = """
|
|
48
|
-
uv sync --refresh --upgrade
|
|
49
|
-
uv run pre-commit autoupdate
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
[tool.poe.tasks.test]
|
|
53
|
-
shell = """
|
|
54
|
-
uv run coverage run -m pytest -vvv
|
|
55
|
-
uv run coverage report --no-skip-covered
|
|
56
|
-
uv run coverage xml --quiet
|
|
57
|
-
"""
|
|
58
|
-
|
|
59
|
-
[tool.poe.tasks.lint.control]
|
|
60
|
-
expr = "sys.platform"
|
|
61
|
-
|
|
62
|
-
[[tool.poe.tasks.lint.switch]]
|
|
63
|
-
case = "win32"
|
|
64
|
-
shell = """
|
|
65
|
-
echo '=== pre-commit checks ==='
|
|
66
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-commit
|
|
67
|
-
echo '=== pre-push checks ==='
|
|
68
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-push
|
|
69
|
-
"""
|
|
70
|
-
|
|
71
|
-
[[tool.poe.tasks.lint.switch]]
|
|
72
|
-
shell = '''
|
|
73
|
-
echo '\033[0;34mpre-commit checks\033[0m'
|
|
74
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-commit
|
|
75
|
-
echo '\033[0;34mpre-push checks\033[0m'
|
|
76
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-push
|
|
77
|
-
'''
|
|
78
|
-
|
|
79
|
-
[tool.pytest.ini_options]
|
|
80
|
-
testpaths = ["tests"]
|
|
81
|
-
|
|
82
|
-
[tool.coverage.run]
|
|
83
|
-
plugins = ["covdefaults"]
|
|
84
|
-
|
|
85
|
-
[tool.coverage.report]
|
|
86
|
-
fail_under = 100
|
|
87
|
-
exclude_lines = [
|
|
88
|
-
"@pytest.mark.skip",
|
|
89
|
-
"@pytest.mark.xfail",
|
|
90
|
-
]
|
|
91
|
-
|
|
92
|
-
[tool.ruff]
|
|
93
|
-
line-length = 80
|
|
94
|
-
indent-width = 4
|
|
95
|
-
target-version = "py311"
|
|
96
|
-
|
|
97
|
-
[tool.ruff.format]
|
|
98
|
-
quote-style = "double"
|
|
99
|
-
indent-style = "space"
|
|
100
|
-
skip-magic-trailing-comma = false
|
|
101
|
-
line-ending = "auto"
|
|
102
|
-
|
|
103
|
-
[tool.ruff.lint]
|
|
104
|
-
select = [
|
|
105
|
-
"ANN",
|
|
106
|
-
"B",
|
|
107
|
-
"E",
|
|
108
|
-
"F",
|
|
109
|
-
"FURB",
|
|
110
|
-
"I",
|
|
111
|
-
"N",
|
|
112
|
-
"PL",
|
|
113
|
-
"PERF",
|
|
114
|
-
"RUF",
|
|
115
|
-
"S",
|
|
116
|
-
"UP",
|
|
117
|
-
"W",
|
|
118
|
-
]
|
|
119
|
-
ignore = [
|
|
120
|
-
"ANN401",
|
|
121
|
-
"E501",
|
|
122
|
-
]
|
|
123
|
-
fixable = ["ALL"]
|
|
124
|
-
unfixable = []
|
|
125
|
-
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
126
|
-
|
|
127
|
-
[tool.ruff.lint.extend-per-file-ignores]
|
|
128
|
-
"tests/**/*.py" = [
|
|
129
|
-
"ANN001",
|
|
130
|
-
"ANN201",
|
|
131
|
-
"S101",
|
|
132
|
-
"PLR2004",
|
|
133
|
-
"PLR0913",
|
|
134
|
-
]
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
# yaml-language-server: $schema=https://json.schemastore.org/pyproject.json
|
|
2
|
-
[build-system]
|
|
3
|
-
requires = ["uv_build"]
|
|
4
|
-
build-backend = "uv_build"
|
|
5
|
-
|
|
6
|
-
[project]
|
|
7
|
-
name = "py-wait-until"
|
|
8
|
-
version = "0.0.6"
|
|
9
|
-
description = "Print a loading spinner while another command is running."
|
|
10
|
-
authors = [{name = "billwallis"}]
|
|
11
|
-
readme = "README.md"
|
|
12
|
-
license-files = ["LICENSE"]
|
|
13
|
-
requires-python = ">=3.11"
|
|
14
|
-
dependencies = []
|
|
15
|
-
scripts.py-wait-until = "py_wait_until.main:main"
|
|
16
|
-
|
|
17
|
-
[dependency-groups]
|
|
18
|
-
dev = [
|
|
19
|
-
"poethepoet>=0.46.0",
|
|
20
|
-
"pre-commit>=4.6.0",
|
|
21
|
-
]
|
|
22
|
-
test = [
|
|
23
|
-
"coverage>=7.13.5",
|
|
24
|
-
"covdefaults>=2.3.0",
|
|
25
|
-
"pytest>=9.0.3",
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
[tool.uv]
|
|
30
|
-
default-groups = "all"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
[tool.poe]
|
|
34
|
-
verbosity = -1
|
|
35
|
-
envfile.optional = ".env"
|
|
36
|
-
|
|
37
|
-
[tool.poe.tasks]
|
|
38
|
-
install.shell = """
|
|
39
|
-
uv sync --refresh
|
|
40
|
-
uv run pre-commit install --install-hooks
|
|
41
|
-
"""
|
|
42
|
-
upgrade.shell = """
|
|
43
|
-
uv sync --refresh --upgrade
|
|
44
|
-
uv run pre-commit autoupdate
|
|
45
|
-
"""
|
|
46
|
-
test.shell = """
|
|
47
|
-
uv run coverage run -m pytest -vvv
|
|
48
|
-
uv run coverage report --no-skip-covered
|
|
49
|
-
uv run coverage xml --quiet
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
[tool.poe.tasks.lint]
|
|
53
|
-
control.expr = "sys.platform"
|
|
54
|
-
|
|
55
|
-
[[tool.poe.tasks.lint.switch]]
|
|
56
|
-
case = "win32"
|
|
57
|
-
shell = """
|
|
58
|
-
echo '=== pre-commit checks ==='
|
|
59
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-commit
|
|
60
|
-
echo '=== pre-push checks ==='
|
|
61
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-push
|
|
62
|
-
"""
|
|
63
|
-
|
|
64
|
-
[[tool.poe.tasks.lint.switch]]
|
|
65
|
-
shell = """
|
|
66
|
-
echo '\\033[0;34mpre-commit checks\\033[0m'
|
|
67
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-commit
|
|
68
|
-
echo '\\033[0;34mpre-push checks\\033[0m'
|
|
69
|
-
SKIP=identity uv run pre-commit run --all-files --hook-stage pre-push
|
|
70
|
-
"""
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
[tool.pytest.ini_options]
|
|
74
|
-
testpaths = ["tests"]
|
|
75
|
-
|
|
76
|
-
[tool.coverage]
|
|
77
|
-
run.plugins = ["covdefaults"] # https://youtu.be/70T6OxKwxm0
|
|
78
|
-
report.fail_under = 100
|
|
79
|
-
report.exclude_lines = [
|
|
80
|
-
"@pytest.mark.skip",
|
|
81
|
-
"@pytest.mark.xfail",
|
|
82
|
-
]
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
[tool.ruff]
|
|
86
|
-
line-length = 80
|
|
87
|
-
indent-width = 4
|
|
88
|
-
target-version = "py311"
|
|
89
|
-
|
|
90
|
-
[tool.ruff.format]
|
|
91
|
-
quote-style = "double"
|
|
92
|
-
indent-style = "space"
|
|
93
|
-
skip-magic-trailing-comma = false
|
|
94
|
-
line-ending = "auto"
|
|
95
|
-
|
|
96
|
-
[tool.ruff.lint]
|
|
97
|
-
select = [
|
|
98
|
-
"ANN", # flake8-annotations
|
|
99
|
-
"B", # flake8-bugbear
|
|
100
|
-
"E", # pycodestyle-error
|
|
101
|
-
"F", # Pyflakes
|
|
102
|
-
"FURB", # refurb
|
|
103
|
-
"I", # isort
|
|
104
|
-
"N", # pep8-naming
|
|
105
|
-
"PL", # Pylint
|
|
106
|
-
"PERF", # Perflint
|
|
107
|
-
"RUF", # Ruff-specific
|
|
108
|
-
"S", # flake8-bandit
|
|
109
|
-
"UP", # pyupgrade
|
|
110
|
-
"W", # pycodestyle-warning
|
|
111
|
-
]
|
|
112
|
-
ignore = [
|
|
113
|
-
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
|
114
|
-
"E501", # Line too long
|
|
115
|
-
]
|
|
116
|
-
fixable = ["ALL"]
|
|
117
|
-
unfixable = []
|
|
118
|
-
# Allow unused variables when underscore-prefixed
|
|
119
|
-
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
120
|
-
|
|
121
|
-
# https://github.com/astral-sh/ruff/issues/4368
|
|
122
|
-
[tool.ruff.lint.extend-per-file-ignores]
|
|
123
|
-
"tests/**/*.py" = [
|
|
124
|
-
"ANN001", # Missing type annotation for function argument
|
|
125
|
-
"ANN201", # Missing return type annotation for public function
|
|
126
|
-
"S101", # Use of `assert` detected
|
|
127
|
-
"PLR2004", # Magic value used in comparison
|
|
128
|
-
"PLR0913", # Too many arguments in function definition
|
|
129
|
-
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|