s3dgraphy 1.6.0.dev32__tar.gz → 1.6.0.dev34__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.dev32/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev34}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/pyproject.toml +1 -1
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/__init__.py +1 -1
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/api.py +39 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/store_backed.py +28 -0
- s3dgraphy-1.6.0.dev34/src/s3dgraphy/resources/versions.py +305 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy.egg-info/SOURCES.txt +2 -0
- s3dgraphy-1.6.0.dev34/tests/test_asset_versions.py +164 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/README.md +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/datamodel_translations.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em.ttl +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_qualia_types.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/node_registry.generated.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/acquisition/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/acquisition/acquire.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/acquisition/descriptor.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/acquisition/mapping.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/ai_validation.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/annotation/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/annotation/paradata.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/annotation/reading.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/classification.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/container.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/contract/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/contract/connector.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/contract/consumer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/contract/core.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/contract/reference.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/crdt.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dissemination.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/capture.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/corpus.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/devices.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/ingest.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/dtc/residency.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/edges/connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/editorial.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/html_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/json_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/rdf_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/aton.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/gltf.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/migrate.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/proxy.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/geometry/wkt.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/graph.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/iiif.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/base_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/csv_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/emjson_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/import_graphml.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/rdf_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/sheet_header.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/source_text.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/importer/xml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/language.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/authoring.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/narrative/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/narrative/bake.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/narrative/generation.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/narrative/query.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/narrative/registry.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/narrative/site_story.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/dtc_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/group_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/project_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/resource_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/study_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/nodes/translation_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/ownership.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/photogrammetry/delta.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/publication.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/addresses.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/files.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/resources/tiles3tz.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/rights.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/shelf/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/shelf/core.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/stamp/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/stamp/absorb.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/stamp/emit.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/stamp/hints.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/stamp/identity.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/study.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/deliverable_report.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/tools/wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/translation.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/zero_hour.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy.egg-info/requires.txt +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_acquisition_fs.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_add_resource.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_ai_validation_nodes.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_api_surface.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_asset_dtc_protocol.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_aton_shapes.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_attach_only.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_authority_projection.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_authority_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_blend_locator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_canonical_document_rename.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_canvas_metadata_import.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_capture_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_capture_rdf_class.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_chronology_on_request.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_coating_unit.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_container.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_container_layouts.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_containment_tpq.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_contract.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_contract_consumer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_convert_command.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_crdt.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_datamodel_fingerprint.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_deterministic_ids.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_em_sourcelist.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_file_set_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_graphml_without_a_database.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_image_set_texturing.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_not_georeferenced.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_one_act_n_outputs.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev29_ttl_round_trip.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dev30_decisions.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_devices.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dissemination_tombstones.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dove_sta_il_testo.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dtc_corpus.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dtc_ingest.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dtc_neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dtc_projection.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_dtc_residency.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_edge_ui_phrases.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_editorial.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_emjson_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_emjson_schema_version.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_epoch_undated_import.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_explicit_node_type_marker.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_extracted_from_unit.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_functional_units.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_georeference_scene.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_gltf_stitch.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_glyph_paths.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_graph_indices_edges.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_graph_scope_migration.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_hdto_projection.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_header_key_aliases.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_i_generi_dei_passi.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_iiif.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_il_modo_d_accesso.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_il_modo_dal_relay.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_il_proprietario_si_legge.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_il_riallineamento.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_importer_edge_hygiene.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_la_lingua_alla_nascita.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_la_lingua_dei_dati.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_la_lingua_nell_op.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_la_riga_d_intestazione.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_le_traduzioni.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_lossless_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_mapping_authoring.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_mapping_csv_and_relations.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_masonry_unit.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_material_color.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_merge_conflicts.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_migrate_legacy_proxy.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_authorship.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_bake_docx.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_figures.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_generation.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_mentions.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_query.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_scaffolder.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_site_place.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_narrative_unvalidated_export.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_node_datamodel_registry.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_node_type_map_integrity.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_one_spelling_writers.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_photogrammetry_delta.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_physical_relation_spellings.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_piu_indirizzi.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_promotion.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_property_owners.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_proxy_resource.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_proxy_retype.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_psx_locator.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_pyarchinit_tier2.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_qualia_dai_d7_d8.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_rdf_embedding.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_rdf_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_rdf_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reading_coords.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reading_migration.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reading_place.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reading_rdf.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_recompute_warnings.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_release.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reproject.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_resource_files_implicit.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_resource_layer.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_resource_representations.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_resource_revision.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_resource_tier.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_rm_container_node_group.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_semantic_purity.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_shelf.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_shelf_facets.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_shelf_hatting.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_shelf_role_uri_table.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_shipped_mappings.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_source_list_mapping.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_source_text.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_stamp_hints.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_stamp_title_description.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_store_backed_geometry.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_stratiminer_api.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_study_metadata.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_tileset_resource.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_ttl_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_unit_definition.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_verifica_provenance.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_visual_assets.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_xlsx_importer_graph_init.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/tests/test_xlsx_source_column.py +0 -0
- {s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/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.dev34
|
|
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.dev34"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -2704,6 +2704,45 @@ def pick_representation(graph: Graph, res_id: str, can_open) -> Dict[str, Any]:
|
|
|
2704
2704
|
return _pick(graph, res_id, can_open)
|
|
2705
2705
|
|
|
2706
2706
|
|
|
2707
|
+
# ── an asset and its versions (E.D. 30 Sep / 3 Oct 2026) ──────────────────────
|
|
2708
|
+
# The asset is the master resource; each version (LOD1, LOD2…) is a child made
|
|
2709
|
+
# by a `lod_generation` step, with its level and purpose in the step's
|
|
2710
|
+
# parameters. The semantic link stays on the asset and the versions inherit it.
|
|
2711
|
+
# See :mod:`s3dgraphy.resources.versions`.
|
|
2712
|
+
def add_version(graph: Graph, master_id: str, *, level: str, purpose: str = "",
|
|
2713
|
+
**kwargs) -> Dict[str, Any]:
|
|
2714
|
+
"""A version of the asset ``master_id`` at ``level`` for ``purpose``: a child
|
|
2715
|
+
resource ``dtc_derived_from`` the master through a ``lod_generation`` step.
|
|
2716
|
+
Idempotent per (asset, level); other bytes at a level are refused (revise
|
|
2717
|
+
the version instead). Returns ``{version_id, process_id, created, asset_id,
|
|
2718
|
+
level, purpose, warnings}``."""
|
|
2719
|
+
from .resources.versions import add_version as _add
|
|
2720
|
+
before = _ids(graph)
|
|
2721
|
+
out = _add(graph, master_id, level=level, purpose=purpose, **kwargs)
|
|
2722
|
+
_born(graph, before)
|
|
2723
|
+
return out
|
|
2724
|
+
|
|
2725
|
+
|
|
2726
|
+
def versions_of(graph: Graph, res_id: str) -> List[Dict[str, Any]]:
|
|
2727
|
+
"""The asset of ``res_id`` and its versions, master first then by level,
|
|
2728
|
+
each the CURRENT revision: ``[{id, level, purpose, master, checksum, …}]``."""
|
|
2729
|
+
from .resources.versions import versions_of as _versions
|
|
2730
|
+
return _versions(graph, res_id)
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
def asset_of(graph: Graph, res_id: str) -> str:
|
|
2734
|
+
"""The asset (master) ``res_id`` is a version of; itself if it is none."""
|
|
2735
|
+
from .resources.versions import asset_of as _asset
|
|
2736
|
+
return _asset(graph, res_id)
|
|
2737
|
+
|
|
2738
|
+
|
|
2739
|
+
def inherited_links(graph: Graph, res_id: str) -> Dict[str, Any]:
|
|
2740
|
+
"""What hats the asset of ``res_id`` (RM/proxy facets and their epochs and
|
|
2741
|
+
units): the semantic link a version inherits, never copied onto it."""
|
|
2742
|
+
from .resources.versions import inherited_links as _links
|
|
2743
|
+
return _links(graph, res_id)
|
|
2744
|
+
|
|
2745
|
+
|
|
2707
2746
|
# ── the 3D Tiles Archive (.3tz), recognised and read, never written here ──────
|
|
2708
2747
|
# The writers are 3DSC and EMStudio (E.D. 2026-09-30); the canonical form and
|
|
2709
2748
|
# the content digest belong to dtcstamp. See :mod:`s3dgraphy.resources.tiles3tz`.
|
|
@@ -206,6 +206,17 @@ def _binds(graph: Any, node_id: str, by_id: Dict[str, Any]) -> List[Dict[str, st
|
|
|
206
206
|
return out
|
|
207
207
|
|
|
208
208
|
|
|
209
|
+
def _version_of(graph: Any, res_id: str) -> Optional[Dict[str, Any]]:
|
|
210
|
+
"""The version entry of this resource, or None (also for a graph whose
|
|
211
|
+
shape the versions reader cannot walk: listing geometry must not fail on
|
|
212
|
+
that)."""
|
|
213
|
+
try:
|
|
214
|
+
from ..resources.versions import version_info
|
|
215
|
+
return version_info(graph, res_id)
|
|
216
|
+
except Exception: # noqa: BLE001 — a fork in the revisions is not ours here
|
|
217
|
+
return None
|
|
218
|
+
|
|
219
|
+
|
|
209
220
|
def store_backed_geometry(graph: Any) -> List[Dict[str, Any]]:
|
|
210
221
|
"""The geometry this graph describes that lives in the store, as records.
|
|
211
222
|
|
|
@@ -226,6 +237,9 @@ def store_backed_geometry(graph: Any) -> List[Dict[str, Any]]:
|
|
|
226
237
|
``bind`` ``[{id, node_type, name, via}]`` — epochs, units, documents
|
|
227
238
|
``residency`` always ``resident`` in this list (see the module docstring)
|
|
228
239
|
``name`` / ``media_type`` / ``url`` — for the message a consumer shows
|
|
240
|
+
``asset_id`` / ``level`` / ``purpose`` — only for an asset with versions
|
|
241
|
+
and its versions (a version is listed under its asset's
|
|
242
|
+
facets: it inherits them)
|
|
229
243
|
|
|
230
244
|
Sorted by (kind, name, node_id): two runs read the same, which is what makes
|
|
231
245
|
"materialise" idempotent from the caller's side as well.
|
|
@@ -246,10 +260,24 @@ def store_backed_geometry(graph: Any) -> List[Dict[str, Any]]:
|
|
|
246
260
|
and str(getattr(by_id[str(getattr(e, "edge_source", ""))],
|
|
247
261
|
"node_type", "")) in _FACET_TYPES
|
|
248
262
|
]
|
|
263
|
+
#: a VERSION of an asset (LOD1, LOD2…) is hatted by nothing itself: it
|
|
264
|
+
#: inherits the facets of its asset (s3dgraphy.resources.versions), so
|
|
265
|
+
#: it is listed where the asset goes, with its level beside it
|
|
266
|
+
version = _version_of(graph, resource.node_id)
|
|
267
|
+
if not facets and version and version.get("asset_id") != resource.node_id:
|
|
268
|
+
facets = [by_id[str(e.edge_source)] for e in _alive_edges(graph)
|
|
269
|
+
if str(getattr(e, "edge_type", "")) == EDGE_HAS_LINKED
|
|
270
|
+
and str(getattr(e, "edge_target", "")) == version["asset_id"]
|
|
271
|
+
and str(getattr(e, "edge_source", "")) in by_id
|
|
272
|
+
and str(getattr(by_id[str(e.edge_source)], "node_type", ""))
|
|
273
|
+
in _FACET_TYPES]
|
|
249
274
|
carriers: List[Any] = facets or [resource]
|
|
250
275
|
for carrier in carriers:
|
|
251
276
|
node_type = str(getattr(carrier, "node_type", "") or "")
|
|
277
|
+
extra = ({"asset_id": version["asset_id"], "level": version["level"],
|
|
278
|
+
"purpose": version["purpose"]} if version else {})
|
|
252
279
|
records.append({
|
|
280
|
+
**extra,
|
|
253
281
|
"node_id": carrier.node_id,
|
|
254
282
|
"resource_id": resource.node_id,
|
|
255
283
|
"checksum": str(data.get("checksum") or ""),
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"""An asset and its versions — one survey object, several levels of detail.
|
|
2
|
+
|
|
3
|
+
Decided by E.D. (30 Sep 2026, confirmed 3 Oct 2026, «asset padre con le versioni
|
|
4
|
+
come risorse figlie»): the ASSET is the master resource (the podium as surveyed,
|
|
5
|
+
LOD0), and each VERSION (LOD1, LOD2, a decimated or retopologised mesh) is a
|
|
6
|
+
child ``ResourceNode`` made from it:
|
|
7
|
+
|
|
8
|
+
* ``version ──dtc_derived_from──▶ master``, and a ``DTCProcessNode`` of kind
|
|
9
|
+
``lod_generation`` with ``dtc_had_input`` the master and ``dtc_had_output`` the
|
|
10
|
+
version — the shape :func:`s3dgraphy.dtc.ingest.declare_derivation` writes;
|
|
11
|
+
* the version's LEVEL and PURPOSE go in the process ``parameters`` (``level``,
|
|
12
|
+
``purpose``), where the ``lod_generation`` kind of the visual rules says the
|
|
13
|
+
level goes; the master's own level, when somebody states it, is the
|
|
14
|
+
``source_level`` of the same parameters — the level of the input as whoever
|
|
15
|
+
made the version saw it. No new field on the resource, so nothing new to map:
|
|
16
|
+
the parameters of a step already travel in em.json and in RDF;
|
|
17
|
+
* the SEMANTIC LINK (the RM or proxy that hats the object, its epochs, its unit)
|
|
18
|
+
is declared ONCE, on the asset. A version inherits it: :func:`inherited_links`
|
|
19
|
+
reads it from the asset, and nothing is copied onto the version — a copy
|
|
20
|
+
would be a second statement that can disagree with the first.
|
|
21
|
+
|
|
22
|
+
A version whose bytes change is REVISED like any resource (``replace_file``,
|
|
23
|
+
``was_revision_of``): the revision keeps the level and purpose of the version it
|
|
24
|
+
revises, and :func:`versions_of` answers with the CURRENT revision of each level.
|
|
25
|
+
|
|
26
|
+
The level is a word somebody gives («LOD1»), not an enumeration fixed here: the
|
|
27
|
+
earlier refusal of a ``lod0/1/2`` vocabulary (the measures of ``ResourceNode``)
|
|
28
|
+
still holds for what a CONSUMER compares — weight and primitives — while the
|
|
29
|
+
level is the name a person uses to pick one.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
from __future__ import annotations
|
|
33
|
+
|
|
34
|
+
import re
|
|
35
|
+
import uuid
|
|
36
|
+
from typing import Any, Dict, List, Optional, Sequence
|
|
37
|
+
|
|
38
|
+
from .files import (_data, _is_resource, _node, add_resource, resource_files,
|
|
39
|
+
revisions_of)
|
|
40
|
+
|
|
41
|
+
DTC_KIND = "lod_generation"
|
|
42
|
+
EDGE_HAD_INPUT = "dtc_had_input"
|
|
43
|
+
EDGE_HAD_OUTPUT = "dtc_had_output"
|
|
44
|
+
EDGE_HAS_LINKED = "has_linked_resource"
|
|
45
|
+
|
|
46
|
+
_NS = uuid.uuid5(uuid.NAMESPACE_URL, "https://extendedmatrix.org/s3dgraphy/asset-version")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def version_id_for(asset_id: str, level: str) -> str:
|
|
50
|
+
"""The id of the version of ``asset_id`` at ``level``: derived, so adding
|
|
51
|
+
the same level twice lands on the same node."""
|
|
52
|
+
return str(uuid.uuid5(_NS, f"version|{asset_id}|{_level(level)}"))
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _level(level: Any) -> str:
|
|
56
|
+
text = str(level or "").strip()
|
|
57
|
+
if not text:
|
|
58
|
+
raise ValueError("a version needs a level (for instance «LOD1»)")
|
|
59
|
+
return text
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _level_key(level: Optional[str]):
|
|
63
|
+
"""Natural order: LOD2 before LOD10, a level without a number last."""
|
|
64
|
+
text = str(level or "")
|
|
65
|
+
m = re.search(r"(\d+)", text)
|
|
66
|
+
return (0 if m else 1, int(m.group(1)) if m else 0, text)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def _lod_process_of(graph, res_id: str):
|
|
70
|
+
"""The ``lod_generation`` step that made ``res_id``, with its input, or
|
|
71
|
+
``(None, None)``."""
|
|
72
|
+
for e in graph.edges:
|
|
73
|
+
if e.edge_type != EDGE_HAD_OUTPUT or e.edge_target != res_id:
|
|
74
|
+
continue
|
|
75
|
+
proc = _node(graph, e.edge_source)
|
|
76
|
+
if proc is None or _data(proc).get("dtc_kind") != DTC_KIND:
|
|
77
|
+
continue
|
|
78
|
+
inputs = [x.edge_target for x in graph.edges
|
|
79
|
+
if x.edge_type == EDGE_HAD_INPUT and x.edge_source == proc.node_id]
|
|
80
|
+
res_inputs = [i for i in inputs
|
|
81
|
+
if _node(graph, i) is not None and _is_resource(_node(graph, i))]
|
|
82
|
+
return proc, (sorted(res_inputs)[0] if res_inputs else None)
|
|
83
|
+
return None, None
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def _origin(graph, res_id: str) -> str:
|
|
87
|
+
"""The first resource of the revision chain ``res_id`` is in: the one the
|
|
88
|
+
``lod_generation`` step was declared on."""
|
|
89
|
+
try:
|
|
90
|
+
return revisions_of(graph, res_id)[0]
|
|
91
|
+
except ValueError:
|
|
92
|
+
return res_id
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def asset_of(graph, res_id: str) -> str:
|
|
96
|
+
"""The asset (the master) ``res_id`` is a version of — ``res_id`` itself
|
|
97
|
+
when it is not a version. Walks a version of a version up to the master."""
|
|
98
|
+
node = _node(graph, res_id)
|
|
99
|
+
if node is None or not _is_resource(node):
|
|
100
|
+
raise ValueError(f"{res_id!r} is not a resource of this graph")
|
|
101
|
+
seen = set()
|
|
102
|
+
cur = res_id
|
|
103
|
+
while cur not in seen:
|
|
104
|
+
seen.add(cur)
|
|
105
|
+
_proc, source = _lod_process_of(graph, _origin(graph, cur))
|
|
106
|
+
if source is None:
|
|
107
|
+
return _origin(graph, cur)
|
|
108
|
+
cur = source
|
|
109
|
+
raise ValueError(f"the versions of {res_id!r} loop at {cur!r}")
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def _entry(graph, res_id: str, *, level, purpose, process_id, master: bool,
|
|
113
|
+
origin: str) -> Dict[str, Any]:
|
|
114
|
+
node = _node(graph, res_id)
|
|
115
|
+
d = _data(node)
|
|
116
|
+
try:
|
|
117
|
+
chain = revisions_of(graph, origin)
|
|
118
|
+
except ValueError:
|
|
119
|
+
chain = [origin]
|
|
120
|
+
checksum, url, media = d.get("checksum"), d.get("url"), d.get("media_type")
|
|
121
|
+
if not checksum:
|
|
122
|
+
#: a revision writes its files as nodes: one file (or the entry point)
|
|
123
|
+
#: carries the bytes the version is
|
|
124
|
+
files = resource_files(graph, res_id)
|
|
125
|
+
one = files[0] if len(files) == 1 else next(
|
|
126
|
+
(f for f in files if f["role"] == "entry_point"), None)
|
|
127
|
+
if one is not None:
|
|
128
|
+
fd = _data(one["node"])
|
|
129
|
+
checksum = fd.get("checksum") if len(files) == 1 else checksum
|
|
130
|
+
url = url or fd.get("url")
|
|
131
|
+
media = media or fd.get("media_type")
|
|
132
|
+
return {"id": res_id, "name": getattr(node, "name", ""),
|
|
133
|
+
"level": level, "purpose": purpose, "master": master,
|
|
134
|
+
"process_id": process_id, "checksum": checksum or "",
|
|
135
|
+
"url": url or "", "residency": d.get("residency") or "",
|
|
136
|
+
"media_type": media or "",
|
|
137
|
+
"revisions": chain}
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def _current(graph, res_id: str) -> str:
|
|
141
|
+
try:
|
|
142
|
+
return revisions_of(graph, res_id)[-1]
|
|
143
|
+
except ValueError:
|
|
144
|
+
return res_id
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def versions_of(graph, asset_id: str) -> List[Dict[str, Any]]:
|
|
148
|
+
"""The asset and its versions, master first, then by level.
|
|
149
|
+
|
|
150
|
+
Each entry: ``{id, name, level, purpose, master, process_id, checksum, url,
|
|
151
|
+
residency, media_type, revisions}``. ``id`` is the CURRENT revision of the
|
|
152
|
+
version; ``revisions`` its chain, oldest first. The master's ``level`` is
|
|
153
|
+
the ``source_level`` its versions declared, or None when nobody said it.
|
|
154
|
+
"""
|
|
155
|
+
asset = asset_of(graph, asset_id)
|
|
156
|
+
kids: List[Dict[str, Any]] = []
|
|
157
|
+
master_levels = set()
|
|
158
|
+
for e in graph.edges:
|
|
159
|
+
if e.edge_type != EDGE_HAD_INPUT or e.edge_target != asset:
|
|
160
|
+
continue
|
|
161
|
+
proc = _node(graph, e.edge_source)
|
|
162
|
+
if proc is None or _data(proc).get("dtc_kind") != DTC_KIND:
|
|
163
|
+
continue
|
|
164
|
+
params = _data(proc).get("parameters") or {}
|
|
165
|
+
if params.get("source_level"):
|
|
166
|
+
master_levels.add(str(params["source_level"]))
|
|
167
|
+
for o in graph.edges:
|
|
168
|
+
if o.edge_type != EDGE_HAD_OUTPUT or o.edge_source != proc.node_id:
|
|
169
|
+
continue
|
|
170
|
+
out = _node(graph, o.edge_target)
|
|
171
|
+
if out is None or not _is_resource(out):
|
|
172
|
+
continue
|
|
173
|
+
kids.append(_entry(graph, _current(graph, out.node_id),
|
|
174
|
+
level=params.get("level"),
|
|
175
|
+
purpose=params.get("purpose") or "",
|
|
176
|
+
process_id=proc.node_id, master=False,
|
|
177
|
+
origin=out.node_id))
|
|
178
|
+
master_level = sorted(master_levels)[0] if len(master_levels) == 1 else None
|
|
179
|
+
out = [_entry(graph, _current(graph, asset), level=master_level, purpose="",
|
|
180
|
+
process_id=None, master=True, origin=asset)]
|
|
181
|
+
out += sorted(kids, key=lambda k: (_level_key(k["level"]), k["id"]))
|
|
182
|
+
return out
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def version_info(graph, res_id: str) -> Optional[Dict[str, Any]]:
|
|
186
|
+
"""The entry of :func:`versions_of` ``res_id`` belongs to (any revision of
|
|
187
|
+
it), with ``asset_id``; None when ``res_id`` is neither an asset with
|
|
188
|
+
versions nor a version."""
|
|
189
|
+
asset = asset_of(graph, res_id)
|
|
190
|
+
entries = versions_of(graph, asset)
|
|
191
|
+
if len(entries) == 1:
|
|
192
|
+
return None
|
|
193
|
+
for entry in entries:
|
|
194
|
+
if res_id == entry["id"] or res_id in entry["revisions"]:
|
|
195
|
+
return {**entry, "asset_id": asset}
|
|
196
|
+
return None
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
def inherited_links(graph, res_id: str) -> Dict[str, Any]:
|
|
200
|
+
"""The semantic link of ``res_id``: what hats its ASSET.
|
|
201
|
+
|
|
202
|
+
``{asset_id, inherited, facets: [{id, node_type, name}], binds: [{id,
|
|
203
|
+
node_type, name, via}]}`` — ``facets`` are the nodes that reach the asset
|
|
204
|
+
with ``has_linked_resource`` (the RM, the proxy's shape), ``binds`` what
|
|
205
|
+
those facets are for (epochs, units), read the way
|
|
206
|
+
:func:`s3dgraphy.geometry.store_backed.store_backed_geometry` reads them.
|
|
207
|
+
``inherited`` is True when ``res_id`` is a version and the link was read on
|
|
208
|
+
its asset."""
|
|
209
|
+
from ..geometry.store_backed import _binds
|
|
210
|
+
|
|
211
|
+
asset = asset_of(graph, res_id)
|
|
212
|
+
by_id = {n.node_id: n for n in graph.nodes}
|
|
213
|
+
facets, binds, seen = [], [], set()
|
|
214
|
+
for e in graph.edges:
|
|
215
|
+
if e.edge_type != EDGE_HAS_LINKED or e.edge_target != asset:
|
|
216
|
+
continue
|
|
217
|
+
facet = by_id.get(e.edge_source)
|
|
218
|
+
if facet is None or facet.node_id in seen:
|
|
219
|
+
continue
|
|
220
|
+
seen.add(facet.node_id)
|
|
221
|
+
facets.append({"id": facet.node_id, "name": getattr(facet, "name", ""),
|
|
222
|
+
"node_type": str(getattr(facet, "node_type", "") or "")})
|
|
223
|
+
for b in _binds(graph, facet.node_id, by_id):
|
|
224
|
+
if b["id"] not in {x["id"] for x in binds}:
|
|
225
|
+
binds.append(b)
|
|
226
|
+
return {"asset_id": asset, "inherited": asset != _origin(graph, res_id),
|
|
227
|
+
"facets": facets, "binds": binds}
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def add_version(graph, master_id: str, *, level: str, purpose: str = "",
|
|
231
|
+
files: Sequence[Dict[str, Any]] = (), name: Optional[str] = None,
|
|
232
|
+
master_level: Optional[str] = None,
|
|
233
|
+
technique: Optional[str] = None,
|
|
234
|
+
parameters: Optional[Dict[str, Any]] = None,
|
|
235
|
+
tool: Optional[str] = None,
|
|
236
|
+
software: Optional[Sequence[Dict[str, Any]]] = None,
|
|
237
|
+
residency: Optional[str] = None,
|
|
238
|
+
packaging: Optional[str] = None,
|
|
239
|
+
size_bytes: Optional[int] = None,
|
|
240
|
+
primitives: Optional[Dict[str, int]] = None,
|
|
241
|
+
version_id: Optional[str] = None,
|
|
242
|
+
author: Optional[str] = None,
|
|
243
|
+
at: Optional[str] = None) -> Dict[str, Any]:
|
|
244
|
+
"""A new version of the asset ``master_id`` at ``level``, for ``purpose``.
|
|
245
|
+
|
|
246
|
+
Writes the version resource (kind of the master, ``tier: distribution``,
|
|
247
|
+
``files`` as :func:`add_resource` takes them) and the ``lod_generation``
|
|
248
|
+
step from the master to it. Idempotent: the id is derived from (asset,
|
|
249
|
+
level), and adding the same level again with the same bytes changes
|
|
250
|
+
nothing. The same level with OTHER bytes is refused — that is a revision of
|
|
251
|
+
the version (``replace_file``), and the error says so.
|
|
252
|
+
|
|
253
|
+
``master_id`` may itself be a version: a LOD2 decimated from LOD1 is a
|
|
254
|
+
different claim from a LOD2 made from the master, and it is written as it
|
|
255
|
+
is said; :func:`asset_of` walks up to the master either way.
|
|
256
|
+
|
|
257
|
+
Returns ``{version_id, process_id, created, asset_id, level, purpose,
|
|
258
|
+
warnings}``.
|
|
259
|
+
"""
|
|
260
|
+
from ..dtc.ingest import declare_derivation
|
|
261
|
+
|
|
262
|
+
master = _node(graph, master_id)
|
|
263
|
+
if master is None or not _is_resource(master):
|
|
264
|
+
raise ValueError(f"{master_id!r} is not a resource of this graph")
|
|
265
|
+
lvl = _level(level)
|
|
266
|
+
asset = asset_of(graph, master_id)
|
|
267
|
+
vid = version_id or version_id_for(master_id, lvl)
|
|
268
|
+
for entry in versions_of(graph, asset):
|
|
269
|
+
if entry["level"] == lvl and not entry["master"] \
|
|
270
|
+
and vid not in entry["revisions"]:
|
|
271
|
+
raise ValueError(f"{asset!r} already has a version at {lvl!r} "
|
|
272
|
+
f"({entry['id']}): replace its file to revise it")
|
|
273
|
+
specs = [dict(f) for f in files or ()]
|
|
274
|
+
node = _node(graph, vid)
|
|
275
|
+
created = node is None
|
|
276
|
+
if node is None:
|
|
277
|
+
add_resource(graph, name=name or f"{master.name} {lvl}",
|
|
278
|
+
kind=_data(master).get("url_type") or "", files=specs,
|
|
279
|
+
tier="distribution", residency=residency,
|
|
280
|
+
packaging=packaging, size_bytes=size_bytes,
|
|
281
|
+
primitives=primitives, resource_id=vid)
|
|
282
|
+
else:
|
|
283
|
+
if not _is_resource(node):
|
|
284
|
+
raise ValueError(f"{vid!r} is a {getattr(node, 'node_type', '?')}, "
|
|
285
|
+
f"not a resource")
|
|
286
|
+
new_sum = next((s.get("checksum") for s in specs if s.get("checksum")), None)
|
|
287
|
+
old_sum = _data(node).get("checksum")
|
|
288
|
+
if new_sum and old_sum and new_sum != old_sum:
|
|
289
|
+
raise ValueError(f"the version {lvl!r} of {asset!r} holds other bytes "
|
|
290
|
+
f"({old_sum}): replace its file to revise it")
|
|
291
|
+
params = dict(parameters or {})
|
|
292
|
+
params["level"] = lvl
|
|
293
|
+
if purpose:
|
|
294
|
+
params["purpose"] = str(purpose)
|
|
295
|
+
if master_level:
|
|
296
|
+
params["source_level"] = str(master_level).strip()
|
|
297
|
+
step = declare_derivation(
|
|
298
|
+
graph, output=vid, inputs=[master_id], dtc_kind=DTC_KIND,
|
|
299
|
+
process_id=str(uuid.uuid5(_NS, f"lod_generation|{vid}")),
|
|
300
|
+
name=f"LOD generation {lvl} of {master.name}",
|
|
301
|
+
technique=technique, parameters=params, tool=tool,
|
|
302
|
+
software=list(software) if software else None, author=author, at=at)
|
|
303
|
+
return {"version_id": vid, "process_id": step["process_id"],
|
|
304
|
+
"created": created, "asset_id": asset, "level": lvl,
|
|
305
|
+
"purpose": str(purpose or ""), "warnings": step["warnings"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: s3dgraphy
|
|
3
|
-
Version: 1.6.0.
|
|
3
|
+
Version: 1.6.0.dev34
|
|
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>
|
|
@@ -299,6 +299,7 @@ src/s3dgraphy/resources/fs_backend.py
|
|
|
299
299
|
src/s3dgraphy/resources/minio_backend.py
|
|
300
300
|
src/s3dgraphy/resources/resolver.py
|
|
301
301
|
src/s3dgraphy/resources/tiles3tz.py
|
|
302
|
+
src/s3dgraphy/resources/versions.py
|
|
302
303
|
src/s3dgraphy/shelf/__init__.py
|
|
303
304
|
src/s3dgraphy/shelf/core.py
|
|
304
305
|
src/s3dgraphy/stamp/__init__.py
|
|
@@ -355,6 +356,7 @@ tests/test_add_resource.py
|
|
|
355
356
|
tests/test_ai_validation_nodes.py
|
|
356
357
|
tests/test_api_surface.py
|
|
357
358
|
tests/test_asset_dtc_protocol.py
|
|
359
|
+
tests/test_asset_versions.py
|
|
358
360
|
tests/test_aton_shapes.py
|
|
359
361
|
tests/test_attach_only.py
|
|
360
362
|
tests/test_authority_projection.py
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"""MICRO-ASSET-VERSIONI, A1 — an asset and its versions.
|
|
2
|
+
|
|
3
|
+
E.D., 30 Sep / 3 Oct 2026: the asset is the master resource, each version
|
|
4
|
+
(LOD1, LOD2…) a child resource made by a ``lod_generation`` step with
|
|
5
|
+
``dtc_derived_from`` the master, a level and a purpose. The semantic link (RM,
|
|
6
|
+
epoch, unit) is on the asset and the versions inherit it.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
import pytest
|
|
12
|
+
|
|
13
|
+
from s3dgraphy import api
|
|
14
|
+
from s3dgraphy.graph import Graph
|
|
15
|
+
from s3dgraphy.nodes.epoch_node import EpochNode
|
|
16
|
+
from s3dgraphy.nodes.representation_node import RepresentationModelNode
|
|
17
|
+
|
|
18
|
+
SHA = {k: "sha256:" + c * 64 for k, c in (("lod0", "0"), ("lod1", "1"),
|
|
19
|
+
("lod2", "2"), ("lod2b", "b"))}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _podio():
|
|
23
|
+
"""OB_PODIO: the master LOD0 (resident obj), hatted by an RM in an epoch."""
|
|
24
|
+
g = Graph("templu")
|
|
25
|
+
api.add_resource(g, resource_id="podio", name="OB_PODIO", kind="3d_model",
|
|
26
|
+
tier="master", residency="resident",
|
|
27
|
+
files=[{"path": "LOD0/OB_PODIO_LOD0.obj", "checksum": SHA["lod0"],
|
|
28
|
+
"media_type": "model/obj"}])
|
|
29
|
+
g.add_node(RepresentationModelNode("rm", name="OB_PODIO"))
|
|
30
|
+
g.add_edge("rm~podio", "rm", "podio", "has_linked_resource")
|
|
31
|
+
g.add_node(EpochNode("ep1", name="Phase I", start_time=-100, end_time=100))
|
|
32
|
+
g.add_edge("rm~ep1", "rm", "ep1", "has_first_epoch")
|
|
33
|
+
return g
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _three(g):
|
|
37
|
+
one = api.add_version(g, "podio", level="LOD1", purpose="web",
|
|
38
|
+
master_level="LOD0", residency="resident",
|
|
39
|
+
files=[{"path": "LOD1/OB_PODIO_LOD1.obj",
|
|
40
|
+
"checksum": SHA["lod1"], "media_type": "model/obj"}])
|
|
41
|
+
two = api.add_version(g, "podio", level="LOD2", purpose="preview",
|
|
42
|
+
master_level="LOD0", residency="resident",
|
|
43
|
+
files=[{"path": "LOD2/OB_PODIO_LOD2.obj",
|
|
44
|
+
"checksum": SHA["lod2"], "media_type": "model/obj"}])
|
|
45
|
+
return one, two
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def test_a_version_is_a_child_resource_made_by_lod_generation():
|
|
49
|
+
g = _podio()
|
|
50
|
+
one, _ = _three(g)
|
|
51
|
+
v = g.find_node_by_id(one["version_id"])
|
|
52
|
+
assert v.node_type == "resource" and v.data["url_type"] == "3d_model"
|
|
53
|
+
assert v.data["tier"] == "distribution"
|
|
54
|
+
edges = {(e.edge_source, e.edge_target, e.edge_type) for e in g.edges}
|
|
55
|
+
assert (one["version_id"], "podio", "dtc_derived_from") in edges
|
|
56
|
+
proc = g.find_node_by_id(one["process_id"])
|
|
57
|
+
assert proc.node_type == "dtc_process"
|
|
58
|
+
assert proc.data["dtc_kind"] == "lod_generation"
|
|
59
|
+
assert proc.data["parameters"] == {"level": "LOD1", "purpose": "web",
|
|
60
|
+
"source_level": "LOD0"}
|
|
61
|
+
assert (one["process_id"], "podio", "dtc_had_input") in edges
|
|
62
|
+
assert (one["process_id"], one["version_id"], "dtc_had_output") in edges
|
|
63
|
+
assert one["asset_id"] == "podio" and one["created"]
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_versions_of_lists_master_then_levels():
|
|
67
|
+
g = _podio()
|
|
68
|
+
_three(g)
|
|
69
|
+
rows = api.versions_of(g, "podio")
|
|
70
|
+
assert [(r["level"], r["master"], r["purpose"]) for r in rows] == \
|
|
71
|
+
[("LOD0", True, ""), ("LOD1", False, "web"), ("LOD2", False, "preview")]
|
|
72
|
+
assert [r["checksum"] for r in rows] == [SHA["lod0"], SHA["lod1"], SHA["lod2"]]
|
|
73
|
+
# the same answer from any of them
|
|
74
|
+
assert api.versions_of(g, rows[2]["id"]) == rows
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def test_adding_the_same_level_twice_changes_nothing():
|
|
78
|
+
g = _podio()
|
|
79
|
+
one, _ = _three(g)
|
|
80
|
+
n, e = len(g.nodes), len(g.edges)
|
|
81
|
+
again = api.add_version(g, "podio", level="LOD1", purpose="web",
|
|
82
|
+
files=[{"path": "LOD1/OB_PODIO_LOD1.obj",
|
|
83
|
+
"checksum": SHA["lod1"]}])
|
|
84
|
+
assert again["version_id"] == one["version_id"] and not again["created"]
|
|
85
|
+
assert (len(g.nodes), len(g.edges)) == (n, e)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def test_other_bytes_at_a_level_are_a_revision_not_a_second_version():
|
|
89
|
+
g = _podio()
|
|
90
|
+
_three(g)
|
|
91
|
+
with pytest.raises(ValueError, match="replace its file"):
|
|
92
|
+
api.add_version(g, "podio", level="LOD2",
|
|
93
|
+
files=[{"path": "x.obj", "checksum": SHA["lod2b"]}])
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def test_a_revised_version_keeps_its_level_and_versions_of_gives_the_current():
|
|
97
|
+
g = _podio()
|
|
98
|
+
_, two = _three(g)
|
|
99
|
+
out = api.replace_file(g, two["version_id"], None, checksum=SHA["lod2b"],
|
|
100
|
+
media_type="model/obj")
|
|
101
|
+
rows = api.versions_of(g, "podio")
|
|
102
|
+
lod2 = rows[-1]
|
|
103
|
+
assert lod2["level"] == "LOD2" and lod2["id"] == out["new_resource_id"]
|
|
104
|
+
assert lod2["checksum"] == SHA["lod2b"]
|
|
105
|
+
assert lod2["revisions"] == [two["version_id"], out["new_resource_id"]]
|
|
106
|
+
assert api.asset_of(g, out["new_resource_id"]) == "podio"
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def test_versions_inherit_the_semantic_link_of_the_asset():
|
|
110
|
+
g = _podio()
|
|
111
|
+
one, _ = _three(g)
|
|
112
|
+
links = api.inherited_links(g, one["version_id"])
|
|
113
|
+
assert links["asset_id"] == "podio" and links["inherited"]
|
|
114
|
+
assert [f["id"] for f in links["facets"]] == ["rm"]
|
|
115
|
+
assert [b["id"] for b in links["binds"]] == ["ep1"]
|
|
116
|
+
# nothing copied onto the version: no edge reaches it but its genesis
|
|
117
|
+
touching = {e.edge_type for e in g.edges if one["version_id"] in
|
|
118
|
+
(e.edge_source, e.edge_target)}
|
|
119
|
+
assert touching == {"dtc_derived_from", "dtc_had_output"}
|
|
120
|
+
assert not api.inherited_links(g, "podio")["inherited"]
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def test_store_backed_lists_the_versions_where_the_asset_goes():
|
|
124
|
+
g = _podio()
|
|
125
|
+
_three(g)
|
|
126
|
+
rows = api.store_backed_geometry(g)
|
|
127
|
+
assert len(rows) == 3
|
|
128
|
+
assert {r["node_id"] for r in rows} == {"rm"}
|
|
129
|
+
assert sorted(r.get("level") for r in rows) == ["LOD0", "LOD1", "LOD2"]
|
|
130
|
+
assert all(r["asset_id"] == "podio" for r in rows)
|
|
131
|
+
assert all([b["id"] for b in r["bind"]] == ["ep1"] for r in rows)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def test_a_resource_without_versions_reads_as_before():
|
|
135
|
+
g = _podio()
|
|
136
|
+
rows = api.store_backed_geometry(g)
|
|
137
|
+
assert len(rows) == 1 and "level" not in rows[0] and "asset_id" not in rows[0]
|
|
138
|
+
assert api.versions_of(g, "podio")[0]["level"] is None
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def test_versions_survive_the_emjson_round_trip():
|
|
142
|
+
g = _podio()
|
|
143
|
+
_three(g)
|
|
144
|
+
g2, _ = api.load_emjson(api.graph_to_emjson(g))
|
|
145
|
+
assert [(r["level"], r["purpose"], r["checksum"]) for r in api.versions_of(g2, "podio")] == \
|
|
146
|
+
[(r["level"], r["purpose"], r["checksum"]) for r in api.versions_of(g, "podio")]
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def test_versions_survive_rdf(tmp_path):
|
|
150
|
+
pytest.importorskip("rdflib")
|
|
151
|
+
from s3dgraphy.exporter.rdf_exporter import RDFExporter
|
|
152
|
+
from s3dgraphy.importer.rdf_importer import RDFImporter
|
|
153
|
+
g = _podio()
|
|
154
|
+
_three(g)
|
|
155
|
+
ttl = RDFExporter(str(tmp_path / "g.ttl"), format="turtle").export_single_graph(g)
|
|
156
|
+
back = RDFImporter().parse(ttl)[0]
|
|
157
|
+
assert [(r["level"], r["purpose"]) for r in api.versions_of(back, "podio")] == \
|
|
158
|
+
[("LOD0", ""), ("LOD1", "web"), ("LOD2", "preview")]
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def test_a_level_is_required():
|
|
162
|
+
g = _podio()
|
|
163
|
+
with pytest.raises(ValueError, match="level"):
|
|
164
|
+
api.add_version(g, "podio", level=" ")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_document_types.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_extractor_types.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_palette_icons.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_qualia_types.json
RENAMED
|
File without changes
|
|
File without changes
|
{s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/em_visual_rules.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev32 → s3dgraphy-1.6.0.dev34}/src/s3dgraphy/JSON_config/hdto_extension.ttl
RENAMED
|
File without changes
|