wirely 0.1.2__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wirely-0.1.2 → wirely-0.1.4}/CHANGELOG.md +92 -1
- {wirely-0.1.2 → wirely-0.1.4}/MANIFEST.in +3 -2
- {wirely-0.1.2/wirely.egg-info → wirely-0.1.4}/PKG-INFO +55 -9
- {wirely-0.1.2 → wirely-0.1.4}/README.md +50 -7
- {wirely-0.1.2 → wirely-0.1.4}/doc/README.md +6 -2
- {wirely-0.1.2 → wirely-0.1.4}/doc/bytecode-format.md +464 -262
- wirely-0.1.4/doc/compiler-stages.md +140 -0
- wirely-0.1.4/doc/diagram-layout.md +163 -0
- wirely-0.1.4/doc/language.md +917 -0
- {wirely-0.1.2 → wirely-0.1.4}/doc/libraries.md +84 -64
- wirely-0.1.4/doc/native-python.md +544 -0
- {wirely-0.1.2 → wirely-0.1.4}/doc/python-style.md +2 -0
- wirely-0.1.4/doc/tests.md +118 -0
- {wirely-0.1.2 → wirely-0.1.4}/doc/value-types.md +125 -91
- {wirely-0.1.2 → wirely-0.1.4}/doc/wirely-style.md +11 -7
- {wirely-0.1.2 → wirely-0.1.4}/examples/delay.wrl +1 -1
- {wirely-0.1.2 → wirely-0.1.4}/examples/test.wrl +18 -22
- {wirely-0.1.2 → wirely-0.1.4}/pyproject.toml +20 -4
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/arithmetic.wrl +4 -4
- wirely-0.1.4/tests/compiler/assertions.wrl +84 -0
- wirely-0.1.4/tests/compiler/attributes.wrl +152 -0
- wirely-0.1.4/tests/compiler/bindings.wrl +42 -0
- wirely-0.1.4/tests/compiler/bitwise.wrl +120 -0
- wirely-0.1.4/tests/compiler/blocks.wrl +146 -0
- wirely-0.1.4/tests/compiler/changed.wrl +42 -0
- wirely-0.1.4/tests/compiler/connection_order.wrl +73 -0
- wirely-0.1.4/tests/compiler/constant_expressions.wrl +79 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/constants.wrl +12 -12
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/conversions.wrl +6 -3
- wirely-0.1.4/tests/compiler/durations.wrl +42 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/equality.wrl +6 -6
- wirely-0.1.4/tests/compiler/events.wrl +152 -0
- wirely-0.1.4/tests/compiler/knx.wrl +31 -0
- wirely-0.1.4/tests/compiler/length.wrl +121 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/library_settings.wrl +15 -15
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/literals.wrl +10 -2
- wirely-0.1.4/tests/compiler/multi_procedures.wrl +102 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/namespaces.wrl +23 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/native_functions.wrl +2 -2
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/options.wrl +2 -2
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/ordering.wrl +2 -2
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/parameters.wrl +38 -38
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/path.wrl +3 -3
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/prepared_configuration.wrl +10 -13
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/runtime_limits.wrl +10 -4
- wirely-0.1.4/tests/compiler/static_sources.wrl +33 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/syntax.wrl +54 -6
- wirely-0.1.4/tests/compiler/time_of_day.wrl +40 -0
- wirely-0.1.4/tests/compiler/type_stages.wrl +28 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/types.wrl +66 -25
- wirely-0.1.4/tests/compiler/warnings.wrl +200 -0
- wirely-0.1.4/tests/compiler/warnings_allowed.wrl +11 -0
- wirely-0.1.4/tests/infra/native_extension/compiler/generated/__init__.py +11 -0
- wirely-0.1.4/tests/infra/native_extension/compiler/generated/_bindings.py +10 -0
- wirely-0.1.4/tests/infra/native_extension/compiler/generated/_contracts/__init__.py +1 -0
- wirely-0.1.4/tests/infra/native_extension/functions/test_library.py +18 -0
- wirely-0.1.4/tests/infra/native_extension/generated/__init__.py +22 -0
- wirely-0.1.4/tests/infra/native_extension/generated/_bindings.py +55 -0
- wirely-0.1.4/tests/infra/native_extension/generated/_signatures.py +28 -0
- wirely-0.1.4/tests/infra/native_extension/generated/enums.py +12 -0
- wirely-0.1.4/tests/infra/native_extension/generated/structs.py +21 -0
- wirely-0.1.4/tests/infra/native_extension/generated/test_library.py +108 -0
- wirely-0.1.4/tests/infra/native_extension/library.wrl +12 -0
- wirely-0.1.4/tests/infra/native_extension/native/__init__.py +0 -0
- wirely-0.1.4/tests/infra/native_extension/native/test_library.py +9 -0
- wirely-0.1.4/tests/infra/runner/__init__.py +1 -0
- wirely-0.1.4/tests/infra/runner/__main__.py +83 -0
- wirely-0.1.4/tests/infra/runner/diagnostics.py +170 -0
- wirely-0.1.4/tests/infra/runner/execution.py +195 -0
- wirely-0.1.4/tests/infra/runner/parallel.py +222 -0
- wirely-0.1.4/tests/infra/runner/registry.py +181 -0
- wirely-0.1.4/tests/infra/runner/services.py +242 -0
- wirely-0.1.4/tests/infra/support.py +134 -0
- wirely-0.1.4/tests/misc/grammar.py +10 -0
- wirely-0.1.4/tests/misc/type_check.py +9 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/arithmetic.wrl +19 -19
- wirely-0.1.4/tests/negative/assertions.wrl +215 -0
- wirely-0.1.4/tests/negative/attributes.wrl +358 -0
- wirely-0.1.4/tests/negative/bindings.wrl +105 -0
- wirely-0.1.4/tests/negative/bitwise.wrl +135 -0
- wirely-0.1.4/tests/negative/blocks.wrl +296 -0
- wirely-0.1.4/tests/negative/changed.wrl +95 -0
- wirely-0.1.4/tests/negative/connections.wrl +234 -0
- wirely-0.1.4/tests/negative/constant_expressions.wrl +84 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/constants.wrl +55 -44
- wirely-0.1.4/tests/negative/conversions.wrl +57 -0
- wirely-0.1.4/tests/negative/durations.wrl +45 -0
- wirely-0.1.4/tests/negative/enum_declarations.wrl +285 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/enum_literals.wrl +7 -7
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/integer_literals.wrl +19 -1
- wirely-0.1.4/tests/negative/length.wrl +156 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/library_settings.wrl +20 -20
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/monotonic_time.wrl +13 -14
- wirely-0.1.4/tests/negative/multi_procedures.wrl +184 -0
- wirely-0.1.4/tests/negative/native_functions.wrl +118 -0
- wirely-0.1.4/tests/negative/native_initializers.wrl +149 -0
- wirely-0.1.4/tests/negative/native_procedures.wrl +50 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/native_values.wrl +13 -13
- wirely-0.1.4/tests/negative/node_declarations.wrl +177 -0
- wirely-0.1.4/tests/negative/node_types.wrl +51 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/option_literals.wrl +4 -3
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/option_properties.wrl +23 -22
- wirely-0.1.4/tests/negative/optional_forwarding.wrl +93 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/optional_outputs.wrl +18 -11
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/options.wrl +20 -15
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/parameters.wrl +8 -6
- wirely-0.1.4/tests/negative/path.wrl +19 -0
- wirely-0.1.4/tests/negative/prepared_configuration.wrl +121 -0
- wirely-0.1.4/tests/negative/procedure_ports.wrl +575 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/procedures.wrl +99 -68
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/resource_connections.wrl +14 -15
- wirely-0.1.4/tests/negative/resource_declarations.wrl +252 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/resource_value_types.wrl +6 -6
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/runtime_limits.wrl +10 -9
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/runtime_types.wrl +10 -10
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/state_connections.wrl +35 -10
- wirely-0.1.4/tests/negative/string_literals.wrl +131 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/structs.wrl +105 -38
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/syntax_lists.wrl +1 -1
- wirely-0.1.4/tests/negative/time_of_day.wrl +22 -0
- wirely-0.1.4/tests/negative/type_comparisons.wrl +121 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/weak_keywords.wrl +2 -2
- wirely-0.1.4/tests/repo/bytecode_format.py +20 -0
- wirely-0.1.4/tests/repo/files.py +30 -0
- wirely-0.1.4/tests/repo/native_types.py +22 -0
- wirely-0.1.4/tests/unit/analysis.py +234 -0
- wirely-0.1.4/tests/unit/compiler_api.py +301 -0
- wirely-0.1.4/tests/unit/compiler_warnings.py +99 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/container.py +6 -2
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/control.py +3 -3
- wirely-0.1.4/tests/unit/control.wrl +13 -0
- wirely-0.1.4/tests/unit/csv.py +97 -0
- wirely-0.1.4/tests/unit/editing.py +617 -0
- wirely-0.1.4/tests/unit/editor.py +256 -0
- wirely-0.1.4/tests/unit/editor_cache.py +110 -0
- wirely-0.1.4/tests/unit/editor_export.py +56 -0
- wirely-0.1.4/tests/unit/editor_widgets.py +525 -0
- wirely-0.1.4/tests/unit/editor_workspace.py +348 -0
- wirely-0.1.4/tests/unit/engine_wakeup.py +101 -0
- wirely-0.1.4/tests/unit/engine_wakeup.wrl +4 -0
- wirely-0.1.4/tests/unit/format_records.py +102 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/instructions.py +126 -53
- wirely-0.1.4/tests/unit/library_configuration.py +579 -0
- wirely-0.1.4/tests/unit/monotonic_timestamp.py +82 -0
- wirely-0.1.4/tests/unit/native_contracts.py +277 -0
- wirely-0.1.4/tests/unit/native_extensions.py +253 -0
- wirely-0.1.4/tests/unit/native_interface.py +1378 -0
- wirely-0.1.4/tests/unit/native_values.py +337 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/negative_cases.py +117 -23
- wirely-0.1.4/tests/unit/outline.py +136 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/procedures.py +292 -61
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/procedures.wrl +215 -52
- wirely-0.1.4/tests/unit/resources.py +409 -0
- wirely-0.1.4/tests/unit/runtime_program.py +351 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/serialization.py +79 -54
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/state_connections.py +204 -96
- wirely-0.1.4/tests/unit/static_sources.py +41 -0
- wirely-0.1.4/tests/unit/static_sources.wrl +36 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/test_resources.py +32 -29
- wirely-0.1.4/tests/unit/types.py +673 -0
- wirely-0.1.4/tests/unit/wall_clock.py +531 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/abb.py +16 -4
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/and.py +4 -0
- wirely-0.1.4/tests/wrl/bitwise.py +51 -0
- wirely-0.1.4/tests/wrl/bitwise.wrl +107 -0
- wirely-0.1.4/tests/wrl/changed.py +46 -0
- wirely-0.1.4/tests/wrl/changed.wrl +52 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/csv.py +125 -32
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/delay.py +4 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/delay.wrl +5 -5
- {wirely-0.1.2/test/unit → wirely-0.1.4/tests/wrl}/equality.py +27 -22
- {wirely-0.1.2/test/unit → wirely-0.1.4/tests/wrl}/equality.wrl +21 -20
- wirely-0.1.4/tests/wrl/event_bindings.py +46 -0
- wirely-0.1.4/tests/wrl/event_bindings.wrl +82 -0
- wirely-0.1.4/tests/wrl/events.py +44 -0
- wirely-0.1.4/tests/wrl/events.wrl +116 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/flipflop.py +22 -23
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/gpio.py +1 -4
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/knx.py +112 -7
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/knx.wrl +110 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/knx_time.py +3 -4
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/knx_time.wrl +1 -1
- wirely-0.1.4/tests/wrl/length.py +19 -0
- wirely-0.1.4/tests/wrl/length.wrl +50 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/mqtt.py +6 -8
- wirely-0.1.4/tests/wrl/multi_forward.py +17 -0
- wirely-0.1.4/tests/wrl/multi_forward.wrl +34 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/option.py +25 -3
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/option.wrl +17 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/process.py +1 -2
- wirely-0.1.4/tests/wrl/std.py +91 -0
- wirely-0.1.4/tests/wrl/std.wrl +34 -0
- wirely-0.1.4/tests/wrl/time.py +447 -0
- wirely-0.1.4/tests/wrl/time.wrl +35 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/two_n.py +14 -14
- wirely-0.1.4/tools/generate-native-types +75 -0
- wirely-0.1.4/tools/run-tests +46 -0
- {wirely-0.1.2 → wirely-0.1.4}/tools/run-tests-dependencies +10 -2
- {wirely-0.1.2 → wirely-0.1.4}/wirely/__init__.py +2 -2
- {wirely-0.1.2 → wirely-0.1.4}/wirely/__main__.py +14 -1
- wirely-0.1.4/wirely/cli/__init__.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/cli/client.py +23 -20
- wirely-0.1.4/wirely/cli/compile_command.py +57 -0
- wirely-0.1.4/wirely/cli/edit.py +13 -0
- wirely-0.1.4/wirely/cli/export_image.py +38 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/cli/graphviz.py +28 -28
- {wirely-0.1.2 → wirely-0.1.4}/wirely/cli/objdump.py +4 -3
- {wirely-0.1.2 → wirely-0.1.4}/wirely/cli/run.py +33 -31
- {wirely-0.1.2 → wirely-0.1.4}/wirely/cli/service.py +8 -7
- wirely-0.1.4/wirely/compiler/__init__.py +166 -0
- wirely-0.1.4/wirely/compiler/analysis.py +438 -0
- wirely-0.1.4/wirely/compiler/ast/__init__.py +100 -0
- wirely-0.1.4/wirely/compiler/ast/base.py +193 -0
- wirely-0.1.4/wirely/compiler/ast/functions.py +97 -0
- wirely-0.1.4/wirely/compiler/ast/library.py +96 -0
- wirely-0.1.4/wirely/compiler/ast/node_types.py +71 -0
- wirely-0.1.4/wirely/compiler/ast/nodes.py +351 -0
- wirely-0.1.4/wirely/compiler/ast/parameter_declarations.py +72 -0
- wirely-0.1.4/wirely/compiler/ast/ports.py +109 -0
- wirely-0.1.4/wirely/compiler/ast/procedures.py +531 -0
- wirely-0.1.4/wirely/compiler/ast/scope.py +262 -0
- wirely-0.1.4/wirely/compiler/ast/specifiers.py +102 -0
- wirely-0.1.4/wirely/compiler/ast/type_declarations.py +256 -0
- wirely-0.1.4/wirely/compiler/ast/values.py +396 -0
- wirely-0.1.4/wirely/compiler/attributes.py +390 -0
- wirely-0.1.4/wirely/compiler/coordinator.py +190 -0
- wirely-0.1.4/wirely/compiler/diagnostics.py +164 -0
- wirely-0.1.4/wirely/compiler/editing.py +1258 -0
- wirely-0.1.4/wirely/compiler/expressions.py +1881 -0
- wirely-0.1.4/wirely/compiler/extensions.py +42 -0
- wirely-0.1.4/wirely/compiler/function_implementations/csv.py +11 -0
- wirely-0.1.4/wirely/compiler/function_implementations/knx.py +27 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/compiler/function_implementations/mqtt.py +15 -9
- wirely-0.1.4/wirely/compiler/function_implementations/path.py +22 -0
- wirely-0.1.4/wirely/compiler/function_implementations/schedule.py +7 -0
- wirely-0.1.4/wirely/compiler/function_implementations/std.py +49 -0
- wirely-0.1.4/wirely/compiler/function_implementations/test.py +70 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/compiler/function_implementations/two_n.py +10 -8
- wirely-0.1.4/wirely/compiler/generated/__init__.py +30 -0
- wirely-0.1.4/wirely/compiler/generated/_bindings.py +143 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/__init__.py +1 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/csv.py +41 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/knx.py +98 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/mqtt.py +71 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/path.py +96 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/schedule.py +45 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/std.py +44 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/test.py +181 -0
- wirely-0.1.4/wirely/compiler/generated/_contracts/two_n.py +69 -0
- wirely-0.1.4/wirely/compiler/graph.py +392 -0
- wirely-0.1.4/wirely/compiler/instance.py +649 -0
- wirely-0.1.4/wirely/compiler/model.py +260 -0
- wirely-0.1.4/wirely/compiler/native_contracts.py +1125 -0
- wirely-0.1.4/wirely/compiler/native_functions.py +246 -0
- wirely-0.1.4/wirely/compiler/native_signatures.py +189 -0
- wirely-0.1.4/wirely/compiler/node_type.py +417 -0
- wirely-0.1.4/wirely/compiler/outline.py +721 -0
- wirely-0.1.4/wirely/compiler/parameters.py +176 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/compiler/parser.py +134 -93
- wirely-0.1.4/wirely/compiler/program.py +615 -0
- wirely-0.1.4/wirely/compiler/shuffle.py +127 -0
- wirely-0.1.4/wirely/compiler/sources.py +188 -0
- wirely-0.1.4/wirely/compiler/stages.py +10 -0
- wirely-0.1.4/wirely/compiler/static_bindings.py +29 -0
- wirely-0.1.4/wirely/compiler/support.py +433 -0
- wirely-0.1.4/wirely/compiler/types.py +249 -0
- wirely-0.1.4/wirely/compiler/value.py +341 -0
- wirely-0.1.4/wirely/compiler/wirely.lark +330 -0
- wirely-0.1.4/wirely/control/__init__.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/control/client.py +17 -11
- {wirely-0.1.2 → wirely-0.1.4}/wirely/control/controller.py +17 -12
- {wirely-0.1.2 → wirely-0.1.4}/wirely/control/framing.py +10 -8
- {wirely-0.1.2 → wirely-0.1.4}/wirely/control/messages.py +10 -9
- {wirely-0.1.2 → wirely-0.1.4}/wirely/control/server.py +43 -29
- wirely-0.1.4/wirely/editor/__init__.py +5 -0
- wirely-0.1.4/wirely/editor/app.py +656 -0
- wirely-0.1.4/wirely/editor/export.py +82 -0
- wirely-0.1.4/wirely/editor/graph_model.py +398 -0
- wirely-0.1.4/wirely/editor/graph_view.py +908 -0
- wirely-0.1.4/wirely/editor/grid.py +20 -0
- wirely-0.1.4/wirely/editor/layout.py +205 -0
- wirely-0.1.4/wirely/editor/palette.py +133 -0
- wirely-0.1.4/wirely/editor/program.py +220 -0
- wirely-0.1.4/wirely/editor/properties.py +114 -0
- wirely-0.1.4/wirely/editor/sync.py +224 -0
- wirely-0.1.4/wirely/editor/text_view.py +318 -0
- wirely-0.1.4/wirely/editor/workspace.py +450 -0
- wirely-0.1.4/wirely/functions/__init__.py +38 -0
- wirely-0.1.4/wirely/functions/schedule_time_of_day.py +33 -0
- wirely-0.1.4/wirely/functions/std_duration.py +100 -0
- wirely-0.1.4/wirely/functions/timer_monotonic_time.py +54 -0
- wirely-0.1.4/wirely/generated/__init__.py +22 -0
- wirely-0.1.4/wirely/generated/_bindings.py +809 -0
- wirely-0.1.4/wirely/generated/_signatures.py +537 -0
- wirely-0.1.4/wirely/generated/csv.py +127 -0
- wirely-0.1.4/wirely/generated/enums.py +57 -0
- wirely-0.1.4/wirely/generated/gpio.py +122 -0
- wirely-0.1.4/wirely/generated/knx.py +482 -0
- wirely-0.1.4/wirely/generated/mqtt.py +372 -0
- wirely-0.1.4/wirely/generated/process.py +118 -0
- wirely-0.1.4/wirely/generated/schedule.py +124 -0
- wirely-0.1.4/wirely/generated/schedule_time_of_day.py +81 -0
- wirely-0.1.4/wirely/generated/std.py +369 -0
- wirely-0.1.4/wirely/generated/std_duration.py +266 -0
- wirely-0.1.4/wirely/generated/structs.py +65 -0
- wirely-0.1.4/wirely/generated/timer.py +127 -0
- wirely-0.1.4/wirely/generated/timer_monotonic_time.py +114 -0
- wirely-0.1.4/wirely/generated/two_n.py +547 -0
- wirely-0.1.4/wirely/knx/__init__.py +0 -0
- wirely-0.1.4/wirely/knx/address.py +34 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/knx/connection_adapter.py +15 -8
- {wirely-0.1.2 → wirely-0.1.4}/wirely/knx/connection_config.py +16 -13
- wirely-0.1.4/wirely/knx/value_types.py +53 -0
- wirely-0.1.4/wirely/lib/abb_jra.wrl +94 -0
- wirely-0.1.4/wirely/lib/csv.wrl +46 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/lib/gpio.wrl +14 -7
- {wirely-0.1.2 → wirely-0.1.4}/wirely/lib/knx.wrl +69 -35
- {wirely-0.1.2 → wirely-0.1.4}/wirely/lib/matter.wrl +1 -1
- wirely-0.1.4/wirely/lib/memory.wrl +80 -0
- wirely-0.1.4/wirely/lib/mqtt.wrl +132 -0
- wirely-0.1.4/wirely/lib/path.wrl +5 -0
- wirely-0.1.4/wirely/lib/process.wrl +20 -0
- wirely-0.1.4/wirely/lib/schedule.wrl +123 -0
- wirely-0.1.4/wirely/lib/std.wrl +245 -0
- wirely-0.1.4/wirely/lib/test.wrl +8 -0
- wirely-0.1.4/wirely/lib/timer.wrl +141 -0
- wirely-0.1.4/wirely/lib/two_n.wrl +196 -0
- wirely-0.1.4/wirely/misc/__init__.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/misc/service.py +5 -3
- {wirely-0.1.2 → wirely-0.1.4}/wirely/misc/state_directory.py +3 -2
- wirely-0.1.4/wirely/native/__init__.py +11 -0
- wirely-0.1.4/wirely/native/csv.py +161 -0
- wirely-0.1.4/wirely/native/gpio.py +97 -0
- wirely-0.1.4/wirely/native/knx.py +359 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/native/mqtt.py +173 -151
- wirely-0.1.4/wirely/native/process.py +63 -0
- wirely-0.1.4/wirely/native/schedule.py +61 -0
- wirely-0.1.4/wirely/native/std.py +160 -0
- wirely-0.1.4/wirely/native/timer.py +45 -0
- wirely-0.1.4/wirely/native/two_n.py +376 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/program/__init__.py +3 -2
- {wirely-0.1.2 → wirely-0.1.4}/wirely/program/container.py +25 -20
- wirely-0.1.4/wirely/program/format.wrl +478 -0
- wirely-0.1.4/wirely/program/generated/__init__.py +1 -0
- wirely-0.1.4/wirely/program/generated/format.py +722 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/program/procedures.py +11 -10
- wirely-0.1.4/wirely/program/program.py +404 -0
- wirely-0.1.4/wirely/program/records.py +52 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/program/validation.py +115 -34
- wirely-0.1.4/wirely/runtime/contexts.py +80 -0
- wirely-0.1.4/wirely/runtime/engine.py +485 -0
- wirely-0.1.4/wirely/runtime/extensions.py +98 -0
- wirely-0.1.4/wirely/runtime/linking.py +243 -0
- wirely-0.1.4/wirely/runtime/native_api.py +393 -0
- wirely-0.1.4/wirely/runtime/native_values.py +140 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/runtime/procedures.py +33 -33
- wirely-0.1.4/wirely/runtime/resources.py +24 -0
- wirely-0.1.4/wirely/runtime/signatures.py +186 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/runtime/time_snapshot.py +2 -2
- wirely-0.1.4/wirely/runtime/wall_clock.py +176 -0
- wirely-0.1.4/wirely/two_n/__init__.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/two_n/cert.py +10 -5
- {wirely-0.1.2 → wirely-0.1.4}/wirely/two_n/client.py +43 -31
- {wirely-0.1.2 → wirely-0.1.4}/wirely/two_n/fake_server.py +37 -33
- {wirely-0.1.2 → wirely-0.1.4}/wirely/two_n/grab_images.py +3 -2
- wirely-0.1.4/wirely/types/__init__.py +870 -0
- wirely-0.1.4/wirely/types/integers.py +125 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/types/option.py +5 -2
- {wirely-0.1.2 → wirely-0.1.4}/wirely/types/serialization.py +33 -50
- wirely-0.1.4/wirely/types/time.py +316 -0
- wirely-0.1.4/wirely/types/value_types.py +265 -0
- wirely-0.1.4/wirely/util.py +40 -0
- {wirely-0.1.2 → wirely-0.1.4/wirely.egg-info}/PKG-INFO +55 -9
- wirely-0.1.4/wirely.egg-info/SOURCES.txt +409 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely.egg-info/requires.txt +5 -1
- wirely-0.1.2/doc/language.md +0 -569
- wirely-0.1.2/doc/native-python.md +0 -326
- wirely-0.1.2/test/compiler/assertions.wrl +0 -37
- wirely-0.1.2/test/compiler/attributes.wrl +0 -97
- wirely-0.1.2/test/compiler/durations.wrl +0 -38
- wirely-0.1.2/test/compiler/time_of_day.wrl +0 -35
- wirely-0.1.2/test/negative/assertions.wrl +0 -110
- wirely-0.1.2/test/negative/attributes.wrl +0 -211
- wirely-0.1.2/test/negative/connections.wrl +0 -119
- wirely-0.1.2/test/negative/conversions.wrl +0 -43
- wirely-0.1.2/test/negative/durations.wrl +0 -45
- wirely-0.1.2/test/negative/enum_declarations.wrl +0 -235
- wirely-0.1.2/test/negative/native_functions.wrl +0 -97
- wirely-0.1.2/test/negative/native_initializers.wrl +0 -74
- wirely-0.1.2/test/negative/native_procedures.wrl +0 -23
- wirely-0.1.2/test/negative/node_declarations.wrl +0 -47
- wirely-0.1.2/test/negative/node_types.wrl +0 -34
- wirely-0.1.2/test/negative/optional_forwarding.wrl +0 -121
- wirely-0.1.2/test/negative/path.wrl +0 -46
- wirely-0.1.2/test/negative/prepared_configuration.wrl +0 -61
- wirely-0.1.2/test/negative/procedure_bindings.wrl +0 -112
- wirely-0.1.2/test/negative/resource_declarations.wrl +0 -102
- wirely-0.1.2/test/negative/string_literals.wrl +0 -131
- wirely-0.1.2/test/negative/time_of_day.wrl +0 -25
- wirely-0.1.2/test/negative/type_comparisons.wrl +0 -163
- wirely-0.1.2/test/unit/attribute_editing.py +0 -151
- wirely-0.1.2/test/unit/attribute_editing.wrl +0 -1
- wirely-0.1.2/test/unit/container.wrl +0 -1
- wirely-0.1.2/test/unit/control.wrl +0 -4
- wirely-0.1.2/test/unit/instructions.wrl +0 -1
- wirely-0.1.2/test/unit/library_configuration.py +0 -216
- wirely-0.1.2/test/unit/library_configuration.wrl +0 -1
- wirely-0.1.2/test/unit/native_interface.py +0 -778
- wirely-0.1.2/test/unit/native_interface.wrl +0 -1
- wirely-0.1.2/test/unit/native_values.py +0 -193
- wirely-0.1.2/test/unit/negative_cases.wrl +0 -1
- wirely-0.1.2/test/unit/resources.py +0 -219
- wirely-0.1.2/test/unit/resources.wrl +0 -1
- wirely-0.1.2/test/unit/runtime_program.py +0 -129
- wirely-0.1.2/test/unit/runtime_program.wrl +0 -20
- wirely-0.1.2/test/unit/serialization.wrl +0 -1
- wirely-0.1.2/test/unit/shuffle.py +0 -110
- wirely-0.1.2/test/unit/shuffle.wrl +0 -1
- wirely-0.1.2/test/unit/state_connections.wrl +0 -1
- wirely-0.1.2/test/unit/test_resources.wrl +0 -1
- wirely-0.1.2/test/unit/types.py +0 -390
- wirely-0.1.2/test/unit/types.wrl +0 -1
- wirely-0.1.2/test/wrl/std.py +0 -51
- wirely-0.1.2/test/wrl/std.wrl +0 -10
- wirely-0.1.2/test/wrl/time.py +0 -344
- wirely-0.1.2/test/wrl/time.wrl +0 -24
- wirely-0.1.2/tools/run-tests +0 -78
- wirely-0.1.2/wirely/cli/compile_command.py +0 -31
- wirely-0.1.2/wirely/compiler/__init__.py +0 -136
- wirely-0.1.2/wirely/compiler/ast.py +0 -1960
- wirely-0.1.2/wirely/compiler/attribute_editing.py +0 -305
- wirely-0.1.2/wirely/compiler/attributes.py +0 -209
- wirely-0.1.2/wirely/compiler/block.py +0 -563
- wirely-0.1.2/wirely/compiler/block_type.py +0 -347
- wirely-0.1.2/wirely/compiler/blocks.lark +0 -257
- wirely-0.1.2/wirely/compiler/diagnostics.py +0 -59
- wirely-0.1.2/wirely/compiler/expressions.py +0 -1094
- wirely-0.1.2/wirely/compiler/function_implementations/csv.py +0 -5
- wirely-0.1.2/wirely/compiler/function_implementations/knx.py +0 -32
- wirely-0.1.2/wirely/compiler/function_implementations/path.py +0 -19
- wirely-0.1.2/wirely/compiler/function_implementations/test.py +0 -66
- wirely-0.1.2/wirely/compiler/function_implementations/time.py +0 -2
- wirely-0.1.2/wirely/compiler/model.py +0 -107
- wirely-0.1.2/wirely/compiler/native_functions.py +0 -184
- wirely-0.1.2/wirely/compiler/node.py +0 -167
- wirely-0.1.2/wirely/compiler/parameters.py +0 -102
- wirely-0.1.2/wirely/compiler/program.py +0 -378
- wirely-0.1.2/wirely/compiler/shuffle.py +0 -73
- wirely-0.1.2/wirely/compiler/static_bindings.py +0 -24
- wirely-0.1.2/wirely/compiler/support.py +0 -283
- wirely-0.1.2/wirely/compiler/types.py +0 -246
- wirely-0.1.2/wirely/compiler/value.py +0 -276
- wirely-0.1.2/wirely/functions/__init__.py +0 -80
- wirely-0.1.2/wirely/functions/duration.py +0 -112
- wirely-0.1.2/wirely/functions/monotonic_time.py +0 -65
- wirely-0.1.2/wirely/functions/test_library.py +0 -23
- wirely-0.1.2/wirely/functions/time_of_day.py +0 -34
- wirely-0.1.2/wirely/lib/abb_jra.wrl +0 -71
- wirely-0.1.2/wirely/lib/csv.wrl +0 -42
- wirely-0.1.2/wirely/lib/memory.wrl +0 -47
- wirely-0.1.2/wirely/lib/mqtt.wrl +0 -108
- wirely-0.1.2/wirely/lib/path.wrl +0 -5
- wirely-0.1.2/wirely/lib/process.wrl +0 -13
- wirely-0.1.2/wirely/lib/std.wrl +0 -199
- wirely-0.1.2/wirely/lib/test.wrl +0 -8
- wirely-0.1.2/wirely/lib/time.wrl +0 -122
- wirely-0.1.2/wirely/lib/two_n.wrl +0 -142
- wirely-0.1.2/wirely/native/__init__.py +0 -45
- wirely-0.1.2/wirely/native/abb_jra.py +0 -58
- wirely-0.1.2/wirely/native/csv.py +0 -152
- wirely-0.1.2/wirely/native/gpio.py +0 -74
- wirely-0.1.2/wirely/native/knx.py +0 -314
- wirely-0.1.2/wirely/native/memory.py +0 -58
- wirely-0.1.2/wirely/native/process.py +0 -53
- wirely-0.1.2/wirely/native/std.py +0 -221
- wirely-0.1.2/wirely/native/test_library.py +0 -13
- wirely-0.1.2/wirely/native/time.py +0 -253
- wirely-0.1.2/wirely/native/two_n.py +0 -400
- wirely-0.1.2/wirely/program/program.py +0 -280
- wirely-0.1.2/wirely/runtime/contexts.py +0 -213
- wirely-0.1.2/wirely/runtime/engine.py +0 -317
- wirely-0.1.2/wirely/runtime/linking.py +0 -81
- wirely-0.1.2/wirely/test.py +0 -646
- wirely-0.1.2/wirely/types/__init__.py +0 -682
- wirely-0.1.2/wirely/types/struct.py +0 -35
- wirely-0.1.2/wirely/types/time.py +0 -237
- wirely-0.1.2/wirely/types/value_types.py +0 -133
- wirely-0.1.2/wirely/util.py +0 -111
- wirely-0.1.2/wirely.egg-info/SOURCES.txt +0 -263
- {wirely-0.1.2 → wirely-0.1.4}/LICENSE +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/doc/control-protocol.md +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/examples/flipflop.wrl +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/examples/gpio.wrl +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/examples/knx.wrl +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/setup.cfg +0 -0
- {wirely-0.1.2/wirely/cli → wirely-0.1.4/tests}/__init__.py +0 -0
- {wirely-0.1.2/test/wrl → wirely-0.1.4/tests/compiler}/simple.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/compiler/structs.wrl +0 -0
- {wirely-0.1.2/wirely/control → wirely-0.1.4/tests/infra}/__init__.py +0 -0
- {wirely-0.1.2/wirely/knx → wirely-0.1.4/tests/infra/native_extension}/__init__.py +0 -0
- {wirely-0.1.2/wirely/misc → wirely-0.1.4/tests/infra/native_extension/compiler}/__init__.py +0 -0
- {wirely-0.1.2/wirely/two_n → wirely-0.1.4/tests/infra/native_extension/functions}/__init__.py +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/negative/unit_literals.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/unit/native_values.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/abb.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/and.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/csv.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/flipflop.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/gpio.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/mqtt.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/process.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/two_n.wrl +0 -0
- {wirely-0.1.2/test → wirely-0.1.4/tests}/wrl/username_password.txt +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/tools/build-pex +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/tools/git_write_wd_tree.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/tools/setup-venv +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/tools/test-gitlab-ci +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/tools/wirely +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/compiler/function_implementations/__init__.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/program/limits.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/runtime/__init__.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely/types/unit.py +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely.egg-info/dependency_links.txt +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely.egg-info/entry_points.txt +0 -0
- {wirely-0.1.2 → wirely-0.1.4}/wirely.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,96 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.4 - 2026-10-24
|
|
4
|
+
|
|
5
|
+
### Breaking changes and migration
|
|
6
|
+
|
|
7
|
+
#### Optional parameters
|
|
8
|
+
|
|
9
|
+
Replace `parameter_option(x)` with `optional(x)`.
|
|
10
|
+
|
|
11
|
+
#### Type names
|
|
12
|
+
|
|
13
|
+
Replace `String` with `string` and `ValueType` with `type`.
|
|
14
|
+
Replace `Duration`, `TimeOfDay`, and `MonotonicTime` with `Std.Duration`,
|
|
15
|
+
`Schedule.TimeOfDay`, and `Timer.MonotonicTime`, respectively, including
|
|
16
|
+
in qualified function calls.
|
|
17
|
+
|
|
18
|
+
#### Schedule.IsInDailyInterval
|
|
19
|
+
|
|
20
|
+
The output is `Option[boolean]`. Handle `None` when wall time is unknown.
|
|
21
|
+
|
|
22
|
+
#### Bindings
|
|
23
|
+
|
|
24
|
+
Replace `temporary name: T;` with `binding name: value T;`, and
|
|
25
|
+
`resource name: R;` with `binding name: resource R;`. The connection kind is
|
|
26
|
+
required. The old declaration forms are no longer accepted.
|
|
27
|
+
|
|
28
|
+
#### Enums
|
|
29
|
+
|
|
30
|
+
Declare enums as `open` or `closed`. Open enums keep an explicit underlying
|
|
31
|
+
type and member values and accept unnamed values of that type. Closed enums
|
|
32
|
+
omit both and number their members from zero in declaration order:
|
|
33
|
+
|
|
34
|
+
```wirely
|
|
35
|
+
open enum type Protocol: uint8 {
|
|
36
|
+
TCP = 1,
|
|
37
|
+
UDP = 2,
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
closed enum type State {
|
|
41
|
+
Idle,
|
|
42
|
+
Running,
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Replace `enum type` with `open enum type` to keep existing numbering.
|
|
47
|
+
|
|
48
|
+
#### Std.DelayOneStep
|
|
49
|
+
|
|
50
|
+
Replace `Std.DelayOneStep` with state and read its previous value with
|
|
51
|
+
`.old`:
|
|
52
|
+
|
|
53
|
+
```wirely
|
|
54
|
+
state delayed: boolean = false;
|
|
55
|
+
connect source -> delayed;
|
|
56
|
+
connect delayed.old -> target;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 0.1.3 - 2026-10-12
|
|
60
|
+
|
|
61
|
+
### Breaking changes and migration
|
|
62
|
+
|
|
63
|
+
#### Schedule and Timer namespaces
|
|
64
|
+
|
|
65
|
+
Replace `Time` with `Schedule` for `IsInDailyInterval`, `TriggerAt`,
|
|
66
|
+
`TimeOfDayMinute`, and `IsValidDailyInterval`, and with `Timer` for
|
|
67
|
+
`DebounceStable` and `MonotonicTimeReached`.
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
|
|
71
|
+
- `Timer.MonotonicTimestamp` emits the step's monotonic time while an input
|
|
72
|
+
event is present.
|
|
73
|
+
- Bitwise operators `&`, `|`, `^`, `!`, `<<`, and `>>` for integers.
|
|
74
|
+
- Procedure ports can be declared with a type and wired with `connect`.
|
|
75
|
+
Refer to a port as `procedure.port`, also in reference ports of other
|
|
76
|
+
procedures:
|
|
77
|
+
|
|
78
|
+
```wirely
|
|
79
|
+
procedure invert
|
|
80
|
+
depends on value: value boolean
|
|
81
|
+
produces inverted: value boolean
|
|
82
|
+
{
|
|
83
|
+
inverted = !value;
|
|
84
|
+
}
|
|
85
|
+
connect default input -> invert.value;
|
|
86
|
+
connect invert.inverted -> default output;
|
|
87
|
+
```
|
|
88
|
+
- Connections can target temporaries and state; state takes its value from
|
|
89
|
+
a procedure output port. Reference output ports can target child inputs.
|
|
90
|
+
- `wirely edit` edits programs as source text and as diagrams, kept in
|
|
91
|
+
sync. `wirely export-image` draws a diagram as a PDF or PNG file. Install
|
|
92
|
+
the `editor` extra to use them.
|
|
93
|
+
|
|
3
94
|
## 0.1.2 - 2026-10-10
|
|
4
95
|
|
|
5
96
|
### Breaking changes and migration
|
|
@@ -171,7 +262,7 @@ Replace integration-specific connector kinds in custom node declarations:
|
|
|
171
262
|
| `two_n_device` | `resource TwoN.Device` |
|
|
172
263
|
|
|
173
264
|
Custom libraries can declare their own opaque resources with
|
|
174
|
-
`resource type Name;`. See [resource connectors](doc/language.md#opaque-resource-
|
|
265
|
+
`resource type Name;`. See [resource connectors](doc/language.md#opaque-resource-ports).
|
|
175
266
|
|
|
176
267
|
#### Runtime types
|
|
177
268
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
include CHANGELOG.md
|
|
2
2
|
recursive-include doc *.md
|
|
3
3
|
recursive-include examples *.wrl
|
|
4
|
-
recursive-include
|
|
5
|
-
include
|
|
4
|
+
recursive-include tests *.py *.wrl
|
|
5
|
+
include tests/wrl/username_password.txt
|
|
6
6
|
include tools/build-pex
|
|
7
|
+
include tools/generate-native-types
|
|
7
8
|
include tools/git_write_wd_tree.py
|
|
8
9
|
include tools/run-tests
|
|
9
10
|
include tools/run-tests-dependencies
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wirely
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Node-based language and runtime for low-level home automation
|
|
5
5
|
Author: Steffen Kieß
|
|
6
6
|
License: MIT
|
|
@@ -13,7 +13,7 @@ Requires-Dist: lark>=1.1.5
|
|
|
13
13
|
Requires-Dist: sdnotify>=0.3.0
|
|
14
14
|
Requires-Dist: cbor2>=5.4.5
|
|
15
15
|
Provides-Extra: knx
|
|
16
|
-
Requires-Dist: xknx<4,>=3.
|
|
16
|
+
Requires-Dist: xknx<4,>=3.4; extra == "knx"
|
|
17
17
|
Provides-Extra: mqtt
|
|
18
18
|
Requires-Dist: aiomqtt<3,>=2.3; extra == "mqtt"
|
|
19
19
|
Provides-Extra: two-n
|
|
@@ -23,10 +23,13 @@ Provides-Extra: graphviz
|
|
|
23
23
|
Requires-Dist: graphviz>=0.20.1; extra == "graphviz"
|
|
24
24
|
Provides-Extra: gpio
|
|
25
25
|
Requires-Dist: gpiod<3,>=2.1; extra == "gpio"
|
|
26
|
+
Provides-Extra: editor
|
|
27
|
+
Requires-Dist: PySide6-Essentials>=6.8; extra == "editor"
|
|
26
28
|
Provides-Extra: all
|
|
27
29
|
Requires-Dist: wirely[gpio,graphviz,knx,mqtt,two-n]; extra == "all"
|
|
28
30
|
Provides-Extra: test
|
|
29
31
|
Requires-Dist: pyOpenSSL>=23.0.0; extra == "test"
|
|
32
|
+
Requires-Dist: mypy>=2.0; extra == "test"
|
|
30
33
|
Provides-Extra: pex
|
|
31
34
|
Requires-Dist: pex; extra == "pex"
|
|
32
35
|
Provides-Extra: dev
|
|
@@ -69,6 +72,10 @@ python3 -m wirely compile program.wrl
|
|
|
69
72
|
|
|
70
73
|
Use `wirely compile --dump-program program.wrl` to print the compiled
|
|
71
74
|
runtime program, including its variables, configuration, and procedures.
|
|
75
|
+
Add `--timings` to print the duration of each compiler stage.
|
|
76
|
+
Set `WIRELY_COMPILER_CACHE_LARK=1` to keep the parser tables in
|
|
77
|
+
`$XDG_CACHE_HOME/wirely/` (by default `~/.cache/wirely/`), which saves
|
|
78
|
+
about 0.7 s on each start.
|
|
72
79
|
|
|
73
80
|
Install optional integrations as needed:
|
|
74
81
|
|
|
@@ -79,8 +86,38 @@ python3 -m pip install 'wirely[two-n]' # 2N devices
|
|
|
79
86
|
python3 -m pip install 'wirely[graphviz]' # show-graph
|
|
80
87
|
python3 -m pip install 'wirely[gpio]' # GPIO
|
|
81
88
|
python3 -m pip install 'wirely[all]' # all optional integrations
|
|
89
|
+
python3 -m pip install 'wirely[editor]' # graphical editor
|
|
82
90
|
```
|
|
83
91
|
|
|
92
|
+
Set `WIRELY_VERBOSE=1` to print node creation, connection setup, and each
|
|
93
|
+
value sent or received by the KNX, MQTT, 2N, CSV, and Process nodes.
|
|
94
|
+
|
|
95
|
+
`wirely edit program.wrl` opens a program in a graphical editor with tabs
|
|
96
|
+
for its source files and diagrams. Edits in either view update the other.
|
|
97
|
+
Right-click a tab to split the view, move it to another pane, or detach it
|
|
98
|
+
into a window. You can also drag tabs between panes, onto pane edges to
|
|
99
|
+
split, or outside the editor to detach. Closing a detached window returns
|
|
100
|
+
its tabs to the main window. Layouts last for the current session.
|
|
101
|
+
A diagram is read-only while its source has syntax errors. In a diagram:
|
|
102
|
+
|
|
103
|
+
- Drag a node to store its position in the source; right-click it and choose
|
|
104
|
+
Reset to Automatic Position to remove it again. Use View → Snap to Grid
|
|
105
|
+
to toggle snapping for all diagrams. A selected group snaps its movement
|
|
106
|
+
while keeping its relative positions.
|
|
107
|
+
- Drag from a port to another port to connect them. Drag a connection away
|
|
108
|
+
from an input to move or remove it.
|
|
109
|
+
- Press Delete to remove the selection and F2 to rename it.
|
|
110
|
+
- Right-click the background to add nodes and declarations.
|
|
111
|
+
- Double-click a node to open the diagram of its node type.
|
|
112
|
+
- Press Ctrl+E to show the source of the selection, and Ctrl+Shift+E in the
|
|
113
|
+
source to show the element at the cursor in its diagram.
|
|
114
|
+
|
|
115
|
+
`wirely export-image program.wrl -o diagram.pdf` draws the program diagram as
|
|
116
|
+
the editor shows it, as a PDF or PNG file. Use `--scope Name` for the diagram
|
|
117
|
+
of a node type and `--scale` for the PNG resolution. Diagrams use the DejaVu
|
|
118
|
+
Sans font, or a fallback font if it is not installed. See
|
|
119
|
+
[diagram layout](doc/diagram-layout.md) for how layouts are stored.
|
|
120
|
+
|
|
84
121
|
The `test` extra adds dependencies used only by the test suite. Install
|
|
85
122
|
`wirely[all,test]` to include both integrations and test dependencies.
|
|
86
123
|
|
|
@@ -92,7 +129,7 @@ checkout launchers:
|
|
|
92
129
|
|
|
93
130
|
```
|
|
94
131
|
tools/setup-venv
|
|
95
|
-
tools/wirely compile
|
|
132
|
+
tools/wirely compile tests/compiler/simple.wrl
|
|
96
133
|
tools/run-tests
|
|
97
134
|
```
|
|
98
135
|
|
|
@@ -105,16 +142,19 @@ Pass test names to run a selection, and add `--timings` to list durations
|
|
|
105
142
|
slowest first:
|
|
106
143
|
|
|
107
144
|
```
|
|
108
|
-
tools/run-tests --timings unit/types
|
|
145
|
+
tools/run-tests --timings unit/types wrl/equality
|
|
109
146
|
```
|
|
110
147
|
|
|
148
|
+
Add `--processes 4` to run the tests in four worker processes; see the
|
|
149
|
+
[test guide](doc/tests.md) for the options.
|
|
150
|
+
|
|
111
151
|
To check that compilation does not depend on declaration order, set
|
|
112
152
|
`WIRELY_COMPILER_SHUFFLE_SEED` to an integer. The compiler then shuffles
|
|
113
|
-
declarations, node parameters,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
tests may report different diagnostics in this mode.
|
|
153
|
+
declarations, node parameters, procedure ports, `uses` bindings, and open
|
|
154
|
+
enum members with that seed; connections keep their relative order. Also set `WIRELY_COMPILER_SHUFFLE_LAYOUT=1` to shuffle
|
|
155
|
+
fields of structs and members of closed enums that are not native, which
|
|
156
|
+
changes the runtime representation.
|
|
157
|
+
Negative tests may report different diagnostics in this mode.
|
|
118
158
|
|
|
119
159
|
```
|
|
120
160
|
WIRELY_COMPILER_SHUFFLE_SEED=1 tools/run-tests
|
|
@@ -138,3 +178,9 @@ compatible patch of the oldest supported CPython minor; `max` selects the
|
|
|
138
178
|
newest compatible stable CPython available through the installed uv.
|
|
139
179
|
uv can download missing interpreters. `tools/run-tests --python PATH` runs
|
|
140
180
|
tests using a specified Python executable.
|
|
181
|
+
|
|
182
|
+
Test names, `--timings`, and `--keep-going` work as for `tools/run-tests`:
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
tools/run-tests-dependencies --versions min --python min misc/type_check
|
|
186
|
+
```
|
|
@@ -33,6 +33,10 @@ python3 -m wirely compile program.wrl
|
|
|
33
33
|
|
|
34
34
|
Use `wirely compile --dump-program program.wrl` to print the compiled
|
|
35
35
|
runtime program, including its variables, configuration, and procedures.
|
|
36
|
+
Add `--timings` to print the duration of each compiler stage.
|
|
37
|
+
Set `WIRELY_COMPILER_CACHE_LARK=1` to keep the parser tables in
|
|
38
|
+
`$XDG_CACHE_HOME/wirely/` (by default `~/.cache/wirely/`), which saves
|
|
39
|
+
about 0.7 s on each start.
|
|
36
40
|
|
|
37
41
|
Install optional integrations as needed:
|
|
38
42
|
|
|
@@ -43,8 +47,38 @@ python3 -m pip install 'wirely[two-n]' # 2N devices
|
|
|
43
47
|
python3 -m pip install 'wirely[graphviz]' # show-graph
|
|
44
48
|
python3 -m pip install 'wirely[gpio]' # GPIO
|
|
45
49
|
python3 -m pip install 'wirely[all]' # all optional integrations
|
|
50
|
+
python3 -m pip install 'wirely[editor]' # graphical editor
|
|
46
51
|
```
|
|
47
52
|
|
|
53
|
+
Set `WIRELY_VERBOSE=1` to print node creation, connection setup, and each
|
|
54
|
+
value sent or received by the KNX, MQTT, 2N, CSV, and Process nodes.
|
|
55
|
+
|
|
56
|
+
`wirely edit program.wrl` opens a program in a graphical editor with tabs
|
|
57
|
+
for its source files and diagrams. Edits in either view update the other.
|
|
58
|
+
Right-click a tab to split the view, move it to another pane, or detach it
|
|
59
|
+
into a window. You can also drag tabs between panes, onto pane edges to
|
|
60
|
+
split, or outside the editor to detach. Closing a detached window returns
|
|
61
|
+
its tabs to the main window. Layouts last for the current session.
|
|
62
|
+
A diagram is read-only while its source has syntax errors. In a diagram:
|
|
63
|
+
|
|
64
|
+
- Drag a node to store its position in the source; right-click it and choose
|
|
65
|
+
Reset to Automatic Position to remove it again. Use View → Snap to Grid
|
|
66
|
+
to toggle snapping for all diagrams. A selected group snaps its movement
|
|
67
|
+
while keeping its relative positions.
|
|
68
|
+
- Drag from a port to another port to connect them. Drag a connection away
|
|
69
|
+
from an input to move or remove it.
|
|
70
|
+
- Press Delete to remove the selection and F2 to rename it.
|
|
71
|
+
- Right-click the background to add nodes and declarations.
|
|
72
|
+
- Double-click a node to open the diagram of its node type.
|
|
73
|
+
- Press Ctrl+E to show the source of the selection, and Ctrl+Shift+E in the
|
|
74
|
+
source to show the element at the cursor in its diagram.
|
|
75
|
+
|
|
76
|
+
`wirely export-image program.wrl -o diagram.pdf` draws the program diagram as
|
|
77
|
+
the editor shows it, as a PDF or PNG file. Use `--scope Name` for the diagram
|
|
78
|
+
of a node type and `--scale` for the PNG resolution. Diagrams use the DejaVu
|
|
79
|
+
Sans font, or a fallback font if it is not installed. See
|
|
80
|
+
[diagram layout](doc/diagram-layout.md) for how layouts are stored.
|
|
81
|
+
|
|
48
82
|
The `test` extra adds dependencies used only by the test suite. Install
|
|
49
83
|
`wirely[all,test]` to include both integrations and test dependencies.
|
|
50
84
|
|
|
@@ -56,7 +90,7 @@ checkout launchers:
|
|
|
56
90
|
|
|
57
91
|
```
|
|
58
92
|
tools/setup-venv
|
|
59
|
-
tools/wirely compile
|
|
93
|
+
tools/wirely compile tests/compiler/simple.wrl
|
|
60
94
|
tools/run-tests
|
|
61
95
|
```
|
|
62
96
|
|
|
@@ -69,16 +103,19 @@ Pass test names to run a selection, and add `--timings` to list durations
|
|
|
69
103
|
slowest first:
|
|
70
104
|
|
|
71
105
|
```
|
|
72
|
-
tools/run-tests --timings unit/types
|
|
106
|
+
tools/run-tests --timings unit/types wrl/equality
|
|
73
107
|
```
|
|
74
108
|
|
|
109
|
+
Add `--processes 4` to run the tests in four worker processes; see the
|
|
110
|
+
[test guide](doc/tests.md) for the options.
|
|
111
|
+
|
|
75
112
|
To check that compilation does not depend on declaration order, set
|
|
76
113
|
`WIRELY_COMPILER_SHUFFLE_SEED` to an integer. The compiler then shuffles
|
|
77
|
-
declarations, node parameters,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
tests may report different diagnostics in this mode.
|
|
114
|
+
declarations, node parameters, procedure ports, `uses` bindings, and open
|
|
115
|
+
enum members with that seed; connections keep their relative order. Also set `WIRELY_COMPILER_SHUFFLE_LAYOUT=1` to shuffle
|
|
116
|
+
fields of structs and members of closed enums that are not native, which
|
|
117
|
+
changes the runtime representation.
|
|
118
|
+
Negative tests may report different diagnostics in this mode.
|
|
82
119
|
|
|
83
120
|
```
|
|
84
121
|
WIRELY_COMPILER_SHUFFLE_SEED=1 tools/run-tests
|
|
@@ -102,3 +139,9 @@ compatible patch of the oldest supported CPython minor; `max` selects the
|
|
|
102
139
|
newest compatible stable CPython available through the installed uv.
|
|
103
140
|
uv can download missing interpreters. `tools/run-tests --python PATH` runs
|
|
104
141
|
tests using a specified Python executable.
|
|
142
|
+
|
|
143
|
+
Test names, `--timings`, and `--keep-going` work as for `tools/run-tests`:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
tools/run-tests-dependencies --versions min --python min misc/type_check
|
|
147
|
+
```
|
|
@@ -4,14 +4,18 @@ Wirely programs are graphs of typed nodes written in `.wrl` files. Start with
|
|
|
4
4
|
the [language guide](language.md) to learn how to declare nodes and connect
|
|
5
5
|
them. Then use the [library reference](libraries.md) to find the nodes supplied
|
|
6
6
|
with Wirely. The [value type reference](value-types.md) describes the types
|
|
7
|
-
used by parameters,
|
|
7
|
+
used by parameters, ports, and state.
|
|
8
8
|
|
|
9
9
|
The [binary program format proposal](bytecode-format.md) describes program
|
|
10
10
|
tables, value encodings, and optional debugging information.
|
|
11
11
|
|
|
12
12
|
For `.wrl` formatting and naming, follow the
|
|
13
|
-
[Wirely style guide](wirely-style.md).
|
|
13
|
+
[Wirely style guide](wirely-style.md). The [diagram layout](diagram-layout.md)
|
|
14
|
+
document defines how diagrams of programs are laid out and stored.
|
|
14
15
|
|
|
15
16
|
To implement nodes and procedures in Python, use the
|
|
16
17
|
[native Python implementation guide](native-python.md). For Python
|
|
17
18
|
contributions, follow the [Python style guide](python-style.md).
|
|
19
|
+
|
|
20
|
+
For compiler development, read the [compiler stages guide](compiler-stages.md).
|
|
21
|
+
For test categories, execution, and authoring, read the [test guide](tests.md).
|