pyarchinit-mini 2.7.1__tar.gz → 2.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/CHANGELOG.md +26 -0
- {pyarchinit_mini-2.7.1/pyarchinit_mini.egg-info → pyarchinit_mini-2.8.0}/PKG-INFO +1 -1
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/__init__.py +1 -1
- pyarchinit_mini-2.8.0/pyarchinit_mini/em_palette/__init__.py +11 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/em_palette/loader.py +171 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/em_palette/styles.py +27 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphml_converter/templates/EM_palette.graphml +3246 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/graph_to_db.py +152 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/graphml_reader.py +72 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/graphml_writer.py +89 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/heriverse_parser.py +87 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/rapporti_codec.py +164 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/s3d_projector.py +230 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/graphproj/s3d_to_cytoscape.py +103 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/swimlane_state.py +84 -1
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/app.py +5 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/harris_creator_routes.py +162 -37
- pyarchinit_mini-2.8.0/pyarchinit_mini/web_interface/matrix_tools_routes.py +26 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_creator/editor.html +79 -0
- pyarchinit_mini-2.8.0/pyarchinit_mini/web_interface/templates/matrix_tools/index.html +80 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/list.html +8 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0/pyarchinit_mini.egg-info}/PKG-INFO +1 -1
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/SOURCES.txt +27 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyproject.toml +1 -1
- pyarchinit_mini-2.8.0/tests/integration/test_adarte_regression.py +61 -0
- pyarchinit_mini-2.8.0/tests/integration/test_api_export_graphml.py +59 -0
- pyarchinit_mini-2.8.0/tests/integration/test_api_export_heriverse.py +87 -0
- pyarchinit_mini-2.8.0/tests/integration/test_api_import_graphml.py +104 -0
- pyarchinit_mini-2.8.0/tests/integration/test_api_import_json.py +85 -0
- pyarchinit_mini-2.8.0/tests/integration/test_api_load_site.py +81 -0
- pyarchinit_mini-2.8.0/tests/integration/test_feature_flag_pipelines.py +67 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_load.py +8 -0
- pyarchinit_mini-2.8.0/tests/integration/test_roundtrip.py +85 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_swimlane_group_by.py +11 -1
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_yed_export_route.py +36 -23
- pyarchinit_mini-2.8.0/tests/unit/test_graph_to_db.py +117 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_state_load.py +8 -0
- pyarchinit_mini-2.8.0/tests/unit/test_heriverse_parser.py +93 -0
- pyarchinit_mini-2.8.0/tests/unit/test_palette_loader.py +59 -0
- pyarchinit_mini-2.8.0/tests/unit/test_palette_styles.py +20 -0
- pyarchinit_mini-2.8.0/tests/unit/test_rapporti_codec.py +104 -0
- pyarchinit_mini-2.8.0/tests/unit/test_s3d_projector.py +180 -0
- pyarchinit_mini-2.8.0/tests/unit/test_s3d_to_cytoscape.py +75 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_writer_extended_matrix.py +4 -1
- pyarchinit_mini-2.7.1/pyarchinit_mini/graphml_converter/templates/EM_palette.graphml +0 -658
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/MANIFEST.in +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/README.md +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/babel.cfg +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/media_viewer_demo.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_mini 2.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_mini.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_mini_sample.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial_backup_20251030_093228.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial_clean.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_tutorial_video.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/data/pyarchinit_v18_demo.db +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/logo/logo_pyarchinit-mini.png +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/apply.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/plan.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/ai_matrix/vision_extractor.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/auth.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/dependencies.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/graphml.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/inventario.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/schemas.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/site.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/sync.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/api/us.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/export_import_cli.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/extended_matrix_import.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/graphml_cli.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/harris_import.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/harris_template.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/migrate.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/migrate_vocab.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/pyarchinit_import_export_cli.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli/sync_cli.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli_interface/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/cli_interface/cli_app.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/connection_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/em_node_config_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/config/em_node_types.yaml +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/concurrency_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/connection.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/database_creator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/add_file_path.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/add_i18n_columns.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/add_tipo_documento.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migration_scripts/change_us_area_to_text_simple.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_node_uuid_backfill.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_node_uuid_schema.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_period_table_schema.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/_2026_05_vocab_alignment.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/migrations/backup.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/postgres_installer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/schemas.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/database/utils.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/analytics_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/assets/logo.png +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/dialogs.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/excel_import_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/export_import_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/graphml_export_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/gui_app.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/harris_matrix_editor.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/i18n.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/icons.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/inventario_dialog_extended.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/main_window.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/media_manager_advanced.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/postgres_installer_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/pottery_dialog_extended.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/pottery_panel.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/pyarchinit_import_export_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/thesaurus_dialog.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/desktop_gui/us_dialog_extended.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/inventario_dto.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/site_dto.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/dto/us_dto.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/converter.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/dot_parser.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/em_palette.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/graphml_builder.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/graphml_exporter.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/pure_networkx_exporter.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/svg_resources.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/x11_colors.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_converter/yed_template.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/reader.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/writer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/yed_importer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/yed_keys.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphml_io/yed_writer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/auto_regen.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/edge_registry.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/filesystem.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/ingest_plan.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/ingestor.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/paradata_store.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/graphproj/projector.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/enhanced_visualizer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/matrix_generator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/matrix_visualizer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_matrix/pyarchinit_visualizer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/compound_layout.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/harris_layout.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/period_sync_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/harris_swimlane/row_provider.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/flask_babel_config.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/lang_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/i18n/locale_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/__main__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/blender_client.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/config.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/event_stream.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/graphml_parser.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/http_server.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/period_filter.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/base_prompt.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/period_visualization_prompt.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/stratigraphic_model_prompt.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/prompts/us_description_prompt.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/proxy_generator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/base_resource.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/graphml_resource.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/periods_resource.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/relationships_resource.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/sites_resource.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/resources/us_resource.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/server.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/base_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/batch_insert_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/build_3d_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/chatgpt_fetch_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/chatgpt_search_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/configure_em_nodes_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/create_database_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/create_harris_matrix_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/data_import_parser_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/data_management_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/database_manager_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/delete_data_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/export_harris_matrix_graphml_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/export_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/filter_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/generate_report_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/get_schema_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/import_excel_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/insert_data_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/manage_services_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/material_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/media_management_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/position_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/pyarchinit_sync_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/resolve_conflicts_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/service_management_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/thesaurus_management_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/update_data_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/upload_file_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_relationship_format_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_relationship_integrity_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_stratigraphic_relationships_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/mcp_server/tools/validate_stratigraphy_tool.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/media_manager/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/media_manager/media_handler.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/ai_chat.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/app_setting.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/base.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/datazione.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/extended_matrix.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/harris_matrix.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/inventario_materiali.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/media.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/pottery.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/site.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/thesaurus.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/tma.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/us.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/models/user.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pdf_generator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pdf_generator_backup.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pyarchinit_finds_template.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/pyarchinit_inventory_template.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/pdf_export/usm_implementation.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/s3d_integration/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/s3d_integration/model_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/s3d_integration/s3d_converter.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/auto_translate.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/configure_claude_desktop.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_admin_user.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_correct_stratigraphy_sample.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_italian_sample_database.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_sample_for_webapp.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/create_sample_with_50_us.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/generate_test_3d_model.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/load_italian_as_main.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/load_sample_as_main.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/migrate_relationships.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/populate_sample_data.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/populate_simple_data.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/setup_auth.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/setup_user_env.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/test_cascade_delete.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/test_relationship_fix.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/update_sample_relationships.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/update_urls_and_versions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/scripts/verify_docs.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/ai_assistant_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/ai_chat_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/analytics_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/app_setting_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/backup_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/command_parser.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/datazione_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/export_import_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/extended_matrix_excel_parser.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/import_export_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/inventario_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/mcp_executor.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/media_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/periodizzazione_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/pottery_dto.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/pottery_pdf_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/pottery_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/relationship_sync_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/search_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/site_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/thesaurus_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/tma_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/us_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/services/user_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/bundle_creator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/bundle_manifest.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/bundle_validator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/connectivity_monitor.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/sync_orchestrator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/sync_queue.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/sync_state_machine.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/stratigraph/uuid_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/en/LC_MESSAGES/messages.mo +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/en/LC_MESSAGES/messages.po +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/it/LC_MESSAGES/messages.mo +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/it/LC_MESSAGES/messages.po +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/translations/messages.pot +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/auth.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/relationship_validator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/stratigraphic_validator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/tma_label_generator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/utils/validators.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/i18n.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/loader.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/provider.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/translations/vocab_en.json +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/translations/vocab_it.json +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/vocab/types.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/auth_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/data/paradata/domus-pompeiana/stratigraphy.graphml +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/data/paradata/metro-c-amba-aradam/stratigraphy.graphml +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/em_node_config_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/excel_import_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/graph_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/matrix_import_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/paradata_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/paradata_ui_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/pottery_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/pyarchinit_import_export_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/s3d_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/socketio_events.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/css/style.css +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/favicon.ico +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/logo.png +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/no-image.png +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/images/pyarchinit-mini-logo.png +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/OrbitControls.js +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/harris_creator_editor.js +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/stratigraphic_layout.js +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/three-d-viewer.js +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/three.min.js +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/js/universal_search.js +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.bin +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.gltf +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.mtl +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/static/uploads/3d_models/Sito Archeologico di Esempio/site/stratigraphy_test.obj +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/3d_builder/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/3d_viewer/viewer.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/backups.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database_connect.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database_info.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/database_upload.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/admin/settings_ai.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/ai/assistant.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/analytics/dashboard.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/auth/login.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/auth/users.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/base.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/blender_viewer.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/components/language_switcher.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/dashboard.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/datazioni/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/docs/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/em_node_config/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/excel_import/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/export/export_import.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/graph_import_preview.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/graph_import_result.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_creator/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/graphml_export.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/large_graph_message.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/stratigraph_viewer.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/view.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/view_graphviz.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/harris_matrix/viewer_3d_integrated.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/inventario/form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/inventario/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/matrix_import/preview.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/matrix_import/rejected.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/matrix_import/upload.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/media/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/media/upload.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/messaging/contacts.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/operators/directory.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/paradata/edit.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/paradata/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/paradata/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pdf/pottery_sheet.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/periodizzazione/form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/periodizzazione/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/periodizzazione/periods.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/detail.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/import_form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pottery/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/pyarchinit_import_export/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/search/results.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/detail.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/sites/map.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/stats/targeted.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/thesaurus/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/tma/form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/tma/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/us/form.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/us/list.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/validation/report.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/yed_import/index.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/yed_import/preview.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/templates/yed_import/result.html +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/test_prova_extended_matrix.graphml +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/three_d_builder_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.graphml +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/vocab_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_heriverse.json +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.graphml +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Scavo archeologico_stratigraphy.json +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/web_interface/static/uploads/graphml/Sito Archeologico di Esempio_stratigraphy.json +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini/web_interface/yed_import_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/dependency_links.txt +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/entry_points.txt +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/not-zip-safe +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/requires.txt +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/pyarchinit_mini.egg-info/top_level.txt +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/requirements.txt +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/setup.cfg +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/setup.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/conftest.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/e2e/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/e2e/test_web_vocab_full_flow.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_baseline_graphml.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_harris_swimlane_synthetic.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_synthetic_db.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/_generate_yed_test_files.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/fixtures/build_legacy_with_pottery.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_admin_ai_settings_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_admin_backup_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_auto_regen_on_save.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_full_sync_flow.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_graph_import_flow.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_graph_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_matrix_post_cutover.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_matrix_visual_parity.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_create_row.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_save.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_harris_swimlane_routes_session_missing.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_lang_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_apply_route.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_rejected_route.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_site_widget.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_matrix_import_upload_route.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_migrate_vocab_cli.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_paradata_routes_authors.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_paradata_routes_other_types.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_paradata_ui.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_completion.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_excel_roundtrip.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_filters_id_number_anno.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_legacy_upgrade.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_list_media_thumbs.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_pottery_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_roundtrip_extmatrix.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_spec2_coverage_gaps.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_vocab_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_yed_import_routes.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/integration/test_yed_writer_parity.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/__init__.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_apply.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_extractor_parse.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_extractor_providers.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ai_matrix_plan_serialization.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_app_setting_model.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_app_setting_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_auto_regen.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_backup_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_bundle.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_concurrency_columns.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_concurrency_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_connectivity_monitor.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_database_utils.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_deprecated_writers_shim.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_em_palette_vocab_backed.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphml_io_reader.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphml_io_writer.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_edge_registry.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_filesystem.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_ingestor_apply.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_ingestor_preview.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_graphproj_projector.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_layout.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_compound_layout.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_period_sync.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_row_provider.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_harris_swimlane_state_save.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_ingest_plan.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_inventario_schema.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_migrations_backup.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_migrations_idempotent.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_optimistic_locking.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_paradata_store_authors.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_paradata_store_basic.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_paradata_store_other_types.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_pottery_dto.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_pottery_model.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_pottery_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_s3d_converter_vocab_backed.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_site_service.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_api.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_cli.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_orchestrator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_queue.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_sync_state_machine.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_us_dto_unita_tipo_validator.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_us_schema.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_uuid_manager.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_bootstrap_failures.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_exceptions.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_i18n.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_loader.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_provider.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_vocab_types.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_importer_parse.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_importer_plan.py +0 -0
- {pyarchinit_mini-2.7.1 → pyarchinit_mini-2.8.0}/tests/unit/test_yed_writer.py +0 -0
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
## 2.8.0 — 2026-05-19
|
|
2
|
+
|
|
3
|
+
### Added — EM Palette + Multi-Format Swimlane Round-Trip
|
|
4
|
+
- **EM palette is now the canonical style source** for swimlane rendering, GraphML export, and Heriverse/ATON JSON export. Palette loaded from `pyarchinit_mini/graphml_converter/templates/EM_palette.graphml` (3246-line canonical version) with `PaletteLoader` cache + SIGHUP hot-reload + fallback to minimal hardcoded defaults if missing.
|
|
5
|
+
- **`SWIMLANE_PIPELINE=s3dgraphy|legacy` feature flag** (default `s3dgraphy`) with automatic legacy fallback on exception. Set to `legacy` to roll back instantly.
|
|
6
|
+
- **New endpoints**:
|
|
7
|
+
- `GET /harris-creator/api/export/<site>/heriverse-json` — Heriverse/ATON JSON (single format).
|
|
8
|
+
- `POST /harris-creator/api/import/<site>/graphml` — yEd GraphML import that writes 4-tuple rapporti and inverses on BOTH involved US.
|
|
9
|
+
- `POST /harris-creator/api/import/<site>/json` — Heriverse JSON import (same write path).
|
|
10
|
+
- **Standalone `/matrix-tools` page** for import/export operations (site picker + format radio + file uploader).
|
|
11
|
+
- **Per-site export buttons** (GraphML, Heriverse) in sites list.
|
|
12
|
+
- **Swimlane toolbar**: grouping dropdown (none/area/settore/quadrato/attività/strutture), export menu, import file picker.
|
|
13
|
+
- **Bilingual rapporti parser**: reads both legacy 2-tuple `[rel, us]` and new 4-tuple `[rel, us, area, sito]`; always writes 4-tuple. Italian aliases include extras (`riempito da`, `si lega a`, `gli si appoggia`) absent from `vocab_it.json`.
|
|
14
|
+
- **Automatic stub US creation** when import edges reference missing rows; counted in result.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Swimlane rows are now always periods (with "Periodo 1" fallback when `period_table` is empty or a US has no period match); the old `group_by=period_phase|struttura|...` registry collapses to a sub-grouping selector within rows. Legacy `group_by` values still work via the `legacy` pipeline.
|
|
18
|
+
- `/api/load/<site>` response includes a `style` dict per node and edge, derived from the EM palette (shape, fill color, border color, line style, arrow heads).
|
|
19
|
+
|
|
20
|
+
### Internals
|
|
21
|
+
- New modules: `pyarchinit_mini/em_palette/` (loader, styles), `pyarchinit_mini/graphproj/` (rapporti_codec, s3d_projector, s3d_to_cytoscape, graph_to_db, heriverse_parser, graphml_reader, graphml_writer).
|
|
22
|
+
- New tests: 13 test files across `tests/unit/` and `tests/integration/`, plus a regression fixture (`tests/fixtures/adarte_regression_dump.sql`) anonymized from `Rimini_RN_2020_21_Museo_Fellini` (100 US, 516 edges, 8 distinct canonical labels validated end-to-end).
|
|
23
|
+
|
|
24
|
+
### Migration notes
|
|
25
|
+
- The `patch_pyarchinit_post_upgrade.py` post-upgrade script's Section 27 (`swimlane.row_provider_schema`) and Section 28 (`swimlane.build_edges_literal`) still apply, but their fixes are now native to the s3dgraphy pipeline. After this upgrade, Sections 27/28 are no-ops if the legacy file no longer has the markers.
|
|
26
|
+
|
|
1
27
|
## [2.7.1] - 2026-05-19
|
|
2
28
|
|
|
3
29
|
### Fixed (IT)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyarchinit-mini
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.0
|
|
4
4
|
Summary: Lightweight archaeological data management system with REST API, Web UI, Desktop GUI, CLI, multi-user authentication, real-time collaboration, analytics dashboard, PyArchInit import/export, Heriverse/ATON export integration, and 3D CRUD viewer
|
|
5
5
|
Home-page: https://github.com/enzococca/pyarchinit-mini
|
|
6
6
|
Author: PyArchInit Team
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""EM (Extended Matrix) palette: style source of truth for US nodes and stratigraphic edges."""
|
|
2
|
+
from .loader import PaletteLoader, get_palette, install_sighup_reload
|
|
3
|
+
from .styles import NodeStyle, EdgeStyle
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"PaletteLoader",
|
|
7
|
+
"get_palette",
|
|
8
|
+
"install_sighup_reload",
|
|
9
|
+
"NodeStyle",
|
|
10
|
+
"EdgeStyle",
|
|
11
|
+
]
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"""EM palette GraphML parser with caching and hot-reload.
|
|
2
|
+
|
|
3
|
+
The palette is a yEd-flavoured GraphML document where each <node> represents
|
|
4
|
+
one canonical US type (USM, USD, USV, SF, VSF, TSU, USVn) and each <edge>
|
|
5
|
+
represents one canonical stratigraphic relation (overlies, cuts, fills, abuts,
|
|
6
|
+
has_same_time, is_after, is_before, is_bonded_to).
|
|
7
|
+
|
|
8
|
+
Unit type and canonical relation are identified by the text content of
|
|
9
|
+
<y:NodeLabel> and <y:EdgeLabel> respectively.
|
|
10
|
+
"""
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import logging
|
|
14
|
+
import signal
|
|
15
|
+
import threading
|
|
16
|
+
import xml.etree.ElementTree as ET
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
from typing import Dict, Optional
|
|
19
|
+
|
|
20
|
+
from .styles import NodeStyle, EdgeStyle
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
logger = logging.getLogger(__name__)
|
|
24
|
+
|
|
25
|
+
NS = {
|
|
26
|
+
"g": "http://graphml.graphdrawing.org/xmlns",
|
|
27
|
+
"y": "http://www.yworks.com/xml/graphml",
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
DEFAULT_PALETTE_PATH = (
|
|
31
|
+
Path(__file__).parent.parent
|
|
32
|
+
/ "graphml_converter" / "templates" / "EM_palette.graphml"
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class PaletteLoader:
|
|
37
|
+
def __init__(
|
|
38
|
+
self,
|
|
39
|
+
palette_path: Optional[Path] = None,
|
|
40
|
+
*,
|
|
41
|
+
allow_fallback: bool = True,
|
|
42
|
+
) -> None:
|
|
43
|
+
self.palette_path = palette_path or DEFAULT_PALETTE_PATH
|
|
44
|
+
self.allow_fallback = allow_fallback
|
|
45
|
+
self._node_cache: Dict[str, NodeStyle] = {}
|
|
46
|
+
self._edge_cache: Dict[str, EdgeStyle] = {}
|
|
47
|
+
self._loaded = False
|
|
48
|
+
self._lock = threading.Lock()
|
|
49
|
+
|
|
50
|
+
def _load(self) -> None:
|
|
51
|
+
with self._lock:
|
|
52
|
+
if self._loaded:
|
|
53
|
+
return
|
|
54
|
+
try:
|
|
55
|
+
tree = ET.parse(self.palette_path)
|
|
56
|
+
except (FileNotFoundError, ET.ParseError) as exc:
|
|
57
|
+
if self.allow_fallback:
|
|
58
|
+
logger.warning(
|
|
59
|
+
"Palette load failed (%s); using hardcoded fallbacks.", exc,
|
|
60
|
+
)
|
|
61
|
+
self._loaded = True
|
|
62
|
+
return
|
|
63
|
+
raise
|
|
64
|
+
root = tree.getroot()
|
|
65
|
+
for node_el in root.iter(f"{{{NS['g']}}}node"):
|
|
66
|
+
style = self._parse_node(node_el)
|
|
67
|
+
if style is not None:
|
|
68
|
+
self._node_cache[style.unit_type] = style
|
|
69
|
+
for edge_el in root.iter(f"{{{NS['g']}}}edge"):
|
|
70
|
+
style = self._parse_edge(edge_el)
|
|
71
|
+
if style is not None:
|
|
72
|
+
self._edge_cache[style.canonical_name] = style
|
|
73
|
+
self._loaded = True
|
|
74
|
+
|
|
75
|
+
def _parse_node(self, node_el: ET.Element) -> Optional[NodeStyle]:
|
|
76
|
+
shape_node = node_el.find(f".//{{{NS['y']}}}ShapeNode")
|
|
77
|
+
if shape_node is None:
|
|
78
|
+
return None
|
|
79
|
+
label = shape_node.find(f".//{{{NS['y']}}}NodeLabel")
|
|
80
|
+
if label is None or not (label.text and label.text.strip()):
|
|
81
|
+
return None
|
|
82
|
+
unit_type = label.text.strip()
|
|
83
|
+
shape_el = shape_node.find(f"{{{NS['y']}}}Shape")
|
|
84
|
+
shape = shape_el.attrib.get("type", "rectangle") if shape_el is not None else "rectangle"
|
|
85
|
+
fill_el = shape_node.find(f"{{{NS['y']}}}Fill")
|
|
86
|
+
fill_color = fill_el.attrib.get("color", "#FFFFFF") if fill_el is not None else "#FFFFFF"
|
|
87
|
+
border_el = shape_node.find(f"{{{NS['y']}}}BorderStyle")
|
|
88
|
+
if border_el is not None:
|
|
89
|
+
border_color = border_el.attrib.get("color", "#000000")
|
|
90
|
+
border_width = float(border_el.attrib.get("width", "1.0"))
|
|
91
|
+
border_style = border_el.attrib.get("type", "line")
|
|
92
|
+
else:
|
|
93
|
+
border_color = "#000000"
|
|
94
|
+
border_width = 1.0
|
|
95
|
+
border_style = "line"
|
|
96
|
+
font_color = label.attrib.get("textColor", "#000000")
|
|
97
|
+
font_size = int(label.attrib.get("fontSize", "12"))
|
|
98
|
+
return NodeStyle(
|
|
99
|
+
unit_type=unit_type,
|
|
100
|
+
shape=shape,
|
|
101
|
+
fill_color=fill_color,
|
|
102
|
+
border_color=border_color,
|
|
103
|
+
border_width=border_width,
|
|
104
|
+
border_style=border_style,
|
|
105
|
+
font_color=font_color,
|
|
106
|
+
font_size=font_size,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
def _parse_edge(self, edge_el: ET.Element) -> Optional[EdgeStyle]:
|
|
110
|
+
line_el = edge_el.find(f".//{{{NS['y']}}}LineStyle")
|
|
111
|
+
label_el = edge_el.find(f".//{{{NS['y']}}}EdgeLabel")
|
|
112
|
+
arrow_el = edge_el.find(f".//{{{NS['y']}}}Arrows")
|
|
113
|
+
if label_el is None or not (label_el.text and label_el.text.strip()):
|
|
114
|
+
return None
|
|
115
|
+
canonical = label_el.text.strip().lower().replace(" ", "_")
|
|
116
|
+
if not canonical:
|
|
117
|
+
return None
|
|
118
|
+
if line_el is not None:
|
|
119
|
+
line_color = line_el.attrib.get("color", "#000000")
|
|
120
|
+
line_width = float(line_el.attrib.get("width", "1.0"))
|
|
121
|
+
line_style = line_el.attrib.get("type", "line")
|
|
122
|
+
else:
|
|
123
|
+
line_color = "#000000"
|
|
124
|
+
line_width = 1.0
|
|
125
|
+
line_style = "line"
|
|
126
|
+
if arrow_el is not None:
|
|
127
|
+
arrow_target = arrow_el.attrib.get("target", "standard")
|
|
128
|
+
arrow_source = arrow_el.attrib.get("source", "none")
|
|
129
|
+
else:
|
|
130
|
+
arrow_target = "standard"
|
|
131
|
+
arrow_source = "none"
|
|
132
|
+
return EdgeStyle(
|
|
133
|
+
canonical_name=canonical,
|
|
134
|
+
line_color=line_color,
|
|
135
|
+
line_width=line_width,
|
|
136
|
+
line_style=line_style,
|
|
137
|
+
arrow_target=arrow_target,
|
|
138
|
+
arrow_source=arrow_source,
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
def get_node_style(self, unit_type: str) -> NodeStyle:
|
|
142
|
+
self._load()
|
|
143
|
+
return self._node_cache.get(unit_type, NodeStyle(unit_type=unit_type))
|
|
144
|
+
|
|
145
|
+
def get_edge_style(self, canonical_name: str) -> EdgeStyle:
|
|
146
|
+
self._load()
|
|
147
|
+
return self._edge_cache.get(canonical_name, EdgeStyle(canonical_name=canonical_name))
|
|
148
|
+
|
|
149
|
+
def reload(self) -> None:
|
|
150
|
+
with self._lock:
|
|
151
|
+
self._node_cache.clear()
|
|
152
|
+
self._edge_cache.clear()
|
|
153
|
+
self._loaded = False
|
|
154
|
+
self._load()
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
_singleton: Optional[PaletteLoader] = None
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def get_palette() -> PaletteLoader:
|
|
161
|
+
global _singleton
|
|
162
|
+
if _singleton is None:
|
|
163
|
+
_singleton = PaletteLoader()
|
|
164
|
+
return _singleton
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def install_sighup_reload() -> None:
|
|
168
|
+
def _handler(_signum, _frame):
|
|
169
|
+
logger.info("SIGHUP received: reloading EM palette")
|
|
170
|
+
get_palette().reload()
|
|
171
|
+
signal.signal(signal.SIGHUP, _handler)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""Dataclasses for palette-derived rendering styles."""
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass(frozen=True)
|
|
8
|
+
class NodeStyle:
|
|
9
|
+
unit_type: str
|
|
10
|
+
shape: str = "rectangle" # rectangle, ellipse, roundrectangle, parallelogram, hexagon, octagon
|
|
11
|
+
fill_color: str = "#FFFFFF"
|
|
12
|
+
border_color: str = "#000000"
|
|
13
|
+
border_width: float = 1.0
|
|
14
|
+
border_style: str = "line" # line, dashed, dotted
|
|
15
|
+
font_color: str = "#000000"
|
|
16
|
+
font_size: int = 12
|
|
17
|
+
label_placement: str = "center"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass(frozen=True)
|
|
21
|
+
class EdgeStyle:
|
|
22
|
+
canonical_name: str
|
|
23
|
+
line_color: str = "#000000"
|
|
24
|
+
line_width: float = 1.0
|
|
25
|
+
line_style: str = "line" # line, dashed, dotted
|
|
26
|
+
arrow_source: str = "none"
|
|
27
|
+
arrow_target: str = "standard"
|