Coverage report: 85.58%

Files Functions Classes

coverage.py v7.13.4, created at 2026-05-08 09:24 +0000

File function   statements missing excluded   coverage
src / invariant / __init__.py (no function)   16 2 0   87.50%
src / invariant / __main__.py (no function)   2 2 0   0.00%
src / invariant / async_executor.py AsyncExecutor.__init__   4 0 0   100.00%
src / invariant / async_executor.py AsyncExecutor.__aenter__   1 0 0   100.00%
src / invariant / async_executor.py AsyncExecutor.__aexit__   1 0 0   100.00%
src / invariant / async_executor.py AsyncExecutor.aclose   3 0 0   100.00%
src / invariant / async_executor.py AsyncExecutor.execute   3 0 0   100.00%
src / invariant / async_executor.py AsyncExecutor._execute_requested_outputs_async   18 1 0   94.44%
src / invariant / async_executor.py AsyncExecutor._execute_requested_outputs_async.check_wait_cycle   10 10 0   0.00%
src / invariant / async_executor.py AsyncExecutor._execute_requested_outputs_async.await_existing_task   11 11 0   0.00%
src / invariant / async_executor.py AsyncExecutor._execute_requested_outputs_async.resolve_artifact   19 6 0   68.42%
src / invariant / async_executor.py AsyncExecutor._execute_requested_outputs_async.run_graph_node   23 2 0   91.30%
src / invariant / async_executor.py AsyncExecutor._execute_node_async   25 0 0   100.00%
src / invariant / async_executor.py AsyncExecutor._invoke_and_store   4 0 0   100.00%
src / invariant / async_executor.py (no function)   19 0 0   100.00%
src / invariant / cacheable.py is_cacheable   28 1 0   96.43%
src / invariant / cacheable.py (no function)   5 0 0   100.00%
src / invariant / cli.py _build_parser   10 10 0   0.00%
src / invariant / cli.py _read_graph_arg   3 3 0   0.00%
src / invariant / cli.py _detect_input_format   8 3 0   62.50%
src / invariant / cli.py _load_input_document   5 1 0   80.00%
src / invariant / cli.py _load_context   6 6 0   0.00%
src / invariant / cli.py _parse_param_value   4 4 0   0.00%
src / invariant / cli.py _parse_param   4 4 0   0.00%
src / invariant / cli.py _load_params   1 1 0   0.00%
src / invariant / cli.py _encode_result_context   1 1 0   0.00%
src / invariant / cli.py _execute_cli   17 17 0   0.00%
src / invariant / cli.py _jsonable_output   3 3 0   0.00%
src / invariant / cli.py _write_json_output   2 2 0   0.00%
src / invariant / cli.py _write_binary_output   13 13 0   0.00%
src / invariant / cli.py _write_output_file   9 9 0   0.00%
src / invariant / cli.py main   11 11 0   0.00%
src / invariant / cli.py (no function)   33 0 2   100.00%
src / invariant / executor.py Executor.__init__   2 0 0   100.00%
src / invariant / executor.py Executor.execute   3 0 0   100.00%
src / invariant / executor.py Executor._execute_requested_outputs   9 0 0   100.00%
src / invariant / executor.py Executor._execute_requested_outputs.resolve_artifact   42 3 0   92.86%
src / invariant / executor.py Executor._normalize_outputs   18 3 0   83.33%
src / invariant / executor.py Executor._validate_switch_targets   6 0 0   100.00%
src / invariant / executor.py Executor._build_manifest   6 1 0   83.33%
src / invariant / executor.py Executor._resolve_selector   6 1 0   83.33%
src / invariant / executor.py Executor._select_switch_target   8 0 0   100.00%
src / invariant / executor.py Executor._normalize_switch_key   11 0 0   100.00%
src / invariant / executor.py Executor._execute_node   15 0 0   100.00%
src / invariant / executor.py Executor._invoke_op   1 0 0   100.00%
src / invariant / executor.py (no function)   21 0 3   100.00%
src / invariant / expressions.py resolve_params   4 0 0   100.00%
src / invariant / expressions.py _resolve_value   15 0 0   100.00%
src / invariant / expressions.py _evaluate_expression   13 0 0   100.00%
src / invariant / expressions.py _evaluate_cel   26 0 0   100.00%
src / invariant / expressions.py _value_to_cel   20 1 0   95.00%
src / invariant / expressions.py _icacheable_to_cel_map   9 2 0   77.78%
src / invariant / expressions.py _cel_to_python   24 3 0   87.50%
src / invariant / expressions.py _decimal_function   18 4 0   77.78%
src / invariant / expressions.py _min_function   5 0 0   100.00%
src / invariant / expressions.py _max_function   5 0 0   100.00%
src / invariant / expressions.py _extract_comparison_value   12 1 0   91.67%
src / invariant / expressions.py (no function)   20 0 0   100.00%
src / invariant / graph.py _switch_targets   4 4 0   0.00%
src / invariant / graph.py _graph_deps   1 0 0   100.00%
src / invariant / graph.py GraphResolver.__init__   1 0 0   100.00%
src / invariant / graph.py GraphResolver.validate   16 3 0   81.25%
src / invariant / graph.py GraphResolver._has_cycle   7 0 0   100.00%
src / invariant / graph.py GraphResolver._has_cycle.dfs   13 1 0   92.31%
src / invariant / graph.py GraphResolver.topological_sort   7 0 0   100.00%
src / invariant / graph.py GraphResolver.topological_sort.visit   12 1 0   91.67%
src / invariant / graph.py GraphResolver.resolve   2 0 0   100.00%
src / invariant / graph.py (no function)   12 0 2   100.00%
src / invariant / graph_serialization.py _encode_param_value   26 0 0   100.00%
src / invariant / graph_serialization.py _decode_param_value   25 1 0   96.00%
src / invariant / graph_serialization.py _decode_icacheable   28 8 0   71.43%
src / invariant / graph_serialization.py _encode_params   1 0 0   100.00%
src / invariant / graph_serialization.py _decode_params   1 0 0   100.00%
src / invariant / graph_serialization.py dump_value_to_jsonable   1 0 0   100.00%
src / invariant / graph_serialization.py load_value_from_jsonable   1 0 0   100.00%
src / invariant / graph_serialization.py _encode_vertex   11 0 0   100.00%
src / invariant / graph_serialization.py _decode_vertex   23 3 0   86.96%
src / invariant / graph_serialization.py _validate_node   18 5 0   72.22%
src / invariant / graph_serialization.py _validate_subgraph   19 6 0   68.42%
src / invariant / graph_serialization.py _validate_switch   21 8 0   61.90%
src / invariant / graph_serialization.py _validate_vertex_for_kind   16 9 0   43.75%
src / invariant / graph_serialization.py _encode_graph   1 0 0   100.00%
src / invariant / graph_serialization.py _decode_graph   7 1 0   85.71%
src / invariant / graph_serialization.py _validate_switch_targets   10 0 0   100.00%
src / invariant / graph_serialization.py _validate_output   6 1 0   83.33%
src / invariant / graph_serialization.py _validate_output_arg   6 1 0   83.33%
src / invariant / graph_serialization.py _validate_envelope   16 3 0   81.25%
src / invariant / graph_serialization.py dump_graph_to_dict   6 0 0   100.00%
src / invariant / graph_serialization.py dump_graph   1 0 0   100.00%
src / invariant / graph_serialization.py load_graph_document_from_dict   5 0 0   100.00%
src / invariant / graph_serialization.py load_graph_from_dict   2 0 0   100.00%
src / invariant / graph_serialization.py load_graph_document   4 0 0   100.00%
src / invariant / graph_serialization.py load_graph   2 0 0   100.00%
src / invariant / graph_serialization.py _encode_graph_document_payload   2 0 0   100.00%
src / invariant / graph_serialization.py _query_value_to_string   6 0 0   100.00%
src / invariant / graph_serialization.py _query_value_from_string   4 0 0   100.00%
src / invariant / graph_serialization.py dump_graph_data_uri   9 1 0   88.89%
src / invariant / graph_serialization.py graph_data_uri_cache_key   9 1 0   88.89%
src / invariant / graph_serialization.py _decode_query_context   8 0 0   100.00%
src / invariant / graph_serialization.py load_graph_data_uri   13 0 0   100.00%
src / invariant / graph_serialization.py (no function)   48 0 0   100.00%
src / invariant / hashing.py hash_value   27 0 0   100.00%
src / invariant / hashing.py hash_manifest   8 0 0   100.00%
src / invariant / hashing.py (no function)   7 0 0   100.00%
src / invariant / invocation.py invoke_op   17 2 0   88.24%
src / invariant / invocation.py (no function)   6 0 0   100.00%
src / invariant / node.py _collect_refs   10 0 0   100.00%
src / invariant / node.py Node.__post_init__   7 0 0   100.00%
src / invariant / node.py Node._validate_refs   5 0 0   100.00%
src / invariant / node.py SubGraphNode.__post_init__   9 0 0   100.00%
src / invariant / node.py SubGraphNode._validate_refs   5 0 0   100.00%
src / invariant / node.py SwitchNode.__post_init__   14 6 0   57.14%
src / invariant / node.py SwitchNode._validate_refs   5 0 0   100.00%
src / invariant / node.py (no function)   29 0 0   100.00%
src / invariant / ops / __init__.py (no function)   3 0 0   100.00%
src / invariant / ops / poly.py poly_from_coefficients   6 1 0   83.33%
src / invariant / ops / poly.py poly_add   7 0 0   100.00%
src / invariant / ops / poly.py poly_multiply   6 0 0   100.00%
src / invariant / ops / poly.py poly_scale   2 2 0   0.00%
src / invariant / ops / poly.py poly_derivative   6 1 0   83.33%
src / invariant / ops / poly.py poly_evaluate   4 0 0   100.00%
src / invariant / ops / poly.py (no function)   9 0 0   100.00%
src / invariant / ops / stdlib.py identity   1 0 0   100.00%
src / invariant / ops / stdlib.py add   1 0 0   100.00%
src / invariant / ops / stdlib.py multiply   1 0 0   100.00%
src / invariant / ops / stdlib.py dict_get   5 0 0   100.00%
src / invariant / ops / stdlib.py make_dict   1 0 0   100.00%
src / invariant / ops / stdlib.py make_list   1 0 0   100.00%
src / invariant / ops / stdlib.py coalesce   6 0 0   100.00%
src / invariant / ops / stdlib.py (no function)   9 0 0   100.00%
src / invariant / params.py (no function)   7 0 0   100.00%
src / invariant / protocol.py ICacheable.get_stable_hash   1 1 0   0.00%
src / invariant / protocol.py ICacheable.to_stream   1 1 0   0.00%
src / invariant / protocol.py ICacheable.from_stream   1 1 0   0.00%
src / invariant / protocol.py IJsonRepresentable.to_json_value   1 1 0   0.00%
src / invariant / protocol.py IJsonRepresentable.from_json_value   1 1 0   0.00%
src / invariant / protocol.py (no function)   16 2 0   87.50%
src / invariant / registry.py import_implementation_ref   13 3 0   76.92%
src / invariant / registry.py infer_implementation_ref   12 3 0   75.00%
src / invariant / registry.py OpRegistry.__new__   3 0 0   100.00%
src / invariant / registry.py OpRegistry.__init__   3 0 0   100.00%
src / invariant / registry.py OpRegistry.register   9 0 0   100.00%
src / invariant / registry.py OpRegistry.get   3 0 0   100.00%
src / invariant / registry.py OpRegistry.get_binding   3 1 0   66.67%
src / invariant / registry.py OpRegistry.traits   1 0 0   100.00%
src / invariant / registry.py OpRegistry.implementation_ref   1 0 0   100.00%
src / invariant / registry.py OpRegistry.has   1 0 0   100.00%
src / invariant / registry.py OpRegistry.clear   1 0 0   100.00%
src / invariant / registry.py OpRegistry.register_package   18 3 0   83.33%
src / invariant / registry.py OpRegistry.auto_discover   15 6 0   60.00%
src / invariant / registry.py (no function)   30 0 0   100.00%
src / invariant / scheduler.py InvocationScheduler.invoke   1 1 0   0.00%
src / invariant / scheduler.py InlineScheduler.invoke   1 0 0   100.00%
src / invariant / scheduler.py ThreadPoolScheduler.__init__   4 4 0   0.00%
src / invariant / scheduler.py ThreadPoolScheduler.invoke   2 2 0   0.00%
src / invariant / scheduler.py ThreadPoolScheduler.aclose   2 2 0   0.00%
src / invariant / scheduler.py ProcessPoolScheduler.__init__   4 1 0   75.00%
src / invariant / scheduler.py ProcessPoolScheduler.invoke   6 0 0   100.00%
src / invariant / scheduler.py ProcessPoolScheduler.aclose   2 0 0   100.00%
src / invariant / scheduler.py RoutingScheduler.__init__   3 0 0   100.00%
src / invariant / scheduler.py RoutingScheduler.invoke   5 0 0   100.00%
src / invariant / scheduler.py RoutingScheduler.aclose   4 4 0   0.00%
src / invariant / scheduler.py _process_worker_invoke   13 13 0   0.00%
src / invariant / scheduler.py (no function)   35 0 0   100.00%
src / invariant / store / __init__.py (no function)   6 0 0   100.00%
src / invariant / store / base.py ArtifactStore.__init__   1 0 0   100.00%
src / invariant / store / base.py ArtifactStore.reset_stats   1 0 0   100.00%
src / invariant / store / base.py ArtifactStore.exists   1 1 0   0.00%
src / invariant / store / base.py ArtifactStore.get   1 1 0   0.00%
src / invariant / store / base.py ArtifactStore.put   1 1 0   0.00%
src / invariant / store / base.py (no function)   17 0 0   100.00%
src / invariant / store / chain.py ChainStore.__init__   3 0 0   100.00%
src / invariant / store / chain.py ChainStore.exists   8 0 0   100.00%
src / invariant / store / chain.py ChainStore.get   7 0 0   100.00%
src / invariant / store / chain.py ChainStore.put   3 0 0   100.00%
src / invariant / store / chain.py (no function)   9 0 0   100.00%
src / invariant / store / codec.py serialize   5 0 0   100.00%
src / invariant / store / codec.py deserialize   2 0 0   100.00%
src / invariant / store / codec.py _serialize_value   53 0 0   100.00%
src / invariant / store / codec.py _deserialize_value   85 0 0   100.00%
src / invariant / store / codec.py (no function)   10 0 0   100.00%
src / invariant / store / disk.py DiskStore.__init__   11 1 0   90.91%
src / invariant / store / disk.py DiskStore._make_key   3 0 0   100.00%
src / invariant / store / disk.py DiskStore.exists   6 0 0   100.00%
src / invariant / store / disk.py DiskStore.get   5 0 0   100.00%
src / invariant / store / disk.py DiskStore.put   6 1 0   83.33%
src / invariant / store / disk.py DiskStore.close   1 0 0   100.00%
src / invariant / store / disk.py DiskStore.__del__   4 2 0   50.00%
src / invariant / store / disk.py (no function)   14 0 0   100.00%
src / invariant / store / memory.py _create_cache   3 0 0   100.00%
src / invariant / store / memory.py MemoryStore.__init__   18 1 0   94.44%
src / invariant / store / memory.py MemoryStore._make_key   1 0 0   100.00%
src / invariant / store / memory.py MemoryStore.exists   6 0 0   100.00%
src / invariant / store / memory.py MemoryStore.get   4 0 0   100.00%
src / invariant / store / memory.py MemoryStore.put   5 1 0   80.00%
src / invariant / store / memory.py MemoryStore.clear   2 0 0   100.00%
src / invariant / store / memory.py (no function)   15 0 0   100.00%
src / invariant / store / null.py NullStore.exists   1 0 0   100.00%
src / invariant / store / null.py NullStore.get   1 0 0   100.00%
src / invariant / store / null.py NullStore.put   1 0 0   100.00%
src / invariant / store / null.py (no function)   6 0 0   100.00%
src / invariant / traits.py normalize_trait   6 2 0   66.67%
src / invariant / traits.py normalize_traits   3 0 0   100.00%
src / invariant / traits.py op_traits   3 0 0   100.00%
src / invariant / traits.py op_traits.decorate   3 0 0   100.00%
src / invariant / traits.py decorated_traits   1 0 0   100.00%
src / invariant / traits.py (no function)   16 0 0   100.00%
src / invariant / types.py Polynomial.__init__   6 0 0   100.00%
src / invariant / types.py Polynomial.get_stable_hash   2 0 0   100.00%
src / invariant / types.py Polynomial.to_stream   3 0 0   100.00%
src / invariant / types.py Polynomial.from_stream   6 0 0   100.00%
src / invariant / types.py Polynomial.__eq__   3 1 0   66.67%
src / invariant / types.py Polynomial.__repr__   0 0 2   100.00%
src / invariant / types.py Polynomial.to_json_value   1 0 0   100.00%
src / invariant / types.py Polynomial.from_json_value   3 0 0   100.00%
src / invariant / types.py (no function)   13 0 1   100.00%
src / invariant / yaml_serialization.py _require_yaml   5 0 0   100.00%
src / invariant / yaml_serialization.py _require_resource_registry   5 0 0   100.00%
src / invariant / yaml_serialization.py _construct_ref   1 0 0   100.00%
src / invariant / yaml_serialization.py _construct_cel   1 0 0   100.00%
src / invariant / yaml_serialization.py _construct_decimal   1 0 0   100.00%
src / invariant / yaml_serialization.py _construct_tuple   3 1 0   66.67%
src / invariant / yaml_serialization.py _construct_plain_value   7 3 0   57.14%
src / invariant / yaml_serialization.py _construct_literal   1 0 0   100.00%
src / invariant / yaml_serialization.py _construct_icacheable   3 1 0   66.67%
src / invariant / yaml_serialization.py _normalize_content_type   3 1 0   66.67%
src / invariant / yaml_serialization.py _detect_resource_document_format   9 0 0   100.00%
src / invariant / yaml_serialization.py _resource_text   10 7 0   30.00%
src / invariant / yaml_serialization.py _load_resource_document   16 1 0   93.75%
src / invariant / yaml_serialization.py _validate_subgraph_resource_mapping   21 7 0   66.67%
src / invariant / yaml_serialization.py _construct_subgraph_resource   10 1 0   90.00%
src / invariant / yaml_serialization.py _make_loader   11 0 0   100.00%
src / invariant / yaml_serialization.py _load_yaml_document   7 1 0   85.71%
src / invariant / yaml_serialization.py load_graph_yaml   1 0 0   100.00%
src / invariant / yaml_serialization.py load_graph_document_yaml   1 0 0   100.00%
src / invariant / yaml_serialization.py (no function)   29 0 0   100.00%
Total     2052 296 10   85.58%

No items found using the specified filter.