pyarchinit-mini 2.0.1__tar.gz → 2.0.2__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 (330) hide show
  1. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/CHANGELOG.md +14 -0
  2. {pyarchinit_mini-2.0.1/pyarchinit_mini.egg-info → pyarchinit_mini-2.0.2}/PKG-INFO +1 -1
  3. pyarchinit_mini-2.0.2/data/pyarchinit_tutorial.db +0 -0
  4. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/schemas.py +14 -5
  5. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/dialogs.py +4 -3
  6. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/graphml_parser.py +1 -1
  7. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/inventario_service.py +2 -2
  8. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/us_service.py +6 -5
  9. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/app.py +4 -4
  10. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/three_d_builder_routes.py +4 -4
  11. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2/pyarchinit_mini.egg-info}/PKG-INFO +1 -1
  12. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini.egg-info/SOURCES.txt +0 -16
  13. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyproject.toml +1 -1
  14. pyarchinit_mini-2.0.1/data/media_viewer_demo.db +0 -0
  15. pyarchinit_mini-2.0.1/data/pyarchinit_mini 2.db +0 -0
  16. pyarchinit_mini-2.0.1/data/pyarchinit_mini.db +0 -0
  17. pyarchinit_mini-2.0.1/data/pyarchinit_tutorial.db +0 -0
  18. pyarchinit_mini-2.0.1/data/pyarchinit_tutorial_backup_20251030_093228.db +0 -0
  19. pyarchinit_mini-2.0.1/data/pyarchinit_tutorial_clean.db +0 -0
  20. pyarchinit_mini-2.0.1/data/pyarchinit_tutorial_video.db +0 -0
  21. pyarchinit_mini-2.0.1/data/pyarchinit_v18_demo.db +0 -0
  22. pyarchinit_mini-2.0.1/pyarchinit_mini/mcp_server/tools/create_database_tool.py +0 -118
  23. pyarchinit_mini-2.0.1/pyarchinit_mini/mcp_server/tools/create_harris_matrix_tool.py +0 -421
  24. pyarchinit_mini-2.0.1/pyarchinit_mini/scripts/create_correct_stratigraphy_sample.py +0 -373
  25. pyarchinit_mini-2.0.1/pyarchinit_mini/scripts/create_italian_sample_database.py +0 -302
  26. pyarchinit_mini-2.0.1/pyarchinit_mini/scripts/create_sample_for_webapp.py +0 -463
  27. pyarchinit_mini-2.0.1/pyarchinit_mini/scripts/create_sample_with_50_us.py +0 -353
  28. pyarchinit_mini-2.0.1/pyarchinit_mini/translations/en/LC_MESSAGES/messages.mo +0 -0
  29. pyarchinit_mini-2.0.1/pyarchinit_mini/translations/it/LC_MESSAGES/messages.mo +0 -0
  30. pyarchinit_mini-2.0.1/pyarchinit_mini/translations/messages.pot +0 -0
  31. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/MANIFEST.in +0 -0
  32. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/README.md +0 -0
  33. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/babel.cfg +0 -0
  34. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/data/pyarchinit_mini_sample.db +0 -0
  35. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/logo/logo_pyarchinit-mini.png +0 -0
  36. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/__init__.py +0 -0
  37. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/__init__.py +0 -0
  38. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/auth.py +0 -0
  39. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/dependencies.py +0 -0
  40. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/graphml.py +0 -0
  41. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/inventario.py +0 -0
  42. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/site.py +0 -0
  43. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/sync.py +0 -0
  44. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/api/us.py +0 -0
  45. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/__init__.py +0 -0
  46. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/export_import_cli.py +0 -0
  47. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/extended_matrix_import.py +0 -0
  48. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/graphml_cli.py +0 -0
  49. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/harris_import.py +0 -0
  50. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/harris_template.py +0 -0
  51. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/migrate.py +0 -0
  52. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/pyarchinit_import_export_cli.py +0 -0
  53. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli/sync_cli.py +0 -0
  54. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli_interface/__init__.py +0 -0
  55. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/cli_interface/cli_app.py +0 -0
  56. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/config/__init__.py +0 -0
  57. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/config/connection_manager.py +0 -0
  58. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/config/em_node_config_manager.py +0 -0
  59. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/config/em_node_types.yaml +0 -0
  60. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/__init__.py +0 -0
  61. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/concurrency_manager.py +0 -0
  62. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/connection.py +0 -0
  63. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/database_creator.py +0 -0
  64. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/manager.py +0 -0
  65. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migration_scripts/__init__.py +0 -0
  66. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migration_scripts/add_file_path.py +0 -0
  67. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migration_scripts/add_i18n_columns.py +0 -0
  68. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migration_scripts/add_tipo_documento.py +0 -0
  69. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text.py +0 -0
  70. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text_simple.py +0 -0
  71. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/migrations.py +0 -0
  72. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/postgres_installer.py +0 -0
  73. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/database/schemas.py +0 -0
  74. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/__init__.py +0 -0
  75. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/analytics_dialog.py +0 -0
  76. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/assets/logo.png +0 -0
  77. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/excel_import_dialog.py +0 -0
  78. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/export_import_dialog.py +0 -0
  79. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/graphml_export_dialog.py +0 -0
  80. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/gui_app.py +0 -0
  81. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/harris_matrix_editor.py +0 -0
  82. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/i18n.py +0 -0
  83. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/icons.py +0 -0
  84. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/inventario_dialog_extended.py +0 -0
  85. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/main_window.py +0 -0
  86. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/media_manager_advanced.py +0 -0
  87. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/postgres_installer_dialog.py +0 -0
  88. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/pyarchinit_import_export_dialog.py +0 -0
  89. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/thesaurus_dialog.py +0 -0
  90. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/desktop_gui/us_dialog_extended.py +0 -0
  91. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/dto/__init__.py +0 -0
  92. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/dto/inventario_dto.py +0 -0
  93. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/dto/site_dto.py +0 -0
  94. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/dto/us_dto.py +0 -0
  95. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/exceptions.py +0 -0
  96. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/__init__.py +0 -0
  97. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/converter.py +0 -0
  98. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/dot_parser.py +0 -0
  99. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/em_palette.py +0 -0
  100. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/graphml_builder.py +0 -0
  101. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/graphml_exporter.py +0 -0
  102. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/pure_networkx_exporter.py +0 -0
  103. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/svg_resources.py +0 -0
  104. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/templates/EM_palette.graphml +0 -0
  105. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/x11_colors.py +0 -0
  106. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/graphml_converter/yed_template.py +0 -0
  107. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/harris_matrix/__init__.py +0 -0
  108. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/harris_matrix/enhanced_visualizer.py +0 -0
  109. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/harris_matrix/matrix_generator.py +0 -0
  110. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/harris_matrix/matrix_visualizer.py +0 -0
  111. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/harris_matrix/pyarchinit_visualizer.py +0 -0
  112. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/i18n/__init__.py +0 -0
  113. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/i18n/flask_babel_config.py +0 -0
  114. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/i18n/locale_manager.py +0 -0
  115. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/__init__.py +0 -0
  116. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/__main__.py +0 -0
  117. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/blender_client.py +0 -0
  118. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/config.py +0 -0
  119. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/event_stream.py +0 -0
  120. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/http_server.py +0 -0
  121. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/period_filter.py +0 -0
  122. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/prompts/__init__.py +0 -0
  123. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/prompts/base_prompt.py +0 -0
  124. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/prompts/period_visualization_prompt.py +0 -0
  125. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/prompts/stratigraphic_model_prompt.py +0 -0
  126. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/prompts/us_description_prompt.py +0 -0
  127. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/proxy_generator.py +0 -0
  128. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/__init__.py +0 -0
  129. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/base_resource.py +0 -0
  130. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/graphml_resource.py +0 -0
  131. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/periods_resource.py +0 -0
  132. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/relationships_resource.py +0 -0
  133. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/sites_resource.py +0 -0
  134. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/resources/us_resource.py +0 -0
  135. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/server.py +0 -0
  136. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/__init__.py +0 -0
  137. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/base_tool.py +0 -0
  138. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/batch_insert_tool.py +0 -0
  139. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/build_3d_tool.py +0 -0
  140. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/chatgpt_fetch_tool.py +0 -0
  141. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/chatgpt_search_tool.py +0 -0
  142. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/configure_em_nodes_tool.py +0 -0
  143. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/data_import_parser_tool.py +0 -0
  144. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/data_management_tool.py +0 -0
  145. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/database_manager_tool.py +0 -0
  146. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/delete_data_tool.py +0 -0
  147. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/export_harris_matrix_graphml_tool.py +0 -0
  148. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/export_tool.py +0 -0
  149. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/filter_tool.py +0 -0
  150. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/generate_report_tool.py +0 -0
  151. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/get_schema_tool.py +0 -0
  152. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/import_excel_tool.py +0 -0
  153. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/insert_data_tool.py +0 -0
  154. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/manage_services_tool.py +0 -0
  155. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/material_tool.py +0 -0
  156. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/media_management_tool.py +0 -0
  157. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/position_tool.py +0 -0
  158. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/pyarchinit_sync_tool.py +0 -0
  159. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/resolve_conflicts_tool.py +0 -0
  160. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/service_management_tool.py +0 -0
  161. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/thesaurus_management_tool.py +0 -0
  162. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/update_data_tool.py +0 -0
  163. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/upload_file_tool.py +0 -0
  164. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/validate_relationship_format_tool.py +0 -0
  165. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/validate_relationship_integrity_tool.py +0 -0
  166. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/validate_stratigraphic_relationships_tool.py +0 -0
  167. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/mcp_server/tools/validate_stratigraphy_tool.py +0 -0
  168. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/media_manager/__init__.py +0 -0
  169. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/media_manager/media_handler.py +0 -0
  170. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/__init__.py +0 -0
  171. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/base.py +0 -0
  172. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/datazione.py +0 -0
  173. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/extended_matrix.py +0 -0
  174. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/harris_matrix.py +0 -0
  175. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/inventario_materiali.py +0 -0
  176. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/media.py +0 -0
  177. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/site.py +0 -0
  178. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/thesaurus.py +0 -0
  179. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/us.py +0 -0
  180. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/models/user.py +0 -0
  181. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/pdf_export/__init__.py +0 -0
  182. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/pdf_export/pdf_generator.py +0 -0
  183. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/pdf_export/pdf_generator_backup.py +0 -0
  184. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/pdf_export/pyarchinit_finds_template.py +0 -0
  185. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/pdf_export/pyarchinit_inventory_template.py +0 -0
  186. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/pdf_export/usm_implementation.py +0 -0
  187. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/s3d_integration/__init__.py +0 -0
  188. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/s3d_integration/model_manager.py +0 -0
  189. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/s3d_integration/s3d_converter.py +0 -0
  190. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/__init__.py +0 -0
  191. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/auto_translate.py +0 -0
  192. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/configure_claude_desktop.py +0 -0
  193. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/create_admin_user.py +0 -0
  194. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/generate_test_3d_model.py +0 -0
  195. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/load_italian_as_main.py +0 -0
  196. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/load_sample_as_main.py +0 -0
  197. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/migrate_relationships.py +0 -0
  198. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/populate_sample_data.py +0 -0
  199. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/populate_simple_data.py +0 -0
  200. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/setup_auth.py +0 -0
  201. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/setup_user_env.py +0 -0
  202. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/test_cascade_delete.py +0 -0
  203. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/test_relationship_fix.py +0 -0
  204. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/update_sample_relationships.py +0 -0
  205. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/update_urls_and_versions.py +0 -0
  206. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/scripts/verify_docs.py +0 -0
  207. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/__init__.py +0 -0
  208. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/analytics_service.py +0 -0
  209. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/command_parser.py +0 -0
  210. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/datazione_service.py +0 -0
  211. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/export_import_service.py +0 -0
  212. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/extended_matrix_excel_parser.py +0 -0
  213. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/import_export_service.py +0 -0
  214. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/mcp_executor.py +0 -0
  215. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/media_service.py +0 -0
  216. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/periodizzazione_service.py +0 -0
  217. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/relationship_sync_service.py +0 -0
  218. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/site_service.py +0 -0
  219. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/thesaurus_service.py +0 -0
  220. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/services/user_service.py +0 -0
  221. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/__init__.py +0 -0
  222. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/bundle_creator.py +0 -0
  223. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/bundle_manifest.py +0 -0
  224. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/bundle_validator.py +0 -0
  225. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/connectivity_monitor.py +0 -0
  226. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/sync_orchestrator.py +0 -0
  227. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/sync_queue.py +0 -0
  228. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/sync_state_machine.py +0 -0
  229. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/stratigraph/uuid_manager.py +0 -0
  230. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/translations/en/LC_MESSAGES/messages.po +0 -0
  231. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/translations/it/LC_MESSAGES/messages.po +0 -0
  232. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/utils/__init__.py +0 -0
  233. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/utils/auth.py +0 -0
  234. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/utils/exceptions.py +0 -0
  235. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/utils/relationship_validator.py +0 -0
  236. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/utils/stratigraphic_validator.py +0 -0
  237. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/utils/validators.py +0 -0
  238. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/auth_routes.py +0 -0
  239. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/em_node_config_routes.py +0 -0
  240. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/excel_import_routes.py +0 -0
  241. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/harris_creator_routes.py +0 -0
  242. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/pyarchinit_import_export_routes.py +0 -0
  243. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/s3d_routes.py +0 -0
  244. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/socketio_events.py +0 -0
  245. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/css/style.css +0 -0
  246. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/images/favicon.ico +0 -0
  247. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/images/logo.png +0 -0
  248. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/images/pyarchinit-mini-logo.png +0 -0
  249. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/js/OrbitControls.js +0 -0
  250. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/js/harris_creator_editor.js +0 -0
  251. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/js/stratigraphic_layout.js +0 -0
  252. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/js/three-d-viewer.js +0 -0
  253. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/js/three.min.js +0 -0
  254. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.bin +0 -0
  255. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.gltf +0 -0
  256. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.mtl +0 -0
  257. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.obj +0 -0
  258. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/3d_builder/index.html +0 -0
  259. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/3d_viewer/viewer.html +0 -0
  260. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/admin/database.html +0 -0
  261. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/admin/database_connect.html +0 -0
  262. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/admin/database_info.html +0 -0
  263. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/admin/database_upload.html +0 -0
  264. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/analytics/dashboard.html +0 -0
  265. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/auth/login.html +0 -0
  266. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/auth/users.html +0 -0
  267. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/base.html +0 -0
  268. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/blender_viewer.html +0 -0
  269. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/components/language_switcher.html +0 -0
  270. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/dashboard.html +0 -0
  271. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/datazioni/list.html +0 -0
  272. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/em_node_config/index.html +0 -0
  273. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/excel_import/index.html +0 -0
  274. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/export/export_import.html +0 -0
  275. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_creator/editor.html +0 -0
  276. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_creator/index.html +0 -0
  277. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_matrix/graphml_export.html +0 -0
  278. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_matrix/large_graph_message.html +0 -0
  279. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_matrix/stratigraph_viewer.html +0 -0
  280. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_matrix/view.html +0 -0
  281. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_matrix/view_graphviz.html +0 -0
  282. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/harris_matrix/viewer_3d_integrated.html +0 -0
  283. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/inventario/form.html +0 -0
  284. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/inventario/list.html +0 -0
  285. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/media/list.html +0 -0
  286. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/media/upload.html +0 -0
  287. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/periodizzazione/form.html +0 -0
  288. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/periodizzazione/list.html +0 -0
  289. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/periodizzazione/periods.html +0 -0
  290. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/pyarchinit_import_export/index.html +0 -0
  291. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/sites/detail.html +0 -0
  292. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/sites/form.html +0 -0
  293. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/sites/list.html +0 -0
  294. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/thesaurus/list.html +0 -0
  295. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/us/form.html +0 -0
  296. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/us/list.html +0 -0
  297. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/templates/validation/report.html +0 -0
  298. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/test_prova_extended_matrix.graphml +0 -0
  299. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.graphml +0 -0
  300. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
  301. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_heriverse.json +0 -0
  302. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.graphml +0 -0
  303. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.json +0 -0
  304. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
  305. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini.egg-info/dependency_links.txt +0 -0
  306. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini.egg-info/entry_points.txt +0 -0
  307. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini.egg-info/not-zip-safe +0 -0
  308. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini.egg-info/requires.txt +0 -0
  309. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/pyarchinit_mini.egg-info/top_level.txt +0 -0
  310. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/requirements.txt +0 -0
  311. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/setup.cfg +0 -0
  312. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/setup.py +0 -0
  313. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/__init__.py +0 -0
  314. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/conftest.py +0 -0
  315. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/integration/__init__.py +0 -0
  316. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/integration/test_full_sync_flow.py +0 -0
  317. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_bundle.py +0 -0
  318. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_concurrency_columns.py +0 -0
  319. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_concurrency_manager.py +0 -0
  320. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_connectivity_monitor.py +0 -0
  321. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_inventario_schema.py +0 -0
  322. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_optimistic_locking.py +0 -0
  323. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_site_service.py +0 -0
  324. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_sync_api.py +0 -0
  325. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_sync_cli.py +0 -0
  326. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_sync_orchestrator.py +0 -0
  327. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_sync_queue.py +0 -0
  328. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_sync_state_machine.py +0 -0
  329. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_us_schema.py +0 -0
  330. {pyarchinit_mini-2.0.1 → pyarchinit_mini-2.0.2}/tests/unit/test_uuid_manager.py +0 -0
@@ -1,3 +1,17 @@
1
+ ## [2.0.2] - 2026-02-24
2
+
3
+ ### Fixed
4
+ - **PostgreSQL type mismatch on US creation**: `us_table.us` column was migrated from INTEGER to VARCHAR(100) but code was still passing integer values, causing `psycopg2.errors.UndefinedFunction: operator does not exist: character varying = integer` on PostgreSQL databases
5
+ - Fixed `us_service._get_us_by_site_area_number`: always cast `us_number` to `str` in SQL params
6
+ - Fixed `us_service.create_us_dto`: cast `US.us == str(us_data['us'])` in ORM filter
7
+ - Fixed `web_interface/app.py`: `us` field kept as `str` instead of `int` in `us_data` dict (create and update flows)
8
+ - Fixed `web_interface/three_d_builder_routes.py`: `US.us == str(data['us'])` in all 3D builder filters
9
+ - Fixed `desktop_gui/dialogs.py`: validate US number as int but pass as str to DB layer
10
+ - Fixed `inventario_service.py`: cast `us_number` to str in all US existence checks
11
+ - Fixed `api/schemas.py`: `us` field changed from `int` to `str` (with backward-compatible validator accepting both)
12
+ - Fixed `mcp_server/graphml_parser.py`: safe int cast for Periodizzazione.us comparison (still INTEGER column)
13
+
14
+
1
15
  # Changelog
2
16
 
3
17
  All notable changes to PyArchInit-Mini will be documented in this file.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyarchinit-mini
3
- Version: 2.0.1
3
+ Version: 2.0.2
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
@@ -3,7 +3,7 @@ Pydantic schemas for API request/response validation
3
3
  """
4
4
 
5
5
  from datetime import datetime
6
- from typing import Optional, List
6
+ from typing import Optional, List, Union
7
7
  from pydantic import BaseModel, Field, validator
8
8
 
9
9
  # Base schemas
@@ -59,7 +59,12 @@ class USBase(BaseModel):
59
59
  """Base US schema"""
60
60
  sito: str = Field(..., max_length=350, description="Site name")
61
61
  area: Optional[str] = Field(None, max_length=20, description="Area")
62
- us: int = Field(..., gt=0, description="US number")
62
+ us: str = Field(..., description="US number (numeric or alphanumeric, e.g. '1' or 'A1')")
63
+
64
+ @validator('us', pre=True)
65
+ def us_to_str(cls, v):
66
+ """Accept int or str — us column is VARCHAR(100)"""
67
+ return str(v).strip() if v is not None else v
63
68
  d_stratigrafica: Optional[str] = Field(None, max_length=350, description="Stratigraphic description")
64
69
  d_interpretativa: Optional[str] = Field(None, max_length=350, description="Interpretative description")
65
70
  descrizione: Optional[str] = Field(None, description="Description")
@@ -231,7 +236,11 @@ class USUpdate(BaseModel):
231
236
  """Schema for updating a US"""
232
237
  sito: Optional[str] = Field(None, max_length=350)
233
238
  area: Optional[str] = Field(None, max_length=20)
234
- us: Optional[int] = Field(None, gt=0)
239
+ us: Optional[str] = Field(None, description="US number (numeric or alphanumeric)")
240
+
241
+ @validator('us', pre=True)
242
+ def us_to_str(cls, v):
243
+ return str(v).strip() if v is not None else v
235
244
  d_stratigrafica: Optional[str] = Field(None, max_length=350)
236
245
  d_interpretativa: Optional[str] = Field(None, max_length=350)
237
246
  descrizione: Optional[str] = None
@@ -413,7 +422,7 @@ class InventarioBase(BaseModel):
413
422
  definizione: Optional[str] = Field(None, max_length=20, description="Definition")
414
423
  descrizione: Optional[str] = Field(None, description="Description")
415
424
  area: Optional[str] = Field(None, max_length=20, description="Area")
416
- us: Optional[int] = Field(None, gt=0, description="US number")
425
+ us: Optional[str] = Field(None, description="US number (numeric or alphanumeric)")
417
426
  lavato: Optional[str] = Field(None, max_length=5, description="Washed")
418
427
  nr_cassa: Optional[str] = Field(None, max_length=20, description="Box number")
419
428
  luogo_conservazione: Optional[str] = Field(None, max_length=350, description="Conservation location")
@@ -460,7 +469,7 @@ class InventarioUpdate(BaseModel):
460
469
  definizione: Optional[str] = Field(None, max_length=20)
461
470
  descrizione: Optional[str] = None
462
471
  area: Optional[str] = Field(None, max_length=20)
463
- us: Optional[int] = Field(None, gt=0)
472
+ us: Optional[str] = Field(None, description="US number")
464
473
  lavato: Optional[str] = Field(None, max_length=5)
465
474
  nr_cassa: Optional[str] = Field(None, max_length=20)
466
475
  luogo_conservazione: Optional[str] = Field(None, max_length=350)
@@ -643,17 +643,18 @@ class USDialog(BaseDialog):
643
643
  messagebox.showerror(_("Error"), _("US number is required"))
644
644
  return
645
645
 
646
+ # Validate: must be numeric (keep legacy GUI behavior)
646
647
  try:
647
- us_number = int(us_number)
648
+ int(us_number) # validate only, keep as string for DB
648
649
  except ValueError:
649
650
  messagebox.showerror(_("Error"), _("US number must be an integer"))
650
651
  return
651
652
 
652
- # Prepare data
653
+ # Prepare data (us is VARCHAR(100) in DB — pass as string)
653
654
  us_data = {
654
655
  'sito': sito,
655
656
  'area': self.fields['area'].get().strip() or None,
656
- 'us': us_number,
657
+ 'us': str(us_number).strip(),
657
658
  'd_stratigrafica': self.fields['d_stratigrafica'].get("1.0", tk.END).strip() or None,
658
659
  'd_interpretativa': self.fields['d_interpretativa'].get("1.0", tk.END).strip() or None,
659
660
  'schedatore': self.fields['schedatore'].get().strip() or None,
@@ -543,7 +543,7 @@ class GraphMLParser:
543
543
  .filter(
544
544
  Periodizzazione.sito == us_record.sito,
545
545
  Periodizzazione.area == us_record.area,
546
- Periodizzazione.us == us_record.us,
546
+ Periodizzazione.us == (int(us_record.us) if str(us_record.us).lstrip('-').isdigit() else -1),
547
547
  )
548
548
  .first()
549
549
  )
@@ -97,7 +97,7 @@ class InventarioService:
97
97
  count = session.query(US).filter(
98
98
  US.sito == sito,
99
99
  or_(US.area == area, (US.area.is_(None) & (area == ''))),
100
- US.us == us_number
100
+ US.us == str(us_number) # us is VARCHAR(100)
101
101
  ).count()
102
102
 
103
103
  if count == 0:
@@ -271,7 +271,7 @@ class InventarioService:
271
271
  count = self.db_manager.execute_raw_query(query, {
272
272
  'sito': sito,
273
273
  'area': area,
274
- 'us_number': us_number
274
+ 'us_number': str(us_number) # us is VARCHAR(100)
275
275
  })[0][0]
276
276
 
277
277
  if count == 0:
@@ -60,7 +60,7 @@ class USService:
60
60
  existing_us = session.query(US).filter(
61
61
  US.sito == us_data['sito'],
62
62
  US.area == us_data.get('area', ''),
63
- US.us == us_data['us']
63
+ US.us == str(us_data['us']) # us is VARCHAR(100)
64
64
  ).first()
65
65
 
66
66
  if existing_us:
@@ -237,9 +237,10 @@ class USService:
237
237
  filters = {'sito': site_name, 'area': area}
238
238
  return self.get_all_us(page=page, size=size, filters=filters)
239
239
 
240
- def _get_us_by_site_area_number(self, sito: str, area: str, us_number: int) -> Optional[US]:
241
- """Get US by site, area and number combination"""
242
- # This would need a compound query
240
+ def _get_us_by_site_area_number(self, sito: str, area: str, us_number) -> Optional[US]:
241
+ """Get US by site, area and number combination.
242
+ us_number can be int or str — us column is VARCHAR(100) in PostgreSQL.
243
+ """
243
244
  query = """
244
245
  SELECT * FROM us_table
245
246
  WHERE sito = :sito AND
@@ -252,7 +253,7 @@ class USService:
252
253
  result = session.execute(text(query), {
253
254
  'sito': sito,
254
255
  'area': area,
255
- 'us_number': us_number
256
+ 'us_number': str(us_number) # always str: us column is VARCHAR
256
257
  }).fetchone()
257
258
 
258
259
  if result:
@@ -884,7 +884,7 @@ def create_app():
884
884
  # TAB 1: Informazioni Base
885
885
  'sito': form.sito.data,
886
886
  'area': form.area.data,
887
- 'us': to_int(form.us.data),
887
+ 'us': str(form.us.data).strip() if form.us.data else None,
888
888
  'unita_tipo': form.unita_tipo.data,
889
889
  'tipo_documento': form.tipo_documento.data if form.unita_tipo.data == 'DOC' else None,
890
890
  'anno_scavo': form.anno_scavo.data,
@@ -979,7 +979,7 @@ def create_app():
979
979
  with db_manager.connection.get_session() as session:
980
980
  relationship_sync_service.sync_rapporti_to_relationships_table(
981
981
  sito=us_data['sito'],
982
- us_number=int(us_data['us']),
982
+ us_number=int(str(us_data['us'])) if us_data.get('us') and str(us_data.get('us','')).strip().lstrip('-').isdigit() else 0,
983
983
  rapporti_text=us_data.get('rapporti', ''),
984
984
  session=session
985
985
  )
@@ -1117,7 +1117,7 @@ def create_app():
1117
1117
  # TAB 1: Informazioni Base
1118
1118
  'sito': form.sito.data,
1119
1119
  'area': form.area.data,
1120
- 'us': to_int(form.us.data),
1120
+ 'us': str(form.us.data).strip() if form.us.data else None,
1121
1121
  'unita_tipo': form.unita_tipo.data,
1122
1122
  'tipo_documento': form.tipo_documento.data if form.unita_tipo.data == 'DOC' else None,
1123
1123
  'anno_scavo': form.anno_scavo.data,
@@ -1212,7 +1212,7 @@ def create_app():
1212
1212
  with db_manager.connection.get_session() as session:
1213
1213
  relationship_sync_service.sync_rapporti_to_relationships_table(
1214
1214
  sito=update_data['sito'],
1215
- us_number=int(update_data['us']),
1215
+ us_number=int(str(update_data['us'])) if update_data.get('us') and str(update_data.get('us','')).strip().lstrip('-').isdigit() else 0,
1216
1216
  rapporti_text=update_data.get('rapporti', ''),
1217
1217
  session=session
1218
1218
  )
@@ -1354,7 +1354,7 @@ def create_us():
1354
1354
  existing = db_session.query(US).filter(
1355
1355
  US.sito == data['sito'],
1356
1356
  US.area == data.get('area', ''),
1357
- US.us == int(data['us'])
1357
+ US.us == str(data['us'])
1358
1358
  ).first()
1359
1359
 
1360
1360
  if existing:
@@ -1367,7 +1367,7 @@ def create_us():
1367
1367
  new_us = US()
1368
1368
  new_us.sito = data['sito']
1369
1369
  new_us.area = data.get('area', '')
1370
- new_us.us = int(data['us'])
1370
+ new_us.us = str(data['us'])
1371
1371
  new_us.unita_tipo = 'USM' if data.get('tipo') == 'usm' else 'US'
1372
1372
  new_us.d_stratigrafica = data.get('d_stratigrafica', '')
1373
1373
  new_us.d_interpretativa = data.get('d_interpretativa', '')
@@ -1442,7 +1442,7 @@ def update_us():
1442
1442
  us_record = db_session.query(US).filter(
1443
1443
  US.sito == data['sito'],
1444
1444
  US.area == data.get('area', ''),
1445
- US.us == int(data['us'])
1445
+ US.us == str(data['us'])
1446
1446
  ).first()
1447
1447
 
1448
1448
  if not us_record:
@@ -1520,7 +1520,7 @@ def delete_us():
1520
1520
  us_record = db_session.query(US).filter(
1521
1521
  US.sito == data['sito'],
1522
1522
  US.area == data.get('area', ''),
1523
- US.us == int(data['us'])
1523
+ US.us == str(data['us'])
1524
1524
  ).first()
1525
1525
 
1526
1526
  if not us_record:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyarchinit-mini
3
- Version: 2.0.1
3
+ Version: 2.0.2
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
@@ -132,8 +125,6 @@ pyarchinit_mini/mcp_server/tools/build_3d_tool.py
132
125
  pyarchinit_mini/mcp_server/tools/chatgpt_fetch_tool.py
133
126
  pyarchinit_mini/mcp_server/tools/chatgpt_search_tool.py
134
127
  pyarchinit_mini/mcp_server/tools/configure_em_nodes_tool.py
135
- pyarchinit_mini/mcp_server/tools/create_database_tool.py
136
- pyarchinit_mini/mcp_server/tools/create_harris_matrix_tool.py
137
128
  pyarchinit_mini/mcp_server/tools/data_import_parser_tool.py
138
129
  pyarchinit_mini/mcp_server/tools/data_management_tool.py
139
130
  pyarchinit_mini/mcp_server/tools/database_manager_tool.py
@@ -185,10 +176,6 @@ pyarchinit_mini/scripts/__init__.py
185
176
  pyarchinit_mini/scripts/auto_translate.py
186
177
  pyarchinit_mini/scripts/configure_claude_desktop.py
187
178
  pyarchinit_mini/scripts/create_admin_user.py
188
- pyarchinit_mini/scripts/create_correct_stratigraphy_sample.py
189
- pyarchinit_mini/scripts/create_italian_sample_database.py
190
- pyarchinit_mini/scripts/create_sample_for_webapp.py
191
- pyarchinit_mini/scripts/create_sample_with_50_us.py
192
179
  pyarchinit_mini/scripts/generate_test_3d_model.py
193
180
  pyarchinit_mini/scripts/load_italian_as_main.py
194
181
  pyarchinit_mini/scripts/load_sample_as_main.py
@@ -227,10 +214,7 @@ pyarchinit_mini/stratigraph/sync_orchestrator.py
227
214
  pyarchinit_mini/stratigraph/sync_queue.py
228
215
  pyarchinit_mini/stratigraph/sync_state_machine.py
229
216
  pyarchinit_mini/stratigraph/uuid_manager.py
230
- pyarchinit_mini/translations/messages.pot
231
- pyarchinit_mini/translations/en/LC_MESSAGES/messages.mo
232
217
  pyarchinit_mini/translations/en/LC_MESSAGES/messages.po
233
- pyarchinit_mini/translations/it/LC_MESSAGES/messages.mo
234
218
  pyarchinit_mini/translations/it/LC_MESSAGES/messages.po
235
219
  pyarchinit_mini/utils/__init__.py
236
220
  pyarchinit_mini/utils/auth.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pyarchinit-mini"
7
- version = "2.0.1"
7
+ version = "2.0.2"
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"}
@@ -1,118 +0,0 @@
1
- """
2
- Create Database Tool
3
-
4
- Creates empty PyArchInit-Mini databases with full schema.
5
- Supports both SQLite and PostgreSQL databases.
6
- """
7
-
8
- import logging
9
- from typing import Dict, Any
10
- from .base_tool import BaseTool, ToolDescription
11
-
12
- logger = logging.getLogger(__name__)
13
-
14
-
15
- class CreateDatabaseTool(BaseTool):
16
- """Create Database - Creates empty PyArchInit-Mini database with schema"""
17
-
18
- def to_tool_description(self) -> ToolDescription:
19
- return ToolDescription(
20
- name="create_database",
21
- description=(
22
- "Create an empty PyArchInit-Mini database with full schema. "
23
- "Supports SQLite and PostgreSQL. Creates all necessary tables "
24
- "for sites, stratigraphic units, inventories, relationships, etc."
25
- ),
26
- input_schema={
27
- "type": "object",
28
- "properties": {
29
- "db_type": {
30
- "type": "string",
31
- "enum": ["sqlite", "postgresql"],
32
- "description": "Database type: sqlite or postgresql"
33
- },
34
- "db_path": {
35
- "type": "string",
36
- "description": "For SQLite: file path (e.g., 'data/new_project.db'). For PostgreSQL: database name"
37
- },
38
- "overwrite": {
39
- "type": "boolean",
40
- "description": "If true, overwrite existing database. Default: false",
41
- "default": False
42
- },
43
- "postgres_config": {
44
- "type": "object",
45
- "description": "PostgreSQL connection configuration (required for postgresql)",
46
- "properties": {
47
- "host": {"type": "string", "description": "PostgreSQL host", "default": "localhost"},
48
- "port": {"type": "integer", "description": "PostgreSQL port", "default": 5432},
49
- "user": {"type": "string", "description": "PostgreSQL user"},
50
- "password": {"type": "string", "description": "PostgreSQL password"},
51
- }
52
- }
53
- },
54
- "required": ["db_type", "db_path"],
55
- },
56
- )
57
-
58
- async def execute(self, arguments: Dict[str, Any]) -> Dict[str, Any]:
59
- """Execute database creation"""
60
- try:
61
- db_type = arguments.get("db_type")
62
- db_path = arguments.get("db_path")
63
- overwrite = arguments.get("overwrite", False)
64
- postgres_config = arguments.get("postgres_config", {})
65
-
66
- if not db_type or not db_path:
67
- return self._format_error("Both db_type and db_path are required")
68
-
69
- logger.info(f"Creating {db_type} database: {db_path}")
70
-
71
- if db_type == "sqlite":
72
- result = self._create_sqlite(db_path, overwrite)
73
- elif db_type == "postgresql":
74
- result = self._create_postgresql(db_path, postgres_config, overwrite)
75
- else:
76
- return self._format_error(f"Invalid db_type: {db_type}")
77
-
78
- if result.get('success'):
79
- return self._format_success(result, f"Successfully created {db_type} database with {result.get('tables_created', 0)} tables")
80
- else:
81
- return self._format_error(result.get('message', 'Database creation failed'))
82
-
83
- except Exception as e:
84
- logger.error(f"Database creation error: {str(e)}", exc_info=True)
85
- return self._format_error(f"Failed to create database: {str(e)}")
86
-
87
- def _create_sqlite(self, db_path: str, overwrite: bool) -> Dict[str, Any]:
88
- """Create SQLite database"""
89
- from pyarchinit_mini.database.database_creator import create_sqlite_database
90
- try:
91
- return create_sqlite_database(db_path, overwrite=overwrite)
92
- except FileExistsError as e:
93
- return {'success': False, 'message': f'Database already exists: {db_path}. Set overwrite=true to replace it.'}
94
- except Exception as e:
95
- return {'success': False, 'message': str(e)}
96
-
97
- def _create_postgresql(self, db_name: str, config: Dict[str, Any], overwrite: bool) -> Dict[str, Any]:
98
- """Create PostgreSQL database"""
99
- from pyarchinit_mini.database.database_creator import create_postgresql_database
100
- try:
101
- host = config.get('host', 'localhost')
102
- port = config.get('port', 5432)
103
- user = config.get('user')
104
- password = config.get('password')
105
-
106
- if not user:
107
- return {'success': False, 'message': 'PostgreSQL user is required in postgres_config'}
108
-
109
- return create_postgresql_database(
110
- db_name=db_name,
111
- host=host,
112
- port=port,
113
- user=user,
114
- password=password,
115
- overwrite=overwrite
116
- )
117
- except Exception as e:
118
- return {'success': False, 'message': str(e)}