randomness-kit 0.1.2__tar.gz → 0.1.4__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.
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/Cargo.lock +1 -1
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/Cargo.toml +1 -1
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/PKG-INFO +4 -2
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/README.md +3 -1
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/builder_cb.py +4 -2
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/dev.py +31 -14
- randomness_kit-0.1.4/gen-init.py +61 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/pyproject.toml +3 -1
- randomness_kit-0.1.4/randomness_kit/__init__.py +4 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/__init__.pyi +2 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/release.py +16 -2
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/lib.rs +2 -0
- randomness_kit-0.1.2/randomness_kit/__init__.py +0 -6
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/.github/workflows/CI.yml +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/.gitignore +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/LICENSE +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/gen-ci.py +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/min_entropy_algo.pyi +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/shannon_entropy_algo.pyi +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/py.typed +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/min_entropy/mod.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/pytypes.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/func.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/lut.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/mod.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/optimize.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/util.rs +0 -0
- {randomness_kit-0.1.2 → randomness_kit-0.1.4}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: randomness-kit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -21,10 +21,11 @@ todo
|
|
|
21
21
|
|
|
22
22
|
## Develop
|
|
23
23
|
|
|
24
|
-
Install maturin:
|
|
24
|
+
Install maturin and ruff:
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
27
|
uv tool install maturin
|
|
28
|
+
uv tool install ruff
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
Build debug package, and install in local venv:
|
|
@@ -45,6 +46,7 @@ Commit a release:
|
|
|
45
46
|
|
|
46
47
|
```bash
|
|
47
48
|
# Bump version at Cargo.toml
|
|
49
|
+
uv run dev.py
|
|
48
50
|
uv run release.py
|
|
49
51
|
```
|
|
50
52
|
|
|
@@ -8,10 +8,11 @@ todo
|
|
|
8
8
|
|
|
9
9
|
## Develop
|
|
10
10
|
|
|
11
|
-
Install maturin:
|
|
11
|
+
Install maturin and ruff:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
uv tool install maturin
|
|
15
|
+
uv tool install ruff
|
|
15
16
|
```
|
|
16
17
|
|
|
17
18
|
Build debug package, and install in local venv:
|
|
@@ -32,6 +33,7 @@ Commit a release:
|
|
|
32
33
|
|
|
33
34
|
```bash
|
|
34
35
|
# Bump version at Cargo.toml
|
|
36
|
+
uv run dev.py
|
|
35
37
|
uv run release.py
|
|
36
38
|
```
|
|
37
39
|
|
|
@@ -3,6 +3,8 @@ import maturin
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Any, Mapping
|
|
5
5
|
|
|
6
|
+
from dev import generate_init_file, generate_stub
|
|
7
|
+
|
|
6
8
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
7
9
|
|
|
8
10
|
|
|
@@ -29,8 +31,8 @@ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
|
|
|
29
31
|
|
|
30
32
|
def build_sdist(sdist_directory, config_settings=None):
|
|
31
33
|
# generate stubs here
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
generate_stub(maturin._get_env())
|
|
35
|
+
generate_init_file(maturin._get_env())
|
|
34
36
|
return maturin.build_sdist(
|
|
35
37
|
sdist_directory, add_settings(config_settings, release=True)
|
|
36
38
|
)
|
|
@@ -7,10 +7,37 @@ import sys
|
|
|
7
7
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def generate_stub():
|
|
10
|
+
def generate_stub(env: None | dict = None):
|
|
11
11
|
command = ["maturin", "generate-stubs", "-o", SCRIPT_DIR / "randomness_kit"]
|
|
12
12
|
try:
|
|
13
|
-
subprocess.run(command, cwd=SCRIPT_DIR, check=True)
|
|
13
|
+
subprocess.run(command, cwd=SCRIPT_DIR, check=True, env=env)
|
|
14
|
+
except KeyboardInterrupt:
|
|
15
|
+
sys.exit(130)
|
|
16
|
+
except FileNotFoundError:
|
|
17
|
+
print(
|
|
18
|
+
"Error: maturin is not installed.",
|
|
19
|
+
file=sys.stderr,
|
|
20
|
+
)
|
|
21
|
+
sys.exit(1)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def generate_init_file(env: None | dict = None):
|
|
25
|
+
command = ["uv", "run", "gen-init.py"]
|
|
26
|
+
try:
|
|
27
|
+
subprocess.run(command, cwd=SCRIPT_DIR, check=True, env=env)
|
|
28
|
+
except KeyboardInterrupt:
|
|
29
|
+
sys.exit(130)
|
|
30
|
+
except FileNotFoundError:
|
|
31
|
+
print(
|
|
32
|
+
"Error: maturin is not installed.",
|
|
33
|
+
file=sys.stderr,
|
|
34
|
+
)
|
|
35
|
+
sys.exit(1)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def develop(cmd):
|
|
39
|
+
try:
|
|
40
|
+
subprocess.run(cmd, cwd=SCRIPT_DIR, check=True)
|
|
14
41
|
except KeyboardInterrupt:
|
|
15
42
|
sys.exit(130)
|
|
16
43
|
except FileNotFoundError:
|
|
@@ -42,19 +69,9 @@ def main():
|
|
|
42
69
|
cmd.append("--release")
|
|
43
70
|
cmd.extend(extra_args)
|
|
44
71
|
print("Generating Stubs...\n")
|
|
72
|
+
develop(cmd)
|
|
45
73
|
generate_stub()
|
|
46
|
-
|
|
47
|
-
try:
|
|
48
|
-
result = subprocess.run(cmd, cwd=SCRIPT_DIR)
|
|
49
|
-
sys.exit(result.returncode)
|
|
50
|
-
except KeyboardInterrupt:
|
|
51
|
-
sys.exit(130)
|
|
52
|
-
except FileNotFoundError:
|
|
53
|
-
print(
|
|
54
|
-
"Error: maturin is not installed.",
|
|
55
|
-
file=sys.stderr,
|
|
56
|
-
)
|
|
57
|
-
sys.exit(1)
|
|
74
|
+
generate_init_file()
|
|
58
75
|
|
|
59
76
|
|
|
60
77
|
if __name__ == "__main__":
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
|
|
3
|
+
import randomness_kit
|
|
4
|
+
import tomllib
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def format_file(files: list[Path]):
|
|
11
|
+
command = ["uv", "run", "ruff", "format", "--", *files]
|
|
12
|
+
try:
|
|
13
|
+
subprocess.run(command, cwd=SCRIPT_DIR, check=True)
|
|
14
|
+
except FileNotFoundError as e:
|
|
15
|
+
raise FileNotFoundError(f"ruff is not installed: {e}")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def get_package_version() -> str:
|
|
19
|
+
cargo_file = SCRIPT_DIR / "Cargo.toml"
|
|
20
|
+
if not cargo_file.is_file():
|
|
21
|
+
raise FileNotFoundError("Cargo.toml not found.")
|
|
22
|
+
try:
|
|
23
|
+
data = tomllib.loads(cargo_file.read_bytes().decode("utf-8"))
|
|
24
|
+
version = data.get("package", {}).get("version")
|
|
25
|
+
if version:
|
|
26
|
+
return version
|
|
27
|
+
except Exception as e:
|
|
28
|
+
raise ValueError(f"Error reading Cargo.toml: {e}")
|
|
29
|
+
raise ValueError("Could not find version in Cargo.toml.")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def generate_init_file():
|
|
33
|
+
mod_ver = randomness_kit.version()
|
|
34
|
+
cargo_ver = get_package_version()
|
|
35
|
+
assert mod_ver == cargo_ver, "Python module is out of date."
|
|
36
|
+
assert randomness_kit.ping(666) == 666 * 2, "Python module is out of date."
|
|
37
|
+
mod_all = randomness_kit._randomness_kit.__all__
|
|
38
|
+
mod_all = mod_all if type(mod_all) is list else []
|
|
39
|
+
mod_all_str = "*" if len(mod_all) == 0 else ", ".join(mod_all)
|
|
40
|
+
mod_doc = str(randomness_kit.__doc__)
|
|
41
|
+
save_path = SCRIPT_DIR / "randomness_kit"
|
|
42
|
+
save_path.mkdir(parents=True, exist_ok=True)
|
|
43
|
+
(save_path / "py.typed").touch(exist_ok=True)
|
|
44
|
+
init_file = save_path / "__init__.py"
|
|
45
|
+
template = f"""from ._randomness_kit import {mod_all_str} # pyright: ignore[reportMissingImports] # noqa: F403
|
|
46
|
+
__all__ = {repr(mod_all)} # pyright: ignore[reportUnsupportedDunderAll] # noqa: F405
|
|
47
|
+
__doc__ = {repr(mod_doc)}
|
|
48
|
+
"""
|
|
49
|
+
with open(init_file, "w") as f:
|
|
50
|
+
f.write(template)
|
|
51
|
+
format_file([init_file])
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def main():
|
|
55
|
+
print("Generating __init__.py ...")
|
|
56
|
+
generate_init_file()
|
|
57
|
+
print("Successfully generated.")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == "__main__":
|
|
61
|
+
main()
|
|
@@ -14,7 +14,9 @@ classifiers = [
|
|
|
14
14
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
15
15
|
]
|
|
16
16
|
dynamic = ["version"]
|
|
17
|
-
dependencies = [
|
|
17
|
+
dependencies = [
|
|
18
|
+
"maturin>=1.14.1",
|
|
19
|
+
]
|
|
18
20
|
authors = [{ "name" = "sbchild", "email" = "sbchild0@gmail.com" }]
|
|
19
21
|
license = { file = "LICENSE" }
|
|
20
22
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
from ._randomness_kit import shannon_entropy_algo, min_entropy_algo, ping, version # pyright: ignore[reportMissingImports] # noqa: F403
|
|
2
|
+
|
|
3
|
+
__all__ = ["shannon_entropy_algo", "min_entropy_algo", "ping", "version"] # pyright: ignore[reportUnsupportedDunderAll] # noqa: F405
|
|
4
|
+
__doc__ = "`randomness_kit` root module"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
+
import argparse
|
|
2
3
|
import subprocess
|
|
3
4
|
import sys
|
|
4
5
|
import tomllib
|
|
@@ -38,6 +39,19 @@ def get_package_version() -> str:
|
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
def main():
|
|
42
|
+
parser = argparse.ArgumentParser(description="Release tool")
|
|
43
|
+
parser.add_argument(
|
|
44
|
+
"-m",
|
|
45
|
+
"--message",
|
|
46
|
+
type=str,
|
|
47
|
+
metavar="MSG",
|
|
48
|
+
required=False,
|
|
49
|
+
default="",
|
|
50
|
+
help="add some description in the commit message",
|
|
51
|
+
)
|
|
52
|
+
args = parser.parse_args()
|
|
53
|
+
msg = str(args.message)
|
|
54
|
+
msg = "" if len(msg) == 0 else f": {msg}"
|
|
41
55
|
version = get_package_version()
|
|
42
56
|
tag = f"v{version}"
|
|
43
57
|
print(f"Current Version: {version}")
|
|
@@ -50,9 +64,9 @@ def main():
|
|
|
50
64
|
print("Adding files...")
|
|
51
65
|
run_git("add", ".")
|
|
52
66
|
print("Commiting...")
|
|
53
|
-
run_git("commit", "--allow-empty", "-am", f"Release {tag}")
|
|
67
|
+
run_git("commit", "--allow-empty", "-am", f"Release {tag}{msg}")
|
|
54
68
|
print("Tagging...")
|
|
55
|
-
run_git("tag", "-a", tag, "-m", f"Version {version}")
|
|
69
|
+
run_git("tag", "-a", tag, "-m", f"Version {version}{msg}")
|
|
56
70
|
print("Pushing branch...")
|
|
57
71
|
run_git("push", "origin", current_branch)
|
|
58
72
|
print("Pushing tag...")
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
from ._randomness_kit import __all__ as all_modules
|
|
2
|
-
from ._randomness_kit import __doc__ as doc
|
|
3
|
-
from ._randomness_kit import * # pyright: ignore[reportMissingImports] # noqa: F403
|
|
4
|
-
|
|
5
|
-
__all__ = all_modules # pyright: ignore[reportUnsupportedDunderAll]
|
|
6
|
-
__doc__ = doc
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/min_entropy_algo.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|