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.
Files changed (532) hide show
  1. {modwire-11.0.1 → modwire-11.0.3}/.dev/modwire.egg-info/SOURCES.txt +108 -11
  2. {modwire-11.0.1 → modwire-11.0.3}/Makefile +2 -1
  3. {modwire-11.0.1 → modwire-11.0.3}/PKG-INFO +1 -1
  4. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/application.py +1 -1
  5. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/module_boundary_analyzer.py +2 -1
  6. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/no_cycles_flow_analyzer.py +4 -4
  7. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/no_reentry_flow_analyzer.py +10 -10
  8. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_rules.py +5 -1
  9. modwire-11.0.3/src/modwire/architecture/insights/models/exports_report_item.py +11 -0
  10. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/clusters_reporter.py +33 -8
  11. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/coherence_reporter.py +7 -5
  12. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/hotspots_reporter.py +3 -2
  13. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/file_resolver.py +3 -1
  14. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/import_resolver.py +2 -1
  15. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/application.py +2 -1
  16. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/cache_identity.py +3 -1
  17. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/facade.py +19 -12
  18. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/application.py +8 -6
  19. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/services/initialization_service.py +5 -1
  20. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/application.py +2 -2
  21. modwire-11.0.3/src/modwire/cli/pipeline/batching/balanced_planner.py +34 -0
  22. modwire-11.0.3/src/modwire/cli/pipeline/batching/fixed_planner.py +22 -0
  23. modwire-11.0.3/src/modwire/cli/pipeline/batching/plan.py +8 -0
  24. modwire-11.0.3/src/modwire/cli/pipeline/batching/planner.py +11 -0
  25. modwire-11.0.3/src/modwire/cli/pipeline/models/command_name.py +7 -0
  26. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/command_request.py +2 -2
  27. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_batch_input.py +2 -1
  28. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_source_input.py +2 -1
  29. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/batch_source_reader.py +26 -60
  30. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/command_line.py +6 -5
  31. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/extractor_command.py +2 -2
  32. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/source_manifest_builder.py +4 -9
  33. modwire-11.0.3/src/modwire/cli/pipeline/transport/json_lines_output_reader.py +16 -0
  34. modwire-11.0.3/src/modwire/cli/pipeline/transport/json_output_reader.py +15 -0
  35. modwire-11.0.3/src/modwire/cli/pipeline/transport/output_reader.py +10 -0
  36. modwire-11.0.3/src/modwire/cli/pipeline/transport/source_file_factory.py +31 -0
  37. modwire-11.0.3/src/modwire/cli/resources/models/defaults.py +15 -0
  38. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/models/init_asset.py +2 -2
  39. modwire-11.0.3/src/modwire/cli/resources/models/init_target_base.py +6 -0
  40. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/import_resolver.py +15 -4
  41. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/application.py +3 -1
  42. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/domain.py +2 -1
  43. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/batch_config.py +3 -3
  44. modwire-11.0.3/src/modwire/extraction/extractors/models/batch_output_format.py +6 -0
  45. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extractor_runtime.py +2 -2
  46. modwire-11.0.3/src/modwire/extraction/extractors/models/parsed_source_batch.py +13 -0
  47. modwire-11.0.3/src/modwire/extraction/extractors/models/parsed_source_file.py +31 -0
  48. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/php/extractor.py +11 -13
  49. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/python/extractor.py +16 -63
  50. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/call_candidate.py +18 -0
  51. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/call_observation.py +9 -0
  52. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/call_reference.py +11 -0
  53. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/callable_candidate.py +15 -0
  54. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/class_candidate.py +9 -0
  55. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/export_candidate.py +18 -0
  56. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/function_candidate.py +8 -0
  57. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/import_candidate.py +11 -0
  58. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/inheritance_candidate.py +10 -0
  59. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/property_candidate.py +17 -0
  60. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/property_scope.py +6 -0
  61. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/source_context.py +11 -0
  62. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/source_observation.py +24 -0
  63. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/value_candidate.py +9 -0
  64. modwire-11.0.3/src/modwire/extraction/extractors/python/pipeline/source_parser.py +31 -0
  65. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/classifier.py +41 -0
  66. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/constructor_rule.py +21 -0
  67. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/function_rule.py +46 -0
  68. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/instance_method_rule.py +21 -0
  69. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/static_method_rule.py +35 -0
  70. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/callables/type_method_rule.py +35 -0
  71. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/classifier.py +64 -0
  72. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/constructor_target_rule.py +23 -0
  73. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/dynamic_target_rule.py +22 -0
  74. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/instance_target_rule.py +24 -0
  75. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/local_target_rule.py +23 -0
  76. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/qualified_target_rule.py +23 -0
  77. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/reference_reader.py +80 -0
  78. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/calls/unresolved_target_rule.py +22 -0
  79. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/catalog.py +57 -0
  80. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/classes/abstract_rule.py +38 -0
  81. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/classes/classifier.py +41 -0
  82. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/classes/concrete_rule.py +21 -0
  83. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contribution.py +33 -0
  84. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/call_contributor.py +55 -0
  85. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/callable_contributor.py +117 -0
  86. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/class_contributor.py +174 -0
  87. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/export_contributor.py +221 -0
  88. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/function_contributor.py +71 -0
  89. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/import_contributor.py +101 -0
  90. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/inheritance_contributor.py +49 -0
  91. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/metric_contributor.py +50 -0
  92. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/property_contributor.py +66 -0
  93. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/contributors/value_contributor.py +148 -0
  94. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/exports/classifier.py +56 -0
  95. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/exports/explicit_rule.py +21 -0
  96. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/exports/implicit_rule.py +21 -0
  97. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/annotation_reader.py +38 -0
  98. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/assigned_value_reader.py +120 -0
  99. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/declaration_identity_factory.py +40 -0
  100. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/expression_reference_reader.py +41 -0
  101. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/import_path_policy.py +44 -0
  102. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/module_identity_policy.py +45 -0
  103. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/parameter_reader.py +125 -0
  104. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/type_alias_classifier.py +62 -0
  105. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/policies/visibility_policy.py +24 -0
  106. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/annotated_class_rule.py +75 -0
  107. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/annotated_instance_rule.py +59 -0
  108. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/assigned_class_rule.py +58 -0
  109. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/assigned_instance_rule.py +56 -0
  110. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/classifier.py +153 -0
  111. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/decorated_method_rule.py +77 -0
  112. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/reader.py +44 -0
  113. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/call_contributor.py +19 -0
  114. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/callable_contributor.py +19 -0
  115. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/class_contributor.py +19 -0
  116. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/contribution.py +97 -0
  117. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/export_contributor.py +19 -0
  118. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/function_contributor.py +19 -0
  119. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/import_contributor.py +19 -0
  120. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/inheritance_contributor.py +19 -0
  121. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/metric_contributor.py +23 -0
  122. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/property_contributor.py +19 -0
  123. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/reader.py +43 -0
  124. modwire-11.0.3/src/modwire/extraction/extractors/python/source_facts/value_contributor.py +19 -0
  125. modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/context.py +18 -0
  126. modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/observation_reader.py +21 -0
  127. modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/ordered_observation_visitor.py +569 -0
  128. modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/traversal_role.py +8 -0
  129. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/typescript/extractor.py +11 -13
  130. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/facade.py +3 -1
  131. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/implementation_manifest.py +9 -4
  132. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/implementation_manifest_document.py +1 -1
  133. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_annotation.py +2 -1
  134. modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_annotation_role.py +9 -0
  135. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_attribute.py +1 -1
  136. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_callable.py +2 -1
  137. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_dependency.py +5 -3
  138. modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_dependency_target_kind.py +7 -0
  139. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_parameter.py +2 -1
  140. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_symbol.py +4 -2
  141. modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_symbol_kind.py +15 -0
  142. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/services/canonical_json_manifest_serializer.py +1 -1
  143. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/services/code_map_manifest_compiler.py +70 -26
  144. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_graph.py +4 -3
  145. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/duplicate_identity_error.py +2 -3
  146. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/edge.py +2 -2
  147. modwire-11.0.3/src/modwire/shared/code/models/identity_kind.py +6 -0
  148. modwire-11.0.3/src/modwire/shared/code/models/import_crossing_type.py +6 -0
  149. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/node.py +2 -1
  150. modwire-11.0.3/src/modwire/shared/code/models/node_kind.py +5 -0
  151. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/query_builder.py +1 -1
  152. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/queryable_code_map.py +18 -14
  153. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_call.py +1 -1
  154. modwire-11.0.3/src/modwire/shared/code/models/source_call_resolution.py +8 -0
  155. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_callable.py +8 -8
  156. modwire-11.0.3/src/modwire/shared/code/models/source_callable_kind.py +11 -0
  157. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_class_property.py +1 -1
  158. modwire-11.0.3/src/modwire/shared/code/models/source_dependency_resolution.py +7 -0
  159. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_export.py +2 -1
  160. modwire-11.0.3/src/modwire/shared/code/models/source_export_kind.py +12 -0
  161. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_import.py +3 -2
  162. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_manifest.py +2 -1
  163. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_manifest_identity.py +2 -1
  164. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_parameter.py +1 -1
  165. modwire-11.0.3/src/modwire/shared/code/models/source_parameter_kind.py +8 -0
  166. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_signature.py +1 -1
  167. modwire-11.0.3/src/modwire/shared/code/models/source_signature_kind.py +7 -0
  168. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_symbol.py +1 -1
  169. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_value.py +3 -1
  170. modwire-11.0.3/src/modwire/shared/code/models/source_value_declaration_kind.py +8 -0
  171. modwire-11.0.3/src/modwire/shared/code/models/source_value_kind.py +9 -0
  172. modwire-11.0.3/src/modwire/shared/code/models/source_visibility.py +7 -0
  173. {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_01_attacks.py +47 -0
  174. {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_08_implementation_manifest.py +140 -0
  175. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/config/test_01_attacks.py +16 -0
  176. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_02_invariants.py +4 -3
  177. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_03_interruption.py +5 -5
  178. modwire-11.0.3/tests/cli/pipeline/test_06_happy_path.py +57 -0
  179. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/run.py +5 -9
  180. modwire-11.0.1/docs/target-language-ownership.md +0 -37
  181. modwire-11.0.1/src/modwire/architecture/insights/models/exports_report_item.py +0 -9
  182. modwire-11.0.1/src/modwire/cli/resources/models/defaults.py +0 -14
  183. modwire-11.0.1/src/modwire/extraction/extractors/models/extractor_resource_set.py +0 -23
  184. modwire-11.0.1/src/modwire/extraction/extractors/python/assigned_value_reader.py +0 -107
  185. modwire-11.0.1/src/modwire/extraction/extractors/python/call_context.py +0 -10
  186. modwire-11.0.1/src/modwire/extraction/extractors/python/call_reader.py +0 -61
  187. modwire-11.0.1/src/modwire/extraction/extractors/python/domain.py +0 -27
  188. modwire-11.0.1/src/modwire/extraction/extractors/python/expression_reference_reader.py +0 -30
  189. modwire-11.0.1/src/modwire/extraction/extractors/python/syntax_parser.py +0 -983
  190. modwire-11.0.1/src/modwire/shared/code/models/edge_resolution.py +0 -3
  191. modwire-11.0.1/src/modwire/shared/code/models/types.py +0 -14
  192. modwire-11.0.1/tests/cli/pipeline/test_06_happy_path.py +0 -25
  193. {modwire-11.0.1 → modwire-11.0.3}/.github/workflows/ci.yml +0 -0
  194. {modwire-11.0.1 → modwire-11.0.3}/.github/workflows/release.yml +0 -0
  195. {modwire-11.0.1 → modwire-11.0.3}/.gitignore +0 -0
  196. {modwire-11.0.1 → modwire-11.0.3}/AGENTS.md +0 -0
  197. {modwire-11.0.1 → modwire-11.0.3}/LICENSE +0 -0
  198. {modwire-11.0.1 → modwire-11.0.3}/MANIFEST.in +0 -0
  199. {modwire-11.0.1 → modwire-11.0.3}/README.md +0 -0
  200. {modwire-11.0.1 → modwire-11.0.3}/pyproject.toml +0 -0
  201. {modwire-11.0.1 → modwire-11.0.3}/scripts/check_extractors.py +0 -0
  202. {modwire-11.0.1 → modwire-11.0.3}/scripts/generate_docs.py +0 -0
  203. {modwire-11.0.1 → modwire-11.0.3}/scripts/verify_consumer.py +0 -0
  204. {modwire-11.0.1 → modwire-11.0.3}/setup.cfg +0 -0
  205. {modwire-11.0.1 → modwire-11.0.3}/setup.py +0 -0
  206. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/__init__.py +0 -0
  207. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/__main__.py +0 -0
  208. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/__init__.py +0 -0
  209. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/__init__.py +0 -0
  210. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/application.py +0 -0
  211. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/domain.py +0 -0
  212. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/__init__.py +0 -0
  213. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/edge_rule_violation.py +0 -0
  214. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/flow_report.py +0 -0
  215. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/flow_violation.py +0 -0
  216. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/types.py +0 -0
  217. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/__init__.py +0 -0
  218. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/backward_flow_analyzer.py +0 -0
  219. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/boundaries_flow_analyzer.py +0 -0
  220. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/__init__.py +0 -0
  221. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/application.py +0 -0
  222. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/__init__.py +0 -0
  223. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/architecture_config.py +0 -0
  224. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/boundaries_config.py +0 -0
  225. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/boundary_rule.py +0 -0
  226. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/configuration_value.py +0 -0
  227. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/flow_realm.py +0 -0
  228. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/flow_rules.py +0 -0
  229. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_config.py +0 -0
  230. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_realm.py +0 -0
  231. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/config/models/tag_rule.py +0 -0
  232. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/facade.py +0 -0
  233. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/__init__.py +0 -0
  234. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/application.py +0 -0
  235. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/domain.py +0 -0
  236. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/__init__.py +0 -0
  237. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/callable_report_entry.py +0 -0
  238. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/callables_report.py +0 -0
  239. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/clusters_report.py +0 -0
  240. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/clusters_report_item.py +0 -0
  241. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/coherence_report.py +0 -0
  242. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/exports_report.py +0 -0
  243. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/hotspots_report.py +0 -0
  244. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/hotspots_report_item.py +0 -0
  245. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/models/insight_report.py +0 -0
  246. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/__init__.py +0 -0
  247. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/callables_reporter.py +0 -0
  248. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/exports_reporter.py +0 -0
  249. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/insights/services/insight_report_field_map.py +0 -0
  250. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/__init__.py +0 -0
  251. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/application.py +0 -0
  252. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/domain.py +0 -0
  253. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/__init__.py +0 -0
  254. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/architecture_map.py +0 -0
  255. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/architecture_realm.py +0 -0
  256. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/tag_map.py +0 -0
  257. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/models/tag_match.py +0 -0
  258. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/services/__init__.py +0 -0
  259. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/services/architecture_map_loader.py +0 -0
  260. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/map/services/tag_matcher.py +0 -0
  261. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/__init__.py +0 -0
  262. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/application.py +0 -0
  263. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/domain.py +0 -0
  264. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/__init__.py +0 -0
  265. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/architecture_group.py +0 -0
  266. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/map_report.py +0 -0
  267. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_catalog.py +0 -0
  268. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_descriptor.py +0 -0
  269. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_item.py +0 -0
  270. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_metadata.py +0 -0
  271. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_node.py +0 -0
  272. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/models/report_section.py +0 -0
  273. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/services/__init__.py +0 -0
  274. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/report/services/map_report_collector.py +0 -0
  275. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/__init__.py +0 -0
  276. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/application.py +0 -0
  277. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/domain.py +0 -0
  278. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/__init__.py +0 -0
  279. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_realm_architecture_map.py +0 -0
  280. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_report.py +0 -0
  281. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_violation.py +0 -0
  282. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/__init__.py +0 -0
  283. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/abstract_class_resolver.py +0 -0
  284. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/callable_resolver.py +0 -0
  285. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/class_resolver.py +0 -0
  286. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/property_resolver.py +0 -0
  287. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/signature_resolver.py +0 -0
  288. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/architecture/shape/services/symbol_resolver.py +0 -0
  289. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/autowiring.py +0 -0
  290. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/__init__.py +0 -0
  291. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/__init__.py +0 -0
  292. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/domain.py +0 -0
  293. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/__init__.py +0 -0
  294. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_entry.py +0 -0
  295. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_key.py +0 -0
  296. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_kind.py +0 -0
  297. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_options.py +0 -0
  298. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_outcome.py +0 -0
  299. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_plan.py +0 -0
  300. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_stage.py +0 -0
  301. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_storage_state.py +0 -0
  302. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/cached_result.py +0 -0
  303. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/models/source_cache_entry.py +0 -0
  304. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/__init__.py +0 -0
  305. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/cache_codec.py +0 -0
  306. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/cache/services/filesystem_cache_storage.py +0 -0
  307. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/__init__.py +0 -0
  308. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/application.py +0 -0
  309. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/services/__init__.py +0 -0
  310. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/documentation/services/documentation_generator.py +0 -0
  311. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/__init__.py +0 -0
  312. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/models/__init__.py +0 -0
  313. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/models/initialization_result.py +0 -0
  314. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/initialization/services/__init__.py +0 -0
  315. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/__init__.py +0 -0
  316. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/domain.py +0 -0
  317. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/__init__.py +0 -0
  318. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_command_input.py +0 -0
  319. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/report_pipeline_context.py +0 -0
  320. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/source_entry.py +0 -0
  321. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/models/source_inventory.py +0 -0
  322. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/__init__.py +0 -0
  323. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/callables_insight.py +0 -0
  324. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/clusters_insight.py +0 -0
  325. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/coherence_insight.py +0 -0
  326. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/configuration_loader.py +0 -0
  327. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/flow_violations.py +0 -0
  328. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/hotspots_insight.py +0 -0
  329. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/map_tree.py +0 -0
  330. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/output_console.py +0 -0
  331. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/shape_violations.py +0 -0
  332. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/success.py +0 -0
  333. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/unknown_files_warning.py +0 -0
  334. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/pipeline/services/unused_exports_insight.py +0 -0
  335. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/__init__.py +0 -0
  336. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/application.py +0 -0
  337. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/models/__init__.py +0 -0
  338. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/AGENTS.md +0 -0
  339. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/ARCHITECTURE.md +0 -0
  340. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/INDEX.md +0 -0
  341. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/MODWIRE.md +0 -0
  342. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/RULES.md +0 -0
  343. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/TESTING.md +0 -0
  344. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/WORKFLOW.md +0 -0
  345. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/cli/resources/templates/architecture.yaml +0 -0
  346. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/__init__.py +0 -0
  347. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/__init__.py +0 -0
  348. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/application.py +0 -0
  349. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/domain.py +0 -0
  350. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/__init__.py +0 -0
  351. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/graph_builder.py +0 -0
  352. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/dependency/services/import_identity_index.py +0 -0
  353. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/__init__.py +0 -0
  354. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/__init__.py +0 -0
  355. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extraction_request.py +0 -0
  356. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extractor_resource.py +0 -0
  357. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/php/__init__.py +0 -0
  358. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/python/__init__.py +0 -0
  359. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/__init__.py +0 -0
  360. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/build.php +0 -0
  361. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/build.py +0 -0
  362. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/composer.json +0 -0
  363. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/composer.lock +0 -0
  364. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/script.php +0 -0
  365. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/script.src.php +0 -0
  366. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/python/__init__.py +0 -0
  367. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/python/script.py +0 -0
  368. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/build.mjs +0 -0
  369. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/build.py +0 -0
  370. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/package-lock.json +0 -0
  371. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/package.json +0 -0
  372. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/script.js +0 -0
  373. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/script.ts +0 -0
  374. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/tsconfig.json +0 -0
  375. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/extraction/extractors/typescript/__init__.py +0 -0
  376. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/__init__.py +0 -0
  377. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/facade.py +0 -0
  378. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/__init__.py +0 -0
  379. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/application.py +0 -0
  380. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/__init__.py +0 -0
  381. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/manifest_compiler.py +0 -0
  382. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/manifest_serializer.py +0 -0
  383. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/__init__.py +0 -0
  384. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_format.py +0 -0
  385. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_inheritance.py +0 -0
  386. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_span.py +0 -0
  387. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/implementation/manifest/services/__init__.py +0 -0
  388. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/py.typed +0 -0
  389. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/__init__.py +0 -0
  390. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/__init__.py +0 -0
  391. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/application.py +0 -0
  392. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/domain.py +0 -0
  393. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/__init__.py +0 -0
  394. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/capability_coverage.py +0 -0
  395. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/capability_status.py +0 -0
  396. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/code_map.py +0 -0
  397. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/code_map_producer.py +0 -0
  398. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/code_package.py +0 -0
  399. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/declaration_family.py +0 -0
  400. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/declaration_identity.py +0 -0
  401. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_edge_result.py +0 -0
  402. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_node_result.py +0 -0
  403. {modwire-11.0.1/src/modwire/implementation/manifest → modwire-11.0.3/src/modwire/shared/code}/models/digest_algorithm.py +0 -0
  404. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/extractor_descriptor.py +0 -0
  405. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/fact_capability.py +0 -0
  406. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/identity.py +0 -0
  407. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/query_types.py +0 -0
  408. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/runtime_observation.py +0 -0
  409. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/scan_policy.py +0 -0
  410. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_abstract_class.py +0 -0
  411. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_artifact.py +0 -0
  412. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_assigned_value.py +0 -0
  413. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_assigned_value_kind.py +0 -0
  414. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_callable_symbol.py +0 -0
  415. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_class.py +0 -0
  416. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_class_method.py +0 -0
  417. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_extraction.py +0 -0
  418. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_file.py +0 -0
  419. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_file_result.py +0 -0
  420. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_function.py +0 -0
  421. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_imported_symbol.py +0 -0
  422. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_inheritance.py +0 -0
  423. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_interface.py +0 -0
  424. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_item_result.py +0 -0
  425. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_member_kind.py +0 -0
  426. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_relation_kind.py +0 -0
  427. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_type.py +0 -0
  428. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/models/source_value_scope.py +0 -0
  429. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/__init__.py +0 -0
  430. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/glob_path_matcher.py +0 -0
  431. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/identity_resolver.py +0 -0
  432. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/code/services/installed_package_version.py +0 -0
  433. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/values/__init__.py +0 -0
  434. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/values/models/__init__.py +0 -0
  435. {modwire-11.0.1 → modwire-11.0.3}/src/modwire/shared/values/models/value_model.py +0 -0
  436. {modwire-11.0.1 → modwire-11.0.3}/tests/__init__.py +0 -0
  437. {modwire-11.0.1 → modwire-11.0.3}/tests/application/__init__.py +0 -0
  438. {modwire-11.0.1 → modwire-11.0.3}/tests/application/base_test.py +0 -0
  439. {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_06_happy_path.py +0 -0
  440. {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_07_cache.py +0 -0
  441. {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_09_source_manifest_identity.py +0 -0
  442. {modwire-11.0.1 → modwire-11.0.3}/tests/application/test_10_assigned_value_evidence.py +0 -0
  443. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/__init__.py +0 -0
  444. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/base_test.py +0 -0
  445. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/__init__.py +0 -0
  446. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/base_test.py +0 -0
  447. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_01_attacks.py +0 -0
  448. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_02_invariants.py +0 -0
  449. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_03_public_api.py +0 -0
  450. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/boundaries/test_04_paths.py +0 -0
  451. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/config/__init__.py +0 -0
  452. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/config/test_02_invariants.py +0 -0
  453. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/insights/__init__.py +0 -0
  454. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/insights/base_test.py +0 -0
  455. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/insights/test_02_invariants.py +0 -0
  456. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/map/__init__.py +0 -0
  457. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/map/test_02_patterns.py +0 -0
  458. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report/__init__.py +0 -0
  459. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report/test_02_invariants.py +0 -0
  460. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report_benchmark/__init__.py +0 -0
  461. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report_benchmark/benchmark_process_timeout.py +0 -0
  462. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/report_benchmark/run.py +0 -0
  463. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/__init__.py +0 -0
  464. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/base_test.py +0 -0
  465. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/test_01_limits.py +0 -0
  466. {modwire-11.0.1 → modwire-11.0.3}/tests/architecture/shape/test_02_invariants.py +0 -0
  467. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/__init__.py +0 -0
  468. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/base_test.py +0 -0
  469. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/documentation/__init__.py +0 -0
  470. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/documentation/test_02_invariants.py +0 -0
  471. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/__init__.py +0 -0
  472. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_01_attacks.py +0 -0
  473. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_02_invariants.py +0 -0
  474. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_03_interruption.py +0 -0
  475. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_04_cleanup.py +0 -0
  476. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/initialization/test_05_recovery.py +0 -0
  477. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/__init__.py +0 -0
  478. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/base_test.py +0 -0
  479. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_01_attacks.py +0 -0
  480. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_04_command_transport.py +0 -0
  481. {modwire-11.0.1 → modwire-11.0.3}/tests/cli/pipeline/test_05_recovery.py +0 -0
  482. {modwire-11.0.1 → modwire-11.0.3}/tests/conftest.py +0 -0
  483. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/__init__.py +0 -0
  484. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/base_test.py +0 -0
  485. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/__init__.py +0 -0
  486. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/project.py +0 -0
  487. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/projects.json +0 -0
  488. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/resolution_results.json +0 -0
  489. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/big_projects/results.json +0 -0
  490. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/cache_benchmark/__init__.py +0 -0
  491. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/cache_benchmark/benchmark_process_timeout.py +0 -0
  492. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/cache_benchmark/run.py +0 -0
  493. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/dependency/__init__.py +0 -0
  494. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/dependency/test_02_invariants.py +0 -0
  495. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/__init__.py +0 -0
  496. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/test_01_attacks.py +0 -0
  497. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/test_02_invariants.py +0 -0
  498. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/extractors/test_03_native_symbols.py +0 -0
  499. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/__init__.py +0 -0
  500. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/prepare.py +0 -0
  501. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/results.json +0 -0
  502. {modwire-11.0.1 → modwire-11.0.3}/tests/extraction/scan_benchmark/run.py +0 -0
  503. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/ignored/example_generated.php +0 -0
  504. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_application/example_actions/example_action.php +0 -0
  505. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_domain/example_model/example_record.php +0 -0
  506. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_domain/example_services/example_policy.php +0 -0
  507. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_interfaces/example_http/example_controller.php +0 -0
  508. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/ignored/example_generated.py +0 -0
  509. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_application/example_actions/example_action.py +0 -0
  510. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_domain/example_model/example_record.py +0 -0
  511. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_domain/example_services/example_policy.py +0 -0
  512. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_interfaces/example_http/example_controller.py +0 -0
  513. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/ignored/example_generated.ts +0 -0
  514. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_application/example_actions/example_action.ts +0 -0
  515. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_record.ts +0 -0
  516. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_view.tsx +0 -0
  517. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_audit.js +0 -0
  518. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_callables.ts +0 -0
  519. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_policy.ts +0 -0
  520. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_controller.ts +0 -0
  521. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_view.jsx +0 -0
  522. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/syntax/php/example_shapes.php +0 -0
  523. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/syntax/python/example_shapes.py +0 -0
  524. {modwire-11.0.1 → modwire-11.0.3}/tests/fixtures/syntax/typescript/example_shapes.ts +0 -0
  525. {modwire-11.0.1 → modwire-11.0.3}/tests/shared/__init__.py +0 -0
  526. {modwire-11.0.1 → modwire-11.0.3}/tests/shared/code/__init__.py +0 -0
  527. {modwire-11.0.1 → modwire-11.0.3}/tests/shared/code/test_02_invariants.py +0 -0
  528. {modwire-11.0.1 → modwire-11.0.3}/tests/support/__init__.py +0 -0
  529. {modwire-11.0.1 → modwire-11.0.3}/tests/support/base_test.py +0 -0
  530. {modwire-11.0.1 → modwire-11.0.3}/tests/support/code_map.py +0 -0
  531. {modwire-11.0.1 → modwire-11.0.3}/tests/support/service_test.py +0 -0
  532. {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/syntax_parser.py
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/types.py
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)"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modwire
3
- Version: 11.0.1
3
+ Version: 11.0.3
4
4
  Summary: Code extraction, architecture analysis and the Modwire CLI.
5
5
  Author: Tomasz Szpak
6
6
  License-Expression: MIT
@@ -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 != "resolved" or edge.to_id is None:
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 dependency in architecture_map.code_map.dependency_edges().all():
42
- if dependency.edge.to_id is None:
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, dependency.edge.from_id)
45
- target = self.module_for(architecture_map, dependency.edge.to_id)
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
- architecture_map.code_map.outgoing_dependencies(FileId(source_id)).all(),
71
- key=lambda dependency: (
72
- dependency.edge.to_id or "",
73
- dependency.edge.specifier,
74
- dependency.edge.kind,
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 dependency in dependencies:
78
- target_id = dependency.edge.to_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[str, ...] = ("module", "symbol")
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
@@ -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
- file_sets.setdefault(self.cluster_name(source_id), []).append(source_id)
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 = self.incoming_count(architecture_map, file_tuple)
36
- outgoing_count = self.outgoing_count(architecture_map, file_tuple)
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=self.top_files(architecture_map, file_tuple),
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
- return (
82
- architecture_map.code_map.incoming_dependencies(FileId(source_id)).count()
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)))
@@ -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 = architecture_map.code_map.incoming_dependencies(FileId(source_id)).count() > 0
29
- has_outgoing = architecture_map.code_map.outgoing_dependencies(FileId(source_id)).count() > 0
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
- edge_result.edge.specifier
38
- for edge_result in architecture_map.code_map.external_dependency_edges().all()
39
- if edge_result.edge.resolution == "external"
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),
@@ -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
- incoming_count = architecture_map.code_map.incoming_dependencies(FileId(source_id)).count()
34
- outgoing_count = architecture_map.code_map.outgoing_dependencies(FileId(source_id)).count()
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 == SourceValueScope.MODULE and value.declaration_kind == "assignment"
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,
@@ -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 != "module"
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("module", source_file.module_id, existing, file_id)
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
- "runtime": request.runtime.model_dump(mode="json"),
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, result: dict[str, object]) -> int:
103
- return self.pipeline.write_sources(result)
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
- result: dict[str, object] = {
114
- source.source_id: self.extraction.parse_source(
115
- language, source.content, str(source.path), str(source.root), source.source_id
116
- )
117
- for source in request.sources
118
- }
119
- return self.write_sources(result)
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(language, source.content, str(source.path), str(source.root), source.source_id)
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 == "init":
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 == "cache-clear":
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))