sonolus.py 0.5.0__tar.gz → 0.5.1__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.
Potentially problematic release.
This version of sonolus.py might be problematic. Click here for more details.
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/PKG-INFO +1 -1
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/pyproject.toml +1 -1
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/visitor.py +0 -2
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/compile.py +9 -4
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/archetype.py +134 -17
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/context.py +10 -2
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/introspection.py +3 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/uv.lock +1 -1
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/.gitattributes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/.github/workflows/publish.yaml +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/.gitignore +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/.python-version +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/.run/Python tests in tests.run.xml +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/LICENSE +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/README.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/doc_stubs/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/doc_stubs/builtins.pyi +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/doc_stubs/math.pyi +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/doc_stubs/num.pyi +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/doc_stubs/random.pyi +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/CNAME +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/builtins.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/cli.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/constructs.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/index.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/project.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/resources.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/concepts/types.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/bucket.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/coming-soon.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/effect.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/index.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/particle.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/play.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/project-structure.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/screen.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/setup.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/skin.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/ui.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/guides/usage.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/index.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/overview.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/builtins.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/index.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/math.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/random.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.archetype.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.array.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.array_like.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.bucket.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.containers.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.debug.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.easing.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.effect.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.engine.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.globals.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.instruction.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.interval.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.iterator.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.level.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.maybe.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.metadata.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.num.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.options.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.particle.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.printing.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.project.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.quad.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.record.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.runtime.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.sprite.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.stream.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.text.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.timing.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.transform.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.ui.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.values.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/docs/reference/sonolus.script.vec.md +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/mkdocs.yml +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/scripts/generate.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/scripts/runtimes/Engine/Tutorial/Blocks.json +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/scripts/runtimes/Functions.json +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/scripts/runtimes/Level/Play/Blocks.json +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/scripts/runtimes/Level/Preview/Blocks.json +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/scripts/runtimes/Level/Watch/Blocks.json +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/blocks.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/excepthook.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/finalize.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/interpret.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/ir.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/mode.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/node.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/ops.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/allocate.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/constant_evaluation.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/copy_coalesce.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/dead_code.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/dominance.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/flow.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/inlining.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/liveness.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/optimize.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/passes.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/simplify.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/optimize/ssa.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/place.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/backend/utils.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/cli.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/collection.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/engine.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/level.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/node.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/build/project.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/py.typed +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/array.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/array_like.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/bucket.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/containers.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/debug.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/easing.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/effect.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/engine.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/globals.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/instruction.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/builtin_impls.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/callbacks.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/constant.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/descriptor.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/dict_impl.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/error.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/generic.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/impl.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/math_impls.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/native.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/random.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/range.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/simulation_context.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/transient.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/tuple_impl.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/internal/value.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/interval.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/iterator.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/level.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/maybe.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/metadata.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/num.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/options.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/particle.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/pointer.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/printing.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/project.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/quad.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/record.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/runtime.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/sprite.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/stream.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/text.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/timing.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/transform.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/ui.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/values.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/sonolus/script/vec.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/level.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/buckets.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/connector.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/effect.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/layer.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/layout.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/note.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/options.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/particle.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/skin.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/stage.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/streams.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/lib/ui.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/connector.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/event.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/input.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/mode.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/note.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/play/stage.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/connector.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/event.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/layout.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/mode.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/note.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/preview/stage.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/project.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/framework.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/instructions.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/intro.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/mode.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/navigate.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/painting.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/phases.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/preprocess.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/tutorial/update.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/connector.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/event.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/mode.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/note.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/stage.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/test_projects/pydori/watch/update_spawn.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/conftest.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_touch_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_touch_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_touch_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_initialize_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_initialize_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_initialize_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_initialize_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_initialize_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_should_spawn_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_spawn_order_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_terminate_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_touch_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_touch_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_touch_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_sequential_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_note_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_should_spawn_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_spawn_order_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_touch_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_touch_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_touch_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_sequential_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_stage_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_initialize_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_initialize_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_initialize_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_initialize_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_initialize_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_terminate_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_touch_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_touch_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_touch_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_note_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_stage_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_navigate_fast_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_navigate_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_navigate_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_navigate_standard_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_navigate_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_navigate_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_preprocess_fast_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_preprocess_standard_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_update_fast_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_update_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_update_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_update_standard_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_update_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_tutorial_global_update_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_global_update_spawn_fast_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_global_update_spawn_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_global_update_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_global_update_spawn_standard_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_global_update_spawn_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_global_update_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_terminate_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/regressions/test_project.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/__init__.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/conftest.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_array.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_array_map.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_array_set.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_assert.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_dict.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_flow.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_functions.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_generator.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_genexpr.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_helpers.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_interval.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_match.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_maybe.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_num.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_operator.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_quad.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_random.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_range.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_record.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_super.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_transform.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_tuple.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_values.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_var_array.py +0 -0
- {sonolus_py-0.5.0 → sonolus_py-0.5.1}/tests/script/test_vec.py +0 -0
|
@@ -1126,8 +1126,6 @@ class Visitor(ast.NodeVisitor):
|
|
|
1126
1126
|
if first_param_name is not None:
|
|
1127
1127
|
first_param_value = self.get_name(first_param_name)
|
|
1128
1128
|
args = (validate_value(class_value), validate_value(first_param_value))
|
|
1129
|
-
else:
|
|
1130
|
-
args = (validate_value(class_value),)
|
|
1131
1129
|
return self.handle_call(node, fn, *args, **kwargs)
|
|
1132
1130
|
|
|
1133
1131
|
def visit_FormattedValue(self, node):
|
|
@@ -74,10 +74,12 @@ def compile_mode(
|
|
|
74
74
|
return cb_info.name, node_index
|
|
75
75
|
|
|
76
76
|
all_futures = {}
|
|
77
|
-
|
|
77
|
+
base_archetype_entries = {}
|
|
78
78
|
|
|
79
79
|
if archetypes is not None:
|
|
80
|
-
for
|
|
80
|
+
base_archetypes = {getattr(a, "_derived_base_", a) for a in archetypes}
|
|
81
|
+
|
|
82
|
+
for archetype in base_archetypes:
|
|
81
83
|
archetype._init_fields()
|
|
82
84
|
|
|
83
85
|
archetype_data = {
|
|
@@ -109,7 +111,7 @@ def compile_mode(
|
|
|
109
111
|
cb_name, result_data = process_callback(cb_info, cb, archetype)
|
|
110
112
|
archetype_data[cb_name] = result_data
|
|
111
113
|
|
|
112
|
-
|
|
114
|
+
base_archetype_entries[archetype] = archetype_data
|
|
113
115
|
|
|
114
116
|
if global_callbacks is not None and thread_pool is not None:
|
|
115
117
|
for cb_info, cb in global_callbacks:
|
|
@@ -129,7 +131,10 @@ def compile_mode(
|
|
|
129
131
|
results[cb_name] = node_index
|
|
130
132
|
|
|
131
133
|
if archetypes is not None:
|
|
132
|
-
results["archetypes"] =
|
|
134
|
+
results["archetypes"] = [
|
|
135
|
+
{**base_archetype_entries[getattr(a, "_derived_base_", a)], "name": a.name, "hasInput": a.is_scored}
|
|
136
|
+
for a in archetypes
|
|
137
|
+
]
|
|
133
138
|
|
|
134
139
|
results["nodes"] = nodes.get()
|
|
135
140
|
return results
|
|
@@ -183,6 +183,68 @@ class _ArchetypeField(SonolusDescriptor):
|
|
|
183
183
|
target._copy_from_(value)
|
|
184
184
|
|
|
185
185
|
|
|
186
|
+
class _NameDescriptor(SonolusDescriptor):
|
|
187
|
+
def __init__(self, name: str):
|
|
188
|
+
self.name = name
|
|
189
|
+
|
|
190
|
+
def __get__(self, instance, owner):
|
|
191
|
+
if instance is None:
|
|
192
|
+
return self.name
|
|
193
|
+
elif ctx():
|
|
194
|
+
raise RuntimeError("Cannot access archetype name in from self in a callback, use ArchetypeClass.name")
|
|
195
|
+
else:
|
|
196
|
+
return self.name
|
|
197
|
+
|
|
198
|
+
def __set__(self, instance, value):
|
|
199
|
+
raise AttributeError("Archetype name is read-only and cannot be set")
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class _IsScoredDescriptor(SonolusDescriptor):
|
|
203
|
+
def __init__(self, value: bool):
|
|
204
|
+
self.value = value
|
|
205
|
+
|
|
206
|
+
def __get__(self, instance, owner):
|
|
207
|
+
if instance is None:
|
|
208
|
+
return self.value
|
|
209
|
+
elif ctx():
|
|
210
|
+
raise RuntimeError("Cannot access is_scored from self in a callback, use ArchetypeClass.is_scored")
|
|
211
|
+
else:
|
|
212
|
+
return self.value
|
|
213
|
+
|
|
214
|
+
def __set__(self, instance, value):
|
|
215
|
+
raise AttributeError("is_scored is read-only and cannot be set")
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
class _IdDescriptor(SonolusDescriptor):
|
|
219
|
+
def __get__(self, instance, owner):
|
|
220
|
+
if not ctx():
|
|
221
|
+
raise RuntimeError("Archetype id is only available during compilation")
|
|
222
|
+
if instance is None:
|
|
223
|
+
result = ctx().global_state.archetypes.get(owner)
|
|
224
|
+
if result is None:
|
|
225
|
+
raise RuntimeError("Archetype is not registered")
|
|
226
|
+
return result
|
|
227
|
+
else:
|
|
228
|
+
return instance._info.archetype_id
|
|
229
|
+
|
|
230
|
+
def __set__(self, instance, value):
|
|
231
|
+
raise AttributeError("Archetype id is read-only and cannot be set")
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
class _KeyDescriptor(SonolusDescriptor):
|
|
235
|
+
def __init__(self, value: int | float):
|
|
236
|
+
self.value = value
|
|
237
|
+
|
|
238
|
+
def __get__(self, instance, owner):
|
|
239
|
+
if instance is not None and ctx():
|
|
240
|
+
return ctx().global_state.keys[instance.id]
|
|
241
|
+
else:
|
|
242
|
+
return self.value
|
|
243
|
+
|
|
244
|
+
def __set__(self, instance, value):
|
|
245
|
+
raise AttributeError("Archetype key is read-only and cannot be set")
|
|
246
|
+
|
|
247
|
+
|
|
186
248
|
def imported(*, name: str | None = None) -> Any:
|
|
187
249
|
"""Declare a field as imported.
|
|
188
250
|
|
|
@@ -387,6 +449,28 @@ class _BaseArchetype:
|
|
|
387
449
|
|
|
388
450
|
_data_: _ArchetypeData
|
|
389
451
|
|
|
452
|
+
id: int = 0
|
|
453
|
+
"""The id of the archetype or entity.
|
|
454
|
+
|
|
455
|
+
If accessed on an entity, always returns the runtime archetype id of the entity, even if it doesn't match the type
|
|
456
|
+
that was used to access it.
|
|
457
|
+
|
|
458
|
+
E.g. if an entity of archetype `A` is accessed via [`EntityRef[B]`][sonolus.script.archetype.EntityRef], the id will
|
|
459
|
+
still be the id of `A`.
|
|
460
|
+
"""
|
|
461
|
+
|
|
462
|
+
key: int = -1
|
|
463
|
+
"""An optional key for the archetype.
|
|
464
|
+
|
|
465
|
+
May be useful to identify an archetype in an inheritance hierarchy without needing to check id.
|
|
466
|
+
|
|
467
|
+
If accessed on an entity, always returns the runtime key of the entity, even if it doesn't match the type
|
|
468
|
+
that was used to access it.
|
|
469
|
+
|
|
470
|
+
E.g. if an entity of archetype `A` is accessed via [`EntityRef[B]`][sonolus.script.archetype.EntityRef], the key
|
|
471
|
+
will still be the key of `A`.
|
|
472
|
+
"""
|
|
473
|
+
|
|
390
474
|
name: ClassVar[str | None] = None
|
|
391
475
|
"""The name of the archetype.
|
|
392
476
|
|
|
@@ -433,17 +517,7 @@ class _BaseArchetype:
|
|
|
433
517
|
def is_at(cls, index: int) -> bool:
|
|
434
518
|
if not ctx():
|
|
435
519
|
raise RuntimeError("is_at is only available during compilation")
|
|
436
|
-
return entity_info_at(index).archetype_id == cls.id
|
|
437
|
-
|
|
438
|
-
@classmethod
|
|
439
|
-
@meta_fn
|
|
440
|
-
def id(cls) -> int:
|
|
441
|
-
if not ctx():
|
|
442
|
-
raise RuntimeError("Archetype id is only available during compilation")
|
|
443
|
-
result = ctx().global_state.archetypes.get(cls)
|
|
444
|
-
if result is None:
|
|
445
|
-
raise RuntimeError("Archetype is not registered")
|
|
446
|
-
return result
|
|
520
|
+
return entity_info_at(index).archetype_id == cls.id
|
|
447
521
|
|
|
448
522
|
@classmethod
|
|
449
523
|
@meta_fn
|
|
@@ -465,7 +539,7 @@ class _BaseArchetype:
|
|
|
465
539
|
cls._init_fields()
|
|
466
540
|
if not ctx():
|
|
467
541
|
raise RuntimeError("Spawn is only allowed within a callback")
|
|
468
|
-
archetype_id = cls.id
|
|
542
|
+
archetype_id = cls.id
|
|
469
543
|
bound = cls._spawn_signature_.bind_partial(**kwargs)
|
|
470
544
|
bound.apply_defaults()
|
|
471
545
|
data = []
|
|
@@ -497,7 +571,7 @@ class _BaseArchetype:
|
|
|
497
571
|
return entries
|
|
498
572
|
|
|
499
573
|
def __init_subclass__(cls, **kwargs):
|
|
500
|
-
if cls.__module__ == _BaseArchetype.__module__:
|
|
574
|
+
if cls.__module__ == _BaseArchetype.__module__ and not getattr(cls, "_is_derived_", False):
|
|
501
575
|
if cls._supported_callbacks_ is None:
|
|
502
576
|
raise TypeError("Cannot directly subclass Archetype, use the Archetype subclass for your mode")
|
|
503
577
|
cls._default_callbacks_ = {getattr(cls, cb_info.py_name) for cb_info in cls._supported_callbacks_.values()}
|
|
@@ -511,6 +585,11 @@ class _BaseArchetype:
|
|
|
511
585
|
continue
|
|
512
586
|
cls._callbacks_.append(cb)
|
|
513
587
|
cls._field_init_done = False
|
|
588
|
+
cls.id = _IdDescriptor()
|
|
589
|
+
cls._key_ = cls.key
|
|
590
|
+
cls.key = _KeyDescriptor(cls.key)
|
|
591
|
+
cls.name = _NameDescriptor(cls.name)
|
|
592
|
+
cls.is_scored = _IsScoredDescriptor(cls.is_scored)
|
|
514
593
|
|
|
515
594
|
@classmethod
|
|
516
595
|
def _init_fields(cls):
|
|
@@ -521,7 +600,19 @@ class _BaseArchetype:
|
|
|
521
600
|
if hasattr(mro_entry, "_field_init_done"):
|
|
522
601
|
mro_entry._init_fields()
|
|
523
602
|
field_specifiers = get_field_specifiers(
|
|
524
|
-
cls,
|
|
603
|
+
cls,
|
|
604
|
+
skip={
|
|
605
|
+
"id",
|
|
606
|
+
"key",
|
|
607
|
+
"name",
|
|
608
|
+
"is_scored",
|
|
609
|
+
"_key_",
|
|
610
|
+
"_derived_base_",
|
|
611
|
+
"_is_derived_",
|
|
612
|
+
"_default_callbacks_",
|
|
613
|
+
"_callbacks_",
|
|
614
|
+
"_field_init_done",
|
|
615
|
+
},
|
|
525
616
|
).items()
|
|
526
617
|
if not hasattr(cls, "_imported_fields_"):
|
|
527
618
|
cls._imported_fields_ = {}
|
|
@@ -656,6 +747,32 @@ class _BaseArchetype:
|
|
|
656
747
|
def _post_init_fields(cls):
|
|
657
748
|
pass
|
|
658
749
|
|
|
750
|
+
@classmethod
|
|
751
|
+
def derive[T](cls: type[T], name: str, is_scored: bool, key: int | float | None = None) -> type[T]:
|
|
752
|
+
"""Derive a new archetype class from this archetype.
|
|
753
|
+
|
|
754
|
+
This is used to create a new archetype with the same fields and callbacks, but with a different name and
|
|
755
|
+
whether it is scored.
|
|
756
|
+
|
|
757
|
+
Args:
|
|
758
|
+
name: The name of the new archetype.
|
|
759
|
+
is_scored: Whether the new archetype is scored.
|
|
760
|
+
key: A key that can be accessed via the `key` property of the new archetype.
|
|
761
|
+
|
|
762
|
+
Returns:
|
|
763
|
+
A new archetype class with the same fields and callbacks as this archetype, but with the given name and
|
|
764
|
+
whether it is scored.
|
|
765
|
+
"""
|
|
766
|
+
if getattr(cls, "_is_derived_", False):
|
|
767
|
+
raise RuntimeError("Cannot derive from a derived archetype")
|
|
768
|
+
cls_dict = {"name": name, "is_scored": is_scored, "_is_derived_": True, "_derived_base_": cls}
|
|
769
|
+
if key is not None:
|
|
770
|
+
if not isinstance(key, (int, float)):
|
|
771
|
+
raise TypeError(f"Key must be an int or float, got {type(key)}")
|
|
772
|
+
cls_dict["key"] = key
|
|
773
|
+
new_cls = type(name, (cls,), cls_dict)
|
|
774
|
+
return new_cls
|
|
775
|
+
|
|
659
776
|
|
|
660
777
|
class PlayArchetype(_BaseArchetype):
|
|
661
778
|
"""Base class for play mode archetypes.
|
|
@@ -807,7 +924,7 @@ class PlayArchetype(_BaseArchetype):
|
|
|
807
924
|
raise RuntimeError("Calling life is only allowed within a callback")
|
|
808
925
|
match self._data_:
|
|
809
926
|
case _ArchetypeSelfData() | _ArchetypeReferenceData():
|
|
810
|
-
return _deref(ctx().blocks.ArchetypeLife, self.id
|
|
927
|
+
return _deref(ctx().blocks.ArchetypeLife, self.id * ArchetypeLife._size_(), ArchetypeLife)
|
|
811
928
|
case _:
|
|
812
929
|
raise RuntimeError("Life is not available in level data")
|
|
813
930
|
|
|
@@ -920,7 +1037,7 @@ class WatchArchetype(_BaseArchetype):
|
|
|
920
1037
|
raise RuntimeError("Calling life is only allowed within a callback")
|
|
921
1038
|
match self._data_:
|
|
922
1039
|
case _ArchetypeSelfData() | _ArchetypeReferenceData():
|
|
923
|
-
return _deref(ctx().blocks.ArchetypeLife, self.id
|
|
1040
|
+
return _deref(ctx().blocks.ArchetypeLife, self.id * ArchetypeLife._size_(), ArchetypeLife)
|
|
924
1041
|
case _:
|
|
925
1042
|
raise RuntimeError("Life is not available in level data")
|
|
926
1043
|
|
|
@@ -1032,7 +1149,7 @@ def archetype_life_of(archetype: type[_BaseArchetype] | _BaseArchetype) -> Arche
|
|
|
1032
1149
|
raise RuntimeError("Calling archetype_life_of is only allowed within a callback")
|
|
1033
1150
|
match ctx().global_state.mode:
|
|
1034
1151
|
case Mode.PLAY | Mode.WATCH:
|
|
1035
|
-
return _deref(ctx().blocks.ArchetypeLife, archetype.id
|
|
1152
|
+
return _deref(ctx().blocks.ArchetypeLife, archetype.id * ArchetypeLife._size_(), ArchetypeLife)
|
|
1036
1153
|
case _:
|
|
1037
1154
|
raise RuntimeError(f"Archetype life is not available in mode '{ctx().global_state.mode}'")
|
|
1038
1155
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from collections.abc import Iterable
|
|
3
|
+
from collections.abc import Iterable, Sequence
|
|
4
4
|
from contextlib import contextmanager
|
|
5
5
|
from contextvars import ContextVar
|
|
6
6
|
from dataclasses import dataclass
|
|
7
7
|
from threading import Lock
|
|
8
|
-
from typing import Any, Self
|
|
8
|
+
from typing import Any, Literal, Self
|
|
9
9
|
|
|
10
10
|
from sonolus.backend.blocks import BlockData, PlayBlock
|
|
11
11
|
from sonolus.backend.ir import IRConst, IRExpr, IRStmt
|
|
@@ -41,6 +41,7 @@ debug_var = ContextVar("debug_var", default=_disabled_debug_config)
|
|
|
41
41
|
|
|
42
42
|
class GlobalContextState:
|
|
43
43
|
archetypes: dict[type, int]
|
|
44
|
+
keys: Sequence[int] | None
|
|
44
45
|
rom: ReadOnlyMemory
|
|
45
46
|
const_mappings: dict[Any, int]
|
|
46
47
|
environment_mappings: dict[_GlobalInfo, int]
|
|
@@ -49,7 +50,14 @@ class GlobalContextState:
|
|
|
49
50
|
lock: Lock
|
|
50
51
|
|
|
51
52
|
def __init__(self, mode: Mode, archetypes: dict[type, int] | None = None, rom: ReadOnlyMemory | None = None):
|
|
53
|
+
from sonolus.script.array import Array
|
|
54
|
+
|
|
52
55
|
self.archetypes = archetypes or {}
|
|
56
|
+
self.keys = (
|
|
57
|
+
Array(*((getattr(a, "_key_", -1)) for a in sorted(self.archetypes, key=lambda a: archetypes[a])))
|
|
58
|
+
if archetypes
|
|
59
|
+
else Array[int, Literal[0]]()
|
|
60
|
+
)
|
|
53
61
|
self.rom = ReadOnlyMemory() if rom is None else rom
|
|
54
62
|
self.const_mappings = {}
|
|
55
63
|
self.environment_mappings = {}
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|