kodexa 7.4.413159458494__tar.gz → 7.4.413228679383__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/PKG-INFO +1 -1
  2. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/objects.py +116 -16
  3. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/platform/client.py +161 -2
  4. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/pyproject.toml +1 -1
  5. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/LICENSE +0 -0
  6. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/README.md +0 -0
  7. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/__init__.py +0 -0
  8. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/assistant/__init__.py +0 -0
  9. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/assistant/assistant.py +0 -0
  10. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/connectors/__init__.py +0 -0
  11. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/connectors/connectors.py +0 -0
  12. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/dataclasses/__init__.py +0 -0
  13. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/dataclasses/templates/llm_data_class.j2 +0 -0
  14. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/__init__.py +0 -0
  15. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/base.py +0 -0
  16. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/entities/__init__.py +0 -0
  17. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/entities/check_response.py +0 -0
  18. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/entities/product.py +0 -0
  19. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/entities/product_group.py +0 -0
  20. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/entities/product_subscription.py +0 -0
  21. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/model.py +0 -0
  22. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/persistence.py +0 -0
  23. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/model/utils.py +0 -0
  24. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/pipeline/__init__.py +0 -0
  25. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/pipeline/pipeline.py +0 -0
  26. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/platform/__init__.py +0 -0
  27. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/platform/interaction.py +0 -0
  28. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/platform/kodexa.py +0 -0
  29. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/__init__.py +0 -0
  30. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/ast.py +0 -0
  31. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/core.py +0 -0
  32. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/lexrules.py +0 -0
  33. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/lextab.py +0 -0
  34. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/lextab.pyi +0 -0
  35. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/parserules.py +0 -0
  36. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/parserules.pyi +0 -0
  37. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/parsetab.py +0 -0
  38. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/selectors/parsetab.pyi +0 -0
  39. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/spatial/__init__.py +0 -0
  40. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/spatial/azure_models.py +0 -0
  41. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/spatial/bbox_common.py +0 -0
  42. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/spatial/table_form_common.py +0 -0
  43. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/steps/__init__.py +0 -0
  44. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/steps/common.py +0 -0
  45. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/testing/__init__.py +0 -0
  46. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/testing/test_components.py +0 -0
  47. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/testing/test_utils.py +0 -0
  48. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/training/__init__.py +0 -0
  49. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/training/train_utils.py +0 -0
  50. {kodexa-7.4.413159458494 → kodexa-7.4.413228679383}/kodexa/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kodexa
3
- Version: 7.4.413159458494
3
+ Version: 7.4.413228679383
4
4
  Summary: Python SDK for the Kodexa Platform
5
5
  Author: Austin Redenbaugh
6
6
  Author-email: austin@kodexa.com
@@ -2930,14 +2930,51 @@ class Project(BaseModel):
2930
2930
  owner: Optional[User] = None
2931
2931
  options: Optional[ProjectOptions] = Field(None, alias="options")
2932
2932
 
2933
-
2934
2933
  class TaskStatus(str, Enum):
2935
2934
  TODO = "TODO"
2936
2935
  IN_PROGRESS = "IN_PROGRESS"
2937
2936
  DONE = "DONE"
2938
2937
 
2939
2938
 
2940
- class TaskCheckItem(BaseModel):
2939
+ class TaskActivityType(str, Enum):
2940
+ TASK_CREATED = "TASK_CREATED"
2941
+ TITLE_CHANGED = "TITLE_CHANGED"
2942
+ DESCRIPTION_UPDATED = "DESCRIPTION_UPDATED"
2943
+ STATUS_CHANGED = "STATUS_CHANGED"
2944
+ ASSIGNEE_CHANGED = "ASSIGNEE_CHANGED"
2945
+ DUE_DATE_CHANGED = "DUE_DATE_CHANGED"
2946
+ PROJECT_CHANGED = "PROJECT_CHANGED"
2947
+ COMMENT = "COMMENT"
2948
+
2949
+
2950
+ class TaskActivityDetail(BaseModel):
2951
+ model_config = ConfigDict(
2952
+ populate_by_name=True,
2953
+ use_enum_values=True,
2954
+ arbitrary_types_allowed=True,
2955
+ protected_namespaces=("model_config",),
2956
+ )
2957
+ type: TaskActivityType
2958
+ interpolated_values: Dict[str, Any] = Field(default_factory=dict, alias="interpolatedValues")
2959
+
2960
+
2961
+ class TaskActivity(BaseModel):
2962
+ model_config = ConfigDict(
2963
+ populate_by_name=True,
2964
+ use_enum_values=True,
2965
+ arbitrary_types_allowed=True,
2966
+ protected_namespaces=("model_config",),
2967
+ )
2968
+
2969
+ task: Optional['Task'] = None
2970
+ content: Optional[str] = None
2971
+ detail: Optional[TaskActivityDetail] = None
2972
+ user: Optional['User'] = None
2973
+ search_text: Optional[str] = Field(None, alias="searchText")
2974
+ transient_values: Dict[str, Any] = Field(default_factory=dict, alias="transientValues")
2975
+
2976
+
2977
+ class TaskTag(BaseModel):
2941
2978
  model_config = ConfigDict(
2942
2979
  populate_by_name=True,
2943
2980
  use_enum_values=True,
@@ -2945,10 +2982,61 @@ class TaskCheckItem(BaseModel):
2945
2982
  protected_namespaces=("model_config",),
2946
2983
  )
2947
2984
 
2985
+ project: Optional['Project'] = None
2948
2986
  name: str
2987
+ color: Optional[str] = None
2988
+
2989
+
2990
+ class DataFormAction(BaseModel):
2991
+ model_config = ConfigDict(
2992
+ populate_by_name=True,
2993
+ use_enum_values=True,
2994
+ arbitrary_types_allowed=True,
2995
+ protected_namespaces=("model_config",),
2996
+ )
2997
+
2998
+ type: Optional[str] = None
2999
+ label: Optional[str] = None
3000
+ properties: Dict[str, Any] = Field(default_factory=dict)
3001
+
3002
+
3003
+ class TemplateDataForm(BaseModel):
3004
+ model_config = ConfigDict(
3005
+ populate_by_name=True,
3006
+ use_enum_values=True,
3007
+ arbitrary_types_allowed=True,
3008
+ protected_namespaces=("model_config",),
3009
+ )
3010
+
3011
+ data_form_ref: Optional[str] = Field(None, alias="dataFormRef")
3012
+ actions: List[DataFormAction] = Field(default_factory=list)
3013
+
3014
+
3015
+ class TaskTemplateMetadata(BaseModel):
3016
+ model_config = ConfigDict(
3017
+ populate_by_name=True,
3018
+ use_enum_values=True,
3019
+ arbitrary_types_allowed=True,
3020
+ protected_namespaces=("model_config",),
3021
+ )
3022
+
3023
+ options: List[Option] = Field(default_factory=list)
3024
+ forms: List[TemplateDataForm] = Field(default_factory=list)
3025
+ workspace_id: Optional[str] = Field(None, alias="workspaceId")
3026
+
3027
+
3028
+ class TaskTemplate(BaseModel):
3029
+ model_config = ConfigDict(
3030
+ populate_by_name=True,
3031
+ use_enum_values=True,
3032
+ arbitrary_types_allowed=True,
3033
+ protected_namespaces=("model_config",),
3034
+ )
3035
+
3036
+ project: Optional['Project'] = None
3037
+ name: Optional[str] = None
2949
3038
  description: Optional[str] = None
2950
- taxon_path: Optional[str] = Field(None, alias="taxonPath")
2951
- taxonomy_ref: Optional[str] = Field(None, alias="taxonomyRef")
3039
+ metadata: Optional[TaskTemplateMetadata] = None
2952
3040
 
2953
3041
 
2954
3042
  class TaskMetadata(BaseModel):
@@ -2959,10 +3047,19 @@ class TaskMetadata(BaseModel):
2959
3047
  protected_namespaces=("model_config",),
2960
3048
  )
2961
3049
 
2962
- field_values: Dict[str, Any] = Field(default_factory=dict)
2963
- fields: List[Option] = Field(default_factory=list)
2964
- check_items: List[TaskCheckItem] = Field(default_factory=list)
2965
- document_store_ref: Optional[str] = None
3050
+ properties: Dict[str, Any] = Field(default_factory=dict)
3051
+
3052
+
3053
+ class TaskDocumentFamily(BaseModel):
3054
+ model_config = ConfigDict(
3055
+ populate_by_name=True,
3056
+ use_enum_values=True,
3057
+ arbitrary_types_allowed=True,
3058
+ protected_namespaces=("model_config",),
3059
+ )
3060
+
3061
+ task: Optional['Task'] = None
3062
+ document_family: Optional['DocumentFamily'] = Field(None, alias="documentFamily")
2966
3063
 
2967
3064
 
2968
3065
  class Task(BaseModel):
@@ -2973,16 +3070,19 @@ class Task(BaseModel):
2973
3070
  protected_namespaces=("model_config",),
2974
3071
  )
2975
3072
 
2976
- project: Optional['Project'] = Field(None)
2977
- title: Optional[str] = Field(None)
2978
- template: Optional[bool] = Field(None)
2979
- description: Optional[str] = Field(None)
2980
- metadata: Optional['TaskMetadata'] = Field(None)
3073
+ project: Optional['Project'] = None
3074
+ title: Optional[str] = None
3075
+ description: Optional[str] = None
3076
+ metadata: Optional[TaskMetadata] = None
3077
+ template: Optional[TaskTemplate] = None
2981
3078
  due_date: Optional[StandardDateTime] = Field(None, alias="dueDate")
2982
3079
  completed_date: Optional[StandardDateTime] = Field(None, alias="completedDate")
2983
- status: Optional['TaskStatus'] = Field(None)
2984
- assignee: Optional['User'] = Field(None)
2985
-
3080
+ status: Optional[TaskStatus] = None
3081
+ assignee: Optional['User'] = None
3082
+ task_activity: List[TaskActivity] = Field(default_factory=list, alias="taskActivity")
3083
+ task_document_families: List[TaskDocumentFamily] = Field(default_factory=list, alias="taskDocumentFamilies")
3084
+ search_text: Optional[str] = Field(None, alias="searchText")
3085
+ tags: List[TaskTag] = Field(default_factory=list)
2986
3086
 
2987
3087
  class FeatureSet(BaseModel):
2988
3088
  """
@@ -86,7 +86,8 @@ from kodexa.model.objects import (
86
86
  PageExtensionPack,
87
87
  PageOrganization,
88
88
  DocumentFamilyStatistics, MessageContext, PagePrompt, Prompt, GuidanceSet, PageGuidanceSet, DocumentEmbedding,
89
- DocumentExternalData, Task, PageTask, RetainedGuidance, PageRetainedGuidance,
89
+ DocumentExternalData, Task, PageTask, RetainedGuidance, PageRetainedGuidance, TaskTemplate, TaskStatus,
90
+ TaskActivity, TaskDocumentFamily, TaskTag,
90
91
  )
91
92
 
92
93
  logger = logging.getLogger()
@@ -1174,8 +1175,166 @@ class PagePipelineEndpoint(PagePipeline, PageEndpoint):
1174
1175
 
1175
1176
 
1176
1177
  class PageTaskEndpoint(PageTask, PageEndpoint):
1178
+ """
1179
+ Represents a page of tasks.
1180
+ """
1181
+ def get_type(self) -> Optional[str]:
1182
+ return "tasks"
1183
+
1184
+ class PageTaskActivityEndpoint(PageEndpoint):
1185
+ """
1186
+ Represents a page of task activities.
1187
+ """
1188
+ def get_type(self) -> Optional[str]:
1189
+ return "taskActivities"
1190
+
1191
+ class PageTaskDocumentFamilyEndpoint(PageEndpoint):
1192
+ """
1193
+ Represents a page of task document families.
1194
+ """
1177
1195
  def get_type(self) -> Optional[str]:
1178
- return "task"
1196
+ return "taskDocumentFamilies"
1197
+
1198
+ class PageTaskTagEndpoint(PageEndpoint):
1199
+ """
1200
+ Represents a page of task tags.
1201
+ """
1202
+ def get_type(self) -> Optional[str]:
1203
+ return "taskTags"
1204
+
1205
+ class TaskEndpoint(EntityEndpoint, Task):
1206
+ """
1207
+ Represents a task endpoint.
1208
+ """
1209
+ def get_type(self) -> str:
1210
+ return "tasks"
1211
+
1212
+ def create_with_request(self, task: Task, task_template: Optional[TaskTemplate] = None, document_families: Optional[List[DocumentFamily]] = None):
1213
+ """Create a task with the given request."""
1214
+ url = "/api/tasks/createTaskWithRequest"
1215
+ response = self.client.post(url, body={
1216
+ "task": task.model_dump(mode="json", by_alias=True),
1217
+ "taskTemplate": task_template.model_dump(mode="json", by_alias=True) if task_template else None,
1218
+ "documentFamilies": [df.model_dump(mode="json", by_alias=True) for df in document_families] if document_families else None
1219
+ })
1220
+ return TaskEndpoint.model_validate(response.json()).set_client(self.client)
1221
+
1222
+ def update_status(self, status: TaskStatus):
1223
+ """Update the status of the task."""
1224
+ url = f"/api/tasks/{self.id}/status"
1225
+ response = self.client.put(url, body=status)
1226
+ return TaskEndpoint.model_validate(response.json()).set_client(self.client)
1227
+
1228
+ def remove_status(self):
1229
+ """Remove the task status."""
1230
+ url = f"/api/tasks/{self.id}/status"
1231
+ response = self.client.delete(url)
1232
+ return TaskEndpoint.model_validate(response.json()).set_client(self.client)
1233
+
1234
+ def update_assignee(self, assignee: User):
1235
+ """Update the assignee of the task."""
1236
+ url = f"/api/tasks/{self.id}/assignee"
1237
+ response = self.client.put(url, body=assignee.model_dump(mode="json", by_alias=True))
1238
+ return TaskEndpoint.model_validate(response.json()).set_client(self.client)
1239
+
1240
+ def remove_assignee(self):
1241
+ """Remove the task assignee."""
1242
+ url = f"/api/tasks/{self.id}/assignee"
1243
+ response = self.client.delete(url)
1244
+ return TaskEndpoint.model_validate(response.json()).set_client(self.client)
1245
+
1246
+ class TasksEndpoint(EntitiesEndpoint):
1247
+ """
1248
+ Represents tasks endpoints.
1249
+ """
1250
+ def get_type(self) -> str:
1251
+ return "tasks"
1252
+
1253
+ def get_instance_class(self, object_dict=None):
1254
+ return TaskEndpoint
1255
+
1256
+ def get_page_class(self, object_dict=None):
1257
+ return PageTaskEndpoint
1258
+
1259
+ class TaskTemplateEndpoint(EntityEndpoint, TaskTemplate):
1260
+ """
1261
+ Represents a task template endpoint.
1262
+ """
1263
+ def get_type(self) -> str:
1264
+ return "taskTemplates"
1265
+
1266
+ class TaskTemplatesEndpoint(EntitiesEndpoint):
1267
+ """
1268
+ Represents task templates endpoints.
1269
+ """
1270
+ def get_type(self) -> str:
1271
+ return "taskTemplates"
1272
+
1273
+ def get_instance_class(self, object_dict=None):
1274
+ return TaskTemplateEndpoint
1275
+
1276
+ def get_page_class(self, object_dict=None):
1277
+ return PageTaskTemplateEndpoint
1278
+
1279
+ class TaskActivityEndpoint(EntityEndpoint, TaskActivity):
1280
+ """
1281
+ Represents a task activity endpoint.
1282
+ """
1283
+ def get_type(self) -> str:
1284
+ return "taskActivities"
1285
+
1286
+ class TaskActivitiesEndpoint(EntitiesEndpoint):
1287
+ """
1288
+ Represents task activities endpoints.
1289
+ """
1290
+ def get_type(self) -> str:
1291
+ return "taskActivities"
1292
+
1293
+ def get_instance_class(self, object_dict=None):
1294
+ return TaskActivityEndpoint
1295
+
1296
+ def get_page_class(self, object_dict=None):
1297
+ return PageTaskActivityEndpoint
1298
+
1299
+ class TaskDocumentFamilyEndpoint(EntityEndpoint, TaskDocumentFamily):
1300
+ """
1301
+ Represents a task document family endpoint.
1302
+ """
1303
+ def get_type(self) -> str:
1304
+ return "taskDocumentFamilies"
1305
+
1306
+ class TaskDocumentFamiliesEndpoint(EntitiesEndpoint):
1307
+ """
1308
+ Represents task document families endpoints.
1309
+ """
1310
+ def get_type(self) -> str:
1311
+ return "taskDocumentFamilies"
1312
+
1313
+ def get_instance_class(self, object_dict=None):
1314
+ return TaskDocumentFamilyEndpoint
1315
+
1316
+ def get_page_class(self, object_dict=None):
1317
+ return PageTaskDocumentFamilyEndpoint
1318
+
1319
+ class TaskTagEndpoint(EntityEndpoint, TaskTag):
1320
+ """
1321
+ Represents a task tag endpoint.
1322
+ """
1323
+ def get_type(self) -> str:
1324
+ return "taskTags"
1325
+
1326
+ class TaskTagsEndpoint(EntitiesEndpoint):
1327
+ """
1328
+ Represents task tags endpoints.
1329
+ """
1330
+ def get_type(self) -> str:
1331
+ return "taskTags"
1332
+
1333
+ def get_instance_class(self, object_dict=None):
1334
+ return TaskTagEndpoint
1335
+
1336
+ def get_page_class(self, object_dict=None):
1337
+ return PageTaskTagEndpoint
1179
1338
 
1180
1339
 
1181
1340
  class PageRetainedGuidanceEndpoint(PageRetainedGuidance, PageEndpoint):
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "kodexa"
3
- version = "7.4.413159458494"
3
+ version = "7.4.413228679383"
4
4
  description = "Python SDK for the Kodexa Platform"
5
5
  authors = ["Austin Redenbaugh <austin@kodexa.com>", "Philip Dodds <philip@kodexa.com>", "Romar Cablao <rcablao@kodexa.com>", "Amadea Paula Dodds <amadeapaula@kodexa.com>"]
6
6
  readme = "README.md"