minikai 0.1.0__tar.gz → 0.1.2__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.

Potentially problematic release.


This version of minikai might be problematic. Click here for more details.

Files changed (90) hide show
  1. {minikai-0.1.0 → minikai-0.1.2}/PKG-INFO +2 -2
  2. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/__init__.py +4 -2
  3. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/add_attachments_body.py +19 -9
  4. minikai-0.1.2/minikai/models/document_file_metadata_dto.py +52 -0
  5. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record.py +14 -11
  6. minikai-0.1.2/minikai/models/record_tag.py +132 -0
  7. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/update_attachments_body.py +19 -9
  8. {minikai-0.1.0 → minikai-0.1.2}/pyproject.toml +2 -2
  9. minikai-0.1.0/minikai/models/record_tags.py +0 -44
  10. {minikai-0.1.0 → minikai-0.1.2}/CHANGELOG.md +0 -0
  11. {minikai-0.1.0 → minikai-0.1.2}/README.md +0 -0
  12. {minikai-0.1.0 → minikai-0.1.2}/minikai/__init__.py +0 -0
  13. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/__init__.py +0 -0
  14. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/__init__.py +0 -0
  15. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/add_minis_to_group.py +0 -0
  16. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/add_users_to_group.py +0 -0
  17. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/create_group.py +0 -0
  18. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/delete_group.py +0 -0
  19. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/get_group.py +0 -0
  20. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/get_group_minis.py +0 -0
  21. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/get_group_users.py +0 -0
  22. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/get_groups.py +0 -0
  23. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/remove_minis_from_group.py +0 -0
  24. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/remove_users_from_group.py +0 -0
  25. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/groups/update_group.py +0 -0
  26. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/__init__.py +0 -0
  27. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/create_mini.py +0 -0
  28. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/delete_mini.py +0 -0
  29. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/get_external_mini.py +0 -0
  30. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/get_minis.py +0 -0
  31. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/patch_mini.py +0 -0
  32. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/minis/update_mini.py +0 -0
  33. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/__init__.py +0 -0
  34. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/add_attachments.py +0 -0
  35. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/add_relations.py +0 -0
  36. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/create_record.py +0 -0
  37. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/delete_record.py +0 -0
  38. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/get_records_by_external.py +0 -0
  39. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/remove_attachments.py +0 -0
  40. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/remove_relations.py +0 -0
  41. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/update_attachments.py +0 -0
  42. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/update_record.py +0 -0
  43. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/records/update_relations.py +0 -0
  44. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/users/__init__.py +0 -0
  45. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/users/delete_api_users_minis.py +0 -0
  46. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/users/get_api_users_minis.py +0 -0
  47. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/users/get_users.py +0 -0
  48. {minikai-0.1.0 → minikai-0.1.2}/minikai/api/users/post_api_users_minis.py +0 -0
  49. {minikai-0.1.0 → minikai-0.1.2}/minikai/client.py +0 -0
  50. {minikai-0.1.0 → minikai-0.1.2}/minikai/errors.py +0 -0
  51. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/create_group_command.py +0 -0
  52. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/create_mini_command.py +0 -0
  53. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/create_record_command.py +0 -0
  54. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/create_record_command_tags.py +0 -0
  55. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/document_file_dto.py +0 -0
  56. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/form_field.py +0 -0
  57. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/form_field_dto.py +0 -0
  58. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/form_field_type.py +0 -0
  59. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/group_dto.py +0 -0
  60. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/http_validation_problem_details.py +0 -0
  61. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/http_validation_problem_details_errors.py +0 -0
  62. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/json_node.py +0 -0
  63. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/json_node_options.py +0 -0
  64. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/mini_dto.py +0 -0
  65. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/mini_template_dto.py +0 -0
  66. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/paginated_list_of_record_dto.py +0 -0
  67. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/patch_mini_command.py +0 -0
  68. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/problem_details.py +0 -0
  69. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_attachment.py +0 -0
  70. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_attachment_dto.py +0 -0
  71. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_attachment_dto_metadata_type_0.py +0 -0
  72. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_attachment_metadata_type_0.py +0 -0
  73. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_authorization.py +0 -0
  74. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_authorization_dto.py +0 -0
  75. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_dto.py +0 -0
  76. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_dto_tags.py +0 -0
  77. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_relation.py +0 -0
  78. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/record_relation_dto.py +0 -0
  79. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/slim_mini_dto.py +0 -0
  80. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/tool_dto.py +0 -0
  81. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/update_group_command.py +0 -0
  82. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/update_mini_command.py +0 -0
  83. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/update_mini_template_workspaces_command.py +0 -0
  84. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/update_record_command.py +0 -0
  85. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/update_record_command_tags.py +0 -0
  86. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/user_dto.py +0 -0
  87. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/user_to_mini_dto.py +0 -0
  88. {minikai-0.1.0 → minikai-0.1.2}/minikai/models/workspace_dto.py +0 -0
  89. {minikai-0.1.0 → minikai-0.1.2}/minikai/py.typed +0 -0
  90. {minikai-0.1.0 → minikai-0.1.2}/minikai/types.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: minikai
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: A client library for accessing Minikai API
5
5
  Requires-Dist: httpx>=0.23.0,<0.29.0
6
6
  Requires-Dist: attrs>=22.2.0
7
7
  Requires-Dist: python-dateutil>=2.8.0,<3
8
- Requires-Python: >=3.11
8
+ Requires-Python: >=3.9, <4.0
9
9
  Description-Content-Type: text/markdown
10
10
 
11
11
  # minikai
@@ -6,6 +6,7 @@ from .create_mini_command import CreateMiniCommand
6
6
  from .create_record_command import CreateRecordCommand
7
7
  from .create_record_command_tags import CreateRecordCommandTags
8
8
  from .document_file_dto import DocumentFileDto
9
+ from .document_file_metadata_dto import DocumentFileMetadataDto
9
10
  from .form_field import FormField
10
11
  from .form_field_dto import FormFieldDto
11
12
  from .form_field_type import FormFieldType
@@ -30,7 +31,7 @@ from .record_dto import RecordDto
30
31
  from .record_dto_tags import RecordDtoTags
31
32
  from .record_relation import RecordRelation
32
33
  from .record_relation_dto import RecordRelationDto
33
- from .record_tags import RecordTags
34
+ from .record_tag import RecordTag
34
35
  from .slim_mini_dto import SlimMiniDto
35
36
  from .tool_dto import ToolDto
36
37
  from .update_attachments_body import UpdateAttachmentsBody
@@ -50,6 +51,7 @@ __all__ = (
50
51
  "CreateRecordCommand",
51
52
  "CreateRecordCommandTags",
52
53
  "DocumentFileDto",
54
+ "DocumentFileMetadataDto",
53
55
  "FormField",
54
56
  "FormFieldDto",
55
57
  "FormFieldType",
@@ -74,7 +76,7 @@ __all__ = (
74
76
  "RecordDtoTags",
75
77
  "RecordRelation",
76
78
  "RecordRelationDto",
77
- "RecordTags",
79
+ "RecordTag",
78
80
  "SlimMiniDto",
79
81
  "ToolDto",
80
82
  "UpdateAttachmentsBody",
@@ -1,11 +1,12 @@
1
1
  from collections.abc import Mapping
2
+ from io import BytesIO
2
3
  from typing import Any, TypeVar, Union, cast
3
4
 
4
5
  from attrs import define as _attrs_define
5
6
  from attrs import field as _attrs_field
6
7
 
7
8
  from .. import types
8
- from ..types import UNSET, Unset
9
+ from ..types import UNSET, File, FileTypes, Unset
9
10
 
10
11
  T = TypeVar("T", bound="AddAttachmentsBody")
11
12
 
@@ -14,18 +15,22 @@ T = TypeVar("T", bound="AddAttachmentsBody")
14
15
  class AddAttachmentsBody:
15
16
  """
16
17
  Attributes:
17
- files (Union[None, Unset, list[Any]]):
18
+ files (Union[None, Unset, list[File]]):
18
19
  """
19
20
 
20
- files: Union[None, Unset, list[Any]] = UNSET
21
+ files: Union[None, Unset, list[File]] = UNSET
21
22
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
23
 
23
24
  def to_dict(self) -> dict[str, Any]:
24
- files: Union[None, Unset, list[Any]]
25
+ files: Union[None, Unset, list[FileTypes]]
25
26
  if isinstance(self.files, Unset):
26
27
  files = UNSET
27
28
  elif isinstance(self.files, list):
28
- files = self.files
29
+ files = []
30
+ for files_type_0_item_data in self.files:
31
+ files_type_0_item = files_type_0_item_data.to_tuple()
32
+
33
+ files.append(files_type_0_item)
29
34
 
30
35
  else:
31
36
  files = self.files
@@ -44,7 +49,7 @@ class AddAttachmentsBody:
44
49
  if not isinstance(self.files, Unset):
45
50
  if isinstance(self.files, list):
46
51
  for files_type_0_item_element in self.files:
47
- files.append(("files", (None, str(files_type_0_item_element).encode(), "text/plain")))
52
+ files.append(("files", files_type_0_item_element.to_tuple()))
48
53
  else:
49
54
  files.append(("files", (None, str(self.files).encode(), "text/plain")))
50
55
 
@@ -57,7 +62,7 @@ class AddAttachmentsBody:
57
62
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
63
  d = dict(src_dict)
59
64
 
60
- def _parse_files(data: object) -> Union[None, Unset, list[Any]]:
65
+ def _parse_files(data: object) -> Union[None, Unset, list[File]]:
61
66
  if data is None:
62
67
  return data
63
68
  if isinstance(data, Unset):
@@ -65,12 +70,17 @@ class AddAttachmentsBody:
65
70
  try:
66
71
  if not isinstance(data, list):
67
72
  raise TypeError()
68
- files_type_0 = cast(list[Any], data)
73
+ files_type_0 = []
74
+ _files_type_0 = data
75
+ for files_type_0_item_data in _files_type_0:
76
+ files_type_0_item = File(payload=BytesIO(files_type_0_item_data))
77
+
78
+ files_type_0.append(files_type_0_item)
69
79
 
70
80
  return files_type_0
71
81
  except: # noqa: E722
72
82
  pass
73
- return cast(Union[None, Unset, list[Any]], data)
83
+ return cast(Union[None, Unset, list[File]], data)
74
84
 
75
85
  files = _parse_files(d.pop("files", UNSET))
76
86
 
@@ -0,0 +1,52 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="DocumentFileMetadataDto")
9
+
10
+
11
+ @_attrs_define
12
+ class DocumentFileMetadataDto:
13
+ """
14
+ Attributes:
15
+ content_hash (Union[None, Unset, str]):
16
+ """
17
+
18
+ content_hash: Union[None, Unset, str] = UNSET
19
+
20
+ def to_dict(self) -> dict[str, Any]:
21
+ content_hash: Union[None, Unset, str]
22
+ if isinstance(self.content_hash, Unset):
23
+ content_hash = UNSET
24
+ else:
25
+ content_hash = self.content_hash
26
+
27
+ field_dict: dict[str, Any] = {}
28
+
29
+ field_dict.update({})
30
+ if content_hash is not UNSET:
31
+ field_dict["contentHash"] = content_hash
32
+
33
+ return field_dict
34
+
35
+ @classmethod
36
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
37
+ d = dict(src_dict)
38
+
39
+ def _parse_content_hash(data: object) -> Union[None, Unset, str]:
40
+ if data is None:
41
+ return data
42
+ if isinstance(data, Unset):
43
+ return data
44
+ return cast(Union[None, Unset, str], data)
45
+
46
+ content_hash = _parse_content_hash(d.pop("contentHash", UNSET))
47
+
48
+ document_file_metadata_dto = cls(
49
+ content_hash=content_hash,
50
+ )
51
+
52
+ return document_file_metadata_dto
@@ -12,7 +12,7 @@ if TYPE_CHECKING:
12
12
  from ..models.record_attachment import RecordAttachment
13
13
  from ..models.record_authorization import RecordAuthorization
14
14
  from ..models.record_relation import RecordRelation
15
- from ..models.record_tags import RecordTags
15
+ from ..models.record_tag import RecordTag
16
16
 
17
17
 
18
18
  T = TypeVar("T", bound="Record")
@@ -40,7 +40,7 @@ class Record:
40
40
  relations (Union[Unset, list['RecordRelation']]):
41
41
  external_uri (Union[None, Unset, str]):
42
42
  labels (Union[Unset, list[str]]):
43
- tags (Union[Unset, RecordTags]):
43
+ tags (Union[Unset, list['RecordTag']]):
44
44
  field_ts (Union[Unset, int]):
45
45
  """
46
46
 
@@ -62,7 +62,7 @@ class Record:
62
62
  relations: Union[Unset, list["RecordRelation"]] = UNSET
63
63
  external_uri: Union[None, Unset, str] = UNSET
64
64
  labels: Union[Unset, list[str]] = UNSET
65
- tags: Union[Unset, "RecordTags"] = UNSET
65
+ tags: Union[Unset, list["RecordTag"]] = UNSET
66
66
  field_ts: Union[Unset, int] = UNSET
67
67
 
68
68
  def to_dict(self) -> dict[str, Any]:
@@ -154,9 +154,12 @@ class Record:
154
154
  if not isinstance(self.labels, Unset):
155
155
  labels = self.labels
156
156
 
157
- tags: Union[Unset, dict[str, Any]] = UNSET
157
+ tags: Union[Unset, list[dict[str, Any]]] = UNSET
158
158
  if not isinstance(self.tags, Unset):
159
- tags = self.tags.to_dict()
159
+ tags = []
160
+ for tags_item_data in self.tags:
161
+ tags_item = tags_item_data.to_dict()
162
+ tags.append(tags_item)
160
163
 
161
164
  field_ts = self.field_ts
162
165
 
@@ -212,7 +215,7 @@ class Record:
212
215
  from ..models.record_attachment import RecordAttachment
213
216
  from ..models.record_authorization import RecordAuthorization
214
217
  from ..models.record_relation import RecordRelation
215
- from ..models.record_tags import RecordTags
218
+ from ..models.record_tag import RecordTag
216
219
 
217
220
  d = dict(src_dict)
218
221
  id = d.pop("id", UNSET)
@@ -344,12 +347,12 @@ class Record:
344
347
 
345
348
  labels = cast(list[str], d.pop("labels", UNSET))
346
349
 
350
+ tags = []
347
351
  _tags = d.pop("tags", UNSET)
348
- tags: Union[Unset, RecordTags]
349
- if isinstance(_tags, Unset):
350
- tags = UNSET
351
- else:
352
- tags = RecordTags.from_dict(_tags)
352
+ for tags_item_data in _tags or []:
353
+ tags_item = RecordTag.from_dict(tags_item_data)
354
+
355
+ tags.append(tags_item)
353
356
 
354
357
  field_ts = d.pop("_ts", UNSET)
355
358
 
@@ -0,0 +1,132 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="RecordTag")
11
+
12
+
13
+ @_attrs_define
14
+ class RecordTag:
15
+ """
16
+ Attributes:
17
+ key (Union[Unset, str]):
18
+ value_string (Union[None, Unset, str]):
19
+ value_number (Union[None, Unset, float]):
20
+ value_boolean (Union[None, Unset, bool]):
21
+ value_date (Union[None, Unset, datetime.datetime]):
22
+ """
23
+
24
+ key: Union[Unset, str] = UNSET
25
+ value_string: Union[None, Unset, str] = UNSET
26
+ value_number: Union[None, Unset, float] = UNSET
27
+ value_boolean: Union[None, Unset, bool] = UNSET
28
+ value_date: Union[None, Unset, datetime.datetime] = UNSET
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ key = self.key
32
+
33
+ value_string: Union[None, Unset, str]
34
+ if isinstance(self.value_string, Unset):
35
+ value_string = UNSET
36
+ else:
37
+ value_string = self.value_string
38
+
39
+ value_number: Union[None, Unset, float]
40
+ if isinstance(self.value_number, Unset):
41
+ value_number = UNSET
42
+ else:
43
+ value_number = self.value_number
44
+
45
+ value_boolean: Union[None, Unset, bool]
46
+ if isinstance(self.value_boolean, Unset):
47
+ value_boolean = UNSET
48
+ else:
49
+ value_boolean = self.value_boolean
50
+
51
+ value_date: Union[None, Unset, str]
52
+ if isinstance(self.value_date, Unset):
53
+ value_date = UNSET
54
+ elif isinstance(self.value_date, datetime.datetime):
55
+ value_date = self.value_date.isoformat()
56
+ else:
57
+ value_date = self.value_date
58
+
59
+ field_dict: dict[str, Any] = {}
60
+
61
+ field_dict.update({})
62
+ if key is not UNSET:
63
+ field_dict["key"] = key
64
+ if value_string is not UNSET:
65
+ field_dict["valueString"] = value_string
66
+ if value_number is not UNSET:
67
+ field_dict["valueNumber"] = value_number
68
+ if value_boolean is not UNSET:
69
+ field_dict["valueBoolean"] = value_boolean
70
+ if value_date is not UNSET:
71
+ field_dict["valueDate"] = value_date
72
+
73
+ return field_dict
74
+
75
+ @classmethod
76
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
77
+ d = dict(src_dict)
78
+ key = d.pop("key", UNSET)
79
+
80
+ def _parse_value_string(data: object) -> Union[None, Unset, str]:
81
+ if data is None:
82
+ return data
83
+ if isinstance(data, Unset):
84
+ return data
85
+ return cast(Union[None, Unset, str], data)
86
+
87
+ value_string = _parse_value_string(d.pop("valueString", UNSET))
88
+
89
+ def _parse_value_number(data: object) -> Union[None, Unset, float]:
90
+ if data is None:
91
+ return data
92
+ if isinstance(data, Unset):
93
+ return data
94
+ return cast(Union[None, Unset, float], data)
95
+
96
+ value_number = _parse_value_number(d.pop("valueNumber", UNSET))
97
+
98
+ def _parse_value_boolean(data: object) -> Union[None, Unset, bool]:
99
+ if data is None:
100
+ return data
101
+ if isinstance(data, Unset):
102
+ return data
103
+ return cast(Union[None, Unset, bool], data)
104
+
105
+ value_boolean = _parse_value_boolean(d.pop("valueBoolean", UNSET))
106
+
107
+ def _parse_value_date(data: object) -> Union[None, Unset, datetime.datetime]:
108
+ if data is None:
109
+ return data
110
+ if isinstance(data, Unset):
111
+ return data
112
+ try:
113
+ if not isinstance(data, str):
114
+ raise TypeError()
115
+ value_date_type_0 = isoparse(data)
116
+
117
+ return value_date_type_0
118
+ except: # noqa: E722
119
+ pass
120
+ return cast(Union[None, Unset, datetime.datetime], data)
121
+
122
+ value_date = _parse_value_date(d.pop("valueDate", UNSET))
123
+
124
+ record_tag = cls(
125
+ key=key,
126
+ value_string=value_string,
127
+ value_number=value_number,
128
+ value_boolean=value_boolean,
129
+ value_date=value_date,
130
+ )
131
+
132
+ return record_tag
@@ -1,11 +1,12 @@
1
1
  from collections.abc import Mapping
2
+ from io import BytesIO
2
3
  from typing import Any, TypeVar, Union, cast
3
4
 
4
5
  from attrs import define as _attrs_define
5
6
  from attrs import field as _attrs_field
6
7
 
7
8
  from .. import types
8
- from ..types import UNSET, Unset
9
+ from ..types import UNSET, File, FileTypes, Unset
9
10
 
10
11
  T = TypeVar("T", bound="UpdateAttachmentsBody")
11
12
 
@@ -14,18 +15,22 @@ T = TypeVar("T", bound="UpdateAttachmentsBody")
14
15
  class UpdateAttachmentsBody:
15
16
  """
16
17
  Attributes:
17
- files (Union[None, Unset, list[Any]]):
18
+ files (Union[None, Unset, list[File]]):
18
19
  """
19
20
 
20
- files: Union[None, Unset, list[Any]] = UNSET
21
+ files: Union[None, Unset, list[File]] = UNSET
21
22
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
23
 
23
24
  def to_dict(self) -> dict[str, Any]:
24
- files: Union[None, Unset, list[Any]]
25
+ files: Union[None, Unset, list[FileTypes]]
25
26
  if isinstance(self.files, Unset):
26
27
  files = UNSET
27
28
  elif isinstance(self.files, list):
28
- files = self.files
29
+ files = []
30
+ for files_type_0_item_data in self.files:
31
+ files_type_0_item = files_type_0_item_data.to_tuple()
32
+
33
+ files.append(files_type_0_item)
29
34
 
30
35
  else:
31
36
  files = self.files
@@ -44,7 +49,7 @@ class UpdateAttachmentsBody:
44
49
  if not isinstance(self.files, Unset):
45
50
  if isinstance(self.files, list):
46
51
  for files_type_0_item_element in self.files:
47
- files.append(("files", (None, str(files_type_0_item_element).encode(), "text/plain")))
52
+ files.append(("files", files_type_0_item_element.to_tuple()))
48
53
  else:
49
54
  files.append(("files", (None, str(self.files).encode(), "text/plain")))
50
55
 
@@ -57,7 +62,7 @@ class UpdateAttachmentsBody:
57
62
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
63
  d = dict(src_dict)
59
64
 
60
- def _parse_files(data: object) -> Union[None, Unset, list[Any]]:
65
+ def _parse_files(data: object) -> Union[None, Unset, list[File]]:
61
66
  if data is None:
62
67
  return data
63
68
  if isinstance(data, Unset):
@@ -65,12 +70,17 @@ class UpdateAttachmentsBody:
65
70
  try:
66
71
  if not isinstance(data, list):
67
72
  raise TypeError()
68
- files_type_0 = cast(list[Any], data)
73
+ files_type_0 = []
74
+ _files_type_0 = data
75
+ for files_type_0_item_data in _files_type_0:
76
+ files_type_0_item = File(payload=BytesIO(files_type_0_item_data))
77
+
78
+ files_type_0.append(files_type_0_item)
69
79
 
70
80
  return files_type_0
71
81
  except: # noqa: E722
72
82
  pass
73
- return cast(Union[None, Unset, list[Any]], data)
83
+ return cast(Union[None, Unset, list[File]], data)
74
84
 
75
85
  files = _parse_files(d.pop("files", UNSET))
76
86
 
@@ -1,9 +1,9 @@
1
1
  [project]
2
2
  name = "minikai"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "A client library for accessing Minikai API"
5
5
  authors = []
6
- requires-python = ">=3.11"
6
+ requires-python = ">=3.9,<4.0"
7
7
  readme = "README.md"
8
8
  dependencies = [
9
9
  "httpx>=0.23.0,<0.29.0",
@@ -1,44 +0,0 @@
1
- from collections.abc import Mapping
2
- from typing import Any, TypeVar
3
-
4
- from attrs import define as _attrs_define
5
- from attrs import field as _attrs_field
6
-
7
- T = TypeVar("T", bound="RecordTags")
8
-
9
-
10
- @_attrs_define
11
- class RecordTags:
12
- """ """
13
-
14
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
-
16
- def to_dict(self) -> dict[str, Any]:
17
- field_dict: dict[str, Any] = {}
18
- field_dict.update(self.additional_properties)
19
-
20
- return field_dict
21
-
22
- @classmethod
23
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
- d = dict(src_dict)
25
- record_tags = cls()
26
-
27
- record_tags.additional_properties = d
28
- return record_tags
29
-
30
- @property
31
- def additional_keys(self) -> list[str]:
32
- return list(self.additional_properties.keys())
33
-
34
- def __getitem__(self, key: str) -> Any:
35
- return self.additional_properties[key]
36
-
37
- def __setitem__(self, key: str, value: Any) -> None:
38
- self.additional_properties[key] = value
39
-
40
- def __delitem__(self, key: str) -> None:
41
- del self.additional_properties[key]
42
-
43
- def __contains__(self, key: str) -> bool:
44
- return key in self.additional_properties
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes