s3dgraphy 1.6.0.dev105__tar.gz → 1.6.0.dev106__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.dev105/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev106}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/pyproject.toml +1 -1
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +2 -1
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/__init__.py +1 -1
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/alternatives.py +196 -6
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/asset_list.py +49 -11
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/use_profiles.py +36 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy.egg-info/SOURCES.txt +1 -0
- s3dgraphy-1.6.0.dev106/tests/test_assets_livelli.py +140 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/README.md +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/alternative_cases.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/datamodel_translations.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em.ttl +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_basemap_sources.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_qualia_types.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_state_symbols.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/node_registry.generated.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/bozze/UT.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/bozze/UT0.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/bozze/district.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/bozze/site.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/container.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/hdto/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/hdto/hdt.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/hdto/heritage_entity.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/hdto/project.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/hdto/study.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/landscape_surface.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/proxy.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/tileset.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/version_gltf.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/version_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/version_scene.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/version_tiles.svg +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/version_for_cases.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/version_for_hardware_cases.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/__main__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/acquisition/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/acquisition/acquire.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/acquisition/descriptor.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/acquisition/mapping.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/ai_validation.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/annotation/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/annotation/paradata.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/annotation/reading.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/api.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/classification.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/container.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/contract/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/contract/connector.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/contract/consumer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/contract/core.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/contract/reference.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/crdt.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dissemination.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/capture.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/corpus.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/devices.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/ingest.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/dtc/residency.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/edges/connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/editorial.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/html_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/json_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/rdf_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/aton.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/frame.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/gltf.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/migrate.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/proxy.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/registration.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/store_backed.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/transform.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/geometry/wkt.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/contours.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/crs.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/footprint.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/geojson.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/geopackage.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/geotiff.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/landscape.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/layer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/shapefile.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/site.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/spatialite.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/gis/wkb.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/graph.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/graph_removal.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/hdto.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/iiif.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/base_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/csv_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/emjson_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/import_graphml.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/metashape_chain.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/pyarchinit_footprints.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/rdf_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/sheet_header.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/source_text.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/unit_numbers.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/importer/xml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/labels.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/landscape.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/language.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/links.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/authoring.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/narrative/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/narrative/bake.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/narrative/generation.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/narrative/query.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/narrative/registry.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/narrative/site_story.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/dtc_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/group_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/landscape_surface_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/landscape_unit_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/periodization_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/project_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/resource_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/study_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/nodes/translation_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/ownership.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/paradata_view.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/periodization.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/photogrammetry/delta.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/project_tree.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/property_source.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/publication.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/addresses.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/alignment.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/blend_folder.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/blend_room.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/consolidate.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/detail.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/files.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/graph_compose.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/locate.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/master_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/moved.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/object_store.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/s3_backend.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/storage_rows.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/tiles3tz.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/tileset_fit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/resources/versions.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/rights.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/access.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/engine.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/errors.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/inventory.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/pack.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/room_import/trust.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/shelf/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/shelf/core.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/spatiotemporal.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/stamp/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/stamp/absorb.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/stamp/emit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/stamp/hints.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/stamp/identity.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/study.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/temporal/relative_chronology.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/deliverable_report.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/ontology_html.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/tools/wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/translation.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/zero_hour.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy.egg-info/requires.txt +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_acquisition_fs.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_add_resource.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_ai_validation_nodes.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_alternative_labels.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_alternative_sets.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_alternatives_hat.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_anastylosis_document_type.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_api_surface.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_asset_dtc_protocol.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_asset_list.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_asset_versions.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_aton_shapes.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_attach_only.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_authority_projection.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_authority_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_blend_folder.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_blend_locator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_blend_room.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_bucket_alignment.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_canonical_document_rename.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_canvas_metadata_import.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_capture_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_capture_rdf_class.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_chronology_on_request.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_cloud_placeholders.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_coating_unit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_consolida_2.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_consolidate_compose.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_container.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_container_layouts.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_containment_tpq.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_contemporaneity.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_contract.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_contract_consumer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_convert_command.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_crdt.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_cycle_message_is_cheap.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_datamodel_fingerprint.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_datum_operation.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_detail.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_deterministic_ids.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_em_sourcelist.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_file_set_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_graphml_without_a_database.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_image_set_texturing.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_not_georeferenced.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_one_act_n_outputs.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev29_ttl_round_trip.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dev30_decisions.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_devices.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dissemination_tombstones.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dove_sta_il_testo.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dtc_corpus.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dtc_ingest.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dtc_neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dtc_projection.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_dtc_residency.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_edge_outside_graph.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_edge_ui_phrases.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_editorial.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_emjson_conformance.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_emjson_no_drawing_keys.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_emjson_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_emjson_schema_version.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_end_of_unit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_epoch_instances.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_epoch_undated_import.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_explicit_node_type_marker.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_extracted_from_unit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_file_frame.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_fit_affine_no_numpy.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_functional_units.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_georeference_scene.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_gis_base.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_gis_site.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_gltf_stitch.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_glyph_paths.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_graph_header_code.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_graph_helpers_indexed.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_graph_indices_alive.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_graph_indices_edges.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_graph_removal.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_graph_scope_migration.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_hdto_glyphs.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_hdto_projection.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_hdto_study.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_header_key_aliases.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_i_generi_dei_passi.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_iiif.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_il_modo_d_accesso.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_il_modo_dal_relay.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_il_proprietario_si_legge.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_il_riallineamento.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_import_without_residues.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_importer_edge_hygiene.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_impronte_saggi_tagli.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_iri_extendedmatrix.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_issue27_small_points.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_la_lingua_alla_nascita.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_la_lingua_dei_dati.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_la_lingua_nell_op.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_la_riga_d_intestazione.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_lab_orizzonti.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_landscape_ontology.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_le_traduzioni.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_lod_levels.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_lossless_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_mapping_authoring.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_mapping_csv_and_relations.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_masonry_unit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_material_color.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_merge_conflicts.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_migrate_legacy_proxy.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_authorship.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_bake_docx.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_figures.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_generation.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_mentions.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_query.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_scaffolder.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_site_place.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_narrative_unvalidated_export.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_node_datamodel_registry.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_node_type_map_integrity.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_one_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_one_spelling_writers.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_ontology_html.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_op_vocabulary.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_part_twins.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_photogrammetry_delta.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_physical_relation_spellings.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_piu_indirizzi.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_promote_keeps_proxy_type.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_promotion.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_property_as_source.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_property_owners.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_proxy_resource.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_proxy_retype.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_psx_locator.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_pyarchinit_tier2.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_qualia_dai_d7_d8.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_rdf_embedding.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_rdf_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_rdf_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_rdf_sub_epoch_direction.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reading_coords.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reading_migration.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reading_place.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reading_rdf.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_recompute_warnings.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_registration.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_release.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reproject.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_resource_files_implicit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_resource_layer.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_resource_representations.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_resource_revision.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_resource_tier.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_rm_container_node_group.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_room_import.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_room_import_access.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_room_import_inventory.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_room_import_trust.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_s3_backend.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_semantic_purity.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_series_vsf.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_shelf.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_shelf_facets.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_shelf_hatting.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_shelf_role_uri_table.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_shipped_mappings.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_source_list_mapping.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_source_text.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_spatiotemporal_entities.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_special_find_definitions.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_stable_study_code.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_stamp_hints.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_stamp_title_description.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_storage_rows.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_store_backed_geometry.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_stratiminer_api.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_study_metadata.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_threed_instances.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_threed_style.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_tileset_fit.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_tileset_resource.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_timbra_master.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_transform_form.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_ttl_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_unit_definition.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_unit_numbers.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_use_profiles.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_valore_proprieta_doppio.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_verifica_provenance.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_version_for.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_visual_assets.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_xlsx_importer_graph_init.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/tests/test_xlsx_source_column.py +0 -0
- {s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/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.dev106
|
|
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.dev106"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -1160,7 +1160,8 @@
|
|
|
1160
1160
|
"properties": {
|
|
1161
1161
|
"name": "P1_is_identified_by",
|
|
1162
1162
|
"description": "P3_has_note",
|
|
1163
|
-
"frame": {"kind": "node_element", "em_json": "data.frame", "rdf": null, "same_as": "ResourceNode.properties.frame", "note": "1.6.38: the frame of the container's alternative (a tileset of the whole survey) when it is said on the container: {crs, shift, note, source}, as ResourceNode.frame. The resource's own frame wins."}
|
|
1163
|
+
"frame": {"kind": "node_element", "em_json": "data.frame", "rdf": null, "same_as": "ResourceNode.properties.frame", "note": "1.6.38: the frame of the container's alternative (a tileset of the whole survey) when it is said on the container: {crs, shift, note, source}, as ResourceNode.frame. The resource's own frame wins."},
|
|
1164
|
+
"active_alternative": {"kind": "node_element", "em_json": "data.active_alternative", "rdf": null, "values": {"<use> | <target> | *": "container | members"}, "note": "MICRO-ASSETS-LIVELLI (E.D., 13 Nov 2026), proposed: which alternative the container lights, kept in the graph so every reader gives the same answer. Inside a container the meshes (its members) and the tileset of the whole (its own alternative, hatted by the container with has_linked_resource) are alternatives of each other: one is seen, or the other. The map goes from a use (heriverse, web, realtime…) or a target of EMStudio's Archive › Assets (mobile, web, desk) to «container» (the tileset) or «members» (the models, each with its version); «*» for every use not named. No key: the rule of resources.alternatives.choose_alternative (the tileset where it declares the use or fits the target's band). Written by resources.alternatives.set_active_alternative; read by choose_alternative and by asset_list (the budget counts only the alternative lit; the meshes a lit tileset covers get no proposal of reduction). A choice of presentation, not a fact of the survey: it belongs to the container as its frame does, and says nothing of the epochs, which stay on the members."}
|
|
1164
1165
|
}
|
|
1165
1166
|
}
|
|
1166
1167
|
}
|
|
@@ -549,12 +549,16 @@ def alternative_sets(graph, *, bounds: Optional[Dict[str, Any]] = None,
|
|
|
549
549
|
f"{len(epochs(hat_id))} epochs ({', '.join(name(x) for x in epochs(hat_id))}): "
|
|
550
550
|
f"an alternative does not cross epochs",
|
|
551
551
|
"cure": "one sub-container per epoch, each with its own alternative"})
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
552
|
+
out = {"hat": hat_id, "hat_kind": kind, "name": name(hat_id),
|
|
553
|
+
"node_type": str(getattr(node, "node_type", "") or ""),
|
|
554
|
+
"epochs": epochs(hat_id), "assets": assets, "alternatives": alts,
|
|
555
|
+
"reasons": reasons, "members": members,
|
|
556
|
+
"covers": covers if kind == "container" else [hat_id],
|
|
557
|
+
"coverage": coverage, "parent": parent}
|
|
558
|
+
if kind == "container":
|
|
559
|
+
# MICRO-ASSETS-LIVELLI · the choice written in the graph, by use
|
|
560
|
+
out["active"] = active_choices(graph, hat_id)
|
|
561
|
+
return out
|
|
558
562
|
|
|
559
563
|
seen: set = set()
|
|
560
564
|
top: List[Dict[str, Any]] = []
|
|
@@ -665,6 +669,10 @@ def choose_alternative(aset: Dict[str, Any], use: Any,
|
|
|
665
669
|
from .versions import choose_version
|
|
666
670
|
uses = [use] if isinstance(use, str) else list(use or [])
|
|
667
671
|
hat = aset.get("hat")
|
|
672
|
+
if force is None and aset.get("hat_kind") == "container":
|
|
673
|
+
# MICRO-ASSETS-LIVELLI (E.D., 13 Nov 2026) · the choice the graph
|
|
674
|
+
# keeps for these uses (:func:`set_active_alternative`) is the hand's
|
|
675
|
+
force = active_of(aset.get("active") or {}, uses)
|
|
668
676
|
if aset.get("hat_kind") != "container":
|
|
669
677
|
ch = choose_version(aset.get("alternatives") or [], uses, prefer_level)
|
|
670
678
|
if ch is None:
|
|
@@ -701,3 +709,185 @@ def choose_alternative(aset: Dict[str, Any], use: Any,
|
|
|
701
709
|
if out["use"] is None:
|
|
702
710
|
out["note"] = f"no version for {', '.join(uses) or 'no use'}: the members, each with its master"
|
|
703
711
|
return out
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
# ── MICRO-ASSETS-LIVELLI · the active alternative, kept in the graph ─────────
|
|
715
|
+
#
|
|
716
|
+
# E.D., 13 Nov 2026: inside a container the meshes and the tileset are, by
|
|
717
|
+
# default, ALTERNATIVES of each other — one is seen, or the other. The person
|
|
718
|
+
# may change the one lit for a use, and the choice is written in the graph,
|
|
719
|
+
# where every reader (EMStudio, EM Tools, Heriverse) finds the same answer: a
|
|
720
|
+
# property of the CONTAINER, ``data.active_alternative`` (node datamodel,
|
|
721
|
+
# RepresentationModelNodeGroup.properties.active_alternative), a map from a
|
|
722
|
+
# use — or a target of Archive › Assets (``mobile``, ``web``, ``desk``) — to
|
|
723
|
+
# ``"container"`` (its own alternative, the tileset) or ``"members"`` (the
|
|
724
|
+
# models, each with its version); ``"*"`` for every use not named. No key: the
|
|
725
|
+
# rule of :func:`choose_alternative` (the tileset when it declares the use).
|
|
726
|
+
|
|
727
|
+
ACTIVE_KEY = "active_alternative"
|
|
728
|
+
ACTIVE_WHICH = ("container", "members")
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
def active_choices(graph, group_id: str) -> Dict[str, str]:
|
|
732
|
+
"""The choices a container keeps, ``{use: "container" | "members"}``
|
|
733
|
+
(only well-formed entries)."""
|
|
734
|
+
node = _node(graph, group_id)
|
|
735
|
+
raw = _data(node).get(ACTIVE_KEY) if node is not None else None
|
|
736
|
+
if not isinstance(raw, dict):
|
|
737
|
+
return {}
|
|
738
|
+
return {str(k): str(v) for k, v in raw.items() if v in ACTIVE_WHICH}
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
def active_of(choices: Dict[str, str], uses: Iterable[str]) -> Optional[str]:
|
|
742
|
+
"""The choice for these uses: the first use named, else ``"*"``, else
|
|
743
|
+
None (the rule decides)."""
|
|
744
|
+
for u in list(uses or []):
|
|
745
|
+
if u in choices:
|
|
746
|
+
return choices[u]
|
|
747
|
+
return choices.get("*")
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
def set_active_alternative(graph, group_id: str, which: Optional[str],
|
|
751
|
+
use: str = "*") -> Dict[str, Any]:
|
|
752
|
+
"""Write which alternative a container lights for ``use`` (``"*"``: every
|
|
753
|
+
use not named): ``"container"`` (its own alternative, the tileset) or
|
|
754
|
+
``"members"`` (its models); ``None`` takes the choice away (the rule
|
|
755
|
+
decides again). Idempotent. → ``{group, use, which, choices}``."""
|
|
756
|
+
node = _node(graph, group_id)
|
|
757
|
+
if getattr(node, "node_type", "") != GROUP_NODE_TYPE:
|
|
758
|
+
raise ValueError(f"{group_id!r} is not an RM container")
|
|
759
|
+
if which is not None and which not in ACTIVE_WHICH:
|
|
760
|
+
raise ValueError(f"which is one of {ACTIVE_WHICH} or None, not {which!r}")
|
|
761
|
+
d = _data(node)
|
|
762
|
+
choices = active_choices(graph, group_id)
|
|
763
|
+
if which is None:
|
|
764
|
+
choices.pop(str(use), None)
|
|
765
|
+
else:
|
|
766
|
+
choices[str(use)] = which
|
|
767
|
+
if choices:
|
|
768
|
+
d[ACTIVE_KEY] = choices
|
|
769
|
+
else:
|
|
770
|
+
d.pop(ACTIVE_KEY, None)
|
|
771
|
+
return {"group": group_id, "use": use, "which": which, "choices": dict(choices)}
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
# ── MICRO-ASSETS-LIVELLI · the containers by hand (Archive › Assets) ─────────
|
|
775
|
+
#
|
|
776
|
+
# A row dragged onto a container, a container made from a selection: the
|
|
777
|
+
# graph's own gestures, so that EMStudio's page carries no rule of its own.
|
|
778
|
+
# Membership is m:n (E.D. 23 Oct 2026); the file on disk never moves — the
|
|
779
|
+
# graph changes, not the tree of folders.
|
|
780
|
+
|
|
781
|
+
def put_in_container(graph, node_id: str, group_id: str, *,
|
|
782
|
+
move_from: Optional[str] = None) -> Dict[str, Any]:
|
|
783
|
+
"""``node_id`` (a model or a container) becomes a MEMBER of ``group_id``
|
|
784
|
+
(``is_in_representation_model_group``). With ``move_from`` it leaves that
|
|
785
|
+
container (a move); without, it is added and keeps the others (m:n).
|
|
786
|
+
A container cannot enter itself nor one of its own members. Idempotent.
|
|
787
|
+
→ ``{node, group, added, left}``."""
|
|
788
|
+
group = _node(graph, group_id)
|
|
789
|
+
if getattr(group, "node_type", "") != GROUP_NODE_TYPE:
|
|
790
|
+
raise ValueError(f"{group_id!r} is not an RM container")
|
|
791
|
+
node = _node(graph, node_id)
|
|
792
|
+
if node is None:
|
|
793
|
+
raise ValueError(f"{node_id!r} is not a node of this graph")
|
|
794
|
+
if node_id == group_id or (getattr(node, "node_type", "") == GROUP_NODE_TYPE
|
|
795
|
+
and group_id in _inside(graph, node_id)):
|
|
796
|
+
raise ValueError(f"{getattr(node, 'name', node_id)!r} cannot enter a container it holds")
|
|
797
|
+
left = []
|
|
798
|
+
if move_from and move_from != group_id:
|
|
799
|
+
for e in list(graph.edges):
|
|
800
|
+
if e.edge_type == EDGE_MEMBER and e.edge_source == node_id and e.edge_target == move_from:
|
|
801
|
+
graph.remove_edge(e.edge_id)
|
|
802
|
+
left.append(move_from)
|
|
803
|
+
added = group_id not in containers_of(graph, node_id)
|
|
804
|
+
if added:
|
|
805
|
+
graph.add_edge(f"{node_id}_{EDGE_MEMBER}_{group_id}", node_id, group_id, EDGE_MEMBER)
|
|
806
|
+
return {"node": node_id, "group": group_id, "added": added, "left": left}
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
def _inside(graph, group_id: str) -> List[str]:
|
|
810
|
+
"""Every container under ``group_id`` (its sub-containers, deep)."""
|
|
811
|
+
out, todo = [], [group_id]
|
|
812
|
+
while todo:
|
|
813
|
+
g = todo.pop()
|
|
814
|
+
for m in members_of(graph, g):
|
|
815
|
+
if getattr(_node(graph, m), "node_type", "") == GROUP_NODE_TYPE and m not in out:
|
|
816
|
+
out.append(m)
|
|
817
|
+
todo.append(m)
|
|
818
|
+
return out
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
def create_container(graph, label: str, *, epoch_id: Optional[str] = None,
|
|
822
|
+
document_id: Optional[str] = None,
|
|
823
|
+
members: Sequence[str] = (), group_id: Optional[str] = None) -> Dict[str, Any]:
|
|
824
|
+
"""A new RM container named ``label``: its epoch reaches it with
|
|
825
|
+
``has_representation_model`` (EpochNode → container, admitted by the
|
|
826
|
+
connections datamodel; :func:`container_own_epochs` reads it — the
|
|
827
|
+
«default» epochs, the members keep theirs), the Document that publishes it
|
|
828
|
+
the same (Document → container, as «Survey 2015» under D.01), and
|
|
829
|
+
``members`` put in it (added: m:n). The id follows :func:`group_id_for`
|
|
830
|
+
(from the document when given), ``-2``… when taken.
|
|
831
|
+
→ ``{group_id, created, members}``."""
|
|
832
|
+
from ..nodes.group_node import RepresentationModelNodeGroup
|
|
833
|
+
label = str(label or "").strip()
|
|
834
|
+
if not label:
|
|
835
|
+
raise ValueError("a container needs a name")
|
|
836
|
+
for ref, kind in ((epoch_id, "EpochNode"), (document_id, None)):
|
|
837
|
+
if ref and _node(graph, ref) is None:
|
|
838
|
+
raise ValueError(f"{ref!r} is not a node of this graph")
|
|
839
|
+
if ref and kind and getattr(_node(graph, ref), "node_type", "") != kind:
|
|
840
|
+
raise ValueError(f"{ref!r} is not an epoch")
|
|
841
|
+
gid = group_id or group_id_for(label, document_id or "")
|
|
842
|
+
base, n = gid, 2
|
|
843
|
+
while _node(graph, gid) is not None:
|
|
844
|
+
gid = f"{base}-{n}"
|
|
845
|
+
n += 1
|
|
846
|
+
graph.add_node(RepresentationModelNodeGroup(node_id=gid, name=label, description=""))
|
|
847
|
+
for src in (epoch_id, document_id):
|
|
848
|
+
if src:
|
|
849
|
+
graph.add_edge(f"{src}_has_representation_model_{gid}", src, gid,
|
|
850
|
+
"has_representation_model")
|
|
851
|
+
put = [m for m in members if put_in_container(graph, m, gid)["added"]]
|
|
852
|
+
return {"group_id": gid, "created": True, "members": put}
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
def rename_container(graph, group_id: str, label: str) -> Dict[str, Any]:
|
|
856
|
+
"""A container's name (its id stays)."""
|
|
857
|
+
node = _node(graph, group_id)
|
|
858
|
+
if getattr(node, "node_type", "") != GROUP_NODE_TYPE:
|
|
859
|
+
raise ValueError(f"{group_id!r} is not an RM container")
|
|
860
|
+
label = str(label or "").strip()
|
|
861
|
+
if not label:
|
|
862
|
+
raise ValueError("a container needs a name")
|
|
863
|
+
old = node.name
|
|
864
|
+
node.name = label
|
|
865
|
+
return {"group": group_id, "old": old, "name": label}
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
def empty_container(graph, group_id: str) -> Dict[str, Any]:
|
|
869
|
+
"""Every member leaves the container (their other containers, epochs and
|
|
870
|
+
documents stay); its own alternative (``has_linked_resource``) stays
|
|
871
|
+
with it. → ``{group, left}``."""
|
|
872
|
+
if getattr(_node(graph, group_id), "node_type", "") != GROUP_NODE_TYPE:
|
|
873
|
+
raise ValueError(f"{group_id!r} is not an RM container")
|
|
874
|
+
left = []
|
|
875
|
+
for e in list(graph.edges):
|
|
876
|
+
if e.edge_type == EDGE_MEMBER and e.edge_target == group_id:
|
|
877
|
+
graph.remove_edge(e.edge_id)
|
|
878
|
+
left.append(e.edge_source)
|
|
879
|
+
return {"group": group_id, "left": left}
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
def remove_container(graph, group_id: str) -> Dict[str, Any]:
|
|
883
|
+
"""An EMPTY container goes, with its edges (its epochs, its document, the
|
|
884
|
+
container it is in). One with members, or with an alternative of its own,
|
|
885
|
+
is refused: empty it first, or move its alternative."""
|
|
886
|
+
if getattr(_node(graph, group_id), "node_type", "") != GROUP_NODE_TYPE:
|
|
887
|
+
raise ValueError(f"{group_id!r} is not an RM container")
|
|
888
|
+
if members_of(graph, group_id):
|
|
889
|
+
raise ValueError("the container is not empty: empty it first")
|
|
890
|
+
if any(e.edge_type == EDGE_HAT and e.edge_source == group_id for e in graph.edges):
|
|
891
|
+
raise ValueError("the container has an alternative of its own: move it to another first")
|
|
892
|
+
graph.remove_node(group_id)
|
|
893
|
+
return {"group": group_id, "removed": True}
|
|
@@ -393,7 +393,19 @@ def cover_by_tilesets(graph, assets: List[Dict[str, Any]]) -> Dict[str, int]:
|
|
|
393
393
|
(«serve per epoca: il tileset non si divide»), or a mesh is cited alone in
|
|
394
394
|
a narrative. Where the tileset does not fit, the meshes keep their
|
|
395
395
|
proposal and say why the tileset does not cover them yet. → the meshes
|
|
396
|
-
covered per target.
|
|
396
|
+
covered per target.
|
|
397
|
+
|
|
398
|
+
MICRO-ASSETS-LIVELLI (E.D., 13 Nov 2026) · meshes and tileset are
|
|
399
|
+
ALTERNATIVES of each other: the container's choice kept in the graph
|
|
400
|
+
(:func:`.alternatives.set_active_alternative`, by target, by use or
|
|
401
|
+
``*``) wins over the rule — ``container`` covers the meshes even where
|
|
402
|
+
the tileset is out of its band or the meshes lie in several epochs (said
|
|
403
|
+
in their why), ``members`` switches the tileset off for that target (state
|
|
404
|
+
``na``, ``off_by_choice``) and leaves the meshes their proposals. Each
|
|
405
|
+
container row says, per target, the alternative lit (``alternative``:
|
|
406
|
+
``{active, chosen}``). A member WITHOUT an epoch is not «another epoch»:
|
|
407
|
+
only the members that have epochs are compared."""
|
|
408
|
+
from .alternatives import active_choices, active_of
|
|
397
409
|
cited = None
|
|
398
410
|
n = {k: 0 for k in STREAMED}
|
|
399
411
|
for c in assets:
|
|
@@ -401,26 +413,50 @@ def cover_by_tilesets(graph, assets: List[Dict[str, Any]]) -> Dict[str, int]:
|
|
|
401
413
|
continue
|
|
402
414
|
tv = next((v for v in c["versions"] if v["tileset"] and v["id"] in
|
|
403
415
|
{c["targets"][k]["loads"] for k in STREAMED}), None)
|
|
416
|
+
if tv is None:
|
|
417
|
+
tv = next((v for v in c["versions"] if v["tileset"]), None)
|
|
404
418
|
if tv is None:
|
|
405
419
|
continue
|
|
406
420
|
members = [a for a in assets if a is not c and a["kind"] == "rm"
|
|
407
421
|
and any(x["id"] == c["id"] for x in a["containers"])]
|
|
422
|
+
choices = active_choices(graph, c["id"])
|
|
423
|
+
c["alternative"] = {}
|
|
408
424
|
if not members:
|
|
409
425
|
continue
|
|
410
426
|
if cited is None:
|
|
411
427
|
cited = _cited_alone(graph)
|
|
412
|
-
epochs = {tuple(sorted(a["epochs"])) for a in members}
|
|
428
|
+
epochs = {tuple(sorted(a["epochs"])) for a in members if a["epochs"]}
|
|
413
429
|
by_epoch = len(epochs) > 1
|
|
414
|
-
for
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
tc
|
|
430
|
+
for k in STREAMED:
|
|
431
|
+
chosen = active_of(choices, [k, *TARGETS[k]["uses"]])
|
|
432
|
+
tc = c["targets"][k]
|
|
433
|
+
if chosen == "members":
|
|
434
|
+
c["alternative"][k] = {"active": "members", "chosen": True}
|
|
435
|
+
if tc["state"] != "na":
|
|
436
|
+
for v in c["versions"]:
|
|
437
|
+
if k in v["loaded_by"]:
|
|
438
|
+
v["loaded_by"].remove(k)
|
|
439
|
+
say = "spento: per questo uso sono scelte le mesh del contenitore"
|
|
440
|
+
c["targets"][k] = {**tc, "state": "na", "why": say, "off_by_choice": True,
|
|
441
|
+
"proposal": {"tool": "keep", "triangles": None, "texture": None,
|
|
442
|
+
"ktx2": False, "why": say}}
|
|
443
|
+
for a in members:
|
|
444
|
+
cell = a["targets"][k]
|
|
445
|
+
if cell["state"] != "na":
|
|
446
|
+
cell["tileset_of"] = {"id": c["id"], "name": c["name"], "state": "na"}
|
|
447
|
+
continue
|
|
448
|
+
lit = chosen == "container" or tc["state"] == "ok"
|
|
449
|
+
c["alternative"][k] = {"active": "container" if lit else "members", "chosen": chosen is not None}
|
|
450
|
+
for a in members:
|
|
451
|
+
alone = ("" if chosen == "container" else
|
|
452
|
+
"serve per epoca: il tileset non si divide" if by_epoch else
|
|
453
|
+
f"usata da sola nella narrazione «{cited[a['id']]}»: il tileset non si divide"
|
|
454
|
+
if a["id"] in cited else "")
|
|
455
|
+
cell = a["targets"][k]
|
|
420
456
|
if cell["state"] == "na":
|
|
421
457
|
continue
|
|
422
458
|
cell["tileset_of"] = {"id": c["id"], "name": c["name"], "state": tc["state"]}
|
|
423
|
-
if
|
|
459
|
+
if not lit:
|
|
424
460
|
cell["why"] = f"{cell['why']} (il tileset di {c['name']} non la copre: {tc['why']})"
|
|
425
461
|
continue
|
|
426
462
|
if alone:
|
|
@@ -429,14 +465,16 @@ def cover_by_tilesets(graph, assets: List[Dict[str, Any]]) -> Dict[str, int]:
|
|
|
429
465
|
cell["proposal"] = {**cell["proposal"], "why": f"{alone} — {cell['proposal']['why']}"}
|
|
430
466
|
continue
|
|
431
467
|
say = f"coperta dal tileset di {c['name']}"
|
|
468
|
+
if chosen == "container":
|
|
469
|
+
say += " (scelto nel grafo)"
|
|
432
470
|
for v in a["versions"]:
|
|
433
471
|
if k in v["loaded_by"]:
|
|
434
472
|
v["loaded_by"].remove(k)
|
|
435
473
|
a["targets"][k] = {"state": "na", "loads": cell["loads"], "why": say,
|
|
436
474
|
"covered_by": {"id": c["id"], "name": c["name"], "version": tv["id"]},
|
|
437
475
|
"tileset_of": cell["tileset_of"],
|
|
438
|
-
"proposal": {"tool": "keep", "triangles": None, "texture": None,
|
|
439
|
-
"why": say}}
|
|
476
|
+
"proposal": {"tool": "keep", "triangles": None, "texture": None,
|
|
477
|
+
"ktx2": False, "why": say}}
|
|
440
478
|
n[k] += 1
|
|
441
479
|
return n
|
|
442
480
|
|
|
@@ -1484,6 +1484,42 @@ def list_versions(folder: str, model: Optional[str] = None, *, measure: bool = T
|
|
|
1484
1484
|
return out
|
|
1485
1485
|
|
|
1486
1486
|
|
|
1487
|
+
IMAGE_EXTS = (".png", ".jpg", ".jpeg", ".ktx2", ".webp", ".basis", ".tga", ".tif", ".tiff", ".exr")
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
def version_files(entry: str) -> Dict[str, Any]:
|
|
1491
|
+
"""Every file that goes with ONE version, wherever it is (MICRO-ASSETS-
|
|
1492
|
+
LIVELLI, E.D. 13 Nov 2026: the versions the graph cites, not only those in
|
|
1493
|
+
a ``versions/`` folder): the ``.glb``/``.stl`` itself, or a ``.gltf`` with
|
|
1494
|
+
its ``.bin`` and textures — the whole folder when the glTF sits in a
|
|
1495
|
+
folder named as a version (``<model>@<level>…/``) — and its stamp and
|
|
1496
|
+
hints beside it. → ``{entry, path, files, bytes, images}`` (``images``:
|
|
1497
|
+
the texture files among ``files``, what a removal may keep when another
|
|
1498
|
+
geometry uses them). A file that cannot be read is listed alone."""
|
|
1499
|
+
entry = os.path.abspath(entry)
|
|
1500
|
+
path = entry
|
|
1501
|
+
parent = os.path.dirname(entry)
|
|
1502
|
+
files: List[str] = [entry]
|
|
1503
|
+
if entry.lower().endswith(".gltf") and parse_version_name(os.path.basename(parent)) is not None:
|
|
1504
|
+
path = parent
|
|
1505
|
+
for root, _dirs, fs in os.walk(parent):
|
|
1506
|
+
files += [os.path.join(root, f) for f in fs]
|
|
1507
|
+
elif entry.lower().endswith(".gltf"):
|
|
1508
|
+
try:
|
|
1509
|
+
files += list(measure_gltf(entry)["files"])
|
|
1510
|
+
except (OSError, ValueError, KeyError, IndexError, struct.error):
|
|
1511
|
+
pass
|
|
1512
|
+
side = sidecars(entry)
|
|
1513
|
+
if path != entry:
|
|
1514
|
+
outer = sidecars(path)
|
|
1515
|
+
side = {k: side[k] or outer[k] for k in side}
|
|
1516
|
+
files += [f for f in side.values() if f]
|
|
1517
|
+
files = sorted(set(os.path.abspath(f) for f in files if os.path.exists(f)))
|
|
1518
|
+
return {"entry": entry, "path": path, "files": files,
|
|
1519
|
+
"bytes": sum(os.path.getsize(f) for f in files if os.path.isfile(f)),
|
|
1520
|
+
"images": [f for f in files if f.lower().endswith(IMAGE_EXTS)]}
|
|
1521
|
+
|
|
1522
|
+
|
|
1487
1523
|
def stl_triangles(path: str) -> Optional[int]:
|
|
1488
1524
|
"""The triangles of an STL: a binary one says it in its header, an ASCII
|
|
1489
1525
|
one counts its ``facet`` lines. None when it cannot be read."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: s3dgraphy
|
|
3
|
-
Version: 1.6.0.
|
|
3
|
+
Version: 1.6.0.dev106
|
|
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>
|
|
@@ -443,6 +443,7 @@ tests/test_api_surface.py
|
|
|
443
443
|
tests/test_asset_dtc_protocol.py
|
|
444
444
|
tests/test_asset_list.py
|
|
445
445
|
tests/test_asset_versions.py
|
|
446
|
+
tests/test_assets_livelli.py
|
|
446
447
|
tests/test_aton_shapes.py
|
|
447
448
|
tests/test_attach_only.py
|
|
448
449
|
tests/test_authority_projection.py
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"""MICRO-ASSETS-LIVELLI (E.D., 13 Nov 2026) · meshes and tileset as
|
|
2
|
+
alternatives in a container, the choice kept in the graph, and the
|
|
3
|
+
containers by hand (a row dragged onto a container, a container made from a
|
|
4
|
+
selection)."""
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
from s3dgraphy.nodes.epoch_node import EpochNode
|
|
9
|
+
from s3dgraphy.resources import alternatives as ALT
|
|
10
|
+
from s3dgraphy.resources import asset_list as AL
|
|
11
|
+
|
|
12
|
+
from tests.test_tileset_fit import _study_with_members
|
|
13
|
+
|
|
14
|
+
FITS = {"tiles": 1, "read": 1, "per_tile": [[10, 64]], "max_triangles": 10, "max_texture_side": 64}
|
|
15
|
+
BIG = {"tiles": 2, "read": 2, "per_tile": [[9000, 1024], [9000, 512]], "max_triangles": 9000, "max_texture_side": 1024}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _by_name(g, st):
|
|
19
|
+
return {x["name"]: x for x in AL.asset_list(g, tiles=lambda e: st)["assets"]}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_a_member_without_epoch_is_not_another_epoch():
|
|
23
|
+
# Templu Mare v9, Survey2015: nine meshes in «XX sec» and one RMSF with no
|
|
24
|
+
# epoch — the tileset covered none of them («serve per epoca»)
|
|
25
|
+
g, _t = _study_with_members()
|
|
26
|
+
g.add_node(EpochNode(node_id="e1", name="XX sec", start_time=1900, end_time=2000))
|
|
27
|
+
g.add_edge("x1", "e1", "rm_rb1", "has_representation_model")
|
|
28
|
+
a = _by_name(g, FITS)
|
|
29
|
+
assert a["rm_rb1"]["epochs"] == ["XX sec"] and a["rm_rb2"]["epochs"] == []
|
|
30
|
+
for m in ("rm_rb1", "rm_rb2"):
|
|
31
|
+
assert a[m]["targets"]["web"]["covered_by"]["name"] == "Survey2015"
|
|
32
|
+
assert a["Survey2015"]["alternative"]["web"] == {"active": "container", "chosen": False}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_the_choice_in_the_graph_lights_the_members_or_the_tileset():
|
|
36
|
+
g, _t = _study_with_members()
|
|
37
|
+
out = ALT.set_active_alternative(g, "grp", "members", use="web")
|
|
38
|
+
assert out["choices"] == {"web": "members"}
|
|
39
|
+
assert g.find_node_by_id("grp").data[ALT.ACTIVE_KEY] == {"web": "members"}
|
|
40
|
+
a = _by_name(g, FITS)
|
|
41
|
+
web = a["Survey2015"]["targets"]["web"]
|
|
42
|
+
assert web["state"] == "na" and web["off_by_choice"] and "web" not in a["Survey2015"]["versions"][-1]["loaded_by"]
|
|
43
|
+
assert a["Survey2015"]["alternative"]["web"] == {"active": "members", "chosen": True}
|
|
44
|
+
assert not a["rm_rb1"]["targets"]["web"].get("covered_by")
|
|
45
|
+
# the other targets keep the rule
|
|
46
|
+
assert a["rm_rb1"]["targets"]["desk"]["covered_by"]
|
|
47
|
+
# «container» for every use: covers even where the tileset is over the band
|
|
48
|
+
ALT.set_active_alternative(g, "grp", None, use="web")
|
|
49
|
+
ALT.set_active_alternative(g, "grp", "container")
|
|
50
|
+
a = _by_name(g, BIG)
|
|
51
|
+
assert a["Survey2015"]["targets"]["mobile"]["state"] == "todo"
|
|
52
|
+
cell = a["rm_rb1"]["targets"]["mobile"]
|
|
53
|
+
assert cell["covered_by"] and cell["why"].endswith("(scelto nel grafo)")
|
|
54
|
+
assert a["Survey2015"]["alternative"]["mobile"] == {"active": "container", "chosen": True}
|
|
55
|
+
# taken away: the rule again, and no key left on the node
|
|
56
|
+
ALT.set_active_alternative(g, "grp", None)
|
|
57
|
+
assert ALT.ACTIVE_KEY not in g.find_node_by_id("grp").data
|
|
58
|
+
with pytest.raises(ValueError):
|
|
59
|
+
ALT.set_active_alternative(g, "grp", "both")
|
|
60
|
+
with pytest.raises(ValueError):
|
|
61
|
+
ALT.set_active_alternative(g, "rm_rb1", "members")
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def test_choose_alternative_reads_the_graphs_choice():
|
|
65
|
+
g, _t = _study_with_members()
|
|
66
|
+
ALT.set_active_alternative(g, "grp", "members", use="heriverse")
|
|
67
|
+
s = ALT.find_set(ALT.alternative_sets(g), "grp")
|
|
68
|
+
assert s["active"] == {"heriverse": "members"}
|
|
69
|
+
assert ALT.choose_alternative(s, ["heriverse"])["level"] == "members"
|
|
70
|
+
assert ALT.choose_alternative(s, ["heriverse"], force="container")["level"] == "container"
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def test_put_in_container_adds_or_moves_and_refuses_a_loop():
|
|
74
|
+
g, _t = _study_with_members()
|
|
75
|
+
made = ALT.create_container(g, "Fase 2013", members=["rm_rb1"])
|
|
76
|
+
gid = made["group_id"]
|
|
77
|
+
assert gid == "rmgroup_Fase_2013" and made["members"] == ["rm_rb1"]
|
|
78
|
+
assert sorted(ALT.containers_of(g, "rm_rb1")) == sorted(["grp", gid]) # m:n: added
|
|
79
|
+
out = ALT.put_in_container(g, "rm_rb2", gid, move_from="grp")
|
|
80
|
+
assert out["added"] and out["left"] == ["grp"] and ALT.containers_of(g, "rm_rb2") == [gid]
|
|
81
|
+
assert not ALT.put_in_container(g, "rm_rb2", gid)["added"] # idempotent
|
|
82
|
+
ALT.put_in_container(g, gid, "grp")
|
|
83
|
+
with pytest.raises(ValueError):
|
|
84
|
+
ALT.put_in_container(g, "grp", gid) # grp holds gid
|
|
85
|
+
with pytest.raises(ValueError):
|
|
86
|
+
ALT.put_in_container(g, gid, gid)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def test_create_with_epoch_and_document_rename_empty_remove():
|
|
90
|
+
from s3dgraphy.nodes.document_node import DocumentNode
|
|
91
|
+
g, _t = _study_with_members()
|
|
92
|
+
g.add_node(EpochNode(node_id="e13", name="2013", start_time=2013, end_time=2013))
|
|
93
|
+
g.add_node(DocumentNode(node_id="D.09", name="D.09", description=""))
|
|
94
|
+
gid = ALT.create_container(g, "Rilievo 2013", epoch_id="e13", document_id="D.09")["group_id"]
|
|
95
|
+
assert gid == "D.09_rmgroup"
|
|
96
|
+
assert ALT.container_own_epochs(g, gid) == ["e13"]
|
|
97
|
+
assert any(e.edge_type == "has_representation_model" and e.edge_source == "D.09" and e.edge_target == gid
|
|
98
|
+
for e in g.edges)
|
|
99
|
+
assert ALT.create_container(g, "Rilievo 2013", document_id="D.09")["group_id"] == "D.09_rmgroup-2"
|
|
100
|
+
with pytest.raises(ValueError):
|
|
101
|
+
ALT.create_container(g, "x", epoch_id="D.09")
|
|
102
|
+
ALT.rename_container(g, gid, "Rilievo 2013 (Maxar)")
|
|
103
|
+
assert g.find_node_by_id(gid).name == "Rilievo 2013 (Maxar)"
|
|
104
|
+
ALT.put_in_container(g, "rm_rb1", gid)
|
|
105
|
+
with pytest.raises(ValueError):
|
|
106
|
+
ALT.remove_container(g, gid)
|
|
107
|
+
assert ALT.empty_container(g, gid)["left"] == ["rm_rb1"]
|
|
108
|
+
assert ALT.containers_of(g, "rm_rb1") == ["grp"]
|
|
109
|
+
ALT.remove_container(g, gid)
|
|
110
|
+
assert g.find_node_by_id(gid) is None
|
|
111
|
+
assert not any(gid in (e.edge_source, e.edge_target) for e in g.edges)
|
|
112
|
+
# a container with an alternative of its own is not removed even empty
|
|
113
|
+
ALT.empty_container(g, "grp")
|
|
114
|
+
with pytest.raises(ValueError):
|
|
115
|
+
ALT.remove_container(g, "grp")
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def test_version_files_wherever_the_version_is(tmp_path):
|
|
119
|
+
# MICRO-ASSETS-LIVELLI p.1 · a version the graph cites in the project's RM
|
|
120
|
+
# folder (not in versions/): the glb with its stamp and hints; a glTF in a
|
|
121
|
+
# folder named as a version: the whole folder, its images apart
|
|
122
|
+
from s3dgraphy.resources import use_profiles as UP
|
|
123
|
+
glb = tmp_path / "ME_EST_L_LOD1@lod2-mobile_ar.glb"
|
|
124
|
+
glb.write_bytes(b"glTF")
|
|
125
|
+
(tmp_path / "ME_EST_L_LOD1@lod2-mobile_ar.glb.stamp.json").write_text("{}")
|
|
126
|
+
(tmp_path / "ME_EST_L_LOD1@lod2-mobile_ar.glb.hints.json").write_text("{}")
|
|
127
|
+
(tmp_path / "other@lod2-mobile_ar.glb").write_bytes(b"glTF")
|
|
128
|
+
r = UP.version_files(str(glb))
|
|
129
|
+
assert [p.rsplit("/", 1)[1] for p in r["files"]] == [
|
|
130
|
+
"ME_EST_L_LOD1@lod2-mobile_ar.glb", "ME_EST_L_LOD1@lod2-mobile_ar.glb.hints.json",
|
|
131
|
+
"ME_EST_L_LOD1@lod2-mobile_ar.glb.stamp.json"]
|
|
132
|
+
assert r["images"] == [] and r["bytes"] == 8
|
|
133
|
+
d = tmp_path / "ME_EST_L_LOD1@lod0-aton-heriverse-fcdcf422"
|
|
134
|
+
d.mkdir()
|
|
135
|
+
(d / "ME_EST_L_LOD1.gltf").write_text('{"asset": {"version": "2.0"}}')
|
|
136
|
+
(d / "ME_EST_L_LOD1.bin").write_bytes(b"\0" * 4)
|
|
137
|
+
(d / "T_OB_EST_L_LOD1.jpg").write_bytes(b"\xff\xd8")
|
|
138
|
+
r = UP.version_files(str(d / "ME_EST_L_LOD1.gltf"))
|
|
139
|
+
assert r["path"] == str(d) and len(r["files"]) == 3
|
|
140
|
+
assert [p.rsplit("/", 1)[1] for p in r["images"]] == ["T_OB_EST_L_LOD1.jpg"]
|
|
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.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/alternative_cases.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_basemap_sources.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_document_types.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_extractor_types.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_palette_icons.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_qualia_types.json
RENAMED
|
File without changes
|
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_state_symbols.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/em_visual_rules.json
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/hdto_extension.ttl
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/new_qualia_template.json
RENAMED
|
File without changes
|
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png
RENAMED
|
File without changes
|
{s3dgraphy-1.6.0.dev105 → s3dgraphy-1.6.0.dev106}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg
RENAMED
|
File without changes
|