countdown-cli 1.1.1__tar.gz → 2.0.0__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.
- countdown_cli-2.0.0/.claude/settings.local.json +24 -0
- countdown_cli-2.0.0/.envrc +1 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.github/workflows/tests.yml +6 -3
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/PKG-INFO +11 -9
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/README.rst +10 -8
- countdown_cli-2.0.0/htmlcov/.gitignore +2 -0
- countdown_cli-2.0.0/htmlcov/class_index.html +263 -0
- countdown_cli-2.0.0/htmlcov/coverage_html_cb_6fb7b396.js +733 -0
- countdown_cli-2.0.0/htmlcov/coverage_html_cb_da166b87.js +717 -0
- countdown_cli-2.0.0/htmlcov/favicon_32_cb_58284776.png +0 -0
- countdown_cli-2.0.0/htmlcov/function_index.html +1323 -0
- countdown_cli-2.0.0/htmlcov/index.html +236 -0
- countdown_cli-2.0.0/htmlcov/keybd_closed_cb_ce680311.png +0 -0
- countdown_cli-2.0.0/htmlcov/status.json +1 -0
- countdown_cli-2.0.0/htmlcov/style_cb_6b508a39.css +377 -0
- countdown_cli-2.0.0/htmlcov/style_cb_8e611ae1.css +337 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da___init___py.html +104 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da___main___py.html +216 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da_digits_py.html +157 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da_display_py.html +197 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da_keys_py.html +119 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da_terminal_py.html +159 -0
- countdown_cli-2.0.0/htmlcov/z_55719c21e2af63da_timer_py.html +148 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531___init___py.html +100 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531_conftest_py.html +128 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531_test_display_py.html +320 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531_test_keys_py.html +133 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531_test_main_py.html +650 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531_test_terminal_py.html +117 -0
- countdown_cli-2.0.0/htmlcov/z_a44f0ac069e85531_test_timer_py.html +241 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/pyproject.toml +1 -1
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/src/countdown/__init__.py +1 -2
- countdown_cli-2.0.0/src/countdown/__main__.py +117 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/src/countdown/digits.py +1 -1
- countdown_cli-2.0.0/src/countdown/display.py +98 -0
- countdown_cli-2.0.0/src/countdown/keys.py +20 -0
- countdown_cli-2.0.0/src/countdown/terminal.py +60 -0
- countdown_cli-2.0.0/src/countdown/timer.py +49 -0
- countdown_cli-2.0.0/tests/test_display.py +221 -0
- countdown_cli-2.0.0/tests/test_keys.py +34 -0
- countdown_cli-2.0.0/tests/test_main.py +551 -0
- countdown_cli-2.0.0/tests/test_terminal.py +18 -0
- countdown_cli-2.0.0/tests/test_timer.py +142 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/uv.lock +1 -1
- countdown_cli-1.1.1/src/countdown/__main__.py +0 -137
- countdown_cli-1.1.1/tests/test_main.py +0 -546
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.gitattributes +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.github/labels.yml +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.github/release-drafter.yml +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.github/workflows/labeler.yml +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.github/workflows/release.yml +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.gitignore +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.pre-commit-config.yaml +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/.python-version-default +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/CODE_OF_CONDUCT.rst +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/CONTRIBUTING.rst +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/LICENSE.rst +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/codecov.yml +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/images/1457.png +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/images/3253.png +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/images/python-morsels-logo.png +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/justfile +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/noxfile.py +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/src/countdown/numbers.txt +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/tests/__init__.py +0 -0
- {countdown_cli-1.1.1 → countdown_cli-2.0.0}/tests/conftest.py +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(uv sync:*)",
|
|
5
|
+
"Bash(just --list:*)",
|
|
6
|
+
"Bash(just test:*)",
|
|
7
|
+
"Bash(uv run pytest:*)",
|
|
8
|
+
"Bash(just check:*)",
|
|
9
|
+
"Bash(uv run python:*)",
|
|
10
|
+
"Bash(just lint:*)",
|
|
11
|
+
"Bash(uv run:*)",
|
|
12
|
+
"Bash(uvx nox:*)",
|
|
13
|
+
"Bash(just test-all)",
|
|
14
|
+
"WebSearch",
|
|
15
|
+
"WebFetch(domain:nox.thea.codes)",
|
|
16
|
+
"Bash(uv build:*)",
|
|
17
|
+
"Bash(unzip:*)",
|
|
18
|
+
"Bash(python3:*)",
|
|
19
|
+
"Bash(timeout 2 uv run pytest:*)"
|
|
20
|
+
],
|
|
21
|
+
"deny": [],
|
|
22
|
+
"ask": []
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export UV_PUBLISH_TOKEN=pypi-AgEIcHlwaS5vcmcCJGFkMGQ5YTQ5LTY5YjMtNDdhYS04YjYyLTFjZTA3ZjViM2U5NwACKlszLCIxMjdiZGQyMS02Y2M2LTRjMTYtYjE1Ny01YmIxNTRmNGVmM2EiXQAABiDG0OMv5kvOwbPGnLprNzdoBBteMpqfHp2KTz66LE5izA
|
|
@@ -21,13 +21,14 @@ jobs:
|
|
|
21
21
|
python-versions: ${{ steps.baipp.outputs.supported_python_classifiers_json_array }}
|
|
22
22
|
|
|
23
23
|
tests:
|
|
24
|
-
name: Tests on ${{ matrix.python-version }}
|
|
24
|
+
name: Tests on ${{ matrix.os }} - ${{ matrix.python-version }}
|
|
25
25
|
needs: build-package
|
|
26
|
-
runs-on:
|
|
26
|
+
runs-on: ${{ matrix.os }}
|
|
27
27
|
strategy:
|
|
28
28
|
fail-fast: false
|
|
29
29
|
matrix:
|
|
30
30
|
python-version: ${{ fromJson(needs.build-package.outputs.python-versions) }}
|
|
31
|
+
os: [ubuntu-latest, windows-latest]
|
|
31
32
|
|
|
32
33
|
steps:
|
|
33
34
|
- uses: actions/checkout@v4
|
|
@@ -36,7 +37,9 @@ jobs:
|
|
|
36
37
|
with:
|
|
37
38
|
name: Packages
|
|
38
39
|
path: dist
|
|
39
|
-
-
|
|
40
|
+
- name: Extract source tarball
|
|
41
|
+
shell: bash
|
|
42
|
+
run: tar xf dist/*.tar.gz --strip-components=1
|
|
40
43
|
- uses: actions/setup-python@v5
|
|
41
44
|
with:
|
|
42
45
|
python-version: ${{ matrix.python-version }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: countdown-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0
|
|
4
4
|
Summary: Terminal program to display countdown timer
|
|
5
5
|
Project-URL: homepage, https://github.com/treyhunner/countdown-cli
|
|
6
6
|
Project-URL: repository, https://github.com/treyhunner/countdown-cli
|
|
@@ -71,8 +71,11 @@ Instead, try implementing this package with the `Python Morsels "countdown" exer
|
|
|
71
71
|
Features
|
|
72
72
|
--------
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
- Full-screen countdown timer, centered in the terminal window
|
|
75
|
+
- Responsive timer size based on terminal window width/height
|
|
76
|
+
- Command-line interface for Linux/Mac/Windows
|
|
77
|
+
- Pause/resume with ``p``, ``k``, ``Space``, or ``Enter``
|
|
78
|
+
- Add / remove time with ``+`` or ``-``
|
|
76
79
|
|
|
77
80
|
|32:53|
|
|
78
81
|
|
|
@@ -90,17 +93,17 @@ Features
|
|
|
90
93
|
Requirements
|
|
91
94
|
------------
|
|
92
95
|
|
|
93
|
-
|
|
96
|
+
- Python 3.10+
|
|
94
97
|
|
|
95
98
|
|
|
96
99
|
Installation
|
|
97
100
|
------------
|
|
98
101
|
|
|
99
|
-
You can install
|
|
102
|
+
You can install **countdown-cli** via uv_ from PyPI_:
|
|
100
103
|
|
|
101
104
|
.. code:: console
|
|
102
105
|
|
|
103
|
-
$
|
|
106
|
+
$ uv tool install countdown-cli
|
|
104
107
|
|
|
105
108
|
|
|
106
109
|
Contributing
|
|
@@ -114,7 +117,7 @@ License
|
|
|
114
117
|
-------
|
|
115
118
|
|
|
116
119
|
Distributed under the terms of the `MIT license`_,
|
|
117
|
-
|
|
120
|
+
**countdown-cli** is free and open source software.
|
|
118
121
|
|
|
119
122
|
|
|
120
123
|
Issues
|
|
@@ -125,10 +128,9 @@ please `file an issue`_ along with a detailed description.
|
|
|
125
128
|
|
|
126
129
|
|
|
127
130
|
.. _Python Morsels: https://www.pythonmorsels.com
|
|
128
|
-
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
|
|
129
131
|
.. _MIT license: https://opensource.org/licenses/MIT
|
|
130
132
|
.. _PyPI: https://pypi.org/project/countdown-cli/
|
|
131
133
|
.. _file an issue: https://github.com/treyhunner/countdown-cli/issues
|
|
132
|
-
..
|
|
134
|
+
.. _uv: https://docs.astral.sh/uv/concepts/tools/
|
|
133
135
|
.. github-only
|
|
134
136
|
.. _Contributor Guide: CONTRIBUTING.rst
|
|
@@ -50,8 +50,11 @@ Instead, try implementing this package with the `Python Morsels "countdown" exer
|
|
|
50
50
|
Features
|
|
51
51
|
--------
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
- Full-screen countdown timer, centered in the terminal window
|
|
54
|
+
- Responsive timer size based on terminal window width/height
|
|
55
|
+
- Command-line interface for Linux/Mac/Windows
|
|
56
|
+
- Pause/resume with ``p``, ``k``, ``Space``, or ``Enter``
|
|
57
|
+
- Add / remove time with ``+`` or ``-``
|
|
55
58
|
|
|
56
59
|
|32:53|
|
|
57
60
|
|
|
@@ -69,17 +72,17 @@ Features
|
|
|
69
72
|
Requirements
|
|
70
73
|
------------
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
- Python 3.10+
|
|
73
76
|
|
|
74
77
|
|
|
75
78
|
Installation
|
|
76
79
|
------------
|
|
77
80
|
|
|
78
|
-
You can install
|
|
81
|
+
You can install **countdown-cli** via uv_ from PyPI_:
|
|
79
82
|
|
|
80
83
|
.. code:: console
|
|
81
84
|
|
|
82
|
-
$
|
|
85
|
+
$ uv tool install countdown-cli
|
|
83
86
|
|
|
84
87
|
|
|
85
88
|
Contributing
|
|
@@ -93,7 +96,7 @@ License
|
|
|
93
96
|
-------
|
|
94
97
|
|
|
95
98
|
Distributed under the terms of the `MIT license`_,
|
|
96
|
-
|
|
99
|
+
**countdown-cli** is free and open source software.
|
|
97
100
|
|
|
98
101
|
|
|
99
102
|
Issues
|
|
@@ -104,10 +107,9 @@ please `file an issue`_ along with a detailed description.
|
|
|
104
107
|
|
|
105
108
|
|
|
106
109
|
.. _Python Morsels: https://www.pythonmorsels.com
|
|
107
|
-
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
|
|
108
110
|
.. _MIT license: https://opensource.org/licenses/MIT
|
|
109
111
|
.. _PyPI: https://pypi.org/project/countdown-cli/
|
|
110
112
|
.. _file an issue: https://github.com/treyhunner/countdown-cli/issues
|
|
111
|
-
..
|
|
113
|
+
.. _uv: https://docs.astral.sh/uv/concepts/tools/
|
|
112
114
|
.. github-only
|
|
113
115
|
.. _Contributor Guide: CONTRIBUTING.rst
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
5
|
+
<title>Coverage report</title>
|
|
6
|
+
<link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
|
|
7
|
+
<link rel="stylesheet" href="style_cb_6b508a39.css" type="text/css">
|
|
8
|
+
<script src="coverage_html_cb_6fb7b396.js" defer></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body class="indexfile">
|
|
11
|
+
<header>
|
|
12
|
+
<div class="content">
|
|
13
|
+
<h1>Coverage report:
|
|
14
|
+
<span class="pc_cov">100%</span>
|
|
15
|
+
</h1>
|
|
16
|
+
<aside id="help_panel_wrapper">
|
|
17
|
+
<input id="help_panel_state" type="checkbox">
|
|
18
|
+
<label for="help_panel_state">
|
|
19
|
+
<img id="keyboard_icon" src="keybd_closed_cb_ce680311.png" alt="Show/hide keyboard shortcuts">
|
|
20
|
+
</label>
|
|
21
|
+
<div id="help_panel">
|
|
22
|
+
<p class="legend">Shortcuts on this page</p>
|
|
23
|
+
<div class="keyhelp">
|
|
24
|
+
<p>
|
|
25
|
+
<kbd>f</kbd>
|
|
26
|
+
<kbd>n</kbd>
|
|
27
|
+
<kbd>s</kbd>
|
|
28
|
+
<kbd>m</kbd>
|
|
29
|
+
<kbd>x</kbd>
|
|
30
|
+
<kbd>b</kbd>
|
|
31
|
+
<kbd>p</kbd>
|
|
32
|
+
<kbd>c</kbd>
|
|
33
|
+
change column sorting
|
|
34
|
+
</p>
|
|
35
|
+
<p>
|
|
36
|
+
<kbd>[</kbd>
|
|
37
|
+
<kbd>]</kbd>
|
|
38
|
+
prev/next file
|
|
39
|
+
</p>
|
|
40
|
+
<p>
|
|
41
|
+
<kbd>?</kbd> show/hide this help
|
|
42
|
+
</p>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</aside>
|
|
46
|
+
<form id="filter_container">
|
|
47
|
+
<input id="filter" type="text" value="" placeholder="filter...">
|
|
48
|
+
<div>
|
|
49
|
+
<input id="hide100" type="checkbox" >
|
|
50
|
+
<label for="hide100">hide covered</label>
|
|
51
|
+
</div>
|
|
52
|
+
</form>
|
|
53
|
+
<h2>
|
|
54
|
+
<a class="button" href="index.html">Files</a>
|
|
55
|
+
<a class="button" href="function_index.html">Functions</a>
|
|
56
|
+
<a class="button current">Classes</a>
|
|
57
|
+
</h2>
|
|
58
|
+
<p class="text">
|
|
59
|
+
<a class="nav" href="https://coverage.readthedocs.io/en/7.11.0">coverage.py v7.11.0</a>,
|
|
60
|
+
created at 2025-11-07 20:46 -0800
|
|
61
|
+
</p>
|
|
62
|
+
</div>
|
|
63
|
+
</header>
|
|
64
|
+
<main id="index">
|
|
65
|
+
<table class="index" data-sortable>
|
|
66
|
+
<thead>
|
|
67
|
+
<tr class="tablehead" title="Click to sort">
|
|
68
|
+
<th id="file" class="name left" aria-sort="none" data-shortcut="f">File<span class="arrows"></span></th>
|
|
69
|
+
<th id="region" class="name left" aria-sort="none" data-default-sort-order="ascending" data-shortcut="n">class<span class="arrows"></span></th>
|
|
70
|
+
<th id="statements" aria-sort="none" data-default-sort-order="descending" data-shortcut="s">statements<span class="arrows"></span></th>
|
|
71
|
+
<th id="missing" aria-sort="none" data-default-sort-order="descending" data-shortcut="m">missing<span class="arrows"></span></th>
|
|
72
|
+
<th id="excluded" aria-sort="none" data-default-sort-order="descending" data-shortcut="x">excluded<span class="arrows"></span></th>
|
|
73
|
+
<th id="branches" aria-sort="none" data-default-sort-order="descending" data-shortcut="b">branches<span class="arrows"></span></th>
|
|
74
|
+
<th id="partial" aria-sort="none" data-default-sort-order="descending" data-shortcut="p">partial<span class="arrows"></span></th>
|
|
75
|
+
<th id="coverage" class="right" aria-sort="none" data-shortcut="c">coverage<span class="arrows"></span></th>
|
|
76
|
+
</tr>
|
|
77
|
+
</thead>
|
|
78
|
+
<tbody>
|
|
79
|
+
<tr class="region">
|
|
80
|
+
<td class="name left"><a href="z_55719c21e2af63da___init___py.html">src/countdown/__init__.py</a></td>
|
|
81
|
+
<td class="name left"><a href="z_55719c21e2af63da___init___py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
82
|
+
<td>0</td>
|
|
83
|
+
<td>0</td>
|
|
84
|
+
<td>0</td>
|
|
85
|
+
<td>0</td>
|
|
86
|
+
<td>0</td>
|
|
87
|
+
<td class="right" data-ratio="0 0">100%</td>
|
|
88
|
+
</tr>
|
|
89
|
+
<tr class="region">
|
|
90
|
+
<td class="name left"><a href="z_55719c21e2af63da___main___py.html">src/countdown/__main__.py</a></td>
|
|
91
|
+
<td class="name left"><a href="z_55719c21e2af63da___main___py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
92
|
+
<td>54</td>
|
|
93
|
+
<td>0</td>
|
|
94
|
+
<td>1</td>
|
|
95
|
+
<td>18</td>
|
|
96
|
+
<td>0</td>
|
|
97
|
+
<td class="right" data-ratio="72 72">100%</td>
|
|
98
|
+
</tr>
|
|
99
|
+
<tr class="region">
|
|
100
|
+
<td class="name left"><a href="z_55719c21e2af63da_digits_py.html">src/countdown/digits.py</a></td>
|
|
101
|
+
<td class="name left"><a href="z_55719c21e2af63da_digits_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
102
|
+
<td>36</td>
|
|
103
|
+
<td>0</td>
|
|
104
|
+
<td>0</td>
|
|
105
|
+
<td>12</td>
|
|
106
|
+
<td>0</td>
|
|
107
|
+
<td class="right" data-ratio="48 48">100%</td>
|
|
108
|
+
</tr>
|
|
109
|
+
<tr class="region">
|
|
110
|
+
<td class="name left"><a href="z_55719c21e2af63da_display_py.html">src/countdown/display.py</a></td>
|
|
111
|
+
<td class="name left"><a href="z_55719c21e2af63da_display_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
112
|
+
<td>43</td>
|
|
113
|
+
<td>0</td>
|
|
114
|
+
<td>16</td>
|
|
115
|
+
<td>10</td>
|
|
116
|
+
<td>0</td>
|
|
117
|
+
<td class="right" data-ratio="53 53">100%</td>
|
|
118
|
+
</tr>
|
|
119
|
+
<tr class="region">
|
|
120
|
+
<td class="name left"><a href="z_55719c21e2af63da_keys_py.html">src/countdown/keys.py</a></td>
|
|
121
|
+
<td class="name left"><a href="z_55719c21e2af63da_keys_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
122
|
+
<td>10</td>
|
|
123
|
+
<td>0</td>
|
|
124
|
+
<td>0</td>
|
|
125
|
+
<td>4</td>
|
|
126
|
+
<td>0</td>
|
|
127
|
+
<td class="right" data-ratio="14 14">100%</td>
|
|
128
|
+
</tr>
|
|
129
|
+
<tr class="region">
|
|
130
|
+
<td class="name left"><a href="z_55719c21e2af63da_terminal_py.html">src/countdown/terminal.py</a></td>
|
|
131
|
+
<td class="name left"><a href="z_55719c21e2af63da_terminal_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
132
|
+
<td>1</td>
|
|
133
|
+
<td>0</td>
|
|
134
|
+
<td>46</td>
|
|
135
|
+
<td>0</td>
|
|
136
|
+
<td>0</td>
|
|
137
|
+
<td class="right" data-ratio="1 1">100%</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr class="region">
|
|
140
|
+
<td class="name left"><a href="z_55719c21e2af63da_timer_py.html">src/countdown/timer.py</a></td>
|
|
141
|
+
<td class="name left"><a href="z_55719c21e2af63da_timer_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
142
|
+
<td>18</td>
|
|
143
|
+
<td>0</td>
|
|
144
|
+
<td>0</td>
|
|
145
|
+
<td>6</td>
|
|
146
|
+
<td>0</td>
|
|
147
|
+
<td class="right" data-ratio="24 24">100%</td>
|
|
148
|
+
</tr>
|
|
149
|
+
<tr class="region">
|
|
150
|
+
<td class="name left"><a href="z_a44f0ac069e85531___init___py.html">tests/__init__.py</a></td>
|
|
151
|
+
<td class="name left"><a href="z_a44f0ac069e85531___init___py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
152
|
+
<td>0</td>
|
|
153
|
+
<td>0</td>
|
|
154
|
+
<td>0</td>
|
|
155
|
+
<td>0</td>
|
|
156
|
+
<td>0</td>
|
|
157
|
+
<td class="right" data-ratio="0 0">100%</td>
|
|
158
|
+
</tr>
|
|
159
|
+
<tr class="region">
|
|
160
|
+
<td class="name left"><a href="z_a44f0ac069e85531_conftest_py.html">tests/conftest.py</a></td>
|
|
161
|
+
<td class="name left"><a href="z_a44f0ac069e85531_conftest_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
162
|
+
<td>3</td>
|
|
163
|
+
<td>0</td>
|
|
164
|
+
<td>21</td>
|
|
165
|
+
<td>0</td>
|
|
166
|
+
<td>0</td>
|
|
167
|
+
<td class="right" data-ratio="3 3">100%</td>
|
|
168
|
+
</tr>
|
|
169
|
+
<tr class="region">
|
|
170
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_display_py.html">tests/test_display.py</a></td>
|
|
171
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_display_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
172
|
+
<td>118</td>
|
|
173
|
+
<td>0</td>
|
|
174
|
+
<td>0</td>
|
|
175
|
+
<td>6</td>
|
|
176
|
+
<td>0</td>
|
|
177
|
+
<td class="right" data-ratio="124 124">100%</td>
|
|
178
|
+
</tr>
|
|
179
|
+
<tr class="region">
|
|
180
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_keys_py.html">tests/test_keys.py</a></td>
|
|
181
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_keys_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
182
|
+
<td>21</td>
|
|
183
|
+
<td>0</td>
|
|
184
|
+
<td>0</td>
|
|
185
|
+
<td>0</td>
|
|
186
|
+
<td>0</td>
|
|
187
|
+
<td class="right" data-ratio="21 21">100%</td>
|
|
188
|
+
</tr>
|
|
189
|
+
<tr class="region">
|
|
190
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_main_py.html#t12">tests/test_main.py</a></td>
|
|
191
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_main_py.html#t12"><data value='FakeSleep'>FakeSleep</data></a></td>
|
|
192
|
+
<td>6</td>
|
|
193
|
+
<td>0</td>
|
|
194
|
+
<td>0</td>
|
|
195
|
+
<td>4</td>
|
|
196
|
+
<td>0</td>
|
|
197
|
+
<td class="right" data-ratio="10 10">100%</td>
|
|
198
|
+
</tr>
|
|
199
|
+
<tr class="region">
|
|
200
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_main_py.html">tests/test_main.py</a></td>
|
|
201
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_main_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
202
|
+
<td>257</td>
|
|
203
|
+
<td>0</td>
|
|
204
|
+
<td>0</td>
|
|
205
|
+
<td>8</td>
|
|
206
|
+
<td>0</td>
|
|
207
|
+
<td class="right" data-ratio="265 265">100%</td>
|
|
208
|
+
</tr>
|
|
209
|
+
<tr class="region">
|
|
210
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_terminal_py.html">tests/test_terminal.py</a></td>
|
|
211
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_terminal_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
212
|
+
<td>9</td>
|
|
213
|
+
<td>0</td>
|
|
214
|
+
<td>0</td>
|
|
215
|
+
<td>0</td>
|
|
216
|
+
<td>0</td>
|
|
217
|
+
<td class="right" data-ratio="9 9">100%</td>
|
|
218
|
+
</tr>
|
|
219
|
+
<tr class="region">
|
|
220
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_timer_py.html">tests/test_timer.py</a></td>
|
|
221
|
+
<td class="name left"><a href="z_a44f0ac069e85531_test_timer_py.html"><data value=''><span class='no-noun'>(no class)</span></data></a></td>
|
|
222
|
+
<td>44</td>
|
|
223
|
+
<td>0</td>
|
|
224
|
+
<td>0</td>
|
|
225
|
+
<td>0</td>
|
|
226
|
+
<td>0</td>
|
|
227
|
+
<td class="right" data-ratio="44 44">100%</td>
|
|
228
|
+
</tr>
|
|
229
|
+
</tbody>
|
|
230
|
+
<tfoot>
|
|
231
|
+
<tr class="total">
|
|
232
|
+
<td class="name left">Total</td>
|
|
233
|
+
<td class="name left"> </td>
|
|
234
|
+
<td>620</td>
|
|
235
|
+
<td>0</td>
|
|
236
|
+
<td>84</td>
|
|
237
|
+
<td>68</td>
|
|
238
|
+
<td>0</td>
|
|
239
|
+
<td class="right" data-ratio="688 688">100%</td>
|
|
240
|
+
</tr>
|
|
241
|
+
</tfoot>
|
|
242
|
+
</table>
|
|
243
|
+
<p id="no_rows">
|
|
244
|
+
No items found using the specified filter.
|
|
245
|
+
</p>
|
|
246
|
+
</main>
|
|
247
|
+
<footer>
|
|
248
|
+
<div class="content">
|
|
249
|
+
<p>
|
|
250
|
+
<a class="nav" href="https://coverage.readthedocs.io/en/7.11.0">coverage.py v7.11.0</a>,
|
|
251
|
+
created at 2025-11-07 20:46 -0800
|
|
252
|
+
</p>
|
|
253
|
+
</div>
|
|
254
|
+
<aside class="hidden">
|
|
255
|
+
<a id="prevFileLink" class="nav" href=""></a>
|
|
256
|
+
<a id="nextFileLink" class="nav" href=""></a>
|
|
257
|
+
<button type="button" class="button_prev_file" data-shortcut="["></button>
|
|
258
|
+
<button type="button" class="button_next_file" data-shortcut="]"></button>
|
|
259
|
+
<button type="button" class="button_show_hide_help" data-shortcut="?"></button>
|
|
260
|
+
</aside>
|
|
261
|
+
</footer>
|
|
262
|
+
</body>
|
|
263
|
+
</html>
|