pyarchinit-mini 2.7.1__tar.gz → 2.8.0__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 (541) hide show
  1. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/CHANGELOG.md +26 -0
  2. {pyarchinit_mini-2.7.1/pyarchinit_mini.egg-info → pyarchinit_mini-2.8.0}/PKG-INFO +1 -1
  3. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/__init__.py +1 -1
  4. pyarchinit_mini-2.8.0/pyarchinit_mini/em_palette/__init__.py +11 -0
  5. pyarchinit_mini-2.8.0/pyarchinit_mini/em_palette/loader.py +171 -0
  6. pyarchinit_mini-2.8.0/pyarchinit_mini/em_palette/styles.py +27 -0
  7. pyarchinit_mini-2.8.0/pyarchinit_mini/graphml_converter/templates/EM_palette.graphml +3246 -0
  8. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/graph_to_db.py +152 -0
  9. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/graphml_reader.py +72 -0
  10. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/graphml_writer.py +89 -0
  11. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/heriverse_parser.py +87 -0
  12. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/rapporti_codec.py +164 -0
  13. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/s3d_projector.py +230 -0
  14. pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/s3d_to_cytoscape.py +103 -0
  15. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/swimlane_state.py +84 -1
  16. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/app.py +5 -0
  17. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/harris_creator_routes.py +162 -37
  18. pyarchinit_mini-2.8.0/pyarchinit_mini/web_interface/matrix_tools_routes.py +26 -0
  19. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_creator/editor.html +79 -0
  20. pyarchinit_mini-2.8.0/pyarchinit_mini/web_interface/templates/matrix_tools/index.html +80 -0
  21. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/list.html +8 -0
  22. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0/pyarchinit_mini.egg-info}/PKG-INFO +1 -1
  23. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/SOURCES.txt +27 -0
  24. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyproject.toml +1 -1
  25. pyarchinit_mini-2.8.0/tests/integration/test_adarte_regression.py +61 -0
  26. pyarchinit_mini-2.8.0/tests/integration/test_api_export_graphml.py +59 -0
  27. pyarchinit_mini-2.8.0/tests/integration/test_api_export_heriverse.py +87 -0
  28. pyarchinit_mini-2.8.0/tests/integration/test_api_import_graphml.py +104 -0
  29. pyarchinit_mini-2.8.0/tests/integration/test_api_import_json.py +85 -0
  30. pyarchinit_mini-2.8.0/tests/integration/test_api_load_site.py +81 -0
  31. pyarchinit_mini-2.8.0/tests/integration/test_feature_flag_pipelines.py +67 -0
  32. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_load.py +8 -0
  33. pyarchinit_mini-2.8.0/tests/integration/test_roundtrip.py +85 -0
  34. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_swimlane_group_by.py +11 -1
  35. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_yed_export_route.py +36 -23
  36. pyarchinit_mini-2.8.0/tests/unit/test_graph_to_db.py +117 -0
  37. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_state_load.py +8 -0
  38. pyarchinit_mini-2.8.0/tests/unit/test_heriverse_parser.py +93 -0
  39. pyarchinit_mini-2.8.0/tests/unit/test_palette_loader.py +59 -0
  40. pyarchinit_mini-2.8.0/tests/unit/test_palette_styles.py +20 -0
  41. pyarchinit_mini-2.8.0/tests/unit/test_rapporti_codec.py +104 -0
  42. pyarchinit_mini-2.8.0/tests/unit/test_s3d_projector.py +180 -0
  43. pyarchinit_mini-2.8.0/tests/unit/test_s3d_to_cytoscape.py +75 -0
  44. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_writer_extended_matrix.py +4 -1
  45. pyarchinit_mini-2.7.1/pyarchinit_mini/graphml_converter/templates/EM_palette.graphml +0 -658
  46. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/MANIFEST.in +0 -0
  47. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/README.md +0 -0
  48. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/babel.cfg +0 -0
  49. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/media_viewer_demo.db +0 -0
  50. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_mini 2.db +0 -0
  51. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_mini.db +0 -0
  52. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_mini_sample.db +0 -0
  53. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial.db +0 -0
  54. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial_backup_20251030_093228.db +0 -0
  55. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial_clean.db +0 -0
  56. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial_video.db +0 -0
  57. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_v18_demo.db +0 -0
  58. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/logo/logo_pyarchinit-mini.png +0 -0
  59. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/__init__.py +0 -0
  60. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/apply.py +0 -0
  61. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/plan.py +0 -0
  62. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/vision_extractor.py +0 -0
  63. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/__init__.py +0 -0
  64. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/auth.py +0 -0
  65. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/dependencies.py +0 -0
  66. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/graphml.py +0 -0
  67. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/inventario.py +0 -0
  68. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/schemas.py +0 -0
  69. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/site.py +0 -0
  70. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/sync.py +0 -0
  71. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/us.py +0 -0
  72. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/__init__.py +0 -0
  73. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/export_import_cli.py +0 -0
  74. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/extended_matrix_import.py +0 -0
  75. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/graphml_cli.py +0 -0
  76. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/harris_import.py +0 -0
  77. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/harris_template.py +0 -0
  78. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/migrate.py +0 -0
  79. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/migrate_vocab.py +0 -0
  80. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/pyarchinit_import_export_cli.py +0 -0
  81. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/sync_cli.py +0 -0
  82. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli_interface/__init__.py +0 -0
  83. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli_interface/cli_app.py +0 -0
  84. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/__init__.py +0 -0
  85. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/connection_manager.py +0 -0
  86. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/em_node_config_manager.py +0 -0
  87. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/em_node_types.yaml +0 -0
  88. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/__init__.py +0 -0
  89. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/concurrency_manager.py +0 -0
  90. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/connection.py +0 -0
  91. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/database_creator.py +0 -0
  92. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/manager.py +0 -0
  93. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/__init__.py +0 -0
  94. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/add_file_path.py +0 -0
  95. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/add_i18n_columns.py +0 -0
  96. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/add_tipo_documento.py +0 -0
  97. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text.py +0 -0
  98. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text_simple.py +0 -0
  99. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_node_uuid_backfill.py +0 -0
  100. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_node_uuid_schema.py +0 -0
  101. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_period_table_schema.py +0 -0
  102. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_vocab_alignment.py +0 -0
  103. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/__init__.py +0 -0
  104. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/backup.py +0 -0
  105. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/postgres_installer.py +0 -0
  106. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/schemas.py +0 -0
  107. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/utils.py +0 -0
  108. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/__init__.py +0 -0
  109. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/analytics_dialog.py +0 -0
  110. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/assets/logo.png +0 -0
  111. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/dialogs.py +0 -0
  112. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/excel_import_dialog.py +0 -0
  113. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/export_import_dialog.py +0 -0
  114. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/graphml_export_dialog.py +0 -0
  115. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/gui_app.py +0 -0
  116. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/harris_matrix_editor.py +0 -0
  117. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/i18n.py +0 -0
  118. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/icons.py +0 -0
  119. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/inventario_dialog_extended.py +0 -0
  120. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/main_window.py +0 -0
  121. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/media_manager_advanced.py +0 -0
  122. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/postgres_installer_dialog.py +0 -0
  123. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/pottery_dialog_extended.py +0 -0
  124. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/pottery_panel.py +0 -0
  125. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/pyarchinit_import_export_dialog.py +0 -0
  126. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/thesaurus_dialog.py +0 -0
  127. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/us_dialog_extended.py +0 -0
  128. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/__init__.py +0 -0
  129. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/inventario_dto.py +0 -0
  130. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/site_dto.py +0 -0
  131. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/us_dto.py +0 -0
  132. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/exceptions.py +0 -0
  133. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/__init__.py +0 -0
  134. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/converter.py +0 -0
  135. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/dot_parser.py +0 -0
  136. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/em_palette.py +0 -0
  137. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/graphml_builder.py +0 -0
  138. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/graphml_exporter.py +0 -0
  139. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/pure_networkx_exporter.py +0 -0
  140. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/svg_resources.py +0 -0
  141. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/x11_colors.py +0 -0
  142. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/yed_template.py +0 -0
  143. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/__init__.py +0 -0
  144. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/reader.py +0 -0
  145. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/writer.py +0 -0
  146. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/yed_importer.py +0 -0
  147. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/yed_keys.py +0 -0
  148. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/yed_writer.py +0 -0
  149. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/__init__.py +0 -0
  150. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/auto_regen.py +0 -0
  151. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/edge_registry.py +0 -0
  152. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/exceptions.py +0 -0
  153. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/filesystem.py +0 -0
  154. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/ingest_plan.py +0 -0
  155. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/ingestor.py +0 -0
  156. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/paradata_store.py +0 -0
  157. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/projector.py +0 -0
  158. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/__init__.py +0 -0
  159. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/enhanced_visualizer.py +0 -0
  160. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/matrix_generator.py +0 -0
  161. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/matrix_visualizer.py +0 -0
  162. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/pyarchinit_visualizer.py +0 -0
  163. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/__init__.py +0 -0
  164. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/compound_layout.py +0 -0
  165. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/exceptions.py +0 -0
  166. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/harris_layout.py +0 -0
  167. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/period_sync_service.py +0 -0
  168. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/row_provider.py +0 -0
  169. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/__init__.py +0 -0
  170. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/flask_babel_config.py +0 -0
  171. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/lang_routes.py +0 -0
  172. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/locale_manager.py +0 -0
  173. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/__init__.py +0 -0
  174. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/__main__.py +0 -0
  175. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/blender_client.py +0 -0
  176. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/config.py +0 -0
  177. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/event_stream.py +0 -0
  178. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/graphml_parser.py +0 -0
  179. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/http_server.py +0 -0
  180. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/period_filter.py +0 -0
  181. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/__init__.py +0 -0
  182. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/base_prompt.py +0 -0
  183. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/period_visualization_prompt.py +0 -0
  184. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/stratigraphic_model_prompt.py +0 -0
  185. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/us_description_prompt.py +0 -0
  186. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/proxy_generator.py +0 -0
  187. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/__init__.py +0 -0
  188. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/base_resource.py +0 -0
  189. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/graphml_resource.py +0 -0
  190. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/periods_resource.py +0 -0
  191. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/relationships_resource.py +0 -0
  192. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/sites_resource.py +0 -0
  193. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/us_resource.py +0 -0
  194. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/server.py +0 -0
  195. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/__init__.py +0 -0
  196. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/base_tool.py +0 -0
  197. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/batch_insert_tool.py +0 -0
  198. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/build_3d_tool.py +0 -0
  199. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/chatgpt_fetch_tool.py +0 -0
  200. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/chatgpt_search_tool.py +0 -0
  201. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/configure_em_nodes_tool.py +0 -0
  202. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/create_database_tool.py +0 -0
  203. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/create_harris_matrix_tool.py +0 -0
  204. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/data_import_parser_tool.py +0 -0
  205. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/data_management_tool.py +0 -0
  206. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/database_manager_tool.py +0 -0
  207. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/delete_data_tool.py +0 -0
  208. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/export_harris_matrix_graphml_tool.py +0 -0
  209. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/export_tool.py +0 -0
  210. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/filter_tool.py +0 -0
  211. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/generate_report_tool.py +0 -0
  212. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/get_schema_tool.py +0 -0
  213. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/import_excel_tool.py +0 -0
  214. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/insert_data_tool.py +0 -0
  215. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/manage_services_tool.py +0 -0
  216. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/material_tool.py +0 -0
  217. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/media_management_tool.py +0 -0
  218. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/position_tool.py +0 -0
  219. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/pyarchinit_sync_tool.py +0 -0
  220. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/resolve_conflicts_tool.py +0 -0
  221. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/service_management_tool.py +0 -0
  222. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/thesaurus_management_tool.py +0 -0
  223. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/update_data_tool.py +0 -0
  224. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/upload_file_tool.py +0 -0
  225. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_relationship_format_tool.py +0 -0
  226. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_relationship_integrity_tool.py +0 -0
  227. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_stratigraphic_relationships_tool.py +0 -0
  228. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_stratigraphy_tool.py +0 -0
  229. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/media_manager/__init__.py +0 -0
  230. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/media_manager/media_handler.py +0 -0
  231. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/__init__.py +0 -0
  232. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/ai_chat.py +0 -0
  233. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/app_setting.py +0 -0
  234. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/base.py +0 -0
  235. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/datazione.py +0 -0
  236. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/extended_matrix.py +0 -0
  237. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/harris_matrix.py +0 -0
  238. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/inventario_materiali.py +0 -0
  239. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/media.py +0 -0
  240. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/pottery.py +0 -0
  241. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/site.py +0 -0
  242. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/thesaurus.py +0 -0
  243. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/tma.py +0 -0
  244. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/us.py +0 -0
  245. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/user.py +0 -0
  246. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/__init__.py +0 -0
  247. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pdf_generator.py +0 -0
  248. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pdf_generator_backup.py +0 -0
  249. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pyarchinit_finds_template.py +0 -0
  250. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pyarchinit_inventory_template.py +0 -0
  251. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/usm_implementation.py +0 -0
  252. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/s3d_integration/__init__.py +0 -0
  253. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/s3d_integration/model_manager.py +0 -0
  254. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/s3d_integration/s3d_converter.py +0 -0
  255. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/__init__.py +0 -0
  256. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/auto_translate.py +0 -0
  257. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/configure_claude_desktop.py +0 -0
  258. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_admin_user.py +0 -0
  259. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_correct_stratigraphy_sample.py +0 -0
  260. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_italian_sample_database.py +0 -0
  261. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_sample_for_webapp.py +0 -0
  262. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_sample_with_50_us.py +0 -0
  263. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/generate_test_3d_model.py +0 -0
  264. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/load_italian_as_main.py +0 -0
  265. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/load_sample_as_main.py +0 -0
  266. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/migrate_relationships.py +0 -0
  267. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/populate_sample_data.py +0 -0
  268. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/populate_simple_data.py +0 -0
  269. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/setup_auth.py +0 -0
  270. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/setup_user_env.py +0 -0
  271. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/test_cascade_delete.py +0 -0
  272. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/test_relationship_fix.py +0 -0
  273. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/update_sample_relationships.py +0 -0
  274. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/update_urls_and_versions.py +0 -0
  275. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/verify_docs.py +0 -0
  276. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/__init__.py +0 -0
  277. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/ai_assistant_service.py +0 -0
  278. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/ai_chat_service.py +0 -0
  279. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/analytics_service.py +0 -0
  280. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/app_setting_service.py +0 -0
  281. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/backup_service.py +0 -0
  282. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/command_parser.py +0 -0
  283. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/datazione_service.py +0 -0
  284. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/export_import_service.py +0 -0
  285. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/extended_matrix_excel_parser.py +0 -0
  286. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/import_export_service.py +0 -0
  287. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/inventario_service.py +0 -0
  288. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/mcp_executor.py +0 -0
  289. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/media_service.py +0 -0
  290. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/periodizzazione_service.py +0 -0
  291. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/pottery_dto.py +0 -0
  292. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/pottery_pdf_service.py +0 -0
  293. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/pottery_service.py +0 -0
  294. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/relationship_sync_service.py +0 -0
  295. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/search_service.py +0 -0
  296. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/site_service.py +0 -0
  297. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/thesaurus_service.py +0 -0
  298. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/tma_service.py +0 -0
  299. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/us_service.py +0 -0
  300. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/user_service.py +0 -0
  301. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/__init__.py +0 -0
  302. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/bundle_creator.py +0 -0
  303. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/bundle_manifest.py +0 -0
  304. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/bundle_validator.py +0 -0
  305. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/connectivity_monitor.py +0 -0
  306. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/sync_orchestrator.py +0 -0
  307. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/sync_queue.py +0 -0
  308. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/sync_state_machine.py +0 -0
  309. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/uuid_manager.py +0 -0
  310. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/en/LC_MESSAGES/messages.mo +0 -0
  311. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/en/LC_MESSAGES/messages.po +0 -0
  312. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/it/LC_MESSAGES/messages.mo +0 -0
  313. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/it/LC_MESSAGES/messages.po +0 -0
  314. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/messages.pot +0 -0
  315. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/__init__.py +0 -0
  316. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/auth.py +0 -0
  317. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/exceptions.py +0 -0
  318. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/relationship_validator.py +0 -0
  319. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/stratigraphic_validator.py +0 -0
  320. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/tma_label_generator.py +0 -0
  321. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/validators.py +0 -0
  322. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/__init__.py +0 -0
  323. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/exceptions.py +0 -0
  324. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/i18n.py +0 -0
  325. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/loader.py +0 -0
  326. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/provider.py +0 -0
  327. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/translations/vocab_en.json +0 -0
  328. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/translations/vocab_it.json +0 -0
  329. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/types.py +0 -0
  330. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/auth_routes.py +0 -0
  331. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/data/paradata/domus-pompeiana/stratigraphy.graphml +0 -0
  332. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/data/paradata/metro-c-amba-aradam/stratigraphy.graphml +0 -0
  333. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/em_node_config_routes.py +0 -0
  334. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/excel_import_routes.py +0 -0
  335. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/graph_routes.py +0 -0
  336. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/matrix_import_routes.py +0 -0
  337. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/paradata_routes.py +0 -0
  338. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/paradata_ui_routes.py +0 -0
  339. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/pottery_routes.py +0 -0
  340. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/pyarchinit_import_export_routes.py +0 -0
  341. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/s3d_routes.py +0 -0
  342. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/socketio_events.py +0 -0
  343. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/css/style.css +0 -0
  344. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/favicon.ico +0 -0
  345. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/logo.png +0 -0
  346. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/no-image.png +0 -0
  347. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/pyarchinit-mini-logo.png +0 -0
  348. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/OrbitControls.js +0 -0
  349. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/harris_creator_editor.js +0 -0
  350. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/stratigraphic_layout.js +0 -0
  351. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/three-d-viewer.js +0 -0
  352. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/three.min.js +0 -0
  353. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/universal_search.js +0 -0
  354. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.bin +0 -0
  355. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.gltf +0 -0
  356. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.mtl +0 -0
  357. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.obj +0 -0
  358. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/3d_builder/index.html +0 -0
  359. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/3d_viewer/viewer.html +0 -0
  360. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/backups.html +0 -0
  361. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database.html +0 -0
  362. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database_connect.html +0 -0
  363. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database_info.html +0 -0
  364. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database_upload.html +0 -0
  365. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/settings_ai.html +0 -0
  366. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/ai/assistant.html +0 -0
  367. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/analytics/dashboard.html +0 -0
  368. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/auth/login.html +0 -0
  369. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/auth/users.html +0 -0
  370. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/base.html +0 -0
  371. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/blender_viewer.html +0 -0
  372. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/components/language_switcher.html +0 -0
  373. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/dashboard.html +0 -0
  374. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/datazioni/list.html +0 -0
  375. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/docs/index.html +0 -0
  376. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/em_node_config/index.html +0 -0
  377. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/excel_import/index.html +0 -0
  378. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/export/export_import.html +0 -0
  379. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/graph_import_preview.html +0 -0
  380. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/graph_import_result.html +0 -0
  381. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_creator/index.html +0 -0
  382. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/graphml_export.html +0 -0
  383. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/large_graph_message.html +0 -0
  384. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/stratigraph_viewer.html +0 -0
  385. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/view.html +0 -0
  386. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/view_graphviz.html +0 -0
  387. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/viewer_3d_integrated.html +0 -0
  388. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/inventario/form.html +0 -0
  389. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/inventario/list.html +0 -0
  390. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/matrix_import/preview.html +0 -0
  391. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/matrix_import/rejected.html +0 -0
  392. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/matrix_import/upload.html +0 -0
  393. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/media/list.html +0 -0
  394. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/media/upload.html +0 -0
  395. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/messaging/contacts.html +0 -0
  396. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/operators/directory.html +0 -0
  397. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/paradata/edit.html +0 -0
  398. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/paradata/index.html +0 -0
  399. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/paradata/list.html +0 -0
  400. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pdf/pottery_sheet.html +0 -0
  401. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/periodizzazione/form.html +0 -0
  402. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/periodizzazione/list.html +0 -0
  403. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/periodizzazione/periods.html +0 -0
  404. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/detail.html +0 -0
  405. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/form.html +0 -0
  406. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/import_form.html +0 -0
  407. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/list.html +0 -0
  408. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pyarchinit_import_export/index.html +0 -0
  409. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/search/results.html +0 -0
  410. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/detail.html +0 -0
  411. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/form.html +0 -0
  412. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/map.html +0 -0
  413. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/stats/targeted.html +0 -0
  414. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/thesaurus/list.html +0 -0
  415. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/tma/form.html +0 -0
  416. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/tma/list.html +0 -0
  417. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/us/form.html +0 -0
  418. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/us/list.html +0 -0
  419. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/validation/report.html +0 -0
  420. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/yed_import/index.html +0 -0
  421. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/yed_import/preview.html +0 -0
  422. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/yed_import/result.html +0 -0
  423. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/test_prova_extended_matrix.graphml +0 -0
  424. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/three_d_builder_routes.py +0 -0
  425. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.graphml +0 -0
  426. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
  427. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/vocab_routes.py +0 -0
  428. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_heriverse.json +0 -0
  429. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.graphml +0 -0
  430. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.json +0 -0
  431. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
  432. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/yed_import_routes.py +0 -0
  433. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/dependency_links.txt +0 -0
  434. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/entry_points.txt +0 -0
  435. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/not-zip-safe +0 -0
  436. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/requires.txt +0 -0
  437. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/top_level.txt +0 -0
  438. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/requirements.txt +0 -0
  439. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/setup.cfg +0 -0
  440. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/setup.py +0 -0
  441. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/__init__.py +0 -0
  442. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/conftest.py +0 -0
  443. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/e2e/__init__.py +0 -0
  444. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/e2e/test_web_vocab_full_flow.py +0 -0
  445. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_baseline_graphml.py +0 -0
  446. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_harris_swimlane_synthetic.py +0 -0
  447. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_synthetic_db.py +0 -0
  448. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_yed_test_files.py +0 -0
  449. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/build_legacy_with_pottery.py +0 -0
  450. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/__init__.py +0 -0
  451. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_admin_ai_settings_routes.py +0 -0
  452. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_admin_backup_routes.py +0 -0
  453. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_auto_regen_on_save.py +0 -0
  454. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_full_sync_flow.py +0 -0
  455. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_graph_import_flow.py +0 -0
  456. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_graph_routes.py +0 -0
  457. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_matrix_post_cutover.py +0 -0
  458. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_matrix_visual_parity.py +0 -0
  459. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_create_row.py +0 -0
  460. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_save.py +0 -0
  461. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_session_missing.py +0 -0
  462. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_lang_routes.py +0 -0
  463. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_apply_route.py +0 -0
  464. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_rejected_route.py +0 -0
  465. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_site_widget.py +0 -0
  466. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_upload_route.py +0 -0
  467. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_migrate_vocab_cli.py +0 -0
  468. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_paradata_routes_authors.py +0 -0
  469. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_paradata_routes_other_types.py +0 -0
  470. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_paradata_ui.py +0 -0
  471. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_completion.py +0 -0
  472. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_excel_roundtrip.py +0 -0
  473. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_filters_id_number_anno.py +0 -0
  474. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_legacy_upgrade.py +0 -0
  475. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_list_media_thumbs.py +0 -0
  476. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_routes.py +0 -0
  477. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_roundtrip_extmatrix.py +0 -0
  478. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_spec2_coverage_gaps.py +0 -0
  479. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_vocab_routes.py +0 -0
  480. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_yed_import_routes.py +0 -0
  481. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_yed_writer_parity.py +0 -0
  482. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/__init__.py +0 -0
  483. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_apply.py +0 -0
  484. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_extractor_parse.py +0 -0
  485. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_extractor_providers.py +0 -0
  486. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_plan_serialization.py +0 -0
  487. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_app_setting_model.py +0 -0
  488. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_app_setting_service.py +0 -0
  489. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_auto_regen.py +0 -0
  490. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_backup_service.py +0 -0
  491. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_bundle.py +0 -0
  492. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_concurrency_columns.py +0 -0
  493. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_concurrency_manager.py +0 -0
  494. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_connectivity_monitor.py +0 -0
  495. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_database_utils.py +0 -0
  496. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_deprecated_writers_shim.py +0 -0
  497. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_em_palette_vocab_backed.py +0 -0
  498. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphml_io_reader.py +0 -0
  499. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphml_io_writer.py +0 -0
  500. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_edge_registry.py +0 -0
  501. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_exceptions.py +0 -0
  502. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_filesystem.py +0 -0
  503. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_ingestor_apply.py +0 -0
  504. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_ingestor_preview.py +0 -0
  505. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_projector.py +0 -0
  506. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_layout.py +0 -0
  507. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_compound_layout.py +0 -0
  508. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_exceptions.py +0 -0
  509. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_period_sync.py +0 -0
  510. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_row_provider.py +0 -0
  511. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_state_save.py +0 -0
  512. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ingest_plan.py +0 -0
  513. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_inventario_schema.py +0 -0
  514. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_migrations_backup.py +0 -0
  515. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_migrations_idempotent.py +0 -0
  516. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_optimistic_locking.py +0 -0
  517. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_paradata_store_authors.py +0 -0
  518. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_paradata_store_basic.py +0 -0
  519. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_paradata_store_other_types.py +0 -0
  520. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_pottery_dto.py +0 -0
  521. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_pottery_model.py +0 -0
  522. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_pottery_service.py +0 -0
  523. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_s3d_converter_vocab_backed.py +0 -0
  524. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_site_service.py +0 -0
  525. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_api.py +0 -0
  526. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_cli.py +0 -0
  527. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_orchestrator.py +0 -0
  528. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_queue.py +0 -0
  529. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_state_machine.py +0 -0
  530. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_us_dto_unita_tipo_validator.py +0 -0
  531. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_us_schema.py +0 -0
  532. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_uuid_manager.py +0 -0
  533. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_bootstrap_failures.py +0 -0
  534. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_exceptions.py +0 -0
  535. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_i18n.py +0 -0
  536. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_loader.py +0 -0
  537. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_provider.py +0 -0
  538. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_types.py +0 -0
  539. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_importer_parse.py +0 -0
  540. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_importer_plan.py +0 -0
  541. {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_writer.py +0 -0
@@ -1,3 +1,29 @@
1
+ ## 2.8.0 — 2026-05-19
2
+
3
+ ### Added — EM Palette + Multi-Format Swimlane Round-Trip
4
+ - **EM palette is now the canonical style source** for swimlane rendering, GraphML export, and Heriverse/ATON JSON export. Palette loaded from `pyarchinit_mini/graphml_converter/templates/EM_palette.graphml` (3246-line canonical version) with `PaletteLoader` cache + SIGHUP hot-reload + fallback to minimal hardcoded defaults if missing.
5
+ - **`SWIMLANE_PIPELINE=s3dgraphy|legacy` feature flag** (default `s3dgraphy`) with automatic legacy fallback on exception. Set to `legacy` to roll back instantly.
6
+ - **New endpoints**:
7
+ - `GET /harris-creator/api/export/<site>/heriverse-json` — Heriverse/ATON JSON (single format).
8
+ - `POST /harris-creator/api/import/<site>/graphml` — yEd GraphML import that writes 4-tuple rapporti and inverses on BOTH involved US.
9
+ - `POST /harris-creator/api/import/<site>/json` — Heriverse JSON import (same write path).
10
+ - **Standalone `/matrix-tools` page** for import/export operations (site picker + format radio + file uploader).
11
+ - **Per-site export buttons** (GraphML, Heriverse) in sites list.
12
+ - **Swimlane toolbar**: grouping dropdown (none/area/settore/quadrato/attività/strutture), export menu, import file picker.
13
+ - **Bilingual rapporti parser**: reads both legacy 2-tuple `[rel, us]` and new 4-tuple `[rel, us, area, sito]`; always writes 4-tuple. Italian aliases include extras (`riempito da`, `si lega a`, `gli si appoggia`) absent from `vocab_it.json`.
14
+ - **Automatic stub US creation** when import edges reference missing rows; counted in result.
15
+
16
+ ### Changed
17
+ - Swimlane rows are now always periods (with "Periodo 1" fallback when `period_table` is empty or a US has no period match); the old `group_by=period_phase|struttura|...` registry collapses to a sub-grouping selector within rows. Legacy `group_by` values still work via the `legacy` pipeline.
18
+ - `/api/load/<site>` response includes a `style` dict per node and edge, derived from the EM palette (shape, fill color, border color, line style, arrow heads).
19
+
20
+ ### Internals
21
+ - New modules: `pyarchinit_mini/em_palette/` (loader, styles), `pyarchinit_mini/graphproj/` (rapporti_codec, s3d_projector, s3d_to_cytoscape, graph_to_db, heriverse_parser, graphml_reader, graphml_writer).
22
+ - New tests: 13 test files across `tests/unit/` and `tests/integration/`, plus a regression fixture (`tests/fixtures/adarte_regression_dump.sql`) anonymized from `Rimini_RN_2020_21_Museo_Fellini` (100 US, 516 edges, 8 distinct canonical labels validated end-to-end).
23
+
24
+ ### Migration notes
25
+ - The `patch_pyarchinit_post_upgrade.py` post-upgrade script's Section 27 (`swimlane.row_provider_schema`) and Section 28 (`swimlane.build_edges_literal`) still apply, but their fixes are now native to the s3dgraphy pipeline. After this upgrade, Sections 27/28 are no-ops if the legacy file no longer has the markers.
26
+
1
27
  ## [2.7.1] - 2026-05-19
2
28
 
3
29
  ### Fixed (IT)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyarchinit-mini
3
- Version: 2.7.1
3
+ Version: 2.8.0
4
4
  Summary: Lightweight archaeological data management system with REST API, Web UI, Desktop GUI, CLI, multi-user authentication, real-time collaboration, analytics dashboard, PyArchInit import/export, Heriverse/ATON export integration, and 3D CRUD viewer
5
5
  Home-page: https://github.com/enzococca/pyarchinit-mini
6
6
  Author: PyArchInit Team
@@ -23,7 +23,7 @@ Features:
23
23
  - Scalable and modular architecture
24
24
  """
25
25
 
26
- __version__ = "2.7.1"
26
+ __version__ = "2.8.0"
27
27
  __author__ = "PyArchInit Team"
28
28
  __email__ = "enzo.ccc@gmail.com"
29
29
 
@@ -0,0 +1,11 @@
1
+ """EM (Extended Matrix) palette: style source of truth for US nodes and stratigraphic edges."""
2
+ from .loader import PaletteLoader, get_palette, install_sighup_reload
3
+ from .styles import NodeStyle, EdgeStyle
4
+
5
+ __all__ = [
6
+ "PaletteLoader",
7
+ "get_palette",
8
+ "install_sighup_reload",
9
+ "NodeStyle",
10
+ "EdgeStyle",
11
+ ]
@@ -0,0 +1,171 @@
1
+ """EM palette GraphML parser with caching and hot-reload.
2
+
3
+ The palette is a yEd-flavoured GraphML document where each <node> represents
4
+ one canonical US type (USM, USD, USV, SF, VSF, TSU, USVn) and each <edge>
5
+ represents one canonical stratigraphic relation (overlies, cuts, fills, abuts,
6
+ has_same_time, is_after, is_before, is_bonded_to).
7
+
8
+ Unit type and canonical relation are identified by the text content of
9
+ <y:NodeLabel> and <y:EdgeLabel> respectively.
10
+ """
11
+ from __future__ import annotations
12
+
13
+ import logging
14
+ import signal
15
+ import threading
16
+ import xml.etree.ElementTree as ET
17
+ from pathlib import Path
18
+ from typing import Dict, Optional
19
+
20
+ from .styles import NodeStyle, EdgeStyle
21
+
22
+
23
+ logger = logging.getLogger(__name__)
24
+
25
+ NS = {
26
+ "g": "http://graphml.graphdrawing.org/xmlns",
27
+ "y": "http://www.yworks.com/xml/graphml",
28
+ }
29
+
30
+ DEFAULT_PALETTE_PATH = (
31
+ Path(__file__).parent.parent
32
+ / "graphml_converter" / "templates" / "EM_palette.graphml"
33
+ )
34
+
35
+
36
+ class PaletteLoader:
37
+ def __init__(
38
+ self,
39
+ palette_path: Optional[Path] = None,
40
+ *,
41
+ allow_fallback: bool = True,
42
+ ) -> None:
43
+ self.palette_path = palette_path or DEFAULT_PALETTE_PATH
44
+ self.allow_fallback = allow_fallback
45
+ self._node_cache: Dict[str, NodeStyle] = {}
46
+ self._edge_cache: Dict[str, EdgeStyle] = {}
47
+ self._loaded = False
48
+ self._lock = threading.Lock()
49
+
50
+ def _load(self) -> None:
51
+ with self._lock:
52
+ if self._loaded:
53
+ return
54
+ try:
55
+ tree = ET.parse(self.palette_path)
56
+ except (FileNotFoundError, ET.ParseError) as exc:
57
+ if self.allow_fallback:
58
+ logger.warning(
59
+ "Palette load failed (%s); using hardcoded fallbacks.", exc,
60
+ )
61
+ self._loaded = True
62
+ return
63
+ raise
64
+ root = tree.getroot()
65
+ for node_el in root.iter(f"{{{NS['g']}}}node"):
66
+ style = self._parse_node(node_el)
67
+ if style is not None:
68
+ self._node_cache[style.unit_type] = style
69
+ for edge_el in root.iter(f"{{{NS['g']}}}edge"):
70
+ style = self._parse_edge(edge_el)
71
+ if style is not None:
72
+ self._edge_cache[style.canonical_name] = style
73
+ self._loaded = True
74
+
75
+ def _parse_node(self, node_el: ET.Element) -> Optional[NodeStyle]:
76
+ shape_node = node_el.find(f".//{{{NS['y']}}}ShapeNode")
77
+ if shape_node is None:
78
+ return None
79
+ label = shape_node.find(f".//{{{NS['y']}}}NodeLabel")
80
+ if label is None or not (label.text and label.text.strip()):
81
+ return None
82
+ unit_type = label.text.strip()
83
+ shape_el = shape_node.find(f"{{{NS['y']}}}Shape")
84
+ shape = shape_el.attrib.get("type", "rectangle") if shape_el is not None else "rectangle"
85
+ fill_el = shape_node.find(f"{{{NS['y']}}}Fill")
86
+ fill_color = fill_el.attrib.get("color", "#FFFFFF") if fill_el is not None else "#FFFFFF"
87
+ border_el = shape_node.find(f"{{{NS['y']}}}BorderStyle")
88
+ if border_el is not None:
89
+ border_color = border_el.attrib.get("color", "#000000")
90
+ border_width = float(border_el.attrib.get("width", "1.0"))
91
+ border_style = border_el.attrib.get("type", "line")
92
+ else:
93
+ border_color = "#000000"
94
+ border_width = 1.0
95
+ border_style = "line"
96
+ font_color = label.attrib.get("textColor", "#000000")
97
+ font_size = int(label.attrib.get("fontSize", "12"))
98
+ return NodeStyle(
99
+ unit_type=unit_type,
100
+ shape=shape,
101
+ fill_color=fill_color,
102
+ border_color=border_color,
103
+ border_width=border_width,
104
+ border_style=border_style,
105
+ font_color=font_color,
106
+ font_size=font_size,
107
+ )
108
+
109
+ def _parse_edge(self, edge_el: ET.Element) -> Optional[EdgeStyle]:
110
+ line_el = edge_el.find(f".//{{{NS['y']}}}LineStyle")
111
+ label_el = edge_el.find(f".//{{{NS['y']}}}EdgeLabel")
112
+ arrow_el = edge_el.find(f".//{{{NS['y']}}}Arrows")
113
+ if label_el is None or not (label_el.text and label_el.text.strip()):
114
+ return None
115
+ canonical = label_el.text.strip().lower().replace(" ", "_")
116
+ if not canonical:
117
+ return None
118
+ if line_el is not None:
119
+ line_color = line_el.attrib.get("color", "#000000")
120
+ line_width = float(line_el.attrib.get("width", "1.0"))
121
+ line_style = line_el.attrib.get("type", "line")
122
+ else:
123
+ line_color = "#000000"
124
+ line_width = 1.0
125
+ line_style = "line"
126
+ if arrow_el is not None:
127
+ arrow_target = arrow_el.attrib.get("target", "standard")
128
+ arrow_source = arrow_el.attrib.get("source", "none")
129
+ else:
130
+ arrow_target = "standard"
131
+ arrow_source = "none"
132
+ return EdgeStyle(
133
+ canonical_name=canonical,
134
+ line_color=line_color,
135
+ line_width=line_width,
136
+ line_style=line_style,
137
+ arrow_target=arrow_target,
138
+ arrow_source=arrow_source,
139
+ )
140
+
141
+ def get_node_style(self, unit_type: str) -> NodeStyle:
142
+ self._load()
143
+ return self._node_cache.get(unit_type, NodeStyle(unit_type=unit_type))
144
+
145
+ def get_edge_style(self, canonical_name: str) -> EdgeStyle:
146
+ self._load()
147
+ return self._edge_cache.get(canonical_name, EdgeStyle(canonical_name=canonical_name))
148
+
149
+ def reload(self) -> None:
150
+ with self._lock:
151
+ self._node_cache.clear()
152
+ self._edge_cache.clear()
153
+ self._loaded = False
154
+ self._load()
155
+
156
+
157
+ _singleton: Optional[PaletteLoader] = None
158
+
159
+
160
+ def get_palette() -> PaletteLoader:
161
+ global _singleton
162
+ if _singleton is None:
163
+ _singleton = PaletteLoader()
164
+ return _singleton
165
+
166
+
167
+ def install_sighup_reload() -> None:
168
+ def _handler(_signum, _frame):
169
+ logger.info("SIGHUP received: reloading EM palette")
170
+ get_palette().reload()
171
+ signal.signal(signal.SIGHUP, _handler)
@@ -0,0 +1,27 @@
1
+ """Dataclasses for palette-derived rendering styles."""
2
+ from __future__ import annotations
3
+
4
+ from dataclasses import dataclass
5
+
6
+
7
+ @dataclass(frozen=True)
8
+ class NodeStyle:
9
+ unit_type: str
10
+ shape: str = "rectangle" # rectangle, ellipse, roundrectangle, parallelogram, hexagon, octagon
11
+ fill_color: str = "#FFFFFF"
12
+ border_color: str = "#000000"
13
+ border_width: float = 1.0
14
+ border_style: str = "line" # line, dashed, dotted
15
+ font_color: str = "#000000"
16
+ font_size: int = 12
17
+ label_placement: str = "center"
18
+
19
+
20
+ @dataclass(frozen=True)
21
+ class EdgeStyle:
22
+ canonical_name: str
23
+ line_color: str = "#000000"
24
+ line_width: float = 1.0
25
+ line_style: str = "line" # line, dashed, dotted
26
+ arrow_source: str = "none"
27
+ arrow_target: str = "standard"