wirely 0.1.3__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.
Files changed (500) hide show
  1. {wirely-0.1.3 → wirely-0.1.4}/CHANGELOG.md +56 -0
  2. {wirely-0.1.3 → wirely-0.1.4}/MANIFEST.in +3 -2
  3. {wirely-0.1.3/wirely.egg-info → wirely-0.1.4}/PKG-INFO +24 -7
  4. {wirely-0.1.3 → wirely-0.1.4}/README.md +21 -5
  5. {wirely-0.1.3 → wirely-0.1.4}/doc/bytecode-format.md +420 -210
  6. {wirely-0.1.3 → wirely-0.1.4}/doc/compiler-stages.md +43 -15
  7. {wirely-0.1.3 → wirely-0.1.4}/doc/diagram-layout.md +3 -3
  8. {wirely-0.1.3 → wirely-0.1.4}/doc/language.md +272 -82
  9. {wirely-0.1.3 → wirely-0.1.4}/doc/libraries.md +66 -55
  10. wirely-0.1.4/doc/native-python.md +544 -0
  11. {wirely-0.1.3 → wirely-0.1.4}/doc/python-style.md +2 -0
  12. wirely-0.1.4/doc/tests.md +118 -0
  13. {wirely-0.1.3 → wirely-0.1.4}/doc/value-types.md +112 -78
  14. {wirely-0.1.3 → wirely-0.1.4}/doc/wirely-style.md +5 -5
  15. {wirely-0.1.3 → wirely-0.1.4}/examples/test.wrl +13 -17
  16. {wirely-0.1.3 → wirely-0.1.4}/pyproject.toml +19 -4
  17. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/arithmetic.wrl +3 -3
  18. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/assertions.wrl +3 -3
  19. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/attributes.wrl +5 -5
  20. wirely-0.1.4/tests/compiler/bindings.wrl +42 -0
  21. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/bitwise.wrl +15 -1
  22. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/blocks.wrl +2 -2
  23. wirely-0.1.4/tests/compiler/changed.wrl +42 -0
  24. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/constant_expressions.wrl +17 -17
  25. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/constants.wrl +12 -12
  26. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/conversions.wrl +6 -3
  27. wirely-0.1.4/tests/compiler/durations.wrl +42 -0
  28. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/equality.wrl +6 -6
  29. wirely-0.1.4/tests/compiler/events.wrl +152 -0
  30. wirely-0.1.4/tests/compiler/knx.wrl +31 -0
  31. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/length.wrl +3 -3
  32. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/library_settings.wrl +9 -9
  33. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/literals.wrl +10 -2
  34. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/multi_procedures.wrl +1 -1
  35. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/namespaces.wrl +23 -0
  36. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/native_functions.wrl +2 -2
  37. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/options.wrl +2 -2
  38. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/ordering.wrl +2 -2
  39. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/parameters.wrl +38 -38
  40. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/path.wrl +3 -3
  41. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/prepared_configuration.wrl +10 -13
  42. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/runtime_limits.wrl +5 -5
  43. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/static_sources.wrl +2 -2
  44. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/syntax.wrl +12 -4
  45. wirely-0.1.4/tests/compiler/time_of_day.wrl +40 -0
  46. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/types.wrl +66 -25
  47. wirely-0.1.4/tests/compiler/warnings.wrl +200 -0
  48. wirely-0.1.4/tests/compiler/warnings_allowed.wrl +11 -0
  49. wirely-0.1.4/tests/infra/native_extension/compiler/generated/__init__.py +11 -0
  50. wirely-0.1.4/tests/infra/native_extension/compiler/generated/_bindings.py +10 -0
  51. wirely-0.1.4/tests/infra/native_extension/compiler/generated/_contracts/__init__.py +1 -0
  52. wirely-0.1.4/tests/infra/native_extension/functions/test_library.py +18 -0
  53. wirely-0.1.4/tests/infra/native_extension/generated/__init__.py +22 -0
  54. wirely-0.1.4/tests/infra/native_extension/generated/_bindings.py +55 -0
  55. wirely-0.1.4/tests/infra/native_extension/generated/_signatures.py +28 -0
  56. wirely-0.1.4/tests/infra/native_extension/generated/enums.py +12 -0
  57. wirely-0.1.4/tests/infra/native_extension/generated/structs.py +21 -0
  58. wirely-0.1.4/tests/infra/native_extension/generated/test_library.py +108 -0
  59. wirely-0.1.4/tests/infra/native_extension/library.wrl +12 -0
  60. wirely-0.1.4/tests/infra/native_extension/native/__init__.py +0 -0
  61. wirely-0.1.4/tests/infra/native_extension/native/test_library.py +9 -0
  62. wirely-0.1.4/tests/infra/runner/__init__.py +1 -0
  63. wirely-0.1.4/tests/infra/runner/__main__.py +83 -0
  64. wirely-0.1.4/tests/infra/runner/diagnostics.py +170 -0
  65. wirely-0.1.4/tests/infra/runner/execution.py +195 -0
  66. wirely-0.1.4/tests/infra/runner/parallel.py +222 -0
  67. wirely-0.1.4/tests/infra/runner/registry.py +181 -0
  68. wirely-0.1.4/tests/infra/runner/services.py +242 -0
  69. wirely-0.1.4/tests/infra/support.py +134 -0
  70. wirely-0.1.4/tests/misc/type_check.py +9 -0
  71. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/arithmetic.wrl +19 -19
  72. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/assertions.wrl +16 -16
  73. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/attributes.wrl +90 -63
  74. wirely-0.1.4/tests/negative/bindings.wrl +105 -0
  75. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/bitwise.wrl +16 -16
  76. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/blocks.wrl +1 -1
  77. wirely-0.1.4/tests/negative/changed.wrl +95 -0
  78. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/connections.wrl +28 -28
  79. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/constant_expressions.wrl +15 -15
  80. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/constants.wrl +36 -36
  81. wirely-0.1.4/tests/negative/conversions.wrl +57 -0
  82. wirely-0.1.4/tests/negative/durations.wrl +45 -0
  83. wirely-0.1.4/tests/negative/enum_declarations.wrl +285 -0
  84. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/enum_literals.wrl +7 -7
  85. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/integer_literals.wrl +18 -0
  86. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/length.wrl +11 -11
  87. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/library_settings.wrl +18 -18
  88. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/monotonic_time.wrl +13 -14
  89. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/multi_procedures.wrl +2 -2
  90. wirely-0.1.4/tests/negative/native_functions.wrl +118 -0
  91. wirely-0.1.4/tests/negative/native_initializers.wrl +149 -0
  92. wirely-0.1.4/tests/negative/native_procedures.wrl +50 -0
  93. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/native_values.wrl +13 -13
  94. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/node_declarations.wrl +36 -36
  95. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/node_types.wrl +19 -4
  96. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/option_literals.wrl +4 -3
  97. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/option_properties.wrl +21 -20
  98. wirely-0.1.4/tests/negative/optional_forwarding.wrl +93 -0
  99. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/optional_outputs.wrl +14 -7
  100. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/options.wrl +10 -10
  101. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/parameters.wrl +6 -6
  102. wirely-0.1.4/tests/negative/path.wrl +19 -0
  103. wirely-0.1.4/tests/negative/prepared_configuration.wrl +121 -0
  104. wirely-0.1.4/tests/negative/procedure_ports.wrl +575 -0
  105. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/procedures.wrl +37 -40
  106. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/resource_connections.wrl +4 -4
  107. wirely-0.1.4/tests/negative/resource_declarations.wrl +252 -0
  108. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/resource_value_types.wrl +6 -6
  109. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/runtime_limits.wrl +8 -8
  110. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/runtime_types.wrl +10 -10
  111. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/state_connections.wrl +7 -7
  112. wirely-0.1.4/tests/negative/string_literals.wrl +131 -0
  113. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/structs.wrl +93 -49
  114. wirely-0.1.4/tests/negative/time_of_day.wrl +22 -0
  115. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/type_comparisons.wrl +35 -34
  116. wirely-0.1.4/tests/repo/bytecode_format.py +20 -0
  117. wirely-0.1.4/tests/repo/files.py +30 -0
  118. wirely-0.1.4/tests/repo/native_types.py +22 -0
  119. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/analysis.py +55 -35
  120. wirely-0.1.4/tests/unit/compiler_api.py +301 -0
  121. wirely-0.1.4/tests/unit/compiler_warnings.py +99 -0
  122. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/container.py +2 -2
  123. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/control.py +3 -3
  124. wirely-0.1.4/tests/unit/control.wrl +13 -0
  125. wirely-0.1.4/tests/unit/csv.py +97 -0
  126. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/editing.py +61 -25
  127. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/editor.py +30 -3
  128. wirely-0.1.4/tests/unit/editor_cache.py +110 -0
  129. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/editor_widgets.py +14 -0
  130. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/editor_workspace.py +2 -2
  131. wirely-0.1.4/tests/unit/engine_wakeup.py +101 -0
  132. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/engine_wakeup.wrl +1 -1
  133. wirely-0.1.4/tests/unit/format_records.py +102 -0
  134. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/instructions.py +49 -44
  135. wirely-0.1.4/tests/unit/library_configuration.py +579 -0
  136. wirely-0.1.4/tests/unit/monotonic_timestamp.py +82 -0
  137. wirely-0.1.4/tests/unit/native_contracts.py +277 -0
  138. wirely-0.1.4/tests/unit/native_extensions.py +253 -0
  139. wirely-0.1.4/tests/unit/native_interface.py +1378 -0
  140. wirely-0.1.4/tests/unit/native_values.py +337 -0
  141. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/negative_cases.py +25 -23
  142. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/outline.py +21 -6
  143. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/procedures.py +152 -75
  144. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/procedures.wrl +57 -57
  145. wirely-0.1.4/tests/unit/resources.py +409 -0
  146. wirely-0.1.4/tests/unit/runtime_program.py +351 -0
  147. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/serialization.py +66 -45
  148. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/state_connections.py +82 -60
  149. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/test_resources.py +31 -28
  150. wirely-0.1.4/tests/unit/types.py +673 -0
  151. wirely-0.1.4/tests/unit/wall_clock.py +531 -0
  152. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/abb.py +12 -4
  153. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/bitwise.py +2 -2
  154. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/bitwise.wrl +9 -1
  155. wirely-0.1.4/tests/wrl/changed.py +46 -0
  156. wirely-0.1.4/tests/wrl/changed.wrl +52 -0
  157. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/csv.py +109 -16
  158. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/delay.wrl +5 -5
  159. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/equality.py +23 -22
  160. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/equality.wrl +21 -20
  161. wirely-0.1.4/tests/wrl/event_bindings.py +46 -0
  162. wirely-0.1.4/tests/wrl/event_bindings.wrl +82 -0
  163. wirely-0.1.4/tests/wrl/events.py +44 -0
  164. wirely-0.1.4/tests/wrl/events.wrl +116 -0
  165. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/flipflop.py +0 -1
  166. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/gpio.py +1 -4
  167. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/knx.py +112 -7
  168. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/knx.wrl +110 -0
  169. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/knx_time.py +3 -4
  170. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/length.py +1 -5
  171. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/length.wrl +1 -1
  172. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/mqtt.py +6 -8
  173. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/option.py +21 -3
  174. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/option.wrl +17 -0
  175. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/process.py +1 -2
  176. wirely-0.1.4/tests/wrl/std.py +91 -0
  177. wirely-0.1.4/tests/wrl/std.wrl +34 -0
  178. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/time.py +170 -82
  179. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/time.wrl +8 -1
  180. wirely-0.1.4/tools/generate-native-types +75 -0
  181. {wirely-0.1.3 → wirely-0.1.4}/tools/run-tests +10 -3
  182. {wirely-0.1.3 → wirely-0.1.4}/tools/run-tests-dependencies +10 -2
  183. {wirely-0.1.3 → wirely-0.1.4}/wirely/__init__.py +2 -2
  184. {wirely-0.1.3 → wirely-0.1.4}/wirely/__main__.py +3 -1
  185. wirely-0.1.4/wirely/cli/__init__.py +0 -0
  186. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/client.py +13 -10
  187. wirely-0.1.4/wirely/cli/compile_command.py +57 -0
  188. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/edit.py +2 -1
  189. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/export_image.py +2 -1
  190. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/objdump.py +4 -3
  191. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/run.py +19 -16
  192. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/service.py +5 -3
  193. wirely-0.1.4/wirely/compiler/__init__.py +166 -0
  194. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/analysis.py +98 -60
  195. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/ast/__init__.py +12 -2
  196. wirely-0.1.4/wirely/compiler/ast/base.py +193 -0
  197. wirely-0.1.4/wirely/compiler/ast/functions.py +97 -0
  198. wirely-0.1.4/wirely/compiler/ast/library.py +96 -0
  199. wirely-0.1.4/wirely/compiler/ast/node_types.py +71 -0
  200. wirely-0.1.4/wirely/compiler/ast/nodes.py +351 -0
  201. wirely-0.1.4/wirely/compiler/ast/parameter_declarations.py +72 -0
  202. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/ast/ports.py +37 -34
  203. wirely-0.1.4/wirely/compiler/ast/procedures.py +531 -0
  204. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/ast/scope.py +65 -39
  205. wirely-0.1.4/wirely/compiler/ast/specifiers.py +102 -0
  206. wirely-0.1.4/wirely/compiler/ast/type_declarations.py +256 -0
  207. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/ast/values.py +128 -110
  208. wirely-0.1.4/wirely/compiler/attributes.py +390 -0
  209. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/coordinator.py +75 -50
  210. wirely-0.1.4/wirely/compiler/diagnostics.py +164 -0
  211. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/editing.py +237 -145
  212. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/expressions.py +530 -231
  213. wirely-0.1.4/wirely/compiler/extensions.py +42 -0
  214. wirely-0.1.4/wirely/compiler/function_implementations/csv.py +11 -0
  215. wirely-0.1.4/wirely/compiler/function_implementations/knx.py +27 -0
  216. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/function_implementations/mqtt.py +15 -9
  217. wirely-0.1.4/wirely/compiler/function_implementations/path.py +22 -0
  218. wirely-0.1.4/wirely/compiler/function_implementations/schedule.py +7 -0
  219. wirely-0.1.4/wirely/compiler/function_implementations/std.py +49 -0
  220. wirely-0.1.4/wirely/compiler/function_implementations/test.py +70 -0
  221. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/function_implementations/two_n.py +10 -8
  222. wirely-0.1.4/wirely/compiler/generated/__init__.py +30 -0
  223. wirely-0.1.4/wirely/compiler/generated/_bindings.py +143 -0
  224. wirely-0.1.4/wirely/compiler/generated/_contracts/__init__.py +1 -0
  225. wirely-0.1.4/wirely/compiler/generated/_contracts/csv.py +41 -0
  226. wirely-0.1.4/wirely/compiler/generated/_contracts/knx.py +98 -0
  227. wirely-0.1.4/wirely/compiler/generated/_contracts/mqtt.py +71 -0
  228. wirely-0.1.4/wirely/compiler/generated/_contracts/path.py +96 -0
  229. wirely-0.1.4/wirely/compiler/generated/_contracts/schedule.py +45 -0
  230. wirely-0.1.4/wirely/compiler/generated/_contracts/std.py +44 -0
  231. wirely-0.1.4/wirely/compiler/generated/_contracts/test.py +181 -0
  232. wirely-0.1.4/wirely/compiler/generated/_contracts/two_n.py +69 -0
  233. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/graph.py +124 -66
  234. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/instance.py +170 -108
  235. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/model.py +140 -4
  236. wirely-0.1.4/wirely/compiler/native_contracts.py +1125 -0
  237. wirely-0.1.4/wirely/compiler/native_functions.py +246 -0
  238. wirely-0.1.4/wirely/compiler/native_signatures.py +189 -0
  239. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/node_type.py +147 -115
  240. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/outline.py +163 -103
  241. wirely-0.1.4/wirely/compiler/parameters.py +176 -0
  242. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/parser.py +81 -55
  243. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/program.py +230 -103
  244. wirely-0.1.4/wirely/compiler/shuffle.py +127 -0
  245. wirely-0.1.4/wirely/compiler/sources.py +188 -0
  246. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/static_bindings.py +10 -5
  247. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/support.py +77 -40
  248. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/types.py +76 -73
  249. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/value.py +102 -69
  250. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/wirely.lark +51 -28
  251. wirely-0.1.4/wirely/control/__init__.py +0 -0
  252. {wirely-0.1.3 → wirely-0.1.4}/wirely/control/client.py +17 -11
  253. {wirely-0.1.3 → wirely-0.1.4}/wirely/control/controller.py +17 -12
  254. {wirely-0.1.3 → wirely-0.1.4}/wirely/control/framing.py +10 -8
  255. {wirely-0.1.3 → wirely-0.1.4}/wirely/control/messages.py +10 -9
  256. {wirely-0.1.3 → wirely-0.1.4}/wirely/control/server.py +43 -29
  257. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/app.py +94 -70
  258. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/export.py +8 -3
  259. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/graph_model.py +105 -74
  260. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/graph_view.py +161 -126
  261. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/grid.py +5 -3
  262. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/layout.py +40 -26
  263. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/palette.py +21 -12
  264. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/program.py +80 -55
  265. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/properties.py +31 -14
  266. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/sync.py +30 -25
  267. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/text_view.py +45 -37
  268. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/workspace.py +106 -63
  269. wirely-0.1.4/wirely/functions/__init__.py +38 -0
  270. wirely-0.1.4/wirely/functions/schedule_time_of_day.py +33 -0
  271. wirely-0.1.4/wirely/functions/std_duration.py +100 -0
  272. wirely-0.1.4/wirely/functions/timer_monotonic_time.py +54 -0
  273. wirely-0.1.4/wirely/generated/__init__.py +22 -0
  274. wirely-0.1.4/wirely/generated/_bindings.py +809 -0
  275. wirely-0.1.4/wirely/generated/_signatures.py +537 -0
  276. wirely-0.1.4/wirely/generated/csv.py +127 -0
  277. wirely-0.1.4/wirely/generated/enums.py +57 -0
  278. wirely-0.1.4/wirely/generated/gpio.py +122 -0
  279. wirely-0.1.4/wirely/generated/knx.py +482 -0
  280. wirely-0.1.4/wirely/generated/mqtt.py +372 -0
  281. wirely-0.1.4/wirely/generated/process.py +118 -0
  282. wirely-0.1.4/wirely/generated/schedule.py +124 -0
  283. wirely-0.1.4/wirely/generated/schedule_time_of_day.py +81 -0
  284. wirely-0.1.4/wirely/generated/std.py +369 -0
  285. wirely-0.1.4/wirely/generated/std_duration.py +266 -0
  286. wirely-0.1.4/wirely/generated/structs.py +65 -0
  287. wirely-0.1.4/wirely/generated/timer.py +127 -0
  288. wirely-0.1.4/wirely/generated/timer_monotonic_time.py +114 -0
  289. wirely-0.1.4/wirely/generated/two_n.py +547 -0
  290. wirely-0.1.4/wirely/knx/__init__.py +0 -0
  291. wirely-0.1.4/wirely/knx/address.py +34 -0
  292. {wirely-0.1.3 → wirely-0.1.4}/wirely/knx/connection_adapter.py +15 -8
  293. {wirely-0.1.3 → wirely-0.1.4}/wirely/knx/connection_config.py +14 -11
  294. wirely-0.1.4/wirely/knx/value_types.py +53 -0
  295. wirely-0.1.4/wirely/lib/abb_jra.wrl +94 -0
  296. {wirely-0.1.3 → wirely-0.1.4}/wirely/lib/csv.wrl +16 -13
  297. {wirely-0.1.3 → wirely-0.1.4}/wirely/lib/gpio.wrl +13 -7
  298. {wirely-0.1.3 → wirely-0.1.4}/wirely/lib/knx.wrl +61 -32
  299. {wirely-0.1.3 → wirely-0.1.4}/wirely/lib/matter.wrl +1 -1
  300. wirely-0.1.4/wirely/lib/memory.wrl +80 -0
  301. wirely-0.1.4/wirely/lib/mqtt.wrl +132 -0
  302. wirely-0.1.4/wirely/lib/path.wrl +5 -0
  303. wirely-0.1.4/wirely/lib/process.wrl +20 -0
  304. wirely-0.1.4/wirely/lib/schedule.wrl +123 -0
  305. wirely-0.1.4/wirely/lib/std.wrl +245 -0
  306. wirely-0.1.4/wirely/lib/test.wrl +8 -0
  307. wirely-0.1.4/wirely/lib/timer.wrl +141 -0
  308. wirely-0.1.4/wirely/lib/two_n.wrl +196 -0
  309. wirely-0.1.4/wirely/misc/__init__.py +0 -0
  310. {wirely-0.1.3 → wirely-0.1.4}/wirely/misc/service.py +5 -3
  311. {wirely-0.1.3 → wirely-0.1.4}/wirely/misc/state_directory.py +3 -2
  312. wirely-0.1.4/wirely/native/__init__.py +11 -0
  313. wirely-0.1.4/wirely/native/csv.py +161 -0
  314. wirely-0.1.4/wirely/native/gpio.py +97 -0
  315. wirely-0.1.4/wirely/native/knx.py +359 -0
  316. {wirely-0.1.3 → wirely-0.1.4}/wirely/native/mqtt.py +172 -150
  317. wirely-0.1.4/wirely/native/process.py +63 -0
  318. wirely-0.1.4/wirely/native/schedule.py +61 -0
  319. wirely-0.1.4/wirely/native/std.py +160 -0
  320. wirely-0.1.4/wirely/native/timer.py +45 -0
  321. wirely-0.1.4/wirely/native/two_n.py +376 -0
  322. {wirely-0.1.3 → wirely-0.1.4}/wirely/program/__init__.py +3 -2
  323. {wirely-0.1.3 → wirely-0.1.4}/wirely/program/container.py +25 -20
  324. wirely-0.1.4/wirely/program/format.wrl +478 -0
  325. wirely-0.1.4/wirely/program/generated/__init__.py +1 -0
  326. wirely-0.1.4/wirely/program/generated/format.py +722 -0
  327. {wirely-0.1.3 → wirely-0.1.4}/wirely/program/procedures.py +8 -10
  328. {wirely-0.1.3 → wirely-0.1.4}/wirely/program/program.py +168 -51
  329. wirely-0.1.4/wirely/program/records.py +52 -0
  330. {wirely-0.1.3 → wirely-0.1.4}/wirely/program/validation.py +83 -25
  331. wirely-0.1.4/wirely/runtime/contexts.py +80 -0
  332. wirely-0.1.4/wirely/runtime/engine.py +485 -0
  333. wirely-0.1.4/wirely/runtime/extensions.py +98 -0
  334. wirely-0.1.4/wirely/runtime/linking.py +243 -0
  335. wirely-0.1.4/wirely/runtime/native_api.py +393 -0
  336. wirely-0.1.4/wirely/runtime/native_values.py +140 -0
  337. {wirely-0.1.3 → wirely-0.1.4}/wirely/runtime/procedures.py +24 -24
  338. wirely-0.1.4/wirely/runtime/resources.py +24 -0
  339. wirely-0.1.4/wirely/runtime/signatures.py +186 -0
  340. {wirely-0.1.3 → wirely-0.1.4}/wirely/runtime/time_snapshot.py +2 -2
  341. wirely-0.1.4/wirely/runtime/wall_clock.py +176 -0
  342. wirely-0.1.4/wirely/two_n/__init__.py +0 -0
  343. {wirely-0.1.3 → wirely-0.1.4}/wirely/two_n/cert.py +10 -5
  344. {wirely-0.1.3 → wirely-0.1.4}/wirely/two_n/client.py +43 -31
  345. {wirely-0.1.3 → wirely-0.1.4}/wirely/two_n/fake_server.py +37 -33
  346. {wirely-0.1.3 → wirely-0.1.4}/wirely/two_n/grab_images.py +3 -2
  347. wirely-0.1.4/wirely/types/__init__.py +870 -0
  348. wirely-0.1.4/wirely/types/integers.py +125 -0
  349. {wirely-0.1.3 → wirely-0.1.4}/wirely/types/option.py +5 -2
  350. {wirely-0.1.3 → wirely-0.1.4}/wirely/types/serialization.py +33 -50
  351. wirely-0.1.4/wirely/types/time.py +316 -0
  352. wirely-0.1.4/wirely/types/value_types.py +265 -0
  353. wirely-0.1.4/wirely/util.py +40 -0
  354. {wirely-0.1.3 → wirely-0.1.4/wirely.egg-info}/PKG-INFO +24 -7
  355. wirely-0.1.4/wirely.egg-info/SOURCES.txt +409 -0
  356. {wirely-0.1.3 → wirely-0.1.4}/wirely.egg-info/requires.txt +2 -1
  357. wirely-0.1.3/doc/native-python.md +0 -329
  358. wirely-0.1.3/doc/tests.md +0 -71
  359. wirely-0.1.3/test/compiler/durations.wrl +0 -38
  360. wirely-0.1.3/test/compiler/time_of_day.wrl +0 -35
  361. wirely-0.1.3/test/negative/conversions.wrl +0 -43
  362. wirely-0.1.3/test/negative/durations.wrl +0 -45
  363. wirely-0.1.3/test/negative/enum_declarations.wrl +0 -251
  364. wirely-0.1.3/test/negative/native_functions.wrl +0 -100
  365. wirely-0.1.3/test/negative/native_initializers.wrl +0 -80
  366. wirely-0.1.3/test/negative/native_procedures.wrl +0 -31
  367. wirely-0.1.3/test/negative/optional_forwarding.wrl +0 -102
  368. wirely-0.1.3/test/negative/path.wrl +0 -19
  369. wirely-0.1.3/test/negative/prepared_configuration.wrl +0 -61
  370. wirely-0.1.3/test/negative/procedure_ports.wrl +0 -225
  371. wirely-0.1.3/test/negative/resource_declarations.wrl +0 -157
  372. wirely-0.1.3/test/negative/string_literals.wrl +0 -131
  373. wirely-0.1.3/test/negative/time_of_day.wrl +0 -25
  374. wirely-0.1.3/test/repo/files.py +0 -28
  375. wirely-0.1.3/test/unit/compiler_api.py +0 -74
  376. wirely-0.1.3/test/unit/control.wrl +0 -4
  377. wirely-0.1.3/test/unit/engine_wakeup.py +0 -64
  378. wirely-0.1.3/test/unit/library_configuration.py +0 -220
  379. wirely-0.1.3/test/unit/monotonic_timestamp.py +0 -78
  380. wirely-0.1.3/test/unit/native_interface.py +0 -802
  381. wirely-0.1.3/test/unit/native_values.py +0 -197
  382. wirely-0.1.3/test/unit/resources.py +0 -246
  383. wirely-0.1.3/test/unit/runtime_program.py +0 -155
  384. wirely-0.1.3/test/unit/shuffle.py +0 -161
  385. wirely-0.1.3/test/unit/test_runner.py +0 -93
  386. wirely-0.1.3/test/unit/types.py +0 -394
  387. wirely-0.1.3/test/wrl/std.py +0 -55
  388. wirely-0.1.3/test/wrl/std.wrl +0 -10
  389. wirely-0.1.3/wirely/cli/compile_command.py +0 -31
  390. wirely-0.1.3/wirely/compiler/__init__.py +0 -124
  391. wirely-0.1.3/wirely/compiler/ast/base.py +0 -147
  392. wirely-0.1.3/wirely/compiler/ast/functions.py +0 -67
  393. wirely-0.1.3/wirely/compiler/ast/library.py +0 -82
  394. wirely-0.1.3/wirely/compiler/ast/nodes.py +0 -270
  395. wirely-0.1.3/wirely/compiler/ast/parameter_declarations.py +0 -108
  396. wirely-0.1.3/wirely/compiler/ast/procedures.py +0 -365
  397. wirely-0.1.3/wirely/compiler/ast/specifiers.py +0 -120
  398. wirely-0.1.3/wirely/compiler/ast/type_declarations.py +0 -193
  399. wirely-0.1.3/wirely/compiler/attributes.py +0 -287
  400. wirely-0.1.3/wirely/compiler/diagnostics.py +0 -70
  401. wirely-0.1.3/wirely/compiler/function_implementations/csv.py +0 -5
  402. wirely-0.1.3/wirely/compiler/function_implementations/knx.py +0 -32
  403. wirely-0.1.3/wirely/compiler/function_implementations/path.py +0 -19
  404. wirely-0.1.3/wirely/compiler/function_implementations/schedule.py +0 -2
  405. wirely-0.1.3/wirely/compiler/function_implementations/test.py +0 -66
  406. wirely-0.1.3/wirely/compiler/native_functions.py +0 -184
  407. wirely-0.1.3/wirely/compiler/parameters.py +0 -103
  408. wirely-0.1.3/wirely/compiler/shuffle.py +0 -81
  409. wirely-0.1.3/wirely/functions/__init__.py +0 -80
  410. wirely-0.1.3/wirely/functions/duration.py +0 -112
  411. wirely-0.1.3/wirely/functions/monotonic_time.py +0 -65
  412. wirely-0.1.3/wirely/functions/test_library.py +0 -23
  413. wirely-0.1.3/wirely/functions/time_of_day.py +0 -34
  414. wirely-0.1.3/wirely/lib/abb_jra.wrl +0 -71
  415. wirely-0.1.3/wirely/lib/memory.wrl +0 -47
  416. wirely-0.1.3/wirely/lib/mqtt.wrl +0 -112
  417. wirely-0.1.3/wirely/lib/path.wrl +0 -5
  418. wirely-0.1.3/wirely/lib/process.wrl +0 -14
  419. wirely-0.1.3/wirely/lib/schedule.wrl +0 -78
  420. wirely-0.1.3/wirely/lib/std.wrl +0 -211
  421. wirely-0.1.3/wirely/lib/test.wrl +0 -8
  422. wirely-0.1.3/wirely/lib/timer.wrl +0 -59
  423. wirely-0.1.3/wirely/lib/two_n.wrl +0 -147
  424. wirely-0.1.3/wirely/native/__init__.py +0 -46
  425. wirely-0.1.3/wirely/native/abb_jra.py +0 -58
  426. wirely-0.1.3/wirely/native/csv.py +0 -152
  427. wirely-0.1.3/wirely/native/gpio.py +0 -74
  428. wirely-0.1.3/wirely/native/knx.py +0 -314
  429. wirely-0.1.3/wirely/native/memory.py +0 -58
  430. wirely-0.1.3/wirely/native/process.py +0 -53
  431. wirely-0.1.3/wirely/native/schedule.py +0 -173
  432. wirely-0.1.3/wirely/native/std.py +0 -206
  433. wirely-0.1.3/wirely/native/test_library.py +0 -13
  434. wirely-0.1.3/wirely/native/timer.py +0 -96
  435. wirely-0.1.3/wirely/native/two_n.py +0 -400
  436. wirely-0.1.3/wirely/runtime/contexts.py +0 -217
  437. wirely-0.1.3/wirely/runtime/engine.py +0 -326
  438. wirely-0.1.3/wirely/runtime/linking.py +0 -81
  439. wirely-0.1.3/wirely/test.py +0 -708
  440. wirely-0.1.3/wirely/types/__init__.py +0 -721
  441. wirely-0.1.3/wirely/types/struct.py +0 -35
  442. wirely-0.1.3/wirely/types/time.py +0 -237
  443. wirely-0.1.3/wirely/types/value_types.py +0 -133
  444. wirely-0.1.3/wirely/util.py +0 -111
  445. wirely-0.1.3/wirely.egg-info/SOURCES.txt +0 -319
  446. {wirely-0.1.3 → wirely-0.1.4}/LICENSE +0 -0
  447. {wirely-0.1.3 → wirely-0.1.4}/doc/README.md +0 -0
  448. {wirely-0.1.3 → wirely-0.1.4}/doc/control-protocol.md +0 -0
  449. {wirely-0.1.3 → wirely-0.1.4}/examples/delay.wrl +0 -0
  450. {wirely-0.1.3 → wirely-0.1.4}/examples/flipflop.wrl +0 -0
  451. {wirely-0.1.3 → wirely-0.1.4}/examples/gpio.wrl +0 -0
  452. {wirely-0.1.3 → wirely-0.1.4}/examples/knx.wrl +0 -0
  453. {wirely-0.1.3 → wirely-0.1.4}/setup.cfg +0 -0
  454. {wirely-0.1.3/wirely/cli → wirely-0.1.4/tests}/__init__.py +0 -0
  455. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/connection_order.wrl +0 -0
  456. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/simple.wrl +0 -0
  457. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/structs.wrl +0 -0
  458. {wirely-0.1.3/test → wirely-0.1.4/tests}/compiler/type_stages.wrl +0 -0
  459. {wirely-0.1.3/wirely/control → wirely-0.1.4/tests/infra}/__init__.py +0 -0
  460. {wirely-0.1.3/wirely/knx → wirely-0.1.4/tests/infra/native_extension}/__init__.py +0 -0
  461. {wirely-0.1.3/wirely/misc → wirely-0.1.4/tests/infra/native_extension/compiler}/__init__.py +0 -0
  462. {wirely-0.1.3/wirely/two_n → wirely-0.1.4/tests/infra/native_extension/functions}/__init__.py +0 -0
  463. {wirely-0.1.3/test → wirely-0.1.4/tests}/misc/grammar.py +0 -0
  464. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/syntax_lists.wrl +0 -0
  465. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/unit_literals.wrl +0 -0
  466. {wirely-0.1.3/test → wirely-0.1.4/tests}/negative/weak_keywords.wrl +0 -0
  467. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/editor_export.py +0 -0
  468. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/native_values.wrl +0 -0
  469. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/static_sources.py +0 -0
  470. {wirely-0.1.3/test → wirely-0.1.4/tests}/unit/static_sources.wrl +0 -0
  471. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/abb.wrl +0 -0
  472. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/and.py +0 -0
  473. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/and.wrl +0 -0
  474. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/csv.wrl +0 -0
  475. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/delay.py +0 -0
  476. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/flipflop.wrl +0 -0
  477. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/gpio.wrl +0 -0
  478. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/knx_time.wrl +0 -0
  479. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/mqtt.wrl +0 -0
  480. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/multi_forward.py +0 -0
  481. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/multi_forward.wrl +0 -0
  482. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/process.wrl +0 -0
  483. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/two_n.py +0 -0
  484. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/two_n.wrl +0 -0
  485. {wirely-0.1.3/test → wirely-0.1.4/tests}/wrl/username_password.txt +0 -0
  486. {wirely-0.1.3 → wirely-0.1.4}/tools/build-pex +0 -0
  487. {wirely-0.1.3 → wirely-0.1.4}/tools/git_write_wd_tree.py +0 -0
  488. {wirely-0.1.3 → wirely-0.1.4}/tools/setup-venv +0 -0
  489. {wirely-0.1.3 → wirely-0.1.4}/tools/test-gitlab-ci +0 -0
  490. {wirely-0.1.3 → wirely-0.1.4}/tools/wirely +0 -0
  491. {wirely-0.1.3 → wirely-0.1.4}/wirely/cli/graphviz.py +0 -0
  492. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/function_implementations/__init__.py +0 -0
  493. {wirely-0.1.3 → wirely-0.1.4}/wirely/compiler/stages.py +0 -0
  494. {wirely-0.1.3 → wirely-0.1.4}/wirely/editor/__init__.py +0 -0
  495. {wirely-0.1.3 → wirely-0.1.4}/wirely/program/limits.py +0 -0
  496. {wirely-0.1.3 → wirely-0.1.4}/wirely/runtime/__init__.py +0 -0
  497. {wirely-0.1.3 → wirely-0.1.4}/wirely/types/unit.py +0 -0
  498. {wirely-0.1.3 → wirely-0.1.4}/wirely.egg-info/dependency_links.txt +0 -0
  499. {wirely-0.1.3 → wirely-0.1.4}/wirely.egg-info/entry_points.txt +0 -0
  500. {wirely-0.1.3 → wirely-0.1.4}/wirely.egg-info/top_level.txt +0 -0
@@ -1,5 +1,61 @@
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
+
3
59
  ## 0.1.3 - 2026-10-12
4
60
 
5
61
  ### Breaking changes and migration
@@ -1,9 +1,10 @@
1
1
  include CHANGELOG.md
2
2
  recursive-include doc *.md
3
3
  recursive-include examples *.wrl
4
- recursive-include test *.py *.wrl
5
- include test/wrl/username_password.txt
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
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.0; extra == "knx"
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
@@ -29,6 +29,7 @@ Provides-Extra: all
29
29
  Requires-Dist: wirely[gpio,graphviz,knx,mqtt,two-n]; extra == "all"
30
30
  Provides-Extra: test
31
31
  Requires-Dist: pyOpenSSL>=23.0.0; extra == "test"
32
+ Requires-Dist: mypy>=2.0; extra == "test"
32
33
  Provides-Extra: pex
33
34
  Requires-Dist: pex; extra == "pex"
34
35
  Provides-Extra: dev
@@ -71,6 +72,10 @@ python3 -m wirely compile program.wrl
71
72
 
72
73
  Use `wirely compile --dump-program program.wrl` to print the compiled
73
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.
74
79
 
75
80
  Install optional integrations as needed:
76
81
 
@@ -84,6 +89,9 @@ python3 -m pip install 'wirely[all]' # all optional integrations
84
89
  python3 -m pip install 'wirely[editor]' # graphical editor
85
90
  ```
86
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
+
87
95
  `wirely edit program.wrl` opens a program in a graphical editor with tabs
88
96
  for its source files and diagrams. Edits in either view update the other.
89
97
  Right-click a tab to split the view, move it to another pane, or detach it
@@ -121,7 +129,7 @@ checkout launchers:
121
129
 
122
130
  ```
123
131
  tools/setup-venv
124
- tools/wirely compile test/compiler/simple.wrl
132
+ tools/wirely compile tests/compiler/simple.wrl
125
133
  tools/run-tests
126
134
  ```
127
135
 
@@ -137,12 +145,15 @@ slowest first:
137
145
  tools/run-tests --timings unit/types wrl/equality
138
146
  ```
139
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
+
140
151
  To check that compilation does not depend on declaration order, set
141
152
  `WIRELY_COMPILER_SHUFFLE_SEED` to an integer. The compiler then shuffles
142
- declarations, node parameters, struct literal fields, procedure ports,
143
- and `uses` bindings with that seed; connections keep their relative order.
144
- Also set `WIRELY_COMPILER_SHUFFLE_LAYOUT=1` to shuffle struct fields and
145
- enum members, which changes serialization and enum default values.
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.
146
157
  Negative tests may report different diagnostics in this mode.
147
158
 
148
159
  ```
@@ -167,3 +178,9 @@ compatible patch of the oldest supported CPython minor; `max` selects the
167
178
  newest compatible stable CPython available through the installed uv.
168
179
  uv can download missing interpreters. `tools/run-tests --python PATH` runs
169
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
 
@@ -46,6 +50,9 @@ python3 -m pip install 'wirely[all]' # all optional integrations
46
50
  python3 -m pip install 'wirely[editor]' # graphical editor
47
51
  ```
48
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
+
49
56
  `wirely edit program.wrl` opens a program in a graphical editor with tabs
50
57
  for its source files and diagrams. Edits in either view update the other.
51
58
  Right-click a tab to split the view, move it to another pane, or detach it
@@ -83,7 +90,7 @@ checkout launchers:
83
90
 
84
91
  ```
85
92
  tools/setup-venv
86
- tools/wirely compile test/compiler/simple.wrl
93
+ tools/wirely compile tests/compiler/simple.wrl
87
94
  tools/run-tests
88
95
  ```
89
96
 
@@ -99,12 +106,15 @@ slowest first:
99
106
  tools/run-tests --timings unit/types wrl/equality
100
107
  ```
101
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
+
102
112
  To check that compilation does not depend on declaration order, set
103
113
  `WIRELY_COMPILER_SHUFFLE_SEED` to an integer. The compiler then shuffles
104
- declarations, node parameters, struct literal fields, procedure ports,
105
- and `uses` bindings with that seed; connections keep their relative order.
106
- Also set `WIRELY_COMPILER_SHUFFLE_LAYOUT=1` to shuffle struct fields and
107
- enum members, which changes serialization and enum default values.
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.
108
118
  Negative tests may report different diagnostics in this mode.
109
119
 
110
120
  ```
@@ -129,3 +139,9 @@ compatible patch of the oldest supported CPython minor; `max` selects the
129
139
  newest compatible stable CPython available through the installed uv.
130
140
  uv can download missing interpreters. `tools/run-tests --python PATH` runs
131
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
+ ```