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.
Files changed (28) hide show
  1. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/Cargo.lock +1 -1
  2. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/Cargo.toml +1 -1
  3. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/PKG-INFO +4 -2
  4. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/README.md +3 -1
  5. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/builder_cb.py +4 -2
  6. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/dev.py +31 -14
  7. randomness_kit-0.1.4/gen-init.py +61 -0
  8. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/pyproject.toml +3 -1
  9. randomness_kit-0.1.4/randomness_kit/__init__.py +4 -0
  10. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/__init__.pyi +2 -0
  11. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/release.py +16 -2
  12. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/lib.rs +2 -0
  13. randomness_kit-0.1.2/randomness_kit/__init__.py +0 -6
  14. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/.github/workflows/CI.yml +0 -0
  15. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/.gitignore +0 -0
  16. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/LICENSE +0 -0
  17. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/gen-ci.py +0 -0
  18. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/min_entropy_algo.pyi +0 -0
  19. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/_randomness_kit/shannon_entropy_algo.pyi +0 -0
  20. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/randomness_kit/py.typed +0 -0
  21. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/min_entropy/mod.rs +0 -0
  22. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/pytypes.rs +0 -0
  23. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/func.rs +0 -0
  24. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/lut.rs +0 -0
  25. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/mod.rs +0 -0
  26. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/shannon_entropy/optimize.rs +0 -0
  27. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/src/util.rs +0 -0
  28. {randomness_kit-0.1.2 → randomness_kit-0.1.4}/uv.lock +0 -0
@@ -537,7 +537,7 @@ checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
537
537
 
538
538
  [[package]]
539
539
  name = "randomness-kit"
540
- version = "0.1.2"
540
+ version = "0.1.4"
541
541
  dependencies = [
542
542
  "cjk",
543
543
  "libsodium-rs",
@@ -2,7 +2,7 @@
2
2
  name = "randomness-kit"
3
3
  description = "some tools about randomness calculation"
4
4
  repository = "https://github.com/sb-child/randomness-kit"
5
- version = "0.1.2"
5
+ version = "0.1.4"
6
6
  edition = "2024"
7
7
  license = "MIT"
8
8
  authors = ["sbchild <sbchild0@gmail.com>"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: randomness-kit
3
- Version: 0.1.2
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
- command = ["maturin", "generate-stubs", "-o", SCRIPT_DIR / "randomness_kit"]
33
- subprocess.run(command, env=maturin._get_env(), cwd=SCRIPT_DIR, check=True)
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
- print(f"Execute: {' '.join(cmd)}\n")
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 = ["maturin>=1.14.1"]
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"
@@ -7,6 +7,8 @@ from _typeshed import Incomplete
7
7
  def ping(x: int) -> int:
8
8
  """
9
9
  test function
10
+
11
+ return x * 2
10
12
  """
11
13
 
12
14
  def version() -> str:
@@ -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...")
@@ -16,6 +16,8 @@ mod randomness_kit {
16
16
  use super::min_entropy_algo;
17
17
 
18
18
  /// test function
19
+ ///
20
+ /// return x * 2
19
21
  #[pyfunction]
20
22
  fn ping(x: usize) -> usize {
21
23
  x * 2
@@ -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