s3dgraphy 1.6.0.dev39__tar.gz → 1.6.0.dev40__tar.gz

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