hg-cpp 0.3.0__tar.gz → 0.3.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.
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/.github/workflows/build.yml +114 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/CLAUDE.md +16 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/CMakeLists.txt +19 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/PKG-INFO +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/build_system.rst +18 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/overview/structural_layers.rst +3 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/plans_and_ops/erased_types.rst +43 -34
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/plans_and_ops/proxy_state_management.rst +151 -86
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/plans_and_ops/scalar.rst +32 -28
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/plans_and_ops/time_series.rst +182 -48
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/schemas/graph.rst +40 -22
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/schemas/node.rst +39 -25
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/schemas/scalar.rst +18 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/schemas/time_series.rst +11 -2
- hg_cpp-0.3.1/docs/source/developer_guide/data_structures/type_erasure_inventory.rst +619 -0
- hg_cpp-0.3.1/docs/source/developer_guide/data_structures/unified_type_erasure.rst +712 -0
- hg_cpp-0.3.1/docs/source/developer_guide/data_structures/unified_type_erasure_implementation_plan.rst +711 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures.rst +9 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/debugging.rst +24 -8
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/error_handling.rst +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/nested_graphs.rst +125 -25
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/operators.rst +32 -5
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/parity_matrix.rst +94 -128
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/python_integration.rst +92 -12
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/record_replay_table.rst +63 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/component.h +2 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/arithmetic.h +6 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/control.h +1 -1
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/convert_target.h +42 -0
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/data_frame.h +42 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/arithmetic_impl.h +32 -14
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/collection_impl.h +37 -37
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/comparison_impl.h +54 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/container_impl.h +188 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/conversion_impl.h +176 -59
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/impl/data_frame_impl.h +471 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/higher_order_impl.h +13 -8
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/impl/io_impl.h +191 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/json_impl.h +24 -25
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/operators_impl.h +1 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/series_impl.h +2 -4
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/impl/stream_impl.h +1707 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/string_impl.h +15 -15
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/impl/table_impl.h +222 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/io.h +20 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/stream.h +17 -0
- hg_cpp-0.3.1/include/hgraph/lib/std/operators/table.h +44 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/value_util.h +3 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/testing/mock_runtime.h +30 -27
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/testing/record_replay.h +32 -12
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/python/bridge_state.h +16 -0
- hg_cpp-0.3.1/include/hgraph/runtime/clock_type_ref.h +80 -0
- hg_cpp-0.3.1/include/hgraph/runtime/evaluation_clock.h +105 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/executor.h +20 -12
- hg_cpp-0.3.1/include/hgraph/runtime/executor_type_ref.h +83 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/graph.h +38 -27
- hg_cpp-0.3.1/include/hgraph/runtime/graph_type_ref.h +85 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/map_node.h +7 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/mesh_node.h +5 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/nested_bindings.h +44 -20
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/nested_graph_node.h +2 -0
- hg_cpp-0.3.1/include/hgraph/runtime/nested_graph_storage.h +223 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/node.h +40 -20
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/node_fwd.h +2 -4
- hg_cpp-0.3.1/include/hgraph/runtime/node_type_ref.h +95 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/reduce_node.h +2 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/switch_node.h +5 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/adaptor_wiring.h +6 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/graph_wiring.h +21 -10
- hg_cpp-0.3.1/include/hgraph/types/metadata/debug_descriptor.h +235 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/ts_data_plan_factory.h +10 -11
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/ts_data_plan_factory_detail.h +33 -11
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/ts_value_type_meta_data.h +27 -18
- hg_cpp-0.3.1/include/hgraph/types/metadata/type_record.h +169 -0
- hg_cpp-0.3.1/include/hgraph/types/metadata/type_record_registry.h +68 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/type_registry.h +49 -16
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/value_plan_factory.h +15 -8
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/value_type_meta_data.h +67 -26
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/notifiable.h +5 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/operator_dispatch.h +41 -19
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/operator_type_resolution.h +8 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/registry_reset.h +10 -11
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/service_wiring.h +21 -14
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/static_node.h +40 -23
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/subgraph_wiring.h +2 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/endpoint_owner.h +3 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/base_view.h +52 -53
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/dict_view.h +3 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/indexed_view.h +0 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/ops.h +23 -12
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/proxy.h +46 -28
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/set_view.h +0 -1
- hg_cpp-0.3.1/include/hgraph/types/time_series/ts_data/storage.h +74 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/types.h +36 -35
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data/window_view.h +7 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/base_view.h +3 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/detail.h +1 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/target_link.h +2 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/window_view.h +2 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input.h +1 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/alternative.h +3 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/base_view.h +4 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/mutation_view.h +3 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output.h +9 -9
- hg_cpp-0.3.1/include/hgraph/types/time_series/ts_type_ref.h +184 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/typed_view.h +0 -1
- hg_cpp-0.3.1/include/hgraph/types/type_pointer.h +257 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/type_resolution.h +6 -6
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/utils/key_slot_store.h +3 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/utils/memory_utils.h +185 -220
- hg_cpp-0.3.1/include/hgraph/types/utils/slot_bitmap.h +171 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/utils/stable_slot_storage.h +48 -8
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/utils/value_slot_store.h +3 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/any_ops.h +3 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/compact_container_ops.h +210 -112
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/compact_storage.h +142 -79
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/container_ops.h +118 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/json_codec.h +28 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/mutable_container_ops.h +189 -91
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/specialized_views.h +81 -51
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/table_codec.h +34 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/value.h +30 -43
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/value_builder.h +60 -39
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/value_ops.h +70 -22
- hg_cpp-0.3.1/include/hgraph/types/value/value_type_ref.h +101 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/value_view.h +52 -75
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/pyproject.toml +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/__init__.py +37 -4
- hg_cpp-0.3.1/python/hgraph/_compat.py +192 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/_runtime.py +1154 -130
- hg_cpp-0.3.1/python/hgraph/_signature.py +92 -0
- hg_cpp-0.3.1/python/hgraph/_table.py +144 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/_types.py +330 -33
- hg_cpp-0.3.1/python/hgraph/adaptors/__init__.py +2 -0
- hg_cpp-0.3.1/python/hgraph/adaptors/data_frame.py +10 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/nodes.py +31 -0
- hg_cpp-0.3.1/python/hgraph/stream/__init__.py +4 -0
- hg_cpp-0.3.1/python/hgraph/stream/stream.py +14 -0
- hg_cpp-0.3.1/python/hgraph/test/__init__.py +17 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/module.cpp +933 -54
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/module_internal.h +6 -1
- hg_cpp-0.3.1/python/tests/ported/_operators/_conversion_operators/test_frame_conversion_operators.py +128 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_ts_conversion_operators.py +3 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_tsb_conversion_operators.py +0 -1
- hg_cpp-0.3.1/python/tests/ported/_operators/test_analytical.py +114 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_compound_scalar_operators.py +0 -4
- hg_cpp-0.3.1/python/tests/ported/_operators/test_data_frame_operators.py +185 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_enum_operators.py +156 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_lift_operators.py +19 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_number_operators.py +0 -1
- hg_cpp-0.3.1/python/tests/ported/_operators/test_print.py +184 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_scalar_operators.py +0 -3
- hg_cpp-0.3.1/python/tests/ported/_operators/test_stream_analytical_operators.py +77 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_stream_operators.py +944 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_to_json.py +121 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_to_table.py +470 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_to_table_dispatch.py +89 -0
- hg_cpp-0.3.1/python/tests/ported/_operators/test_window_operators.py +80 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/__init__.py +0 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_annotation.py +23 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_arg_parsing.py +22 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_auto_const.py +61 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_auto_resolve.py +26 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_component.py +182 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_decorators.py +57 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_dispatch.py +105 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_generic_graphs.py +31 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_injectables.py +57 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_overloads.py +132 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_passivate.py +15 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_ts_auto_cast.py +25 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_ts_wiring.py +22 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_tsb_wiring.py +300 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_tsd_wiring.py +218 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_tsl_wiring.py +98 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_tss.py +82 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_var_args.py +112 -0
- hg_cpp-0.3.1/python/tests/ported/_wiring/test_wiring_node_signature.py +28 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/conftest.py +2 -0
- hg_cpp-0.3.1/python/tests/test_dispatch_scalar.py +74 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/test_python_authoring.py +60 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/value_conversion.cpp +34 -15
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/CMakeLists.txt +7 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/arithmetic_impl.cpp +2 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/comparison_impl.cpp +6 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/container_impl.cpp +4 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/conversion_impl.cpp +1 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/convert_target.cpp +149 -10
- hg_cpp-0.3.1/src/hgraph/lib/std/operators/data_frame_impl.cpp +719 -0
- hg_cpp-0.3.1/src/hgraph/lib/std/operators/io_impl.cpp +94 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/json_impl.cpp +235 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/registration.cpp +1 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/stream_impl.cpp +24 -0
- hg_cpp-0.3.1/src/hgraph/lib/std/operators/table_impl.cpp +623 -0
- hg_cpp-0.3.1/src/hgraph/runtime/evaluation_clock.cpp +117 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/executor.cpp +222 -148
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/global_state.cpp +4 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/graph.cpp +286 -203
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/map_node.cpp +115 -20
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/mapped_child_bindings.h +6 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/mapped_key_source.h +20 -13
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/mesh_node.cpp +364 -77
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/nested_graph_node.cpp +31 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/node.cpp +246 -199
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/node_error.cpp +3 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/reduce_node.cpp +123 -52
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/service_node.cpp +9 -9
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/switch_node.cpp +79 -27
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/graph_wiring.cpp +17 -6
- hg_cpp-0.3.1/src/hgraph/types/metadata/debug_descriptor.cpp +387 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/ts_data_atomic_ops.cpp +26 -22
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/ts_data_dynamic_list_ops.cpp +151 -115
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/ts_data_fixed_structured_ops.cpp +150 -110
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/ts_data_fixed_structured_plan.cpp +94 -80
- hg_cpp-0.3.1/src/hgraph/types/metadata/ts_data_plan_factory.cpp +426 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/ts_data_slot_ops.cpp +436 -187
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/ts_data_window_ops.cpp +156 -94
- hg_cpp-0.3.1/src/hgraph/types/metadata/type_record_registry.cpp +143 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/type_registry.cpp +404 -42
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/metadata/value_plan_factory.cpp +139 -96
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/operator_dispatch.cpp +136 -37
- hg_cpp-0.3.1/src/hgraph/types/registry_reset.cpp +55 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/service_runtime.cpp +3 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/base_view.cpp +52 -30
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/dict_view.cpp +22 -18
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/indexed_view.cpp +8 -13
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/ops.cpp +3 -3
- hg_cpp-0.3.1/src/hgraph/types/time_series/ts_data/ownership.h +35 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/proxy.cpp +706 -180
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/set_view.cpp +0 -5
- hg_cpp-0.3.1/src/hgraph/types/time_series/ts_data/storage.cpp +208 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/types.cpp +54 -29
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_data/window_view.cpp +30 -11
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_delta.cpp +55 -53
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/base_view.cpp +18 -14
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/target_link.cpp +24 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/target_link_ops.cpp +60 -32
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/target_link_ops.h +0 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/window_view.cpp +8 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input.cpp +686 -187
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/alternative.cpp +321 -51
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/base_view.cpp +20 -7
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/bundle_view.cpp +15 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/list_view.cpp +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/mutation_view.cpp +6 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output.cpp +44 -20
- hg_cpp-0.3.1/src/hgraph/types/time_series/ts_type_ref.cpp +128 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series_reference.cpp +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/type_pattern.cpp +13 -13
- hg_cpp-0.3.1/src/hgraph/types/type_pointer.cpp +171 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/value/any_ops.cpp +7 -6
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/value/compact_container_ops.cpp +31 -20
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/value/json_codec.cpp +114 -13
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/value/table_codec.cpp +121 -7
- hg_cpp-0.3.1/src/hgraph/types/value/value_type_ref.cpp +136 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/value/value_view.cpp +54 -48
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/CMakeLists.txt +39 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/header_compile_check.cpp +13 -5
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/smoke_test.cpp +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_adaptor_wiring.cpp +26 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_any_value.cpp +10 -10
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_bundle_builder.cpp +8 -8
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_compact_storage.cpp +55 -55
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_component.cpp +26 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_global_state.cpp +4 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_graph_introspection.cpp +24 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_graph_wiring.cpp +2 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_json.cpp +5 -5
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_lifecycle_observers.cpp +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_map.cpp +183 -8
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_memory_utils.cpp +80 -97
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_mesh.cpp +157 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_mutable_list.cpp +57 -5
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_mutable_map.cpp +48 -5
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_mutable_set.cpp +40 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_nested_wiring.cpp +88 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_plan_factories.cpp +294 -173
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_race_semantics.cpp +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_realtime_execution.cpp +1 -1
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_record_replay_config.cpp +2 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_runtime_value_view.cpp +125 -16
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_schema_examples.cpp +14 -14
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_slot_utils.cpp +155 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_specialized_views.cpp +230 -87
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_static_node.cpp +33 -16
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_std_nodes.cpp +2 -2
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_std_operators.cpp +30 -4
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_std_type_registration.cpp +15 -15
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_switch.cpp +90 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_table.cpp +38 -36
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_time_series_reference.cpp +572 -3
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_ts_input.cpp +394 -5
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_ts_output.cpp +136 -19
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_ts_schemas.cpp +10 -10
- hg_cpp-0.3.1/tests/cpp/test_ts_type_ref.cpp +1604 -0
- hg_cpp-0.3.1/tests/cpp/test_tsd_proxy.cpp +1326 -0
- hg_cpp-0.3.1/tests/cpp/test_type_erasure_layout.cpp +264 -0
- hg_cpp-0.3.1/tests/cpp/test_type_pointer.cpp +549 -0
- hg_cpp-0.3.1/tests/cpp/test_type_record.cpp +636 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_type_registry.cpp +126 -11
- hg_cpp-0.3.1/tests/cpp/test_value.cpp +595 -0
- hg_cpp-0.3.1/tests/cpp/type_erasure_perf.cpp +670 -0
- hg_cpp-0.3.1/tests/debugger/debugger_fixture.cpp +80 -0
- hg_cpp-0.3.1/tests/debugger/test_debugger_common.py +215 -0
- hg_cpp-0.3.1/tools/debugger/README.md +72 -0
- hg_cpp-0.3.1/tools/debugger/hgraph_debug_common.py +419 -0
- hg_cpp-0.3.1/tools/debugger/hgraph_gdb.py +625 -0
- hg_cpp-0.3.1/tools/debugger/hgraph_lldb.py +687 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/uv.lock +17 -4
- hg_cpp-0.3.0/include/hgraph/lib/std/operators/convert_target.h +0 -22
- hg_cpp-0.3.0/include/hgraph/lib/std/operators/impl/io_impl.h +0 -72
- hg_cpp-0.3.0/include/hgraph/lib/std/operators/impl/stream_impl.h +0 -754
- hg_cpp-0.3.0/include/hgraph/lib/std/operators/impl/table_impl.h +0 -114
- hg_cpp-0.3.0/include/hgraph/lib/std/operators/table.h +0 -39
- hg_cpp-0.3.0/include/hgraph/runtime/evaluation_clock.h +0 -145
- hg_cpp-0.3.0/include/hgraph/types/metadata/type_binding.h +0 -165
- hg_cpp-0.3.0/include/hgraph/types/time_series/ts_data/storage.h +0 -34
- hg_cpp-0.3.0/python/hgraph/_compat.py +0 -92
- hg_cpp-0.3.0/python/hgraph/test/__init__.py +0 -4
- hg_cpp-0.3.0/src/hgraph/lib/std/operators/io_impl.cpp +0 -19
- hg_cpp-0.3.0/src/hgraph/lib/std/operators/table_impl.cpp +0 -11
- hg_cpp-0.3.0/src/hgraph/types/metadata/ts_data_plan_factory.cpp +0 -374
- hg_cpp-0.3.0/src/hgraph/types/registry_reset.cpp +0 -42
- hg_cpp-0.3.0/src/hgraph/types/time_series/ts_data/storage.cpp +0 -37
- hg_cpp-0.3.0/tests/cpp/test_tsd_proxy.cpp +0 -133
- hg_cpp-0.3.0/tests/cpp/test_value.cpp +0 -351
- hg_cpp-0.3.0/tools/debugger/README.md +0 -64
- hg_cpp-0.3.0/tools/debugger/hgraph_gdb.py +0 -768
- hg_cpp-0.3.0/tools/debugger/hgraph_lldb.py +0 -855
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/.gitignore +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/.gitmodules +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/.readthedocs.yaml +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/AGENTS.md +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/CMakePresets.json +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/README.md +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/conan_provider.cmake +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/Makefile +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/requirements.txt +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/conf.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/architecture.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/core_concepts.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/linking_strategies.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/overview/execution_layer.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/overview/index.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/plans_and_ops/index.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/refinements.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/schemas/index.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/data_structures/schemas/static_schema.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/documentation_conventions.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/graph_wiring.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/index.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/mesh.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/roadmap.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/services.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/testing.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/developer_guide/wiring.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/index.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/authoring_graphs_cpp.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/authoring_nodes_cpp.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/core_concepts.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/index.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/quick_start.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/testing_graphs_cpp.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/docs/source/user_guide/what_is_hgraph.rst +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/config.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/hgraph.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/hgraph_export.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/lifted_kernels.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/collection.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/comparison.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/container.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/conversion.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/higher_order.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/control_impl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/logical_impl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/record_replay_frame_impl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/reduce_layout.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/temporal_impl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/tsb_itemwise_impl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/impl/tsl_itemwise_impl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/json.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/logical.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/operators.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/registration.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/string.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/syntax.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/operators/temporal.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/standard_types.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/std_nodes.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/std/std_operators.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/testing/check_output.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/testing/eval_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/lib/testing/runtime_support.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/python/chrono.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/context_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/feedback_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/global_state.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/lifecycle_observer.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/logger.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/node_error.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/node_scheduler.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/push_source_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/race_tsd_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/runtime.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/service_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/shared_output_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/runtime/try_except_node.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/call_args.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/context_wiring.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/frame.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/lift.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/metadata/type_meta_data.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/primitive_types.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/record_replay.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/series.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/service_runtime.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/static_schema.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/endpoint_schema.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_data.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_delta.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/bundle_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/dict_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/list_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/set_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/typed_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_input/view_common.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/bundle_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/dict_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/list_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/set_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/typed_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/view_common.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series/ts_output/window_view.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/time_series_reference.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/type_pattern.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/utils/intern_table.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/utils/slot_observer.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/value/value_range.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/types/wired_fn.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/util/date_time.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/util/scope.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/util/tagged_ptr.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/hgraph/version.h.in +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/third_party/ankerl/stl.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/third_party/ankerl/unordered_dense.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/third_party/sul/LICENSE +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/include/third_party/sul/dynamic_bitset.hpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/CMakeLists.txt +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/_operators/__init__.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/_operators/_stream.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/hgraph/arrow.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/__init__.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_compound_scalar_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_date_time_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_general_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_mapping_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_set_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_tsd_converion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_tsl_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_tss_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/_conversion_operators/test_tuple_conversion_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_bool_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_const.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_control_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_date_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_datetime_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_frozendict_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_frozenset_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_json.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_logical.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_series_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_set_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_str_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_time_series_properties.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tsb_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tsd_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tsl_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tss_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tsw_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tuple_operator.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_tuple_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/ported/_operators/test_wp_operators.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/test_bridge.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/test_hgraph_api.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/python/tests/test_packaging.py +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/collection_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/control_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/higher_order_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/logical_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/record_replay_frame_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/series_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/string_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/lib/std/operators/temporal_impl.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/pch.h +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/context_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/feedback_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/logger.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/push_source_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/race_tsd_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/shared_output_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/runtime/try_except_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/frame.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/primitive_types.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/record_replay.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/series.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/endpoint_owner.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/endpoint_schema.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/bundle_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/dict_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/list_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_input/set_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/dict_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/set_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/types/time_series/ts_output/window_view.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/util/date_time.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/src/hgraph/version.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/CMakeLists.txt +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/json_perf.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/lift/test_lift.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/registry_test_listener.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_check_output.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_collection_nodes.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_const_eval.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_context_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_context_wiring.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_endpoint_owner.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_erased_wiring.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_error_handling.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_eval_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_feedback.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_intern_table.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_logger.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_node_scheduler.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_operators.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_record_replay.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_record_replay_frame.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_reduce.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_ref_executor.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_scope.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_service_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_service_runtime.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_service_wiring.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_shared_output_node.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_simulation_execution.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_static_schema.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_ts_delta.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_tsl_nodes.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_tss_nodes.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_type_resolution.cpp +0 -0
- {hg_cpp-0.3.0 → hg_cpp-0.3.1}/tests/cpp/test_value_types.cpp +0 -0
|
@@ -34,24 +34,20 @@ jobs:
|
|
|
34
34
|
env:
|
|
35
35
|
RELEASE_TAG: ${{ github.ref_name }}
|
|
36
36
|
run: |
|
|
37
|
-
from pathlib import Path
|
|
38
37
|
from urllib.error import HTTPError
|
|
39
38
|
from urllib.request import urlopen
|
|
40
39
|
import os
|
|
41
40
|
import re
|
|
42
|
-
import tomllib
|
|
43
41
|
|
|
44
42
|
tag = os.environ["RELEASE_TAG"]
|
|
45
43
|
match = re.fullmatch(r"v_(\d+\.\d+\.\d+)", tag)
|
|
46
44
|
if match is None:
|
|
47
45
|
raise SystemExit(f"release tag must match v_x.x.x, got {tag!r}")
|
|
48
46
|
|
|
49
|
-
project
|
|
47
|
+
# The TAG is the version authority: the project version in
|
|
48
|
+
# pyproject.toml is ignored for releases (the publish job restamps
|
|
49
|
+
# the tested artifacts' metadata to the tag version).
|
|
50
50
|
version = match.group(1)
|
|
51
|
-
if project["version"] != version:
|
|
52
|
-
raise SystemExit(
|
|
53
|
-
f"tag {tag!r} does not match project version {project['version']!r}"
|
|
54
|
-
)
|
|
55
51
|
|
|
56
52
|
try:
|
|
57
53
|
with urlopen(f"https://pypi.org/pypi/hg_cpp/{version}/json"):
|
|
@@ -318,6 +314,117 @@ jobs:
|
|
|
318
314
|
merge-multiple: true
|
|
319
315
|
github-token: ${{ github.token }}
|
|
320
316
|
run-id: ${{ needs.reuse-build.outputs.run-id || github.run_id }}
|
|
317
|
+
- name: Restamp distributions to the tag version
|
|
318
|
+
shell: python
|
|
319
|
+
env:
|
|
320
|
+
RELEASE_TAG: ${{ github.ref_name }}
|
|
321
|
+
run: |
|
|
322
|
+
# The TAG is the version authority. The distributions were built
|
|
323
|
+
# (and fully tested) at whatever version pyproject.toml carried -
|
|
324
|
+
# rewriting the version is a METADATA-ONLY operation, so the
|
|
325
|
+
# expensive compiled artifacts are reused byte-identical.
|
|
326
|
+
import base64
|
|
327
|
+
import csv
|
|
328
|
+
import hashlib
|
|
329
|
+
import io
|
|
330
|
+
import os
|
|
331
|
+
import re
|
|
332
|
+
import tarfile
|
|
333
|
+
import zipfile
|
|
334
|
+
from pathlib import Path
|
|
335
|
+
|
|
336
|
+
version = os.environ["RELEASE_TAG"].removeprefix("v_")
|
|
337
|
+
|
|
338
|
+
def record_hash(data: bytes) -> str:
|
|
339
|
+
digest = base64.urlsafe_b64encode(hashlib.sha256(data).digest())
|
|
340
|
+
return "sha256=" + digest.decode().rstrip("=")
|
|
341
|
+
|
|
342
|
+
def restamp_wheel(path: Path) -> None:
|
|
343
|
+
name, old_version, rest = path.name.split("-", 2)
|
|
344
|
+
if old_version == version:
|
|
345
|
+
print(f"{path.name}: already at {version}")
|
|
346
|
+
return
|
|
347
|
+
old_info = f"{name}-{old_version}.dist-info"
|
|
348
|
+
new_info = f"{name}-{version}.dist-info"
|
|
349
|
+
entries = {}
|
|
350
|
+
with zipfile.ZipFile(path) as archive:
|
|
351
|
+
for item in archive.infolist():
|
|
352
|
+
entries[item.filename] = archive.read(item.filename)
|
|
353
|
+
renamed = {}
|
|
354
|
+
for item_name, data in entries.items():
|
|
355
|
+
new_name = item_name.replace(old_info + "/", new_info + "/")
|
|
356
|
+
if new_name == f"{new_info}/METADATA":
|
|
357
|
+
text = data.decode()
|
|
358
|
+
text, count = re.subn(rf"(?m)^Version: {re.escape(old_version)}$",
|
|
359
|
+
f"Version: {version}", text, count=1)
|
|
360
|
+
assert count == 1, "wheel METADATA Version line not found"
|
|
361
|
+
data = text.encode()
|
|
362
|
+
renamed[new_name] = data
|
|
363
|
+
record_name = f"{new_info}/RECORD"
|
|
364
|
+
rows = []
|
|
365
|
+
for row in csv.reader(io.StringIO(renamed[record_name].decode())):
|
|
366
|
+
if not row:
|
|
367
|
+
continue
|
|
368
|
+
entry = row[0].replace(old_info + "/", new_info + "/")
|
|
369
|
+
if entry == record_name:
|
|
370
|
+
rows.append([entry, "", ""])
|
|
371
|
+
else:
|
|
372
|
+
data = renamed[entry]
|
|
373
|
+
rows.append([entry, record_hash(data), str(len(data))])
|
|
374
|
+
buffer = io.StringIO(newline="")
|
|
375
|
+
csv.writer(buffer, lineterminator="\n").writerows(rows)
|
|
376
|
+
renamed[record_name] = buffer.getvalue().encode()
|
|
377
|
+
new_path = path.with_name(path.name.replace(f"-{old_version}-", f"-{version}-", 1))
|
|
378
|
+
with zipfile.ZipFile(new_path, "w", zipfile.ZIP_DEFLATED) as archive:
|
|
379
|
+
for item_name, data in renamed.items():
|
|
380
|
+
archive.writestr(item_name, data)
|
|
381
|
+
if new_path != path:
|
|
382
|
+
path.unlink()
|
|
383
|
+
print(f"{path.name} -> {new_path.name}")
|
|
384
|
+
|
|
385
|
+
def restamp_sdist(path: Path) -> None:
|
|
386
|
+
name, old_version = path.name.removesuffix(".tar.gz").rsplit("-", 1)
|
|
387
|
+
if old_version == version:
|
|
388
|
+
print(f"{path.name}: already at {version}")
|
|
389
|
+
return
|
|
390
|
+
old_root = f"{name}-{old_version}"
|
|
391
|
+
new_root = f"{name}-{version}"
|
|
392
|
+
members = []
|
|
393
|
+
with tarfile.open(path, "r:gz") as archive:
|
|
394
|
+
for member in archive.getmembers():
|
|
395
|
+
data = archive.extractfile(member).read() if member.isfile() else None
|
|
396
|
+
member.name = member.name.replace(old_root, new_root, 1)
|
|
397
|
+
# long (>100 char) paths ride PAX 'path' headers which
|
|
398
|
+
# would override the renamed member.name at write time.
|
|
399
|
+
member.pax_headers.pop("path", None)
|
|
400
|
+
member.pax_headers.pop("linkpath", None)
|
|
401
|
+
if member.name == f"{new_root}/PKG-INFO":
|
|
402
|
+
text = data.decode()
|
|
403
|
+
text, count = re.subn(rf"(?m)^Version: {re.escape(old_version)}$",
|
|
404
|
+
f"Version: {version}", text, count=1)
|
|
405
|
+
assert count == 1, "sdist PKG-INFO Version line not found"
|
|
406
|
+
data = text.encode()
|
|
407
|
+
elif member.name == f"{new_root}/pyproject.toml":
|
|
408
|
+
text = data.decode()
|
|
409
|
+
text, count = re.subn(r'(?m)^version = "[^"]+"$',
|
|
410
|
+
f'version = "{version}"', text, count=1)
|
|
411
|
+
assert count == 1, "sdist pyproject.toml version not found"
|
|
412
|
+
data = text.encode()
|
|
413
|
+
if data is not None:
|
|
414
|
+
member.size = len(data)
|
|
415
|
+
members.append((member, data))
|
|
416
|
+
new_path = path.with_name(f"{new_root}.tar.gz")
|
|
417
|
+
with tarfile.open(new_path, "w:gz") as archive:
|
|
418
|
+
for member, data in members:
|
|
419
|
+
archive.addfile(member, io.BytesIO(data) if data is not None else None)
|
|
420
|
+
if new_path != path:
|
|
421
|
+
path.unlink()
|
|
422
|
+
print(f"{path.name} -> {new_path.name}")
|
|
423
|
+
|
|
424
|
+
for wheel in sorted(Path("dist").glob("*.whl")):
|
|
425
|
+
restamp_wheel(wheel)
|
|
426
|
+
for sdist in sorted(Path("dist").glob("*.tar.gz")):
|
|
427
|
+
restamp_sdist(sdist)
|
|
321
428
|
- name: Publish package distributions to PyPI
|
|
322
429
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
323
430
|
with:
|
|
@@ -196,6 +196,22 @@ dynamic-TSL multiplexing/reduce, non-associative reduce, sink maps/switches.
|
|
|
196
196
|
**C++ only for
|
|
197
197
|
now** — keep Python out of the configure/build/run path.
|
|
198
198
|
|
|
199
|
+
**Python operator-test port — DONE (2026-07-11).** All **48** upstream
|
|
200
|
+
`hgraph_unit_tests/_operators` files are ported into `python/tests/ported`
|
|
201
|
+
(ctest gate `hgraph_python_ported_suite`, ~790 tests green). En route the
|
|
202
|
+
runtime gained: real py-node input activity, first-class **enums**, the
|
|
203
|
+
**TABLE tuple-row protocol** + data-frame operators (`record_replay_table.rst`
|
|
204
|
+
step 6), `exception_time_series` bridged, `type_`, TSW `std`, tuple-of-CS
|
|
205
|
+
`getattr_`, strict unnamed-TSB combine, and **map value holes** (None-valued
|
|
206
|
+
entries; scalar.rst). Calling conventions are REGISTRY-driven (scalar kwargs
|
|
207
|
+
lift to const in call normalisation; subscript meaning via
|
|
208
|
+
`operator_output_is_selective`; generic targets via
|
|
209
|
+
`resolve_convert/collect/combine_target` — never label/name tests in the
|
|
210
|
+
bridge). Standing residue (marked precisely in the tests, see
|
|
211
|
+
`parity_matrix.rst`): 3 accepted gaps (TSS rebind removals, sparse TSB
|
|
212
|
+
deltas, `hgraph.stream` generics) + recorded deviations. Follow-on tiers
|
|
213
|
+
(not planned): upstream `ts_tests/` (215), `_wiring/` (244).
|
|
214
|
+
|
|
199
215
|
**Mesh, services & shared outputs — DONE** (design records:
|
|
200
216
|
`docs/source/developer_guide/mesh.rst` and `docs/source/developer_guide/services.rst`,
|
|
201
217
|
authoritative). `mesh_` over TSD executes (on-demand instances via
|
|
@@ -165,7 +165,16 @@ if(HGRAPH_BUILD_PYTHON_BINDINGS)
|
|
|
165
165
|
$<BUILD_INTERFACE:simdjson::simdjson>
|
|
166
166
|
)
|
|
167
167
|
else()
|
|
168
|
+
# json_impl.cpp uses simdjson::dom::element_type::BIGINT, introduced in
|
|
169
|
+
# simdjson 4.5 (the FetchContent path above pins v4.6.4). Distro packages
|
|
170
|
+
# can be older (Ubuntu 24.04 ships 3.x), so enforce the floor here. The
|
|
171
|
+
# check is explicit because simdjson's package version file uses
|
|
172
|
+
# same-minor compatibility, which would also reject newer 4.x releases.
|
|
168
173
|
find_package(simdjson CONFIG REQUIRED)
|
|
174
|
+
if(simdjson_VERSION VERSION_LESS 4.5)
|
|
175
|
+
message(FATAL_ERROR "hgraph requires simdjson >= 4.5 for "
|
|
176
|
+
"dom::element_type::BIGINT; found ${simdjson_VERSION}")
|
|
177
|
+
endif()
|
|
169
178
|
target_link_libraries(hgraph_options INTERFACE simdjson::simdjson)
|
|
170
179
|
endif()
|
|
171
180
|
|
|
@@ -504,6 +513,7 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/tools/debugger")
|
|
|
504
513
|
FILES_MATCHING
|
|
505
514
|
PATTERN "*.py"
|
|
506
515
|
PATTERN "README.md"
|
|
516
|
+
PATTERN "__pycache__" EXCLUDE
|
|
507
517
|
)
|
|
508
518
|
endif()
|
|
509
519
|
|
|
@@ -519,6 +529,15 @@ set(_hgraph_config_dependencies
|
|
|
519
529
|
"find_dependency(Arrow CONFIG)\n"
|
|
520
530
|
"find_dependency(ArrowCompute CONFIG)\n"
|
|
521
531
|
"find_dependency(spdlog CONFIG)\n"
|
|
532
|
+
# Both installed-config flavours reference simdjson::simdjson (the
|
|
533
|
+
# non-bindings export links it; the bindings config re-links it below),
|
|
534
|
+
# and the code needs dom::element_type::BIGINT from simdjson 4.5. The
|
|
535
|
+
# floor is an explicit check because simdjson's package version file
|
|
536
|
+
# uses same-minor compatibility.
|
|
537
|
+
"find_dependency(simdjson CONFIG)\n"
|
|
538
|
+
"if(simdjson_VERSION VERSION_LESS 4.5)\n"
|
|
539
|
+
" message(FATAL_ERROR \"hgraph requires simdjson >= 4.5; found \${simdjson_VERSION}\")\n"
|
|
540
|
+
"endif()\n"
|
|
522
541
|
)
|
|
523
542
|
if(HGRAPH_BUILD_PYTHON_BINDINGS OR HGRAPH_ENABLE_PYTHON_USER_NODES)
|
|
524
543
|
if(_hgraph_use_python_stable_abi)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: hg_cpp
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Preview distribution of the C++ first hgraph runtime and Python compatibility bridge
|
|
5
5
|
Keywords: reactive,graph,forward propagating graph,time series,functional reactive programming,c++
|
|
6
6
|
Author-Email: Howard Henson <howard@henson.me.uk>
|
|
@@ -18,6 +18,24 @@ Current Targets
|
|
|
18
18
|
``hgraph_core``
|
|
19
19
|
Core runtime target. This is exported publicly as ``hgraph::core``.
|
|
20
20
|
|
|
21
|
+
Third-Party Dependencies
|
|
22
|
+
------------------------
|
|
23
|
+
|
|
24
|
+
``simdjson`` **requires version 4.5 or newer** — ``json_impl.cpp`` uses
|
|
25
|
+
``simdjson::dom::element_type::BIGINT``, which first appeared in 4.5. Wheel
|
|
26
|
+
builds (``HGRAPH_BUILD_PYTHON_BINDINGS=ON``) fetch a pinned release (currently
|
|
27
|
+
v4.6.4) and link it statically; the default C++ build resolves a system package
|
|
28
|
+
via ``find_package(simdjson CONFIG REQUIRED)`` followed by an explicit
|
|
29
|
+
``simdjson_VERSION`` check, which rejects older distro packages (Ubuntu 24.04
|
|
30
|
+
ships 3.x) at configure time instead of failing mid compile. The check is
|
|
31
|
+
explicit rather than a ``find_package`` version argument because simdjson's
|
|
32
|
+
package version file uses same-minor compatibility (requesting 4.5 would
|
|
33
|
+
reject 4.6.x). The installed ``hgraphConfig.cmake`` carries the same floor.
|
|
34
|
+
|
|
35
|
+
``HGRAPH_WARNINGS_AS_ERRORS`` applies to this project's targets only;
|
|
36
|
+
third-party dependencies such as simdjson build with their own flags and are
|
|
37
|
+
not expected to be warning-clean under ours.
|
|
38
|
+
|
|
21
39
|
Version Header
|
|
22
40
|
--------------
|
|
23
41
|
|
|
@@ -109,11 +109,11 @@ Core elements:
|
|
|
109
109
|
Runtime bindings for graph inputs, outputs, nested graph boundaries, and parent/child graph communication.
|
|
110
110
|
|
|
111
111
|
``GraphStorage``
|
|
112
|
-
Memory owned by the graph instance. A compiled graph
|
|
112
|
+
Memory owned by the graph instance. A compiled graph type record carries a
|
|
113
113
|
fixed-size storage plan with a graph header, a heterogeneous node-storage
|
|
114
114
|
tuple, and a parallel ``DateTime`` schedule array sized from the graph
|
|
115
|
-
topology. The graph
|
|
116
|
-
``node_index`` to ``(
|
|
115
|
+
topology. The graph record's ops context also carries the node-location table that maps
|
|
116
|
+
``node_index`` to ``(NodeTypeRef, storage_offset)``. Creating a graph
|
|
117
117
|
instance therefore performs one graph storage allocation rather than
|
|
118
118
|
allocating separate vectors for nodes and schedules.
|
|
119
119
|
|
|
@@ -43,36 +43,40 @@ This is the load-bearing reason values are type-erased rather than
|
|
|
43
43
|
generic-templated: it lets the time-series layer reuse the value-layer
|
|
44
44
|
container vocabulary without forking the surface.
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
Type record: the shared anchor
|
|
47
|
+
------------------------------
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
schema, plan,
|
|
49
|
+
Value type erasure is held together by the common ``TypeRecord``. It records
|
|
50
|
+
the schema, family role, storage plan, ops table, capabilities, and optional
|
|
51
|
+
debug descriptor for one implementation:
|
|
51
52
|
|
|
52
53
|
.. code-block:: cpp
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
const
|
|
55
|
+
struct TypeRecord {
|
|
56
|
+
TypeRole role;
|
|
57
|
+
TypeCapabilities capabilities;
|
|
58
|
+
const SchemaHeader* schema;
|
|
59
|
+
const MemoryUtils::StoragePlan* plan;
|
|
60
|
+
const void* ops;
|
|
61
|
+
const DebugDescriptor* debug;
|
|
59
62
|
};
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
class ValueTypeRef {
|
|
65
|
+
const TypeRecord* record;
|
|
66
|
+
};
|
|
62
67
|
|
|
63
|
-
A ``
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
A ``ValueTypeRef`` is a one-word, trivially-copyable typed reference to a
|
|
69
|
+
value-family ``Instance`` record. ``Value``, ``ValueView``, and builders use
|
|
70
|
+
it to reach schema, plan, lifecycle, capabilities, and ``ValueOps``.
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
``intern_value_type`` interns one record per ``(schema header, Instance role,
|
|
73
|
+
plan, ops)`` key in ``TypeRecordRegistry``. ``ValuePlanFactory`` caches
|
|
74
|
+
``schema -> ValueTypeRef`` by value; there is no value-family binding side
|
|
75
|
+
registry.
|
|
71
76
|
|
|
72
|
-
Composite
|
|
73
|
-
list, map, or other container schema synthesises its plan from
|
|
74
|
-
|
|
75
|
-
builder.
|
|
77
|
+
Composite types populate lazily. The first ``type_for`` request for a tuple,
|
|
78
|
+
list, map, or other container schema synthesises its plan from child type
|
|
79
|
+
refs and interns the resulting common record.
|
|
76
80
|
|
|
77
81
|
The View
|
|
78
82
|
--------
|
|
@@ -81,17 +85,22 @@ A view is the type-erased non-owning handle:
|
|
|
81
85
|
|
|
82
86
|
.. code-block:: cpp
|
|
83
87
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
void* data;
|
|
88
|
+
class ValueView {
|
|
89
|
+
ValuePtr pointer; // tagged TypeRecord pointer + borrowed data pointer
|
|
87
90
|
};
|
|
88
91
|
|
|
89
|
-
The
|
|
90
|
-
data pointer addresses the
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
The record gives the view its schema, plan, lifecycle, capabilities, and ops;
|
|
93
|
+
the data pointer addresses the borrowed payload. ``ValueView`` is exactly two
|
|
94
|
+
words and is move-only. Specialised view adapters carry at least this context
|
|
95
|
+
and may cache resolved ops or layout facts established at construction time.
|
|
96
|
+
|
|
97
|
+
Record structure and value-family identity are validated when records are
|
|
98
|
+
interned and when a generic ``AnyPtr`` is narrowed with
|
|
99
|
+
``ValueTypeRef::checked``. A ``ValueView`` constructed from that trusted
|
|
100
|
+
``ValueTypeRef`` reads its record, payload, and access tag directly; ordinary
|
|
101
|
+
``valid()``, ``has_value()``, and typed value operations do not repeat
|
|
102
|
+
``TypeRecord::valid`` on every access. Explicit access-mode transitions, such
|
|
103
|
+
as opening a mutation view, retain their transition checks.
|
|
95
104
|
|
|
96
105
|
A view exposes:
|
|
97
106
|
|
|
@@ -101,7 +110,7 @@ A view exposes:
|
|
|
101
110
|
atomic kinds;
|
|
102
111
|
- generic ops: ``hash()``, ``equals()``, ``compare()``, ``to_string()``,
|
|
103
112
|
``clone()``, ``copy_from()``, ``try_copy_from()``
|
|
104
|
-
— routed through the
|
|
113
|
+
— routed through the type record; ``compare()`` returns
|
|
105
114
|
``std::partial_ordering`` as the common erased representation of
|
|
106
115
|
``operator<=>`` results. Compact containers use their bound ops table,
|
|
107
116
|
while structured tuple/bundle/fixed-list views recurse through child
|
|
@@ -136,7 +145,7 @@ Both families are mirrored on the owning ``Value`` itself
|
|
|
136
145
|
``Value`` do not need to dereference into a ``ValueView`` and then
|
|
137
146
|
cast again.
|
|
138
147
|
|
|
139
|
-
These casts only re-interpret the existing
|
|
148
|
+
These casts only re-interpret the existing type record's view shape. They
|
|
140
149
|
do not change the underlying schema or copy the payload. Cross-schema
|
|
141
150
|
adaptation — exposing one schema's value through a different schema —
|
|
142
151
|
is a time-series concern, not a value-layer concern.
|
|
@@ -166,7 +175,7 @@ discipline:
|
|
|
166
175
|
key insertion and value updates on maps, and so on.
|
|
167
176
|
|
|
168
177
|
The generic erased handle can represent writable and mutable states
|
|
169
|
-
without adding a third pointer word: the
|
|
178
|
+
without adding a third pointer word: the type-record pointer carries a
|
|
170
179
|
small tag. A mutable view is obtained from a writable view by calling
|
|
171
180
|
``begin_mutation()``. The transition is explicit so that consumers can
|
|
172
181
|
reason about when mutation is in scope — the time-series layer in
|
|
@@ -227,7 +236,7 @@ Specialised Views
|
|
|
227
236
|
|
|
228
237
|
Each kind has a specialised **read-only** view that adds kind-specific
|
|
229
238
|
access on top of ``ValueView``. Specialised views hold at least the
|
|
230
|
-
same ``
|
|
239
|
+
same ``ValuePtr`` context as ``ValueView`` and may cache
|
|
231
240
|
resolved ops pointers or other construction-time facts to keep later
|
|
232
241
|
calls free of repeated validation. Most share an ``IndexedValueView``
|
|
233
242
|
base for the kinds that are addressed positionally.
|