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.
- twistypuzzle-0.1.0/.dockerignore +86 -0
- twistypuzzle-0.1.0/.gitattributes +2 -0
- twistypuzzle-0.1.0/.gitignore +99 -0
- twistypuzzle-0.1.0/Cargo.lock +5697 -0
- twistypuzzle-0.1.0/Cargo.toml +121 -0
- twistypuzzle-0.1.0/LICENSE +21 -0
- twistypuzzle-0.1.0/Makefile +180 -0
- twistypuzzle-0.1.0/PKG-INFO +192 -0
- twistypuzzle-0.1.0/README.md +147 -0
- twistypuzzle-0.1.0/build.rs +20 -0
- twistypuzzle-0.1.0/docker/Dockerfile +245 -0
- twistypuzzle-0.1.0/docker/Dockerfile.gui +54 -0
- twistypuzzle-0.1.0/docker/README.md +62 -0
- twistypuzzle-0.1.0/docker-bake.hcl +226 -0
- twistypuzzle-0.1.0/examples/bench.rs +107 -0
- twistypuzzle-0.1.0/examples/render.rs +134 -0
- twistypuzzle-0.1.0/mypy.ini +66 -0
- twistypuzzle-0.1.0/pyproject.toml +94 -0
- twistypuzzle-0.1.0/pyrightconfig.json +79 -0
- twistypuzzle-0.1.0/python/twistypuzzle/__init__.py +231 -0
- twistypuzzle-0.1.0/python/twistypuzzle/_native.pyi +324 -0
- twistypuzzle-0.1.0/python/twistypuzzle/_types.py +96 -0
- twistypuzzle-0.1.0/python/twistypuzzle/gym/__init__.py +79 -0
- twistypuzzle-0.1.0/python/twistypuzzle/gym/_common.py +234 -0
- twistypuzzle-0.1.0/python/twistypuzzle/gym/_env.py +333 -0
- twistypuzzle-0.1.0/python/twistypuzzle/gym/_registration.py +111 -0
- twistypuzzle-0.1.0/python/twistypuzzle/gym/_vector.py +411 -0
- twistypuzzle-0.1.0/python/twistypuzzle/py.typed +0 -0
- twistypuzzle-0.1.0/scripts/bench_threads.py +115 -0
- twistypuzzle-0.1.0/scripts/catalog_sheet.py +232 -0
- twistypuzzle-0.1.0/src/batch.rs +390 -0
- twistypuzzle-0.1.0/src/builder.rs +92 -0
- twistypuzzle-0.1.0/src/catalog.rs +62 -0
- twistypuzzle-0.1.0/src/catalog_data.rs +507 -0
- twistypuzzle-0.1.0/src/color.rs +150 -0
- twistypuzzle-0.1.0/src/color_tables.rs +531 -0
- twistypuzzle-0.1.0/src/error.rs +77 -0
- twistypuzzle-0.1.0/src/exact.rs +801 -0
- twistypuzzle-0.1.0/src/fdlibm.rs +135 -0
- twistypuzzle-0.1.0/src/lib.rs +44 -0
- twistypuzzle-0.1.0/src/make.rs +88 -0
- twistypuzzle-0.1.0/src/math.rs +584 -0
- twistypuzzle-0.1.0/src/movement.rs +280 -0
- twistypuzzle-0.1.0/src/num/factoring.rs +456 -0
- twistypuzzle-0.1.0/src/num/fraction.rs +347 -0
- twistypuzzle-0.1.0/src/num/int.rs +508 -0
- twistypuzzle-0.1.0/src/num/mod.rs +7 -0
- twistypuzzle-0.1.0/src/num/polynomial.rs +569 -0
- twistypuzzle-0.1.0/src/num/ring.rs +458 -0
- twistypuzzle-0.1.0/src/parse.rs +491 -0
- twistypuzzle-0.1.0/src/piece.rs +295 -0
- twistypuzzle-0.1.0/src/polyhedra.rs +138 -0
- twistypuzzle-0.1.0/src/polyhedra_data.rs +47 -0
- twistypuzzle-0.1.0/src/python.rs +2193 -0
- twistypuzzle-0.1.0/src/render/camera.rs +291 -0
- twistypuzzle-0.1.0/src/render/font.rs +185 -0
- twistypuzzle-0.1.0/src/render/font_data.rs +117 -0
- twistypuzzle-0.1.0/src/render/framebuffer.rs +317 -0
- twistypuzzle-0.1.0/src/render/mod.rs +21 -0
- twistypuzzle-0.1.0/src/render/png.rs +72 -0
- twistypuzzle-0.1.0/src/render/raster.rs +491 -0
- twistypuzzle-0.1.0/src/render/scene.rs +509 -0
- twistypuzzle-0.1.0/src/render/trackball.rs +159 -0
- twistypuzzle-0.1.0/src/simulator.rs +792 -0
- twistypuzzle-0.1.0/src/sort.rs +307 -0
- twistypuzzle-0.1.0/src/symbolic.rs +842 -0
- twistypuzzle-0.1.0/tests/exact_core.rs +535 -0
- twistypuzzle-0.1.0/tests/python/conftest.py +28 -0
- twistypuzzle-0.1.0/tests/python/test_api.py +311 -0
- twistypuzzle-0.1.0/tests/python/test_extras.py +126 -0
- twistypuzzle-0.1.0/tests/python/test_gym.py +461 -0
- twistypuzzle-0.1.0/tests/python/test_symbolic.py +135 -0
- twistypuzzle-0.1.0/tests/python/test_twistypuzzle.py +754 -0
- twistypuzzle-0.1.0/tests/render_unit.rs +463 -0
- twistypuzzle-0.1.0/tests/symbolic.rs +439 -0
- 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,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/
|