s3dgraphy 1.6.0.dev48__tar.gz → 1.6.0.dev50__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 (553) hide show
  1. {s3dgraphy-1.6.0.dev48/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev50}/PKG-INFO +1 -1
  2. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/pyproject.toml +1 -1
  3. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/__init__.py +1 -1
  4. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/publication.py +8 -1
  5. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
  6. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy.egg-info/SOURCES.txt +1 -0
  7. s3dgraphy-1.6.0.dev50/tests/test_promote_keeps_proxy_type.py +44 -0
  8. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_release.py +105 -2
  9. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/LICENSE +0 -0
  10. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/MANIFEST.in +0 -0
  11. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/README.md +0 -0
  12. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/setup.cfg +0 -0
  13. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
  14. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
  15. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
  16. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
  17. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/datamodel_translations.json +0 -0
  18. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em.ttl +0 -0
  19. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
  20. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
  21. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
  22. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_qualia_types.json +0 -0
  23. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
  24. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_state_symbols.json +0 -0
  25. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
  26. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
  27. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
  28. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/node_registry.generated.json +0 -0
  29. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
  30. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
  31. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
  32. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
  33. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -0
  34. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
  35. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
  36. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
  37. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
  38. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
  39. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
  40. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
  41. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
  42. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
  43. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
  44. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
  45. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
  46. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
  47. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
  48. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
  49. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
  50. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
  51. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
  52. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
  53. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
  54. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
  55. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
  56. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
  57. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
  58. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
  59. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
  60. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
  61. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
  62. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
  63. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
  64. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/container.svg +0 -0
  65. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
  66. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
  67. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
  68. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
  69. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
  70. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
  71. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
  72. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
  73. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
  74. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
  75. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
  76. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
  77. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
  78. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
  79. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
  80. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
  81. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
  82. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
  83. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
  84. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
  85. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
  86. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
  87. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
  88. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
  89. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
  90. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
  91. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
  92. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
  93. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
  94. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
  95. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
  96. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
  97. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
  98. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
  99. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
  100. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
  101. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
  102. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
  103. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
  104. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
  105. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
  106. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
  107. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
  108. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
  109. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
  110. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
  111. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
  112. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/proxy.svg +0 -0
  113. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
  114. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
  115. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
  116. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
  117. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
  118. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
  119. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
  120. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
  121. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
  122. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
  123. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
  124. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
  125. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/tileset.svg +0 -0
  126. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/version_gltf.svg +0 -0
  127. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/version_mesh.svg +0 -0
  128. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/version_scene.svg +0 -0
  129. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/2D/version_tiles.svg +0 -0
  130. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
  131. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
  132. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
  133. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
  134. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
  135. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
  136. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
  137. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
  138. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
  139. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
  140. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
  141. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
  142. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
  143. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
  144. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
  145. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
  146. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/JSON_config/version_for_cases.json +0 -0
  147. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/acquisition/__init__.py +0 -0
  148. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/acquisition/acquire.py +0 -0
  149. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/acquisition/descriptor.py +0 -0
  150. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/acquisition/mapping.py +0 -0
  151. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/ai_validation.py +0 -0
  152. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/annotation/__init__.py +0 -0
  153. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
  154. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/annotation/paradata.py +0 -0
  155. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/annotation/reading.py +0 -0
  156. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/api.py +0 -0
  157. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/__init__.py +0 -0
  158. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/resolver.py +0 -0
  159. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
  160. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
  161. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
  162. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
  163. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
  164. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
  165. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/classification.py +0 -0
  166. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/container.py +0 -0
  167. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/contract/__init__.py +0 -0
  168. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/contract/connector.py +0 -0
  169. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/contract/consumer.py +0 -0
  170. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/contract/core.py +0 -0
  171. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/contract/reference.py +0 -0
  172. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/crdt.py +0 -0
  173. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
  174. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/datamodel.py +0 -0
  175. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/diagnostics.py +0 -0
  176. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dissemination.py +0 -0
  177. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/__init__.py +0 -0
  178. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/capture.py +0 -0
  179. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/corpus.py +0 -0
  180. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/devices.py +0 -0
  181. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/ingest.py +0 -0
  182. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
  183. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/dtc/residency.py +0 -0
  184. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/edges/__init__.py +0 -0
  185. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/edges/connection_resolver.py +0 -0
  186. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/edges/connections_loader.py +0 -0
  187. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/edges/edge.py +0 -0
  188. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/editorial.py +0 -0
  189. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/__init__.py +0 -0
  190. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
  191. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
  192. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
  193. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
  194. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
  195. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
  196. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
  197. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
  198. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
  199. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
  200. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
  201. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
  202. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
  203. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
  204. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
  205. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
  206. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
  207. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/html_exporter.py +0 -0
  208. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
  209. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/json_exporter.py +0 -0
  210. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
  211. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/rdf_exporter.py +0 -0
  212. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
  213. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/__init__.py +0 -0
  214. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/aton.py +0 -0
  215. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/gltf.py +0 -0
  216. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/migrate.py +0 -0
  217. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/proxy.py +0 -0
  218. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/reading_glb.py +0 -0
  219. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/store_backed.py +0 -0
  220. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/geometry/wkt.py +0 -0
  221. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/graph.py +0 -0
  222. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/hdto.py +0 -0
  223. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/iiif.py +0 -0
  224. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/__init__.py +0 -0
  225. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/base_importer.py +0 -0
  226. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/csv_importer.py +0 -0
  227. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/emjson_importer.py +0 -0
  228. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
  229. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/import_graphml.py +0 -0
  230. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
  231. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/metashape_project.py +0 -0
  232. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
  233. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/qualia_importer.py +0 -0
  234. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/rdf_importer.py +0 -0
  235. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/sheet_header.py +0 -0
  236. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/source_text.py +0 -0
  237. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
  238. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
  239. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/importer/xml_importer.py +0 -0
  240. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/indices.py +0 -0
  241. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/labels.py +0 -0
  242. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/language.py +0 -0
  243. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/links.py +0 -0
  244. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/__init__.py +0 -0
  245. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/authoring.py +0 -0
  246. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
  247. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
  248. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
  249. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
  250. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
  251. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/registry.py +0 -0
  252. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +0 -0
  253. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -0
  254. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
  255. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
  256. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/merge/__init__.py +0 -0
  257. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/merge/graph_merger.py +0 -0
  258. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/multigraph/__init__.py +0 -0
  259. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/multigraph/multigraph.py +0 -0
  260. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/narrative/__init__.py +0 -0
  261. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/narrative/bake.py +0 -0
  262. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/narrative/generation.py +0 -0
  263. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/narrative/query.py +0 -0
  264. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/narrative/registry.py +0 -0
  265. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/narrative/site_story.py +0 -0
  266. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/__init__.py +0 -0
  267. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
  268. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/author_node.py +0 -0
  269. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/base_node.py +0 -0
  270. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/combiner_node.py +0 -0
  271. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/document_node.py +0 -0
  272. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
  273. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
  274. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/dtc_node.py +0 -0
  275. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
  276. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/embargo_node.py +0 -0
  277. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/epoch_node.py +0 -0
  278. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/extractor_node.py +0 -0
  279. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
  280. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
  281. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/graph_node.py +0 -0
  282. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/group_node.py +0 -0
  283. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/hdt_node.py +0 -0
  284. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
  285. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/license_node.py +0 -0
  286. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/narrative_node.py +0 -0
  287. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/paradata_node.py +0 -0
  288. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/project_node.py +0 -0
  289. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/property_node.py +0 -0
  290. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/representation_node.py +0 -0
  291. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
  292. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/resource_node.py +0 -0
  293. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
  294. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
  295. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/study_node.py +0 -0
  296. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/nodes/translation_node.py +0 -0
  297. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/ownership.py +0 -0
  298. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/paradata_view.py +0 -0
  299. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
  300. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/photogrammetry/delta.py +0 -0
  301. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/project_tree.py +0 -0
  302. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/property_source.py +0 -0
  303. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/rapporti.py +0 -0
  304. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resolvers/__init__.py +0 -0
  305. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
  306. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
  307. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/__init__.py +0 -0
  308. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/addresses.py +0 -0
  309. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/alignment.py +0 -0
  310. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/files.py +0 -0
  311. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/fs_backend.py +0 -0
  312. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/locate.py +0 -0
  313. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/minio_backend.py +0 -0
  314. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/moved.py +0 -0
  315. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/object_store.py +0 -0
  316. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/resolver.py +0 -0
  317. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/storage_rows.py +0 -0
  318. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/tiles3tz.py +0 -0
  319. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/resources/versions.py +0 -0
  320. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/rights.py +0 -0
  321. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/shelf/__init__.py +0 -0
  322. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/shelf/core.py +0 -0
  323. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/spatiotemporal.py +0 -0
  324. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/stamp/__init__.py +0 -0
  325. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/stamp/absorb.py +0 -0
  326. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/stamp/emit.py +0 -0
  327. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/stamp/hints.py +0 -0
  328. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/stamp/identity.py +0 -0
  329. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/study.py +0 -0
  330. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/__init__.py +0 -0
  331. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/_db_handle.py +0 -0
  332. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
  333. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/_workspace.py +0 -0
  334. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
  335. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/edge_registry.py +0 -0
  336. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
  337. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/graph_projector.py +0 -0
  338. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/graphml_writer.py +0 -0
  339. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/group_projector.py +0 -0
  340. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/group_store.py +0 -0
  341. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/ingest_result.py +0 -0
  342. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/paradata_store.py +0 -0
  343. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
  344. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/rapporti.py +0 -0
  345. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/uuid7.py +0 -0
  346. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
  347. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/vocab_types.py +0 -0
  348. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/yed_classifier.py +0 -0
  349. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/yed_detector.py +0 -0
  350. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
  351. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
  352. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
  353. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
  354. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
  355. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
  356. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/temporal/__init__.py +0 -0
  357. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/temporal/inference_engine.py +0 -0
  358. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/__init__.py +0 -0
  359. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/consumer_drift.py +0 -0
  360. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
  361. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/deliverable_report.py +0 -0
  362. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
  363. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
  364. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/node_finder.py +0 -0
  365. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
  366. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/tools/wheel_drift.py +0 -0
  367. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/transforms/__init__.py +0 -0
  368. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
  369. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/transforms/compact.py +0 -0
  370. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
  371. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/translation.py +0 -0
  372. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/utils/__init__.py +0 -0
  373. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/utils/utils.py +0 -0
  374. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/utils/visual_layout.py +0 -0
  375. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy/zero_hour.py +0 -0
  376. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
  377. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy.egg-info/requires.txt +0 -0
  378. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/src/s3dgraphy.egg-info/top_level.txt +0 -0
  379. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_acquisition.py +0 -0
  380. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_acquisition_fs.py +0 -0
  381. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_add_resource.py +0 -0
  382. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_ai_validation_nodes.py +0 -0
  383. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_alternative_labels.py +0 -0
  384. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_api_surface.py +0 -0
  385. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_asset_dtc_protocol.py +0 -0
  386. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_asset_versions.py +0 -0
  387. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_aton_shapes.py +0 -0
  388. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_attach_only.py +0 -0
  389. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_authority_projection.py +0 -0
  390. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_authority_resolver.py +0 -0
  391. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_blend_locator.py +0 -0
  392. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_bucket_alignment.py +0 -0
  393. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_canonical_document_rename.py +0 -0
  394. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_canvas_metadata_import.py +0 -0
  395. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_capture_acquisition.py +0 -0
  396. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_capture_rdf_class.py +0 -0
  397. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_chronology_on_request.py +0 -0
  398. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_coating_unit.py +0 -0
  399. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_composite_node_name.py +0 -0
  400. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_connection_resolver.py +0 -0
  401. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_consumer_drift.py +0 -0
  402. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_container.py +0 -0
  403. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_container_layouts.py +0 -0
  404. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_containment_tpq.py +0 -0
  405. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_contract.py +0 -0
  406. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_contract_consumer.py +0 -0
  407. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_convert_command.py +0 -0
  408. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_crdt.py +0 -0
  409. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_cycle_message_is_cheap.py +0 -0
  410. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_datamodel_fingerprint.py +0 -0
  411. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_datamodel_i18n.py +0 -0
  412. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_deterministic_ids.py +0 -0
  413. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_em_sourcelist.py +0 -0
  414. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_file_set_stamp.py +0 -0
  415. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_graphml_without_a_database.py +0 -0
  416. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_image_set_texturing.py +0 -0
  417. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_not_georeferenced.py +0 -0
  418. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_one_act_n_outputs.py +0 -0
  419. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev29_ttl_round_trip.py +0 -0
  420. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dev30_decisions.py +0 -0
  421. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_devices.py +0 -0
  422. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dissemination_tombstones.py +0 -0
  423. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dove_sta_il_testo.py +0 -0
  424. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dtc_corpus.py +0 -0
  425. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dtc_ingest.py +0 -0
  426. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dtc_neighbourhood.py +0 -0
  427. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dtc_projection.py +0 -0
  428. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_dtc_residency.py +0 -0
  429. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_edge_outside_graph.py +0 -0
  430. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_edge_ui_phrases.py +0 -0
  431. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_editorial.py +0 -0
  432. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
  433. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_emjson_no_drawing_keys.py +0 -0
  434. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_emjson_roundtrip.py +0 -0
  435. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_emjson_schema_version.py +0 -0
  436. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
  437. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_epoch_undated_import.py +0 -0
  438. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_explicit_node_type_marker.py +0 -0
  439. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_extracted_from_unit.py +0 -0
  440. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_filtered_import.py +0 -0
  441. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_fmpxml_importer.py +0 -0
  442. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_fs_backend.py +0 -0
  443. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_functional_units.py +0 -0
  444. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_georeference_scene.py +0 -0
  445. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_gltf_stitch.py +0 -0
  446. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_glyph_paths.py +0 -0
  447. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_graph_header_code.py +0 -0
  448. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_graph_helpers_indexed.py +0 -0
  449. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_graph_indices_alive.py +0 -0
  450. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_graph_indices_edges.py +0 -0
  451. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_graph_scope_migration.py +0 -0
  452. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_hdto_projection.py +0 -0
  453. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_hdto_study.py +0 -0
  454. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_header_key_aliases.py +0 -0
  455. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_i_generi_dei_passi.py +0 -0
  456. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_iiif.py +0 -0
  457. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_il_modo_d_accesso.py +0 -0
  458. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_il_modo_dal_relay.py +0 -0
  459. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_il_proprietario_si_legge.py +0 -0
  460. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_il_riallineamento.py +0 -0
  461. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_importer_edge_hygiene.py +0 -0
  462. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_ipynb_exporter.py +0 -0
  463. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_issue27_small_points.py +0 -0
  464. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_la_lingua_alla_nascita.py +0 -0
  465. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_la_lingua_dei_dati.py +0 -0
  466. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_la_lingua_nell_op.py +0 -0
  467. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_la_riga_d_intestazione.py +0 -0
  468. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_latex_exporter.py +0 -0
  469. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_le_traduzioni.py +0 -0
  470. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_lod_levels.py +0 -0
  471. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_lossless_roundtrip.py +0 -0
  472. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_mapping_authoring.py +0 -0
  473. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_mapping_csv_and_relations.py +0 -0
  474. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_masonry_unit.py +0 -0
  475. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_material_color.py +0 -0
  476. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_merge_conflicts.py +0 -0
  477. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_metashape_project.py +0 -0
  478. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_migrate_legacy_proxy.py +0 -0
  479. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_minio_backend.py +0 -0
  480. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_authorship.py +0 -0
  481. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_bake_docx.py +0 -0
  482. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_figures.py +0 -0
  483. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_generation.py +0 -0
  484. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_mentions.py +0 -0
  485. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_node.py +0 -0
  486. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_query.py +0 -0
  487. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_scaffolder.py +0 -0
  488. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_site_place.py +0 -0
  489. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_narrative_unvalidated_export.py +0 -0
  490. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_node_datamodel_registry.py +0 -0
  491. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_node_finder.py +0 -0
  492. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_node_type_map_integrity.py +0 -0
  493. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_one_resolver.py +0 -0
  494. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_one_spelling_writers.py +0 -0
  495. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_op_vocabulary.py +0 -0
  496. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_pg_importer.py +0 -0
  497. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_photogrammetry_delta.py +0 -0
  498. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_physical_relation_spellings.py +0 -0
  499. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_piu_indirizzi.py +0 -0
  500. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_promotion.py +0 -0
  501. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_property_as_source.py +0 -0
  502. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_property_owners.py +0 -0
  503. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_proxy_resource.py +0 -0
  504. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_proxy_retype.py +0 -0
  505. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_psx_locator.py +0 -0
  506. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_pyarchinit_tier2.py +0 -0
  507. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_qualia_dai_d7_d8.py +0 -0
  508. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_rdf_embedding.py +0 -0
  509. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_rdf_reverse_edges.py +0 -0
  510. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_rdf_roundtrip.py +0 -0
  511. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reading_coords.py +0 -0
  512. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reading_glb.py +0 -0
  513. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reading_migration.py +0 -0
  514. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reading_place.py +0 -0
  515. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reading_rdf.py +0 -0
  516. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_recompute_warnings.py +0 -0
  517. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reproject.py +0 -0
  518. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_resource_file_node.py +0 -0
  519. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_resource_files_implicit.py +0 -0
  520. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_resource_layer.py +0 -0
  521. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_resource_representations.py +0 -0
  522. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_resource_revision.py +0 -0
  523. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_resource_tier.py +0 -0
  524. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_reverse_edges.py +0 -0
  525. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_rm_container_node_group.py +0 -0
  526. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_semantic_purity.py +0 -0
  527. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_shelf.py +0 -0
  528. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_shelf_facets.py +0 -0
  529. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_shelf_hatting.py +0 -0
  530. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_shelf_role_uri_table.py +0 -0
  531. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_shipped_mappings.py +0 -0
  532. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_source_list_mapping.py +0 -0
  533. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_source_text.py +0 -0
  534. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_spatiotemporal_entities.py +0 -0
  535. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_stable_study_code.py +0 -0
  536. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_stamp.py +0 -0
  537. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_stamp_hints.py +0 -0
  538. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_stamp_title_description.py +0 -0
  539. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_storage_rows.py +0 -0
  540. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_store_backed_geometry.py +0 -0
  541. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_stratiminer_api.py +0 -0
  542. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_study_metadata.py +0 -0
  543. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_tileset_resource.py +0 -0
  544. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_ttl_roundtrip.py +0 -0
  545. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_unit_definition.py +0 -0
  546. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_verifica_provenance.py +0 -0
  547. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_version_for.py +0 -0
  548. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_visual_assets.py +0 -0
  549. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_wheel_drift.py +0 -0
  550. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
  551. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_xlsx_importer_graph_init.py +0 -0
  552. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/tests/test_xlsx_source_column.py +0 -0
  553. {s3dgraphy-1.6.0.dev48 → s3dgraphy-1.6.0.dev50}/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.dev48
3
+ Version: 1.6.0.dev50
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.dev48"
7
+ version = "1.6.0.dev50"
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.dev48"
1
+ __version__ = "1.6.0.dev50"
2
2
  __datamodel_version__ = "1.5.5" # s3Dgraphy connections datamodel version
3
3
 
4
4
  # s3Dgraphy/__init__.py
@@ -52,6 +52,9 @@ _URL_TYPE_BY_MEDIA = {
52
52
  "application/pdf": "document",
53
53
  }
54
54
 
55
+ #: The 3D genres a glTF media type must not flatten into `3d_model`.
56
+ _MORE_SPECIFIC_3D = ("proxy_model", "point_cloud")
57
+
55
58
 
56
59
  def _stable_id(key: str) -> str:
57
60
  return str(uuid.uuid5(_PROMOTE_NAMESPACE, key))
@@ -225,7 +228,11 @@ def promote_resource(graph: Graph, resource_id: str, *, url: str, sha256: str,
225
228
  if media_type:
226
229
  data["media_type"] = media_type
227
230
  url_type = _URL_TYPE_BY_MEDIA.get(media_type)
228
- if url_type:
231
+ # A proxy's .glb is a `proxy_model` (geometry.proxy): the media type
232
+ # says only «a 3D model», and writing that over it would make the
233
+ # unit's proxy a file its chain no longer finds (linked_proxy_resources)
234
+ if url_type and not (url_type == "3d_model"
235
+ and data.get("url_type") in _MORE_SPECIFIC_3D):
229
236
  data["url_type"] = url_type
230
237
  # WHERE THE BYTES ARE, and the two true answers.
231
238
  #
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: s3dgraphy
3
- Version: 1.6.0.dev48
3
+ Version: 1.6.0.dev50
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>
@@ -493,6 +493,7 @@ tests/test_pg_importer.py
493
493
  tests/test_photogrammetry_delta.py
494
494
  tests/test_physical_relation_spellings.py
495
495
  tests/test_piu_indirizzi.py
496
+ tests/test_promote_keeps_proxy_type.py
496
497
  tests/test_promotion.py
497
498
  tests/test_property_as_source.py
498
499
  tests/test_property_owners.py
@@ -0,0 +1,44 @@
1
+ """Publishing a proxy's .glb keeps it a proxy (MICRO il proxy arriva come
2
+ proprietà, 2026-10-13).
3
+
4
+ EMtools publishes the glb of a unit's proxy into the room with
5
+ ``promote_resource(media_type="model/gltf-binary")``. The media type says only
6
+ «a 3D model»; the resource already says more — ``proxy_model``, the genre
7
+ ``create_geometry_proxy`` gave it — and writing ``3d_model`` over it made the
8
+ proxy a file its own chain no longer found (``linked_proxy_resources``).
9
+ """
10
+
11
+ from s3dgraphy.geometry import linked_proxy_resources
12
+ from s3dgraphy.geometry.proxy import create_geometry_proxy, proxy_resource_id
13
+ from s3dgraphy.graph import Graph
14
+ from s3dgraphy.nodes import StratigraphicUnit
15
+ from s3dgraphy.publication import promote_resource
16
+
17
+ DIGEST = "sha256:" + "ab" * 32
18
+
19
+
20
+ def _graph_with_proxy():
21
+ g = Graph(graph_id="promote-proxy")
22
+ g.add_node(StratigraphicUnit("US3", name="US3"))
23
+ result = create_geometry_proxy(g, "US3", {"url": "proxies/US3.glb"})
24
+ return g, result
25
+
26
+
27
+ def test_a_published_proxy_glb_stays_proxy_model():
28
+ g, proxy = _graph_with_proxy()
29
+ promote_resource(g, proxy.resource_id, url=f"https://room/assets/{DIGEST}",
30
+ sha256=DIGEST, media_type="model/gltf-binary",
31
+ residency="resident")
32
+ resource = g.find_node_by_id(proxy.resource_id)
33
+ assert resource.data["url_type"] == "proxy_model"
34
+ assert resource.data["checksum"] == DIGEST
35
+ assert resource.data["media_type"] == "model/gltf-binary"
36
+ assert [r.node_id for r in linked_proxy_resources(g, proxy.shape_id)] == \
37
+ [proxy_resource_id(proxy.shape_id)]
38
+
39
+
40
+ def test_a_plain_resource_still_learns_3d_model_from_the_media_type():
41
+ g = Graph(graph_id="promote-plain")
42
+ promote_resource(g, "R1", url=f"https://room/assets/{DIGEST}", sha256=DIGEST,
43
+ media_type="model/gltf-binary")
44
+ assert g.find_node_by_id("R1").data["url_type"] == "3d_model"
@@ -255,10 +255,37 @@ CHANGELOG = "# Changelog\n\n## [0.1.3] — YYYY-MM-DD <!-- the date is written w
255
255
  # FAKE_NODE_UP is set; /v1/health is a file:// URL whose JSON the fake
256
256
  # bump-s3dgraphy.sh rewrites FAKE_NODE_RESTART seconds after the rebuild (the
257
257
  # container restarting), or never with FAKE_NODE_STUCK
258
+ #
259
+ # StratiField (MICRO-RELEASE-STRATIFIELD): `docker ps` says em-dev-chatbot runs
260
+ # when FAKE_CHATBOT_UP is set; `docker inspect` gives its compose labels (the
261
+ # service FAKE_CHATBOT_SERVICE, the folder $FAKE_STATE/dev-stack); `docker
262
+ # exec … import s3dgraphy` prints $FAKE_STATE/chatbot.version, which `compose
263
+ # up -d --build` rewrites to the pin FAKE_CHATBOT_RESTART seconds later (or
264
+ # never with FAKE_CHATBOT_STUCK); /chat/ is $FAKE_STATE/chat.html
258
265
  FAKE_DOCKER = r"""#!/usr/bin/env bash
259
266
  echo "docker $*" >> "$FAKE_STATE/docker.log"
260
- [[ "$1" == ps ]] || exit 0
261
- [[ -n "$FAKE_NODE_UP" ]] && echo em-dev-server
267
+ case "$1" in
268
+ ps)
269
+ if [[ "$*" == *em-dev-chatbot* ]]; then [[ -n "$FAKE_CHATBOT_UP" ]] && echo em-dev-chatbot
270
+ else [[ -n "$FAKE_NODE_UP" ]] && echo em-dev-server; fi
271
+ exit 0 ;;
272
+ inspect)
273
+ printf '%s\t%s\t%s\n' "${FAKE_CHATBOT_SERVICE-stratigraph-chatbot}" "$FAKE_STATE/dev-stack" \
274
+ "$FAKE_STATE/dev-stack/docker-compose.dev.yml"
275
+ exit 0 ;;
276
+ exec)
277
+ cat "$FAKE_STATE/chatbot.version" 2>/dev/null || exit 1
278
+ exit 0 ;;
279
+ compose)
280
+ [[ "$2" == version ]] && exit 0
281
+ { pwd; echo "$*"; } > "$FAKE_STATE/compose.log"
282
+ [[ -n "$FAKE_CHATBOT_STUCK" ]] && exit 0
283
+ ( sleep "${FAKE_CHATBOT_RESTART:-0}"
284
+ grep -o 's3dgraphy>=[^"]*' "$FAKE_STATE/../ws/stratigraph-chatbot/pyproject.toml" | cut -d= -f2 \
285
+ > "$FAKE_STATE/chatbot.tmp"
286
+ mv "$FAKE_STATE/chatbot.tmp" "$FAKE_STATE/chatbot.version" ) >/dev/null 2>&1 &
287
+ exit 0 ;;
288
+ esac
262
289
  exit 0
263
290
  """
264
291
 
@@ -303,6 +330,7 @@ class World:
303
330
  "EM_RELEASE_WAIT_PYPI": "5", "EM_RELEASE_WAIT_BUILD": "5", "EM_RELEASE_PROGRESS": "0.02",
304
331
  "EM_RELEASE_DOCKER": str(self.bin / "docker"),
305
332
  "EM_RELEASE_NODE_HEALTH": (self.state / "health.json").as_uri(),
333
+ "EM_RELEASE_STRATIFIELD_URL": (self.state / "chat.html").as_uri(),
306
334
  "EM_RELEASE_SITE_PAGE": (self.state / "site.html").as_uri(), "EM_RELEASE_WAIT_SITE": "3",
307
335
  "EM_RELEASE_DOWNSTREAM": json.dumps([{"repo": "EM-blender-tools", "cmd": [
308
336
  "bash", "-c", 'echo "$FAKE_DOWNSTREAM_SAYS"; exit "${FAKE_DOWNSTREAM_RC:-0}"']}]),
@@ -313,6 +341,10 @@ class World:
313
341
  _x(self.bin / "fakepython", FAKE_PYTHON)
314
342
  _x(self.bin / "docker", FAKE_DOCKER)
315
343
  (self.state / "health.json").write_text('{"version": "1.6.0.dev1", "s3dgraphy": "1.6.0.dev27"}')
344
+ (self.state / "chatbot.version").write_text("1.6.0.dev27\n")
345
+ (self.state / "chat.html").write_text("<title>StratiField</title>")
346
+ (self.state / "dev-stack").mkdir()
347
+ (self.state / "dev-stack" / ".env.dev").write_text("MINIO_ROOT_USER=minioadmin\n")
316
348
  (self.state / "site.html").write_text(
317
349
  '<a href="https://github.com/zalmoxes-laran/EMStudio/releases/download/v1.6.0-dev.0/EMStudio.dmg">')
318
350
 
@@ -925,6 +957,77 @@ def test_declining_the_node_does_not_stop_the_row(world):
925
957
  assert world.git(world.ws / "stratigraph-server", "rev-list", "--count", "@{u}..HEAD") == "0"
926
958
 
927
959
 
960
+ # ── MICRO-RELEASE-STRATIFIELD (measured on 12 Oct 2026) ───────────────────────
961
+ #
962
+ # After the release of 1.6.0.dev48 StratiField's pin said dev48 and its
963
+ # container em-dev-chatbot still imported s3dgraphy 1.6.0.dev46: step 10
964
+ # rebuilt only the server.
965
+
966
+ def test_a_running_stratifield_is_rebuilt_after_the_server_and_measured(world):
967
+ r = world.release(*FULL, "--yes", FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1, FAKE_CHATBOT_SERVICE="the-field",
968
+ FAKE_CHATBOT_RESTART=0.3)
969
+ assert r.returncode == 0, _all(r)
970
+ where, said = (world.state / "compose.log").read_text().splitlines()
971
+ assert where == str(world.state / "dev-stack") # the folder of its compose label
972
+ # the service read from the label, never without .env.dev
973
+ assert said == (f"compose --env-file .env.dev -f {world.state}/dev-stack/docker-compose.dev.yml "
974
+ f"up -d --build the-field")
975
+ log = (world.state / "docker.log").read_text()
976
+ assert log.index("compose --env-file") > log.index("ps --filter name=^em-dev-server$")
977
+ assert "the container is restarting" in r.stdout
978
+ assert (f"StratiField (em-dev-chatbot, service the-field) imports s3dgraphy {V} and "
979
+ f"{(world.state / 'chat.html').as_uri()} answers") in r.stdout
980
+ assert r.stdout.index('the development node answers "s3dgraphy"') < r.stdout.index("StratiField (em-dev-chatbot, service")
981
+ assert r.stdout.index("StratiField (em-dev-chatbot, service") < r.stdout.index("▸ 11 · the push")
982
+ assert "rebuilt on this computer: StratiGraph Server (em-dev-server), StratiField (em-dev-chatbot)" in r.stdout
983
+ st = world.release("status", *FULL, FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1)
984
+ assert " ✓ 10 done" in st.stdout and f"StratiField (em-dev-chatbot) imports s3dgraphy {V}" in st.stdout
985
+
986
+
987
+ def test_a_stratifield_that_keeps_the_old_s3dgraphy_stops_the_step_and_the_rerun_resumes_there(world):
988
+ r = world.release(*FULL, "--yes", FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1, FAKE_CHATBOT_STUCK=1,
989
+ EM_RELEASE_WAIT_STRATIFIELD=0.3)
990
+ assert r.returncode == 75, _all(r)
991
+ assert (f"StratiField (em-dev-chatbot) was rebuilt and s3dgraphy inside it is '1.6.0.dev27', not '{V}'"
992
+ in r.stderr)
993
+ assert "docker logs em-dev-chatbot" in r.stderr and "EM_RELEASE_WAIT_STRATIFIELD" in r.stderr
994
+ assert "▸ 11 · the push" not in r.stdout
995
+ assert world.git(world.ws / "stratigraph-server", "rev-list", "--count", "@{u}..HEAD") != "0" # not pushed
996
+ st = world.release("status", *FULL, FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1)
997
+ assert " → 10 to do" in st.stdout and "StratiField (em-dev-chatbot) imports s3dgraphy 1.6.0.dev27" in st.stdout
998
+ # the rerun: the server already says V, so only StratiField is rebuilt
999
+ (world.state / "bump.log").unlink()
1000
+ again = world.release(*FULL, "--yes", FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1)
1001
+ assert again.returncode == 0, _all(again)
1002
+ assert f'the server already says "s3dgraphy": "{V}" — not rebuilt again' in again.stdout
1003
+ assert not (world.state / "bump.log").exists()
1004
+ assert "rebuilt on this computer: StratiField (em-dev-chatbot)" in again.stdout
1005
+
1006
+
1007
+ def test_a_chat_that_does_not_answer_stops_the_step_saying_so(world):
1008
+ (world.state / "chat.html").unlink()
1009
+ r = world.release(*FULL, "--yes", FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1, EM_RELEASE_WAIT_STRATIFIELD=0.3)
1010
+ assert r.returncode == 75, _all(r)
1011
+ assert f"it imports s3dgraphy {V} and {(world.state / 'chat.html').as_uri()} does not answer" in r.stderr
1012
+
1013
+
1014
+ def test_without_stratifield_running_it_says_so_and_goes_on(world):
1015
+ r = world.release(*FULL, "--yes", FAKE_NODE_UP=1)
1016
+ assert r.returncode == 0, _all(r)
1017
+ assert "StratiField: em-dev-chatbot is not running — not rebuilt, the row goes on" in r.stdout
1018
+ assert not (world.state / "compose.log").exists()
1019
+ assert "▸ 11 · the push" in r.stdout
1020
+ assert "rebuilt on this computer: StratiGraph Server (em-dev-server)" in r.stdout
1021
+
1022
+
1023
+ def test_without_env_dev_stratifield_is_not_recreated(world):
1024
+ (world.state / "dev-stack" / ".env.dev").unlink()
1025
+ r = world.release(*FULL, "--yes", FAKE_NODE_UP=1, FAKE_CHATBOT_UP=1)
1026
+ assert r.returncode == 1, _all(r)
1027
+ assert ".env.dev is missing, and StratiField is never recreated without it" in r.stderr
1028
+ assert not (world.state / "compose.log").exists()
1029
+
1030
+
928
1031
  # ── W4: the site in the release (measured on 4 Oct 2026) ─────────────────────
929
1032
  #
930
1033
  # The EM site offers EMStudio's installers read at BUILD time from the newest
File without changes