h5rdmtoolbox 1.2.2__tar.gz → 1.3.0__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 (187) hide show
  1. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/PKG-INFO +31 -17
  2. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/README.md +22 -16
  3. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/__init__.py +99 -10
  4. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/_cfg.py +23 -21
  5. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/_repr.py +185 -61
  6. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/_user.py +35 -3
  7. h5rdmtoolbox-1.3.0/h5rdmtoolbox/cli.py +52 -0
  8. h5rdmtoolbox-1.3.0/h5rdmtoolbox/consts.py +3 -0
  9. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/__init__.py +19 -5
  10. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/core.py +4 -3
  11. h5rdmtoolbox-1.3.0/h5rdmtoolbox/convention/definition.py +33 -0
  12. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/generate.py +6 -6
  13. h5rdmtoolbox-1.3.0/h5rdmtoolbox/convention/hdf_ontology.py +102 -0
  14. h5rdmtoolbox-1.3.0/h5rdmtoolbox/convention/ontology/__init__.py +4 -0
  15. h5rdmtoolbox-1.3.0/h5rdmtoolbox/convention/ontology/h5namespace.py +40 -0
  16. h5rdmtoolbox-1.3.0/h5rdmtoolbox/convention/ontology/h5ontocls.py +62 -0
  17. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_attributes.py +27 -26
  18. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/__init__.py +6 -3
  19. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/h5interface.py +7 -6
  20. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/table.py +10 -47
  21. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/utils.py +3 -2
  22. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/toolbox_validators.py +54 -63
  23. h5rdmtoolbox-1.3.0/h5rdmtoolbox/data/def_icon.png +0 -0
  24. h5rdmtoolbox-1.3.0/h5rdmtoolbox/data/id_icon.png +0 -0
  25. h5rdmtoolbox-1.3.0/h5rdmtoolbox/data/iri_icon.png +0 -0
  26. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/data/style.css +32 -0
  27. h5rdmtoolbox-1.3.0/h5rdmtoolbox/data/type_icon.png +0 -0
  28. h5rdmtoolbox-1.3.0/h5rdmtoolbox/database/__init__.py +80 -0
  29. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/database/hdfdb/__init__.py +0 -4
  30. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/database/hdfdb/filedb.py +32 -20
  31. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/database/hdfdb/objdb.py +154 -75
  32. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/database/hdfdb/query.py +12 -3
  33. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/database/hdfdb/utils.py +10 -5
  34. h5rdmtoolbox-1.2.2/h5rdmtoolbox/database/template.py → h5rdmtoolbox-1.3.0/h5rdmtoolbox/database/interface.py +15 -2
  35. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/database/mongo.py +18 -14
  36. h5rdmtoolbox-1.3.0/h5rdmtoolbox/extensions/magnitude.py +67 -0
  37. h5rdmtoolbox-1.3.0/h5rdmtoolbox/extensions/normalize.py +103 -0
  38. h5rdmtoolbox-1.3.0/h5rdmtoolbox/extensions/units.py +45 -0
  39. h5rdmtoolbox-1.3.0/h5rdmtoolbox/extensions/vector.py +138 -0
  40. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/identifiers.py +13 -10
  41. h5rdmtoolbox-1.3.0/h5rdmtoolbox/layout/core.py +612 -0
  42. h5rdmtoolbox-1.3.0/h5rdmtoolbox/protocols.py +219 -0
  43. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/repository/interface.py +17 -10
  44. h5rdmtoolbox-1.3.0/h5rdmtoolbox/repository/zenodo/core.py +402 -0
  45. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/repository/zenodo/metadata.py +71 -9
  46. h5rdmtoolbox-1.3.0/h5rdmtoolbox/repository/zenodo/tokens.py +86 -0
  47. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/tutorial.py +13 -8
  48. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/utils.py +69 -55
  49. h5rdmtoolbox-1.3.0/h5rdmtoolbox/wrapper/__init__.py +7 -0
  50. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/accessory.py → h5rdmtoolbox-1.3.0/h5rdmtoolbox/wrapper/accessor.py +31 -8
  51. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/wrapper/core.py +498 -321
  52. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/wrapper/ds_decoder.py +1 -0
  53. h5rdmtoolbox-1.3.0/h5rdmtoolbox/wrapper/h5attr.py +473 -0
  54. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/wrapper/h5utils.py +1 -1
  55. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/wrapper/h5yaml.py +49 -21
  56. h5rdmtoolbox-1.3.0/h5rdmtoolbox/wrapper/jsonld.py +1039 -0
  57. {h5rdmtoolbox-1.2.2/h5rdmtoolbox/database → h5rdmtoolbox-1.3.0/h5rdmtoolbox/wrapper}/lazy.py +56 -68
  58. h5rdmtoolbox-1.3.0/h5rdmtoolbox/wrapper/rdf.py +501 -0
  59. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/wrapper/xr2hdf.py +32 -27
  60. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox.egg-info/PKG-INFO +31 -17
  61. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox.egg-info/SOURCES.txt +24 -26
  62. h5rdmtoolbox-1.3.0/h5rdmtoolbox.egg-info/entry_points.txt +2 -0
  63. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox.egg-info/requires.txt +10 -0
  64. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/setup.cfg +12 -21
  65. h5rdmtoolbox-1.3.0/tests/clean_zenodo_sandbox.py +23 -0
  66. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/standard_attributes/standard_names/test_interface.py +6 -6
  67. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/standard_attributes/standard_names/test_provenance.py +3 -3
  68. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/standard_attributes/standard_names/test_snt.py +34 -4
  69. h5rdmtoolbox-1.3.0/tests/conventions/standard_attributes/test_standard_attributes.py +60 -0
  70. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/standard_attributes/test_standard_names.py +1 -2
  71. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/test_conventions.py +8 -30
  72. h5rdmtoolbox-1.3.0/tests/conventions/test_engmeta.py +55 -0
  73. h5rdmtoolbox-1.3.0/tests/conventions/test_ontology.py +231 -0
  74. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/test_toolbox_validators.py +13 -4
  75. h5rdmtoolbox-1.3.0/tests/database/test_find_rdf.py +35 -0
  76. h5rdmtoolbox-1.3.0/tests/database/test_hdfDB.py +564 -0
  77. h5rdmtoolbox-1.3.0/tests/database/test_mongo.py +244 -0
  78. h5rdmtoolbox-1.3.0/tests/layouts/test_core.py +313 -0
  79. h5rdmtoolbox-1.3.0/tests/layouts/test_docs.py +66 -0
  80. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/repository/test_zenodo.py +96 -40
  81. h5rdmtoolbox-1.3.0/tests/test_extensions.py +136 -0
  82. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/test_identifiers.py +22 -8
  83. h5rdmtoolbox-1.3.0/tests/test_repr.py +114 -0
  84. h5rdmtoolbox-1.3.0/tests/test_user.py +100 -0
  85. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/test_utils.py +25 -23
  86. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/test_version.py +4 -6
  87. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/wrapper/test_core.py +272 -58
  88. h5rdmtoolbox-1.3.0/tests/wrapper/test_dump.py +52 -0
  89. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/wrapper/test_file.py +84 -181
  90. h5rdmtoolbox-1.3.0/tests/wrapper/test_jsonld.py +511 -0
  91. h5rdmtoolbox-1.3.0/tests/wrapper/test_lazy.py +62 -0
  92. h5rdmtoolbox-1.3.0/tests/wrapper/test_namespaces.py +45 -0
  93. h5rdmtoolbox-1.3.0/tests/wrapper/test_rdf.py +389 -0
  94. h5rdmtoolbox-1.2.2/h5rdmtoolbox/cache.py +0 -3
  95. h5rdmtoolbox-1.2.2/h5rdmtoolbox/consts.py +0 -8
  96. h5rdmtoolbox-1.2.2/h5rdmtoolbox/convention/_h5tbx.py +0 -37
  97. h5rdmtoolbox-1.2.2/h5rdmtoolbox/convention/_m4i_namespace.py +0 -213
  98. h5rdmtoolbox-1.2.2/h5rdmtoolbox/convention/_obo_namespace.py +0 -60
  99. h5rdmtoolbox-1.2.2/h5rdmtoolbox/data/__init__.py +0 -9
  100. h5rdmtoolbox-1.2.2/h5rdmtoolbox/database/__init__.py +0 -9
  101. h5rdmtoolbox-1.2.2/h5rdmtoolbox/database/hdfdb/nonsearchable.py +0 -11
  102. h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/ipyvolume.py +0 -176
  103. h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/magnitude.py +0 -77
  104. h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/normalize.py +0 -174
  105. h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/scatterhist.py +0 -100
  106. h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/units.py +0 -23
  107. h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/vector.py +0 -85
  108. h5rdmtoolbox-1.2.2/h5rdmtoolbox/hdfgui.py +0 -39
  109. h5rdmtoolbox-1.2.2/h5rdmtoolbox/layout/core.py +0 -322
  110. h5rdmtoolbox-1.2.2/h5rdmtoolbox/namespace.py +0 -7
  111. h5rdmtoolbox-1.2.2/h5rdmtoolbox/repository/h5metamapper.py +0 -68
  112. h5rdmtoolbox-1.2.2/h5rdmtoolbox/repository/zenodo/core.py +0 -316
  113. h5rdmtoolbox-1.2.2/h5rdmtoolbox/repository/zenodo/tokens.py +0 -62
  114. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/__init__.py +0 -9
  115. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/h5attr.py +0 -314
  116. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/iri.py +0 -193
  117. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/jsonld.py +0 -134
  118. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/__init__.py +0 -1
  119. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/_build.py +0 -167
  120. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/_codemeta_namespace.py +0 -82
  121. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/_m4i_namespace.py +0 -213
  122. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/_obo_namespace.py +0 -60
  123. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/_qudt_quantitykind_namespace.py +0 -21953
  124. h5rdmtoolbox-1.2.2/h5rdmtoolbox/wrapper/namespaces/_qudt_unit_namespace.py +0 -27814
  125. h5rdmtoolbox-1.2.2/tests/clean_zenodo_sandbox.py +0 -31
  126. h5rdmtoolbox-1.2.2/tests/conventions/standard_attributes/test_standard_attributes.py +0 -32
  127. h5rdmtoolbox-1.2.2/tests/database/notest_mongo_old.py +0 -253
  128. h5rdmtoolbox-1.2.2/tests/database/test_hdfDB.py +0 -283
  129. h5rdmtoolbox-1.2.2/tests/database/test_mongo.py +0 -130
  130. h5rdmtoolbox-1.2.2/tests/layouts/test_core.py +0 -95
  131. h5rdmtoolbox-1.2.2/tests/repository/test_metadatamapper.py +0 -61
  132. h5rdmtoolbox-1.2.2/tests/test_extensions.py +0 -210
  133. h5rdmtoolbox-1.2.2/tests/test_logger.py +0 -31
  134. h5rdmtoolbox-1.2.2/tests/test_repr.py +0 -79
  135. h5rdmtoolbox-1.2.2/tests/test_user.py +0 -57
  136. h5rdmtoolbox-1.2.2/tests/wrapper/test_dump.py +0 -21
  137. h5rdmtoolbox-1.2.2/tests/wrapper/test_namespaces.py +0 -107
  138. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/LICENSE +0 -0
  139. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/_version.py +0 -0
  140. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/cfg.py +0 -0
  141. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/consts.py +0 -0
  142. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/errors.py +0 -0
  143. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/references.py +0 -0
  144. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/accessor.py +0 -0
  145. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/affixes.py +0 -0
  146. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/cache.py +0 -0
  147. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/consts.py +0 -0
  148. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/name.py +0 -0
  149. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/standard_names/transformation.py +0 -0
  150. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/utils.py +0 -0
  151. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/convention/warnings.py +0 -0
  152. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/data/fluid-v1.yml +0 -0
  153. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/data/h5tbx.yaml +0 -0
  154. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/data/piv-v1.yml +0 -0
  155. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/data/tutorial_convention.yaml +0 -0
  156. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/data/tutorial_standard_name_table.yaml +0 -0
  157. /h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/__init__.py → /h5rdmtoolbox-1.3.0/h5rdmtoolbox/dev.py +0 -0
  158. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/errors.py +0 -0
  159. {h5rdmtoolbox-1.2.2/tests → h5rdmtoolbox-1.3.0/h5rdmtoolbox/extensions}/__init__.py +0 -0
  160. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/layout/__init__.py +0 -0
  161. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/plotting.py +0 -0
  162. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/protected_attributes.py +0 -0
  163. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/repository/__init__.py +0 -0
  164. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/repository/zenodo/__init__.py +0 -0
  165. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/repository/zenodo/utils.py +0 -0
  166. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/warnings.py +0 -0
  167. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox/wrapper/h5ext.py +0 -0
  168. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox.egg-info/dependency_links.txt +0 -0
  169. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/h5rdmtoolbox.egg-info/top_level.txt +0 -0
  170. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/pyproject.toml +0 -0
  171. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/setup.py +0 -0
  172. {h5rdmtoolbox-1.2.2/tests/conventions → h5rdmtoolbox-1.3.0/tests}/__init__.py +0 -0
  173. {h5rdmtoolbox-1.2.2/tests/conventions/standard_attributes → h5rdmtoolbox-1.3.0/tests/conventions}/__init__.py +0 -0
  174. {h5rdmtoolbox-1.2.2/tests/conventions/standard_attributes/standard_names → h5rdmtoolbox-1.3.0/tests/conventions/standard_attributes}/__init__.py +0 -0
  175. {h5rdmtoolbox-1.2.2/tests/database → h5rdmtoolbox-1.3.0/tests/conventions/standard_attributes/standard_names}/__init__.py +0 -0
  176. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/standard_attributes/standard_names/test_transformations_and_affixes.py +0 -0
  177. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/test_references.py +0 -0
  178. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/conventions/test_utils.py +0 -0
  179. {h5rdmtoolbox-1.2.2/tests/layouts → h5rdmtoolbox-1.3.0/tests/database}/__init__.py +0 -0
  180. {h5rdmtoolbox-1.2.2/tests/repository → h5rdmtoolbox-1.3.0/tests/layouts}/__init__.py +0 -0
  181. {h5rdmtoolbox-1.2.2/tests/wrapper → h5rdmtoolbox-1.3.0/tests/repository}/__init__.py +0 -0
  182. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/test_config.py +0 -0
  183. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/test_plotting.py +0 -0
  184. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/test_xarray_export.py +0 -0
  185. /h5rdmtoolbox-1.2.2/h5rdmtoolbox/extensions/dataset.py → /h5rdmtoolbox-1.3.0/tests/wrapper/__init__.py +0 -0
  186. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/wrapper/test_h5ext.py +0 -0
  187. {h5rdmtoolbox-1.2.2 → h5rdmtoolbox-1.3.0}/tests/wrapper/test_xr2df.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: h5rdmtoolbox
3
- Version: 1.2.2
3
+ Version: 1.3.0
4
4
  Summary: Supporting a FAIR Research Data lifecycle using Python and HDF5.
5
5
  Home-page: https://h5rdmtoolbox.readthedocs.io/en/latest/
6
6
  Author: Matthias Probst
@@ -29,12 +29,15 @@ Requires-Dist: pint==0.21.1
29
29
  Requires-Dist: pint_xarray
30
30
  Requires-Dist: regex
31
31
  Requires-Dist: packaging
32
+ Requires-Dist: ontolutils>=0.2.20
32
33
  Requires-Dist: python-forge
33
34
  Requires-Dist: requests
34
35
  Requires-Dist: pydantic>=2.3.0
35
36
  Requires-Dist: rdflib
36
37
  Provides-Extra: database
37
38
  Requires-Dist: pymongo; extra == "database"
39
+ Provides-Extra: layout-validation
40
+ Requires-Dist: tabulate; extra == "layout-validation"
38
41
  Provides-Extra: csv
39
42
  Requires-Dist: pandas; extra == "csv"
40
43
  Provides-Extra: snt
@@ -42,6 +45,8 @@ Requires-Dist: xmltodict; extra == "snt"
42
45
  Requires-Dist: tabulate; extra == "snt"
43
46
  Requires-Dist: python-gitlab; extra == "snt"
44
47
  Requires-Dist: pypandoc; extra == "snt"
48
+ Provides-Extra: gui
49
+ Requires-Dist: PyQt5; extra == "gui"
45
50
  Provides-Extra: test
46
51
  Requires-Dist: pytest>=7.1.2; extra == "test"
47
52
  Requires-Dist: pytest-cov; extra == "test"
@@ -82,7 +87,9 @@ Requires-Dist: sphinx-design; extra == "docs"
82
87
  Requires-Dist: simplejson; extra == "docs"
83
88
  Requires-Dist: myst-nb; extra == "docs"
84
89
  Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
90
+ Requires-Dist: kglab; extra == "docs"
85
91
  Provides-Extra: complete
92
+ Requires-Dist: PyQt5; extra == "complete"
86
93
  Requires-Dist: pytest>=7.1.2; extra == "complete"
87
94
  Requires-Dist: pytest-cov; extra == "complete"
88
95
  Requires-Dist: pylint; extra == "complete"
@@ -121,6 +128,7 @@ Requires-Dist: sphinx-design; extra == "complete"
121
128
  Requires-Dist: simplejson; extra == "complete"
122
129
  Requires-Dist: myst-nb; extra == "complete"
123
130
  Requires-Dist: sphinxcontrib-bibtex; extra == "complete"
131
+ Requires-Dist: kglab; extra == "complete"
124
132
 
125
133
  # HDF5 Research Data Management Toolbox
126
134
 
@@ -131,7 +139,7 @@ Requires-Dist: sphinxcontrib-bibtex; extra == "complete"
131
139
 
132
140
  *Note, that the project is still under development!*
133
141
 
134
- The "HDF5 Research Data Management Toolbox" (h5RDMtoolbox) is a python package supporting everybody who is working with
142
+ The "HDF5 Research Data Management Toolbox" (h5RDMtoolbox) is a Python package supporting everybody who is working with
135
143
  HDF5 to achieve a sustainable data lifecycle which follows
136
144
  the [FAIR (Findable, Accessible, Interoperable, Reusable)](https://www.nature.com/articles/sdata201618)
137
145
  principles. It specifically supports the five main steps of *planning*, *collecting*, *analyzing*, *sharing* and
@@ -142,13 +150,14 @@ information of try the [quickstart using colab](#quickstart).
142
150
 
143
151
  - Combining HDF5 and [xarray](https://docs.xarray.dev/en/stable/) to allow easy access to metadata and data during
144
152
  analysis and processing (
145
- see [here](https://h5rdmtoolbox.readthedocs.io/en/latest/gettingstarted/quickoverview.html#datasets-xarray-interface).
153
+ see [here](https://h5rdmtoolbox.readthedocs.io/en/latest/gettingstarted/quickoverview.html#datasets-xarray-interface)).
146
154
  - Assigning [metadata with "globally unique and persistent identifiers"]() as required
147
- by [F1 of the FAIR principles](https://www.go-fair.org/fair-principles/f1-meta-data-assigned-globally-unique-persistent-identifiers/)
148
- . This "remove[s] ambiguity in the meaning of your published data...".
155
+ by [F1 of the FAIR principles](https://www.go-fair.org/fair-principles/f1-meta-data-assigned-globally-unique-persistent-identifiers/).
156
+ This can be achieved by using [RDF triples](https://www.w3.org/RDF/), which removes "ambiguity in the meaning of your
157
+ published data".
149
158
  - Define standard attributes through
150
159
  [conventions](https://h5rdmtoolbox.readthedocs.io/en/latest/userguide/convention/index.html) and enforce users to use
151
- them
160
+ certain attributes in their HDF5 files, such as units and a description, for example.
152
161
  - Upload HDF5 files directly
153
162
  to [repositories](https://h5rdmtoolbox.readthedocs.io/en/latest/userguide/repository/index.html)
154
163
  like [Zenodo](https://zenodo.org/)
@@ -159,20 +168,21 @@ information of try the [quickstart using colab](#quickstart).
159
168
 
160
169
  For everybody, who is...
161
170
 
162
- - ... looking for a management approach for his or her data
163
- - ... community has not yet established a stable convention
164
- - ... working with small and big data, that fits into HDF5 files
165
- - ... looking for an easy way to work with HDF5, especially through Jupyter Notebooks
166
- - ... looking to integrate HDF5 with repositories and databases
167
- - ... looking for a way to do all the above whiles not needing to learn a new syntax
168
- - ... new to HDF5 and wants to learn about it, especially with respect to the FAIR principles and data management
171
+ - ... looking for a management approach for his or her data.
172
+ - ... community has not yet established a stable convention.
173
+ - ... working with small and big data, that fits into HDF5 files.
174
+ - ... looking for an easy way to work with HDF5, especially through Jupyter Notebooks.
175
+ - ... trying to integrate HDF5 with repositories and databases.
176
+ - ... wishing to enrich data semantically with the RDF standard.
177
+ - ... looking for a way to do all the above whiles not needing to learn a new syntax.
178
+ - ... new to HDF5 and wants to learn about it, especially with respect to the FAIR principles and data management.
169
179
 
170
180
  ## Who is it not for?
171
181
 
172
182
  For everybody, who ...
173
183
 
174
184
  - ... is looking for a management approach which at the same time allows high-performance and/or parallel work with HDF5
175
- - ... has established conventions and managements approaches in his or her community
185
+ - ... has already well-established conventions and managements approaches in his or her community
176
186
 
177
187
  ## Package Architecture/structure
178
188
 
@@ -185,8 +195,9 @@ of each other.
185
195
  Current implementation highlights in the modules:
186
196
 
187
197
  - The **wrapper** module adds functionality on top of the `h5py` package. It allows to include so-called standard names,
188
- which are defined in conventions. And it implements an interface with the package `xarray`, which allows to carry
189
- metadata from HDF5 to the user.
198
+ which are defined in conventions. And it implements interfaces, such as to the package `xarray`, which allows to carry
199
+ metadata from HDF5 to the user. Other high-level interfaces like `.rdf` allows assigning semantic information to the
200
+ HDF5 file.
190
201
  - For the **database** module, `hdfDB` and `mongoDB` are implemented. The `hdfDB` module allows to use HDF5 files as a
191
202
  database. The `mongoDB` module allows to use mongoDB as a database by mapping the metadata of HDF5 files to the
192
203
  database.
@@ -258,9 +269,13 @@ specific to the features of the package:
258
269
  - `pint_xarray>=0.2.1`: Working with units for usage with xarray
259
270
  - `python-forge==18.6.0`: Used to update function signatures when using
260
271
  the [standard attributes](https://h5rdmtoolbox.readthedocs.io/en/latest/conventions/standard_attributes_and_conventions.html)
272
+ - `pydantic`: Used to
273
+ validate [standard attributes](https://h5rdmtoolbox.readthedocs.io/en/latest/conventions/standard_attributes_and_conventions.html)
261
274
  - `pyyaml>6.0.0`: Reading and writing of yaml files, e.g. metadata definitions (conventions). Note, lower versions
262
275
  collide with python 3.11
263
276
  - `requests`: Used to download files from the internet or validate URLs, e.g. metadata definitions (conventions)
277
+ - `rdflib`: Used to enable working with RDF
278
+ - `ontolutils`: Required to work with RDF and derive semantic description of HDF5 file content
264
279
 
265
280
  #### Optional dependencies
266
281
 
@@ -285,7 +300,6 @@ Install optional dependencies by specifying them in square brackets after the pa
285
300
  - `python-gitlab`: Access to gitlab repositories
286
301
  - `pypandoc>=2.3`: Conversion of markdown files to html
287
302
 
288
-
289
303
  ## Citing the package
290
304
 
291
305
  If you intend to use the package in your work, you may cite the paper in the
@@ -7,7 +7,7 @@
7
7
 
8
8
  *Note, that the project is still under development!*
9
9
 
10
- The "HDF5 Research Data Management Toolbox" (h5RDMtoolbox) is a python package supporting everybody who is working with
10
+ The "HDF5 Research Data Management Toolbox" (h5RDMtoolbox) is a Python package supporting everybody who is working with
11
11
  HDF5 to achieve a sustainable data lifecycle which follows
12
12
  the [FAIR (Findable, Accessible, Interoperable, Reusable)](https://www.nature.com/articles/sdata201618)
13
13
  principles. It specifically supports the five main steps of *planning*, *collecting*, *analyzing*, *sharing* and
@@ -18,13 +18,14 @@ information of try the [quickstart using colab](#quickstart).
18
18
 
19
19
  - Combining HDF5 and [xarray](https://docs.xarray.dev/en/stable/) to allow easy access to metadata and data during
20
20
  analysis and processing (
21
- see [here](https://h5rdmtoolbox.readthedocs.io/en/latest/gettingstarted/quickoverview.html#datasets-xarray-interface).
21
+ see [here](https://h5rdmtoolbox.readthedocs.io/en/latest/gettingstarted/quickoverview.html#datasets-xarray-interface)).
22
22
  - Assigning [metadata with "globally unique and persistent identifiers"]() as required
23
- by [F1 of the FAIR principles](https://www.go-fair.org/fair-principles/f1-meta-data-assigned-globally-unique-persistent-identifiers/)
24
- . This "remove[s] ambiguity in the meaning of your published data...".
23
+ by [F1 of the FAIR principles](https://www.go-fair.org/fair-principles/f1-meta-data-assigned-globally-unique-persistent-identifiers/).
24
+ This can be achieved by using [RDF triples](https://www.w3.org/RDF/), which removes "ambiguity in the meaning of your
25
+ published data".
25
26
  - Define standard attributes through
26
27
  [conventions](https://h5rdmtoolbox.readthedocs.io/en/latest/userguide/convention/index.html) and enforce users to use
27
- them
28
+ certain attributes in their HDF5 files, such as units and a description, for example.
28
29
  - Upload HDF5 files directly
29
30
  to [repositories](https://h5rdmtoolbox.readthedocs.io/en/latest/userguide/repository/index.html)
30
31
  like [Zenodo](https://zenodo.org/)
@@ -35,20 +36,21 @@ information of try the [quickstart using colab](#quickstart).
35
36
 
36
37
  For everybody, who is...
37
38
 
38
- - ... looking for a management approach for his or her data
39
- - ... community has not yet established a stable convention
40
- - ... working with small and big data, that fits into HDF5 files
41
- - ... looking for an easy way to work with HDF5, especially through Jupyter Notebooks
42
- - ... looking to integrate HDF5 with repositories and databases
43
- - ... looking for a way to do all the above whiles not needing to learn a new syntax
44
- - ... new to HDF5 and wants to learn about it, especially with respect to the FAIR principles and data management
39
+ - ... looking for a management approach for his or her data.
40
+ - ... community has not yet established a stable convention.
41
+ - ... working with small and big data, that fits into HDF5 files.
42
+ - ... looking for an easy way to work with HDF5, especially through Jupyter Notebooks.
43
+ - ... trying to integrate HDF5 with repositories and databases.
44
+ - ... wishing to enrich data semantically with the RDF standard.
45
+ - ... looking for a way to do all the above whiles not needing to learn a new syntax.
46
+ - ... new to HDF5 and wants to learn about it, especially with respect to the FAIR principles and data management.
45
47
 
46
48
  ## Who is it not for?
47
49
 
48
50
  For everybody, who ...
49
51
 
50
52
  - ... is looking for a management approach which at the same time allows high-performance and/or parallel work with HDF5
51
- - ... has established conventions and managements approaches in his or her community
53
+ - ... has already well-established conventions and managements approaches in his or her community
52
54
 
53
55
  ## Package Architecture/structure
54
56
 
@@ -61,8 +63,9 @@ of each other.
61
63
  Current implementation highlights in the modules:
62
64
 
63
65
  - The **wrapper** module adds functionality on top of the `h5py` package. It allows to include so-called standard names,
64
- which are defined in conventions. And it implements an interface with the package `xarray`, which allows to carry
65
- metadata from HDF5 to the user.
66
+ which are defined in conventions. And it implements interfaces, such as to the package `xarray`, which allows to carry
67
+ metadata from HDF5 to the user. Other high-level interfaces like `.rdf` allows assigning semantic information to the
68
+ HDF5 file.
66
69
  - For the **database** module, `hdfDB` and `mongoDB` are implemented. The `hdfDB` module allows to use HDF5 files as a
67
70
  database. The `mongoDB` module allows to use mongoDB as a database by mapping the metadata of HDF5 files to the
68
71
  database.
@@ -134,9 +137,13 @@ specific to the features of the package:
134
137
  - `pint_xarray>=0.2.1`: Working with units for usage with xarray
135
138
  - `python-forge==18.6.0`: Used to update function signatures when using
136
139
  the [standard attributes](https://h5rdmtoolbox.readthedocs.io/en/latest/conventions/standard_attributes_and_conventions.html)
140
+ - `pydantic`: Used to
141
+ validate [standard attributes](https://h5rdmtoolbox.readthedocs.io/en/latest/conventions/standard_attributes_and_conventions.html)
137
142
  - `pyyaml>6.0.0`: Reading and writing of yaml files, e.g. metadata definitions (conventions). Note, lower versions
138
143
  collide with python 3.11
139
144
  - `requests`: Used to download files from the internet or validate URLs, e.g. metadata definitions (conventions)
145
+ - `rdflib`: Used to enable working with RDF
146
+ - `ontolutils`: Required to work with RDF and derive semantic description of HDF5 file content
140
147
 
141
148
  #### Optional dependencies
142
149
 
@@ -161,7 +168,6 @@ Install optional dependencies by specifying them in square brackets after the pa
161
168
  - `python-gitlab`: Access to gitlab repositories
162
169
  - `pypandoc>=2.3`: Conversion of markdown files to html
163
170
 
164
-
165
171
  ## Citing the package
166
172
 
167
173
  If you intend to use the package in your work, you may cite the paper in the
@@ -1,6 +1,31 @@
1
1
  """h5rdtoolbox repository"""
2
- import atexit
2
+
3
+ import appdirs
4
+ import logging
3
5
  import pathlib
6
+ from logging.handlers import RotatingFileHandler
7
+
8
+ _logdir = pathlib.Path(appdirs.user_log_dir('h5rdmtoolbox'))
9
+ _logdir.mkdir(parents=True, exist_ok=True)
10
+
11
+ DEFAULT_LOGGING_LEVEL = logging.WARNING
12
+ _formatter = logging.Formatter(
13
+ '%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
14
+ datefmt='%Y-%m-%d_%H:%M:%S')
15
+
16
+ _stream_handler = logging.StreamHandler()
17
+ _stream_handler.setLevel(DEFAULT_LOGGING_LEVEL)
18
+ _stream_handler.setFormatter(_formatter)
19
+
20
+ _file_handler = RotatingFileHandler(_logdir / 'h5rdmtoolbox.log')
21
+ _file_handler.setLevel(logging.DEBUG) # log everything to file!
22
+ _file_handler.setFormatter(_formatter)
23
+
24
+ logger = logging.getLogger(__package__)
25
+ logger.addHandler(_stream_handler)
26
+ logger.addHandler(_file_handler)
27
+
28
+ import atexit
4
29
  # noinspection PyUnresolvedReferences
5
30
  import pint_xarray
6
31
  import shutil
@@ -20,16 +45,24 @@ from . import utils
20
45
  from .wrapper.core import lower, Lower, File, Group, Dataset
21
46
  from . import warnings, errors
22
47
  from .wrapper import jsonld
23
- from .wrapper.accessory import register_special_dataset
48
+ from .wrapper.lazy import lazy
49
+ from .wrapper.h5attr import Attribute
50
+ # from h5rdmtoolbox.wrapper.accessor import register_accessor
51
+ import json
52
+ from .wrapper.accessor import register_accessor
24
53
 
25
54
  name = 'h5rdmtoolbox'
26
55
  __this_dir__ = pathlib.Path(__file__).parent
27
56
  __author__ = 'Matthias Probst'
28
57
  __author_orcid__ = 'https://orcid.org/0000-0001-8729-0482'
29
58
 
30
- logger = utils.create_tbx_logger('h5rdmtoolbox')
31
59
 
32
- logger.setLevel(get_config()['init_logger_level'])
60
+ def get_package_meta():
61
+ """Reads codemeta.json and returns it as dict"""
62
+ with open(__this_dir__ / '../codemeta.json', 'r') as f:
63
+ codemeta = json.loads(f.read())
64
+ return codemeta
65
+
33
66
 
34
67
  cv_h5py = convention.Convention(name='h5py',
35
68
  contact=__author_orcid__)
@@ -40,7 +73,7 @@ use(None)
40
73
 
41
74
 
42
75
  def dump(src: Union[str, File, pathlib.Path],
43
- **kwargs) -> None:
76
+ *args, **kwargs) -> None:
44
77
  """Call h5.dump() on the provided HDF5 file
45
78
 
46
79
  Parameters
@@ -52,7 +85,7 @@ def dump(src: Union[str, File, pathlib.Path],
52
85
  """
53
86
  if isinstance(src, File):
54
87
  with File(src.hdf_filename) as h5:
55
- return h5.dump(**kwargs)
88
+ return h5.dump(*args, **kwargs)
56
89
 
57
90
  if isinstance(src, (str, pathlib.Path)):
58
91
  pass
@@ -86,10 +119,58 @@ def dumps(src: Union[str, File, pathlib.Path]):
86
119
  return h5.dumps()
87
120
 
88
121
 
122
+ def dump_jsonld(hdf_filename: Union[str, pathlib.Path],
123
+ skipND: int = 1,
124
+ structural: bool = True,
125
+ semantic: bool = True,
126
+ resolve_keys: bool = False,
127
+ **kwargs) -> str:
128
+ """Dump the JSON-LD representation of the file. With semantic=True and structural=False, the JSON-LD
129
+ represents the semantic content only. To get a pure structural representation, set semantic=False, which
130
+ will ignore any RDF content. If both are set to True, the JSON-LD will contain both structural and semantic.
131
+
132
+ Parameters
133
+ ----------
134
+ hdf_filename : str, pathlib.Path
135
+ the HDF5 file to dump.
136
+ skipND : int=1
137
+ Skip writing data of datasets with more then skipND dimensions. Only
138
+ considered if structural=True.
139
+ structural : bool=True
140
+ Include structural information in the JSON-LD output.
141
+ semantic : bool=True
142
+ Include semantic information in the JSON-LD output.
143
+ resolve_keys : bool=False
144
+ Resolve keys in the JSON-LD output. This is used when semantic=True.
145
+ If resolve_keys is False and an attribute name in the HDF5 file, which has
146
+ a predicate is different in its name from the predicate, the attribute name is used.
147
+ Example: an attribute "name" is associated with "foaf:lastName", then "name" is used
148
+ and "name": "https://xmlns.com/foaf/0.1/lastName" is added to the context.
149
+
150
+ """
151
+ from .wrapper import jsonld
152
+ if not structural and not semantic:
153
+ raise ValueError('At least one of structural or semantic must be True.')
154
+ if structural and not semantic:
155
+ return jsonld.dump_file(hdf_filename, skipND=skipND)
156
+ with File(hdf_filename) as h5:
157
+ return jsonld.dumps(h5, structural=structural, resolve_keys=resolve_keys, **kwargs)
158
+
159
+
160
+ def get_filesize(hdf_filename: Union[str, pathlib.Path]) -> int:
161
+ """Get the size of the HDF5 file in bytes"""
162
+ return utils.get_filesize(hdf_filename)
163
+
164
+
165
+ def get_checksum(hdf_filename: Union[str, pathlib.Path]) -> str:
166
+ """Get the checksum of the HDF5 file"""
167
+ return utils.get_checksum(hdf_filename)
168
+
169
+
89
170
  def register_dataset_decoder(decoder: Callable, decoder_name: str = None, overwrite: bool = False):
90
171
  """A decoder function takes a xarray.DataArray and a dataset as input and returns a xarray.DataArray
91
172
  It is called after the dataset is loaded into memory and before being returned to the user. Be careful:
92
- Multiple decoders can be registered and they are called in the order of registration. Hence, your decoder
173
+ Multiple decoders can be registered, and they are called in the order of registration. Hence, your decoder
93
174
  may behave unexpectedly!
94
175
  """
95
176
  from .wrapper import ds_decoder
@@ -105,6 +186,15 @@ def register_dataset_decoder(decoder: Callable, decoder_name: str = None, overwr
105
186
  atexit_verbose = False
106
187
 
107
188
 
189
+ def set_loglevel(level: Union[int, str]):
190
+ """Set the logging level of the h5rdmtoolbox logger"""
191
+ import logging
192
+ _logger = logging.getLogger('h5rdmtoolbox')
193
+ _logger.setLevel(level)
194
+ for h in _logger.handlers:
195
+ h.setLevel(level)
196
+
197
+
108
198
  @atexit.register
109
199
  def clean_temp_data(full: bool = False):
110
200
  """cleaning up the tmp directory"""
@@ -163,8 +253,7 @@ xr.set_options(display_expand_data=False)
163
253
 
164
254
  __all__ = ('__version__', '__author__', '__author_orcid__',
165
255
  'UserDir', 'use',
166
- 'File', 'Group', 'Dataset',
256
+ 'File', 'Group', 'Dataset', 'Attribute',
167
257
  'dump', 'dumps', 'cv_h5py', 'lower', 'Lower',
168
258
  'set_config', 'get_config', 'get_ureg',
169
- 'Convention', 'namespace',
170
- 'jsonld')
259
+ 'Convention', 'jsonld', 'lazy')
@@ -17,26 +17,28 @@ def is_valid_logger_level(level: Union[str, int]):
17
17
 
18
18
 
19
19
  CONFIG = {
20
- 'return_xarray': True,
21
- 'advanced_shape_repr': True,
22
- 'natural_naming': True,
23
- 'hdf_compression': None, # 'gzip',
24
- 'hdf_compression_opts': None, # 5,
25
- 'adjusting_plotting_labels': True,
26
- 'xarray_unit_repr_in_plots': 'in',
27
- 'plotting_name_order': ('plot_name', 'long_name', 'standard_name'),
28
- 'require_unit': True, # datasets require units
29
- 'ureg_format': 'C~',
30
- 'init_logger_level': 'ERROR',
31
- 'dtime_fmt': '%Y%m%d%H%M%S%f',
32
- 'expose_user_prop_to_attrs': True,
33
- 'add_provenance': False,
34
- 'ignore_set_std_attr_err': False,
35
-
36
- # if a standard attribute is defined and cannot be retrieved because the value is invalid, ignore it:
37
- 'ignore_get_std_attr_err': False,
38
- 'allow_deleting_standard_attributes': False,
39
- }
20
+ 'return_xarray': True,
21
+ 'advanced_shape_repr': True,
22
+ 'natural_naming': True,
23
+ 'hdf_compression': None, # 'gzip',
24
+ 'hdf_compression_opts': None, # 5,
25
+ 'adjusting_plotting_labels': True,
26
+ 'xarray_unit_repr_in_plots': 'in',
27
+ 'plotting_name_order': ('plot_name', 'long_name', 'standard_name'),
28
+ 'require_unit': True, # datasets require units
29
+ 'ureg_format': 'C~',
30
+ 'init_logger_level': 'ERROR',
31
+ 'dtime_fmt': '%Y%m%d%H%M%S%f',
32
+ 'expose_user_prop_to_attrs': True,
33
+ 'add_provenance': False,
34
+ 'ignore_set_std_attr_err': False,
35
+ 'auto_create_h5tbx_version': False, # automatically creates the group h5rdmtoolbox with the version attribute
36
+ 'uuid_name': 'uuid', # attribute name used for UUIDs
37
+ # if a standard attribute is defined and cannot be retrieved because the value is invalid, ignore it:
38
+ 'ignore_get_std_attr_err': False,
39
+ 'allow_deleting_standard_attributes': False,
40
+ 'ignore_none': False
41
+ }
40
42
 
41
43
  _VALIDATORS = {
42
44
  'return_xarray': lambda x: isinstance(x, bool),
@@ -54,8 +56,8 @@ _VALIDATORS = {
54
56
  'expose_user_prop_to_attrs': lambda x: isinstance(x, bool),
55
57
  'add_provenance': lambda x: isinstance(x, bool),
56
58
  'ignore_set_std_attr_err': lambda x: isinstance(x, bool),
57
-
58
59
  'ignore_get_std_attr_err': lambda x: isinstance(x, bool),
60
+ 'ignore_none': lambda x: isinstance(x, bool)
59
61
  }
60
62
 
61
63