datalab-server 0.5.3rc6__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 (195) hide show
  1. datalab_server-0.5.3rc6/PKG-INFO +173 -0
  2. datalab_server-0.5.3rc6/README.md +114 -0
  3. datalab_server-0.5.3rc6/docs/.pages +8 -0
  4. datalab_server-0.5.3rc6/docs/CHANGELOG.md +327 -0
  5. datalab_server-0.5.3rc6/docs/INSTALL.md +185 -0
  6. datalab_server-0.5.3rc6/docs/LICENSE +21 -0
  7. datalab_server-0.5.3rc6/docs/blocks/.pages +1 -0
  8. datalab_server-0.5.3rc6/docs/blocks/apps/.pages +1 -0
  9. datalab_server-0.5.3rc6/docs/blocks/apps/chat.md +2 -0
  10. datalab_server-0.5.3rc6/docs/blocks/apps/echem.md +2 -0
  11. datalab_server-0.5.3rc6/docs/blocks/apps/eis.md +2 -0
  12. datalab_server-0.5.3rc6/docs/blocks/apps/ftir.md +2 -0
  13. datalab_server-0.5.3rc6/docs/blocks/apps/nmr.md +2 -0
  14. datalab_server-0.5.3rc6/docs/blocks/apps/raman.md +1 -0
  15. datalab_server-0.5.3rc6/docs/blocks/apps/tga.md +2 -0
  16. datalab_server-0.5.3rc6/docs/blocks/apps/uvvis.md +2 -0
  17. datalab_server-0.5.3rc6/docs/blocks/apps/xrd.md +2 -0
  18. datalab_server-0.5.3rc6/docs/blocks/base.md +1 -0
  19. datalab_server-0.5.3rc6/docs/blocks/common.md +1 -0
  20. datalab_server-0.5.3rc6/docs/config.md +105 -0
  21. datalab_server-0.5.3rc6/docs/css/reference.css +5 -0
  22. datalab_server-0.5.3rc6/docs/deployment.md +223 -0
  23. datalab_server-0.5.3rc6/docs/index.md +114 -0
  24. datalab_server-0.5.3rc6/docs/schemas/.pages +1 -0
  25. datalab_server-0.5.3rc6/docs/schemas/cells.md +9 -0
  26. datalab_server-0.5.3rc6/docs/schemas/collections.md +9 -0
  27. datalab_server-0.5.3rc6/docs/schemas/equipment.md +9 -0
  28. datalab_server-0.5.3rc6/docs/schemas/items.md +9 -0
  29. datalab_server-0.5.3rc6/docs/schemas/samples.md +9 -0
  30. datalab_server-0.5.3rc6/docs/schemas/starting_materials.md +9 -0
  31. datalab_server-0.5.3rc6/example_data/FTIR/2024-10-10_FeSO4_ref.asp +1938 -0
  32. datalab_server-0.5.3rc6/example_data/NMR/1.zip +0 -0
  33. datalab_server-0.5.3rc6/example_data/NMR/71.zip +0 -0
  34. datalab_server-0.5.3rc6/example_data/NMR/72.zip +0 -0
  35. datalab_server-0.5.3rc6/example_data/NMR/README +3 -0
  36. datalab_server-0.5.3rc6/example_data/TGA-MS/20221128 134958 TGA MS Megan.asc +1374 -0
  37. datalab_server-0.5.3rc6/example_data/TGA-MS/mp2028_281122_LNO+C.txt +4073 -0
  38. datalab_server-0.5.3rc6/example_data/UV-Vis/1908047U1_0000.Raw8.TXT +1930 -0
  39. datalab_server-0.5.3rc6/example_data/UV-Vis/1908047U1_0001.Raw8.txt +1930 -0
  40. datalab_server-0.5.3rc6/example_data/UV-Vis/1908047U1_0060.Raw8.txt +1930 -0
  41. datalab_server-0.5.3rc6/example_data/XRD/CG20396_jdb12-1.xrdml +82 -0
  42. datalab_server-0.5.3rc6/example_data/XRD/HL1-2_5-90_60min.xrdml +105 -0
  43. datalab_server-0.5.3rc6/example_data/XRD/JO_KL_16_ZF_3_60deg_0.02step_12degpermin_001.rasx +0 -0
  44. datalab_server-0.5.3rc6/example_data/XRD/Scan_C1.xrdml +86 -0
  45. datalab_server-0.5.3rc6/example_data/XRD/Scan_C10.xrdml +86 -0
  46. datalab_server-0.5.3rc6/example_data/XRD/Scan_C2.xrdml +86 -0
  47. datalab_server-0.5.3rc6/example_data/XRD/Scan_C3.xrdml +86 -0
  48. datalab_server-0.5.3rc6/example_data/XRD/Scan_C4.xrdml +86 -0
  49. datalab_server-0.5.3rc6/example_data/XRD/Scan_C5.xrdml +86 -0
  50. datalab_server-0.5.3rc6/example_data/XRD/Scan_C6.xrdml +86 -0
  51. datalab_server-0.5.3rc6/example_data/XRD/Scan_C7.xrdml +86 -0
  52. datalab_server-0.5.3rc6/example_data/XRD/Scan_C8.xrdml +86 -0
  53. datalab_server-0.5.3rc6/example_data/XRD/Scan_C9.xrdml +86 -0
  54. datalab_server-0.5.3rc6/example_data/XRD/example_bmb.xye +600 -0
  55. datalab_server-0.5.3rc6/example_data/XRD/example_evadiffract.xy +29 -0
  56. datalab_server-0.5.3rc6/example_data/XRD/example_mac.xye +599 -0
  57. datalab_server-0.5.3rc6/example_data/XRD/example_mythen.dat +730 -0
  58. datalab_server-0.5.3rc6/example_data/XRD/example_mythen.xye +74 -0
  59. datalab_server-0.5.3rc6/example_data/XRD/example_ocx.xy +1877 -0
  60. datalab_server-0.5.3rc6/example_data/csv/simple.csv +3 -0
  61. datalab_server-0.5.3rc6/example_data/csv/simple.xlsx +0 -0
  62. datalab_server-0.5.3rc6/example_data/echem/README +7 -0
  63. datalab_server-0.5.3rc6/example_data/echem/jdb11-1_c3_gcpl_5cycles_2V-3p8V_C-24_data.mps +66 -0
  64. datalab_server-0.5.3rc6/example_data/echem/jdb11-1_c3_gcpl_5cycles_2V-3p8V_C-24_data_C09.mpr +0 -0
  65. datalab_server-0.5.3rc6/example_data/echem/jdb11-1_c3_gcpl_5cycles_2V-3p8V_C-24_data_D1_C09.sta +0 -0
  66. datalab_server-0.5.3rc6/example_data/echem/jdb11-1_e1_s3_squidTest_data_C15.mpr +0 -0
  67. datalab_server-0.5.3rc6/example_data/raman/labspec_raman_example.txt +389 -0
  68. datalab_server-0.5.3rc6/example_data/raman/raman_example.txt +1012 -0
  69. datalab_server-0.5.3rc6/example_data/raman/raman_example.wdf +0 -0
  70. datalab_server-0.5.3rc6/mkdocs.yml +106 -0
  71. datalab_server-0.5.3rc6/pyproject.toml +177 -0
  72. datalab_server-0.5.3rc6/schemas/cell.json +665 -0
  73. datalab_server-0.5.3rc6/schemas/equipment.json +528 -0
  74. datalab_server-0.5.3rc6/schemas/sample.json +617 -0
  75. datalab_server-0.5.3rc6/schemas/startingmaterial.json +670 -0
  76. datalab_server-0.5.3rc6/scripts/add_test_cell_to_db.py +40 -0
  77. datalab_server-0.5.3rc6/scripts/create_mongo_indices.py +3 -0
  78. datalab_server-0.5.3rc6/scripts/generate_cy_links_json.py +39 -0
  79. datalab_server-0.5.3rc6/scripts/generate_cy_links_json_typedRelationship.py +53 -0
  80. datalab_server-0.5.3rc6/scripts/migrate_add_fields_to_files.py +23 -0
  81. datalab_server-0.5.3rc6/scripts/migrate_add_item_ids_to_all_blocks.py +18 -0
  82. datalab_server-0.5.3rc6/scripts/migrate_copy_data_collection_to_items.py +14 -0
  83. datalab_server-0.5.3rc6/scripts/migrate_file_last_modified_remote_timestamp_to_last_modified_remote.py +9 -0
  84. datalab_server-0.5.3rc6/scripts/migrate_file_sample_ids_to_item_ids.py +9 -0
  85. datalab_server-0.5.3rc6/scripts/migrate_files_to_files_ObjectId_v2.py +93 -0
  86. datalab_server-0.5.3rc6/scripts/migrate_image_blocks_to_media_blocks.py +12 -0
  87. datalab_server-0.5.3rc6/scripts/migrate_rename_data_collection_to_items.py +9 -0
  88. datalab_server-0.5.3rc6/scripts/migrate_rename_item_kind_to_type.py +14 -0
  89. datalab_server-0.5.3rc6/scripts/migrate_rename_starting_material_field.py +12 -0
  90. datalab_server-0.5.3rc6/scripts/migrate_sample_id_to_item_id.py +9 -0
  91. datalab_server-0.5.3rc6/scripts/migrate_set_all_constituents_as_parents.py +31 -0
  92. datalab_server-0.5.3rc6/scripts/migrate_set_all_constituents_as_parents_TypedRelationship.py +56 -0
  93. datalab_server-0.5.3rc6/scripts/migrate_set_all_samples_to_have_type_samples.py +9 -0
  94. datalab_server-0.5.3rc6/setup.cfg +4 -0
  95. datalab_server-0.5.3rc6/src/datalab_server.egg-info/PKG-INFO +173 -0
  96. datalab_server-0.5.3rc6/src/datalab_server.egg-info/SOURCES.txt +193 -0
  97. datalab_server-0.5.3rc6/src/datalab_server.egg-info/dependency_links.txt +1 -0
  98. datalab_server-0.5.3rc6/src/datalab_server.egg-info/requires.txt +46 -0
  99. datalab_server-0.5.3rc6/src/datalab_server.egg-info/top_level.txt +1 -0
  100. datalab_server-0.5.3rc6/src/pydatalab/__init__.py +6 -0
  101. datalab_server-0.5.3rc6/src/pydatalab/apps/__init__.py +2 -0
  102. datalab_server-0.5.3rc6/src/pydatalab/apps/chat/__init__.py +3 -0
  103. datalab_server-0.5.3rc6/src/pydatalab/apps/chat/blocks.py +334 -0
  104. datalab_server-0.5.3rc6/src/pydatalab/apps/echem/__init__.py +3 -0
  105. datalab_server-0.5.3rc6/src/pydatalab/apps/echem/blocks.py +228 -0
  106. datalab_server-0.5.3rc6/src/pydatalab/apps/echem/utils.py +169 -0
  107. datalab_server-0.5.3rc6/src/pydatalab/apps/eis/__init__.py +68 -0
  108. datalab_server-0.5.3rc6/src/pydatalab/apps/ftir/__init__.py +105 -0
  109. datalab_server-0.5.3rc6/src/pydatalab/apps/nmr/__init__.py +3 -0
  110. datalab_server-0.5.3rc6/src/pydatalab/apps/nmr/blocks.py +158 -0
  111. datalab_server-0.5.3rc6/src/pydatalab/apps/nmr/utils.py +170 -0
  112. datalab_server-0.5.3rc6/src/pydatalab/apps/raman/__init__.py +3 -0
  113. datalab_server-0.5.3rc6/src/pydatalab/apps/raman/blocks.py +185 -0
  114. datalab_server-0.5.3rc6/src/pydatalab/apps/tga/__init__.py +4 -0
  115. datalab_server-0.5.3rc6/src/pydatalab/apps/tga/blocks.py +103 -0
  116. datalab_server-0.5.3rc6/src/pydatalab/apps/tga/parsers.py +91 -0
  117. datalab_server-0.5.3rc6/src/pydatalab/apps/uvvis/__init__.py +172 -0
  118. datalab_server-0.5.3rc6/src/pydatalab/apps/xrd/__init__.py +3 -0
  119. datalab_server-0.5.3rc6/src/pydatalab/apps/xrd/blocks.py +194 -0
  120. datalab_server-0.5.3rc6/src/pydatalab/apps/xrd/models.py +42 -0
  121. datalab_server-0.5.3rc6/src/pydatalab/apps/xrd/utils.py +194 -0
  122. datalab_server-0.5.3rc6/src/pydatalab/backups.py +204 -0
  123. datalab_server-0.5.3rc6/src/pydatalab/blocks/__init__.py +73 -0
  124. datalab_server-0.5.3rc6/src/pydatalab/blocks/base.py +212 -0
  125. datalab_server-0.5.3rc6/src/pydatalab/blocks/common.py +168 -0
  126. datalab_server-0.5.3rc6/src/pydatalab/bokeh_plots.py +635 -0
  127. datalab_server-0.5.3rc6/src/pydatalab/config.py +373 -0
  128. datalab_server-0.5.3rc6/src/pydatalab/errors.py +96 -0
  129. datalab_server-0.5.3rc6/src/pydatalab/file_utils.py +591 -0
  130. datalab_server-0.5.3rc6/src/pydatalab/logger.py +156 -0
  131. datalab_server-0.5.3rc6/src/pydatalab/login.py +143 -0
  132. datalab_server-0.5.3rc6/src/pydatalab/main.py +350 -0
  133. datalab_server-0.5.3rc6/src/pydatalab/models/__init__.py +27 -0
  134. datalab_server-0.5.3rc6/src/pydatalab/models/cells.py +101 -0
  135. datalab_server-0.5.3rc6/src/pydatalab/models/collections.py +28 -0
  136. datalab_server-0.5.3rc6/src/pydatalab/models/entries.py +69 -0
  137. datalab_server-0.5.3rc6/src/pydatalab/models/equipment.py +21 -0
  138. datalab_server-0.5.3rc6/src/pydatalab/models/files.py +60 -0
  139. datalab_server-0.5.3rc6/src/pydatalab/models/items.py +58 -0
  140. datalab_server-0.5.3rc6/src/pydatalab/models/people.py +170 -0
  141. datalab_server-0.5.3rc6/src/pydatalab/models/relationships.py +71 -0
  142. datalab_server-0.5.3rc6/src/pydatalab/models/samples.py +13 -0
  143. datalab_server-0.5.3rc6/src/pydatalab/models/starting_materials.py +79 -0
  144. datalab_server-0.5.3rc6/src/pydatalab/models/traits.py +151 -0
  145. datalab_server-0.5.3rc6/src/pydatalab/models/utils.py +282 -0
  146. datalab_server-0.5.3rc6/src/pydatalab/mongo.py +211 -0
  147. datalab_server-0.5.3rc6/src/pydatalab/permissions.py +123 -0
  148. datalab_server-0.5.3rc6/src/pydatalab/remote_filesystems.py +493 -0
  149. datalab_server-0.5.3rc6/src/pydatalab/routes/__init__.py +3 -0
  150. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/__init__.py +30 -0
  151. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/_version.py +1 -0
  152. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/admin.py +95 -0
  153. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/auth.py +519 -0
  154. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/blocks.py +276 -0
  155. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/collections.py +421 -0
  156. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/files.py +258 -0
  157. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/graphs.py +167 -0
  158. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/healthcheck.py +22 -0
  159. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/info.py +215 -0
  160. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/items.py +1116 -0
  161. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/remotes.py +135 -0
  162. datalab_server-0.5.3rc6/src/pydatalab/routes/v0_1/users.py +73 -0
  163. datalab_server-0.5.3rc6/src/pydatalab/send_email.py +38 -0
  164. datalab_server-0.5.3rc6/src/pydatalab/utils.py +55 -0
  165. datalab_server-0.5.3rc6/tasks.py +429 -0
  166. datalab_server-0.5.3rc6/tests/__init__.py +0 -0
  167. datalab_server-0.5.3rc6/tests/apps/test_echem_block.py +83 -0
  168. datalab_server-0.5.3rc6/tests/apps/test_ftir_block.py +31 -0
  169. datalab_server-0.5.3rc6/tests/apps/test_nmr.py +92 -0
  170. datalab_server-0.5.3rc6/tests/apps/test_plugins.py +13 -0
  171. datalab_server-0.5.3rc6/tests/apps/test_raman.py +16 -0
  172. datalab_server-0.5.3rc6/tests/apps/test_tabular.py +26 -0
  173. datalab_server-0.5.3rc6/tests/apps/test_tga.py +65 -0
  174. datalab_server-0.5.3rc6/tests/apps/test_uvvis.py +84 -0
  175. datalab_server-0.5.3rc6/tests/apps/test_xrd_block.py +30 -0
  176. datalab_server-0.5.3rc6/tests/conftest.py +13 -0
  177. datalab_server-0.5.3rc6/tests/server/conftest.py +575 -0
  178. datalab_server-0.5.3rc6/tests/server/test_auth.py +56 -0
  179. datalab_server-0.5.3rc6/tests/server/test_backup.py +72 -0
  180. datalab_server-0.5.3rc6/tests/server/test_equipment.py +127 -0
  181. datalab_server-0.5.3rc6/tests/server/test_files.py +151 -0
  182. datalab_server-0.5.3rc6/tests/server/test_graph.py +160 -0
  183. datalab_server-0.5.3rc6/tests/server/test_info_and_health.py +70 -0
  184. datalab_server-0.5.3rc6/tests/server/test_item_graph.py +49 -0
  185. datalab_server-0.5.3rc6/tests/server/test_items.py +28 -0
  186. datalab_server-0.5.3rc6/tests/server/test_permissions.py +86 -0
  187. datalab_server-0.5.3rc6/tests/server/test_remote_filesystems.py +139 -0
  188. datalab_server-0.5.3rc6/tests/server/test_remotes.py +33 -0
  189. datalab_server-0.5.3rc6/tests/server/test_samples.py +752 -0
  190. datalab_server-0.5.3rc6/tests/server/test_starting_materials.py +209 -0
  191. datalab_server-0.5.3rc6/tests/server/test_users.py +116 -0
  192. datalab_server-0.5.3rc6/tests/test_config.py +84 -0
  193. datalab_server-0.5.3rc6/tests/test_models.py +438 -0
  194. datalab_server-0.5.3rc6/tests/test_version.py +6 -0
  195. datalab_server-0.5.3rc6/uv.lock +3020 -0
@@ -0,0 +1,173 @@
1
+ Metadata-Version: 2.4
2
+ Name: datalab-server
3
+ Version: 0.5.3rc6
4
+ Author: Joshua Bocarsly
5
+ Author-email: Matthew Evans <dev@datalab.industries>, datalab development team <dev@datalab-org.io>
6
+ License-Expression: MIT
7
+ Project-URL: homepage, https://github.com/datalab-org/datalab
8
+ Project-URL: repository, https://github.com/datalab-org/datalab
9
+ Project-URL: documentation, https://docs.datalab-org.io
10
+ Project-URL: changelog, https://github.com/datalab-org/datalab/releases
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Intended Audience :: Information Technology
16
+ Classifier: Topic :: Scientific/Engineering
17
+ Requires-Python: <3.12,>=3.10
18
+ Description-Content-Type: text/markdown
19
+ Requires-Dist: bokeh<3.0,~=2.4
20
+ Requires-Dist: matplotlib~=3.8
21
+ Requires-Dist: periodictable~=1.7
22
+ Requires-Dist: pydantic[dotenv,email]<2.0
23
+ Requires-Dist: pint~=0.24
24
+ Requires-Dist: pandas[excel]~=2.2
25
+ Provides-Extra: server
26
+ Requires-Dist: pymongo<4.11,~=4.7; extra == "server"
27
+ Requires-Dist: Flask~=3.0; extra == "server"
28
+ Requires-Dist: Flask-Login~=0.6; extra == "server"
29
+ Requires-Dist: Flask-Cors~=5.0; extra == "server"
30
+ Requires-Dist: Flask-Dance~=7.1; extra == "server"
31
+ Requires-Dist: Flask-PyMongo~=2.3; extra == "server"
32
+ Requires-Dist: Flask-Mail~=0.10; extra == "server"
33
+ Requires-Dist: Flask-Compress~=1.15; extra == "server"
34
+ Requires-Dist: Werkzeug~=3.0; extra == "server"
35
+ Requires-Dist: python-dotenv~=1.0; extra == "server"
36
+ Requires-Dist: pillow~=11.0; extra == "server"
37
+ Requires-Dist: pyjwt~=2.9; extra == "server"
38
+ Requires-Dist: invoke~=2.2; extra == "server"
39
+ Requires-Dist: paramiko~=3.4; extra == "server"
40
+ Provides-Extra: apps
41
+ Requires-Dist: scipy~=1.13; extra == "apps"
42
+ Requires-Dist: nmrglue~=0.10; extra == "apps"
43
+ Requires-Dist: navani>=0.1.11; extra == "apps"
44
+ Requires-Dist: pybaselines~=1.1; extra == "apps"
45
+ Requires-Dist: rosettasciio<0.4,~=0.3; extra == "apps"
46
+ Requires-Dist: python-dateutil~=2.9; extra == "apps"
47
+ Provides-Extra: app-plugins-git
48
+ Requires-Dist: datalab-app-plugin-insitu; extra == "app-plugins-git"
49
+ Provides-Extra: chat
50
+ Requires-Dist: langchain<0.3,>=0.2.6; extra == "chat"
51
+ Requires-Dist: langchain-openai~=0.1; extra == "chat"
52
+ Requires-Dist: langchain-anthropic~=0.1; extra == "chat"
53
+ Requires-Dist: tiktoken~=0.7; extra == "chat"
54
+ Requires-Dist: transformers~=4.42; extra == "chat"
55
+ Provides-Extra: deploy
56
+ Requires-Dist: gunicorn~=23.0; extra == "deploy"
57
+ Provides-Extra: all
58
+ Requires-Dist: datalab-server[apps,chat,server]; extra == "all"
59
+
60
+ # <div align="center"><i>datalab</i></div>
61
+
62
+ <div align="center" style="padding-bottom: 5px">
63
+ <a href="https://demo.datalab-org.io"><img src="https://img.shields.io/badge/try_it_out!-public_demo_server-orange?logo=firefox"></a>
64
+ </div>
65
+
66
+ <div align="center">
67
+ <a href="https://github.com/datalab-org/datalab/releases"><img src="https://badgen.net/github/release/datalab-org/datalab?icon=github&color=blue"></a>
68
+ <a href="https://github.com/datalab-org/datalab#MIT-1-ov-file"><img src="https://badgen.net/github/license/datalab-org/datalab?icon=license&color=purple"></a>
69
+ </div>
70
+
71
+ <div align="center">
72
+ <a href="https://github.com/datalab-org/datalab/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/datalab-org/datalab/ci.yml?logo=github"></a>
73
+ <a href="https://cloud.cypress.io/projects/4kqx5i/runs"><img src="https://img.shields.io/endpoint?url=https://cloud.cypress.io/badge/simple/4kqx5i/main&style=flat&logo=cypress"></a>
74
+ <a href="https://the-datalab.readthedocs.io/en/latest/?badge=latest"><img src="https://img.shields.io/readthedocs/the-datalab?logo=readthedocs"></a>
75
+ </div>
76
+
77
+ <div align="center">
78
+ <a href="https://github.com/datalab-org/datalab-ansible-terraform">
79
+ <img alt="Static Badge" src="https://img.shields.io/badge/Ansible-playbook-white?logo=ansible">
80
+ </a>
81
+ <a href="https://pypi.org/project/datalab-api">
82
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/datalab-api?logo=pypi&label=Python%20API">
83
+ </a>
84
+ </div>
85
+
86
+ <div align="center">
87
+ <a href="https://join.slack.com/t/datalab-world/shared_invite/zt-2h58ev3pc-VV496~5je~QoT2TgFIwn4g"><img src="https://img.shields.io/badge/Slack-chat_with_us-yellow?logo=slack"></a>
88
+ </div>
89
+
90
+ This repository contains the code for the *datalab* data management system, targeted (broadly) at materials chemistry labs but with customisability and extensability in mind.
91
+
92
+ The main aim of *datalab* is to provide a platform for capturing the significant amounts of long-tail experimental data and metadata produced in a typical lab, and enable storage, filtering and future data re-use by humans and machines.
93
+ The platform provides researchers with a way to record sample- and cell-specific metadata, attach and sync raw data from instruments, and perform analysis and visualisation of many characterisation techniques in the browser (XRD, NMR, electrochemical cycling, TEM, TGA, Mass Spec, Raman).
94
+ Importantly, *datalab* stores a network of interconnected research objects in the lab, such that individual pieces of data are stored with the context needed to make them scientifically useful.
95
+
96
+ The system was originally developed in and is currently deployed for the
97
+ [Grey Group](https://www.ch.cam.ac.uk/group/grey/)
98
+ in the Department of Chemistry at the University of Cambridge,
99
+ with several instances deployed for members in the
100
+ [*datalab* federation](https://github.com/datalab-org/datalab-federation).
101
+
102
+
103
+ <div align="center">
104
+ <video width="400" controls src="https://github.com/datalab-org/datalab/assets/7916000/0065cdd6-a5f0-4391-b192-0137fe208acc">
105
+ </video>
106
+ </div>
107
+
108
+ ## Features
109
+
110
+ *datalab* consists of two main components:
111
+
112
+ - a Flask-based Python web server (`pydatalab`) that communicates with a MongoDB
113
+ database backend and can perform simple analysis and ETL of particular data types,
114
+ - a Vue 3 web application for a GUI that can be used to record information on
115
+ samples alongside raw data files and analysis documents.
116
+
117
+
118
+ ### Server
119
+
120
+ - A REST API for accessing data and analysis related to chemical samples,
121
+ inventory and their connections, with ergonomic access provided via the
122
+ [*datalab* Python API](https://github.com/datalab-org/datalab-api).
123
+ - OAuth2-based user authentication via GitHub or ORCID and simple user role
124
+ management.
125
+ - Real-time data streaming and syncing with remote data sources (e.g., instrumentation, archives and file stores).
126
+
127
+ ### UI
128
+
129
+ - A simple, intuitive UI for recording sample-based metadata and relationships with
130
+ other samples (batches, derivatives, _etc._), alongside synthesis parameters and raw data.
131
+ - Basic analysis and plotting of live and archived data attached to a sample, _e.g._,
132
+ characterisation via XRD or NMR, electrochemical cycling data and images (see "Data blocks" section for a complete list).
133
+ - Interactive network visualisation of the connections between samples and inventory.
134
+
135
+ ## Development status
136
+
137
+ *datalab* remains under active development, and the API, data models and UI may change significantly between versions without prior notice.
138
+ Where possible, breaking changes will be listed in the release notes for every pre-v1 release.
139
+
140
+ ## Installation
141
+
142
+ Installation, usage and deployment instructions can be found in
143
+ [INSTALL.md](./INSTALL.md) and in the [online documentation](https://the-datalab.readthedocs.io).
144
+
145
+ ## License
146
+
147
+ This software is released under the conditions of the MIT license.
148
+ Please see [LICENSE](./LICENSE) for the full text of the license.
149
+
150
+ ## Contributions
151
+
152
+ This software was conceived and developed by:
153
+
154
+ - [Prof Joshua Bocarsly](https://jdbocarsly.github.io) ([Department of Chemistry, University of Houston](https://www.uh.edu/nsm/chemistry), previously [Department of Chemistry, University of Cambridge](https://www.ch.cam.ac.uk/))
155
+ - [Dr Matthew Evans](https://ml-evs.science) ([MODL-IMCN,
156
+ UCLouvain](https://uclouvain.be/en/research-institutes/imcn/modl) & [Matgenix](https://matgenix.com))
157
+
158
+ with contributions and testing performed by other members of the Grey Group.
159
+
160
+ A full list of code contributions can be found on [GitHub](https://github.com/datalab-org/datalab/graphs/contributors).
161
+
162
+ ## Contact
163
+
164
+ We are available for consultations on setting up and managing *datalab* deployments, as well as collaborating on or sponsoring additions of new features and techniques.
165
+ Please contact Josh or Matthew on their academic emails, or join the [public *datalab* Slack workspace](https://join.slack.com/t/datalab-world/shared_invite/zt-2h58ev3pc-VV496~5je~QoT2TgFIwn4g).
166
+
167
+ ## Funding
168
+
169
+ This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement 957189 (DOI: [10.3030/957189](https://doi.org/10.3030/957189)), the [Battery Interface Genome - Materials Acceleration Platform (BIG-MAP)](https://www.big-map.eu), as an external stakeholder project.
170
+
171
+ <div align="center">
172
+ <img href="https://big-map.org" src="https://big-map.github.io/big-map-registry/static/img/big-map-white-transparent.png" width=100>
173
+ </div>
@@ -0,0 +1,114 @@
1
+ # <div align="center"><i>datalab</i></div>
2
+
3
+ <div align="center" style="padding-bottom: 5px">
4
+ <a href="https://demo.datalab-org.io"><img src="https://img.shields.io/badge/try_it_out!-public_demo_server-orange?logo=firefox"></a>
5
+ </div>
6
+
7
+ <div align="center">
8
+ <a href="https://github.com/datalab-org/datalab/releases"><img src="https://badgen.net/github/release/datalab-org/datalab?icon=github&color=blue"></a>
9
+ <a href="https://github.com/datalab-org/datalab#MIT-1-ov-file"><img src="https://badgen.net/github/license/datalab-org/datalab?icon=license&color=purple"></a>
10
+ </div>
11
+
12
+ <div align="center">
13
+ <a href="https://github.com/datalab-org/datalab/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/datalab-org/datalab/ci.yml?logo=github"></a>
14
+ <a href="https://cloud.cypress.io/projects/4kqx5i/runs"><img src="https://img.shields.io/endpoint?url=https://cloud.cypress.io/badge/simple/4kqx5i/main&style=flat&logo=cypress"></a>
15
+ <a href="https://the-datalab.readthedocs.io/en/latest/?badge=latest"><img src="https://img.shields.io/readthedocs/the-datalab?logo=readthedocs"></a>
16
+ </div>
17
+
18
+ <div align="center">
19
+ <a href="https://github.com/datalab-org/datalab-ansible-terraform">
20
+ <img alt="Static Badge" src="https://img.shields.io/badge/Ansible-playbook-white?logo=ansible">
21
+ </a>
22
+ <a href="https://pypi.org/project/datalab-api">
23
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/datalab-api?logo=pypi&label=Python%20API">
24
+ </a>
25
+ </div>
26
+
27
+ <div align="center">
28
+ <a href="https://join.slack.com/t/datalab-world/shared_invite/zt-2h58ev3pc-VV496~5je~QoT2TgFIwn4g"><img src="https://img.shields.io/badge/Slack-chat_with_us-yellow?logo=slack"></a>
29
+ </div>
30
+
31
+ This repository contains the code for the *datalab* data management system, targeted (broadly) at materials chemistry labs but with customisability and extensability in mind.
32
+
33
+ The main aim of *datalab* is to provide a platform for capturing the significant amounts of long-tail experimental data and metadata produced in a typical lab, and enable storage, filtering and future data re-use by humans and machines.
34
+ The platform provides researchers with a way to record sample- and cell-specific metadata, attach and sync raw data from instruments, and perform analysis and visualisation of many characterisation techniques in the browser (XRD, NMR, electrochemical cycling, TEM, TGA, Mass Spec, Raman).
35
+ Importantly, *datalab* stores a network of interconnected research objects in the lab, such that individual pieces of data are stored with the context needed to make them scientifically useful.
36
+
37
+ The system was originally developed in and is currently deployed for the
38
+ [Grey Group](https://www.ch.cam.ac.uk/group/grey/)
39
+ in the Department of Chemistry at the University of Cambridge,
40
+ with several instances deployed for members in the
41
+ [*datalab* federation](https://github.com/datalab-org/datalab-federation).
42
+
43
+
44
+ <div align="center">
45
+ <video width="400" controls src="https://github.com/datalab-org/datalab/assets/7916000/0065cdd6-a5f0-4391-b192-0137fe208acc">
46
+ </video>
47
+ </div>
48
+
49
+ ## Features
50
+
51
+ *datalab* consists of two main components:
52
+
53
+ - a Flask-based Python web server (`pydatalab`) that communicates with a MongoDB
54
+ database backend and can perform simple analysis and ETL of particular data types,
55
+ - a Vue 3 web application for a GUI that can be used to record information on
56
+ samples alongside raw data files and analysis documents.
57
+
58
+
59
+ ### Server
60
+
61
+ - A REST API for accessing data and analysis related to chemical samples,
62
+ inventory and their connections, with ergonomic access provided via the
63
+ [*datalab* Python API](https://github.com/datalab-org/datalab-api).
64
+ - OAuth2-based user authentication via GitHub or ORCID and simple user role
65
+ management.
66
+ - Real-time data streaming and syncing with remote data sources (e.g., instrumentation, archives and file stores).
67
+
68
+ ### UI
69
+
70
+ - A simple, intuitive UI for recording sample-based metadata and relationships with
71
+ other samples (batches, derivatives, _etc._), alongside synthesis parameters and raw data.
72
+ - Basic analysis and plotting of live and archived data attached to a sample, _e.g._,
73
+ characterisation via XRD or NMR, electrochemical cycling data and images (see "Data blocks" section for a complete list).
74
+ - Interactive network visualisation of the connections between samples and inventory.
75
+
76
+ ## Development status
77
+
78
+ *datalab* remains under active development, and the API, data models and UI may change significantly between versions without prior notice.
79
+ Where possible, breaking changes will be listed in the release notes for every pre-v1 release.
80
+
81
+ ## Installation
82
+
83
+ Installation, usage and deployment instructions can be found in
84
+ [INSTALL.md](./INSTALL.md) and in the [online documentation](https://the-datalab.readthedocs.io).
85
+
86
+ ## License
87
+
88
+ This software is released under the conditions of the MIT license.
89
+ Please see [LICENSE](./LICENSE) for the full text of the license.
90
+
91
+ ## Contributions
92
+
93
+ This software was conceived and developed by:
94
+
95
+ - [Prof Joshua Bocarsly](https://jdbocarsly.github.io) ([Department of Chemistry, University of Houston](https://www.uh.edu/nsm/chemistry), previously [Department of Chemistry, University of Cambridge](https://www.ch.cam.ac.uk/))
96
+ - [Dr Matthew Evans](https://ml-evs.science) ([MODL-IMCN,
97
+ UCLouvain](https://uclouvain.be/en/research-institutes/imcn/modl) & [Matgenix](https://matgenix.com))
98
+
99
+ with contributions and testing performed by other members of the Grey Group.
100
+
101
+ A full list of code contributions can be found on [GitHub](https://github.com/datalab-org/datalab/graphs/contributors).
102
+
103
+ ## Contact
104
+
105
+ We are available for consultations on setting up and managing *datalab* deployments, as well as collaborating on or sponsoring additions of new features and techniques.
106
+ Please contact Josh or Matthew on their academic emails, or join the [public *datalab* Slack workspace](https://join.slack.com/t/datalab-world/shared_invite/zt-2h58ev3pc-VV496~5je~QoT2TgFIwn4g).
107
+
108
+ ## Funding
109
+
110
+ This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement 957189 (DOI: [10.3030/957189](https://doi.org/10.3030/957189)), the [Battery Interface Genome - Materials Acceleration Platform (BIG-MAP)](https://www.big-map.eu), as an external stakeholder project.
111
+
112
+ <div align="center">
113
+ <img href="https://big-map.org" src="https://big-map.github.io/big-map-registry/static/img/big-map-white-transparent.png" width=100>
114
+ </div>
@@ -0,0 +1,8 @@
1
+ nav:
2
+ - index.md
3
+ - INSTALL.md
4
+ - deployment.md
5
+ - config.md
6
+ - schemas
7
+ - blocks
8
+ - CHANGELOG.md