pyarchinit-mini 2.9.3__tar.gz → 2.9.4__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 (543) hide show
  1. {pyarchinit_mini-2.9.3/pyarchinit_mini.egg-info → pyarchinit_mini-2.9.4}/PKG-INFO +1 -1
  2. pyarchinit_mini-2.9.4/data/pyarchinit_tutorial.db +0 -0
  3. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/__init__.py +1 -1
  4. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/tma_label_generator.py +17 -5
  5. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/app.py +21 -4
  6. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/tma/form.html +12 -3
  7. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/tma/list.html +17 -3
  8. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4/pyarchinit_mini.egg-info}/PKG-INFO +1 -1
  9. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini.egg-info/SOURCES.txt +0 -17
  10. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyproject.toml +1 -1
  11. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/requirements.txt +2 -1
  12. pyarchinit_mini-2.9.3/data/media_viewer_demo.db +0 -0
  13. pyarchinit_mini-2.9.3/data/pyarchinit_mini 2.db +0 -0
  14. pyarchinit_mini-2.9.3/data/pyarchinit_mini.db +0 -0
  15. pyarchinit_mini-2.9.3/data/pyarchinit_tutorial.db +0 -0
  16. pyarchinit_mini-2.9.3/data/pyarchinit_tutorial_backup_20251030_093228.db +0 -0
  17. pyarchinit_mini-2.9.3/data/pyarchinit_tutorial_clean.db +0 -0
  18. pyarchinit_mini-2.9.3/data/pyarchinit_tutorial_video.db +0 -0
  19. pyarchinit_mini-2.9.3/data/pyarchinit_v18_demo.db +0 -0
  20. pyarchinit_mini-2.9.3/pyarchinit_mini/scripts/create_correct_stratigraphy_sample.py +0 -373
  21. pyarchinit_mini-2.9.3/pyarchinit_mini/scripts/create_italian_sample_database.py +0 -302
  22. pyarchinit_mini-2.9.3/pyarchinit_mini/scripts/create_sample_for_webapp.py +0 -463
  23. pyarchinit_mini-2.9.3/pyarchinit_mini/scripts/create_sample_with_50_us.py +0 -353
  24. pyarchinit_mini-2.9.3/pyarchinit_mini/translations/en/LC_MESSAGES/messages.mo +0 -0
  25. pyarchinit_mini-2.9.3/pyarchinit_mini/translations/it/LC_MESSAGES/messages.mo +0 -0
  26. pyarchinit_mini-2.9.3/pyarchinit_mini/translations/messages.pot +0 -0
  27. pyarchinit_mini-2.9.3/pyarchinit_mini/web_interface/data/paradata/domus-pompeiana/stratigraphy.graphml +0 -265
  28. pyarchinit_mini-2.9.3/pyarchinit_mini/web_interface/data/paradata/metro-c-amba-aradam/stratigraphy.graphml +0 -265
  29. pyarchinit_mini-2.9.3/pyarchinit_mini/web_interface/data/paradata/pompei-regio-vii/stratigraphy.graphml +0 -265
  30. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/CHANGELOG.md +0 -0
  31. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/MANIFEST.in +0 -0
  32. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/README.md +0 -0
  33. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/babel.cfg +0 -0
  34. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/data/pyarchinit_mini_sample.db +0 -0
  35. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/logo/logo_pyarchinit-mini.png +0 -0
  36. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/ai_matrix/__init__.py +0 -0
  37. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/ai_matrix/apply.py +0 -0
  38. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/ai_matrix/plan.py +0 -0
  39. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/ai_matrix/vision_extractor.py +0 -0
  40. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/__init__.py +0 -0
  41. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/auth.py +0 -0
  42. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/dependencies.py +0 -0
  43. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/graphml.py +0 -0
  44. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/inventario.py +0 -0
  45. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/schemas.py +0 -0
  46. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/site.py +0 -0
  47. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/sync.py +0 -0
  48. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/api/us.py +0 -0
  49. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/__init__.py +0 -0
  50. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/export_import_cli.py +0 -0
  51. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/extended_matrix_import.py +0 -0
  52. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/graphml_cli.py +0 -0
  53. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/harris_import.py +0 -0
  54. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/harris_template.py +0 -0
  55. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/migrate.py +0 -0
  56. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/migrate_vocab.py +0 -0
  57. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/pyarchinit_import_export_cli.py +0 -0
  58. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli/sync_cli.py +0 -0
  59. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli_interface/__init__.py +0 -0
  60. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/cli_interface/cli_app.py +0 -0
  61. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/config/__init__.py +0 -0
  62. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/config/connection_manager.py +0 -0
  63. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/config/em_node_config_manager.py +0 -0
  64. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/config/em_node_types.yaml +0 -0
  65. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/__init__.py +0 -0
  66. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/concurrency_manager.py +0 -0
  67. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/connection.py +0 -0
  68. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/database_creator.py +0 -0
  69. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/manager.py +0 -0
  70. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migration_scripts/__init__.py +0 -0
  71. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migration_scripts/add_file_path.py +0 -0
  72. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migration_scripts/add_i18n_columns.py +0 -0
  73. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migration_scripts/add_tipo_documento.py +0 -0
  74. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text.py +0 -0
  75. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text_simple.py +0 -0
  76. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migrations/_2026_05_node_uuid_backfill.py +0 -0
  77. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migrations/_2026_05_node_uuid_schema.py +0 -0
  78. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migrations/_2026_05_period_table_schema.py +0 -0
  79. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migrations/_2026_05_vocab_alignment.py +0 -0
  80. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migrations/__init__.py +0 -0
  81. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/migrations/backup.py +0 -0
  82. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/postgres_installer.py +0 -0
  83. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/schemas.py +0 -0
  84. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/database/utils.py +0 -0
  85. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/__init__.py +0 -0
  86. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/analytics_dialog.py +0 -0
  87. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/assets/logo.png +0 -0
  88. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/dialogs.py +0 -0
  89. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/excel_import_dialog.py +0 -0
  90. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/export_import_dialog.py +0 -0
  91. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/graphml_export_dialog.py +0 -0
  92. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/gui_app.py +0 -0
  93. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/harris_matrix_editor.py +0 -0
  94. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/i18n.py +0 -0
  95. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/icons.py +0 -0
  96. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/inventario_dialog_extended.py +0 -0
  97. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/main_window.py +0 -0
  98. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/media_manager_advanced.py +0 -0
  99. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/postgres_installer_dialog.py +0 -0
  100. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/pottery_dialog_extended.py +0 -0
  101. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/pottery_panel.py +0 -0
  102. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/pyarchinit_import_export_dialog.py +0 -0
  103. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/thesaurus_dialog.py +0 -0
  104. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/desktop_gui/us_dialog_extended.py +0 -0
  105. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/dto/__init__.py +0 -0
  106. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/dto/inventario_dto.py +0 -0
  107. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/dto/site_dto.py +0 -0
  108. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/dto/us_dto.py +0 -0
  109. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/em_palette/__init__.py +0 -0
  110. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/em_palette/loader.py +0 -0
  111. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/em_palette/styles.py +0 -0
  112. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/exceptions.py +0 -0
  113. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/__init__.py +0 -0
  114. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/converter.py +0 -0
  115. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/dot_parser.py +0 -0
  116. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/em_palette.py +0 -0
  117. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/graphml_builder.py +0 -0
  118. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/graphml_exporter.py +0 -0
  119. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/pure_networkx_exporter.py +0 -0
  120. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/svg_resources.py +0 -0
  121. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/templates/EM_palette.graphml +0 -0
  122. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/x11_colors.py +0 -0
  123. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_converter/yed_template.py +0 -0
  124. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_io/__init__.py +0 -0
  125. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_io/reader.py +0 -0
  126. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_io/writer.py +0 -0
  127. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_io/yed_importer.py +0 -0
  128. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_io/yed_keys.py +0 -0
  129. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphml_io/yed_writer.py +0 -0
  130. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/__init__.py +0 -0
  131. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/auto_regen.py +0 -0
  132. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/edge_registry.py +0 -0
  133. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/exceptions.py +0 -0
  134. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/filesystem.py +0 -0
  135. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/graph_to_db.py +0 -0
  136. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/graphml_reader.py +0 -0
  137. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/graphml_writer.py +0 -0
  138. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/heriverse_parser.py +0 -0
  139. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/ingest_plan.py +0 -0
  140. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/ingestor.py +0 -0
  141. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/paradata_store.py +0 -0
  142. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/projector.py +0 -0
  143. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/rapporti_codec.py +0 -0
  144. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/s3d_projector.py +0 -0
  145. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/graphproj/s3d_to_cytoscape.py +0 -0
  146. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_matrix/__init__.py +0 -0
  147. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_matrix/enhanced_visualizer.py +0 -0
  148. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_matrix/matrix_generator.py +0 -0
  149. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_matrix/matrix_visualizer.py +0 -0
  150. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_matrix/pyarchinit_visualizer.py +0 -0
  151. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/__init__.py +0 -0
  152. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/compound_layout.py +0 -0
  153. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/exceptions.py +0 -0
  154. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/harris_layout.py +0 -0
  155. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/period_sync_service.py +0 -0
  156. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/row_provider.py +0 -0
  157. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/harris_swimlane/swimlane_state.py +0 -0
  158. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/i18n/__init__.py +0 -0
  159. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/i18n/flask_babel_config.py +0 -0
  160. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/i18n/lang_routes.py +0 -0
  161. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/i18n/locale_manager.py +0 -0
  162. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/__init__.py +0 -0
  163. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/__main__.py +0 -0
  164. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/blender_client.py +0 -0
  165. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/config.py +0 -0
  166. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/event_stream.py +0 -0
  167. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/graphml_parser.py +0 -0
  168. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/http_server.py +0 -0
  169. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/period_filter.py +0 -0
  170. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/prompts/__init__.py +0 -0
  171. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/prompts/base_prompt.py +0 -0
  172. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/prompts/period_visualization_prompt.py +0 -0
  173. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/prompts/stratigraphic_model_prompt.py +0 -0
  174. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/prompts/us_description_prompt.py +0 -0
  175. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/proxy_generator.py +0 -0
  176. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/__init__.py +0 -0
  177. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/base_resource.py +0 -0
  178. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/graphml_resource.py +0 -0
  179. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/periods_resource.py +0 -0
  180. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/relationships_resource.py +0 -0
  181. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/sites_resource.py +0 -0
  182. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/resources/us_resource.py +0 -0
  183. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/server.py +0 -0
  184. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/__init__.py +0 -0
  185. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/base_tool.py +0 -0
  186. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/batch_insert_tool.py +0 -0
  187. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/build_3d_tool.py +0 -0
  188. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/chatgpt_fetch_tool.py +0 -0
  189. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/chatgpt_search_tool.py +0 -0
  190. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/configure_em_nodes_tool.py +0 -0
  191. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/create_database_tool.py +0 -0
  192. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/create_harris_matrix_tool.py +0 -0
  193. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/data_import_parser_tool.py +0 -0
  194. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/data_management_tool.py +0 -0
  195. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/database_manager_tool.py +0 -0
  196. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/delete_data_tool.py +0 -0
  197. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/export_harris_matrix_graphml_tool.py +0 -0
  198. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/export_tool.py +0 -0
  199. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/filter_tool.py +0 -0
  200. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/generate_report_tool.py +0 -0
  201. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/get_schema_tool.py +0 -0
  202. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/import_excel_tool.py +0 -0
  203. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/insert_data_tool.py +0 -0
  204. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/manage_services_tool.py +0 -0
  205. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/material_tool.py +0 -0
  206. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/media_management_tool.py +0 -0
  207. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/position_tool.py +0 -0
  208. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/pyarchinit_sync_tool.py +0 -0
  209. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/resolve_conflicts_tool.py +0 -0
  210. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/service_management_tool.py +0 -0
  211. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/thesaurus_management_tool.py +0 -0
  212. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/update_data_tool.py +0 -0
  213. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/upload_file_tool.py +0 -0
  214. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/validate_relationship_format_tool.py +0 -0
  215. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/validate_relationship_integrity_tool.py +0 -0
  216. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/validate_stratigraphic_relationships_tool.py +0 -0
  217. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/mcp_server/tools/validate_stratigraphy_tool.py +0 -0
  218. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/media_manager/__init__.py +0 -0
  219. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/media_manager/media_handler.py +0 -0
  220. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/__init__.py +0 -0
  221. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/ai_chat.py +0 -0
  222. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/app_setting.py +0 -0
  223. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/base.py +0 -0
  224. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/datazione.py +0 -0
  225. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/extended_matrix.py +0 -0
  226. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/harris_matrix.py +0 -0
  227. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/inventario_materiali.py +0 -0
  228. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/media.py +0 -0
  229. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/pottery.py +0 -0
  230. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/site.py +0 -0
  231. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/thesaurus.py +0 -0
  232. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/tma.py +0 -0
  233. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/us.py +0 -0
  234. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/models/user.py +0 -0
  235. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/pdf_export/__init__.py +0 -0
  236. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/pdf_export/pdf_generator.py +0 -0
  237. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/pdf_export/pdf_generator_backup.py +0 -0
  238. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/pdf_export/pyarchinit_finds_template.py +0 -0
  239. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/pdf_export/pyarchinit_inventory_template.py +0 -0
  240. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/pdf_export/usm_implementation.py +0 -0
  241. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/s3d_integration/__init__.py +0 -0
  242. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/s3d_integration/model_manager.py +0 -0
  243. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/s3d_integration/s3d_converter.py +0 -0
  244. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/__init__.py +0 -0
  245. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/auto_translate.py +0 -0
  246. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/configure_claude_desktop.py +0 -0
  247. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/create_admin_user.py +0 -0
  248. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/generate_test_3d_model.py +0 -0
  249. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/load_italian_as_main.py +0 -0
  250. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/load_sample_as_main.py +0 -0
  251. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/migrate_relationships.py +0 -0
  252. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/populate_sample_data.py +0 -0
  253. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/populate_simple_data.py +0 -0
  254. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/setup_auth.py +0 -0
  255. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/setup_user_env.py +0 -0
  256. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/test_cascade_delete.py +0 -0
  257. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/test_relationship_fix.py +0 -0
  258. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/update_sample_relationships.py +0 -0
  259. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/update_urls_and_versions.py +0 -0
  260. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/scripts/verify_docs.py +0 -0
  261. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/__init__.py +0 -0
  262. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/ai_assistant_service.py +0 -0
  263. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/ai_chat_service.py +0 -0
  264. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/analytics_service.py +0 -0
  265. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/app_setting_service.py +0 -0
  266. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/backup_service.py +0 -0
  267. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/command_parser.py +0 -0
  268. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/datazione_service.py +0 -0
  269. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/export_import_service.py +0 -0
  270. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/extended_matrix_excel_parser.py +0 -0
  271. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/import_export_service.py +0 -0
  272. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/inventario_service.py +0 -0
  273. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/mcp_executor.py +0 -0
  274. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/media_service.py +0 -0
  275. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/periodizzazione_service.py +0 -0
  276. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/pottery_dto.py +0 -0
  277. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/pottery_pdf_service.py +0 -0
  278. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/pottery_service.py +0 -0
  279. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/relationship_sync_service.py +0 -0
  280. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/search_service.py +0 -0
  281. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/site_service.py +0 -0
  282. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/thesaurus_service.py +0 -0
  283. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/tma_service.py +0 -0
  284. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/us_service.py +0 -0
  285. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/services/user_service.py +0 -0
  286. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/__init__.py +0 -0
  287. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/bundle_creator.py +0 -0
  288. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/bundle_manifest.py +0 -0
  289. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/bundle_validator.py +0 -0
  290. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/connectivity_monitor.py +0 -0
  291. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/sync_orchestrator.py +0 -0
  292. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/sync_queue.py +0 -0
  293. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/sync_state_machine.py +0 -0
  294. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/stratigraph/uuid_manager.py +0 -0
  295. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/translations/en/LC_MESSAGES/messages.po +0 -0
  296. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/translations/it/LC_MESSAGES/messages.po +0 -0
  297. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/__init__.py +0 -0
  298. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/auth.py +0 -0
  299. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/exceptions.py +0 -0
  300. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/relationship_validator.py +0 -0
  301. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/stratigraphic_validator.py +0 -0
  302. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/utils/validators.py +0 -0
  303. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/__init__.py +0 -0
  304. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/exceptions.py +0 -0
  305. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/i18n.py +0 -0
  306. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/loader.py +0 -0
  307. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/provider.py +0 -0
  308. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/translations/vocab_en.json +0 -0
  309. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/translations/vocab_it.json +0 -0
  310. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/vocab/types.py +0 -0
  311. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/auth_routes.py +0 -0
  312. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/em_node_config_routes.py +0 -0
  313. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/excel_import_routes.py +0 -0
  314. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/graph_routes.py +0 -0
  315. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/harris_creator_routes.py +0 -0
  316. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/matrix_import_routes.py +0 -0
  317. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/matrix_tools_routes.py +0 -0
  318. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/paradata_routes.py +0 -0
  319. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/paradata_ui_routes.py +0 -0
  320. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/pottery_routes.py +0 -0
  321. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/pyarchinit_import_export_routes.py +0 -0
  322. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/s3d_routes.py +0 -0
  323. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/socketio_events.py +0 -0
  324. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/css/style.css +0 -0
  325. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/images/favicon.ico +0 -0
  326. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/images/logo.png +0 -0
  327. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/images/no-image.png +0 -0
  328. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/images/pyarchinit-mini-logo.png +0 -0
  329. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/js/OrbitControls.js +0 -0
  330. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/js/harris_creator_editor.js +0 -0
  331. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/js/stratigraphic_layout.js +0 -0
  332. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/js/three-d-viewer.js +0 -0
  333. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/js/three.min.js +0 -0
  334. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/js/universal_search.js +0 -0
  335. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.bin +0 -0
  336. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.gltf +0 -0
  337. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.mtl +0 -0
  338. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.obj +0 -0
  339. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/3d_builder/index.html +0 -0
  340. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/3d_viewer/viewer.html +0 -0
  341. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/admin/backups.html +0 -0
  342. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/admin/database.html +0 -0
  343. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/admin/database_connect.html +0 -0
  344. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/admin/database_info.html +0 -0
  345. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/admin/database_upload.html +0 -0
  346. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/admin/settings_ai.html +0 -0
  347. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/ai/assistant.html +0 -0
  348. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/analytics/dashboard.html +0 -0
  349. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/auth/login.html +0 -0
  350. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/auth/users.html +0 -0
  351. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/base.html +0 -0
  352. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/blender_viewer.html +0 -0
  353. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/components/language_switcher.html +0 -0
  354. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/dashboard.html +0 -0
  355. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/datazioni/list.html +0 -0
  356. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/docs/index.html +0 -0
  357. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/em_node_config/index.html +0 -0
  358. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/excel_import/index.html +0 -0
  359. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/export/export_import.html +0 -0
  360. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/graph_import_preview.html +0 -0
  361. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/graph_import_result.html +0 -0
  362. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_creator/editor.html +0 -0
  363. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_creator/index.html +0 -0
  364. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_matrix/graphml_export.html +0 -0
  365. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_matrix/large_graph_message.html +0 -0
  366. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_matrix/stratigraph_viewer.html +0 -0
  367. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_matrix/view.html +0 -0
  368. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_matrix/view_graphviz.html +0 -0
  369. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/harris_matrix/viewer_3d_integrated.html +0 -0
  370. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/inventario/form.html +0 -0
  371. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/inventario/list.html +0 -0
  372. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/matrix_import/preview.html +0 -0
  373. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/matrix_import/rejected.html +0 -0
  374. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/matrix_import/upload.html +0 -0
  375. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/matrix_tools/index.html +0 -0
  376. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/media/list.html +0 -0
  377. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/media/upload.html +0 -0
  378. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/messaging/contacts.html +0 -0
  379. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/operators/directory.html +0 -0
  380. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/paradata/edit.html +0 -0
  381. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/paradata/index.html +0 -0
  382. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/paradata/list.html +0 -0
  383. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/pdf/pottery_sheet.html +0 -0
  384. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/periodizzazione/form.html +0 -0
  385. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/periodizzazione/list.html +0 -0
  386. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/periodizzazione/periods.html +0 -0
  387. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/pottery/detail.html +0 -0
  388. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/pottery/form.html +0 -0
  389. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/pottery/import_form.html +0 -0
  390. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/pottery/list.html +0 -0
  391. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/pyarchinit_import_export/index.html +0 -0
  392. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/search/results.html +0 -0
  393. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/sites/detail.html +0 -0
  394. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/sites/form.html +0 -0
  395. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/sites/list.html +0 -0
  396. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/sites/map.html +0 -0
  397. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/stats/targeted.html +0 -0
  398. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/thesaurus/list.html +0 -0
  399. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/us/form.html +0 -0
  400. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/us/list.html +0 -0
  401. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/validation/report.html +0 -0
  402. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/yed_import/index.html +0 -0
  403. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/yed_import/preview.html +0 -0
  404. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/templates/yed_import/result.html +0 -0
  405. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/test_prova_extended_matrix.graphml +0 -0
  406. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/three_d_builder_routes.py +0 -0
  407. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.graphml +0 -0
  408. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
  409. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/vocab_routes.py +0 -0
  410. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_heriverse.json +0 -0
  411. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.graphml +0 -0
  412. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.json +0 -0
  413. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
  414. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini/web_interface/yed_import_routes.py +0 -0
  415. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini.egg-info/dependency_links.txt +0 -0
  416. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini.egg-info/entry_points.txt +0 -0
  417. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini.egg-info/not-zip-safe +0 -0
  418. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini.egg-info/requires.txt +0 -0
  419. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/pyarchinit_mini.egg-info/top_level.txt +0 -0
  420. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/setup.cfg +0 -0
  421. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/setup.py +0 -0
  422. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/__init__.py +0 -0
  423. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/conftest.py +0 -0
  424. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/e2e/__init__.py +0 -0
  425. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/e2e/test_web_vocab_full_flow.py +0 -0
  426. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/fixtures/_generate_baseline_graphml.py +0 -0
  427. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/fixtures/_generate_harris_swimlane_synthetic.py +0 -0
  428. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/fixtures/_generate_synthetic_db.py +0 -0
  429. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/fixtures/_generate_yed_test_files.py +0 -0
  430. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/fixtures/build_legacy_with_pottery.py +0 -0
  431. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/__init__.py +0 -0
  432. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_adarte_regression.py +0 -0
  433. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_admin_ai_settings_routes.py +0 -0
  434. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_admin_backup_routes.py +0 -0
  435. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_api_export_graphml.py +0 -0
  436. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_api_export_heriverse.py +0 -0
  437. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_api_import_graphml.py +0 -0
  438. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_api_import_json.py +0 -0
  439. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_api_load_site.py +0 -0
  440. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_auto_regen_on_save.py +0 -0
  441. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_feature_flag_pipelines.py +0 -0
  442. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_full_sync_flow.py +0 -0
  443. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_graph_import_flow.py +0 -0
  444. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_graph_routes.py +0 -0
  445. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_harris_matrix_post_cutover.py +0 -0
  446. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_harris_matrix_visual_parity.py +0 -0
  447. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_harris_swimlane_routes_create_row.py +0 -0
  448. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_harris_swimlane_routes_load.py +0 -0
  449. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_harris_swimlane_routes_save.py +0 -0
  450. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_harris_swimlane_routes_session_missing.py +0 -0
  451. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_lang_routes.py +0 -0
  452. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_matrix_import_apply_route.py +0 -0
  453. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_matrix_import_rejected_route.py +0 -0
  454. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_matrix_import_site_widget.py +0 -0
  455. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_matrix_import_upload_route.py +0 -0
  456. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_migrate_vocab_cli.py +0 -0
  457. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_paradata_routes_authors.py +0 -0
  458. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_paradata_routes_other_types.py +0 -0
  459. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_paradata_ui.py +0 -0
  460. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_pottery_completion.py +0 -0
  461. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_pottery_excel_roundtrip.py +0 -0
  462. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_pottery_filters_id_number_anno.py +0 -0
  463. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_pottery_legacy_upgrade.py +0 -0
  464. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_pottery_list_media_thumbs.py +0 -0
  465. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_pottery_routes.py +0 -0
  466. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_roundtrip.py +0 -0
  467. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_roundtrip_extmatrix.py +0 -0
  468. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_spec2_coverage_gaps.py +0 -0
  469. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_swimlane_group_by.py +0 -0
  470. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_vocab_routes.py +0 -0
  471. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_yed_export_route.py +0 -0
  472. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_yed_import_routes.py +0 -0
  473. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/integration/test_yed_writer_parity.py +0 -0
  474. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/__init__.py +0 -0
  475. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_ai_matrix_apply.py +0 -0
  476. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_ai_matrix_extractor_parse.py +0 -0
  477. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_ai_matrix_extractor_providers.py +0 -0
  478. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_ai_matrix_plan_serialization.py +0 -0
  479. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_app_setting_model.py +0 -0
  480. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_app_setting_service.py +0 -0
  481. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_auto_regen.py +0 -0
  482. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_backup_service.py +0 -0
  483. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_bundle.py +0 -0
  484. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_concurrency_columns.py +0 -0
  485. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_concurrency_manager.py +0 -0
  486. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_connectivity_monitor.py +0 -0
  487. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_database_utils.py +0 -0
  488. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_deprecated_writers_shim.py +0 -0
  489. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_em_palette_vocab_backed.py +0 -0
  490. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graph_to_db.py +0 -0
  491. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphml_io_reader.py +0 -0
  492. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphml_io_writer.py +0 -0
  493. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphproj_edge_registry.py +0 -0
  494. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphproj_exceptions.py +0 -0
  495. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphproj_filesystem.py +0 -0
  496. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphproj_ingestor_apply.py +0 -0
  497. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphproj_ingestor_preview.py +0 -0
  498. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_graphproj_projector.py +0 -0
  499. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_layout.py +0 -0
  500. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_swimlane_compound_layout.py +0 -0
  501. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_swimlane_exceptions.py +0 -0
  502. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_swimlane_period_sync.py +0 -0
  503. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_swimlane_row_provider.py +0 -0
  504. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_swimlane_state_load.py +0 -0
  505. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_harris_swimlane_state_save.py +0 -0
  506. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_heriverse_parser.py +0 -0
  507. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_ingest_plan.py +0 -0
  508. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_inventario_schema.py +0 -0
  509. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_migrations_backup.py +0 -0
  510. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_migrations_idempotent.py +0 -0
  511. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_optimistic_locking.py +0 -0
  512. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_palette_loader.py +0 -0
  513. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_palette_styles.py +0 -0
  514. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_paradata_store_authors.py +0 -0
  515. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_paradata_store_basic.py +0 -0
  516. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_paradata_store_other_types.py +0 -0
  517. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_pottery_dto.py +0 -0
  518. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_pottery_model.py +0 -0
  519. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_pottery_service.py +0 -0
  520. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_rapporti_codec.py +0 -0
  521. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_rapporti_codec_display.py +0 -0
  522. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_s3d_converter_vocab_backed.py +0 -0
  523. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_s3d_projector.py +0 -0
  524. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_s3d_to_cytoscape.py +0 -0
  525. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_site_service.py +0 -0
  526. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_sync_api.py +0 -0
  527. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_sync_cli.py +0 -0
  528. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_sync_orchestrator.py +0 -0
  529. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_sync_queue.py +0 -0
  530. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_sync_state_machine.py +0 -0
  531. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_us_dto_unita_tipo_validator.py +0 -0
  532. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_us_schema.py +0 -0
  533. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_uuid_manager.py +0 -0
  534. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_vocab_bootstrap_failures.py +0 -0
  535. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_vocab_exceptions.py +0 -0
  536. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_vocab_i18n.py +0 -0
  537. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_vocab_loader.py +0 -0
  538. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_vocab_provider.py +0 -0
  539. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_vocab_types.py +0 -0
  540. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_yed_importer_parse.py +0 -0
  541. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_yed_importer_plan.py +0 -0
  542. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_yed_writer.py +0 -0
  543. {pyarchinit_mini-2.9.3 → pyarchinit_mini-2.9.4}/tests/unit/test_yed_writer_extended_matrix.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyarchinit-mini
3
- Version: 2.9.3
3
+ Version: 2.9.4
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.9.3"
26
+ __version__ = "2.9.4"
27
27
  __author__ = "PyArchInit Team"
28
28
  __email__ = "enzo.ccc@gmail.com"
29
29
 
@@ -24,13 +24,25 @@ except ImportError:
24
24
 
25
25
  # Standard label sheet formats (mm)
26
26
  LABEL_FORMATS = {
27
- 'avery_l7160': {'width': 63.5, 'height': 38.1, 'per_row': 3, 'per_col': 7, 'margin': 2.5},
28
- 'avery_l7163': {'width': 99.1, 'height': 38.1, 'per_row': 2, 'per_col': 7, 'margin': 2.5},
29
- 'small_70x37': {'width': 70, 'height': 37, 'per_row': 3, 'per_col': 8, 'margin': 2},
30
- 'medium_105x57': {'width': 105, 'height': 57, 'per_row': 2, 'per_col': 5, 'margin': 3},
31
- 'single_a4': {'width': 210, 'height': 297, 'per_row': 1, 'per_col': 1, 'margin': 10},
27
+ 'avery_l7160': {'width': 63.5, 'height': 38.1, 'per_row': 3, 'per_col': 7, 'margin': 2.5,
28
+ 'label': 'Avery L7160 3×7 (63×38 mm)'},
29
+ 'avery_l7163': {'width': 99.1, 'height': 38.1, 'per_row': 2, 'per_col': 7, 'margin': 2.5,
30
+ 'label': 'Avery L7163 2×7 (99×38 mm)'},
31
+ 'small_70x37': {'width': 70, 'height': 37, 'per_row': 3, 'per_col': 8, 'margin': 2,
32
+ 'label': 'Piccola — 3×8 (70×37 mm)'},
33
+ 'medium_105x57': {'width': 105, 'height': 57, 'per_row': 2, 'per_col': 5, 'margin': 3,
34
+ 'label': 'Media — 2×5 (105×57 mm)'},
35
+ 'single_a4': {'width': 210, 'height': 297, 'per_row': 1, 'per_col': 1, 'margin': 10,
36
+ 'label': 'A4 singola — 1 etichetta/pagina'},
32
37
  }
33
38
 
39
+ DEFAULT_LABEL_FORMAT = 'avery_l7160'
40
+
41
+
42
+ def get_label_format_choices():
43
+ """Return [(key, friendly_label), ...] for building a format selector UI."""
44
+ return [(key, cfg.get('label', key)) for key, cfg in LABEL_FORMATS.items()]
45
+
34
46
 
35
47
  class TMALabelGenerator:
36
48
  """Generate printable PDF labels for TMA records, with QR codes."""
@@ -421,6 +421,18 @@ def create_app():
421
421
  def inject_locale():
422
422
  return dict(get_locale=get_locale, _=_, version=__version__)
423
423
 
424
+ @app.context_processor
425
+ def inject_tma_label_formats():
426
+ """Expose TMA label sheet formats so templates can render a selector."""
427
+ try:
428
+ from pyarchinit_mini.utils.tma_label_generator import (
429
+ get_label_format_choices, DEFAULT_LABEL_FORMAT,
430
+ )
431
+ return dict(tma_label_formats=get_label_format_choices(),
432
+ tma_label_format_default=DEFAULT_LABEL_FORMAT)
433
+ except Exception:
434
+ return dict(tma_label_formats=[], tma_label_format_default='avery_l7160')
435
+
424
436
  # Create necessary folders
425
437
  os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
426
438
  os.makedirs(app.config['DATABASE_FOLDER'], exist_ok=True)
@@ -4398,11 +4410,16 @@ def create_app():
4398
4410
  user_map[u.full_name.lower().strip()] = u.email
4399
4411
  user_map[u.username.lower().strip()] = u.email
4400
4412
 
4401
- # Also check pyarchinit_users if PostgreSQL
4413
+ # Also check pyarchinit_users (legacy PyArchInit installs may have it).
4414
+ # Wrap in a SAVEPOINT so that, on PostgreSQL, a missing table does not
4415
+ # abort the whole transaction — which would otherwise make every
4416
+ # subsequent query in this session fail with "current transaction is
4417
+ # aborted". (SQLite tolerates the failed statement; PostgreSQL does not.)
4402
4418
  try:
4403
- pa_users = session.execute(sa_text(
4404
- "SELECT username, email, full_name FROM pyarchinit_users"
4405
- )).fetchall()
4419
+ with session.begin_nested():
4420
+ pa_users = session.execute(sa_text(
4421
+ "SELECT username, email, full_name FROM pyarchinit_users"
4422
+ )).fetchall()
4406
4423
  for pu in pa_users:
4407
4424
  if pu[2]: # full_name
4408
4425
  user_map[pu[2].lower().strip()] = pu[1]
@@ -243,9 +243,18 @@
243
243
  <i class="fas fa-save"></i> {{ _('Save') }}
244
244
  </button>
245
245
  {% if tma and tma.id %}
246
- <a href="{{ url_for('tma_label', tma_id=tma.id) }}" class="btn btn-success">
247
- <i class="fas fa-qrcode"></i> {{ _('Print Label') }}
248
- </a>
246
+ <span class="d-inline-flex align-items-center gap-2 ms-2">
247
+ <select id="single_label_format" class="form-select form-select-sm" style="width:auto;"
248
+ aria-label="{{ _('Label format') }}">
249
+ {% for key, label in tma_label_formats %}
250
+ <option value="{{ key }}" {% if key == tma_label_format_default %}selected{% endif %}>{{ label }}</option>
251
+ {% endfor %}
252
+ </select>
253
+ <button type="button" class="btn btn-success"
254
+ onclick="window.location.href='{{ url_for('tma_label', tma_id=tma.id) }}?format=' + document.getElementById('single_label_format').value;">
255
+ <i class="fas fa-qrcode"></i> {{ _('Print Label') }}
256
+ </button>
257
+ </span>
249
258
  {% endif %}
250
259
  </div>
251
260
  </form>
@@ -106,9 +106,23 @@
106
106
  <div class="card-body">
107
107
  <h5><i class="fas fa-print"></i> {{ _('Bulk label print') }}</h5>
108
108
  <p class="text-muted small">{{ _('Print labels for ALL TMA records matching current filters.') }}</p>
109
- <a href="{{ url_for('tma_labels_bulk', search=search, sito=sito_filter) }}" class="btn btn-success">
110
- <i class="fas fa-file-pdf"></i> {{ _('Generate PDF labels (all filtered)') }}
111
- </a>
109
+ <form method="GET" action="{{ url_for('tma_labels_bulk') }}" class="row g-2 align-items-end">
110
+ <input type="hidden" name="search" value="{{ search }}">
111
+ <input type="hidden" name="sito" value="{{ sito_filter }}">
112
+ <div class="col-auto">
113
+ <label for="bulk_format" class="form-label small mb-1">{{ _('Label format') }}</label>
114
+ <select name="format" id="bulk_format" class="form-select form-select-sm">
115
+ {% for key, label in tma_label_formats %}
116
+ <option value="{{ key }}" {% if key == tma_label_format_default %}selected{% endif %}>{{ label }}</option>
117
+ {% endfor %}
118
+ </select>
119
+ </div>
120
+ <div class="col-auto">
121
+ <button type="submit" class="btn btn-success">
122
+ <i class="fas fa-file-pdf"></i> {{ _('Generate PDF labels (all filtered)') }}
123
+ </button>
124
+ </div>
125
+ </form>
112
126
  </div>
113
127
  </div>
114
128
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyarchinit-mini
3
- Version: 2.9.3
3
+ Version: 2.9.4
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
@@ -5,15 +5,8 @@ babel.cfg
5
5
  pyproject.toml
6
6
  requirements.txt
7
7
  setup.py
8
- data/media_viewer_demo.db
9
- data/pyarchinit_mini 2.db
10
- data/pyarchinit_mini.db
11
8
  data/pyarchinit_mini_sample.db
12
9
  data/pyarchinit_tutorial.db
13
- data/pyarchinit_tutorial_backup_20251030_093228.db
14
- data/pyarchinit_tutorial_clean.db
15
- data/pyarchinit_tutorial_video.db
16
- data/pyarchinit_v18_demo.db
17
10
  logo/logo_pyarchinit-mini.png
18
11
  pyarchinit_mini/__init__.py
19
12
  pyarchinit_mini/exceptions.py
@@ -235,10 +228,6 @@ pyarchinit_mini/scripts/__init__.py
235
228
  pyarchinit_mini/scripts/auto_translate.py
236
229
  pyarchinit_mini/scripts/configure_claude_desktop.py
237
230
  pyarchinit_mini/scripts/create_admin_user.py
238
- pyarchinit_mini/scripts/create_correct_stratigraphy_sample.py
239
- pyarchinit_mini/scripts/create_italian_sample_database.py
240
- pyarchinit_mini/scripts/create_sample_for_webapp.py
241
- pyarchinit_mini/scripts/create_sample_with_50_us.py
242
231
  pyarchinit_mini/scripts/generate_test_3d_model.py
243
232
  pyarchinit_mini/scripts/load_italian_as_main.py
244
233
  pyarchinit_mini/scripts/load_sample_as_main.py
@@ -286,10 +275,7 @@ pyarchinit_mini/stratigraph/sync_orchestrator.py
286
275
  pyarchinit_mini/stratigraph/sync_queue.py
287
276
  pyarchinit_mini/stratigraph/sync_state_machine.py
288
277
  pyarchinit_mini/stratigraph/uuid_manager.py
289
- pyarchinit_mini/translations/messages.pot
290
- pyarchinit_mini/translations/en/LC_MESSAGES/messages.mo
291
278
  pyarchinit_mini/translations/en/LC_MESSAGES/messages.po
292
- pyarchinit_mini/translations/it/LC_MESSAGES/messages.mo
293
279
  pyarchinit_mini/translations/it/LC_MESSAGES/messages.po
294
280
  pyarchinit_mini/utils/__init__.py
295
281
  pyarchinit_mini/utils/auth.py
@@ -324,9 +310,6 @@ pyarchinit_mini/web_interface/test_prova_extended_matrix.graphml
324
310
  pyarchinit_mini/web_interface/three_d_builder_routes.py
325
311
  pyarchinit_mini/web_interface/vocab_routes.py
326
312
  pyarchinit_mini/web_interface/yed_import_routes.py
327
- pyarchinit_mini/web_interface/data/paradata/domus-pompeiana/stratigraphy.graphml
328
- pyarchinit_mini/web_interface/data/paradata/metro-c-amba-aradam/stratigraphy.graphml
329
- pyarchinit_mini/web_interface/data/paradata/pompei-regio-vii/stratigraphy.graphml
330
313
  pyarchinit_mini/web_interface/static/css/style.css
331
314
  pyarchinit_mini/web_interface/static/images/favicon.ico
332
315
  pyarchinit_mini/web_interface/static/images/logo.png
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pyarchinit-mini"
7
- version = "2.9.3"
7
+ version = "2.9.4"
8
8
  description = "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"
9
9
  readme = "README.md"
10
10
  license = {text = "GPL-2.0"}
@@ -38,6 +38,7 @@ graphviz>=0.20.0
38
38
  # PDF Export
39
39
  reportlab>=4.0.0
40
40
  weasyprint>=60.0.0
41
+ qrcode[pil]>=7.4.0
41
42
 
42
43
  # Media Processing
43
44
  pillow>=10.0.0
@@ -52,7 +53,7 @@ pandas>=2.0.0
52
53
  openpyxl>=3.1.5
53
54
 
54
55
  # 3D Stratigraphic Graph Management
55
- s3dgraphy>=1.5.0
56
+ s3dgraphy>=0.1.0
56
57
  gunicorn>=21.0.0
57
58
  psutil>=5.9.0
58
59
  passlib[bcrypt]>=1.7.0
@@ -1,373 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Create sample database with correct stratigraphic relationships
4
- without paradoxes, following archaeological logic
5
- """
6
-
7
- import os
8
- import sys
9
- from datetime import datetime
10
-
11
- # Add the project root to the Python path
12
- project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
13
- sys.path.insert(0, project_root)
14
-
15
- from pyarchinit_mini.database.connection import DatabaseConnection
16
- from pyarchinit_mini.database.manager import DatabaseManager
17
- from pyarchinit_mini.services.site_service import SiteService
18
- from pyarchinit_mini.services.us_service import USService
19
- from pyarchinit_mini.services.inventario_service import InventarioService
20
- from pyarchinit_mini.services.periodizzazione_service import PeriodizzazioneService
21
-
22
- def create_correct_stratigraphy_sample():
23
- """Create sample database with archaeologically correct stratigraphy"""
24
-
25
- # Database path
26
- db_path = os.path.join(project_root, 'pyarchinit_mini_sample.db')
27
-
28
- # Remove existing database
29
- if os.path.exists(db_path):
30
- os.remove(db_path)
31
- print(f"Removed existing database: {db_path}")
32
-
33
- # Create new database connection
34
- db_conn = DatabaseConnection(f'sqlite:///{db_path}')
35
- db_conn.create_tables()
36
-
37
- db_manager = DatabaseManager(db_conn)
38
-
39
- # Initialize services
40
- site_service = SiteService(db_manager)
41
- us_service = USService(db_manager)
42
- inventario_service = InventarioService(db_manager)
43
- periodizzazione_service = PeriodizzazioneService(db_manager)
44
-
45
- print("Creating archaeologically correct sample database...")
46
-
47
- # 1. Create site
48
- site_data = {
49
- 'sito': 'Sito Archeologico di Esempio',
50
- 'comune': 'Roma',
51
- 'provincia': 'RM',
52
- 'regione': 'Lazio',
53
- 'nazione': 'Italia',
54
- 'descrizione': 'Sito di esempio con stratigrafia corretta per dimostrazioni'
55
- }
56
-
57
- site = site_service.create_site(site_data)
58
- site_name = site_data['sito'] # Use the data directly instead of accessing the ORM object
59
- print(f"Created site: {site_name}")
60
-
61
- # 2. Create periods (skipped for now - no validator for periodizzazione yet)
62
- # TODO: Add periodizzazione validator and uncomment this section
63
- print("Skipping periods creation (no validator yet)")
64
-
65
- # 3. Create US with correct stratigraphic relationships
66
- # Following archaeological logic from bottom (oldest) to top (newest)
67
-
68
- us_list = []
69
-
70
- # Natural ground (oldest) - using 1000 instead of 0 due to validator constraint
71
- us_1000 = us_service.create_us({
72
- 'sito': site_name,
73
- 'area': 'A',
74
- 'us': 1000,
75
- 'unita_tipo': 'US',
76
- 'd_stratigrafica': 'Terreno vergine naturale',
77
- 'd_interpretativa': 'Substrato geologico naturale',
78
- 'periodo_iniziale': 'Preistorico',
79
- 'fase_iniziale': 'Naturale',
80
- 'stato_di_conservazione': 'Buono',
81
- 'scavato': 'Sì',
82
- 'anno_scavo': datetime.now().year
83
- })
84
- us_list.append(us_1000)
85
-
86
- # Phase I - Foundation (Roman Imperial)
87
- # Foundation cuts
88
- us_10 = us_service.create_us({
89
- 'sito': site_name,
90
- 'area': 'A',
91
- 'us': 10,
92
- 'unita_tipo': 'US',
93
- 'd_stratigrafica': 'Taglio di fondazione per muro perimetrale',
94
- 'd_interpretativa': 'Fossa di fondazione edificio principale',
95
- 'periodo_iniziale': 'Età Romana Imperiale',
96
- 'fase_iniziale': 'I - Fondazione',
97
- 'rapporti': 'Taglia 1000', # Cuts the natural ground
98
- 'stato_di_conservazione': 'Buono',
99
- 'scavato': 'Sì',
100
- 'anno_scavo': datetime.now().year
101
- })
102
- us_list.append(us_10)
103
-
104
- # Foundation walls
105
- us_11 = us_service.create_us({
106
- 'sito': site_name,
107
- 'area': 'A',
108
- 'us': 11,
109
- 'unita_tipo': 'USM',
110
- 'd_stratigrafica': 'Muro perimetrale in opus reticulatum',
111
- 'd_interpretativa': 'Muro perimetrale dell\'edificio principale',
112
- 'periodo_iniziale': 'Età Romana Imperiale',
113
- 'fase_iniziale': 'I - Fondazione',
114
- 'rapporti': 'Riempie 10', # Fills the foundation cut
115
- 'stato_di_conservazione': 'Discreto',
116
- 'scavato': 'Sì',
117
- 'anno_scavo': datetime.now().year
118
- })
119
- us_list.append(us_11)
120
-
121
- # Floor preparation
122
- us_12 = us_service.create_us({
123
- 'sito': site_name,
124
- 'area': 'A',
125
- 'us': 12,
126
- 'unita_tipo': 'US',
127
- 'd_stratigrafica': 'Preparazione pavimentale in cocciopesto',
128
- 'd_interpretativa': 'Sottofondo per pavimentazione',
129
- 'periodo_iniziale': 'Età Romana Imperiale',
130
- 'fase_iniziale': 'I - Fondazione',
131
- 'rapporti': 'Copre 1000; Si appoggia a 11', # Covers natural ground, abuts wall
132
- 'stato_di_conservazione': 'Buono',
133
- 'scavato': 'Sì',
134
- 'anno_scavo': datetime.now().year
135
- })
136
- us_list.append(us_12)
137
-
138
- # Floor
139
- us_13 = us_service.create_us({
140
- 'sito': site_name,
141
- 'area': 'A',
142
- 'us': 13,
143
- 'unita_tipo': 'US',
144
- 'd_stratigrafica': 'Pavimento in opus tessellatum',
145
- 'd_interpretativa': 'Pavimento musivo geometrico',
146
- 'periodo_iniziale': 'Età Romana Imperiale',
147
- 'fase_iniziale': 'I - Fondazione',
148
- 'rapporti': 'Copre 12', # Covers floor preparation
149
- 'stato_di_conservazione': 'Discreto',
150
- 'scavato': 'Sì',
151
- 'anno_scavo': datetime.now().year
152
- })
153
- us_list.append(us_13)
154
-
155
- # Phase II - Development
156
- # Use accumulation
157
- us_20 = us_service.create_us({
158
- 'sito': site_name,
159
- 'area': 'A',
160
- 'us': 20,
161
- 'unita_tipo': 'US',
162
- 'd_stratigrafica': 'Strato di accumulo con ceramica e ossa',
163
- 'd_interpretativa': 'Livello d\'uso della fase II',
164
- 'periodo_iniziale': 'Età Romana Imperiale',
165
- 'fase_iniziale': 'II - Sviluppo',
166
- 'rapporti': 'Copre 13', # Covers the floor
167
- 'stato_di_conservazione': 'Buono',
168
- 'scavato': 'Sì',
169
- 'anno_scavo': datetime.now().year
170
- })
171
- us_list.append(us_20)
172
-
173
- # Repair cut
174
- us_21 = us_service.create_us({
175
- 'sito': site_name,
176
- 'area': 'A',
177
- 'us': 21,
178
- 'unita_tipo': 'US',
179
- 'd_stratigrafica': 'Taglio per riparazione pavimento',
180
- 'd_interpretativa': 'Fossa per riparazione',
181
- 'periodo_iniziale': 'Età Romana Imperiale',
182
- 'fase_iniziale': 'II - Sviluppo',
183
- 'rapporti': 'Taglia 13', # Cuts the floor
184
- 'stato_di_conservazione': 'Buono',
185
- 'scavato': 'Sì',
186
- 'anno_scavo': datetime.now().year
187
- })
188
- us_list.append(us_21)
189
-
190
- # Repair fill
191
- us_22 = us_service.create_us({
192
- 'sito': site_name,
193
- 'area': 'A',
194
- 'us': 22,
195
- 'unita_tipo': 'US',
196
- 'd_stratigrafica': 'Riempimento con malta e frammenti laterizi',
197
- 'd_interpretativa': 'Riparazione del pavimento',
198
- 'periodo_iniziale': 'Età Romana Imperiale',
199
- 'fase_iniziale': 'II - Sviluppo',
200
- 'rapporti': 'Riempie 21; Coperto da 20', # Fills repair cut, covered by use layer
201
- 'stato_di_conservazione': 'Buono',
202
- 'scavato': 'Sì',
203
- 'anno_scavo': datetime.now().year
204
- })
205
- us_list.append(us_22)
206
-
207
- # Phase III - Late Antique transformation
208
- # Destruction layer
209
- us_30 = us_service.create_us({
210
- 'sito': site_name,
211
- 'area': 'A',
212
- 'us': 30,
213
- 'unita_tipo': 'US',
214
- 'd_stratigrafica': 'Crollo di tegole e coppi',
215
- 'd_interpretativa': 'Crollo del tetto',
216
- 'periodo_iniziale': 'Tardo Antico',
217
- 'fase_iniziale': 'III - Trasformazione',
218
- 'rapporti': 'Copre 20, 11', # Covers use layer and walls
219
- 'stato_di_conservazione': 'Buono',
220
- 'scavato': 'Sì',
221
- 'anno_scavo': datetime.now().year
222
- })
223
- us_list.append(us_30)
224
-
225
- # Leveling for new floor
226
- us_31 = us_service.create_us({
227
- 'sito': site_name,
228
- 'area': 'A',
229
- 'us': 31,
230
- 'unita_tipo': 'US',
231
- 'd_stratigrafica': 'Livellamento con macerie',
232
- 'd_interpretativa': 'Preparazione per nuova pavimentazione',
233
- 'periodo_iniziale': 'Tardo Antico',
234
- 'fase_iniziale': 'III - Trasformazione',
235
- 'rapporti': 'Copre 30', # Covers collapse
236
- 'stato_di_conservazione': 'Buono',
237
- 'scavato': 'Sì',
238
- 'anno_scavo': datetime.now().year
239
- })
240
- us_list.append(us_31)
241
-
242
- # New beaten earth floor
243
- us_32 = us_service.create_us({
244
- 'sito': site_name,
245
- 'area': 'A',
246
- 'us': 32,
247
- 'unita_tipo': 'US',
248
- 'd_stratigrafica': 'Pavimento in terra battuta',
249
- 'd_interpretativa': 'Pavimento povero di riuso',
250
- 'periodo_iniziale': 'Tardo Antico',
251
- 'fase_iniziale': 'III - Trasformazione',
252
- 'rapporti': 'Copre 31', # Covers leveling
253
- 'stato_di_conservazione': 'Mediocre',
254
- 'scavato': 'Sì',
255
- 'anno_scavo': datetime.now().year
256
- })
257
- us_list.append(us_32)
258
-
259
- # Phase IV - Abandonment
260
- # Final abandonment layer
261
- us_40 = us_service.create_us({
262
- 'sito': site_name,
263
- 'area': 'A',
264
- 'us': 40,
265
- 'unita_tipo': 'US',
266
- 'd_stratigrafica': 'Strato di abbandono con vegetazione',
267
- 'd_interpretativa': 'Accumulo naturale post-abbandono',
268
- 'periodo_iniziale': 'Alto Medioevo',
269
- 'fase_iniziale': 'IV - Abbandono',
270
- 'rapporti': 'Copre 32, 31, 11', # Covers everything
271
- 'stato_di_conservazione': 'Buono',
272
- 'scavato': 'Sì',
273
- 'anno_scavo': datetime.now().year
274
- })
275
- us_list.append(us_40)
276
-
277
- # Phase V - Modern excavation
278
- # Topsoil
279
- us_1 = us_service.create_us({
280
- 'sito': site_name,
281
- 'area': 'A',
282
- 'us': 1,
283
- 'unita_tipo': 'US',
284
- 'd_stratigrafica': 'Humus superficiale',
285
- 'd_interpretativa': 'Terreno agricolo moderno',
286
- 'periodo_iniziale': 'Moderno',
287
- 'fase_iniziale': 'V - Scavo',
288
- 'rapporti': 'Copre 40', # Covers abandonment
289
- 'stato_di_conservazione': 'Buono',
290
- 'scavato': 'Sì',
291
- 'anno_scavo': datetime.now().year
292
- })
293
- us_list.append(us_1)
294
-
295
- print(f"Created {len(us_list)} US records with correct stratigraphic relationships")
296
-
297
- # 4. Create some finds
298
- finds = [
299
- {
300
- 'sito': site_name,
301
- 'numero_inventario': 1,
302
- 'tipo_reperto': 'Ceramica',
303
- 'definizione': 'Terra sigillata',
304
- 'area': 'A',
305
- 'us': 20,
306
- 'lavato': 'yes',
307
- 'peso': 25.5,
308
- 'descrizione': 'Frammento di parete con decorazione a rilievo'
309
- },
310
- {
311
- 'sito': site_name,
312
- 'numero_inventario': 2,
313
- 'tipo_reperto': 'Metallo',
314
- 'definizione': 'Moneta in bronzo',
315
- 'area': 'A',
316
- 'us': 20,
317
- 'lavato': 'yes',
318
- 'peso': 8.3,
319
- 'descrizione': 'Asse di Traiano, buona conservazione'
320
- },
321
- {
322
- 'sito': site_name,
323
- 'numero_inventario': 3,
324
- 'tipo_reperto': 'Osso',
325
- 'definizione': 'Osso lavorato',
326
- 'area': 'A',
327
- 'us': 32,
328
- 'lavato': 'yes',
329
- 'peso': 12.1,
330
- 'descrizione': 'Spillone in osso con testa decorata'
331
- },
332
- {
333
- 'sito': site_name,
334
- 'numero_inventario': 4,
335
- 'tipo_reperto': 'Ceramica',
336
- 'definizione': 'Ceramica comune',
337
- 'area': 'A',
338
- 'us': 30,
339
- 'lavato': 'yes',
340
- 'peso': 156.7,
341
- 'descrizione': 'Frammenti di olla da cucina'
342
- },
343
- {
344
- 'sito': site_name,
345
- 'numero_inventario': 5,
346
- 'tipo_reperto': 'Pietra',
347
- 'definizione': 'Frammento arch.',
348
- 'area': 'A',
349
- 'us': 30,
350
- 'lavato': 'no',
351
- 'peso': 2340.0,
352
- 'descrizione': 'Frammento di cornice modanata in marmo'
353
- }
354
- ]
355
-
356
- for find_data in finds:
357
- inventario_service.create_inventario(find_data)
358
- print(f"Created {len(finds)} inventory items")
359
-
360
- # Close database connection
361
- db_conn.close()
362
-
363
- print(f"\nSample database created successfully at: {db_path}")
364
- print("\nStratigraphic sequence (from newest to oldest):")
365
- print("1 (Topsoil) → 40 (Abandonment) → 32 (Beaten earth floor) → 31 (Leveling)")
366
- print("→ 30 (Collapse) → 20 (Use layer) → 22 (Repair) → 13 (Floor) → 12 (Preparation)")
367
- print("→ 11 (Wall in cut 10) → 10 (Foundation cut) → 1000 (Natural)")
368
- print("\nNo stratigraphic paradoxes - all relationships follow archaeological logic!")
369
-
370
- return db_path
371
-
372
- if __name__ == "__main__":
373
- create_correct_stratigraphy_sample()