s3dgraphy 1.6.0.dev39__tar.gz → 1.6.0.dev40__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.
- {s3dgraphy-1.6.0.dev39/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev40}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/pyproject.toml +1 -1
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/__init__.py +1 -1
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +63 -46
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/node_registry.py +5 -2
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/graph.py +199 -171
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/base_importer.py +21 -2
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/pyarchinit_importer.py +20 -7
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/indices.py +33 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/temporal/inference_engine.py +21 -14
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy.egg-info/SOURCES.txt +4 -0
- s3dgraphy-1.6.0.dev40/tests/test_cycle_message_is_cheap.py +31 -0
- s3dgraphy-1.6.0.dev40/tests/test_graph_helpers_indexed.py +91 -0
- s3dgraphy-1.6.0.dev40/tests/test_graph_indices_alive.py +235 -0
- s3dgraphy-1.6.0.dev40/tests/test_issue27_small_points.py +111 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_one_spelling_writers.py +7 -4
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/README.md +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/datamodel_translations.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em.ttl +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_qualia_types.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_state_symbols.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/node_registry.generated.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/JSON_config/version_for_cases.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/acquisition/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/acquisition/acquire.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/acquisition/descriptor.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/acquisition/mapping.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/ai_validation.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/annotation/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/annotation/paradata.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/annotation/reading.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/api.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/classification.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/container.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/contract/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/contract/connector.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/contract/consumer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/contract/core.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/contract/reference.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/crdt.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dissemination.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/capture.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/corpus.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/devices.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/ingest.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/dtc/residency.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/edges/connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/editorial.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/html_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/json_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/rdf_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/aton.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/gltf.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/migrate.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/proxy.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/store_backed.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/geometry/wkt.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/iiif.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/csv_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/emjson_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/import_graphml.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/rdf_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/sheet_header.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/source_text.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/importer/xml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/labels.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/language.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/authoring.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/narrative/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/narrative/bake.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/narrative/generation.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/narrative/query.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/narrative/registry.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/narrative/site_story.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/dtc_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/group_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/project_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/resource_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/study_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/nodes/translation_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/ownership.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/photogrammetry/delta.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/project_tree.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/publication.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/addresses.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/files.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/locate.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/tiles3tz.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/resources/versions.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/rights.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/shelf/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/shelf/core.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/stamp/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/stamp/absorb.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/stamp/emit.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/stamp/hints.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/stamp/identity.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/study.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/deliverable_report.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/tools/wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/translation.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/zero_hour.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy.egg-info/requires.txt +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_acquisition_fs.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_add_resource.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_ai_validation_nodes.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_alternative_labels.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_api_surface.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_asset_dtc_protocol.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_asset_versions.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_aton_shapes.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_attach_only.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_authority_projection.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_authority_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_blend_locator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_canonical_document_rename.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_canvas_metadata_import.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_capture_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_capture_rdf_class.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_chronology_on_request.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_coating_unit.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_container.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_container_layouts.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_containment_tpq.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_contract.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_contract_consumer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_convert_command.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_crdt.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_datamodel_fingerprint.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_deterministic_ids.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_em_sourcelist.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_file_set_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_graphml_without_a_database.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_image_set_texturing.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_not_georeferenced.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_one_act_n_outputs.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev29_ttl_round_trip.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dev30_decisions.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_devices.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dissemination_tombstones.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dove_sta_il_testo.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dtc_corpus.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dtc_ingest.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dtc_neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dtc_projection.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_dtc_residency.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_edge_outside_graph.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_edge_ui_phrases.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_editorial.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_emjson_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_emjson_schema_version.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_epoch_undated_import.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_explicit_node_type_marker.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_extracted_from_unit.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_functional_units.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_georeference_scene.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_gltf_stitch.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_glyph_paths.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_graph_indices_edges.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_graph_scope_migration.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_hdto_projection.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_header_key_aliases.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_i_generi_dei_passi.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_iiif.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_il_modo_d_accesso.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_il_modo_dal_relay.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_il_proprietario_si_legge.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_il_riallineamento.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_importer_edge_hygiene.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_la_lingua_alla_nascita.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_la_lingua_dei_dati.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_la_lingua_nell_op.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_la_riga_d_intestazione.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_le_traduzioni.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_lod_levels.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_lossless_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_mapping_authoring.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_mapping_csv_and_relations.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_masonry_unit.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_material_color.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_merge_conflicts.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_migrate_legacy_proxy.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_authorship.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_bake_docx.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_figures.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_generation.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_mentions.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_query.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_scaffolder.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_site_place.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_narrative_unvalidated_export.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_node_datamodel_registry.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_node_type_map_integrity.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_one_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_op_vocabulary.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_photogrammetry_delta.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_physical_relation_spellings.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_piu_indirizzi.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_promotion.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_property_owners.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_proxy_resource.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_proxy_retype.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_psx_locator.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_pyarchinit_tier2.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_qualia_dai_d7_d8.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_rdf_embedding.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_rdf_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_rdf_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reading_coords.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reading_migration.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reading_place.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reading_rdf.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_recompute_warnings.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_release.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reproject.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_resource_files_implicit.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_resource_layer.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_resource_representations.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_resource_revision.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_resource_tier.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_rm_container_node_group.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_semantic_purity.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_shelf.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_shelf_facets.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_shelf_hatting.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_shelf_role_uri_table.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_shipped_mappings.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_source_list_mapping.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_source_text.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_stamp_hints.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_stamp_title_description.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_store_backed_geometry.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_stratiminer_api.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_study_metadata.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_tileset_resource.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_ttl_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_unit_definition.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_verifica_provenance.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_version_for.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_visual_assets.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_xlsx_importer_graph_init.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_xlsx_source_column.py +0 -0
- {s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/tests/test_zero_hour.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: s3dgraphy
|
|
3
|
-
Version: 1.6.0.
|
|
3
|
+
Version: 1.6.0.dev40
|
|
4
4
|
Summary: 3D Stratigraphic Graph Management Library for archaeological and heritage applications
|
|
5
5
|
Author-email: Emanuel Demetrescu <emanuel.demetrescu@cnr.it>
|
|
6
6
|
Maintainer-email: Emanuel Demetrescu <emanuel.demetrescu@cnr.it>
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "s3dgraphy"
|
|
7
|
-
version = "1.6.0.
|
|
7
|
+
version = "1.6.0.dev40"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
{s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/graphml_exporter.py
RENAMED
|
@@ -7,6 +7,7 @@ a single TableNode swimlane (matching yEd reference structure).
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import json
|
|
10
|
+
import logging
|
|
10
11
|
|
|
11
12
|
from lxml import etree as ET
|
|
12
13
|
from typing import List, Dict
|
|
@@ -17,6 +18,12 @@ from .group_node_generator import GroupNodeGenerator
|
|
|
17
18
|
from .edge_generator import EdgeGenerator
|
|
18
19
|
from .utils import IDManager, generate_uuid
|
|
19
20
|
|
|
21
|
+
#: Everything the export used to print — progress, the per-pass counts, the
|
|
22
|
+
#: summary — goes here (#27): a server exporting GraphML must not find thirty
|
|
23
|
+
#: lines on its stdout. The progress is DEBUG, the summary INFO, a cycle or a
|
|
24
|
+
#: skipped side channel a WARNING.
|
|
25
|
+
logger = logging.getLogger(__name__)
|
|
26
|
+
|
|
20
27
|
|
|
21
28
|
# Physical stratigraphic relations preserved as a graph-level GraphML
|
|
22
29
|
# side-channel BEFORE transitive reduction collapses everything into the
|
|
@@ -73,7 +80,7 @@ class GraphMLExporter:
|
|
|
73
80
|
``injected_by`` / ``_aux_overrides`` tags so the enrichment
|
|
74
81
|
layer becomes graph-native.
|
|
75
82
|
"""
|
|
76
|
-
|
|
83
|
+
logger.debug(f"Starting GraphML export to {output_path} "
|
|
77
84
|
f"({'BAKE' if persist_auxiliary else 'volatile'} mode)")
|
|
78
85
|
|
|
79
86
|
# Apply the Hybrid-C policy BEFORE generating XML so every
|
|
@@ -84,7 +91,7 @@ class GraphMLExporter:
|
|
|
84
91
|
if persist_auxiliary:
|
|
85
92
|
bake_report = clear_aux_tags(self.graph)
|
|
86
93
|
if bake_report["injected_cleared"] or bake_report["overrides_cleared"]:
|
|
87
|
-
|
|
94
|
+
logger.debug(f" [bake] cleared {bake_report['injected_cleared']} "
|
|
88
95
|
f"injected_by tags, {bake_report['overrides_cleared']} "
|
|
89
96
|
f"_aux_overrides entries")
|
|
90
97
|
else:
|
|
@@ -92,13 +99,13 @@ class GraphMLExporter:
|
|
|
92
99
|
# then drop injected children.
|
|
93
100
|
rev_report = apply_override_reversal_policy(self.graph)
|
|
94
101
|
if any(rev_report.values()):
|
|
95
|
-
|
|
102
|
+
logger.debug(f" [volatile] attribute overrides: "
|
|
96
103
|
f"{rev_report['reverted']} reverted, "
|
|
97
104
|
f"{rev_report['kept']} kept (user re-edited), "
|
|
98
105
|
f"{rev_report['unseen']} unseen (kept)")
|
|
99
106
|
strip_report = strip_injected_content(self.graph)
|
|
100
107
|
if strip_report["nodes"] or strip_report["edges"]:
|
|
101
|
-
|
|
108
|
+
logger.debug(f" [volatile] stripped {strip_report['nodes']} "
|
|
102
109
|
f"injected nodes and {strip_report['edges']} edges")
|
|
103
110
|
|
|
104
111
|
# GraphML is a DISSEMINATION surface: a tombstone must not be hidden
|
|
@@ -113,7 +120,7 @@ class GraphMLExporter:
|
|
|
113
120
|
from ...dissemination import live_view
|
|
114
121
|
self.graph, hidden = live_view(self.graph, surface="graphml")
|
|
115
122
|
if hidden.total:
|
|
116
|
-
|
|
123
|
+
logger.debug(f" [dissemination] left out {hidden.nodes} removed nodes, "
|
|
117
124
|
f"{hidden.edges} removed edges and {hidden.dangling} edges "
|
|
118
125
|
f"dangling on them")
|
|
119
126
|
|
|
@@ -129,10 +136,10 @@ class GraphMLExporter:
|
|
|
129
136
|
materialize_continuity)
|
|
130
137
|
mat_report = materialize_continuity(self.graph)
|
|
131
138
|
if mat_report["swept"]:
|
|
132
|
-
|
|
139
|
+
logger.debug(f" [materialize] swept {mat_report['swept']} stale "
|
|
133
140
|
f"synthetic items from a prior run")
|
|
134
141
|
if mat_report["nodes"]:
|
|
135
|
-
|
|
142
|
+
logger.debug(f" [materialize] injected {mat_report['nodes']} BR "
|
|
136
143
|
f"diamonds + {mat_report['edges']} edges "
|
|
137
144
|
f"(skipped {mat_report['skipped_user_authored']} "
|
|
138
145
|
f"nodes with user-authored BR)")
|
|
@@ -188,7 +195,7 @@ class GraphMLExporter:
|
|
|
188
195
|
self._physical_relationships_by_node: Dict[str, list] = (
|
|
189
196
|
serialize_rapporti_from_edges(self.graph, default_sito))
|
|
190
197
|
except Exception as exc: # pragma: no cover - defensive
|
|
191
|
-
|
|
198
|
+
logger.warning(f" [physical_relationships] skipped serialization: "
|
|
192
199
|
f"{exc}")
|
|
193
200
|
self._physical_relationships_by_node = {}
|
|
194
201
|
|
|
@@ -209,7 +216,7 @@ class GraphMLExporter:
|
|
|
209
216
|
|
|
210
217
|
# 3. TEMPORAL INFERENCE: derive minimal temporal edges from topological relations
|
|
211
218
|
# Must be done BEFORE generating XML so we know positions and edges
|
|
212
|
-
|
|
219
|
+
logger.debug("Deriving temporal edges from topological relations...")
|
|
213
220
|
from ...temporal.inference_engine import TemporalInferenceEngine
|
|
214
221
|
from ...nodes.epoch_node import EpochNode
|
|
215
222
|
from ...nodes.stratigraphic_node import StratigraphicNode
|
|
@@ -227,7 +234,7 @@ class GraphMLExporter:
|
|
|
227
234
|
minimal_edges = engine.transitive_reduction(temporal_edges)
|
|
228
235
|
except ValueError as e:
|
|
229
236
|
warning_msg = f"Temporal cycle detected: {str(e).splitlines()[0]}"
|
|
230
|
-
|
|
237
|
+
logger.warning(warning_msg)
|
|
231
238
|
self.graph.add_warning(warning_msg)
|
|
232
239
|
minimal_edges = temporal_edges # fallback: use unreduced
|
|
233
240
|
|
|
@@ -310,7 +317,7 @@ class GraphMLExporter:
|
|
|
310
317
|
|
|
311
318
|
positions = {}
|
|
312
319
|
if epoch_nodes:
|
|
313
|
-
|
|
320
|
+
logger.debug(f"Generating epoch swimlanes ({len(epoch_nodes)} epochs)...")
|
|
314
321
|
from .epoch_generator import EpochSwimlanesGenerator
|
|
315
322
|
epoch_gen = EpochSwimlanesGenerator()
|
|
316
323
|
|
|
@@ -425,7 +432,7 @@ class GraphMLExporter:
|
|
|
425
432
|
activity_graph_of[aid] = act_xml.find(
|
|
426
433
|
'.//{http://graphml.graphdrawing.org/xmlns}graph')
|
|
427
434
|
if activity_members_present:
|
|
428
|
-
|
|
435
|
+
logger.debug(f"Generating {len(activity_members_present)} activity "
|
|
429
436
|
f"group(s)...")
|
|
430
437
|
|
|
431
438
|
def _slot_for(node_id):
|
|
@@ -443,7 +450,7 @@ class GraphMLExporter:
|
|
|
443
450
|
# those groups) are skipped here, but ALL stratigraphic nodes are
|
|
444
451
|
# still collected in ``stratigraphic_nodes`` so PD-group building
|
|
445
452
|
# below sees them (a member or container may carry properties).
|
|
446
|
-
|
|
453
|
+
logger.debug(f"Generating {len(strat_nodes)} stratigraphic nodes inside swimlane...")
|
|
447
454
|
stratigraphic_nodes = []
|
|
448
455
|
for i, node in enumerate(strat_nodes):
|
|
449
456
|
stratigraphic_nodes.append(node)
|
|
@@ -468,7 +475,7 @@ class GraphMLExporter:
|
|
|
468
475
|
# description; the importer re-creates the stratigraphic node and
|
|
469
476
|
# the child->container is_part_of edges from this structure.
|
|
470
477
|
if container_ids:
|
|
471
|
-
|
|
478
|
+
logger.debug(f"Generating {len(container_ids)} is_part_of "
|
|
472
479
|
f"container(s) with {len(member_ids)} member(s)...")
|
|
473
480
|
for cid, members in container_members.items():
|
|
474
481
|
container = strat_by_id[cid]
|
|
@@ -492,7 +499,7 @@ class GraphMLExporter:
|
|
|
492
499
|
container_graph.append(member_xml)
|
|
493
500
|
|
|
494
501
|
# 7. Build and generate ParadataNodeGroups INSIDE the swimlane
|
|
495
|
-
|
|
502
|
+
logger.debug("Building ParadataNodeGroups...")
|
|
496
503
|
paradata_groups = self._build_paradata_groups(stratigraphic_nodes)
|
|
497
504
|
|
|
498
505
|
internal_edge_total = 0
|
|
@@ -753,7 +760,7 @@ class GraphMLExporter:
|
|
|
753
760
|
# the group at load time.
|
|
754
761
|
|
|
755
762
|
# 8. Generate US → ParadataNodeGroup dashed edges
|
|
756
|
-
|
|
763
|
+
logger.debug("Generating US→ParadataNodeGroup edges...")
|
|
757
764
|
for group_data in paradata_groups:
|
|
758
765
|
us_node = group_data['us_node']
|
|
759
766
|
group_uuid = group_data.get('group_uuid', '')
|
|
@@ -769,7 +776,7 @@ class GraphMLExporter:
|
|
|
769
776
|
is_after_count = sum(1 for e in export_edges if e.edge_type == 'is_after')
|
|
770
777
|
same_time_count = sum(1 for e in export_edges if e.edge_type == 'has_same_time')
|
|
771
778
|
pd_count = sum(1 for e in export_edges if e.edge_type == 'has_paradata_nodegroup')
|
|
772
|
-
|
|
779
|
+
logger.debug(f"Generating {len(export_edges)} edges ({is_after_count} is_after, "
|
|
773
780
|
f"{same_time_count} has_same_time, {pd_count} has_paradata_nodegroup, "
|
|
774
781
|
f"{internal_edge_total} internal PD edges)...")
|
|
775
782
|
|
|
@@ -792,7 +799,7 @@ class GraphMLExporter:
|
|
|
792
799
|
root.append(resources)
|
|
793
800
|
|
|
794
801
|
# 12. Write file
|
|
795
|
-
|
|
802
|
+
logger.debug(f"Writing GraphML to {output_path}...")
|
|
796
803
|
tree = ET.ElementTree(root)
|
|
797
804
|
tree.write(output_path, encoding='UTF-8', xml_declaration=True, pretty_print=True)
|
|
798
805
|
|
|
@@ -805,19 +812,19 @@ class GraphMLExporter:
|
|
|
805
812
|
dematerialize_continuity)
|
|
806
813
|
dem_report = dematerialize_continuity(self.graph)
|
|
807
814
|
if dem_report["nodes"] or dem_report["edges"]:
|
|
808
|
-
|
|
815
|
+
logger.debug(f" [dematerialize] cleaned up "
|
|
809
816
|
f"{dem_report['nodes']} synthetic BR nodes and "
|
|
810
817
|
f"{dem_report['edges']} edges")
|
|
811
818
|
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
819
|
+
logger.info(f"GraphML export completed successfully!")
|
|
820
|
+
logger.info(f" - Stratigraphic nodes: {len(stratigraphic_nodes)}")
|
|
821
|
+
logger.info(f" - Epoch nodes: {len(epoch_nodes)}")
|
|
822
|
+
logger.info(f" - Temporal edges (is_after): {is_after_count}")
|
|
823
|
+
logger.info(f" - Same-time edges: {same_time_count}")
|
|
824
|
+
logger.info(f" - US→PD edges: {pd_count}")
|
|
825
|
+
logger.info(f" - Total edges exported: {len(export_edges)}")
|
|
826
|
+
logger.info(f" - Internal PD edges: {internal_edge_total}")
|
|
827
|
+
logger.info(f" - ParadataGroups: {len(paradata_groups)}")
|
|
821
828
|
|
|
822
829
|
def _write_physical_relations_data(self, graph_elem: ET.Element,
|
|
823
830
|
canvas: CanvasGenerator) -> int:
|
|
@@ -878,7 +885,7 @@ class GraphMLExporter:
|
|
|
878
885
|
separators=(",", ":"))
|
|
879
886
|
|
|
880
887
|
if physical_relations:
|
|
881
|
-
|
|
888
|
+
logger.debug(f" [lossless] preserved {len(physical_relations)} "
|
|
882
889
|
f"physical stratigraphic relations in "
|
|
883
890
|
f"{canvas.PHYSICAL_RELATIONS_ATTR_NAME}")
|
|
884
891
|
return len(physical_relations)
|
|
@@ -936,7 +943,7 @@ class GraphMLExporter:
|
|
|
936
943
|
ensure_ascii=False,
|
|
937
944
|
separators=(",", ":"))
|
|
938
945
|
if property_map:
|
|
939
|
-
|
|
946
|
+
logger.debug(f" [lossless] preserved structured metadata for "
|
|
940
947
|
f"{len(property_map)} PropertyNode(s) in "
|
|
941
948
|
f"{canvas.PROPERTY_METADATA_ATTR_NAME}")
|
|
942
949
|
return len(property_map)
|
|
@@ -1123,15 +1130,14 @@ class GraphMLExporter:
|
|
|
1123
1130
|
from ...utils.utils import get_base_name
|
|
1124
1131
|
from ...edges.connections_loader import get_connections_datamodel
|
|
1125
1132
|
datamodel = get_connections_datamodel()
|
|
1126
|
-
node_map = {n.node_id: n for n in self.graph.nodes}
|
|
1127
1133
|
relations: dict = {}
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1134
|
+
# the node's outgoing edges, in list order, from the index: this ran
|
|
1135
|
+
# once per US over every node and every edge (#27)
|
|
1136
|
+
for edge in self.graph.indices.edges_by_source.get(us_node.node_id, []):
|
|
1131
1137
|
edge_type = (datamodel.normalize_edge_name(
|
|
1132
1138
|
edge.edge_type, prefer_canonical=False) or edge.edge_type)
|
|
1133
1139
|
if edge_type in self._TOPO_EDGE_TYPES:
|
|
1134
|
-
target =
|
|
1140
|
+
target = self.graph.find_node_by_id(edge.edge_target)
|
|
1135
1141
|
if target:
|
|
1136
1142
|
name = get_base_name(target.name) or target.name
|
|
1137
1143
|
names = relations.setdefault(edge_type, [])
|
|
@@ -1582,10 +1588,9 @@ class GraphMLExporter:
|
|
|
1582
1588
|
continue
|
|
1583
1589
|
|
|
1584
1590
|
target_epoch = None
|
|
1585
|
-
for edge in self.graph.
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
and edge.edge_target in epoch_ids):
|
|
1591
|
+
for edge in self.graph.indices.edges_by_source_type.get(
|
|
1592
|
+
(node.node_id, "has_first_epoch"), []):
|
|
1593
|
+
if edge.edge_target in epoch_ids:
|
|
1589
1594
|
target_epoch = id_to_node.get(edge.edge_target)
|
|
1590
1595
|
break
|
|
1591
1596
|
if target_epoch is None:
|
|
@@ -1617,7 +1622,8 @@ class GraphMLExporter:
|
|
|
1617
1622
|
local_copies[tgt.node_id] = local
|
|
1618
1623
|
image_nodes_list.append(local)
|
|
1619
1624
|
|
|
1620
|
-
|
|
1625
|
+
# the SL_PD's own edges, in list order (`_edges_of`), not all
|
|
1626
|
+
for edge in self._edges_of(node.node_id):
|
|
1621
1627
|
# Path A: SL_PD outgoing edges to the paradata image.
|
|
1622
1628
|
if edge.edge_source == node.node_id:
|
|
1623
1629
|
accepted = edge_to_class.get(edge.edge_type)
|
|
@@ -1637,7 +1643,7 @@ class GraphMLExporter:
|
|
|
1637
1643
|
# SL_PD via ``is_in_paradata_nodegroup``.
|
|
1638
1644
|
prop_nodes_list: List = []
|
|
1639
1645
|
seen_props: set = set()
|
|
1640
|
-
for edge in self.
|
|
1646
|
+
for edge in self._edges_of(node.node_id):
|
|
1641
1647
|
candidate = None
|
|
1642
1648
|
if (edge.edge_source == node.node_id
|
|
1643
1649
|
and edge.edge_type == "has_property"):
|
|
@@ -1666,6 +1672,17 @@ class GraphMLExporter:
|
|
|
1666
1672
|
|
|
1667
1673
|
return groups
|
|
1668
1674
|
|
|
1675
|
+
def _edges_of(self, node_id):
|
|
1676
|
+
"""The edges with `node_id` at either end, each once, in the order of
|
|
1677
|
+
``self.graph.edges``: a loop over them sees what a loop over the whole
|
|
1678
|
+
list filtered on the node sees."""
|
|
1679
|
+
ix = self.graph.indices
|
|
1680
|
+
outgoing = ix.edges_by_source.get(node_id, [])
|
|
1681
|
+
incoming = ix.edges_by_target.get(node_id, [])
|
|
1682
|
+
both = {id(e): e for e in outgoing}
|
|
1683
|
+
both.update((id(e), e) for e in incoming)
|
|
1684
|
+
return sorted(both.values(), key=lambda e: ix.edge_seq[id(e)])
|
|
1685
|
+
|
|
1669
1686
|
def _collect_paradata_image_attachments(self, chains, local_doc_copies,
|
|
1670
1687
|
us_node=None):
|
|
1671
1688
|
"""
|
|
@@ -1709,16 +1726,16 @@ class GraphMLExporter:
|
|
|
1709
1726
|
image_attachments: List = []
|
|
1710
1727
|
seen_attachments: set = set()
|
|
1711
1728
|
|
|
1712
|
-
|
|
1729
|
+
# by id and by source from the graph's indices: this ran once per PD
|
|
1730
|
+
# group over every node and, per chain element, every edge (#27)
|
|
1731
|
+
edges_by_source = self.graph.indices.edges_by_source
|
|
1713
1732
|
|
|
1714
1733
|
def _collect(source_local, original_uuid):
|
|
1715
|
-
for e in
|
|
1716
|
-
if e.edge_source != original_uuid:
|
|
1717
|
-
continue
|
|
1734
|
+
for e in edges_by_source.get(original_uuid, []):
|
|
1718
1735
|
accepted = edge_type_classes.get(e.edge_type)
|
|
1719
1736
|
if accepted is None:
|
|
1720
1737
|
continue
|
|
1721
|
-
tgt =
|
|
1738
|
+
tgt = self.graph.find_node_by_id(e.edge_target)
|
|
1722
1739
|
if tgt is None or not isinstance(tgt, accepted):
|
|
1723
1740
|
continue
|
|
1724
1741
|
pair = (source_local.node_id, tgt.node_id)
|
{s3dgraphy-1.6.0.dev39 → s3dgraphy-1.6.0.dev40}/src/s3dgraphy/exporter/graphml/node_registry.py
RENAMED
|
@@ -13,6 +13,7 @@ documented in ``PALETTE_AUDIT.md`` (Variante A).
|
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
15
|
import json
|
|
16
|
+
import logging
|
|
16
17
|
import os
|
|
17
18
|
import re
|
|
18
19
|
import warnings
|
|
@@ -21,6 +22,8 @@ from typing import Dict, Tuple, Optional, List
|
|
|
21
22
|
from lxml import etree as ET
|
|
22
23
|
from dataclasses import dataclass
|
|
23
24
|
|
|
25
|
+
logger = logging.getLogger(__name__)
|
|
26
|
+
|
|
24
27
|
|
|
25
28
|
class S3DgraphyPaletteWarning(UserWarning):
|
|
26
29
|
"""Raised when the palette template contains stencils that cannot be
|
|
@@ -135,7 +138,7 @@ class NodeRegistry:
|
|
|
135
138
|
with resource.open('r', encoding='utf-8') as f:
|
|
136
139
|
data = json.load(f)
|
|
137
140
|
except (FileNotFoundError, ModuleNotFoundError) as e:
|
|
138
|
-
|
|
141
|
+
logger.warning("Node datamodel not found: %s: %s", type(e).__name__, e)
|
|
139
142
|
self.datamodel = {}
|
|
140
143
|
return
|
|
141
144
|
|
|
@@ -314,7 +317,7 @@ class NodeRegistry:
|
|
|
314
317
|
text_color=text_color
|
|
315
318
|
)
|
|
316
319
|
except Exception as e:
|
|
317
|
-
|
|
320
|
+
logger.warning("Error extracting visual properties: %s", e)
|
|
318
321
|
return None
|
|
319
322
|
|
|
320
323
|
def get_visual_properties(self, node_type: str) -> Optional[NodeVisualProperties]:
|