Skip to content

Commit 3ec5523

Browse files
committed
Updated, tested, and exported Windows release artifacts.
1 parent 848164a commit 3ec5523

11 files changed

Lines changed: 421 additions & 51 deletions

File tree

envs/axt_dev_win.yml

Lines changed: 106 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,119 @@ channels:
33
- conda-forge
44
dependencies:
55
- bzip2=1.0.8=h0ad9c76_8
6-
- ca-certificates=2025.10.5=h4c7d964_0
7-
- cachetools=6.2.1=pyhd8ed1ab_0
6+
- ca-certificates=2026.1.4=h4c7d964_0
7+
- cachetools=7.0.1=pyhd8ed1ab_0
88
- chardet=5.2.0=pyhd8ed1ab_3
99
- colorama=0.4.6=pyhd8ed1ab_1
1010
- distlib=0.4.0=pyhd8ed1ab_0
11-
- filelock=3.20.0=pyhd8ed1ab_0
12-
- libexpat=2.7.1=hac47afa_0
13-
- libffi=3.4.6=h537db12_1
14-
- liblzma=5.8.1=h2466b09_2
15-
- libmpdec=4.0.0=h2466b09_0
16-
- libsqlite=3.50.4=hf5d6505_0
11+
- filelock=3.24.2=pyhd8ed1ab_0
12+
- libexpat=2.7.4=hac47afa_0
13+
- libffi=3.5.2=h3d046cb_0
14+
- liblzma=5.8.2=hfd05255_0
15+
- libmpdec=4.0.0=hfd05255_1
16+
- libsqlite=3.51.2=hf5d6505_0
1717
- libzlib=1.3.1=h2466b09_2
18-
- openssl=3.5.4=h725018a_0
19-
- packaging=25.0=pyh29332c3_1
20-
- pip=25.2=pyh145f28c_0
21-
- platformdirs=4.5.0=pyhcf101f3_0
22-
- pluggy=1.6.0=pyhd8ed1ab_0
18+
- openssl=3.6.1=hf411b9b_1
19+
- packaging=26.0=pyhcf101f3_0
20+
- pip=26.0.1=pyh145f28c_0
21+
- platformdirs=4.9.2=pyhcf101f3_0
22+
- pluggy=1.6.0=pyhf9edf01_1
2323
- pyproject-api=1.10.0=pyhcf101f3_0
24-
- python=3.14.0=h6fd79ff_101_cp314
25-
- python-uv=0.9.2=pyhcf101f3_0
24+
- python=3.14.3=h4b44e0e_101_cp314
25+
- python-uv=0.10.2=pyhcf101f3_0
2626
- python_abi=3.14=8_cp314
27-
- tk=8.6.13=h2c6b04d_2
28-
- tomli=2.3.0=pyhcf101f3_0
29-
- tox=4.31.0=pyhcf101f3_0
27+
- tk=8.6.13=h6ed50ae_3
28+
- tomli=2.4.0=pyhcf101f3_0
29+
- tox=4.36.0=pyhcf101f3_0
3030
- tox-uv=1.29.0=pyhd8ed1ab_0
3131
- typing_extensions=4.15.0=pyhcf101f3_0
32-
- tzdata=2025b=h78e105d_0
32+
- tzdata=2025c=hc9c84f9_1
3333
- ucrt=10.0.26100.0=h57928b3_0
34-
- uv=0.9.2=ha1006f7_0
35-
- vc=14.3=h2b53caa_32
36-
- vc14_runtime=14.44.35208=h818238b_32
37-
- vcomp14=14.44.35208=h818238b_32
38-
- virtualenv=20.35.3=pyhd8ed1ab_0
39-
- zstd=1.5.7=hbeecb71_2
34+
- uv=0.10.2=h9b344b9_0
35+
- vc=14.3=h41ae7f8_34
36+
- vc14_runtime=14.44.35208=h818238b_34
37+
- vcomp14=14.44.35208=h818238b_34
38+
- virtualenv=20.36.1=pyhd8ed1ab_0
39+
- zstd=1.5.7=h534d264_6
40+
- pip:
41+
- Jinja2==3.1.6
42+
- MarkupSafe==3.0.3
43+
- Pygments==2.19.2
44+
- Sphinx==9.1.0
45+
- accessible-pygments==0.0.5
46+
- alabaster==1.0.0
47+
- ataraxis-automation==8.1.0
48+
- ataraxis-base-utilities==6.0.0
49+
- babel==2.18.0
50+
- bashlex==0.18
51+
- beautifulsoup4==4.14.3
52+
- bracex==2.6
53+
- breathe==4.36.0
54+
- build==1.4.0
55+
- certifi==2026.1.4
56+
- charset-normalizer==3.4.4
57+
- cibuildwheel==3.3.1
58+
- click==8.3.1
59+
- coverage==7.13.4
60+
- dependency-groups==1.3.1
61+
- docutils==0.22.4
62+
- execnet==2.1.2
63+
- furo==2025.12.19
64+
- hatchling==1.28.0
65+
- humanize==4.15.0
66+
- id==1.6.1
67+
- idna==3.11
68+
- imagesize==1.4.1
69+
- importlib_metadata==8.7.1
70+
- iniconfig==2.3.0
71+
- jaraco.classes==3.4.0
72+
- jaraco.context==6.1.0
73+
- jaraco.functools==4.4.0
74+
- junitparser==4.0.2
75+
- keyring==25.7.0
76+
- librt==0.8.0
77+
- loguru==0.7.3
78+
- markdown-it-py==4.0.0
79+
- mdurl==0.1.2
80+
- more-itertools==10.8.0
81+
- mypy==1.19.1
82+
- mypy_extensions==1.1.0
83+
- nanobind==2.11.0
84+
- nh3==0.3.3
85+
- numpy==2.4.2
86+
- pathspec==1.0.4
87+
- pyelftools==0.32
88+
- pyproject_hooks==1.2.0
89+
- pytest==9.0.2
90+
- pytest-cov==7.0.0
91+
- pytest-xdist==3.8.0
92+
- pywin32-ctypes==0.2.3
93+
- readme_renderer==44.0
94+
- requests==2.32.5
95+
- requests-toolbelt==1.0.0
96+
- rfc3986==2.0.0
97+
- rich==14.3.2
98+
- roman-numerals==4.1.0
99+
- ruff==0.15.1
100+
- scikit_build_core==0.11.6
101+
- snowballstemmer==3.0.1
102+
- soupsieve==2.8.3
103+
- sphinx-autodoc-typehints==3.6.2
104+
- sphinx-basic-ng==1.0.0b2
105+
- sphinx-click==6.2.0
106+
- sphinxcontrib-applehelp==2.0.0
107+
- sphinxcontrib-devhelp==2.0.0
108+
- sphinxcontrib-htmlhelp==2.1.0
109+
- sphinxcontrib-jsmath==1.0.1
110+
- sphinxcontrib-qthelp==2.0.0
111+
- sphinxcontrib-serializinghtml==2.0.0
112+
- tqdm==4.67.3
113+
- trove-classifiers==2026.1.14.14
114+
- twine==6.2.0
115+
- types-requests==2.32.4.20260107
116+
- types-tqdm==4.67.3.20260205
117+
- urllib3==2.6.3
118+
- wheel==0.46.3
119+
- win32_setctime==1.2.0
120+
- zipp==3.23.0
40121

envs/axt_dev_win_spec.txt

Lines changed: 105 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,117 @@
11
List of packages in environment: "C:\\Users\\ikond\\miniforge3\\envs\\axt_dev_win"
22

3+
4+
5+
6+
7+
8+
9+
10+
11+
12+
13+
14+
15+
16+
317
https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda
4-
https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.10.5-h4c7d964_0.conda
5-
https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.1-pyhd8ed1ab_0.conda
18+
https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda
19+
https://conda.anaconda.org/conda-forge/noarch/cachetools-7.0.1-pyhd8ed1ab_0.conda
20+
621
https://conda.anaconda.org/conda-forge/noarch/chardet-5.2.0-pyhd8ed1ab_3.conda
22+
23+
24+
725
https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
26+
27+
828
https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda
9-
https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda
10-
https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda
11-
https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda
12-
https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda
13-
https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda
14-
https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.50.4-hf5d6505_0.conda
29+
30+
31+
https://conda.anaconda.org/conda-forge/noarch/filelock-3.24.2-pyhd8ed1ab_0.conda
32+
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.4-hac47afa_0.conda
46+
https://conda.anaconda.org/conda-forge/win-64/libffi-3.5.2-h3d046cb_0.conda
47+
https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda
48+
https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-hfd05255_1.conda
49+
50+
https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda
1551
https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
16-
https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.4-h725018a_0.conda
17-
https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
18-
https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh145f28c_0.conda
19-
https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda
20-
https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
52+
53+
54+
55+
56+
57+
58+
59+
60+
61+
https://conda.anaconda.org/conda-forge/win-64/openssl-3.6.1-hf411b9b_1.conda
62+
https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda
63+
64+
https://conda.anaconda.org/conda-forge/noarch/pip-26.0.1-pyh145f28c_0.conda
65+
https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.2-pyhcf101f3_0.conda
66+
https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
67+
2168
https://conda.anaconda.org/conda-forge/noarch/pyproject-api-1.10.0-pyhcf101f3_0.conda
22-
https://conda.anaconda.org/conda-forge/win-64/python-3.14.0-h6fd79ff_101_cp314.conda
23-
https://conda.anaconda.org/conda-forge/noarch/python-uv-0.9.2-pyhcf101f3_0.conda
69+
70+
71+
72+
73+
https://conda.anaconda.org/conda-forge/win-64/python-3.14.3-h4b44e0e_101_cp314.conda
74+
https://conda.anaconda.org/conda-forge/noarch/python-uv-0.10.2-pyhcf101f3_0.conda
2475
https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda
25-
https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda
26-
https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda
27-
https://conda.anaconda.org/conda-forge/noarch/tox-4.31.0-pyhcf101f3_0.conda
76+
77+
78+
79+
80+
81+
82+
83+
84+
85+
86+
87+
88+
89+
90+
91+
92+
93+
94+
95+
96+
https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h6ed50ae_3.conda
97+
https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
98+
https://conda.anaconda.org/conda-forge/noarch/tox-4.36.0-pyhcf101f3_0.conda
2899
https://conda.anaconda.org/conda-forge/noarch/tox-uv-1.29.0-pyhd8ed1ab_0.conda
100+
101+
102+
103+
104+
29105
https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
30-
https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
106+
https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda
31107
https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda
32-
https://conda.anaconda.org/conda-forge/win-64/uv-0.9.2-ha1006f7_0.conda
33-
https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h2b53caa_32.conda
34-
https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_32.conda
35-
https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_32.conda
36-
https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.3-pyhd8ed1ab_0.conda
37-
https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda
108+
109+
https://conda.anaconda.org/conda-forge/win-64/uv-0.10.2-h9b344b9_0.conda
110+
https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda
111+
https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda
112+
https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda
113+
https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda
114+
115+
116+
117+
https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h534d264_6.conda

src/__init__.pyi

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from .timers import (
2+
Timeout as Timeout,
3+
PrecisionTimer as PrecisionTimer,
4+
TimerPrecisions as TimerPrecisions,
5+
)
6+
from .utilities import (
7+
TimeUnits as TimeUnits,
8+
TimestampFormats as TimestampFormats,
9+
TimestampPrecisions as TimestampPrecisions,
10+
convert_time as convert_time,
11+
to_timedelta as to_timedelta,
12+
get_timestamp as get_timestamp,
13+
from_timedelta as from_timedelta,
14+
parse_timestamp as parse_timestamp,
15+
interval_to_rate as interval_to_rate,
16+
rate_to_interval as rate_to_interval,
17+
convert_timestamp as convert_timestamp,
18+
)
19+
20+
__all__ = [
21+
"PrecisionTimer",
22+
"TimeUnits",
23+
"Timeout",
24+
"TimerPrecisions",
25+
"TimestampFormats",
26+
"TimestampPrecisions",
27+
"convert_time",
28+
"convert_timestamp",
29+
"from_timedelta",
30+
"get_timestamp",
31+
"interval_to_rate",
32+
"parse_timestamp",
33+
"rate_to_interval",
34+
"to_timedelta",
35+
]

src/precision_timer_ext.pyi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class CPrecisionTimer:
2+
def __init__(self, precision: str = ...) -> None: ...
3+
def Delay(self, duration: int, allow_sleep: bool = ..., block: bool = ...) -> None: ...
4+
def Elapsed(self) -> int: ...
5+
def GetPrecision(self) -> str: ...
6+
def Reset(self) -> None: ...
7+
def SetPrecision(self, precision: str) -> None: ...

src/timers/__init__.pyi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from .timer import (
2+
PrecisionTimer as PrecisionTimer,
3+
TimerPrecisions as TimerPrecisions,
4+
)
5+
from .timeout import Timeout as Timeout
6+
7+
__all__ = ["PrecisionTimer", "Timeout", "TimerPrecisions"]

src/timers/benchmark.pyi

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from .timer import (
2+
PrecisionTimer as PrecisionTimer,
3+
TimerPrecisions as TimerPrecisions,
4+
)
5+
from ..utilities import (
6+
TimeUnits as TimeUnits,
7+
convert_time as convert_time,
8+
)
9+
10+
def benchmark(
11+
interval_cycles: int, interval_delay: float, delay_cycles: tuple[int, ...], delay_durations: tuple[int, ...]
12+
) -> None: ...

src/timers/timeout.pyi

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from _typeshed import Incomplete
2+
3+
from .timer import (
4+
PrecisionTimer as PrecisionTimer,
5+
TimerPrecisions as TimerPrecisions,
6+
)
7+
8+
class Timeout:
9+
_duration: Incomplete
10+
_timer: Incomplete
11+
def __init__(self, duration: int, precision: str | TimerPrecisions = ...) -> None: ...
12+
@property
13+
def expired(self) -> bool: ...
14+
@property
15+
def remaining(self) -> int: ...
16+
@property
17+
def elapsed(self) -> int: ...
18+
def kick(self) -> None: ...
19+
def reset(self, duration: int | None = None) -> None: ...

src/timers/timer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
from ataraxis_base_utilities import console
77

8-
from ..precision_timer_ext import CPrecisionTimer # type: ignore[import-not-found]
98
from ..utilities import convert_time
9+
from ..precision_timer_ext import CPrecisionTimer # type: ignore[import-not-found]
1010

1111

1212
class TimerPrecisions(StrEnum):

0 commit comments

Comments
 (0)