sonolus.py 0.4.0__tar.gz → 0.4.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.4.0 → sonolus_py-0.4.1}/PKG-INFO +1 -1
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/doc_stubs/builtins.pyi +27 -87
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/constructs.md +2 -2
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/pyproject.toml +1 -1
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/utils.py +20 -16
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/visitor.py +32 -4
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/containers.py +1 -1
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/iterator.py +15 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/level.py +2 -2
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/maybe.py +105 -3
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/num.py +12 -12
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/project.py +1 -1
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/record.py +36 -36
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_genexpr.py +40 -0
- sonolus_py-0.4.1/tests/script/test_maybe.py +240 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/uv.lock +1 -1
- sonolus_py-0.4.0/tests/script/test_maybe.py +0 -71
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/.gitattributes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/.github/workflows/publish.yaml +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/.gitignore +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/.python-version +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/.run/Python tests in tests.run.xml +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/LICENSE +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/README.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/doc_stubs/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/doc_stubs/math.pyi +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/doc_stubs/num.pyi +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/doc_stubs/random.pyi +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/CNAME +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/builtins.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/cli.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/index.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/project.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/resources.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/concepts/types.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/index.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/overview.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/builtins.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/index.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/math.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/random.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.archetype.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.array.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.array_like.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.bucket.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.containers.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.debug.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.easing.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.effect.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.engine.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.globals.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.instruction.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.interval.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.iterator.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.level.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.maybe.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.metadata.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.num.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.options.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.particle.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.printing.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.project.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.quad.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.record.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.runtime.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.sprite.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.stream.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.text.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.timing.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.transform.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.ui.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.values.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/docs/reference/sonolus.script.vec.md +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/mkdocs.yml +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/scripts/generate.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/scripts/runtimes/Engine/Tutorial/Blocks.json +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/scripts/runtimes/Functions.json +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/scripts/runtimes/Level/Play/Blocks.json +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/scripts/runtimes/Level/Preview/Blocks.json +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/scripts/runtimes/Level/Watch/Blocks.json +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/blocks.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/excepthook.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/finalize.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/interpret.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/ir.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/mode.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/node.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/ops.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/allocate.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/constant_evaluation.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/copy_coalesce.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/dead_code.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/dominance.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/flow.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/inlining.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/liveness.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/optimize.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/passes.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/simplify.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/optimize/ssa.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/backend/place.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/cli.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/collection.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/compile.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/engine.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/level.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/node.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/build/project.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/py.typed +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/archetype.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/array.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/array_like.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/bucket.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/debug.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/easing.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/effect.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/engine.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/globals.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/instruction.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/builtin_impls.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/callbacks.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/constant.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/context.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/descriptor.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/dict_impl.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/error.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/generic.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/impl.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/introspection.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/math_impls.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/native.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/random.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/range.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/simulation_context.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/transient.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/tuple_impl.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/internal/value.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/interval.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/metadata.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/options.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/particle.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/pointer.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/printing.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/quad.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/runtime.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/sprite.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/stream.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/text.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/timing.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/transform.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/ui.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/values.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/sonolus/script/vec.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/level.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/buckets.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/connector.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/effect.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/layer.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/layout.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/note.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/options.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/particle.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/skin.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/stage.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/streams.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/lib/ui.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/connector.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/event.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/input.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/mode.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/note.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/play/stage.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/connector.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/event.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/layout.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/mode.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/note.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/preview/stage.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/project.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/framework.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/instructions.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/intro.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/mode.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/navigate.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/painting.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/phases.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/preprocess.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/tutorial/update.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/connector.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/event.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/mode.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/note.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/stage.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/test_projects/pydori/watch/update_spawn.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/conftest.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_connector_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_touch_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_touch_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_touch_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_hold_manager_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_initialize_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_initialize_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_initialize_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_initialize_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_initialize_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_should_spawn_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_spawn_order_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_terminate_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_touch_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_touch_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_touch_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_sequential_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_note_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_sim_line_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_should_spawn_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_spawn_order_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_touch_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_touch_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_touch_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_sequential_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_stage_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_initialize_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_initialize_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_initialize_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_initialize_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_initialize_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_should_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_spawn_order_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_terminate_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_touch_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_touch_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_touch_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_touch_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_touch_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_play_unscored_note_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_bpm_change_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_hold_connector_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_note_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_sim_line_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_stage_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_timescale_change_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_preview_preview_unscored_note_render_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_navigate_fast_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_navigate_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_navigate_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_navigate_standard_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_navigate_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_navigate_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_preprocess_fast_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_preprocess_standard_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_update_fast_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_update_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_update_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_update_standard_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_update_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_tutorial_global_update_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_global_update_spawn_fast_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_global_update_spawn_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_global_update_spawn_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_global_update_spawn_standard_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_global_update_spawn_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_global_update_spawn_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_connector_update_sequential_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_hold_manager_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_terminate_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_scheduled_lane_effect_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_sim_line_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_stage_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_despawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_preprocess_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_spawn_time_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_terminate_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_fast_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_fast_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_standard_nodes +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/data/pydori_watch_watch_unscored_note_update_parallel_standard_optimized_cfg +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/regressions/test_project.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/__init__.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/conftest.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_array.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_array_map.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_array_set.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_assert.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_dict.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_flow.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_functions.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_generator.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_helpers.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_interval.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_match.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_num.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_operator.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_quad.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_random.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_range.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_record.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_transform.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_tuple.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_values.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_var_array.py +0 -0
- {sonolus_py-0.4.0 → sonolus_py-0.4.1}/tests/script/test_vec.py +0 -0
|
@@ -183,95 +183,48 @@ def map[T, S](function: Callable[[T], S], iterable: Iterable[T]) -> Iterator[S]:
|
|
|
183
183
|
...
|
|
184
184
|
|
|
185
185
|
@overload
|
|
186
|
-
def max[T](iterable: Iterable[T], *, key: Callable[[T], Any] | None = ...) -> T:
|
|
187
|
-
"""Return the largest item in an iterable or the largest of two or more arguments.
|
|
188
|
-
|
|
189
|
-
Args:
|
|
190
|
-
iterable: The iterable to evaluate.
|
|
191
|
-
key: A function of one argument that is used to extract a comparison key from each element.
|
|
192
|
-
|
|
193
|
-
Returns:
|
|
194
|
-
The largest item.
|
|
195
|
-
"""
|
|
196
|
-
...
|
|
197
|
-
|
|
186
|
+
def max[T](iterable: Iterable[T], *, key: Callable[[T], Any] | None = ...) -> T: ...
|
|
198
187
|
@overload
|
|
199
188
|
def max(
|
|
200
189
|
iterable: Iterable[builtins.int | builtins.float],
|
|
201
190
|
*,
|
|
202
191
|
default: builtins.int | builtins.float = ...,
|
|
203
192
|
key: Callable[[builtins.int | builtins.float], Any] | None = ...,
|
|
204
|
-
) -> builtins.int | builtins.float:
|
|
205
|
-
"""Return the largest item in an iterable or the largest of two or more arguments.
|
|
206
|
-
|
|
207
|
-
Args:
|
|
208
|
-
iterable: The iterable to evaluate.
|
|
209
|
-
default: The default value to return if the iterable is empty.
|
|
210
|
-
key: A function of one argument that is used to extract a comparison key from each element.
|
|
211
|
-
|
|
212
|
-
Returns:
|
|
213
|
-
The largest item, or the default value if the iterable is empty.
|
|
214
|
-
"""
|
|
215
|
-
|
|
193
|
+
) -> builtins.int | builtins.float: ...
|
|
216
194
|
@overload
|
|
217
|
-
def max[T](arg1: T, arg2: T, *args: T, key: Callable[[T], Any] | None = ...) -> T:
|
|
218
|
-
|
|
195
|
+
def max[T](arg1: T, arg2: T, *args: T, key: Callable[[T], Any] | None = ...) -> T: ...
|
|
196
|
+
def max(*args, **kwargs):
|
|
197
|
+
"""Return the largest item in an iterable or the largest of multiple arguments.
|
|
219
198
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
arg2: Second argument.
|
|
223
|
-
*args: Additional arguments.
|
|
224
|
-
key: A function of one argument that is used to extract a comparison key from each element.
|
|
199
|
+
When called with a single iterable, returns the largest item from that iterable.
|
|
200
|
+
When called with multiple arguments, returns the largest argument.
|
|
225
201
|
|
|
226
|
-
|
|
227
|
-
|
|
202
|
+
Use the `key` parameter to specify a function that transforms each element
|
|
203
|
+
before comparison. Use the `default` parameter to specify a value to return
|
|
204
|
+
if the iterable is empty (supported only for numeric values).
|
|
228
205
|
"""
|
|
229
206
|
...
|
|
230
207
|
|
|
231
208
|
@overload
|
|
232
|
-
def min[T](iterable: Iterable[T], *, key: Callable[[T], Any] | None = ...) -> T:
|
|
233
|
-
"""Return the smallest item in an iterable or the smallest of two or more arguments.
|
|
234
|
-
|
|
235
|
-
Args:
|
|
236
|
-
iterable: The iterable to evaluate.
|
|
237
|
-
key: A function of one argument that is used to extract a comparison key from each element.
|
|
238
|
-
|
|
239
|
-
Returns:
|
|
240
|
-
The smallest item.
|
|
241
|
-
"""
|
|
242
|
-
...
|
|
243
|
-
|
|
209
|
+
def min[T](iterable: Iterable[T], *, key: Callable[[T], Any] | None = ...) -> T: ...
|
|
244
210
|
@overload
|
|
245
211
|
def min(
|
|
246
212
|
iterable: Iterable[builtins.int | builtins.float],
|
|
247
213
|
*,
|
|
248
214
|
default: builtins.int | builtins.float = ...,
|
|
249
215
|
key: Callable[[builtins.int | builtins.float], Any] | None = ...,
|
|
250
|
-
) -> builtins.int | builtins.float:
|
|
251
|
-
"""Return the smallest item in an iterable or the smallest of two or more arguments.
|
|
252
|
-
|
|
253
|
-
Args:
|
|
254
|
-
iterable: The iterable to evaluate.
|
|
255
|
-
default: The default value to return if the iterable is empty.
|
|
256
|
-
key: A function of one argument that is used to extract a comparison key from each element.
|
|
257
|
-
|
|
258
|
-
Returns:
|
|
259
|
-
The smallest item, or the default value if the iterable is empty.
|
|
260
|
-
"""
|
|
261
|
-
...
|
|
262
|
-
|
|
216
|
+
) -> builtins.int | builtins.float: ...
|
|
263
217
|
@overload
|
|
264
|
-
def min[T](arg1: T, arg2: T, *args: T, key: Callable[[T], Any] | None = ...) -> T:
|
|
265
|
-
|
|
218
|
+
def min[T](arg1: T, arg2: T, *args: T, key: Callable[[T], Any] | None = ...) -> T: ...
|
|
219
|
+
def min(*args, **kwargs):
|
|
220
|
+
"""Return the smallest item in an iterable or the smallest of multiple arguments.
|
|
266
221
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
arg2: Second argument.
|
|
270
|
-
*args: Additional arguments.
|
|
271
|
-
key: A function of one argument that is used to extract a comparison key from each element.
|
|
222
|
+
When called with a single iterable, returns the smallest item from that iterable.
|
|
223
|
+
When called with multiple arguments, returns the smallest argument.
|
|
272
224
|
|
|
273
|
-
|
|
274
|
-
|
|
225
|
+
Use the `key` parameter to specify a function that transforms each element
|
|
226
|
+
before comparison. Use the `default` parameter to specify a value to return
|
|
227
|
+
if the iterable is empty (supported only for numeric values).
|
|
275
228
|
"""
|
|
276
229
|
...
|
|
277
230
|
|
|
@@ -289,28 +242,15 @@ def next[T](iterator: Iterator[T]) -> T:
|
|
|
289
242
|
...
|
|
290
243
|
|
|
291
244
|
@overload
|
|
292
|
-
def range(stop: builtins.int) -> builtins.range:
|
|
293
|
-
"""Return an immutable sequence of numbers from 0 to stop.
|
|
294
|
-
|
|
295
|
-
Args:
|
|
296
|
-
stop: Stop value.
|
|
297
|
-
|
|
298
|
-
Returns:
|
|
299
|
-
The range object.
|
|
300
|
-
"""
|
|
301
|
-
...
|
|
302
|
-
|
|
245
|
+
def range(stop: builtins.int) -> builtins.range: ...
|
|
303
246
|
@overload
|
|
304
|
-
def range(start: builtins.int, stop: builtins.int, step: builtins.int = ...) -> builtins.range:
|
|
305
|
-
|
|
247
|
+
def range(start: builtins.int, stop: builtins.int, step: builtins.int = ...) -> builtins.range: ...
|
|
248
|
+
def range(*args) -> builtins.range:
|
|
249
|
+
"""Return an immutable sequence of numbers.
|
|
306
250
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
step: Step value.
|
|
311
|
-
|
|
312
|
-
Returns:
|
|
313
|
-
The range object.
|
|
251
|
+
When called with one argument, creates a sequence from 0 to that number (exclusive).
|
|
252
|
+
When called with two arguments, creates a sequence from the first to the second (exclusive).
|
|
253
|
+
When called with three arguments, the third argument specifies the step size.
|
|
314
254
|
"""
|
|
315
255
|
...
|
|
316
256
|
|
|
@@ -33,12 +33,12 @@ The following constructs are supported in Sonolus.py:
|
|
|
33
33
|
- Binary: `+`, `-`, `*`, `/`, `//`, `%`, `**`, `&`, `|`, `^`, `<<`, `>>`
|
|
34
34
|
- Comparison: `==`, `!=`, `>`, `<`, `>=`, `<=`, `is`, `is not`, `in`, `not in`
|
|
35
35
|
- Logical: `and`, `or` (for [`Num`](types.md#num) arguments only)
|
|
36
|
-
- Ternary: `a if <condition> else b`
|
|
36
|
+
- Ternary: `a if <condition> else b`
|
|
37
37
|
- Attribute: `a.b`
|
|
38
38
|
- Indexing: `a[b]`
|
|
39
39
|
- Call: `f(a, b, c)`
|
|
40
40
|
- Variables: `a`, `b`, `c`
|
|
41
|
-
- Lambda: `lambda a, b: a + b`
|
|
41
|
+
- Lambda: `lambda a, b: a + b` (if not on the same line as another lambda or function definition)
|
|
42
42
|
- Assignment Expression: `(a := b)`
|
|
43
43
|
- Generator Expression: `(x for x in iterable if condition)`
|
|
44
44
|
- Statements:
|
|
@@ -23,29 +23,33 @@ def get_tree_from_file(file: str | Path) -> ast.Module:
|
|
|
23
23
|
class FindFunction(ast.NodeVisitor):
|
|
24
24
|
def __init__(self, line):
|
|
25
25
|
self.line = line
|
|
26
|
-
self.
|
|
26
|
+
self.results: list[ast.FunctionDef | ast.Lambda] = []
|
|
27
27
|
|
|
28
28
|
def visit_FunctionDef(self, node: ast.FunctionDef):
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
):
|
|
32
|
-
self.node = node
|
|
33
|
-
else:
|
|
34
|
-
self.generic_visit(node)
|
|
29
|
+
self.results.append(node)
|
|
30
|
+
self.generic_visit(node)
|
|
35
31
|
|
|
36
32
|
def visit_Lambda(self, node: ast.Lambda):
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
raise ValueError("Multiple functions defined on the same line are not supported")
|
|
40
|
-
self.node = node
|
|
41
|
-
else:
|
|
42
|
-
self.generic_visit(node)
|
|
33
|
+
self.results.append(node)
|
|
34
|
+
self.generic_visit(node)
|
|
43
35
|
|
|
44
36
|
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
@cache
|
|
38
|
+
def get_functions(tree: ast.Module) -> list[ast.FunctionDef | ast.Lambda]:
|
|
39
|
+
visitor = FindFunction(0)
|
|
47
40
|
visitor.visit(tree)
|
|
48
|
-
return visitor.
|
|
41
|
+
return visitor.results
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def find_function(tree: ast.Module, line: int):
|
|
45
|
+
for node in get_functions(tree):
|
|
46
|
+
if node.lineno == line or (
|
|
47
|
+
isinstance(node, ast.FunctionDef)
|
|
48
|
+
and node.decorator_list
|
|
49
|
+
and (node.decorator_list[-1].end_lineno <= line <= node.lineno)
|
|
50
|
+
):
|
|
51
|
+
return node
|
|
52
|
+
raise ValueError("Function not found")
|
|
49
53
|
|
|
50
54
|
|
|
51
55
|
class ScanWrites(ast.NodeVisitor):
|
|
@@ -261,7 +261,21 @@ class Visitor(ast.NodeVisitor):
|
|
|
261
261
|
result = self.visit(body)
|
|
262
262
|
ctx().scope.set_value("$return", result)
|
|
263
263
|
case ast.GeneratorExp(elt=elt, generators=generators):
|
|
264
|
-
|
|
264
|
+
first_generator = generators[0]
|
|
265
|
+
iterable = self.visit(first_generator.iter)
|
|
266
|
+
if isinstance(iterable, TupleImpl):
|
|
267
|
+
initial_iterator = iterable
|
|
268
|
+
else:
|
|
269
|
+
if not hasattr(iterable, "__iter__"):
|
|
270
|
+
raise TypeError(f"Object of type '{type(iterable).__name__}' is not iterable")
|
|
271
|
+
initial_iterator = self.handle_call(first_generator.iter, iterable.__iter__)
|
|
272
|
+
if not isinstance(initial_iterator, SonolusIterator):
|
|
273
|
+
raise ValueError("Unsupported iterator")
|
|
274
|
+
# The initial iterator is evaluated eagerly in Python
|
|
275
|
+
before_ctx = ctx().branch_with_scope(None, before_ctx.scope.copy())
|
|
276
|
+
start_ctx = before_ctx.branch_with_scope(None, Scope())
|
|
277
|
+
set_ctx(start_ctx)
|
|
278
|
+
self.construct_genexpr(generators, elt, initial_iterator)
|
|
265
279
|
ctx().scope.set_value("$return", validate_value(None))
|
|
266
280
|
case _:
|
|
267
281
|
raise NotImplementedError("Unsupported syntax")
|
|
@@ -323,7 +337,9 @@ class Visitor(ast.NodeVisitor):
|
|
|
323
337
|
set_ctx(after_ctx.branch_with_scope(None, before_ctx.scope.copy()))
|
|
324
338
|
return result_binding.value
|
|
325
339
|
|
|
326
|
-
def construct_genexpr(
|
|
340
|
+
def construct_genexpr(
|
|
341
|
+
self, generators: Iterable[ast.comprehension], elt: ast.expr, initial_iterator: Value | None = None
|
|
342
|
+
):
|
|
327
343
|
if not generators:
|
|
328
344
|
# Note that there may effectively be multiple yields in an expression since
|
|
329
345
|
# tuples are unrolled.
|
|
@@ -335,14 +351,22 @@ class Visitor(ast.NodeVisitor):
|
|
|
335
351
|
set_ctx(resume_ctx)
|
|
336
352
|
return
|
|
337
353
|
generator, *others = generators
|
|
338
|
-
|
|
354
|
+
if initial_iterator is not None:
|
|
355
|
+
iterable = initial_iterator
|
|
356
|
+
else:
|
|
357
|
+
iterable = self.visit(generator.iter)
|
|
339
358
|
if isinstance(iterable, TupleImpl):
|
|
340
359
|
for value in iterable.value:
|
|
341
360
|
set_ctx(ctx().branch(None))
|
|
342
361
|
self.handle_assign(generator.target, validate_value(value))
|
|
343
362
|
self.construct_genexpr(others, elt)
|
|
344
363
|
else:
|
|
345
|
-
|
|
364
|
+
if initial_iterator is not None:
|
|
365
|
+
iterator = initial_iterator
|
|
366
|
+
else:
|
|
367
|
+
if not hasattr(iterable, "__iter__"):
|
|
368
|
+
raise TypeError(f"Object of type '{type(iterable).__name__}' is not iterable")
|
|
369
|
+
iterator = self.handle_call(generator.iter, iterable.__iter__)
|
|
346
370
|
if not isinstance(iterator, SonolusIterator):
|
|
347
371
|
raise ValueError("Unsupported iterator")
|
|
348
372
|
header_ctx = ctx().branch(None)
|
|
@@ -493,6 +517,8 @@ class Visitor(ast.NodeVisitor):
|
|
|
493
517
|
if break_ctxs:
|
|
494
518
|
set_ctx(Context.meet([*break_ctxs, ctx()]))
|
|
495
519
|
return
|
|
520
|
+
if not hasattr(iterable, "__iter__"):
|
|
521
|
+
raise TypeError(f"Object of type '{type(iterable).__name__}' is not iterable")
|
|
496
522
|
iterator = self.handle_call(node, iterable.__iter__)
|
|
497
523
|
if not isinstance(iterator, SonolusIterator):
|
|
498
524
|
raise ValueError("Unsupported iterator")
|
|
@@ -980,6 +1006,8 @@ class Visitor(ast.NodeVisitor):
|
|
|
980
1006
|
self.resume_ctxs.append(resume_ctx)
|
|
981
1007
|
set_ctx(resume_ctx)
|
|
982
1008
|
return validate_value(None)
|
|
1009
|
+
if not hasattr(value, "__iter__"):
|
|
1010
|
+
raise TypeError(f"Object of type '{type(value).__name__}' is not iterable")
|
|
983
1011
|
iterator = self.handle_call(node, value.__iter__)
|
|
984
1012
|
if not isinstance(iterator, SonolusIterator):
|
|
985
1013
|
raise ValueError("Expected a SonolusIterator")
|
|
@@ -337,7 +337,7 @@ class ArrayPointer[T](Record, ArrayLike[T]):
|
|
|
337
337
|
raise TypeError("ArrayPointer values cannot be accessed outside of a context")
|
|
338
338
|
return _deref(
|
|
339
339
|
# Allows a compile time constant block so we can warn based on callback read/write access
|
|
340
|
-
(self.
|
|
340
|
+
(self._value_["block"]._is_py_() and self._value_["block"]._as_py_()) or self.block,
|
|
341
341
|
self.offset + Num._accept_(item) * Num._accept_(self.element_type()._size_()),
|
|
342
342
|
self.element_type(),
|
|
343
343
|
)
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from collections.abc import Iterator
|
|
3
4
|
from typing import Any
|
|
4
5
|
|
|
6
|
+
from sonolus.script.internal.context import ctx
|
|
5
7
|
from sonolus.script.internal.impl import meta_fn
|
|
6
8
|
from sonolus.script.maybe import Maybe, Nothing, Some
|
|
7
9
|
from sonolus.script.record import Record
|
|
@@ -114,3 +116,16 @@ class _FilteringIterator[T, Fn](Record, SonolusIterator):
|
|
|
114
116
|
inside = value.get_unsafe()
|
|
115
117
|
if self.fn(inside):
|
|
116
118
|
return Some(inside)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
@meta_fn
|
|
122
|
+
def maybe_next[T](iterator: Iterator[T]) -> Maybe[T]:
|
|
123
|
+
"""Get the next item from an iterator as a `Maybe` if it exists or `Nothing` otherwise."""
|
|
124
|
+
from sonolus.backend.visitor import compile_and_call
|
|
125
|
+
|
|
126
|
+
if not isinstance(iterator, SonolusIterator):
|
|
127
|
+
raise TypeError("Iterator must be an instance of SonolusIterator.")
|
|
128
|
+
if ctx():
|
|
129
|
+
return compile_and_call(iterator.next)
|
|
130
|
+
else:
|
|
131
|
+
return iterator.next()
|
|
@@ -145,7 +145,7 @@ class Level:
|
|
|
145
145
|
)
|
|
146
146
|
|
|
147
147
|
|
|
148
|
-
type EntityListArg = list[PlayArchetype |
|
|
148
|
+
type EntityListArg = list[list[PlayArchetype] | PlayArchetype] | PlayArchetype
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
def flatten_entities(entities: EntityListArg) -> Iterator[PlayArchetype]:
|
|
@@ -175,7 +175,7 @@ class LevelData:
|
|
|
175
175
|
bgm_offset: float
|
|
176
176
|
entities: list[PlayArchetype]
|
|
177
177
|
|
|
178
|
-
def __init__(self, bgm_offset: float, entities:
|
|
178
|
+
def __init__(self, bgm_offset: float, entities: EntityListArg) -> None:
|
|
179
179
|
self.bgm_offset = bgm_offset
|
|
180
180
|
self.entities = [*flatten_entities(entities)]
|
|
181
181
|
|
|
@@ -4,10 +4,11 @@ from collections.abc import Callable
|
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
6
|
from sonolus.script.internal.context import ctx
|
|
7
|
-
from sonolus.script.internal.impl import meta_fn
|
|
7
|
+
from sonolus.script.internal.impl import meta_fn, validate_value
|
|
8
8
|
from sonolus.script.internal.transient import TransientValue
|
|
9
9
|
from sonolus.script.internal.value import Value
|
|
10
10
|
from sonolus.script.num import Num
|
|
11
|
+
from sonolus.script.values import copy, zeros
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class Maybe[T](TransientValue):
|
|
@@ -38,13 +39,16 @@ class Maybe[T](TransientValue):
|
|
|
38
39
|
|
|
39
40
|
def __init__(self, *, present: bool, value: T):
|
|
40
41
|
self._present = Num._accept_(present)
|
|
41
|
-
self._value = value
|
|
42
|
+
self._value = validate_value(value)
|
|
42
43
|
|
|
43
44
|
@property
|
|
44
45
|
@meta_fn
|
|
45
46
|
def is_some(self) -> bool:
|
|
46
47
|
"""Check if the value is present."""
|
|
47
48
|
if ctx():
|
|
49
|
+
if self._present._is_py_():
|
|
50
|
+
# Makes this a compile time constant.
|
|
51
|
+
return self._present
|
|
48
52
|
return self._present._get_readonly_()
|
|
49
53
|
else:
|
|
50
54
|
return self._present._as_py_()
|
|
@@ -61,13 +65,104 @@ class Maybe[T](TransientValue):
|
|
|
61
65
|
|
|
62
66
|
@meta_fn
|
|
63
67
|
def get_unsafe(self) -> T:
|
|
64
|
-
|
|
68
|
+
if ctx():
|
|
69
|
+
return self._value
|
|
70
|
+
else:
|
|
71
|
+
return self._value._as_py_()
|
|
65
72
|
|
|
66
73
|
def map[R](self, fn: Callable[[T], R], /) -> Maybe[R]:
|
|
74
|
+
"""Map the contained value to a new value using the provided function.
|
|
75
|
+
|
|
76
|
+
If the value is not present, returns `Nothing`.
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
fn: A function that takes the contained value and returns a new value.
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
A `Maybe` instance containing the result of the function if the value is present, otherwise `Nothing`.
|
|
83
|
+
"""
|
|
67
84
|
if self.is_some:
|
|
68
85
|
return Some(fn(self.get_unsafe()))
|
|
69
86
|
return Nothing
|
|
70
87
|
|
|
88
|
+
def flat_map[R](self, fn: Callable[[T], Maybe[R]], /) -> Maybe[R]:
|
|
89
|
+
"""Flat map the contained value to a new `Maybe` using the provided function.
|
|
90
|
+
|
|
91
|
+
If the value is not present, returns `Nothing`.
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
fn: A function that takes the contained value and returns a new `Maybe`.
|
|
95
|
+
|
|
96
|
+
Returns:
|
|
97
|
+
A `Maybe` instance containing the result of the function if the value is present, otherwise `Nothing`.
|
|
98
|
+
"""
|
|
99
|
+
if self.is_some:
|
|
100
|
+
return fn(self.get_unsafe())
|
|
101
|
+
return Nothing
|
|
102
|
+
|
|
103
|
+
def or_default(self, default: T) -> T:
|
|
104
|
+
"""Return a copy of the contained value if present, otherwise return a copy of the given default value.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
default: The default value to return if the contained value is not present.
|
|
108
|
+
|
|
109
|
+
Returns:
|
|
110
|
+
A copy of the contained value if present, otherwise a copy of the default value.
|
|
111
|
+
"""
|
|
112
|
+
result = _box(copy(default))
|
|
113
|
+
if self.is_some:
|
|
114
|
+
result.value = self.get_unsafe()
|
|
115
|
+
return result.value
|
|
116
|
+
|
|
117
|
+
@meta_fn
|
|
118
|
+
def or_else(self, fn: Callable[[], T], /) -> T:
|
|
119
|
+
"""Return a copy of the contained value if present, otherwise return a copy of the result of the given function.
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
fn: A function that returns a value to use if the contained value is not present.
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
A copy of the contained value if present, otherwise a copy of the result of calling the function.
|
|
126
|
+
"""
|
|
127
|
+
from sonolus.backend.visitor import compile_and_call
|
|
128
|
+
|
|
129
|
+
if ctx():
|
|
130
|
+
if self.is_some._is_py_(): # type: ignore
|
|
131
|
+
if self.is_some._as_py_(): # type: ignore
|
|
132
|
+
return copy(self.get_unsafe())
|
|
133
|
+
else:
|
|
134
|
+
return copy(compile_and_call(fn))
|
|
135
|
+
else:
|
|
136
|
+
return compile_and_call(self._or_else, fn)
|
|
137
|
+
elif self.is_some:
|
|
138
|
+
return copy(self.get_unsafe())
|
|
139
|
+
else:
|
|
140
|
+
return copy(fn())
|
|
141
|
+
|
|
142
|
+
def _or_else(self, fn: Callable[[], T], /) -> T:
|
|
143
|
+
result = _box(zeros(self.contained_type))
|
|
144
|
+
if self.is_some:
|
|
145
|
+
result.value = self.get_unsafe()
|
|
146
|
+
else:
|
|
147
|
+
result.value = fn()
|
|
148
|
+
return result.value
|
|
149
|
+
|
|
150
|
+
@property
|
|
151
|
+
def tuple(self) -> tuple[bool, T]:
|
|
152
|
+
"""Return whether the value is present and a copy of the contained value if present as a tuple.
|
|
153
|
+
|
|
154
|
+
If the value is not present, the tuple will contain `False` and a zero initialized value of the contained type.
|
|
155
|
+
"""
|
|
156
|
+
result_value = _box(zeros(self.contained_type))
|
|
157
|
+
if self.is_some:
|
|
158
|
+
result_value.value = self.get_unsafe()
|
|
159
|
+
return self.is_some, result_value.value
|
|
160
|
+
|
|
161
|
+
@property
|
|
162
|
+
@meta_fn
|
|
163
|
+
def contained_type(self):
|
|
164
|
+
return type(self._value)
|
|
165
|
+
|
|
71
166
|
@classmethod
|
|
72
167
|
def _accepts_(cls, value: Any) -> bool:
|
|
73
168
|
return isinstance(value, cls)
|
|
@@ -137,3 +232,10 @@ Nothing: Maybe[Any] = Maybe(present=False, value=None) # type: ignore
|
|
|
137
232
|
# Note: has to come after the definition to hide the definition in the docs.
|
|
138
233
|
Nothing: Maybe[Any]
|
|
139
234
|
"""The empty `Maybe` instance."""
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
@meta_fn
|
|
238
|
+
def _box(value):
|
|
239
|
+
from sonolus.script.containers import Box
|
|
240
|
+
|
|
241
|
+
return Box(value)
|
|
@@ -453,14 +453,14 @@ if TYPE_CHECKING:
|
|
|
453
453
|
from typing import Protocol
|
|
454
454
|
|
|
455
455
|
@runtime_checkable
|
|
456
|
-
class Num
|
|
457
|
-
def __add__(self, other:
|
|
458
|
-
def __sub__(self, other:
|
|
459
|
-
def __mul__(self, other:
|
|
460
|
-
def __truediv__(self, other:
|
|
461
|
-
def __floordiv__(self, other:
|
|
462
|
-
def __mod__(self, other:
|
|
463
|
-
def __pow__(self, other:
|
|
456
|
+
class Num(Protocol, int, bool, float):
|
|
457
|
+
def __add__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
458
|
+
def __sub__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
459
|
+
def __mul__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
460
|
+
def __truediv__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
461
|
+
def __floordiv__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
462
|
+
def __mod__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
463
|
+
def __pow__(self, other: Any, /) -> Num | int | bool | float: ...
|
|
464
464
|
|
|
465
465
|
def __neg__(self, /) -> Num | int | bool | float: ...
|
|
466
466
|
def __pos__(self, /) -> Num | int | bool | float: ...
|
|
@@ -468,10 +468,10 @@ if TYPE_CHECKING:
|
|
|
468
468
|
|
|
469
469
|
def __eq__(self, other: Any, /) -> bool: ...
|
|
470
470
|
def __ne__(self, other: Any, /) -> bool: ...
|
|
471
|
-
def __lt__(self, other:
|
|
472
|
-
def __le__(self, other:
|
|
473
|
-
def __gt__(self, other:
|
|
474
|
-
def __ge__(self, other:
|
|
471
|
+
def __lt__(self, other: Any, /) -> bool: ...
|
|
472
|
+
def __le__(self, other: Any, /) -> bool: ...
|
|
473
|
+
def __gt__(self, other: Any, /) -> bool: ...
|
|
474
|
+
def __ge__(self, other: Any, /) -> bool: ...
|
|
475
475
|
|
|
476
476
|
def __hash__(self, /) -> int: ...
|
|
477
477
|
|
|
@@ -41,7 +41,7 @@ class Project:
|
|
|
41
41
|
self._levels = None
|
|
42
42
|
self.resources = Path(resources or "resources")
|
|
43
43
|
|
|
44
|
-
def with_levels(self, levels:
|
|
44
|
+
def with_levels(self, levels: Iterable[Level] | Callable[[], Iterable[Level]] | None) -> Project:
|
|
45
45
|
"""Create a new project with the specified levels.
|
|
46
46
|
|
|
47
47
|
Args:
|