twistypuzzle 0.1.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.
Files changed (76) hide show
  1. twistypuzzle-0.1.0/.dockerignore +86 -0
  2. twistypuzzle-0.1.0/.gitattributes +2 -0
  3. twistypuzzle-0.1.0/.gitignore +99 -0
  4. twistypuzzle-0.1.0/Cargo.lock +5697 -0
  5. twistypuzzle-0.1.0/Cargo.toml +121 -0
  6. twistypuzzle-0.1.0/LICENSE +21 -0
  7. twistypuzzle-0.1.0/Makefile +180 -0
  8. twistypuzzle-0.1.0/PKG-INFO +192 -0
  9. twistypuzzle-0.1.0/README.md +147 -0
  10. twistypuzzle-0.1.0/build.rs +20 -0
  11. twistypuzzle-0.1.0/docker/Dockerfile +245 -0
  12. twistypuzzle-0.1.0/docker/Dockerfile.gui +54 -0
  13. twistypuzzle-0.1.0/docker/README.md +62 -0
  14. twistypuzzle-0.1.0/docker-bake.hcl +226 -0
  15. twistypuzzle-0.1.0/examples/bench.rs +107 -0
  16. twistypuzzle-0.1.0/examples/render.rs +134 -0
  17. twistypuzzle-0.1.0/mypy.ini +66 -0
  18. twistypuzzle-0.1.0/pyproject.toml +94 -0
  19. twistypuzzle-0.1.0/pyrightconfig.json +79 -0
  20. twistypuzzle-0.1.0/python/twistypuzzle/__init__.py +231 -0
  21. twistypuzzle-0.1.0/python/twistypuzzle/_native.pyi +324 -0
  22. twistypuzzle-0.1.0/python/twistypuzzle/_types.py +96 -0
  23. twistypuzzle-0.1.0/python/twistypuzzle/gym/__init__.py +79 -0
  24. twistypuzzle-0.1.0/python/twistypuzzle/gym/_common.py +234 -0
  25. twistypuzzle-0.1.0/python/twistypuzzle/gym/_env.py +333 -0
  26. twistypuzzle-0.1.0/python/twistypuzzle/gym/_registration.py +111 -0
  27. twistypuzzle-0.1.0/python/twistypuzzle/gym/_vector.py +411 -0
  28. twistypuzzle-0.1.0/python/twistypuzzle/py.typed +0 -0
  29. twistypuzzle-0.1.0/scripts/bench_threads.py +115 -0
  30. twistypuzzle-0.1.0/scripts/catalog_sheet.py +232 -0
  31. twistypuzzle-0.1.0/src/batch.rs +390 -0
  32. twistypuzzle-0.1.0/src/builder.rs +92 -0
  33. twistypuzzle-0.1.0/src/catalog.rs +62 -0
  34. twistypuzzle-0.1.0/src/catalog_data.rs +507 -0
  35. twistypuzzle-0.1.0/src/color.rs +150 -0
  36. twistypuzzle-0.1.0/src/color_tables.rs +531 -0
  37. twistypuzzle-0.1.0/src/error.rs +77 -0
  38. twistypuzzle-0.1.0/src/exact.rs +801 -0
  39. twistypuzzle-0.1.0/src/fdlibm.rs +135 -0
  40. twistypuzzle-0.1.0/src/lib.rs +44 -0
  41. twistypuzzle-0.1.0/src/make.rs +88 -0
  42. twistypuzzle-0.1.0/src/math.rs +584 -0
  43. twistypuzzle-0.1.0/src/movement.rs +280 -0
  44. twistypuzzle-0.1.0/src/num/factoring.rs +456 -0
  45. twistypuzzle-0.1.0/src/num/fraction.rs +347 -0
  46. twistypuzzle-0.1.0/src/num/int.rs +508 -0
  47. twistypuzzle-0.1.0/src/num/mod.rs +7 -0
  48. twistypuzzle-0.1.0/src/num/polynomial.rs +569 -0
  49. twistypuzzle-0.1.0/src/num/ring.rs +458 -0
  50. twistypuzzle-0.1.0/src/parse.rs +491 -0
  51. twistypuzzle-0.1.0/src/piece.rs +295 -0
  52. twistypuzzle-0.1.0/src/polyhedra.rs +138 -0
  53. twistypuzzle-0.1.0/src/polyhedra_data.rs +47 -0
  54. twistypuzzle-0.1.0/src/python.rs +2193 -0
  55. twistypuzzle-0.1.0/src/render/camera.rs +291 -0
  56. twistypuzzle-0.1.0/src/render/font.rs +185 -0
  57. twistypuzzle-0.1.0/src/render/font_data.rs +117 -0
  58. twistypuzzle-0.1.0/src/render/framebuffer.rs +317 -0
  59. twistypuzzle-0.1.0/src/render/mod.rs +21 -0
  60. twistypuzzle-0.1.0/src/render/png.rs +72 -0
  61. twistypuzzle-0.1.0/src/render/raster.rs +491 -0
  62. twistypuzzle-0.1.0/src/render/scene.rs +509 -0
  63. twistypuzzle-0.1.0/src/render/trackball.rs +159 -0
  64. twistypuzzle-0.1.0/src/simulator.rs +792 -0
  65. twistypuzzle-0.1.0/src/sort.rs +307 -0
  66. twistypuzzle-0.1.0/src/symbolic.rs +842 -0
  67. twistypuzzle-0.1.0/tests/exact_core.rs +535 -0
  68. twistypuzzle-0.1.0/tests/python/conftest.py +28 -0
  69. twistypuzzle-0.1.0/tests/python/test_api.py +311 -0
  70. twistypuzzle-0.1.0/tests/python/test_extras.py +126 -0
  71. twistypuzzle-0.1.0/tests/python/test_gym.py +461 -0
  72. twistypuzzle-0.1.0/tests/python/test_symbolic.py +135 -0
  73. twistypuzzle-0.1.0/tests/python/test_twistypuzzle.py +754 -0
  74. twistypuzzle-0.1.0/tests/render_unit.rs +463 -0
  75. twistypuzzle-0.1.0/tests/symbolic.rs +439 -0
  76. twistypuzzle-0.1.0/ty.toml +94 -0
@@ -0,0 +1,86 @@
1
+ # Everything the image does not need to build the extension.
2
+ #
3
+ # Without this file the build context is the whole working tree, which is
4
+ # gigabytes: `target/` alone is ~2G and `.pixi/` ~1G. Docker sends the context
5
+ # to the daemon before the first instruction runs, so an unfiltered context
6
+ # costs that transfer on every single build, across every platform in the
7
+ # matrix, before any compilation starts.
8
+
9
+ # Build output. The container compiles from scratch against its own toolchain;
10
+ # a host `target/` is the wrong architecture and would only be overwritten.
11
+ target/
12
+ **/target/
13
+
14
+ # Conda environments managed by pixi. Host-specific, and the containers use uv.
15
+ .pixi/
16
+
17
+ # Version control. The build reads no git metadata.
18
+ .git/
19
+ .gitignore
20
+ .gitattributes
21
+ .github/
22
+
23
+ # Docker's own files: including them would invalidate the context on every
24
+ # edit to a Dockerfile or to the bake matrix, for every target, none of which
25
+ # reads them from inside the build.
26
+ docker/
27
+ docker-bake.hcl
28
+ .dockerignore
29
+
30
+ # Rendered images and generated documentation. Nothing in any build reads
31
+ # them, and README.md points at them over https rather than from disk.
32
+ docs/
33
+
34
+ # `crates/` is deliberately NOT excluded, though it never reaches the wheel:
35
+ # crates/gui is a workspace member named by the root Cargo.toml, so Cargo
36
+ # refuses to parse the workspace at all without its manifest, and the desktop
37
+ # image builds from it.
38
+
39
+ # Editor and tool state.
40
+ .vscode/
41
+ .idea/
42
+ .claude/
43
+ .codegraph/
44
+ *.swp
45
+ *.swo
46
+ *~
47
+
48
+ # Caches, which are host-specific and would poison a fresh build.
49
+ .pytest_cache/
50
+ .ruff_cache/
51
+ .mypy_cache/
52
+ .pyrefly/
53
+ __pycache__/
54
+ **/__pycache__/
55
+ *.py[cod]
56
+
57
+ # Python build artifacts. A stale host-built extension shadowing the one the
58
+ # container builds is the exact failure this whole harness exists to catch.
59
+ dist/
60
+ build/
61
+ *.egg-info/
62
+ .eggs/
63
+ *.whl
64
+ *.so
65
+ *.dylib
66
+ *.pyd
67
+ *.dll
68
+
69
+ # Virtual environments.
70
+ .venv/
71
+ venv/
72
+ ENV/
73
+ env/
74
+
75
+ # Operating system noise.
76
+ .DS_Store
77
+ ._*
78
+ .Spotlight-V100
79
+ .Trashes
80
+ Thumbs.db
81
+ [Dd]esktop.ini
82
+
83
+ # Secrets must never reach an image layer.
84
+ .env
85
+ .env.*
86
+ !.env.example
@@ -0,0 +1,2 @@
1
+ # SCM syntax highlighting & preventing 3-way merges
2
+ pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff
@@ -0,0 +1,99 @@
1
+ # Rust / Cargo
2
+ /target/
3
+ **/*.rs.bk
4
+ **/*.pdb
5
+ *.profraw
6
+ *.profdata
7
+
8
+ # Web / Node / Bundler
9
+ node_modules/
10
+ /build/
11
+ /dist/
12
+ *.tsbuildinfo
13
+ *.js.map
14
+
15
+ # Package manager logs
16
+ npm-debug.log*
17
+ yarn-debug.log*
18
+ yarn-error.log*
19
+ pnpm-debug.log*
20
+ lerna-debug.log*
21
+
22
+ # Pixi environments
23
+ .pixi/*
24
+ !.pixi/config.toml
25
+
26
+ # Python bytecode and caches
27
+ __pycache__/
28
+ *.py[cod]
29
+ *$py.class
30
+
31
+ # Python packaging & distribution
32
+ *.egg-info/
33
+ .eggs/
34
+ *.egg
35
+ *.whl
36
+
37
+ # Python native extensions (PyO3 / Maturin outputs)
38
+ *.so
39
+ *.dylib
40
+ *.pyd
41
+ *.dll
42
+
43
+ # Python virtual environments
44
+ .venv/
45
+ venv/
46
+ ENV/
47
+ env/
48
+
49
+ # Python testing, linting, and type checking
50
+ .pytest_cache/
51
+ .ruff_cache/
52
+ .mypy_cache/
53
+ .pyrefly/
54
+ .pyre/
55
+ .pytype/
56
+ .coverage
57
+ .coverage.*
58
+ htmlcov/
59
+ .tox/
60
+ .nox/
61
+
62
+ # Environment and secrets
63
+ .env
64
+ .env.*
65
+ !.env.example
66
+
67
+ # Operating system files
68
+ .DS_Store
69
+ .AppleDouble
70
+ .LSOverride
71
+ ._*
72
+ .Spotlight-V100
73
+ .Trashes
74
+ Thumbs.db
75
+ Thumbs.db:encryptable
76
+ ehthumbs.db
77
+ ehthumbs_vista.db
78
+ [Dd]esktop.ini
79
+
80
+ # IDE and editor files
81
+ .idea/
82
+ *.iml
83
+ *.ipr
84
+ *.iws
85
+ .vscode/*
86
+ !.vscode/settings.json
87
+ *.swp
88
+ *.swo
89
+ *~
90
+
91
+ # Built extension modules, which land next to the package when installed
92
+ # editable.
93
+ /python/twistypuzzle/*.so
94
+ /python/twistypuzzle/*.pyd
95
+ /python/twistypuzzle/*.dylib
96
+
97
+ # Output collected from the container builds (docker buildx bake wheels,
98
+ # gui-screenshot).
99
+ /docker/out/