albert 1.9.2__tar.gz → 1.9.3__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 (281) hide show
  1. {albert-1.9.2 → albert-1.9.3}/PKG-INFO +1 -1
  2. {albert-1.9.2 → albert-1.9.3}/src/albert/__init__.py +1 -1
  3. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/lots.py +118 -3
  4. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/lots.py +17 -0
  5. {albert-1.9.2 → albert-1.9.3}/.circleci/config.yml +0 -0
  6. {albert-1.9.2 → albert-1.9.3}/.gitignore +0 -0
  7. {albert-1.9.2 → albert-1.9.3}/.pre-commit-config.yaml +0 -0
  8. {albert-1.9.2 → albert-1.9.3}/.vscode/settings.json +0 -0
  9. {albert-1.9.2 → albert-1.9.3}/CHANGELOG.md +0 -0
  10. {albert-1.9.2 → albert-1.9.3}/CONTRIBUTING.md +0 -0
  11. {albert-1.9.2 → albert-1.9.3}/LICENSE +0 -0
  12. {albert-1.9.2 → albert-1.9.3}/README.md +0 -0
  13. {albert-1.9.2 → albert-1.9.3}/docs/CONTRIBUTING.md +0 -0
  14. {albert-1.9.2 → albert-1.9.3}/docs/albert.md +0 -0
  15. {albert-1.9.2 → albert-1.9.3}/docs/assets/Vector_Favicon_Blue.svg +0 -0
  16. {albert-1.9.2 → albert-1.9.3}/docs/assets/Wordmark_Black.png +0 -0
  17. {albert-1.9.2 → albert-1.9.3}/docs/assets/Wordmark_White.png +0 -0
  18. {albert-1.9.2 → albert-1.9.3}/docs/authentication.md +0 -0
  19. {albert-1.9.2 → albert-1.9.3}/docs/collections/activities.md +0 -0
  20. {albert-1.9.2 → albert-1.9.3}/docs/collections/attachments.md +0 -0
  21. {albert-1.9.2 → albert-1.9.3}/docs/collections/base.md +0 -0
  22. {albert-1.9.2 → albert-1.9.3}/docs/collections/batch_data.md +0 -0
  23. {albert-1.9.2 → albert-1.9.3}/docs/collections/btdataset.md +0 -0
  24. {albert-1.9.2 → albert-1.9.3}/docs/collections/btinsight.md +0 -0
  25. {albert-1.9.2 → albert-1.9.3}/docs/collections/btmodel.md +0 -0
  26. {albert-1.9.2 → albert-1.9.3}/docs/collections/cas.md +0 -0
  27. {albert-1.9.2 → albert-1.9.3}/docs/collections/companies.md +0 -0
  28. {albert-1.9.2 → albert-1.9.3}/docs/collections/custom_fields.md +0 -0
  29. {albert-1.9.2 → albert-1.9.3}/docs/collections/custom_templates.md +0 -0
  30. {albert-1.9.2 → albert-1.9.3}/docs/collections/data_columns.md +0 -0
  31. {albert-1.9.2 → albert-1.9.3}/docs/collections/data_templates.md +0 -0
  32. {albert-1.9.2 → albert-1.9.3}/docs/collections/entity_types.md +0 -0
  33. {albert-1.9.2 → albert-1.9.3}/docs/collections/files.md +0 -0
  34. {albert-1.9.2 → albert-1.9.3}/docs/collections/hazards.md +0 -0
  35. {albert-1.9.2 → albert-1.9.3}/docs/collections/inventory.md +0 -0
  36. {albert-1.9.2 → albert-1.9.3}/docs/collections/links.md +0 -0
  37. {albert-1.9.2 → albert-1.9.3}/docs/collections/lists.md +0 -0
  38. {albert-1.9.2 → albert-1.9.3}/docs/collections/locations.md +0 -0
  39. {albert-1.9.2 → albert-1.9.3}/docs/collections/lots.md +0 -0
  40. {albert-1.9.2 → albert-1.9.3}/docs/collections/notebooks.md +0 -0
  41. {albert-1.9.2 → albert-1.9.3}/docs/collections/notes.md +0 -0
  42. {albert-1.9.2 → albert-1.9.3}/docs/collections/parameter_groups.md +0 -0
  43. {albert-1.9.2 → albert-1.9.3}/docs/collections/parameters.md +0 -0
  44. {albert-1.9.2 → albert-1.9.3}/docs/collections/pricings.md +0 -0
  45. {albert-1.9.2 → albert-1.9.3}/docs/collections/product_design.md +0 -0
  46. {albert-1.9.2 → albert-1.9.3}/docs/collections/projects.md +0 -0
  47. {albert-1.9.2 → albert-1.9.3}/docs/collections/property_data.md +0 -0
  48. {albert-1.9.2 → albert-1.9.3}/docs/collections/reports.md +0 -0
  49. {albert-1.9.2 → albert-1.9.3}/docs/collections/roles.md +0 -0
  50. {albert-1.9.2 → albert-1.9.3}/docs/collections/storage_classes.md +0 -0
  51. {albert-1.9.2 → albert-1.9.3}/docs/collections/storage_locations.md +0 -0
  52. {albert-1.9.2 → albert-1.9.3}/docs/collections/substances.md +0 -0
  53. {albert-1.9.2 → albert-1.9.3}/docs/collections/tags.md +0 -0
  54. {albert-1.9.2 → albert-1.9.3}/docs/collections/tasks.md +0 -0
  55. {albert-1.9.2 → albert-1.9.3}/docs/collections/un_numbers.md +0 -0
  56. {albert-1.9.2 → albert-1.9.3}/docs/collections/units.md +0 -0
  57. {albert-1.9.2 → albert-1.9.3}/docs/collections/users.md +0 -0
  58. {albert-1.9.2 → albert-1.9.3}/docs/collections/workflows.md +0 -0
  59. {albert-1.9.2 → albert-1.9.3}/docs/collections/worksheets.md +0 -0
  60. {albert-1.9.2 → albert-1.9.3}/docs/concepts.md +0 -0
  61. {albert-1.9.2 → albert-1.9.3}/docs/configuration.md +0 -0
  62. {albert-1.9.2 → albert-1.9.3}/docs/credentials.md +0 -0
  63. {albert-1.9.2 → albert-1.9.3}/docs/index.md +0 -0
  64. {albert-1.9.2 → albert-1.9.3}/docs/installation.md +0 -0
  65. {albert-1.9.2 → albert-1.9.3}/docs/migration.md +0 -0
  66. {albert-1.9.2 → albert-1.9.3}/docs/resources/activities.md +0 -0
  67. {albert-1.9.2 → albert-1.9.3}/docs/resources/attachments.md +0 -0
  68. {albert-1.9.2 → albert-1.9.3}/docs/resources/batch_data.md +0 -0
  69. {albert-1.9.2 → albert-1.9.3}/docs/resources/btdataset.md +0 -0
  70. {albert-1.9.2 → albert-1.9.3}/docs/resources/btinsight.md +0 -0
  71. {albert-1.9.2 → albert-1.9.3}/docs/resources/btmodel.md +0 -0
  72. {albert-1.9.2 → albert-1.9.3}/docs/resources/cas.md +0 -0
  73. {albert-1.9.2 → albert-1.9.3}/docs/resources/companies.md +0 -0
  74. {albert-1.9.2 → albert-1.9.3}/docs/resources/custom_fields.md +0 -0
  75. {albert-1.9.2 → albert-1.9.3}/docs/resources/custom_templates.md +0 -0
  76. {albert-1.9.2 → albert-1.9.3}/docs/resources/data_columns.md +0 -0
  77. {albert-1.9.2 → albert-1.9.3}/docs/resources/data_templates.md +0 -0
  78. {albert-1.9.2 → albert-1.9.3}/docs/resources/entity_types.md +0 -0
  79. {albert-1.9.2 → albert-1.9.3}/docs/resources/files.md +0 -0
  80. {albert-1.9.2 → albert-1.9.3}/docs/resources/hazards.md +0 -0
  81. {albert-1.9.2 → albert-1.9.3}/docs/resources/identifiers.md +0 -0
  82. {albert-1.9.2 → albert-1.9.3}/docs/resources/inventory.md +0 -0
  83. {albert-1.9.2 → albert-1.9.3}/docs/resources/links.md +0 -0
  84. {albert-1.9.2 → albert-1.9.3}/docs/resources/lists.md +0 -0
  85. {albert-1.9.2 → albert-1.9.3}/docs/resources/locations.md +0 -0
  86. {albert-1.9.2 → albert-1.9.3}/docs/resources/lots.md +0 -0
  87. {albert-1.9.2 → albert-1.9.3}/docs/resources/notebooks.md +0 -0
  88. {albert-1.9.2 → albert-1.9.3}/docs/resources/notes.md +0 -0
  89. {albert-1.9.2 → albert-1.9.3}/docs/resources/parameter_groups.md +0 -0
  90. {albert-1.9.2 → albert-1.9.3}/docs/resources/parameters.md +0 -0
  91. {albert-1.9.2 → albert-1.9.3}/docs/resources/pricings.md +0 -0
  92. {albert-1.9.2 → albert-1.9.3}/docs/resources/product_design.md +0 -0
  93. {albert-1.9.2 → albert-1.9.3}/docs/resources/projects.md +0 -0
  94. {albert-1.9.2 → albert-1.9.3}/docs/resources/property_data.md +0 -0
  95. {albert-1.9.2 → albert-1.9.3}/docs/resources/reports.md +0 -0
  96. {albert-1.9.2 → albert-1.9.3}/docs/resources/roles.md +0 -0
  97. {albert-1.9.2 → albert-1.9.3}/docs/resources/sheets.md +0 -0
  98. {albert-1.9.2 → albert-1.9.3}/docs/resources/storage_classes.md +0 -0
  99. {albert-1.9.2 → albert-1.9.3}/docs/resources/storage_locations.md +0 -0
  100. {albert-1.9.2 → albert-1.9.3}/docs/resources/substances.md +0 -0
  101. {albert-1.9.2 → albert-1.9.3}/docs/resources/tags.md +0 -0
  102. {albert-1.9.2 → albert-1.9.3}/docs/resources/tasks.md +0 -0
  103. {albert-1.9.2 → albert-1.9.3}/docs/resources/un_numbers.md +0 -0
  104. {albert-1.9.2 → albert-1.9.3}/docs/resources/units.md +0 -0
  105. {albert-1.9.2 → albert-1.9.3}/docs/resources/users.md +0 -0
  106. {albert-1.9.2 → albert-1.9.3}/docs/resources/workflows.md +0 -0
  107. {albert-1.9.2 → albert-1.9.3}/docs/resources/worksheets.md +0 -0
  108. {albert-1.9.2 → albert-1.9.3}/docs/sso.md +0 -0
  109. {albert-1.9.2 → albert-1.9.3}/docs/styles/extra.css +0 -0
  110. {albert-1.9.2 → albert-1.9.3}/mkdocs.yml +0 -0
  111. {albert-1.9.2 → albert-1.9.3}/pyproject.toml +0 -0
  112. {albert-1.9.2 → albert-1.9.3}/scripts/validate_release_tag.py +0 -0
  113. {albert-1.9.2 → albert-1.9.3}/scripts/validate_version_bump.py +0 -0
  114. {albert-1.9.2 → albert-1.9.3}/setup.sh +0 -0
  115. {albert-1.9.2 → albert-1.9.3}/src/albert/client.py +0 -0
  116. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/__init__.py +0 -0
  117. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/activities.py +0 -0
  118. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/attachments.py +0 -0
  119. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/base.py +0 -0
  120. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/batch_data.py +0 -0
  121. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/btdataset.py +0 -0
  122. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/btinsight.py +0 -0
  123. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/btmodel.py +0 -0
  124. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/cas.py +0 -0
  125. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/companies.py +0 -0
  126. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/custom_fields.py +0 -0
  127. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/custom_templates.py +0 -0
  128. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/data_columns.py +0 -0
  129. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/data_templates.py +0 -0
  130. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/entity_types.py +0 -0
  131. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/files.py +0 -0
  132. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/hazards.py +0 -0
  133. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/inventory.py +0 -0
  134. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/links.py +0 -0
  135. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/lists.py +0 -0
  136. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/locations.py +0 -0
  137. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/notebooks.py +0 -0
  138. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/notes.py +0 -0
  139. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/parameter_groups.py +0 -0
  140. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/parameters.py +0 -0
  141. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/pricings.py +0 -0
  142. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/product_design.py +0 -0
  143. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/projects.py +0 -0
  144. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/property_data.py +0 -0
  145. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/report_templates.py +0 -0
  146. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/reports.py +0 -0
  147. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/roles.py +0 -0
  148. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/storage_classes.py +0 -0
  149. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/storage_locations.py +0 -0
  150. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/substance.py +0 -0
  151. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/tags.py +0 -0
  152. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/tasks.py +0 -0
  153. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/un_numbers.py +0 -0
  154. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/units.py +0 -0
  155. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/users.py +0 -0
  156. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/workflows.py +0 -0
  157. {albert-1.9.2 → albert-1.9.3}/src/albert/collections/worksheets.py +0 -0
  158. {albert-1.9.2 → albert-1.9.3}/src/albert/core/__init__.py +0 -0
  159. {albert-1.9.2 → albert-1.9.3}/src/albert/core/auth/__init__.py +0 -0
  160. {albert-1.9.2 → albert-1.9.3}/src/albert/core/auth/_listener.py +0 -0
  161. {albert-1.9.2 → albert-1.9.3}/src/albert/core/auth/_manager.py +0 -0
  162. {albert-1.9.2 → albert-1.9.3}/src/albert/core/auth/credentials.py +0 -0
  163. {albert-1.9.2 → albert-1.9.3}/src/albert/core/auth/sso.py +0 -0
  164. {albert-1.9.2 → albert-1.9.3}/src/albert/core/base.py +0 -0
  165. {albert-1.9.2 → albert-1.9.3}/src/albert/core/logging.py +0 -0
  166. {albert-1.9.2 → albert-1.9.3}/src/albert/core/pagination.py +0 -0
  167. {albert-1.9.2 → albert-1.9.3}/src/albert/core/session.py +0 -0
  168. {albert-1.9.2 → albert-1.9.3}/src/albert/core/shared/__init__.py +0 -0
  169. {albert-1.9.2 → albert-1.9.3}/src/albert/core/shared/enums.py +0 -0
  170. {albert-1.9.2 → albert-1.9.3}/src/albert/core/shared/identifiers.py +0 -0
  171. {albert-1.9.2 → albert-1.9.3}/src/albert/core/shared/models/base.py +0 -0
  172. {albert-1.9.2 → albert-1.9.3}/src/albert/core/shared/models/patch.py +0 -0
  173. {albert-1.9.2 → albert-1.9.3}/src/albert/core/shared/types.py +0 -0
  174. {albert-1.9.2 → albert-1.9.3}/src/albert/exceptions.py +0 -0
  175. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/__init__.py +0 -0
  176. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/_mixins.py +0 -0
  177. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/acls.py +0 -0
  178. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/activities.py +0 -0
  179. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/attachments.py +0 -0
  180. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/batch_data.py +0 -0
  181. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/btdataset.py +0 -0
  182. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/btinsight.py +0 -0
  183. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/btmodel.py +0 -0
  184. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/cas.py +0 -0
  185. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/companies.py +0 -0
  186. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/custom_fields.py +0 -0
  187. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/custom_templates.py +0 -0
  188. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/data_columns.py +0 -0
  189. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/data_templates.py +0 -0
  190. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/entity_types.py +0 -0
  191. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/facet.py +0 -0
  192. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/files.py +0 -0
  193. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/hazards.py +0 -0
  194. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/inventory.py +0 -0
  195. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/links.py +0 -0
  196. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/lists.py +0 -0
  197. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/locations.py +0 -0
  198. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/notebooks.py +0 -0
  199. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/notes.py +0 -0
  200. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/parameter_groups.py +0 -0
  201. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/parameters.py +0 -0
  202. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/pricings.py +0 -0
  203. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/product_design.py +0 -0
  204. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/projects.py +0 -0
  205. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/property_data.py +0 -0
  206. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/report_templates.py +0 -0
  207. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/reports.py +0 -0
  208. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/roles.py +0 -0
  209. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/sheets.py +0 -0
  210. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/storage_classes.py +0 -0
  211. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/storage_locations.py +0 -0
  212. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/substance.py +0 -0
  213. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/tagged_base.py +0 -0
  214. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/tags.py +0 -0
  215. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/tasks.py +0 -0
  216. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/un_numbers.py +0 -0
  217. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/units.py +0 -0
  218. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/users.py +0 -0
  219. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/workflows.py +0 -0
  220. {albert-1.9.2 → albert-1.9.3}/src/albert/resources/worksheets.py +0 -0
  221. {albert-1.9.2 → albert-1.9.3}/src/albert/utils/__init__.py +0 -0
  222. {albert-1.9.2 → albert-1.9.3}/src/albert/utils/_auth.py +0 -0
  223. {albert-1.9.2 → albert-1.9.3}/src/albert/utils/_patch.py +0 -0
  224. {albert-1.9.2 → albert-1.9.3}/src/albert/utils/inventory.py +0 -0
  225. {albert-1.9.2 → albert-1.9.3}/tests/__init__.py +0 -0
  226. {albert-1.9.2 → albert-1.9.3}/tests/collections/__init__.py +0 -0
  227. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_activities.py +0 -0
  228. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_attachments.py +0 -0
  229. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_batch_data.py +0 -0
  230. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_btdataset.py +0 -0
  231. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_btinsight.py +0 -0
  232. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_btmodel.py +0 -0
  233. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_cas.py +0 -0
  234. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_company.py +0 -0
  235. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_custom_fields.py +0 -0
  236. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_custom_templates.py +0 -0
  237. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_data_columns.py +0 -0
  238. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_data_templates.py +0 -0
  239. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_entity_types.py +0 -0
  240. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_files.py +0 -0
  241. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_hazards.py +0 -0
  242. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_inventory.py +0 -0
  243. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_links.py +0 -0
  244. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_lists.py +0 -0
  245. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_locations.py +0 -0
  246. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_lots.py +0 -0
  247. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_notebooks.py +0 -0
  248. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_notes.py +0 -0
  249. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_parameter_groups.py +0 -0
  250. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_parameters.py +0 -0
  251. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_pricings.py +0 -0
  252. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_product_design.py +0 -0
  253. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_projects.py +0 -0
  254. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_property_data.py +0 -0
  255. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_report_templates.py +0 -0
  256. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_reports.py +0 -0
  257. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_roles.py +0 -0
  258. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_storage_classes.py +0 -0
  259. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_storage_locations.py +0 -0
  260. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_substance.py +0 -0
  261. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_tags.py +0 -0
  262. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_tasks.py +0 -0
  263. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_un_number.py +0 -0
  264. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_units.py +0 -0
  265. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_users.py +0 -0
  266. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_workflows.py +0 -0
  267. {albert-1.9.2 → albert-1.9.3}/tests/collections/test_worksheet.py +0 -0
  268. {albert-1.9.2 → albert-1.9.3}/tests/conftest.py +0 -0
  269. {albert-1.9.2 → albert-1.9.3}/tests/core/shared/__init__.py +0 -0
  270. {albert-1.9.2 → albert-1.9.3}/tests/core/shared/test_identifiers.py +0 -0
  271. {albert-1.9.2 → albert-1.9.3}/tests/core/shared/test_types.py +0 -0
  272. {albert-1.9.2 → albert-1.9.3}/tests/core/test_auth.py +0 -0
  273. {albert-1.9.2 → albert-1.9.3}/tests/data/SDS_HCL.pdf +0 -0
  274. {albert-1.9.2 → albert-1.9.3}/tests/data/dontpanic.jpg +0 -0
  275. {albert-1.9.2 → albert-1.9.3}/tests/resources/test_inventory.py +0 -0
  276. {albert-1.9.2 → albert-1.9.3}/tests/resources/test_lots.py +0 -0
  277. {albert-1.9.2 → albert-1.9.3}/tests/resources/test_notebooks.py +0 -0
  278. {albert-1.9.2 → albert-1.9.3}/tests/resources/test_sheets.py +0 -0
  279. {albert-1.9.2 → albert-1.9.3}/tests/seeding.py +0 -0
  280. {albert-1.9.2 → albert-1.9.3}/tests/utils/fake_session.py +0 -0
  281. {albert-1.9.2 → albert-1.9.3}/tests/utils/test_patches.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: albert
3
- Version: 1.9.2
3
+ Version: 1.9.3
4
4
  Summary: The official Python SDK for the Albert Invent platform.
5
5
  Project-URL: Homepage, https://www.albertinvent.com/
6
6
  Project-URL: Documentation, https://docs.developer.albertinvent.com/albert-python
@@ -4,4 +4,4 @@ from albert.core.auth.sso import AlbertSSOClient
4
4
 
5
5
  __all__ = ["Albert", "AlbertClientCredentials", "AlbertSSOClient"]
6
6
 
7
- __version__ = "1.9.2"
7
+ __version__ = "1.9.3"
@@ -7,10 +7,11 @@ from albert.collections.base import BaseCollection
7
7
  from albert.core.logging import logger
8
8
  from albert.core.pagination import AlbertPaginator
9
9
  from albert.core.session import AlbertSession
10
- from albert.core.shared.enums import PaginationMode
11
- from albert.core.shared.identifiers import InventoryId, LotId
10
+ from albert.core.shared.enums import OrderBy, PaginationMode
11
+ from albert.core.shared.identifiers import InventoryId, LotId, TaskId
12
12
  from albert.core.shared.models.patch import PatchDatum, PatchOperation, PatchPayload
13
- from albert.resources.lots import Lot
13
+ from albert.resources.inventory import InventoryCategory
14
+ from albert.resources.lots import Lot, LotSearchItem
14
15
 
15
16
  # 14 decimal places for inventory on hand delta calculations
16
17
  DECIMAL_DELTA_QUANTIZE = Decimal("0.00000000000000")
@@ -120,6 +121,120 @@ class LotCollection(BaseCollection):
120
121
  url = f"{self.base_path}?id={id}"
121
122
  self.session.delete(url)
122
123
 
124
+ @validate_call
125
+ def search(
126
+ self,
127
+ *,
128
+ text: str | None = None,
129
+ inventory_id: InventoryId | list[InventoryId] | None = None,
130
+ location_id: str | list[str] | None = None,
131
+ storage_location_id: str | list[str] | None = None,
132
+ task_id: TaskId | list[TaskId] | None = None,
133
+ category: InventoryCategory | str | list[InventoryCategory | str] | None = None,
134
+ external_barcode_id: str | list[str] | None = None,
135
+ search_field: str | list[str] | None = None,
136
+ source_field: str | list[str] | None = None,
137
+ additional_field: str | list[str] | None = None,
138
+ is_drop_down: bool | None = None,
139
+ order_by: OrderBy = OrderBy.DESCENDING,
140
+ sort_by: str | None = None,
141
+ offset: int | None = None,
142
+ max_items: int | None = None,
143
+ ) -> Iterator[LotSearchItem]:
144
+ """
145
+ Search for Lot records matching the provided filters.
146
+
147
+ ⚠️ This method returns partial (unhydrated) entities to optimize performance.
148
+ To retrieve fully detailed entities, use :meth:`get_all` instead.
149
+
150
+ Parameters
151
+ ----------
152
+ text : str, optional
153
+ Free-text query matched against lot fields.
154
+ inventory_id : InventoryId or list[InventoryId], optional
155
+ Filter by parent inventory IDs.
156
+ location_id : str or list[str], optional
157
+ Filter by specific location IDs.
158
+ storage_location_id : str or list[str], optional
159
+ Filter by storage location IDs.
160
+ task_id : TaskId or list[TaskId], optional
161
+ Filter by source task IDs.
162
+ category : InventoryCategory or list[str], optional
163
+ Filter by parent inventory categories.
164
+ external_barcode_id : str or list[str], optional
165
+ Filter by external barcode IDs.
166
+ search_field : str or list[str], optional
167
+ Restrict the fields the `text` query searches.
168
+ source_field : str or list[str], optional
169
+ Restrict which fields are returned in the response.
170
+ additional_field : str or list[str], optional
171
+ Request additional columns from the search index.
172
+ is_drop_down : bool, optional
173
+ Use dropdown sanitization for the search text when True.
174
+ order_by : OrderBy, optional
175
+ Sort order for the results, default DESCENDING.
176
+ sort_by : str, optional
177
+ Attribute to sort by.
178
+ offset : int, optional
179
+ Pagination offset to start from.
180
+ max_items : int, optional
181
+ Maximum number of items to return in total. If None, fetches all available items.
182
+
183
+ Returns
184
+ -------
185
+ Iterator[LotSearchItem]
186
+ An iterator of matching partial (unhydrated) lot entities.
187
+ """
188
+
189
+ search_text = text if (text is None or len(text) < 50) else text[:50]
190
+
191
+ def _ensure_list(value):
192
+ if value is None:
193
+ return None
194
+ if isinstance(value, list | tuple | set):
195
+ return list(value)
196
+ return [value]
197
+
198
+ def _format_categories(value):
199
+ raw = _ensure_list(value)
200
+ if raw is None:
201
+ return None
202
+ formatted: list[str] = []
203
+ for category in raw:
204
+ formatted.append(
205
+ category.value if isinstance(category, InventoryCategory) else category
206
+ )
207
+ return formatted
208
+
209
+ params = {
210
+ "offset": offset,
211
+ "order": order_by.value,
212
+ "text": search_text,
213
+ "sortBy": sort_by,
214
+ "isDropDown": is_drop_down,
215
+ "inventoryId": _ensure_list(inventory_id),
216
+ "locationId": _ensure_list(location_id),
217
+ "storageLocationId": _ensure_list(storage_location_id),
218
+ "taskId": _ensure_list(task_id),
219
+ "category": _format_categories(category),
220
+ "externalBarcodeId": _ensure_list(external_barcode_id),
221
+ "searchField": _ensure_list(search_field),
222
+ "sourceField": _ensure_list(source_field),
223
+ "additionalField": _ensure_list(additional_field),
224
+ }
225
+ params = {key: value for key, value in params.items() if value is not None}
226
+
227
+ return AlbertPaginator(
228
+ mode=PaginationMode.OFFSET,
229
+ path=f"{self.base_path}/search",
230
+ session=self.session,
231
+ params=params,
232
+ max_items=max_items,
233
+ deserialize=lambda items: [
234
+ LotSearchItem(**item)._bind_collection(self) for item in items
235
+ ],
236
+ )
237
+
123
238
  @validate_call
124
239
  def get_all(
125
240
  self,
@@ -3,9 +3,11 @@ from typing import Any
3
3
 
4
4
  from pydantic import Field, NonNegativeFloat, field_serializer, field_validator
5
5
 
6
+ from albert.core.base import BaseAlbertModel
6
7
  from albert.core.shared.identifiers import InventoryId, LotId
7
8
  from albert.core.shared.models.base import BaseResource
8
9
  from albert.core.shared.types import MetadataItem, SerializeAsEntityLink
10
+ from albert.resources._mixins import HydrationMixin
9
11
  from albert.resources.inventory import InventoryCategory
10
12
  from albert.resources.locations import Location
11
13
  from albert.resources.storage_locations import StorageLocation
@@ -143,3 +145,18 @@ class Lot(BaseResource):
143
145
  @field_serializer("inventory_on_hand", return_type=str)
144
146
  def serialize_inventory_on_hand(self, inventory_on_hand: NonNegativeFloat):
145
147
  return self._format_decimal(inventory_on_hand)
148
+
149
+
150
+ class LotSearchItem(BaseAlbertModel, HydrationMixin[Lot]):
151
+ """Lightweight representation of a Lot returned from search()."""
152
+
153
+ id: LotId = Field(alias="albertId")
154
+ inventory_id: InventoryId | None = Field(default=None, alias="parentId")
155
+ parent_name: str | None = Field(default=None, alias="parentName")
156
+ parent_unit: str | None = Field(default=None, alias="parentUnit")
157
+ parent_category: InventoryCategory | None = Field(default=None, alias="parentIdCategory")
158
+ task_id: str | None = Field(default=None, alias="taskId")
159
+ barcode_id: str | None = Field(default=None, alias="barcodeId")
160
+ expiration_date: str | None = Field(default=None, alias="expirationDate")
161
+ manufacturer_lot_number: str | None = Field(default=None, alias="manufacturerLotNumber")
162
+ lot_number: str | None = Field(default=None, alias="number")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes