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.
@@ -1,16 +1,28 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-wait-until
3
- Version: 0.0.6
3
+ Version: 0.0.7
4
4
  Summary: Print a loading spinner while another command is running.
5
5
  Author: billwallis
6
- License-File: LICENSE
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
  [![Python](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://www.python.org/downloads/)
13
- [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
14
26
  [![tests](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml/badge.svg)](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml)
15
27
  [![coverage](https://raw.githubusercontent.com/billwallis/py-wait-until/refs/heads/main/coverage.svg)](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
  [![Python](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://www.python.org/downloads/)
4
- [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
5
4
  [![tests](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml/badge.svg)](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml)
6
5
  [![coverage](https://raw.githubusercontent.com/billwallis/py-wait-until/refs/heads/main/coverage.svg)](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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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
+ [![Python](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://www.python.org/downloads/)
26
+ [![tests](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml/badge.svg)](https://github.com/billwallis/py-wait-until/actions/workflows/tests.yaml)
27
+ [![coverage](https://raw.githubusercontent.com/billwallis/py-wait-until/refs/heads/main/coverage.svg)](https://smarie.github.io/python-genbadge/)
28
+
29
+ [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/billwallis/py-wait-until/main.svg)](https://results.pre-commit.ci/latest/github/billwallis/py-wait-until/main)
30
+ [![GitHub last commit](https://img.shields.io/github/last-commit/billwallis/py-wait-until)](https://shields.io/badges/git-hub-last-commit)
31
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/py-wait-until)](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,2 @@
1
+ [console_scripts]
2
+ py-wait-until = py_wait_until.main:main
@@ -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
- ]
@@ -1,15 +0,0 @@
1
- https://en.wikipedia.org/wiki/Braille_ASCII#Braille_ASCII_values
2
-
3
- |⠁|⠂|⠄|⠠|⠐|⠈| |
4
-
5
- |⠃|⠆|⠘|⠰|⠉|⠒|⠤|
6
- |⠅|⠡|⠑|⠨|⠌|⠊|⠢|⠔|
7
-
8
- |⠇|⠸|⠋|⠙|⠦|⠴|
9
- |⠩|⠍|⠥|⠬|⠕|⠪|
10
- |⠓|⠚|⠲|⠖|⠱|⠎|⠣|⠜|
11
-
12
- |⠏|⠧|⠼|⠹|⠶|⠛|⠭|
13
- |⠗|⠺|⠞|⠳|⠫|⠝|⠵|⠮|
14
-
15
- |⠾|⠽|⠻|⠟|⠯|⠷|⠿|
File without changes