pasta-eln 2.5.0b7__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 (161) hide show
  1. pasta_eln-2.5.0b7/LICENSE +32 -0
  2. pasta_eln-2.5.0b7/MANIFEST.in +7 -0
  3. pasta_eln-2.5.0b7/PKG-INFO +74 -0
  4. pasta_eln-2.5.0b7/README.md +134 -0
  5. pasta_eln-2.5.0b7/README_PYPI.md +30 -0
  6. pasta_eln-2.5.0b7/docs/Makefile +193 -0
  7. pasta_eln-2.5.0b7/docs/README.md +22 -0
  8. pasta_eln-2.5.0b7/docs/source/_static/Data_Hierarchy_Editor_Manual.odp +0 -0
  9. pasta_eln-2.5.0b7/docs/source/_static/Data_Hierarchy_Editor_Manual.pdf +0 -0
  10. pasta_eln-2.5.0b7/docs/source/_static/__init__.py +0 -0
  11. pasta_eln-2.5.0b7/docs/source/_static/data_hierarchy_editor.png +0 -0
  12. pasta_eln-2.5.0b7/docs/source/_static/metadata_group_combobox.png +0 -0
  13. pasta_eln-2.5.0b7/docs/source/_static/pasta_logo.svg +215 -0
  14. pasta_eln-2.5.0b7/docs/source/_static/pyside.png +0 -0
  15. pasta_eln-2.5.0b7/docs/source/_static/types_combo_box.png +0 -0
  16. pasta_eln-2.5.0b7/docs/source/_templates/autosummary/module.rst +23 -0
  17. pasta_eln-2.5.0b7/docs/source/conf.py +128 -0
  18. pasta_eln-2.5.0b7/docs/source/data_hierarchy_configuration.rst +56 -0
  19. pasta_eln-2.5.0b7/docs/source/dodonts.rst +39 -0
  20. pasta_eln-2.5.0b7/docs/source/extractors.rst +188 -0
  21. pasta_eln-2.5.0b7/docs/source/faqs.rst +72 -0
  22. pasta_eln-2.5.0b7/docs/source/index.rst +46 -0
  23. pasta_eln-2.5.0b7/docs/source/install.rst +167 -0
  24. pasta_eln-2.5.0b7/docs/source/motivation.rst +221 -0
  25. pasta_eln-2.5.0b7/docs/source/userstory.rst +36 -0
  26. pasta_eln-2.5.0b7/pasta_eln/Extractors/README.md +5 -0
  27. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_csv.py +63 -0
  28. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_jpeg.py +44 -0
  29. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_jpg.py +50 -0
  30. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_json.py +33 -0
  31. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_md.py +22 -0
  32. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_png.py +55 -0
  33. pasta_eln-2.5.0b7/pasta_eln/Extractors/extractor_py.py +22 -0
  34. pasta_eln-2.5.0b7/pasta_eln/GUI/__init__.py +1 -0
  35. pasta_eln-2.5.0b7/pasta_eln/GUI/_contextMenu.py +92 -0
  36. pasta_eln-2.5.0b7/pasta_eln/GUI/body.py +51 -0
  37. pasta_eln-2.5.0b7/pasta_eln/GUI/config.py +57 -0
  38. pasta_eln-2.5.0b7/pasta_eln/GUI/configAuthors.py +148 -0
  39. pasta_eln-2.5.0b7/pasta_eln/GUI/configGUI.py +50 -0
  40. pasta_eln-2.5.0b7/pasta_eln/GUI/configSetupLinux.py +151 -0
  41. pasta_eln-2.5.0b7/pasta_eln/GUI/configSetupWindows.py +171 -0
  42. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/__init__.py +8 -0
  43. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/attachments_tableview_data_model.py +47 -0
  44. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/constants.py +22 -0
  45. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/create_type_dialog.py +115 -0
  46. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/create_type_dialog_base.py +91 -0
  47. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/create_type_dialog_base.ui +193 -0
  48. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/data_hierarchy_editor_dialog.py +517 -0
  49. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/data_hierarchy_editor_dialog_base.py +293 -0
  50. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/data_hierarchy_editor_dialog_base.ui +635 -0
  51. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/delete_column_delegate.py +95 -0
  52. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/document_null_exception.py +27 -0
  53. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/generic_exception.py +27 -0
  54. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/iri_column_delegate.py +57 -0
  55. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/key_not_found_exception.py +27 -0
  56. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/lookup_iri_action.py +64 -0
  57. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/mandatory_column_delegate.py +94 -0
  58. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/metadata_tableview_data_model.py +96 -0
  59. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/reorder_column_delegate.py +94 -0
  60. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/tableview_data_model.py +225 -0
  61. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/terminology_lookup_config.json +116 -0
  62. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/terminology_lookup_dialog.py +182 -0
  63. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/terminology_lookup_dialog_base.py +109 -0
  64. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/terminology_lookup_dialog_base.ui +190 -0
  65. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/terminology_lookup_service.py +122 -0
  66. pasta_eln-2.5.0b7/pasta_eln/GUI/data_hierarchy/utility_functions.py +505 -0
  67. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/__init__.py +8 -0
  68. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/completed_upload_task.py +65 -0
  69. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/completed_upload_task.ui +83 -0
  70. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/completed_uploads.py +153 -0
  71. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/completed_uploads_base.py +67 -0
  72. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/completed_uploads_base.ui +93 -0
  73. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/config_dialog.py +273 -0
  74. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/config_dialog_base.py +125 -0
  75. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/config_dialog_base.ui +305 -0
  76. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/controlled_vocab_frame.py +176 -0
  77. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/dialog_extension.py +44 -0
  78. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/edit_metadata_dialog.py +256 -0
  79. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/edit_metadata_dialog_base.py +95 -0
  80. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/edit_metadata_dialog_base.ui +163 -0
  81. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/main_dialog.py +280 -0
  82. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/main_dialog_base.py +140 -0
  83. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/main_dialog_base.ui +305 -0
  84. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/primitive_compound_controlled_frame_base.py +50 -0
  85. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/primitive_compound_controlled_frame_base.ui +53 -0
  86. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/primitive_compound_frame.py +450 -0
  87. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/project_item_frame_base.py +67 -0
  88. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/project_item_frame_base.ui +100 -0
  89. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/upload_config_dialog.py +155 -0
  90. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/upload_config_dialog_base.py +88 -0
  91. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/upload_config_dialog_base.ui +154 -0
  92. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/upload_widget_base.py +103 -0
  93. pasta_eln-2.5.0b7/pasta_eln/GUI/dataverse/upload_widget_base.ui +177 -0
  94. pasta_eln-2.5.0b7/pasta_eln/GUI/details.py +242 -0
  95. pasta_eln-2.5.0b7/pasta_eln/GUI/docTypes.py +55 -0
  96. pasta_eln-2.5.0b7/pasta_eln/GUI/form.py +568 -0
  97. pasta_eln-2.5.0b7/pasta_eln/GUI/project.py +393 -0
  98. pasta_eln-2.5.0b7/pasta_eln/GUI/projectGroup.py +266 -0
  99. pasta_eln-2.5.0b7/pasta_eln/GUI/projectLeafRenderer.py +210 -0
  100. pasta_eln-2.5.0b7/pasta_eln/GUI/projectTreeView.py +179 -0
  101. pasta_eln-2.5.0b7/pasta_eln/GUI/sidebar.py +229 -0
  102. pasta_eln-2.5.0b7/pasta_eln/GUI/table.py +461 -0
  103. pasta_eln-2.5.0b7/pasta_eln/GUI/tableHeader.py +120 -0
  104. pasta_eln-2.5.0b7/pasta_eln/Resources/ExampleMeasurements/simple.csv +17 -0
  105. pasta_eln-2.5.0b7/pasta_eln/Resources/ExampleMeasurements/simple.png +0 -0
  106. pasta_eln-2.5.0b7/pasta_eln/Resources/ExampleMeasurements/story.odt +0 -0
  107. pasta_eln-2.5.0b7/pasta_eln/Resources/Icons/favicon64.ico +0 -0
  108. pasta_eln-2.5.0b7/pasta_eln/Resources/Icons/favicon64.png +0 -0
  109. pasta_eln-2.5.0b7/pasta_eln/Resources/Icons/ols.png +0 -0
  110. pasta_eln-2.5.0b7/pasta_eln/Resources/Icons/tib.png +0 -0
  111. pasta_eln-2.5.0b7/pasta_eln/Resources/Icons/wikidata.png +0 -0
  112. pasta_eln-2.5.0b7/pasta_eln/Resources/Icons/wikipedia.png +0 -0
  113. pasta_eln-2.5.0b7/pasta_eln/__init__.py +2 -0
  114. pasta_eln-2.5.0b7/pasta_eln/backend.py +766 -0
  115. pasta_eln-2.5.0b7/pasta_eln/cli.py +344 -0
  116. pasta_eln-2.5.0b7/pasta_eln/database.py +963 -0
  117. pasta_eln-2.5.0b7/pasta_eln/dataverse/__init__.py +0 -0
  118. pasta_eln-2.5.0b7/pasta_eln/dataverse/base_database_api.py +328 -0
  119. pasta_eln-2.5.0b7/pasta_eln/dataverse/base_model.py +122 -0
  120. pasta_eln-2.5.0b7/pasta_eln/dataverse/client.py +677 -0
  121. pasta_eln-2.5.0b7/pasta_eln/dataverse/config_error.py +48 -0
  122. pasta_eln-2.5.0b7/pasta_eln/dataverse/config_model.py +225 -0
  123. pasta_eln-2.5.0b7/pasta_eln/dataverse/data_upload_task.py +124 -0
  124. pasta_eln-2.5.0b7/pasta_eln/dataverse/database_api.py +298 -0
  125. pasta_eln-2.5.0b7/pasta_eln/dataverse/database_error.py +48 -0
  126. pasta_eln-2.5.0b7/pasta_eln/dataverse/dataset-create-new-all-default-fields.json +1521 -0
  127. pasta_eln-2.5.0b7/pasta_eln/dataverse/generic_task_object.py +95 -0
  128. pasta_eln-2.5.0b7/pasta_eln/dataverse/incorrect_parameter_error.py +43 -0
  129. pasta_eln-2.5.0b7/pasta_eln/dataverse/project_model.py +311 -0
  130. pasta_eln-2.5.0b7/pasta_eln/dataverse/task_thread_extension.py +69 -0
  131. pasta_eln-2.5.0b7/pasta_eln/dataverse/upload_model.py +365 -0
  132. pasta_eln-2.5.0b7/pasta_eln/dataverse/upload_queue_manager.py +180 -0
  133. pasta_eln-2.5.0b7/pasta_eln/dataverse/upload_status_values.py +35 -0
  134. pasta_eln-2.5.0b7/pasta_eln/dataverse/utils.py +546 -0
  135. pasta_eln-2.5.0b7/pasta_eln/fixedStringsJson.py +406 -0
  136. pasta_eln-2.5.0b7/pasta_eln/gui.py +278 -0
  137. pasta_eln-2.5.0b7/pasta_eln/guiCommunicate.py +24 -0
  138. pasta_eln-2.5.0b7/pasta_eln/guiStyle.py +336 -0
  139. pasta_eln-2.5.0b7/pasta_eln/handleDictionaries.py +235 -0
  140. pasta_eln-2.5.0b7/pasta_eln/inputOutput.py +593 -0
  141. pasta_eln-2.5.0b7/pasta_eln/installationTools.py +564 -0
  142. pasta_eln-2.5.0b7/pasta_eln/miscTools.py +353 -0
  143. pasta_eln-2.5.0b7/pasta_eln/mixin_cli.py +157 -0
  144. pasta_eln-2.5.0b7/pasta_eln/printer.py +94 -0
  145. pasta_eln-2.5.0b7/pasta_eln/serverActions.py +582 -0
  146. pasta_eln-2.5.0b7/pasta_eln/utils.py +126 -0
  147. pasta_eln-2.5.0b7/pasta_eln/webclient/__init__.py +8 -0
  148. pasta_eln-2.5.0b7/pasta_eln/webclient/http_client.py +175 -0
  149. pasta_eln-2.5.0b7/pasta_eln.egg-info/PKG-INFO +74 -0
  150. pasta_eln-2.5.0b7/pasta_eln.egg-info/SOURCES.txt +160 -0
  151. pasta_eln-2.5.0b7/pasta_eln.egg-info/dependency_links.txt +1 -0
  152. pasta_eln-2.5.0b7/pasta_eln.egg-info/entry_points.txt +6 -0
  153. pasta_eln-2.5.0b7/pasta_eln.egg-info/requires.txt +32 -0
  154. pasta_eln-2.5.0b7/pasta_eln.egg-info/top_level.txt +1 -0
  155. pasta_eln-2.5.0b7/pyproject.toml +15 -0
  156. pasta_eln-2.5.0b7/setup.cfg +105 -0
  157. pasta_eln-2.5.0b7/setup.py +6 -0
  158. pasta_eln-2.5.0b7/tests/test_01_3Projects.py +156 -0
  159. pasta_eln-2.5.0b7/tests/test_02_3Projects_ExportImport.py +208 -0
  160. pasta_eln-2.5.0b7/tests/test_50_importOthers.py +92 -0
  161. pasta_eln-2.5.0b7/tests/test_99_3Projects.py +156 -0
@@ -0,0 +1,32 @@
1
+ PASTA-ELN and all its subparts is covered by the MIT license.
2
+
3
+ The MIT License
4
+
5
+ Copyright (c) 2022- Steffen Brinckmann
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in
15
+ all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ THE SOFTWARE.
24
+
25
+
26
+ This software uses a number of different libraries, some of which are made available
27
+ under different open-source licenses (e.g. LGPL-3.0). Please check the relevant licenses before
28
+ using and/or modifying those libraries.
29
+
30
+
31
+ Most of the file-layout and the integration of webservices follows the example of datalad and datalad-gooey
32
+ https://github.com/datalad. We thank those developers for their work and contribution to free software.
@@ -0,0 +1,7 @@
1
+ graft pasta_eln
2
+ graft docs
3
+ prune docs/build
4
+ global-exclude *.py[cod]
5
+
6
+ include pasta_eln/Resources/ExampleMeasurements/*
7
+ include pasta_eln/Resources/Icons/*
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.1
2
+ Name: pasta_eln
3
+ Version: 2.5.0b7
4
+ Summary: The favorite ELN for experimental scientists
5
+ Home-page: https://pasta-eln.github.io/
6
+ Author: The PASTA-ELN Team and Steffen Brinckmann
7
+ Author-email: sbrinckm@gmail.com
8
+ License: MIT
9
+ Classifier: Programming Language :: Python
10
+ Classifier: License :: OSI Approved :: BSD License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Requires-Python: >=3.7
13
+ Description-Content-Type: text/markdown; charset=UTF-8
14
+ License-File: LICENSE
15
+ Requires-Dist: pyside6==6.2.4
16
+ Requires-Dist: qt-material
17
+ Requires-Dist: QtAwesome
18
+ Requires-Dist: cloudant
19
+ Requires-Dist: pandas
20
+ Requires-Dist: numpy
21
+ Requires-Dist: keyring
22
+ Requires-Dist: requests
23
+ Requires-Dist: anytree
24
+ Requires-Dist: qrcode
25
+ Requires-Dist: Pillow
26
+ Requires-Dist: matplotlib
27
+ Requires-Dist: cairosvg
28
+ Requires-Dist: win-unicode-console; platform_system == "Windows"
29
+ Requires-Dist: winshell; platform_system == "Windows"
30
+ Requires-Dist: pypiwin32; platform_system == "Windows"
31
+ Requires-Dist: aiohttp
32
+ Provides-Extra: devel
33
+ Requires-Dist: sphinx; extra == "devel"
34
+ Requires-Dist: sphinx-rtd-theme; extra == "devel"
35
+ Requires-Dist: pytest; extra == "devel"
36
+ Requires-Dist: pytest-cov; extra == "devel"
37
+ Requires-Dist: pytest-qt; extra == "devel"
38
+ Requires-Dist: pytest-xvfb; extra == "devel"
39
+ Requires-Dist: pytest-mock; extra == "devel"
40
+ Requires-Dist: coverage; extra == "devel"
41
+ Requires-Dist: pyqt6; extra == "devel"
42
+ Requires-Dist: pyqt6-tools; extra == "devel"
43
+ Requires-Dist: scalene; extra == "devel"
44
+
45
+
46
+ [![PyPI version](https://badge.fury.io/py/pasta-eln.svg)](https://badge.fury.io/py/pasta-eln)
47
+ [![GitHub version](https://badge.fury.io/gh/PASTA-ELN%2Fpasta-eln.svg)](https://badge.fury.io/gh/PASTA-ELN%2Fpasta-eln)
48
+ [![PyPi build](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pypi.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pypi.yml)
49
+ [![Verify Linux install](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/installLinux.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/installLinux.yml)
50
+ [![Documentation building](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/docbuild.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/docbuild.yml)
51
+ [![Linting](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pylint.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pylint.yml)
52
+ [![MyPy](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/mypy.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/mypy.yml)
53
+
54
+ # PASTA electronic lab notebook (ELN) | The favorite ELN for experimental scientists
55
+
56
+ Pasta-dishes are a mixture pasta and sauce, the latter adds flavors and richness to the otherwise boring pasta. This ELN combines raw-data with rich metadata to allow advanced data science. In the database, one can fully adapt and improvise the metadata definitions to generate something novel. PASTA-ELN uses a local-first approach: store all data and metadata locally (always accessible to user) and synchronize with a server upon user request.
57
+
58
+ ## Location of information
59
+ More information, incl. detailed installation instructions, for users can be found on the [Github-pages](https://pasta-eln.github.io/pasta-eln/).
60
+
61
+ While people that are interested into the development are guided to [github](https://github.com/PASTA-ELN/pasta-eln/).
62
+
63
+ ## Short installation instructions
64
+ ``` bash
65
+ pip install pasta-eln
66
+ ```
67
+
68
+ To start PASTA-ELN, use:
69
+ ``` bash
70
+ pastaELN
71
+ ```
72
+ which will automatically open the graphical user interface (GUI) to finish the setup.
73
+
74
+ More detail are found at the [install-page](https://pasta-eln.github.io/pasta-eln/install.html).
@@ -0,0 +1,134 @@
1
+
2
+ [![PyPI version](https://badge.fury.io/py/pasta-eln.svg)](https://badge.fury.io/py/pasta-eln)
3
+ [![GitHub version](https://badge.fury.io/gh/PASTA-ELN%2Fpasta-eln.svg)](https://badge.fury.io/gh/PASTA-ELN%2Fpasta-eln)
4
+ [![PyPi build](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pypi.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pypi.yml)
5
+ [![Verify Linux install](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/installLinux.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/installLinux.yml)
6
+ [![Documentation building](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/docbuild.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/docbuild.yml)
7
+ [![Linting](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pylint.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pylint.yml)
8
+ [![MyPy](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/mypy.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/mypy.yml)
9
+
10
+ # PASTA-ELN | The favorite ELN for experimental scientists
11
+
12
+ > :warning: **Users: all documentation can be found at [Github-pages](https://pasta-eln.github.io/pasta-eln/)**
13
+ >
14
+ > **This page / area is for developers and contains some helpful information for them**
15
+
16
+ ---
17
+
18
+ ## Developers: notes on windows installation
19
+
20
+ ### How to start Pasta ELN
21
+ - Anaconda
22
+ - python -m pasta_eln.gui
23
+ - DOES NOT WORK "pastaELN"
24
+
25
+ ### Installation location windows:
26
+ - Default installation
27
+ - C:\Users\...\AppData\Local\Programs\Python\Python311\Scripts
28
+ - C:\Users\...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pasta_eln
29
+ - Anaconda
30
+ - C:\Users\...\anaconda3\envs\...\Scripts>
31
+ - C:\Users\...\anaconda3\envs\...\Lib\site-packages\pasta_eln
32
+
33
+ ### Reinstall /retry windows installation
34
+ - uninstall couchdb in Settings
35
+ - remove directories
36
+ - **C:\Program Files\Apache CouchDB**
37
+ - C:\Users\....\AppData\Local\Programs\Python [If deleted python]
38
+ - Pasta-Folder in Documents
39
+ - remove Users\...\.pastaELN.json
40
+ - remove shortcut on Windows desktop
41
+ - restart Windows
42
+ - **python -m pasta_eln.gui**
43
+ - go through steps and wait for restart
44
+ - after restart go to System->Configuration (ctrl-0) ->Setup-> start again
45
+ - or have a separate button for that
46
+
47
+ ---
48
+
49
+ ## Developers: notes on linux installation
50
+ ### Installation location:
51
+ - Default
52
+ - /usr/local/lib/python3.10/dist-packages/pasta_eln
53
+
54
+ ### Restart installation on linux / ubuntu
55
+ ``` bash
56
+ rm .pastaELN.json pastaELN.log
57
+ rm -rf pastaELN/PastasExampleProject pastaELN/StandardOperatingProcedures
58
+ sudo snap stop couchdb
59
+ sudo snap remove couchdb
60
+ ```
61
+
62
+ ---
63
+ ## Test couchDB running
64
+ - CouchDB at HTTP! [http://127.0.0.1:5984/_utils/#login](http://127.0.0.1:5984/_utils/#login)
65
+ - curl -f http://127.0.0.1:5984/
66
+ - curl -X POST -H "Content-Type: application/json; charset=utf-8" -d '{"name": "*+*", "password": "*+*"}' http://127.0.0.1:5984/_session
67
+
68
+
69
+ ## Notes on all systems
70
+ Run Pasta-ELN directly from commandline without installation
71
+ - python3 -m pasta_eln.gui
72
+ - python3 -m pasta_eln.installationTools
73
+ - python3 -m pasta_eln.Tests.3Projects
74
+ - pastaELN.py in home directory of repository
75
+
76
+ ---
77
+
78
+ ## How to write code
79
+ ### How to write small python programs that do things
80
+ #### Backend
81
+ ``` Python
82
+ from pasta_eln.backend import Pasta
83
+ pasta = Pasta()
84
+ viewProj = pasta.db.getView('viewDocType/x0')
85
+ projID1 = [i['id'] for i in viewProj if 'PASTA' in i['value'][0]][0]
86
+ pasta.changeHierarchy(projID1)
87
+ print(pasta.outputHierarchy())
88
+ ```
89
+
90
+ #### Frontend
91
+ For testing WIDGETS put this code into "pasta_eln/test.py":
92
+ ``` Python
93
+ from PySide6.QtWidgets import QApplication, QMainWindow
94
+ from .backend import Backend
95
+ from .communicate import Communicate
96
+ from .widgetDetails import Details
97
+
98
+ class MainWindow(QMainWindow):
99
+ def __init__(self):
100
+ super().__init__()
101
+ self.backend = Backend()
102
+ comm = Communicate(self.backend)
103
+ widget = Details(comm)
104
+ self.setCentralWidget(widget)
105
+ comm.changeDetails.emit('m-a23019163b9c4fccb4edaab0feb2b5ee')
106
+
107
+ app = QApplication()
108
+ window = MainWindow()
109
+ window.show()
110
+ app.exec()
111
+ ```
112
+ and execute "python -m pasta_eln.test"
113
+
114
+ For testing DIALOGS put this code into "pasta_eln/test.py":
115
+ ``` Python
116
+ import sys
117
+ from PySide6.QtWidgets import QApplication
118
+ from .GUI.form import Form
119
+ from .backend import Backend
120
+ from .guiCommunicate import Communicate
121
+
122
+ app = QApplication(sys.argv)
123
+ backend = Backend()
124
+ comm = Communicate(backend)
125
+ doc = backend.db.getDoc("m-3a43570c4fd84b1ab81a8863ae058fb0")
126
+ dialog = Form(comm, doc)
127
+ dialog.show()
128
+ sys.exit(app.exec())
129
+ ```
130
+ and execute "python -m pasta_eln.test"
131
+
132
+ #### General notes
133
+ - Find qt-awesome icons: qta-browser
134
+ - print works great in frondend and backend
@@ -0,0 +1,30 @@
1
+
2
+ [![PyPI version](https://badge.fury.io/py/pasta-eln.svg)](https://badge.fury.io/py/pasta-eln)
3
+ [![GitHub version](https://badge.fury.io/gh/PASTA-ELN%2Fpasta-eln.svg)](https://badge.fury.io/gh/PASTA-ELN%2Fpasta-eln)
4
+ [![PyPi build](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pypi.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pypi.yml)
5
+ [![Verify Linux install](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/installLinux.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/installLinux.yml)
6
+ [![Documentation building](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/docbuild.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/docbuild.yml)
7
+ [![Linting](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pylint.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/pylint.yml)
8
+ [![MyPy](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/mypy.yml/badge.svg)](https://github.com/PASTA-ELN/pasta-eln/actions/workflows/mypy.yml)
9
+
10
+ # PASTA electronic lab notebook (ELN) | The favorite ELN for experimental scientists
11
+
12
+ Pasta-dishes are a mixture pasta and sauce, the latter adds flavors and richness to the otherwise boring pasta. This ELN combines raw-data with rich metadata to allow advanced data science. In the database, one can fully adapt and improvise the metadata definitions to generate something novel. PASTA-ELN uses a local-first approach: store all data and metadata locally (always accessible to user) and synchronize with a server upon user request.
13
+
14
+ ## Location of information
15
+ More information, incl. detailed installation instructions, for users can be found on the [Github-pages](https://pasta-eln.github.io/pasta-eln/).
16
+
17
+ While people that are interested into the development are guided to [github](https://github.com/PASTA-ELN/pasta-eln/).
18
+
19
+ ## Short installation instructions
20
+ ``` bash
21
+ pip install pasta-eln
22
+ ```
23
+
24
+ To start PASTA-ELN, use:
25
+ ``` bash
26
+ pastaELN
27
+ ```
28
+ which will automatically open the graphical user interface (GUI) to finish the setup.
29
+
30
+ More detail are found at the [install-page](https://pasta-eln.github.io/pasta-eln/install.html).
@@ -0,0 +1,193 @@
1
+ # Makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line.
5
+ SPHINXOPTS = -W
6
+ SPHINXBUILD = python3 -m sphinx
7
+ PAPER =
8
+ BUILDDIR = build
9
+
10
+ # User-friendly check for sphinx-build
11
+ #ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
12
+ #$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
13
+ #endif
14
+
15
+ # Internal variables.
16
+ PAPEROPT_a4 = -D latex_paper_size=a4
17
+ PAPEROPT_letter = -D latex_paper_size=letter
18
+ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
19
+ # the i18n builder cannot share the environment and doctrees with the others
20
+ I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
21
+
22
+ .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
23
+
24
+ help:
25
+ @echo "Please use \`make <target>' where <target> is one of"
26
+ @echo " html to make standalone HTML files"
27
+ @echo " dirhtml to make HTML files named index.html in directories"
28
+ @echo " singlehtml to make a single large HTML file"
29
+ @echo " pickle to make pickle files"
30
+ @echo " json to make JSON files"
31
+ @echo " htmlhelp to make HTML files and a HTML help project"
32
+ @echo " qthelp to make HTML files and a qthelp project"
33
+ @echo " applehelp to make an Apple Help Book"
34
+ @echo " devhelp to make HTML files and a Devhelp project"
35
+ @echo " epub to make an epub"
36
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
37
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
38
+ @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
39
+ @echo " text to make text files"
40
+ @echo " man to make manual pages"
41
+ @echo " texinfo to make Texinfo files"
42
+ @echo " info to make Texinfo files and run them through makeinfo"
43
+ @echo " gettext to make PO message catalogs"
44
+ @echo " changes to make an overview of all changed/added/deprecated items"
45
+ @echo " xml to make Docutils-native XML files"
46
+ @echo " pseudoxml to make pseudoxml-XML files for display purposes"
47
+ @echo " linkcheck to check all external links for integrity"
48
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
49
+ @echo " coverage to run coverage check of the documentation (if enabled)"
50
+
51
+ clean:
52
+ rm -rf $(BUILDDIR)/* source/generated source/_extras/schema.json
53
+
54
+ html:
55
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
56
+ @echo
57
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
58
+
59
+ dirhtml:
60
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
61
+ @echo
62
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
63
+
64
+ singlehtml:
65
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
66
+ @echo
67
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
68
+
69
+ pickle:
70
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
71
+ @echo
72
+ @echo "Build finished; now you can process the pickle files."
73
+
74
+ json:
75
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
76
+ @echo
77
+ @echo "Build finished; now you can process the JSON files."
78
+
79
+ htmlhelp:
80
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
81
+ @echo
82
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
83
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
84
+
85
+ qthelp:
86
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
87
+ @echo
88
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
89
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
90
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/datalad_gooey.qhcp"
91
+ @echo "To view the help file:"
92
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/datalad_gooey.qhc"
93
+
94
+ applehelp:
95
+ $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
96
+ @echo
97
+ @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
98
+ @echo "N.B. You won't be able to view it unless you put it in" \
99
+ "~/Library/Documentation/Help or install it in your application" \
100
+ "bundle."
101
+
102
+ devhelp:
103
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
104
+ @echo
105
+ @echo "Build finished."
106
+ @echo "To view the help file:"
107
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/datalad_gooey"
108
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/datalad_gooey"
109
+ @echo "# devhelp"
110
+
111
+ epub:
112
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
113
+ @echo
114
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
115
+
116
+ latex:
117
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
118
+ @echo
119
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
120
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
121
+ "(use \`make latexpdf' here to do that automatically)."
122
+
123
+ latexpdf:
124
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
125
+ @echo "Running LaTeX files through pdflatex..."
126
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
127
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
128
+
129
+ latexpdfja:
130
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
131
+ @echo "Running LaTeX files through platex and dvipdfmx..."
132
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
133
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
134
+
135
+ text:
136
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
137
+ @echo
138
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
139
+
140
+ man:
141
+ @echo start man
142
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
143
+ @echo
144
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
145
+
146
+ texinfo:
147
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
148
+ @echo
149
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
150
+ @echo "Run \`make' in that directory to run these through makeinfo" \
151
+ "(use \`make info' here to do that automatically)."
152
+
153
+ info:
154
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
155
+ @echo "Running Texinfo files through makeinfo..."
156
+ make -C $(BUILDDIR)/texinfo info
157
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
158
+
159
+ gettext:
160
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
161
+ @echo
162
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
163
+
164
+ changes:
165
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
166
+ @echo
167
+ @echo "The overview file is in $(BUILDDIR)/changes."
168
+
169
+ linkcheck:
170
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
171
+ @echo
172
+ @echo "Link check complete; look for any errors in the above output " \
173
+ "or in $(BUILDDIR)/linkcheck/output.txt."
174
+
175
+ doctest:
176
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
177
+ @echo "Testing of doctests in the sources finished, look at the " \
178
+ "results in $(BUILDDIR)/doctest/output.txt."
179
+
180
+ coverage:
181
+ $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
182
+ @echo "Testing of coverage in the sources finished, look at the " \
183
+ "results in $(BUILDDIR)/coverage/python.txt."
184
+
185
+ xml:
186
+ $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
187
+ @echo
188
+ @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
189
+
190
+ pseudoxml:
191
+ $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
192
+ @echo
193
+ @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
@@ -0,0 +1,22 @@
1
+ ## Editing, building, and publishing extension documentation
2
+
3
+
4
+ PASTA-ELN uses [Sphinx](https://www.sphinx-doc.org/en/master/index.html#) for document generation.
5
+
6
+ ### Local testing
7
+
8
+ ```
9
+ pip install -r requirements-devel.txt
10
+ ```
11
+
12
+ Then build the documentation locally:
13
+
14
+ ```
15
+ make -C docs html
16
+ ```
17
+
18
+ Navigate to `docs/build/` and open `index.html`.
19
+
20
+ ### Remote building and testing
21
+
22
+ The documentation is automatically build by the GitHub Action `.github/workflows/docbuild.yml` and will be published within that action.
File without changes