albert 1.11.0__py3-none-any.whl → 1.11.1__py3-none-any.whl

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.
albert/__init__.py CHANGED
@@ -4,4 +4,4 @@ from albert.core.auth.sso import AlbertSSOClient
4
4
 
5
5
  __all__ = ["Albert", "AlbertClientCredentials", "AlbertSSOClient"]
6
6
 
7
- __version__ = "1.11.0"
7
+ __version__ = "1.11.1"
@@ -1,7 +1,9 @@
1
+ from __future__ import annotations
2
+
1
3
  from enum import Enum
2
4
  from typing import Any
3
5
 
4
- from pydantic import Field
6
+ from pydantic import Field, model_validator
5
7
 
6
8
  from albert.core.shared.identifiers import CustomFieldId, EntityTypeId, RuleId
7
9
  from albert.core.shared.models.base import BaseAlbertModel, BaseResource, EntityLink
@@ -173,8 +175,8 @@ class EntityType(BaseResource):
173
175
  ----------
174
176
  id : EntityTypeId
175
177
  The unique identifier for the entity type.
176
- category : EntityCategory
177
- The category the entity type belongs to.
178
+ category : EntityCategory | None
179
+ The category the entity type belongs to. Required for tasks and inventories.
178
180
  custom_category : str | None, optional
179
181
  A custom category name for the entity type.
180
182
  label : str
@@ -194,7 +196,7 @@ class EntityType(BaseResource):
194
196
  """
195
197
 
196
198
  id: EntityTypeId | None = Field(alias="albertId", default=None)
197
- category: EntityCategory
199
+ category: EntityCategory | None = None
198
200
  custom_category: str | None = Field(
199
201
  default=None, max_length=100, min_length=1, alias="customCategory"
200
202
  )
@@ -215,6 +217,15 @@ class EntityType(BaseResource):
215
217
  alias="searchQueryString", default=None
216
218
  )
217
219
 
220
+ @model_validator(mode="after")
221
+ def validate_category(self) -> EntityType:
222
+ if (
223
+ self.service in {EntityServiceType.TASKS, EntityServiceType.INVENTORIES}
224
+ and self.category is None
225
+ ):
226
+ raise ValueError("category is required for tasks and inventories entity types.")
227
+ return self
228
+
218
229
 
219
230
  class EntityTypeOptionType(str, Enum):
220
231
  """Types of options that can be used in entity type fields.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: albert
3
- Version: 1.11.0
3
+ Version: 1.11.1
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
@@ -1,4 +1,4 @@
1
- albert/__init__.py,sha256=HmsEPDVHy3OV1CPN344cztFYv5B-RjMiwM21n4B9OpM,239
1
+ albert/__init__.py,sha256=XThh5N2xtwjr3MAIRabVZNb-albZ35TFqJUFVdg7js4,239
2
2
  albert/client.py,sha256=9SUy9AJpnFEUlSfxvbP1gJI776WcOoZykgPHx0EcF8g,12038
3
3
  albert/exceptions.py,sha256=-oxOJGE0A__aPUhri3qqb5YQ5qanECcTqamS73vGajM,3172
4
4
  albert/collections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -76,7 +76,7 @@ albert/resources/custom_fields.py,sha256=spu5S32wFQ-ifKh-6QKjmSFz5HawAYaEM9EeA7P
76
76
  albert/resources/custom_templates.py,sha256=iglIlk4WYgvYkaCcQ8W_qZjDROyKAFC-7Fib_RFY-48,9710
77
77
  albert/resources/data_columns.py,sha256=y9-14lF3ncvJ4ut7TxSz2Wp6tw96o578aVUYh7CBDT4,345
78
78
  albert/resources/data_templates.py,sha256=Wf1iyKFNDV-vuEHUNjYBL-gMYYaHfmjE82TgcHe0LxA,7009
79
- albert/resources/entity_types.py,sha256=wP0Y0EScr4VN-YvzGdVZk91U5tqGBZDqvLpESoY0B-w,10791
79
+ albert/resources/entity_types.py,sha256=7lessP8StBDfi4DZMifvRNN4lspdQ5X0olBIu7lT_AI,11244
80
80
  albert/resources/facet.py,sha256=tjm6CsOL7T5LSV4G9406C1c5mpzY1gpfQYAttP6Hckw,372
81
81
  albert/resources/files.py,sha256=0q5H6rJ9il0Oy1FnwxVo3otq_w8YQeQjo29DgsTY8JQ,1067
82
82
  albert/resources/hazards.py,sha256=ltlbYct3PhvpTojqic0OcfJVKd2s6m59XqszzZZAuWo,375
@@ -117,7 +117,7 @@ albert/utils/data_template.py,sha256=AUwzfQ-I2HY-osq_Tme5KLwXfMzW2pJpiud7HAMh148
117
117
  albert/utils/inventory.py,sha256=ViHxb62DVxniEJqOfD7Gf8HltLeCbq21y4rS1xkVRnY,5349
118
118
  albert/utils/property_data.py,sha256=US_5PYZu2Yv3CmAuWMQfYztjSIgNaRrCz9SsVzLOGcw,22906
119
119
  albert/utils/tasks.py,sha256=ejhXD9yQR_ReDKLJ3k8ZxWxkYl-Mta_4OPXrz_lQiBI,19878
120
- albert-1.11.0.dist-info/METADATA,sha256=ZG1c_FM2O4145--84AgRXprermG8dv4S9WcEeDk6MHg,15427
121
- albert-1.11.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
122
- albert-1.11.0.dist-info/licenses/LICENSE,sha256=S7_vRdIhQmG7PmTlU8-BCCveuEcFZ6_3IUVdcoaJMuA,11348
123
- albert-1.11.0.dist-info/RECORD,,
120
+ albert-1.11.1.dist-info/METADATA,sha256=zKrAC_yzs9_KXp7OBa74BBLLIwkl1Zw9fKlbAZmyoMw,15427
121
+ albert-1.11.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
122
+ albert-1.11.1.dist-info/licenses/LICENSE,sha256=S7_vRdIhQmG7PmTlU8-BCCveuEcFZ6_3IUVdcoaJMuA,11348
123
+ albert-1.11.1.dist-info/RECORD,,