labstep 3.25.3__tar.gz → 3.26.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 (171) hide show
  1. {labstep-3.25.3 → labstep-3.26.0}/PKG-INFO +1 -1
  2. labstep-3.26.0/labstep/constants/version.py +1 -0
  3. labstep-3.26.0/labstep/entities/collaboratorRole/model.py +48 -0
  4. labstep-3.26.0/labstep/entities/collaboratorRole/repository.py +44 -0
  5. labstep-3.26.0/labstep/entities/collaboratorRoleRequirement/model.py +114 -0
  6. labstep-3.26.0/labstep/entities/collaboratorRoleRequirement/repository.py +79 -0
  7. labstep-3.26.0/labstep/entities/entityState/model.py +108 -0
  8. labstep-3.26.0/labstep/entities/entityState/repository.py +56 -0
  9. labstep-3.26.0/labstep/entities/entityStateWorkflow/model.py +130 -0
  10. labstep-3.26.0/labstep/entities/entityStateWorkflow/repository.py +44 -0
  11. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experiment/model.py +33 -4
  12. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experiment/repository.py +4 -0
  13. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentTemplate/model.py +81 -116
  14. labstep-3.26.0/labstep/entities/experimentTemplate/repository.py +61 -0
  15. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/notificationAlert/repository.py +4 -4
  16. labstep-3.26.0/labstep/entities/signatureRequirement/model.py +73 -0
  17. labstep-3.26.0/labstep/entities/signatureRequirement/repository.py +48 -0
  18. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/user/model.py +195 -12
  19. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspace/model.py +177 -0
  20. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/helpers.py +6 -1
  21. {labstep-3.25.3 → labstep-3.26.0}/labstep.egg-info/PKG-INFO +1 -1
  22. {labstep-3.25.3 → labstep-3.26.0}/labstep.egg-info/SOURCES.txt +11 -0
  23. labstep-3.25.3/labstep/constants/version.py +0 -1
  24. {labstep-3.25.3 → labstep-3.26.0}/README.rst +0 -0
  25. {labstep-3.25.3 → labstep-3.26.0}/labstep/__init__.py +0 -0
  26. {labstep-3.25.3 → labstep-3.26.0}/labstep/config/export.py +0 -0
  27. {labstep-3.25.3 → labstep-3.26.0}/labstep/constants/__init__.py +0 -0
  28. {labstep-3.25.3 → labstep-3.26.0}/labstep/constants/unspecified.py +0 -0
  29. {labstep-3.25.3 → labstep-3.26.0}/labstep/converter/__init__.py +0 -0
  30. {labstep-3.25.3 → labstep-3.26.0}/labstep/converter/htmlToProseMirror.py +0 -0
  31. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/apiKey/model.py +0 -0
  32. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/apiKey/repository.py +0 -0
  33. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/autoshare/model.py +0 -0
  34. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/autoshare/repository.py +0 -0
  35. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/chemical/model.py +0 -0
  36. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/chemical/repository.py +0 -0
  37. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/chemicalReaction/model.py +0 -0
  38. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/chemicalReaction/repository.py +0 -0
  39. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/collaborator/model.py +0 -0
  40. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/collaborator/repository.py +0 -0
  41. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/collection/model.py +0 -0
  42. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/collection/repository.py +0 -0
  43. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/comment/model.py +0 -0
  44. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/comment/repository.py +0 -0
  45. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/device/model.py +0 -0
  46. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/device/repository.py +0 -0
  47. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceBooking/model.py +0 -0
  48. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceBooking/repository.py +0 -0
  49. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceCategory/model.py +0 -0
  50. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceCategory/repository.py +0 -0
  51. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceData/model.py +0 -0
  52. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceData/repository.py +0 -0
  53. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceTemplate/model.py +0 -0
  54. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/deviceTemplate/repository.py +0 -0
  55. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/entityImport/model.py +0 -0
  56. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/entityImport/repository.py +0 -0
  57. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentCondition/model.py +0 -0
  58. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentCondition/repository.py +0 -0
  59. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentDataField/model.py +0 -0
  60. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentDataField/repository.py +0 -0
  61. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentInventoryField/model.py +0 -0
  62. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentInventoryField/repository.py +0 -0
  63. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentLink/model.py +0 -0
  64. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentLink/repository.py +0 -0
  65. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentProtocol/model.py +0 -0
  66. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentProtocol/repository.py +0 -0
  67. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentSignature/model.py +0 -0
  68. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentSignature/repository.py +0 -0
  69. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentSignatureRequest/model.py +0 -0
  70. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentSignatureRequest/repository.py +0 -0
  71. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentStep/model.py +0 -0
  72. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentStep/repository.py +0 -0
  73. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentTable/model.py +0 -0
  74. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentTable/repository.py +0 -0
  75. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentTimer/model.py +0 -0
  76. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/experimentTimer/repository.py +0 -0
  77. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/export/model.py +0 -0
  78. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/export/repository.py +0 -0
  79. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/file/model.py +0 -0
  80. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/file/repository.py +0 -0
  81. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/invitation/model.py +0 -0
  82. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/invitation/repository.py +0 -0
  83. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/jupyterInstance/model.py +0 -0
  84. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/jupyterInstance/repository.py +0 -0
  85. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/jupyterNotebook/model.py +0 -0
  86. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/jupyterNotebook/repository.py +0 -0
  87. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/jupyterSchedule/model.py +0 -0
  88. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/jupyterSchedule/repository.py +0 -0
  89. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/metadata/model.py +0 -0
  90. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/metadata/repository.py +0 -0
  91. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/molecule/model.py +0 -0
  92. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/molecule/repository.py +0 -0
  93. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/notification/model.py +0 -0
  94. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/notification/repository.py +0 -0
  95. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/notificationAlert/model.py +0 -0
  96. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/orderRequest/model.py +0 -0
  97. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/orderRequest/repository.py +0 -0
  98. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/organization/model.py +0 -0
  99. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/organization/repository.py +0 -0
  100. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/organizationUser/model.py +0 -0
  101. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/organizationUser/repository.py +0 -0
  102. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/permission/model.py +0 -0
  103. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/permission/repository.py +0 -0
  104. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocol/model.py +0 -0
  105. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocol/repository.py +0 -0
  106. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolCondition/model.py +0 -0
  107. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolCondition/repository.py +0 -0
  108. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolDataField/model.py +0 -0
  109. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolDataField/repository.py +0 -0
  110. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolInventoryField/model.py +0 -0
  111. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolInventoryField/repository.py +0 -0
  112. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolStep/model.py +0 -0
  113. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolStep/repository.py +0 -0
  114. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolTable/model.py +0 -0
  115. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolTable/repository.py +0 -0
  116. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolTimer/model.py +0 -0
  117. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolTimer/repository.py +0 -0
  118. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolVersion/model.py +0 -0
  119. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/protocolVersion/repository.py +0 -0
  120. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/purchaseOrder/model.py +0 -0
  121. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/purchaseOrder/repository.py +0 -0
  122. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resource/model.py +0 -0
  123. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resource/repository.py +0 -0
  124. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceCategory/model.py +0 -0
  125. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceCategory/repository.py +0 -0
  126. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceItem/model.py +0 -0
  127. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceItem/repository.py +0 -0
  128. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceLocation/model.py +0 -0
  129. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceLocation/repository.py +0 -0
  130. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceTemplate/model.py +0 -0
  131. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/resourceTemplate/repository.py +0 -0
  132. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/sequence/model.py +0 -0
  133. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/sequence/repository.py +0 -0
  134. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/sharelink/model.py +0 -0
  135. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/sharelink/repository.py +0 -0
  136. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/tag/model.py +0 -0
  137. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/tag/repository.py +0 -0
  138. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/user/facade.py +0 -0
  139. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/user/repository.py +0 -0
  140. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspace/repository.py +0 -0
  141. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspaceMember/model.py +0 -0
  142. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspaceMember/repository.py +0 -0
  143. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspaceRole/model.py +0 -0
  144. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspaceRole/repository.py +0 -0
  145. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspaceRolePermission/model.py +0 -0
  146. {labstep-3.25.3 → labstep-3.26.0}/labstep/entities/workspaceRolePermission/repository.py +0 -0
  147. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entity/model.py +0 -0
  148. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entity/repository.py +0 -0
  149. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityList/model.py +0 -0
  150. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityPrimary/model.py +0 -0
  151. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithAssign/model.py +0 -0
  152. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithComments/model.py +0 -0
  153. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithMetadata/model.py +0 -0
  154. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithMetadata/repository.py +0 -0
  155. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithSharing/model.py +0 -0
  156. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithTags/model.py +0 -0
  157. {labstep-3.25.3 → labstep-3.26.0}/labstep/generic/entityWithTags/repository.py +0 -0
  158. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/__init__.py +0 -0
  159. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/config.py +0 -0
  160. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/htmlExport.py +0 -0
  161. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/htmlToPDF.py +0 -0
  162. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/htmlToProseMirror.py +0 -0
  163. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/jupyter.py +0 -0
  164. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/ping.py +0 -0
  165. {labstep-3.25.3 → labstep-3.26.0}/labstep/service/request.py +0 -0
  166. {labstep-3.25.3 → labstep-3.26.0}/labstep.egg-info/dependency_links.txt +0 -0
  167. {labstep-3.25.3 → labstep-3.26.0}/labstep.egg-info/not-zip-safe +0 -0
  168. {labstep-3.25.3 → labstep-3.26.0}/labstep.egg-info/requires.txt +0 -0
  169. {labstep-3.25.3 → labstep-3.26.0}/labstep.egg-info/top_level.txt +0 -0
  170. {labstep-3.25.3 → labstep-3.26.0}/setup.cfg +0 -0
  171. {labstep-3.25.3 → labstep-3.26.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: labstep
3
- Version: 3.25.3
3
+ Version: 3.26.0
4
4
  Summary: Python SDK for working with the Labstep API
5
5
  Home-page: http://github.com/Labstep/labstepPy
6
6
  Author: Labstep
@@ -0,0 +1 @@
1
+ VERSION = "3.26.0"
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+ from deprecated import deprecated
5
+ from labstep.generic.entityWithSharing.model import EntityWithSharing
6
+ from labstep.service.helpers import getTime, handleDate
7
+ from labstep.constants import UNSPECIFIED
8
+
9
+
10
+ class CollaboratorRole(EntityWithSharing):
11
+ """
12
+ Represents a role a user can have with respect to a particular entity on Labstep i.e. Author, Reviewer, Approver, Assignee, etc.
13
+
14
+ """
15
+
16
+ __entityName__ = "entity-user-role"
17
+ __unSearchable__ = True
18
+
19
+ def edit(self, name=UNSPECIFIED, description=UNSPECIFIED, extraParams={}):
20
+ """
21
+ Edit an existing CollaboratorRole.
22
+
23
+ Parameters
24
+ ----------
25
+ name (str)
26
+ The new name of the CollaboratorRole.
27
+
28
+ description(str)
29
+ The new description of the CollaboratorRole.
30
+
31
+ Returns
32
+ -------
33
+ :class:`~labstep.entities.collaboratorRole.model.CollaboratorRole`
34
+ An object representing the edited CollaboratorRole.
35
+
36
+ Example
37
+ -------
38
+ ::
39
+
40
+ workspace = user.getWorkspace(17000)
41
+ my_collaborator_role = workspace.getCollaboratorRole(17000)
42
+ my_collaborator_role.edit(name='A New CollaboratorRole Name')
43
+ """
44
+ import labstep.entities.collaboratorRole.repository as collaboratorRoleRepository
45
+
46
+ return collaboratorRoleRepository.editCollaboratorRole(self, name=name, description=description, extraParams=extraParams)
47
+
48
+
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+
5
+ from labstep.entities.collaboratorRole.model import CollaboratorRole
6
+ import labstep.generic.entity.repository as entityRepository
7
+ from labstep.constants import UNSPECIFIED
8
+
9
+ def addCollaboratorRole(user, group_id, name=UNSPECIFIED, description=UNSPECIFIED, extraParams={}):
10
+ params = {
11
+ "group_id": group_id,
12
+ "name": name,
13
+ "description": description,
14
+ **extraParams,
15
+ }
16
+ return entityRepository.newEntity(user, CollaboratorRole, params)
17
+
18
+ def editCollaboratorRole(collaboratorRole, name=UNSPECIFIED,
19
+ description=UNSPECIFIED,
20
+ deleted_at=UNSPECIFIED,
21
+ extraParams={}):
22
+ params = {
23
+ "name": name,
24
+ "description": description,
25
+ "deleted_at": deleted_at,
26
+ **extraParams,
27
+ }
28
+ return entityRepository.editEntity(collaboratorRole, params)
29
+
30
+ def getCollaboratorRole(user, collaboratorRole_id):
31
+ return entityRepository.getEntity(user, CollaboratorRole, id=collaboratorRole_id)
32
+
33
+
34
+ def getCollaboratorRoles(user, entity_state_workflow_id=UNSPECIFIED,
35
+ group_id=UNSPECIFIED,
36
+ count=UNSPECIFIED,
37
+ search_query=UNSPECIFIED,
38
+ extraParams={}):
39
+ params = {
40
+ #'entity_state_workflow_id':entity_state_workflow_id,
41
+ 'group_id':group_id,
42
+ #"search_query": search_query,
43
+ **extraParams}
44
+ return entityRepository.getEntities(user, CollaboratorRole, count, params)
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+ from deprecated import deprecated
5
+ from labstep.generic.entity.model import Entity
6
+ from labstep.service.helpers import getTime, handleDate
7
+ from labstep.constants import UNSPECIFIED
8
+
9
+
10
+ class CollaboratorRoleRequirement(Entity):
11
+ """
12
+ Represents a requirement for a particular Collaborator role to be assigned at a particular state an the EntityStateWorkflow.
13
+
14
+ """
15
+
16
+ __entityName__ = "entity-user-role-requirement"
17
+
18
+ # @property
19
+ # def signature_requirement(self):
20
+ # from labstep.generic.entity.repository import getEntityProperty
21
+ # from labstep.entities.signatureRequirement.model import SignatureRequirement
22
+
23
+ # return SignatureRequirement(self.__data__['signature_requirement'], self.__user__)
24
+ # #return getEntityProperty(self,'signature_requirement',SignatureRequirement)
25
+
26
+ def edit(self, number_required=UNSPECIFIED, collaborator_role_id=UNSPECIFIED, auto_assign=UNSPECIFIED, extraParams={}):
27
+ """
28
+ Edit an existing CollaboratorRoleRequirement.
29
+
30
+ Parameters
31
+ ----------
32
+ number_required (int)
33
+ The new number of CollaboratorRoleRequirement.
34
+
35
+ Returns
36
+ -------
37
+ :class:`~labstep.entities.collaboratorRoleRequirement.model.CollaboratorRoleRequirement`
38
+ An object representing the edited CollaboratorRoleRequirement.
39
+
40
+ Example
41
+ -------
42
+ ::
43
+
44
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
45
+ my_entity_state = my_entity_state_workflow.newEntityState(name='A New EntityState Name')
46
+ collaborator_requirements=my_entity_state.addRoleRequirement(collaborator_role_id=17000, number_required=4)
47
+ collaborator_requirements.edit(number_required=2)
48
+ """
49
+ import labstep.entities.collaboratorRoleRequirement.repository as collaboratorRoleRequirementRepository
50
+
51
+ return collaboratorRoleRequirementRepository.editCollaboratorRoleRequirement(self, number_required=number_required, collaborator_role_id=collaborator_role_id, auto_assign=auto_assign, extraParams=extraParams)
52
+
53
+
54
+
55
+ def getSignatureRequirement(self):
56
+ """
57
+ Get a SignatureRequirement of a Collaborator Role Requirement.
58
+
59
+
60
+ Returns
61
+ -------
62
+ :class:`~labstep.entities.signatureRequirement.model.SignatureRequirement`
63
+ An object representing the SignatureRequirement.
64
+
65
+ Example
66
+ -------
67
+ ::
68
+
69
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
70
+ my_entity_state = my_entity_state_workflow.newEntityState(name='A New EntityState Name')
71
+ collaborator_req=my_entity_state.addRoleRequirement(collaborator_role_id=17000,
72
+ number_required=2
73
+ )
74
+ signature_requirement = collaborator_req.getSignatureRequirement()
75
+ """
76
+ import labstep.entities.signatureRequirement.repository as signatureRequirementRepository
77
+
78
+ return signatureRequirementRepository.getSignatureRequirement(self.__user__, self)
79
+
80
+ def setSignatureRequirement(self, statement=UNSPECIFIED, days_to_sign=UNSPECIFIED, reject_entity_state_id=UNSPECIFIED, extraParams={}):
81
+ """
82
+ Set SignatureRequirement of a Collaborator Role Requirement.
83
+
84
+ Parameters
85
+ ----------
86
+ required (bool)
87
+ If the SignatureRequirement is required.
88
+
89
+ default_statement (str)
90
+ The default statement of the SignatureRequirement.
91
+
92
+ days_to_sign(int)
93
+ The days to sign of the SignatureRequirement.
94
+
95
+ reject_entity_state_id(int)
96
+ The ID of the entity state on reject of the SignatureRequirement.
97
+
98
+ Returns
99
+ -------
100
+ :class:`~labstep.entities.signatureRequirement.model.SignatureRequirement`
101
+ An object representing the edited SignatureRequirement.
102
+
103
+ Example
104
+ -------
105
+ ::
106
+
107
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
108
+ my_entity_state = my_entity_state_workflow.newEntityState(name='A New EntityState Name')
109
+ collaborator_requirements=my_entity_state.addRoleRequirement(collaborator_role_id=17000, number_required=2)
110
+ my_signature_requirement = collaborator_requirements.setSignatureRequirement(default_statement='A New SignatureRequirement Default Statement')
111
+ """
112
+ import labstep.entities.signatureRequirement.repository as signatureRequirementRepository
113
+
114
+ return signatureRequirementRepository.setSignatureRequirement(self.__user__, self, statement=statement, days_to_sign=days_to_sign, reject_entity_state_id=reject_entity_state_id, extraParams=extraParams)
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+
5
+ from labstep.entities.collaboratorRoleRequirement.model import CollaboratorRoleRequirement
6
+ import labstep.generic.entity.repository as entityRepository
7
+ from labstep.generic.entityList.model import EntityList
8
+ from labstep.constants import UNSPECIFIED
9
+
10
+ def getCollaboratorRoleRequirements(user, entityState):
11
+ if entityState['entity_user_role_requirements'] is None or entityState['entity_user_role_requirements'] == []:
12
+ return None
13
+ else:
14
+ return CollaboratorRoleRequirement(entityState['entity_user_role_requirements'], user)
15
+
16
+ def addCollaboratorRoleRequirement(user,
17
+ entity_state,
18
+ entity_user_role_id,
19
+ number_required=1,
20
+ extraParams={}):
21
+ params = {
22
+ "entity_state_id": entity_state.id,
23
+ 'entity_user_role_id': entity_user_role_id,
24
+ 'number_required': number_required,
25
+ **extraParams,
26
+ }
27
+
28
+ collab_requirements = entityRepository.newEntity(user, CollaboratorRoleRequirement, params)
29
+
30
+ setattr(entity_state,'entity_user_role_requirements', collab_requirements.__dict__)
31
+ setattr(collab_requirements, 'entity_state_id', entity_state.id)
32
+
33
+ return collab_requirements
34
+
35
+ def editCollaboratorRoleRequirement(collaboratorRoleRequirement,
36
+ number_required=UNSPECIFIED,
37
+ collaborator_role_id=UNSPECIFIED,
38
+ auto_assign=UNSPECIFIED,
39
+ extraParams={}):
40
+
41
+ params = {
42
+ "number_required": number_required,
43
+ 'collaborator_role_id': collaborator_role_id,
44
+ **extraParams,
45
+ }
46
+
47
+ if auto_assign == 'creator:':
48
+ params['automation'] = {
49
+ 'type': 'experiment_workflow_create',
50
+ 'trigger_log_type': 'experiment_workflow_created',
51
+ 'filter': [],
52
+ 'action': 'set_entity_user_role',
53
+ 'payload': { 'entity_user_role_id': collaborator_role_id if collaborator_role_id is not UNSPECIFIED else collaboratorRoleRequirement['entity_user_role']['id']} },
54
+ if auto_assign == 'contributor':
55
+ params['automation'] ={
56
+ "type":"experiment_workflow_edit",
57
+ "trigger_log_type":"experiment_workflow_updated",
58
+ "filter":[
59
+ {"type":"and",
60
+ "path":"entityStateWorkflow",
61
+ "predicates":[
62
+ {"attribute":"id",
63
+ "comparison":"eq",
64
+ "value":collaboratorRoleRequirement['permission_entity_info']['id']}]},
65
+ {"type":"and","path":"entityState","predicates":[
66
+ {"attribute":"id",
67
+ "comparison":"eq",
68
+ "value":collaboratorRoleRequirement['entity_state_id']}]}],
69
+ "action":"set_entity_user_role",
70
+ "payload":{
71
+ "entity_user_role_id":collaborator_role_id if collaborator_role_id is not UNSPECIFIED else collaboratorRoleRequirement['entity_user_role']['id']
72
+ }}
73
+
74
+
75
+
76
+
77
+
78
+ return entityRepository.editEntity(collaboratorRoleRequirement, params)
79
+
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+ from labstep.generic.entity.model import Entity
5
+ from labstep.constants import UNSPECIFIED
6
+
7
+
8
+ class EntityState(Entity):
9
+ """
10
+ Represents an Entity State Workflow on Labstep.
11
+
12
+ """
13
+
14
+ __entityName__ = "entity-state"
15
+ __unSearchable__ = True
16
+ __noDelete__ = True
17
+
18
+ def edit(self, name=UNSPECIFIED, color=UNSPECIFIED, state_type=UNSPECIFIED, extraParams={}):
19
+ """
20
+ Edit an existing EntityState.
21
+
22
+ Parameters
23
+ ----------
24
+ name (str)
25
+ The new name of the EntityState.
26
+
27
+ color in HEX vaue(str)
28
+ The new color of the EntityState.
29
+
30
+ type(str)
31
+ The new type of the EntityState. It can be one of the following: 'unstarted',
32
+ 'started', and 'complete'.
33
+
34
+ Returns
35
+ -------
36
+ :class:`~labstep.entities.entityState.model.EntityState`
37
+ An object representing the edited EntityState.
38
+
39
+ Example
40
+ -------
41
+ ::
42
+
43
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
44
+ my_entity_state = my_entity_state_workflow.getEntityState(17000)
45
+ my_entity_state.edit(name='A New EntityState Name')
46
+ """
47
+ import labstep.entities.entityState.repository as entityStateRepository
48
+
49
+ return entityStateRepository.editEntityState(self, name=name, color=color, state_type=state_type, extraParams=extraParams)
50
+
51
+
52
+
53
+ def addRoleRequirement(self, collaborator_role_id, number_required=1, extraParams={}):
54
+ """
55
+ Create a new RoleRequirement.
56
+
57
+ Parameters
58
+ ----------
59
+ collaborator_rol_id (int)
60
+ ID of the collaborator role.
61
+
62
+ number_required(int)
63
+ Number of collaborators required.
64
+
65
+
66
+ Returns
67
+ -------
68
+ :class:`~labstep.entities.collaboratorRoleRequirement.model.CollaboratorRoleRequirement`
69
+ An object representing the edited CollaboratorRoleRequirement.
70
+
71
+ Example
72
+ -------
73
+ ::
74
+
75
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
76
+ collaborator_role = workspace.getCollaboratorRole(17000)
77
+ my_entity_state = my_entity_state_workflow.getEntityStates()
78
+ my_entity_state[0].addRoleRequirement(entity_user_role_id=collaborator_role.id,
79
+ number_required=2
80
+ )
81
+ """
82
+ import labstep.entities.collaboratorRoleRequirement.repository as collaboratorRoleRequirementRepository
83
+
84
+ return collaboratorRoleRequirementRepository.addCollaboratorRoleRequirement(self.__user__,
85
+ entity_state= self,
86
+ entity_user_role_id=collaborator_role_id,
87
+ number_required=number_required,
88
+ extraParams=extraParams)
89
+
90
+ def getCollaboratorRoleRequirements(self):
91
+ """
92
+ Get all RoleRequirements of an EntityState.
93
+
94
+ Returns
95
+ -------
96
+ List[:class:`~labstep.entities.collaboratorRoleRequirement.model.CollaboratorRoleRequirement`]
97
+ A list of objects representing CollaboratorRoleRequirements.
98
+
99
+ Example
100
+ -------
101
+ ::
102
+
103
+ my_entity_state = entityWorkflow.getEntityState(17000)
104
+ role_requirements = my_entity_state.getCollaboratorRoleRequirements()
105
+ """
106
+ import labstep.entities.collaboratorRoleRequirement.repository as collaboratorRoleRequirementRepository
107
+
108
+ return collaboratorRoleRequirementRepository.getCollaboratorRoleRequirements(self.__user__, self)
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+
5
+ from labstep.entities.entityState.model import EntityState
6
+ import labstep.generic.entity.repository as entityRepository
7
+ from labstep.constants import UNSPECIFIED
8
+
9
+
10
+ def addEntityState(user, name,
11
+ color='#b5e550',
12
+ type='unstarted',
13
+ entity_state_workflow_id=UNSPECIFIED,
14
+ extraParams={}):
15
+ params = {
16
+ "name": name,
17
+ 'color': color,
18
+ 'type': type,
19
+ 'entity_state_workflow_id': entity_state_workflow_id,
20
+ **extraParams,
21
+ }
22
+ return entityRepository.newEntity(user, EntityState, params)
23
+
24
+ def editEntityState(entityState, name=UNSPECIFIED,
25
+ color=UNSPECIFIED,
26
+ state_type=UNSPECIFIED,
27
+ extraParams={}):
28
+ params = {
29
+ "name": name,
30
+ 'color': color,
31
+ 'type': state_type,
32
+ **extraParams,
33
+ }
34
+ return entityRepository.editEntity(entityState, params)
35
+
36
+ def getEntityState(user, entity_state_id, entity_state_workflow_id=UNSPECIFIED, group_id=UNSPECIFIED):
37
+
38
+ extraParams = {
39
+ "get_single": 1,
40
+ 'entity_state_workflow_id': entity_state_workflow_id,
41
+ 'group_id': group_id
42
+ }
43
+
44
+ return entityRepository.getEntity(user,EntityState,entity_state_id,extraParams=extraParams)
45
+
46
+
47
+ def getEntityStates(user, entity_state_workflow_id=UNSPECIFIED,
48
+ count=UNSPECIFIED,
49
+ search_query=UNSPECIFIED,
50
+ extraParams={}):
51
+ params = {
52
+ 'entity_state_workflow_id':entity_state_workflow_id,
53
+ "search_query": search_query,
54
+ **extraParams}
55
+ return entityRepository.getEntities(user, EntityState, count, params)
56
+
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+ from deprecated import deprecated
5
+
6
+ from labstep.generic.entityWithSharing.model import EntityWithSharing
7
+ from labstep.generic.entityWithAssign.model import EntityWithAssign
8
+ from labstep.service.helpers import getTime, handleDate
9
+ from labstep.constants import UNSPECIFIED
10
+
11
+
12
+ class EntityStateWorkflow(EntityWithSharing,EntityWithAssign):
13
+ """
14
+ Represents a series of states an entity must go through, including who needs to sign / be assigned at each stage.
15
+
16
+ """
17
+
18
+ __entityName__='entity-state-workflow'
19
+ __hasParentGroup__ = True
20
+
21
+ def edit(self, name=UNSPECIFIED, extraParams={}):
22
+ """
23
+ Edit an existing EntityStateWorkflow.
24
+
25
+ Parameters
26
+ ----------
27
+ name (str)
28
+ The new name of the EntityStateWorkflow.
29
+
30
+ Returns
31
+ -------
32
+ :class:`~labstep.entities.EntityStateWorkflow.model.EntityStateWorkflow`
33
+ An object representing the edited EntityStateWorkflow.
34
+
35
+ Example
36
+ -------
37
+ ::
38
+
39
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
40
+ my_entity_state_workflow.edit(name='A New EntityStateWorkflow Name')
41
+ """
42
+ import labstep.entities.entityStateWorkflow.repository as entityStateWorkflowRepository
43
+
44
+ return entityStateWorkflowRepository.editEntityStateWorkflow(self, name=name, extraParams=extraParams)
45
+
46
+
47
+ def newEntityState(self, name, color='#0057dd', type='unstarted', extraParams={}):
48
+ """
49
+ Add an EntityState to an EntityStateWorkflow.
50
+
51
+ Parameters
52
+ ----------
53
+ name (str)
54
+ The name of the EntityState.
55
+
56
+ color in HEX value(str)
57
+ The color of the EntityState.
58
+
59
+ type(str)
60
+ The type of the EntityState. It can be one of the following: 'unstarted',
61
+ 'started', and 'complete'.
62
+
63
+
64
+ Returns
65
+ -------
66
+ :class:`~labstep.entities.entityState.model.EntityState`
67
+ An object representing the EntityState.
68
+
69
+ Example
70
+ -------
71
+ ::
72
+
73
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
74
+ my_entity_state_workflow.newEntityState(name='A New EntityState Name')
75
+ """
76
+ import labstep.entities.entityState.repository as entityStateRepository
77
+ return entityStateRepository.addEntityState(self.__user__, name, color, type, self.id, extraParams=extraParams)
78
+
79
+ def getEntityState(self, entity_state_id):
80
+ """
81
+ Get an EntityState in an EntityStateWorkflow.
82
+
83
+ Parameters
84
+ ----------
85
+ entity_state_id(int)
86
+ The ID of the EntityState.
87
+
88
+ Returns
89
+ -------
90
+ :class:`~labstep.entities.entityState.model.EntityState`
91
+ An object representing the EntityState.
92
+
93
+ Example
94
+ -------
95
+ ::
96
+
97
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
98
+ my_entity_state_workflow.getEntityState(17000)
99
+ """
100
+ import labstep.entities.entityState.repository as entityStateRepository
101
+ return entityStateRepository.getEntityState(self.__user__, entity_state_id, entity_state_workflow_id=self.id)
102
+
103
+ def getEntityStates(self, count=UNSPECIFIED, search_query=UNSPECIFIED, extraParams={}):
104
+ """
105
+ Get all EntityStates in an EntityStateWorkflow.
106
+
107
+ Parameters
108
+ ----------
109
+
110
+ count(int)
111
+ The number of EntityStates to return.
112
+
113
+ search_query(str)
114
+ The search query to filter EntityStates.
115
+
116
+ Returns
117
+ -------
118
+ :class:`~labstep.entities.entityState.model.EntityState`
119
+ An object representing the EntityState.
120
+
121
+ Example
122
+ -------
123
+ ::
124
+
125
+ my_entity_state_workflow = user.getEntityStateWorkflow(17000)
126
+ my_entity_state_workflow.getEntityStates()
127
+ """
128
+ import labstep.entities.entityState.repository as entityStateRepository
129
+
130
+ return entityStateRepository.getEntityStates(self.__user__, self.id, count=count, search_query=search_query, extraParams=extraParams)
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author: Labstep <dev@labstep.com>
4
+
5
+ from labstep.entities.entityStateWorkflow.model import EntityStateWorkflow
6
+ import labstep.generic.entity.repository as entityRepository
7
+ from labstep.constants import UNSPECIFIED
8
+
9
+
10
+ def newEntityStateWorkflow(user,
11
+ name,
12
+ target_entity='ExperimentWorkflow',
13
+ group_id=UNSPECIFIED,
14
+ extraParams={}):
15
+ params = {
16
+ 'name': name,
17
+ #'target_entity_class': target_entity.__entityName__,
18
+ 'target_entity_class': target_entity,
19
+ 'group_id': group_id,
20
+ **extraParams,
21
+ }
22
+ return entityRepository.newEntity(user, EntityStateWorkflow, fields = params)
23
+
24
+ def editEntityStateWorkflow(entityStateWorkflow,
25
+ name=UNSPECIFIED,
26
+ extraParams={}):
27
+ params = {
28
+ 'name': name,
29
+ **extraParams,
30
+ }
31
+ return entityRepository.editEntity(entityStateWorkflow, params)
32
+
33
+ def getEntityStateWorkflow(user, entity_state_workflow_id):
34
+ return entityRepository.getEntity(user, EntityStateWorkflow, id=entity_state_workflow_id)
35
+
36
+
37
+ def getEntityStateWorkflows(user,
38
+ search_query=UNSPECIFIED,
39
+ count=UNSPECIFIED,
40
+ extraParams={}):
41
+ params = {'search_query': search_query,
42
+ **extraParams}
43
+ return entityRepository.getEntities(user, EntityStateWorkflow, count, params)
44
+