data_pipeline_api 0.7.0__tar.gz → 0.7.2__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 (174) hide show
  1. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/PKG-INFO +1 -1
  2. data_pipeline_api-0.7.2/data_pipeline_api/database_file_api.py +67 -0
  3. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/file_api.py +39 -16
  4. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/access_upload.py +230 -107
  5. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/common.py +4 -1
  6. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/download.py +45 -33
  7. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/upload_data_product.py +3 -1
  8. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/standard_api.py +20 -16
  9. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api.egg-info/PKG-INFO +1 -1
  10. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api.egg-info/SOURCES.txt +1 -0
  11. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/build.gradle +0 -4
  12. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/object/example5.h5 +1 -1
  13. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/test_access_upload.py +2 -0
  14. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/test_common.py +9 -7
  15. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/test_standard_api.py +4 -3
  16. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/.gitignore +0 -0
  17. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/.pylintrc +0 -0
  18. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/.travis.yml +0 -0
  19. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/LICENSE +0 -0
  20. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/README.md +0 -0
  21. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/conda/meta.yaml +0 -0
  22. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/contributing.md +0 -0
  23. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/__init__.py +0 -0
  24. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/data_processing_api.py +0 -0
  25. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/file_formats/object_file.py +0 -0
  26. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/file_formats/parameter_file.py +0 -0
  27. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/git_info.py +0 -0
  28. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/metadata.py +0 -0
  29. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/metadata_store.py +0 -0
  30. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/overrides.py +0 -0
  31. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/README.md +0 -0
  32. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/__init__.py +0 -0
  33. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/downloader.py +0 -0
  34. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/templates/data_product.yaml +0 -0
  35. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/upload.py +0 -0
  36. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api/registry/utils.py +0 -0
  37. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api.egg-info/dependency_links.txt +0 -0
  38. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api.egg-info/entry_points.txt +0 -0
  39. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api.egg-info/requires.txt +0 -0
  40. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/data_pipeline_api.egg-info/top_level.txt +0 -0
  41. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/environment.yml +0 -0
  42. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/examples/example_configs/simple_network_sim_config.yaml +0 -0
  43. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/examples/example_configs/simple_network_sim_upload.yaml +0 -0
  44. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/examples/standard_api_usage.py +0 -0
  45. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/build.gradle +0 -0
  46. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/build.gradle +0 -0
  47. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/AccessEntry.java +0 -0
  48. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/AccessLog.java +0 -0
  49. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/AccessLogWriter.java +0 -0
  50. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/AccessLogger.java +0 -0
  51. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/AccessLoggerFactory.java +0 -0
  52. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/AccessLoggerImpl.java +0 -0
  53. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/access/NoImplAccessLogger.java +0 -0
  54. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/api/FileApi.java +0 -0
  55. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/config/Config.java +0 -0
  56. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/config/ConfigFactory.java +0 -0
  57. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/config/ConfigReader.java +0 -0
  58. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/file/CleanableFileChannel.java +0 -0
  59. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/file/FileDirectoryNormaliser.java +0 -0
  60. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/file/FileReader.java +0 -0
  61. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/hash/HashMetadataAppender.java +0 -0
  62. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/hash/Hasher.java +0 -0
  63. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/hash/Sha1Hasher.java +0 -0
  64. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/IssueItem.java +0 -0
  65. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/MatchingMetadataSelector.java +0 -0
  66. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/MetaDataReader.java +0 -0
  67. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/MetadataFactory.java +0 -0
  68. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/MetadataItem.java +0 -0
  69. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/MetadataSelector.java +0 -0
  70. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/ReadOnlyRunMetadata.java +0 -0
  71. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/RunMetadata.java +0 -0
  72. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/metadata/WriteOnlyRunMetadata.java +0 -0
  73. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/overrides/OverridesApplier.java +0 -0
  74. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/yaml/BaseYamlReader.java +0 -0
  75. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/yaml/BaseYamlWriter.java +0 -0
  76. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/yaml/YamlFactory.java +0 -0
  77. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/yaml/YamlReader.java +0 -0
  78. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/main/java/uk/ramp/yaml/YamlWriter.java +0 -0
  79. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/access/AccessLoggerTest.java +0 -0
  80. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/api/FileApiIntegrationTest.java +0 -0
  81. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/file/CleanableFileChannelIntegrationTest.java +0 -0
  82. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/file/FileDirectoryNormaliserTest.java +0 -0
  83. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/hash/HashMetadataAppenderTest.java +0 -0
  84. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/hash/Sha1HasherTest.java +0 -0
  85. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/metadata/MatchingMetadataSelectorTest.java +0 -0
  86. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/metadata/MetadataItemTest.java +0 -0
  87. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/metadata/MetadataItemVersionComparisonTest.java +0 -0
  88. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/java/uk/ramp/yaml/BaseYamlWriterTest.java +0 -0
  89. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/resources/config.yaml +0 -0
  90. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/resources/folder/data/metadata.yaml +0 -0
  91. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/file_api/src/test/resources/folder/data/parameter/example1.toml +0 -0
  92. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/gradle/wrapper/gradle-wrapper.jar +0 -0
  93. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/gradle/wrapper/gradle-wrapper.properties +0 -0
  94. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/gradlew +0 -0
  95. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/gradlew.bat +0 -0
  96. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/settings.gradle +0 -0
  97. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/api/StandardApi.java +0 -0
  98. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/distribution/Distribution.java +0 -0
  99. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/distribution/MinMax.java +0 -0
  100. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/distribution/MinMaxDeserializer.java +0 -0
  101. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/distribution/MinMaxSerializer.java +0 -0
  102. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/estimate/Estimate.java +0 -0
  103. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/objects/NumericalArray.java +0 -0
  104. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/objects/NumericalArrayImpl.java +0 -0
  105. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/objects/StandardArrayDataReader.java +0 -0
  106. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/objects/StandardTable.java +0 -0
  107. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/objects/StandardTableDataReader.java +0 -0
  108. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/Component.java +0 -0
  109. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/Components.java +0 -0
  110. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ComponentsDeserializer.java +0 -0
  111. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ComponentsSerializer.java +0 -0
  112. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ParameterDataReader.java +0 -0
  113. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ParameterDataReaderImpl.java +0 -0
  114. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ParameterDataWriter.java +0 -0
  115. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ParameterDataWriterImpl.java +0 -0
  116. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/ReadComponent.java +0 -0
  117. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/parameters/WriteComponent.java +0 -0
  118. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/samples/Sampler.java +0 -0
  119. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/samples/Samples.java +0 -0
  120. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/toml/TOMLFactory.java +0 -0
  121. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/toml/TOMLInputDecorator.java +0 -0
  122. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/toml/TOMLMapper.java +0 -0
  123. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/toml/TOMLOutputDecorator.java +0 -0
  124. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/toml/TomlReader.java +0 -0
  125. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/main/java/uk/ramp/toml/TomlWriter.java +0 -0
  126. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/api/StandardApiIntegrationTest.java +0 -0
  127. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/api/StandardApiTest.java +0 -0
  128. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/distribution/DistributionTest.java +0 -0
  129. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/estimate/EstimateTest.java +0 -0
  130. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/parameters/ComponentsDeserializerTest.java +0 -0
  131. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/parameters/ComponentsSerializerTest.java +0 -0
  132. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/parameters/ParameterDataReaderTest.java +0 -0
  133. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/parameters/ParameterDataWriterImplTest.java +0 -0
  134. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/samples/SamplerTest.java +0 -0
  135. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/samples/SamplesTest.java +0 -0
  136. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/toml/TomlReaderPairwiseIntegrationTest.java +0 -0
  137. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/java/uk/ramp/toml/TomlWriterPairwiseIntegrationTest.java +0 -0
  138. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/config.yaml +0 -0
  139. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/expectedDistribution.toml +0 -0
  140. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/expectedDistributionCategorical.toml +0 -0
  141. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/expectedEstimate.toml +0 -0
  142. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/expectedSamples.toml +0 -0
  143. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/expectedSamplesMultiple.toml +0 -0
  144. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/metadata.yaml +0 -0
  145. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/folder/data/parameter/example1.toml +0 -0
  146. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/location.txt +0 -0
  147. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/table.csv +0 -0
  148. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/java_api/standard_api/src/test/resources/table.h5 +0 -0
  149. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/jitpack.yml +0 -0
  150. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/scripts/convert_access_to_config.py +0 -0
  151. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/scripts/release.sh +0 -0
  152. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/setup.cfg +0 -0
  153. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/setup.py +0 -0
  154. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/__init__.py +0 -0
  155. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/conftest.py +0 -0
  156. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/config.yaml +0 -0
  157. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/demographics.h5 +0 -0
  158. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/metadata.yaml +0 -0
  159. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/object/example-v2.h5 +0 -0
  160. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/object/example.h5 +0 -0
  161. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/parameter/example-v2.toml +0 -0
  162. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/data/parameter/example.toml +0 -0
  163. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/file_formats/test_object_file.py +0 -0
  164. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/file_formats/test_parameter_file.py +0 -0
  165. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/__init__.py +0 -0
  166. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/test_download.py +0 -0
  167. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/test_downloader.py +0 -0
  168. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/test_upload.py +0 -0
  169. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/registry/test_utils.py +0 -0
  170. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/test_data_processing_api.py +0 -0
  171. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/test_file_api.py +0 -0
  172. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/test_git_info.py +0 -0
  173. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/test_metadata_store.py +0 -0
  174. {data_pipeline_api-0.7.0 → data_pipeline_api-0.7.2}/tests/test_overrides.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: data_pipeline_api
3
- Version: 0.7.0
3
+ Version: 0.7.2
4
4
  Summary: Interacts with SCRC data pipeline
5
5
  Home-page: UNKNOWN
6
6
  Author: SCRC
@@ -0,0 +1,67 @@
1
+ from logging import getLogger
2
+ from io import IOBase
3
+ import __main__
4
+ from data_pipeline_api.file_api import FileAPI, RunMetadata
5
+ from data_pipeline_api.registry.download import download_from_configs
6
+ from data_pipeline_api.registry.access_upload import upload_model_run
7
+ from data_pipeline_api.registry.utils import get_access_token, get_remote_options
8
+
9
+ logger = getLogger(__name__)
10
+
11
+
12
+ class DatabaseFileAPI(FileAPI):
13
+ """The DatabaseFileAPI extends the FileAPI and provides direct access to the
14
+ database, but still mediated by the file system.
15
+ """
16
+
17
+ RUN_METADATA_NEEDED_FOR_DOWNLOAD = {RunMetadata.data_registry_url}
18
+ RUN_METADATA_NEEDED_FOR_UPLOAD = {
19
+ RunMetadata.data_directory,
20
+ RunMetadata.run_id,
21
+ RunMetadata.model_version,
22
+ RunMetadata.model_name,
23
+ RunMetadata.open_timestamp,
24
+ RunMetadata.git_sha,
25
+ RunMetadata.git_repo,
26
+ RunMetadata.remote_uri,
27
+ RunMetadata.description,
28
+ }
29
+
30
+ def _has_run_metadata(self, keys):
31
+ missing_keys = {key for key in keys if key not in self._run_metadata}
32
+ if missing_keys:
33
+ logger.warning("missing %s", missing_keys)
34
+ return False
35
+ return True
36
+
37
+ def open_for_read(self, **call_metadata) -> IOBase:
38
+ """Attempt a read, and if it fails, attempt a download and try the read again.
39
+ """
40
+ try:
41
+ return super().open_for_read(**call_metadata)
42
+ except (KeyError, FileNotFoundError):
43
+ if self._has_run_metadata(DatabaseFileAPI.RUN_METADATA_NEEDED_FOR_DOWNLOAD):
44
+ download_from_configs(
45
+ self._run_metadata,
46
+ [{"where": self.get_read_metadata(call_metadata)}],
47
+ get_access_token(),
48
+ self._root,
49
+ )
50
+ self.load_metadata_store()
51
+ return super().open_for_read(**call_metadata)
52
+ raise
53
+
54
+ def close(self):
55
+ """Close as normal, then attempt to upload the results to the database.
56
+ """
57
+ super().close()
58
+ if self._has_run_metadata(DatabaseFileAPI.RUN_METADATA_NEEDED_FOR_UPLOAD):
59
+ upload_model_run(
60
+ config_filename=self._access_log_path,
61
+ model_config_filename=self._config_filename,
62
+ submission_script_filename=self._run_metadata.get(
63
+ RunMetadata.submission_script, __main__.__file__
64
+ ),
65
+ remote_options=get_remote_options(),
66
+ token=get_access_token(),
67
+ )
@@ -75,12 +75,31 @@ class WriteAccess(FileAccess):
75
75
  return dict(type="write", **super().to_access_log_record(hash_cache))
76
76
 
77
77
 
78
+ class RunMetadata:
79
+ run_id = "run_id"
80
+ open_timestamp = "open_timestamp"
81
+ close_timestamp = "close_timestamp"
82
+ data_directory = "data_directory"
83
+
84
+ git_repo = "git_repo"
85
+ git_sha = "git_sha"
86
+ default_input_namespace = "default_input_namespace"
87
+ default_output_namespace = "default_output_namespace"
88
+ data_registry_url = "data_registry_url"
89
+ remote_uri = "remote_uri"
90
+ remote_uri_override = "remote_uri_override"
91
+ model_version = "model_version"
92
+ model_name = "model_name"
93
+ description = "description"
94
+ submission_script = "submission_script"
95
+
96
+
78
97
  class FileAPI:
79
98
  RESERVED_RUN_METADATA_KEYS = {
80
- "run_id",
81
- "open_timestamp",
82
- "close_timestamp",
83
- "data_directory",
99
+ RunMetadata.run_id,
100
+ RunMetadata.open_timestamp,
101
+ RunMetadata.close_timestamp,
102
+ RunMetadata.data_directory,
84
103
  }
85
104
 
86
105
  @staticmethod
@@ -137,7 +156,6 @@ class FileAPI:
137
156
  self._run_metadata = {}
138
157
 
139
158
  self._open_timestamp = datetime.now()
140
- self._run_metadata["open_timestamp"] = self._open_timestamp
141
159
  logger.debug("open_timestamp = %s", self._open_timestamp)
142
160
 
143
161
  if config_filename is None:
@@ -153,7 +171,6 @@ class FileAPI:
153
171
  logger.debug("root = %s", self._root.resolve())
154
172
 
155
173
  self._run_id = self._config.get("run_id", uuid4().hex)
156
- self._run_metadata["run_id"] = self._run_id
157
174
  logger.debug("run_id = %s", self._run_id)
158
175
 
159
176
  self._fail_on_hash_mismatch = self._config.get("fail_on_hash_mismatch", True)
@@ -165,7 +182,7 @@ class FileAPI:
165
182
 
166
183
  data_directory = self._config.get("data_directory", self._root)
167
184
  self._unnormalised_data_directory = Path(data_directory)
168
- self._run_metadata["data_directory"] = str(self._unnormalised_data_directory)
185
+
169
186
  self._data_directory = FileAPI.normalise_path(
170
187
  self._root, self._unnormalised_data_directory
171
188
  )
@@ -181,7 +198,12 @@ class FileAPI:
181
198
  )
182
199
  logger.debug("access_log_path = %s", self._access_log_path)
183
200
 
184
- self._run_metadata.update(self._config.get("metadata", {}))
201
+ # Carefully set up the run metadata, preferring overrides from config.
202
+ self._run_metadata["run_id"] = self._run_id
203
+ self._run_metadata["data_directory"] = str(self._unnormalised_data_directory)
204
+ self._run_metadata["open_timestamp"] = self._open_timestamp
205
+ self._run_metadata.update(self._config.get("run_metadata", {}))
206
+
185
207
  self._read_overrides = FileAPI.construct_overrides(self._config.get("read", ()))
186
208
  self._write_overrides = FileAPI.construct_overrides(
187
209
  self._config.get("write", ())
@@ -215,12 +237,13 @@ class FileAPI:
215
237
  == read_metadata[MetadataKey.verified_hash]
216
238
  ):
217
239
  logger.debug("verified hash")
218
- raise ValueError(
219
- (
220
- "calculated hash {calculated_hash} != "
221
- "verified hash {verified_hash}"
222
- ).format(**read_metadata)
223
- )
240
+ else:
241
+ raise ValueError(
242
+ (
243
+ "calculated hash {calculated_hash} != "
244
+ "verified hash {verified_hash}"
245
+ ).format(**read_metadata)
246
+ )
224
247
 
225
248
  logger.debug("open('%s', mode='rb')", path)
226
249
  file = open(path, mode="rb")
@@ -276,14 +299,14 @@ class FileAPI:
276
299
  return file
277
300
 
278
301
  def set_run_metadata(self, key: str, value: Any):
279
- """Set run-level metadata.
302
+ """Set the value for a run-level metadata key.
280
303
  """
281
304
  if key in FileAPI.RESERVED_RUN_METADATA_KEYS:
282
305
  raise ValueError(f"{key} is reserved")
283
306
  self._run_metadata[key] = value
284
307
 
285
308
  def get_run_metadata(self, key: str) -> Any:
286
- """Get run-level metadata.
309
+ """Get the value for a run-level metadata key.
287
310
  """
288
311
  return self._run_metadata[key]
289
312