modwire 11.0.1__tar.gz → 11.0.3__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.
- {modwire-11.0.1 → modwire-11.0.3}/.dev/modwire.egg-info/SOURCES.txt +108 -11
- {modwire-11.0.1 → modwire-11.0.3}/Makefile +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/PKG-INFO +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/application.py +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/module_boundary_analyzer.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/no_cycles_flow_analyzer.py +4 -4
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/no_reentry_flow_analyzer.py +10 -10
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_rules.py +5 -1
- modwire-11.0.3/src/modwire/architecture/insights/models/exports_report_item.py +11 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/clusters_reporter.py +33 -8
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/coherence_reporter.py +7 -5
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/hotspots_reporter.py +3 -2
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/file_resolver.py +3 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/import_resolver.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/application.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/cache_identity.py +3 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/facade.py +19 -12
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/application.py +8 -6
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/services/initialization_service.py +5 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/application.py +2 -2
- modwire-11.0.3/src/modwire/cli/pipeline/batching/balanced_planner.py +34 -0
- modwire-11.0.3/src/modwire/cli/pipeline/batching/fixed_planner.py +22 -0
- modwire-11.0.3/src/modwire/cli/pipeline/batching/plan.py +8 -0
- modwire-11.0.3/src/modwire/cli/pipeline/batching/planner.py +11 -0
- modwire-11.0.3/src/modwire/cli/pipeline/models/command_name.py +7 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/command_request.py +2 -2
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_batch_input.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_source_input.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/batch_source_reader.py +26 -60
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/command_line.py +6 -5
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/extractor_command.py +2 -2
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/source_manifest_builder.py +4 -9
- modwire-11.0.3/src/modwire/cli/pipeline/transport/json_lines_output_reader.py +16 -0
- modwire-11.0.3/src/modwire/cli/pipeline/transport/json_output_reader.py +15 -0
- modwire-11.0.3/src/modwire/cli/pipeline/transport/output_reader.py +10 -0
- modwire-11.0.3/src/modwire/cli/pipeline/transport/source_file_factory.py +31 -0
- modwire-11.0.3/src/modwire/cli/resources/models/defaults.py +15 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/models/init_asset.py +2 -2
- modwire-11.0.3/src/modwire/cli/resources/models/init_target_base.py +6 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/import_resolver.py +15 -4
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/application.py +3 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/domain.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/batch_config.py +3 -3
- modwire-11.0.3/src/modwire/extraction/extractors/models/batch_output_format.py +6 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extractor_runtime.py +2 -2
- modwire-11.0.3/src/modwire/extraction/extractors/models/parsed_source_batch.py +13 -0
- modwire-11.0.3/src/modwire/extraction/extractors/models/parsed_source_file.py +31 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/php/extractor.py +11 -13
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/python/extractor.py +16 -63
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/call_candidate.py +18 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/call_observation.py +9 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/call_reference.py +11 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/callable_candidate.py +15 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/class_candidate.py +9 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/export_candidate.py +18 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/function_candidate.py +8 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/import_candidate.py +11 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/inheritance_candidate.py +10 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/property_candidate.py +17 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/property_scope.py +6 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/source_context.py +11 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/source_observation.py +24 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/observations/value_candidate.py +9 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/pipeline/source_parser.py +31 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/classifier.py +41 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/constructor_rule.py +21 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/function_rule.py +46 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/instance_method_rule.py +21 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/static_method_rule.py +35 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/type_method_rule.py +35 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/classifier.py +64 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/constructor_target_rule.py +23 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/dynamic_target_rule.py +22 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/instance_target_rule.py +24 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/local_target_rule.py +23 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/qualified_target_rule.py +23 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/reference_reader.py +80 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/unresolved_target_rule.py +22 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/catalog.py +57 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/classes/abstract_rule.py +38 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/classes/classifier.py +41 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/classes/concrete_rule.py +21 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contribution.py +33 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/call_contributor.py +55 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/callable_contributor.py +117 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/class_contributor.py +174 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/export_contributor.py +221 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/function_contributor.py +71 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/import_contributor.py +101 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/inheritance_contributor.py +49 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/metric_contributor.py +50 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/property_contributor.py +66 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/value_contributor.py +148 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/exports/classifier.py +56 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/exports/explicit_rule.py +21 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/exports/implicit_rule.py +21 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/annotation_reader.py +38 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/assigned_value_reader.py +120 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/declaration_identity_factory.py +40 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/expression_reference_reader.py +41 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/import_path_policy.py +44 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/module_identity_policy.py +45 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/parameter_reader.py +125 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/type_alias_classifier.py +62 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/visibility_policy.py +24 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/annotated_class_rule.py +75 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/annotated_instance_rule.py +59 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/assigned_class_rule.py +58 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/assigned_instance_rule.py +56 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/classifier.py +153 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/decorated_method_rule.py +77 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/reader.py +44 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/call_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/callable_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/class_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/contribution.py +97 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/export_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/function_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/import_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/inheritance_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/metric_contributor.py +23 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/property_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/reader.py +43 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/value_contributor.py +19 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/context.py +18 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/observation_reader.py +21 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/ordered_observation_visitor.py +569 -0
- modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/traversal_role.py +8 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/typescript/extractor.py +11 -13
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/facade.py +3 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/implementation_manifest.py +9 -4
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/implementation_manifest_document.py +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_annotation.py +2 -1
- modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_annotation_role.py +9 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_attribute.py +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_callable.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_dependency.py +5 -3
- modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_dependency_target_kind.py +7 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_parameter.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_symbol.py +4 -2
- modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_symbol_kind.py +15 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/services/canonical_json_manifest_serializer.py +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/services/code_map_manifest_compiler.py +70 -26
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_graph.py +4 -3
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/duplicate_identity_error.py +2 -3
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/edge.py +2 -2
- modwire-11.0.3/src/modwire/shared/code/models/identity_kind.py +6 -0
- modwire-11.0.3/src/modwire/shared/code/models/import_crossing_type.py +6 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/node.py +2 -1
- modwire-11.0.3/src/modwire/shared/code/models/node_kind.py +5 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/query_builder.py +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/queryable_code_map.py +18 -14
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_call.py +1 -1
- modwire-11.0.3/src/modwire/shared/code/models/source_call_resolution.py +8 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_callable.py +8 -8
- modwire-11.0.3/src/modwire/shared/code/models/source_callable_kind.py +11 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_class_property.py +1 -1
- modwire-11.0.3/src/modwire/shared/code/models/source_dependency_resolution.py +7 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_export.py +2 -1
- modwire-11.0.3/src/modwire/shared/code/models/source_export_kind.py +12 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_import.py +3 -2
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_manifest.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_manifest_identity.py +2 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_parameter.py +1 -1
- modwire-11.0.3/src/modwire/shared/code/models/source_parameter_kind.py +8 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_signature.py +1 -1
- modwire-11.0.3/src/modwire/shared/code/models/source_signature_kind.py +7 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_symbol.py +1 -1
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_value.py +3 -1
- modwire-11.0.3/src/modwire/shared/code/models/source_value_declaration_kind.py +8 -0
- modwire-11.0.3/src/modwire/shared/code/models/source_value_kind.py +9 -0
- modwire-11.0.3/src/modwire/shared/code/models/source_visibility.py +7 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_01_attacks.py +47 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_08_implementation_manifest.py +140 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/config/test_01_attacks.py +16 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_02_invariants.py +4 -3
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_03_interruption.py +5 -5
- modwire-11.0.3/tests/cli/pipeline/test_06_happy_path.py +57 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/run.py +5 -9
- modwire-11.0.1/docs/target-language-ownership.md +0 -37
- modwire-11.0.1/src/modwire/architecture/insights/models/exports_report_item.py +0 -9
- modwire-11.0.1/src/modwire/cli/resources/models/defaults.py +0 -14
- modwire-11.0.1/src/modwire/extraction/extractors/models/extractor_resource_set.py +0 -23
- modwire-11.0.1/src/modwire/extraction/extractors/python/assigned_value_reader.py +0 -107
- modwire-11.0.1/src/modwire/extraction/extractors/python/call_context.py +0 -10
- modwire-11.0.1/src/modwire/extraction/extractors/python/call_reader.py +0 -61
- modwire-11.0.1/src/modwire/extraction/extractors/python/domain.py +0 -27
- modwire-11.0.1/src/modwire/extraction/extractors/python/expression_reference_reader.py +0 -30
- modwire-11.0.1/src/modwire/extraction/extractors/python/syntax_parser.py +0 -983
- modwire-11.0.1/src/modwire/shared/code/models/edge_resolution.py +0 -3
- modwire-11.0.1/src/modwire/shared/code/models/types.py +0 -14
- modwire-11.0.1/tests/cli/pipeline/test_06_happy_path.py +0 -25
- {modwire-11.0.1 → modwire-11.0.3}/.github/workflows/ci.yml +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/.github/workflows/release.yml +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/.gitignore +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/AGENTS.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/LICENSE +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/MANIFEST.in +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/README.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/pyproject.toml +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/scripts/check_extractors.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/scripts/generate_docs.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/scripts/verify_consumer.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/setup.cfg +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/setup.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/__main__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/edge_rule_violation.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/flow_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/flow_violation.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/types.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/backward_flow_analyzer.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/boundaries_flow_analyzer.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/architecture_config.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/boundaries_config.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/boundary_rule.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/configuration_value.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/flow_realm.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/flow_rules.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_config.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_realm.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/tag_rule.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/facade.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/callable_report_entry.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/callables_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/clusters_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/clusters_report_item.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/coherence_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/exports_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/hotspots_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/hotspots_report_item.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/insight_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/callables_reporter.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/exports_reporter.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/insight_report_field_map.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/architecture_map.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/architecture_realm.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/tag_map.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/tag_match.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/services/architecture_map_loader.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/services/tag_matcher.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/architecture_group.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/map_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_catalog.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_descriptor.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_item.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_metadata.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_node.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_section.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/services/map_report_collector.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_realm_architecture_map.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_report.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_violation.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/abstract_class_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/callable_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/class_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/property_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/signature_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/symbol_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/autowiring.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_entry.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_key.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_kind.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_options.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_outcome.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_plan.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_stage.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_storage_state.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cached_result.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/source_cache_entry.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/cache_codec.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/filesystem_cache_storage.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/services/documentation_generator.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/models/initialization_result.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_command_input.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/report_pipeline_context.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/source_entry.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/source_inventory.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/callables_insight.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/clusters_insight.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/coherence_insight.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/configuration_loader.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/flow_violations.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/hotspots_insight.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/map_tree.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/output_console.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/shape_violations.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/success.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/unknown_files_warning.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/unused_exports_insight.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/AGENTS.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/ARCHITECTURE.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/INDEX.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/MODWIRE.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/RULES.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/TESTING.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/WORKFLOW.md +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/architecture.yaml +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/graph_builder.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/import_identity_index.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extraction_request.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extractor_resource.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/php/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/python/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/build.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/build.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/composer.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/composer.lock +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/script.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/script.src.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/python/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/python/script.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/build.mjs +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/build.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/package-lock.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/package.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/script.js +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/script.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/tsconfig.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/typescript/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/facade.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/manifest_compiler.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/manifest_serializer.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_format.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_inheritance.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_span.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/py.typed +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/application.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/domain.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/capability_coverage.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/capability_status.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/code_map.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/code_map_producer.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/code_package.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/declaration_family.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/declaration_identity.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_edge_result.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_node_result.py +0 -0
- {modwire-11.0.1/src/modwire/implementation/manifest → modwire-11.0.3/src/modwire/shared/code}/models/digest_algorithm.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/extractor_descriptor.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/fact_capability.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/identity.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/query_types.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/runtime_observation.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/scan_policy.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_abstract_class.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_artifact.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_assigned_value.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_assigned_value_kind.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_callable_symbol.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_class.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_class_method.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_extraction.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_file.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_file_result.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_function.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_imported_symbol.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_inheritance.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_interface.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_item_result.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_member_kind.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_relation_kind.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_type.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_value_scope.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/glob_path_matcher.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/identity_resolver.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/installed_package_version.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/values/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/values/models/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/values/models/value_model.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_06_happy_path.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_07_cache.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_09_source_manifest_identity.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_10_assigned_value_evidence.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_01_attacks.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_03_public_api.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_04_paths.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/config/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/config/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/insights/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/insights/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/insights/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/map/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/map/test_02_patterns.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report_benchmark/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report_benchmark/benchmark_process_timeout.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report_benchmark/run.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/test_01_limits.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/documentation/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/documentation/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_01_attacks.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_03_interruption.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_04_cleanup.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_05_recovery.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_01_attacks.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_04_command_transport.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_05_recovery.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/conftest.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/project.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/projects.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/resolution_results.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/results.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/cache_benchmark/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/cache_benchmark/benchmark_process_timeout.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/cache_benchmark/run.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/dependency/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/dependency/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/test_01_attacks.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/test_03_native_symbols.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/prepare.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/results.json +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/run.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/ignored/example_generated.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_application/example_actions/example_action.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_domain/example_model/example_record.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_domain/example_services/example_policy.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_interfaces/example_http/example_controller.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/ignored/example_generated.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_application/example_actions/example_action.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_domain/example_model/example_record.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_domain/example_services/example_policy.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_interfaces/example_http/example_controller.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/ignored/example_generated.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_application/example_actions/example_action.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_record.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_view.tsx +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_audit.js +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_callables.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_policy.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_controller.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_view.jsx +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/syntax/php/example_shapes.php +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/syntax/python/example_shapes.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/syntax/typescript/example_shapes.ts +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/shared/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/shared/code/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/shared/code/test_02_invariants.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/support/__init__.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/support/base_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/support/code_map.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/tests/support/service_test.py +0 -0
- {modwire-11.0.1 → modwire-11.0.3}/uv.lock +0 -0
|
@@ -10,7 +10,6 @@ setup.py
|
|
|
10
10
|
uv.lock
|
|
11
11
|
.github/workflows/ci.yml
|
|
12
12
|
.github/workflows/release.yml
|
|
13
|
-
docs/target-language-ownership.md
|
|
14
13
|
scripts/check_extractors.py
|
|
15
14
|
scripts/generate_docs.py
|
|
16
15
|
scripts/verify_consumer.py
|
|
@@ -143,7 +142,12 @@ src/modwire/cli/initialization/services/initialization_service.py
|
|
|
143
142
|
src/modwire/cli/pipeline/__init__.py
|
|
144
143
|
src/modwire/cli/pipeline/application.py
|
|
145
144
|
src/modwire/cli/pipeline/domain.py
|
|
145
|
+
src/modwire/cli/pipeline/batching/balanced_planner.py
|
|
146
|
+
src/modwire/cli/pipeline/batching/fixed_planner.py
|
|
147
|
+
src/modwire/cli/pipeline/batching/plan.py
|
|
148
|
+
src/modwire/cli/pipeline/batching/planner.py
|
|
146
149
|
src/modwire/cli/pipeline/models/__init__.py
|
|
150
|
+
src/modwire/cli/pipeline/models/command_name.py
|
|
147
151
|
src/modwire/cli/pipeline/models/command_request.py
|
|
148
152
|
src/modwire/cli/pipeline/models/extractor_batch_input.py
|
|
149
153
|
src/modwire/cli/pipeline/models/extractor_command_input.py
|
|
@@ -168,11 +172,16 @@ src/modwire/cli/pipeline/services/source_manifest_builder.py
|
|
|
168
172
|
src/modwire/cli/pipeline/services/success.py
|
|
169
173
|
src/modwire/cli/pipeline/services/unknown_files_warning.py
|
|
170
174
|
src/modwire/cli/pipeline/services/unused_exports_insight.py
|
|
175
|
+
src/modwire/cli/pipeline/transport/json_lines_output_reader.py
|
|
176
|
+
src/modwire/cli/pipeline/transport/json_output_reader.py
|
|
177
|
+
src/modwire/cli/pipeline/transport/output_reader.py
|
|
178
|
+
src/modwire/cli/pipeline/transport/source_file_factory.py
|
|
171
179
|
src/modwire/cli/resources/__init__.py
|
|
172
180
|
src/modwire/cli/resources/application.py
|
|
173
181
|
src/modwire/cli/resources/models/__init__.py
|
|
174
182
|
src/modwire/cli/resources/models/defaults.py
|
|
175
183
|
src/modwire/cli/resources/models/init_asset.py
|
|
184
|
+
src/modwire/cli/resources/models/init_target_base.py
|
|
176
185
|
src/modwire/cli/resources/templates/AGENTS.md
|
|
177
186
|
src/modwire/cli/resources/templates/ARCHITECTURE.md
|
|
178
187
|
src/modwire/cli/resources/templates/INDEX.md
|
|
@@ -195,20 +204,95 @@ src/modwire/extraction/extractors/application.py
|
|
|
195
204
|
src/modwire/extraction/extractors/domain.py
|
|
196
205
|
src/modwire/extraction/extractors/models/__init__.py
|
|
197
206
|
src/modwire/extraction/extractors/models/batch_config.py
|
|
207
|
+
src/modwire/extraction/extractors/models/batch_output_format.py
|
|
198
208
|
src/modwire/extraction/extractors/models/extraction_request.py
|
|
199
209
|
src/modwire/extraction/extractors/models/extractor_resource.py
|
|
200
|
-
src/modwire/extraction/extractors/models/extractor_resource_set.py
|
|
201
210
|
src/modwire/extraction/extractors/models/extractor_runtime.py
|
|
211
|
+
src/modwire/extraction/extractors/models/parsed_source_batch.py
|
|
212
|
+
src/modwire/extraction/extractors/models/parsed_source_file.py
|
|
202
213
|
src/modwire/extraction/extractors/php/__init__.py
|
|
203
214
|
src/modwire/extraction/extractors/php/extractor.py
|
|
204
215
|
src/modwire/extraction/extractors/python/__init__.py
|
|
205
|
-
src/modwire/extraction/extractors/python/assigned_value_reader.py
|
|
206
|
-
src/modwire/extraction/extractors/python/call_context.py
|
|
207
|
-
src/modwire/extraction/extractors/python/call_reader.py
|
|
208
|
-
src/modwire/extraction/extractors/python/domain.py
|
|
209
|
-
src/modwire/extraction/extractors/python/expression_reference_reader.py
|
|
210
216
|
src/modwire/extraction/extractors/python/extractor.py
|
|
211
|
-
src/modwire/extraction/extractors/python/
|
|
217
|
+
src/modwire/extraction/extractors/python/observations/call_candidate.py
|
|
218
|
+
src/modwire/extraction/extractors/python/observations/call_observation.py
|
|
219
|
+
src/modwire/extraction/extractors/python/observations/call_reference.py
|
|
220
|
+
src/modwire/extraction/extractors/python/observations/callable_candidate.py
|
|
221
|
+
src/modwire/extraction/extractors/python/observations/class_candidate.py
|
|
222
|
+
src/modwire/extraction/extractors/python/observations/export_candidate.py
|
|
223
|
+
src/modwire/extraction/extractors/python/observations/function_candidate.py
|
|
224
|
+
src/modwire/extraction/extractors/python/observations/import_candidate.py
|
|
225
|
+
src/modwire/extraction/extractors/python/observations/inheritance_candidate.py
|
|
226
|
+
src/modwire/extraction/extractors/python/observations/property_candidate.py
|
|
227
|
+
src/modwire/extraction/extractors/python/observations/property_scope.py
|
|
228
|
+
src/modwire/extraction/extractors/python/observations/source_context.py
|
|
229
|
+
src/modwire/extraction/extractors/python/observations/source_observation.py
|
|
230
|
+
src/modwire/extraction/extractors/python/observations/value_candidate.py
|
|
231
|
+
src/modwire/extraction/extractors/python/pipeline/source_parser.py
|
|
232
|
+
src/modwire/extraction/extractors/python/semantics/catalog.py
|
|
233
|
+
src/modwire/extraction/extractors/python/semantics/contribution.py
|
|
234
|
+
src/modwire/extraction/extractors/python/semantics/reader.py
|
|
235
|
+
src/modwire/extraction/extractors/python/semantics/callables/classifier.py
|
|
236
|
+
src/modwire/extraction/extractors/python/semantics/callables/constructor_rule.py
|
|
237
|
+
src/modwire/extraction/extractors/python/semantics/callables/function_rule.py
|
|
238
|
+
src/modwire/extraction/extractors/python/semantics/callables/instance_method_rule.py
|
|
239
|
+
src/modwire/extraction/extractors/python/semantics/callables/static_method_rule.py
|
|
240
|
+
src/modwire/extraction/extractors/python/semantics/callables/type_method_rule.py
|
|
241
|
+
src/modwire/extraction/extractors/python/semantics/calls/classifier.py
|
|
242
|
+
src/modwire/extraction/extractors/python/semantics/calls/constructor_target_rule.py
|
|
243
|
+
src/modwire/extraction/extractors/python/semantics/calls/dynamic_target_rule.py
|
|
244
|
+
src/modwire/extraction/extractors/python/semantics/calls/instance_target_rule.py
|
|
245
|
+
src/modwire/extraction/extractors/python/semantics/calls/local_target_rule.py
|
|
246
|
+
src/modwire/extraction/extractors/python/semantics/calls/qualified_target_rule.py
|
|
247
|
+
src/modwire/extraction/extractors/python/semantics/calls/reference_reader.py
|
|
248
|
+
src/modwire/extraction/extractors/python/semantics/calls/unresolved_target_rule.py
|
|
249
|
+
src/modwire/extraction/extractors/python/semantics/classes/abstract_rule.py
|
|
250
|
+
src/modwire/extraction/extractors/python/semantics/classes/classifier.py
|
|
251
|
+
src/modwire/extraction/extractors/python/semantics/classes/concrete_rule.py
|
|
252
|
+
src/modwire/extraction/extractors/python/semantics/contributors/call_contributor.py
|
|
253
|
+
src/modwire/extraction/extractors/python/semantics/contributors/callable_contributor.py
|
|
254
|
+
src/modwire/extraction/extractors/python/semantics/contributors/class_contributor.py
|
|
255
|
+
src/modwire/extraction/extractors/python/semantics/contributors/export_contributor.py
|
|
256
|
+
src/modwire/extraction/extractors/python/semantics/contributors/function_contributor.py
|
|
257
|
+
src/modwire/extraction/extractors/python/semantics/contributors/import_contributor.py
|
|
258
|
+
src/modwire/extraction/extractors/python/semantics/contributors/inheritance_contributor.py
|
|
259
|
+
src/modwire/extraction/extractors/python/semantics/contributors/metric_contributor.py
|
|
260
|
+
src/modwire/extraction/extractors/python/semantics/contributors/property_contributor.py
|
|
261
|
+
src/modwire/extraction/extractors/python/semantics/contributors/value_contributor.py
|
|
262
|
+
src/modwire/extraction/extractors/python/semantics/exports/classifier.py
|
|
263
|
+
src/modwire/extraction/extractors/python/semantics/exports/explicit_rule.py
|
|
264
|
+
src/modwire/extraction/extractors/python/semantics/exports/implicit_rule.py
|
|
265
|
+
src/modwire/extraction/extractors/python/semantics/policies/annotation_reader.py
|
|
266
|
+
src/modwire/extraction/extractors/python/semantics/policies/assigned_value_reader.py
|
|
267
|
+
src/modwire/extraction/extractors/python/semantics/policies/declaration_identity_factory.py
|
|
268
|
+
src/modwire/extraction/extractors/python/semantics/policies/expression_reference_reader.py
|
|
269
|
+
src/modwire/extraction/extractors/python/semantics/policies/import_path_policy.py
|
|
270
|
+
src/modwire/extraction/extractors/python/semantics/policies/module_identity_policy.py
|
|
271
|
+
src/modwire/extraction/extractors/python/semantics/policies/parameter_reader.py
|
|
272
|
+
src/modwire/extraction/extractors/python/semantics/policies/type_alias_classifier.py
|
|
273
|
+
src/modwire/extraction/extractors/python/semantics/policies/visibility_policy.py
|
|
274
|
+
src/modwire/extraction/extractors/python/semantics/properties/annotated_class_rule.py
|
|
275
|
+
src/modwire/extraction/extractors/python/semantics/properties/annotated_instance_rule.py
|
|
276
|
+
src/modwire/extraction/extractors/python/semantics/properties/assigned_class_rule.py
|
|
277
|
+
src/modwire/extraction/extractors/python/semantics/properties/assigned_instance_rule.py
|
|
278
|
+
src/modwire/extraction/extractors/python/semantics/properties/classifier.py
|
|
279
|
+
src/modwire/extraction/extractors/python/semantics/properties/decorated_method_rule.py
|
|
280
|
+
src/modwire/extraction/extractors/python/source_facts/call_contributor.py
|
|
281
|
+
src/modwire/extraction/extractors/python/source_facts/callable_contributor.py
|
|
282
|
+
src/modwire/extraction/extractors/python/source_facts/class_contributor.py
|
|
283
|
+
src/modwire/extraction/extractors/python/source_facts/contribution.py
|
|
284
|
+
src/modwire/extraction/extractors/python/source_facts/export_contributor.py
|
|
285
|
+
src/modwire/extraction/extractors/python/source_facts/function_contributor.py
|
|
286
|
+
src/modwire/extraction/extractors/python/source_facts/import_contributor.py
|
|
287
|
+
src/modwire/extraction/extractors/python/source_facts/inheritance_contributor.py
|
|
288
|
+
src/modwire/extraction/extractors/python/source_facts/metric_contributor.py
|
|
289
|
+
src/modwire/extraction/extractors/python/source_facts/property_contributor.py
|
|
290
|
+
src/modwire/extraction/extractors/python/source_facts/reader.py
|
|
291
|
+
src/modwire/extraction/extractors/python/source_facts/value_contributor.py
|
|
292
|
+
src/modwire/extraction/extractors/python/traversal/context.py
|
|
293
|
+
src/modwire/extraction/extractors/python/traversal/observation_reader.py
|
|
294
|
+
src/modwire/extraction/extractors/python/traversal/ordered_observation_visitor.py
|
|
295
|
+
src/modwire/extraction/extractors/python/traversal/traversal_role.py
|
|
212
296
|
src/modwire/extraction/extractors/resources/__init__.py
|
|
213
297
|
src/modwire/extraction/extractors/resources/php/build.php
|
|
214
298
|
src/modwire/extraction/extractors/resources/php/build.py
|
|
@@ -235,18 +319,20 @@ src/modwire/implementation/manifest/contracts/__init__.py
|
|
|
235
319
|
src/modwire/implementation/manifest/contracts/manifest_compiler.py
|
|
236
320
|
src/modwire/implementation/manifest/contracts/manifest_serializer.py
|
|
237
321
|
src/modwire/implementation/manifest/models/__init__.py
|
|
238
|
-
src/modwire/implementation/manifest/models/digest_algorithm.py
|
|
239
322
|
src/modwire/implementation/manifest/models/implementation_manifest.py
|
|
240
323
|
src/modwire/implementation/manifest/models/implementation_manifest_document.py
|
|
241
324
|
src/modwire/implementation/manifest/models/manifest_annotation.py
|
|
325
|
+
src/modwire/implementation/manifest/models/manifest_annotation_role.py
|
|
242
326
|
src/modwire/implementation/manifest/models/manifest_attribute.py
|
|
243
327
|
src/modwire/implementation/manifest/models/manifest_callable.py
|
|
244
328
|
src/modwire/implementation/manifest/models/manifest_dependency.py
|
|
329
|
+
src/modwire/implementation/manifest/models/manifest_dependency_target_kind.py
|
|
245
330
|
src/modwire/implementation/manifest/models/manifest_format.py
|
|
246
331
|
src/modwire/implementation/manifest/models/manifest_inheritance.py
|
|
247
332
|
src/modwire/implementation/manifest/models/manifest_parameter.py
|
|
248
333
|
src/modwire/implementation/manifest/models/manifest_span.py
|
|
249
334
|
src/modwire/implementation/manifest/models/manifest_symbol.py
|
|
335
|
+
src/modwire/implementation/manifest/models/manifest_symbol_kind.py
|
|
250
336
|
src/modwire/implementation/manifest/services/__init__.py
|
|
251
337
|
src/modwire/implementation/manifest/services/canonical_json_manifest_serializer.py
|
|
252
338
|
src/modwire/implementation/manifest/services/code_map_manifest_compiler.py
|
|
@@ -265,13 +351,16 @@ src/modwire/shared/code/models/declaration_identity.py
|
|
|
265
351
|
src/modwire/shared/code/models/dependency_edge_result.py
|
|
266
352
|
src/modwire/shared/code/models/dependency_graph.py
|
|
267
353
|
src/modwire/shared/code/models/dependency_node_result.py
|
|
354
|
+
src/modwire/shared/code/models/digest_algorithm.py
|
|
268
355
|
src/modwire/shared/code/models/duplicate_identity_error.py
|
|
269
356
|
src/modwire/shared/code/models/edge.py
|
|
270
|
-
src/modwire/shared/code/models/edge_resolution.py
|
|
271
357
|
src/modwire/shared/code/models/extractor_descriptor.py
|
|
272
358
|
src/modwire/shared/code/models/fact_capability.py
|
|
273
359
|
src/modwire/shared/code/models/identity.py
|
|
360
|
+
src/modwire/shared/code/models/identity_kind.py
|
|
361
|
+
src/modwire/shared/code/models/import_crossing_type.py
|
|
274
362
|
src/modwire/shared/code/models/node.py
|
|
363
|
+
src/modwire/shared/code/models/node_kind.py
|
|
275
364
|
src/modwire/shared/code/models/query_builder.py
|
|
276
365
|
src/modwire/shared/code/models/query_types.py
|
|
277
366
|
src/modwire/shared/code/models/queryable_code_map.py
|
|
@@ -282,12 +371,16 @@ src/modwire/shared/code/models/source_artifact.py
|
|
|
282
371
|
src/modwire/shared/code/models/source_assigned_value.py
|
|
283
372
|
src/modwire/shared/code/models/source_assigned_value_kind.py
|
|
284
373
|
src/modwire/shared/code/models/source_call.py
|
|
374
|
+
src/modwire/shared/code/models/source_call_resolution.py
|
|
285
375
|
src/modwire/shared/code/models/source_callable.py
|
|
376
|
+
src/modwire/shared/code/models/source_callable_kind.py
|
|
286
377
|
src/modwire/shared/code/models/source_callable_symbol.py
|
|
287
378
|
src/modwire/shared/code/models/source_class.py
|
|
288
379
|
src/modwire/shared/code/models/source_class_method.py
|
|
289
380
|
src/modwire/shared/code/models/source_class_property.py
|
|
381
|
+
src/modwire/shared/code/models/source_dependency_resolution.py
|
|
290
382
|
src/modwire/shared/code/models/source_export.py
|
|
383
|
+
src/modwire/shared/code/models/source_export_kind.py
|
|
291
384
|
src/modwire/shared/code/models/source_extraction.py
|
|
292
385
|
src/modwire/shared/code/models/source_file.py
|
|
293
386
|
src/modwire/shared/code/models/source_file_result.py
|
|
@@ -301,13 +394,17 @@ src/modwire/shared/code/models/source_manifest.py
|
|
|
301
394
|
src/modwire/shared/code/models/source_manifest_identity.py
|
|
302
395
|
src/modwire/shared/code/models/source_member_kind.py
|
|
303
396
|
src/modwire/shared/code/models/source_parameter.py
|
|
397
|
+
src/modwire/shared/code/models/source_parameter_kind.py
|
|
304
398
|
src/modwire/shared/code/models/source_relation_kind.py
|
|
305
399
|
src/modwire/shared/code/models/source_signature.py
|
|
400
|
+
src/modwire/shared/code/models/source_signature_kind.py
|
|
306
401
|
src/modwire/shared/code/models/source_symbol.py
|
|
307
402
|
src/modwire/shared/code/models/source_type.py
|
|
308
403
|
src/modwire/shared/code/models/source_value.py
|
|
404
|
+
src/modwire/shared/code/models/source_value_declaration_kind.py
|
|
405
|
+
src/modwire/shared/code/models/source_value_kind.py
|
|
309
406
|
src/modwire/shared/code/models/source_value_scope.py
|
|
310
|
-
src/modwire/shared/code/models/
|
|
407
|
+
src/modwire/shared/code/models/source_visibility.py
|
|
311
408
|
src/modwire/shared/code/services/__init__.py
|
|
312
409
|
src/modwire/shared/code/services/glob_path_matcher.py
|
|
313
410
|
src/modwire/shared/code/services/identity_resolver.py
|
|
@@ -3,6 +3,7 @@ BUILD_DIR := $(DEV_DIR)/build
|
|
|
3
3
|
DIST_DIR := $(DEV_DIR)/dist
|
|
4
4
|
EGG_INFO_DIR := src/modwire.egg-info
|
|
5
5
|
PROJECT_ROOT := $(CURDIR)
|
|
6
|
+
BIG_PROJECT_ARGS ?=
|
|
6
7
|
|
|
7
8
|
export PYTHONPYCACHEPREFIX := $(PROJECT_ROOT)/$(DEV_DIR)/cache/python
|
|
8
9
|
export UV_CACHE_DIR := $(PROJECT_ROOT)/$(DEV_DIR)/cache/uv
|
|
@@ -26,7 +27,7 @@ test:
|
|
|
26
27
|
uv run pytest
|
|
27
28
|
|
|
28
29
|
big-projects:
|
|
29
|
-
uv run python -m tests.extraction.big_projects.run
|
|
30
|
+
uv run python -u -m tests.extraction.big_projects.run $(BIG_PROJECT_ARGS)
|
|
30
31
|
|
|
31
32
|
scan-benchmark-fixture:
|
|
32
33
|
uv run python -m tests.extraction.scan_benchmark.prepare --root .dev/benchmarks/scan-project --source-template "$(SCAN_BENCHMARK_SOURCE)"
|
|
@@ -17,7 +17,6 @@ from .cli.cache.models.cached_result import CachedResult
|
|
|
17
17
|
from .cli.facade import CliFacade
|
|
18
18
|
from .extraction.facade import ExtractionFacade
|
|
19
19
|
from .implementation.facade import ImplementationFacade
|
|
20
|
-
from .implementation.manifest.models.digest_algorithm import DigestAlgorithm
|
|
21
20
|
from .implementation.manifest.models.implementation_manifest import ImplementationManifest
|
|
22
21
|
from .implementation.manifest.models.implementation_manifest_document import ImplementationManifestDocument
|
|
23
22
|
from .implementation.manifest.models.manifest_format import ManifestFormat
|
|
@@ -26,6 +25,7 @@ from .shared.code.models.capability_status import CapabilityStatus
|
|
|
26
25
|
from .shared.code.models.code_map import CodeMap
|
|
27
26
|
from .shared.code.models.declaration_family import DeclarationFamily
|
|
28
27
|
from .shared.code.models.declaration_identity import DeclarationIdentity
|
|
28
|
+
from .shared.code.models.digest_algorithm import DigestAlgorithm
|
|
29
29
|
from .shared.code.models.fact_capability import FactCapability
|
|
30
30
|
from .shared.code.models.queryable_code_map import QueryableCodeMap
|
|
31
31
|
from .shared.code.models.scan_policy import ScanPolicy
|
|
@@ -2,6 +2,7 @@ from dataclasses import dataclass
|
|
|
2
2
|
|
|
3
3
|
from wireup import injectable
|
|
4
4
|
|
|
5
|
+
from ....shared.code.models.source_dependency_resolution import SourceDependencyResolution
|
|
5
6
|
from ...config.models.boundaries_config import BoundariesConfig
|
|
6
7
|
from ...config.models.boundary_rule import BoundaryRule
|
|
7
8
|
from ...map.models.architecture_map import ArchitectureMap
|
|
@@ -32,7 +33,7 @@ class ModuleBoundaryAnalyzer(FlowAnalyzerInterface):
|
|
|
32
33
|
]
|
|
33
34
|
for dependency in architecture_map.code_map.dependency_edges().all():
|
|
34
35
|
edge = dependency.edge
|
|
35
|
-
if edge.resolution
|
|
36
|
+
if edge.resolution is not SourceDependencyResolution.RESOLVED or edge.to_id is None:
|
|
36
37
|
continue
|
|
37
38
|
source_tags = architecture_map.tag_map.tags_for(edge.from_id)
|
|
38
39
|
target_tags = architecture_map.tag_map.tags_for(edge.to_id)
|
|
@@ -38,11 +38,11 @@ class NoCyclesFlowAnalyzer(FlowAnalyzerInterface, BaseFlowAnalyzer):
|
|
|
38
38
|
|
|
39
39
|
def module_adjacency(self, architecture_map: ArchitectureMap) -> dict[str, set[str]]:
|
|
40
40
|
adjacency: dict[str, set[str]] = {}
|
|
41
|
-
for
|
|
42
|
-
if
|
|
41
|
+
for edge in architecture_map.code_map.cm.dependency_graph.edges:
|
|
42
|
+
if edge.to_id is None:
|
|
43
43
|
continue
|
|
44
|
-
source = self.module_for(architecture_map,
|
|
45
|
-
target = self.module_for(architecture_map,
|
|
44
|
+
source = self.module_for(architecture_map, edge.from_id)
|
|
45
|
+
target = self.module_for(architecture_map, edge.to_id)
|
|
46
46
|
if not source or not target or source == target:
|
|
47
47
|
continue
|
|
48
48
|
adjacency.setdefault(source, set()).add(target)
|
|
@@ -43,10 +43,9 @@ class NoReentryFlowAnalyzer(FlowAnalyzerInterface, BaseFlowAnalyzer):
|
|
|
43
43
|
return self.dedupe(violations)
|
|
44
44
|
|
|
45
45
|
def roots(self, architecture_map: ArchitectureMap) -> tuple[str, ...]:
|
|
46
|
+
graph = architecture_map.code_map.cm.dependency_graph
|
|
46
47
|
roots = tuple(
|
|
47
|
-
source_id
|
|
48
|
-
for source_id in architecture_map.code_map.source_ids()
|
|
49
|
-
if architecture_map.code_map.incoming_dependencies(FileId(source_id)).count() == 0
|
|
48
|
+
source_id for source_id in architecture_map.code_map.source_ids() if not graph.incoming(FileId(source_id))
|
|
50
49
|
)
|
|
51
50
|
if roots:
|
|
52
51
|
return tuple(sorted(roots))
|
|
@@ -66,16 +65,17 @@ class NoReentryFlowAnalyzer(FlowAnalyzerInterface, BaseFlowAnalyzer):
|
|
|
66
65
|
return
|
|
67
66
|
visited.add(state)
|
|
68
67
|
source_module = self.module_for(architecture_map, source_id)
|
|
68
|
+
graph = architecture_map.code_map.cm.dependency_graph
|
|
69
69
|
dependencies = sorted(
|
|
70
|
-
|
|
71
|
-
key=lambda
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
graph.outgoing(FileId(source_id)),
|
|
71
|
+
key=lambda edge: (
|
|
72
|
+
edge.to_id or "",
|
|
73
|
+
edge.specifier,
|
|
74
|
+
edge.kind,
|
|
75
75
|
),
|
|
76
76
|
)
|
|
77
|
-
for
|
|
78
|
-
target_id =
|
|
77
|
+
for edge in dependencies:
|
|
78
|
+
target_id = edge.to_id
|
|
79
79
|
if target_id is None:
|
|
80
80
|
continue
|
|
81
81
|
target_module = self.module_for(architecture_map, target_id)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from pydantic import Field
|
|
2
2
|
|
|
3
|
+
from ....shared.code.models.import_crossing_type import ImportCrossingType
|
|
3
4
|
from .configuration_value import ConfigurationValue
|
|
4
5
|
|
|
5
6
|
|
|
@@ -20,4 +21,7 @@ class ShapeRules(ConfigurationValue):
|
|
|
20
21
|
allow_optional_class_properties: bool = False
|
|
21
22
|
allow_import_aliases: bool = False
|
|
22
23
|
require_joined_imports: bool = True
|
|
23
|
-
allowed_import_crossing_types: tuple[
|
|
24
|
+
allowed_import_crossing_types: tuple[ImportCrossingType, ...] = (
|
|
25
|
+
ImportCrossingType.MODULE,
|
|
26
|
+
ImportCrossingType.SYMBOL,
|
|
27
|
+
)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from ....shared.code.models.import_crossing_type import ImportCrossingType
|
|
2
|
+
from ....shared.code.models.source_export_kind import SourceExportKind
|
|
3
|
+
from ....shared.values.models.value_model import ValueModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ExportsReportItem(ValueModel):
|
|
7
|
+
source_id: str
|
|
8
|
+
name: str
|
|
9
|
+
kind: SourceExportKind
|
|
10
|
+
crossing_type: ImportCrossingType
|
|
11
|
+
reason: str
|
{modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/clusters_reporter.py
RENAMED
|
@@ -26,14 +26,37 @@ class ClustersReporter(InsightReporterInterface):
|
|
|
26
26
|
|
|
27
27
|
def collect(self, architecture_map: ArchitectureMap) -> ClustersReport:
|
|
28
28
|
source_ids = architecture_map.code_map.source_ids()
|
|
29
|
+
tracked_source_ids = set(source_ids)
|
|
29
30
|
file_sets: dict[str, list[str]] = {}
|
|
31
|
+
cluster_by_source_id: dict[str, str] = {}
|
|
30
32
|
for source_id in source_ids:
|
|
31
|
-
|
|
33
|
+
cluster_name = self.cluster_name(source_id)
|
|
34
|
+
file_sets.setdefault(cluster_name, []).append(source_id)
|
|
35
|
+
cluster_by_source_id[source_id] = cluster_name
|
|
36
|
+
|
|
37
|
+
incoming_by_cluster = dict.fromkeys(file_sets, 0)
|
|
38
|
+
outgoing_by_cluster = dict.fromkeys(file_sets, 0)
|
|
39
|
+
pressure_by_file: dict[str, int] = dict.fromkeys(source_ids, 0)
|
|
40
|
+
for edge in architecture_map.code_map.cm.dependency_graph.edges:
|
|
41
|
+
if edge.from_id in tracked_source_ids:
|
|
42
|
+
pressure_by_file[edge.from_id] += 1
|
|
43
|
+
if edge.to_id is None or edge.to_id not in tracked_source_ids:
|
|
44
|
+
continue
|
|
45
|
+
|
|
46
|
+
pressure_by_file[edge.to_id] += 1
|
|
47
|
+
target_cluster = cluster_by_source_id[edge.to_id]
|
|
48
|
+
source_cluster = cluster_by_source_id.get(edge.from_id)
|
|
49
|
+
if source_cluster == target_cluster:
|
|
50
|
+
continue
|
|
51
|
+
incoming_by_cluster[target_cluster] += 1
|
|
52
|
+
if source_cluster is not None:
|
|
53
|
+
outgoing_by_cluster[source_cluster] += 1
|
|
54
|
+
|
|
32
55
|
clusters: list[ClustersReportItem] = []
|
|
33
56
|
for name, files in sorted(file_sets.items()):
|
|
34
57
|
file_tuple = tuple(sorted(files))
|
|
35
|
-
incoming_count =
|
|
36
|
-
outgoing_count =
|
|
58
|
+
incoming_count = incoming_by_cluster[name]
|
|
59
|
+
outgoing_count = outgoing_by_cluster[name]
|
|
37
60
|
clusters.append(
|
|
38
61
|
ClustersReportItem(
|
|
39
62
|
name=name,
|
|
@@ -41,7 +64,11 @@ class ClustersReporter(InsightReporterInterface):
|
|
|
41
64
|
incoming_count=incoming_count,
|
|
42
65
|
outgoing_count=outgoing_count,
|
|
43
66
|
pressure_score=incoming_count + outgoing_count,
|
|
44
|
-
top_files=
|
|
67
|
+
top_files=tuple(
|
|
68
|
+
sorted(files, key=lambda source_id: (-pressure_by_file[source_id], source_id))[
|
|
69
|
+
: self.top_file_limit
|
|
70
|
+
]
|
|
71
|
+
),
|
|
45
72
|
)
|
|
46
73
|
)
|
|
47
74
|
return self.report_type(
|
|
@@ -78,7 +105,5 @@ class ClustersReporter(InsightReporterInterface):
|
|
|
78
105
|
)
|
|
79
106
|
|
|
80
107
|
def file_pressure(self, architecture_map: ArchitectureMap, source_id: str) -> int:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
+ architecture_map.code_map.outgoing_dependencies(FileId(source_id)).count()
|
|
84
|
-
)
|
|
108
|
+
graph = architecture_map.code_map.cm.dependency_graph
|
|
109
|
+
return len(graph.incoming(FileId(source_id))) + len(graph.outgoing(FileId(source_id)))
|
{modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/coherence_reporter.py
RENAMED
|
@@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
from wireup import injectable
|
|
4
4
|
|
|
5
5
|
from ....shared.code.models.identity import FileId
|
|
6
|
+
from ....shared.code.models.source_dependency_resolution import SourceDependencyResolution
|
|
6
7
|
from ...map.models.architecture_map import ArchitectureMap
|
|
7
8
|
from ..domain import InsightReporterInterface
|
|
8
9
|
from ..models.coherence_report import CoherenceReport
|
|
@@ -21,12 +22,13 @@ class CoherenceReporter(InsightReporterInterface):
|
|
|
21
22
|
|
|
22
23
|
def collect(self, architecture_map: ArchitectureMap) -> CoherenceReport:
|
|
23
24
|
source_ids = set(architecture_map.code_map.source_ids())
|
|
25
|
+
graph = architecture_map.code_map.cm.dependency_graph
|
|
24
26
|
roots: list[str] = []
|
|
25
27
|
leaves: list[str] = []
|
|
26
28
|
isolated: list[str] = []
|
|
27
29
|
for source_id in sorted(source_ids):
|
|
28
|
-
has_incoming =
|
|
29
|
-
has_outgoing =
|
|
30
|
+
has_incoming = len(graph.incoming(FileId(source_id))) > 0
|
|
31
|
+
has_outgoing = len(graph.outgoing(FileId(source_id))) > 0
|
|
30
32
|
if not has_incoming:
|
|
31
33
|
roots.append(source_id)
|
|
32
34
|
if not has_outgoing:
|
|
@@ -34,9 +36,9 @@ class CoherenceReporter(InsightReporterInterface):
|
|
|
34
36
|
if not has_incoming and (not has_outgoing):
|
|
35
37
|
isolated.append(source_id)
|
|
36
38
|
external_dependencies = {
|
|
37
|
-
|
|
38
|
-
for
|
|
39
|
-
if
|
|
39
|
+
edge.specifier
|
|
40
|
+
for edge in graph.external_edges(source_ids)
|
|
41
|
+
if edge.resolution is SourceDependencyResolution.EXTERNAL
|
|
40
42
|
}
|
|
41
43
|
return self.report_type(
|
|
42
44
|
roots=tuple(roots),
|
{modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/hotspots_reporter.py
RENAMED
|
@@ -30,8 +30,9 @@ class HotspotsReporter(InsightReporterInterface):
|
|
|
30
30
|
return self.report_type(hotspots=hotspots)
|
|
31
31
|
|
|
32
32
|
def hotspot_for(self, architecture_map: ArchitectureMap, source_id: str) -> HotspotsReportItem:
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
graph = architecture_map.code_map.cm.dependency_graph
|
|
34
|
+
incoming_count = len(graph.incoming(FileId(source_id)))
|
|
35
|
+
outgoing_count = len(graph.outgoing(FileId(source_id)))
|
|
35
36
|
return HotspotsReportItem(
|
|
36
37
|
source_id=source_id,
|
|
37
38
|
incoming_count=incoming_count,
|
|
@@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
from wireup import injectable
|
|
4
4
|
|
|
5
5
|
from ....shared.code.models.identity import FileId
|
|
6
|
+
from ....shared.code.models.source_value_declaration_kind import SourceValueDeclarationKind
|
|
6
7
|
from ....shared.code.models.source_value_scope import SourceValueScope
|
|
7
8
|
from ...config.models.shape_rules import ShapeRules
|
|
8
9
|
from ..domain import BaseShapeResolver, ShapeResolverInterface
|
|
@@ -75,7 +76,8 @@ class FileResolver(ShapeResolverInterface, BaseShapeResolver):
|
|
|
75
76
|
source_id=source_id,
|
|
76
77
|
rule_name="max_variables_per_file",
|
|
77
78
|
actual=sum(
|
|
78
|
-
value.scope
|
|
79
|
+
value.scope is SourceValueScope.MODULE
|
|
80
|
+
and value.declaration_kind is SourceValueDeclarationKind.ASSIGNMENT
|
|
79
81
|
for value in source_file.values
|
|
80
82
|
),
|
|
81
83
|
limit=config.max_variables_per_file,
|
{modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/import_resolver.py
RENAMED
|
@@ -2,6 +2,7 @@ from dataclasses import dataclass
|
|
|
2
2
|
|
|
3
3
|
from wireup import injectable
|
|
4
4
|
|
|
5
|
+
from ....shared.code.models.import_crossing_type import ImportCrossingType
|
|
5
6
|
from ...config.models.shape_rules import ShapeRules
|
|
6
7
|
from ..domain import BaseShapeResolver, ShapeResolverInterface
|
|
7
8
|
from ..models.shape_realm_architecture_map import ShapeRealmArchitectureMap
|
|
@@ -49,7 +50,7 @@ class ImportResolver(ShapeResolverInterface, BaseShapeResolver):
|
|
|
49
50
|
)
|
|
50
51
|
if (
|
|
51
52
|
config.require_joined_imports
|
|
52
|
-
and source_import.crossing_type
|
|
53
|
+
and source_import.crossing_type is not ImportCrossingType.MODULE
|
|
53
54
|
and (not source_import.uses_joined_import)
|
|
54
55
|
):
|
|
55
56
|
violations.append(
|
|
@@ -11,6 +11,7 @@ from ...extraction.extractors.models.extraction_request import ExtractionRequest
|
|
|
11
11
|
from ...shared.code.models.code_map import CodeMap
|
|
12
12
|
from ...shared.code.models.duplicate_identity_error import DuplicateIdentityError
|
|
13
13
|
from ...shared.code.models.identity import FileId, ModuleId
|
|
14
|
+
from ...shared.code.models.identity_kind import IdentityKind
|
|
14
15
|
from ...shared.code.models.scan_policy import ScanPolicy
|
|
15
16
|
from ...shared.code.models.source_extraction import SourceExtraction
|
|
16
17
|
from ...shared.code.models.source_file import SourceFile
|
|
@@ -103,7 +104,7 @@ class CacheApplication:
|
|
|
103
104
|
for file_id, source_file in ordered_files.items():
|
|
104
105
|
existing = modules.get(source_file.module_id)
|
|
105
106
|
if existing is not None:
|
|
106
|
-
raise DuplicateIdentityError(
|
|
107
|
+
raise DuplicateIdentityError(IdentityKind.MODULE, source_file.module_id, existing, file_id)
|
|
107
108
|
modules[source_file.module_id] = file_id
|
|
108
109
|
|
|
109
110
|
extraction = SourceExtraction(
|
|
@@ -98,7 +98,9 @@ class CacheIdentity:
|
|
|
98
98
|
|
|
99
99
|
def runtime_identity(self, request: ExtractionRequest, observation: RuntimeObservation) -> dict[str, object]:
|
|
100
100
|
return {
|
|
101
|
-
"
|
|
101
|
+
"descriptor": request.runtime.descriptor.model_dump(mode="json"),
|
|
102
|
+
"capabilities": [item.model_dump(mode="json") for item in request.runtime.capabilities],
|
|
103
|
+
"file_extensions": list(request.runtime.file_extensions),
|
|
102
104
|
"batch": request.batch_config.model_dump(mode="json"),
|
|
103
105
|
"observation": observation.model_dump(mode="json"),
|
|
104
106
|
}
|
|
@@ -8,6 +8,7 @@ from ..architecture.config.models.architecture_config import ArchitectureConfig
|
|
|
8
8
|
from ..architecture.facade import ArchitectureFacade
|
|
9
9
|
from ..architecture.report.models.report_node import ReportNode
|
|
10
10
|
from ..extraction.extractors.models.extraction_request import ExtractionRequest
|
|
11
|
+
from ..extraction.extractors.models.parsed_source_batch import ParsedSourceBatch
|
|
11
12
|
from ..extraction.facade import ExtractionFacade
|
|
12
13
|
from ..shared.code.models.code_map import CodeMap
|
|
13
14
|
from ..shared.code.models.queryable_code_map import QueryableCodeMap
|
|
@@ -21,6 +22,7 @@ from .cache.models.cached_result import CachedResult
|
|
|
21
22
|
from .documentation.application import DocumentationApplication
|
|
22
23
|
from .initialization.application import InitializationApplication
|
|
23
24
|
from .pipeline.application import PipelineApplication
|
|
25
|
+
from .pipeline.models.command_name import CommandName
|
|
24
26
|
from .pipeline.models.command_request import CommandRequest
|
|
25
27
|
from .pipeline.models.extractor_command_input import ExtractorCommandInput
|
|
26
28
|
|
|
@@ -99,8 +101,8 @@ class CliFacade:
|
|
|
99
101
|
def read_sources(self, language: str) -> ExtractorCommandInput | None:
|
|
100
102
|
return self.pipeline.read_sources(language)
|
|
101
103
|
|
|
102
|
-
def write_sources(self,
|
|
103
|
-
return self.pipeline.write_sources(
|
|
104
|
+
def write_sources(self, document: str) -> int:
|
|
105
|
+
return self.pipeline.write_sources(document)
|
|
104
106
|
|
|
105
107
|
def generate_documentation(self, readme: str, public_interfaces: tuple[type[object], ...], check: bool) -> int:
|
|
106
108
|
return self.documentation.generate(Path(readme), public_interfaces, check)
|
|
@@ -110,28 +112,33 @@ class CliFacade:
|
|
|
110
112
|
if request is None:
|
|
111
113
|
return 1
|
|
112
114
|
if request.batch:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
115
|
+
return self.write_sources(
|
|
116
|
+
ParsedSourceBatch(
|
|
117
|
+
sources={
|
|
118
|
+
source.source_id: self.extraction.parse_source(
|
|
119
|
+
language, source.content, str(source.path), str(source.root), source.source_id
|
|
120
|
+
)
|
|
121
|
+
for source in request.sources
|
|
122
|
+
}
|
|
123
|
+
).document()
|
|
124
|
+
)
|
|
120
125
|
source = request.sources[0]
|
|
121
126
|
return self.write_sources(
|
|
122
|
-
self.extraction.parse_source(
|
|
127
|
+
self.extraction.parse_source(
|
|
128
|
+
language, source.content, str(source.path), str(source.root), source.source_id
|
|
129
|
+
).model_dump_json()
|
|
123
130
|
)
|
|
124
131
|
|
|
125
132
|
def run(self, argv: Sequence[str]) -> int:
|
|
126
133
|
request = self.parse(argv)
|
|
127
|
-
if request.command
|
|
134
|
+
if request.command is CommandName.INIT:
|
|
128
135
|
return self.initialize(self.working_directory(), str(request.dot_dir), request.force)
|
|
129
136
|
cache_options = CacheOptions(
|
|
130
137
|
directory=str(request.cache_directory),
|
|
131
138
|
namespace=request.cache_namespace,
|
|
132
139
|
max_bytes=request.cache_max_bytes,
|
|
133
140
|
)
|
|
134
|
-
if request.command
|
|
141
|
+
if request.command is CommandName.CACHE_CLEAR:
|
|
135
142
|
self.clear_cache(cache_options)
|
|
136
143
|
return 0
|
|
137
144
|
config = self.load_configuration(str(request.dot_dir))
|