agenta 0.24.1a0__py3-none-any.whl → 0.24.2a1__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.

Potentially problematic release.


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

Files changed (132) hide show
  1. agenta/cli/variant_commands.py +15 -10
  2. agenta/client/Readme.md +72 -64
  3. agenta/client/api.py +1 -1
  4. agenta/client/backend/__init__.py +14 -9
  5. agenta/client/backend/apps/client.py +1669 -0
  6. agenta/client/backend/bases/client.py +190 -0
  7. agenta/client/backend/client.py +2102 -868
  8. agenta/client/backend/configs/client.py +598 -0
  9. agenta/client/backend/containers/client.py +638 -0
  10. agenta/client/backend/{resources/containers → containers}/types/container_templates_response.py +1 -2
  11. agenta/client/backend/core/__init__.py +29 -0
  12. agenta/client/backend/core/client_wrapper.py +42 -9
  13. agenta/client/backend/core/datetime_utils.py +1 -1
  14. agenta/client/backend/core/file.py +43 -0
  15. agenta/client/backend/core/http_client.py +553 -0
  16. agenta/client/backend/core/jsonable_encoder.py +33 -39
  17. agenta/client/backend/core/pydantic_utilities.py +212 -0
  18. agenta/client/backend/core/query_encoder.py +60 -0
  19. agenta/client/backend/core/remove_none_from_dict.py +2 -2
  20. agenta/client/backend/core/request_options.py +32 -0
  21. agenta/client/backend/core/serialization.py +179 -0
  22. agenta/client/backend/environments/client.py +190 -0
  23. agenta/client/backend/evaluations/client.py +1462 -0
  24. agenta/client/backend/evaluators/client.py +911 -0
  25. agenta/client/backend/observability/client.py +1271 -0
  26. agenta/client/backend/testsets/client.py +1132 -0
  27. agenta/client/backend/types/__init__.py +8 -6
  28. agenta/client/backend/types/aggregated_result.py +14 -29
  29. agenta/client/backend/types/aggregated_result_evaluator_config.py +1 -2
  30. agenta/client/backend/types/app.py +13 -28
  31. agenta/client/backend/types/app_variant_response.py +21 -37
  32. agenta/client/backend/types/app_variant_revision.py +17 -32
  33. agenta/client/backend/types/base_output.py +13 -28
  34. agenta/client/backend/types/body_import_testset.py +16 -31
  35. agenta/client/backend/types/config_db.py +16 -31
  36. agenta/client/backend/types/correct_answer.py +22 -0
  37. agenta/client/backend/types/create_app_output.py +13 -28
  38. agenta/client/backend/types/create_span.py +33 -50
  39. agenta/client/backend/types/create_trace_response.py +16 -31
  40. agenta/client/backend/types/docker_env_vars.py +13 -28
  41. agenta/client/backend/types/environment_output.py +21 -36
  42. agenta/client/backend/types/environment_output_extended.py +21 -36
  43. agenta/client/backend/types/environment_revision.py +18 -33
  44. agenta/client/backend/types/error.py +16 -31
  45. agenta/client/backend/types/evaluation.py +20 -34
  46. agenta/client/backend/types/evaluation_scenario.py +18 -33
  47. agenta/client/backend/types/evaluation_scenario_input.py +16 -31
  48. agenta/client/backend/types/evaluation_scenario_output.py +18 -33
  49. agenta/client/backend/types/evaluation_scenario_result.py +14 -29
  50. agenta/client/backend/types/evaluation_scenario_score_update.py +13 -28
  51. agenta/client/backend/types/evaluation_status_enum.py +11 -33
  52. agenta/client/backend/types/evaluation_type.py +3 -21
  53. agenta/client/backend/types/evaluator.py +18 -32
  54. agenta/client/backend/types/evaluator_config.py +20 -33
  55. agenta/client/backend/types/get_config_response.py +16 -31
  56. agenta/client/backend/types/http_validation_error.py +14 -29
  57. agenta/client/backend/types/human_evaluation.py +17 -32
  58. agenta/client/backend/types/human_evaluation_scenario.py +21 -37
  59. agenta/client/backend/types/human_evaluation_scenario_input.py +13 -28
  60. agenta/client/backend/types/human_evaluation_scenario_output.py +13 -28
  61. agenta/client/backend/types/human_evaluation_scenario_update.py +26 -41
  62. agenta/client/backend/types/human_evaluation_update.py +14 -29
  63. agenta/client/backend/types/image.py +18 -33
  64. agenta/client/backend/types/invite_request.py +13 -28
  65. agenta/client/backend/types/list_api_keys_response.py +18 -33
  66. agenta/client/backend/types/llm_run_rate_limit.py +13 -28
  67. agenta/client/backend/types/llm_tokens.py +16 -31
  68. agenta/client/backend/types/lm_providers_enum.py +21 -0
  69. agenta/client/backend/types/new_human_evaluation.py +13 -28
  70. agenta/client/backend/types/new_testset.py +16 -31
  71. agenta/client/backend/types/organization.py +22 -36
  72. agenta/client/backend/types/organization_output.py +13 -28
  73. agenta/client/backend/types/outputs.py +5 -0
  74. agenta/client/backend/types/permission.py +36 -137
  75. agenta/client/backend/types/result.py +17 -32
  76. agenta/client/backend/types/simple_evaluation_output.py +13 -28
  77. agenta/client/backend/types/span.py +23 -38
  78. agenta/client/backend/types/span_detail.py +26 -40
  79. agenta/client/backend/types/span_status_code.py +1 -25
  80. agenta/client/backend/types/span_variant.py +16 -31
  81. agenta/client/backend/types/template.py +14 -29
  82. agenta/client/backend/types/template_image_info.py +21 -35
  83. agenta/client/backend/types/test_set_output_response.py +16 -32
  84. agenta/client/backend/types/test_set_simple_response.py +13 -28
  85. agenta/client/backend/types/trace_detail.py +26 -40
  86. agenta/client/backend/types/update_app_output.py +22 -0
  87. agenta/client/backend/types/uri.py +13 -28
  88. agenta/client/backend/types/validation_error.py +13 -28
  89. agenta/client/backend/types/variant_action.py +14 -29
  90. agenta/client/backend/types/variant_action_enum.py +1 -19
  91. agenta/client/backend/types/with_pagination.py +14 -30
  92. agenta/client/backend/types/workspace_member_response.py +14 -29
  93. agenta/client/backend/types/workspace_permission.py +18 -33
  94. agenta/client/backend/types/workspace_response.py +20 -35
  95. agenta/client/backend/types/workspace_role.py +11 -37
  96. agenta/client/backend/types/workspace_role_response.py +17 -32
  97. agenta/client/backend/variants/client.py +1447 -0
  98. agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +8 -0
  99. agenta/sdk/decorators/llm_entrypoint.py +8 -13
  100. agenta/sdk/tracing/llm_tracing.py +1 -1
  101. {agenta-0.24.1a0.dist-info → agenta-0.24.2a1.dist-info}/METADATA +1 -1
  102. agenta-0.24.2a1.dist-info/RECORD +175 -0
  103. agenta/client/backend/resources/__init__.py +0 -31
  104. agenta/client/backend/resources/apps/client.py +0 -977
  105. agenta/client/backend/resources/bases/client.py +0 -127
  106. agenta/client/backend/resources/configs/client.py +0 -377
  107. agenta/client/backend/resources/containers/client.py +0 -383
  108. agenta/client/backend/resources/environments/client.py +0 -131
  109. agenta/client/backend/resources/evaluations/client.py +0 -1008
  110. agenta/client/backend/resources/evaluators/client.py +0 -594
  111. agenta/client/backend/resources/observability/client.py +0 -1187
  112. agenta/client/backend/resources/testsets/client.py +0 -689
  113. agenta/client/backend/resources/variants/client.py +0 -796
  114. agenta/client/backend/resources/variants/types/add_variant_from_base_and_config_response.py +0 -7
  115. agenta/client/backend/types/evaluation_webhook.py +0 -36
  116. agenta/client/backend/types/feedback.py +0 -40
  117. agenta/client/backend/types/span_kind.py +0 -49
  118. agenta-0.24.1a0.dist-info/RECORD +0 -169
  119. /agenta/client/backend/{resources/apps → apps}/__init__.py +0 -0
  120. /agenta/client/backend/{resources/bases → bases}/__init__.py +0 -0
  121. /agenta/client/backend/{resources/configs → configs}/__init__.py +0 -0
  122. /agenta/client/backend/{resources/containers → containers}/__init__.py +0 -0
  123. /agenta/client/backend/{resources/containers → containers}/types/__init__.py +0 -0
  124. /agenta/client/backend/{resources/environments → environments}/__init__.py +0 -0
  125. /agenta/client/backend/{resources/evaluations → evaluations}/__init__.py +0 -0
  126. /agenta/client/backend/{resources/evaluators → evaluators}/__init__.py +0 -0
  127. /agenta/client/backend/{resources/observability → observability}/__init__.py +0 -0
  128. /agenta/client/backend/{resources/testsets → testsets}/__init__.py +0 -0
  129. /agenta/client/backend/{resources/variants → variants}/__init__.py +0 -0
  130. /agenta/client/backend/{resources/variants → variants}/types/__init__.py +0 -0
  131. {agenta-0.24.1a0.dist-info → agenta-0.24.2a1.dist-info}/WHEEL +0 -0
  132. {agenta-0.24.1a0.dist-info → agenta-0.24.2a1.dist-info}/entry_points.txt +0 -0
@@ -1,43 +1,29 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
-
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
5
+ import datetime as dt
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
12
8
 
13
9
 
14
- class TemplateImageInfo(pydantic.BaseModel):
10
+ class TemplateImageInfo(UniversalBaseModel):
15
11
  name: str
16
- size: typing.Optional[int]
17
- digest: typing.Optional[str]
12
+ size: typing.Optional[int] = None
13
+ digest: typing.Optional[str] = None
18
14
  title: str
19
15
  description: str
20
- last_pushed: typing.Optional[dt.datetime]
21
- repo_name: typing.Optional[str]
22
- template_uri: typing.Optional[str]
23
-
24
- def json(self, **kwargs: typing.Any) -> str:
25
- kwargs_with_defaults: typing.Any = {
26
- "by_alias": True,
27
- "exclude_unset": True,
28
- **kwargs,
29
- }
30
- return super().json(**kwargs_with_defaults)
31
-
32
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
33
- kwargs_with_defaults: typing.Any = {
34
- "by_alias": True,
35
- "exclude_unset": True,
36
- **kwargs,
37
- }
38
- return super().dict(**kwargs_with_defaults)
39
-
40
- class Config:
41
- frozen = True
42
- smart_union = True
43
- json_encoders = {dt.datetime: serialize_datetime}
16
+ last_pushed: typing.Optional[dt.datetime] = None
17
+ repo_name: typing.Optional[str] = None
18
+ template_uri: typing.Optional[str] = None
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
22
+ extra="allow", frozen=True
23
+ ) # type: ignore # Pydantic v2
24
+ else:
25
+
26
+ class Config:
27
+ frozen = True
28
+ smart_union = True
29
+ extra = pydantic.Extra.allow
@@ -1,39 +1,23 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import pydantic
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
6
  import typing
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class TestSetOutputResponse(pydantic.BaseModel):
9
+ class TestSetOutputResponse(UniversalBaseModel):
15
10
  id: str = pydantic.Field(alias="_id")
16
11
  name: str
17
- created_at: dt.datetime
18
-
19
- def json(self, **kwargs: typing.Any) -> str:
20
- kwargs_with_defaults: typing.Any = {
21
- "by_alias": True,
22
- "exclude_unset": True,
23
- **kwargs,
24
- }
25
- return super().json(**kwargs_with_defaults)
26
-
27
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
28
- kwargs_with_defaults: typing.Any = {
29
- "by_alias": True,
30
- "exclude_unset": True,
31
- **kwargs,
32
- }
33
- return super().dict(**kwargs_with_defaults)
34
-
35
- class Config:
36
- frozen = True
37
- smart_union = True
38
- allow_population_by_field_name = True
39
- json_encoders = {dt.datetime: serialize_datetime}
12
+ created_at: str
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -1,38 +1,23 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
5
  import typing
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class TestSetSimpleResponse(pydantic.BaseModel):
9
+ class TestSetSimpleResponse(UniversalBaseModel):
15
10
  id: str
16
11
  name: str
17
12
  created_at: str
18
13
 
19
- def json(self, **kwargs: typing.Any) -> str:
20
- kwargs_with_defaults: typing.Any = {
21
- "by_alias": True,
22
- "exclude_unset": True,
23
- **kwargs,
24
- }
25
- return super().json(**kwargs_with_defaults)
26
-
27
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
28
- kwargs_with_defaults: typing.Any = {
29
- "by_alias": True,
30
- "exclude_unset": True,
31
- **kwargs,
32
- }
33
- return super().dict(**kwargs_with_defaults)
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
18
+ else:
34
19
 
35
- class Config:
36
- frozen = True
37
- smart_union = True
38
- json_encoders = {dt.datetime: serialize_datetime}
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -1,52 +1,38 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
- from .span import Span
8
- from .span_kind import SpanKind
9
- from .span_status_code import SpanStatusCode
5
+ import datetime as dt
10
6
  from .span_variant import SpanVariant
11
-
12
- try:
13
- import pydantic.v1 as pydantic # type: ignore
14
- except ImportError:
15
- import pydantic # type: ignore
7
+ from .span_status_code import SpanStatusCode
8
+ from .span import Span
9
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
10
+ import pydantic
16
11
 
17
12
 
18
- class TraceDetail(pydantic.BaseModel):
13
+ class TraceDetail(UniversalBaseModel):
19
14
  id: str
20
15
  name: str
21
- parent_span_id: typing.Optional[str]
16
+ parent_span_id: typing.Optional[str] = None
22
17
  created_at: dt.datetime
23
18
  variant: SpanVariant
24
- environment: typing.Optional[str]
19
+ environment: typing.Optional[str] = None
25
20
  spankind: str
26
21
  status: SpanStatusCode
27
- metadata: typing.Dict[str, typing.Any]
28
- user_id: typing.Optional[str]
29
- children: typing.Optional[typing.List[Span]]
30
- content: typing.Dict[str, typing.Any]
31
- config: typing.Dict[str, typing.Any]
32
-
33
- def json(self, **kwargs: typing.Any) -> str:
34
- kwargs_with_defaults: typing.Any = {
35
- "by_alias": True,
36
- "exclude_unset": True,
37
- **kwargs,
38
- }
39
- return super().json(**kwargs_with_defaults)
40
-
41
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
42
- kwargs_with_defaults: typing.Any = {
43
- "by_alias": True,
44
- "exclude_unset": True,
45
- **kwargs,
46
- }
47
- return super().dict(**kwargs_with_defaults)
48
-
49
- class Config:
50
- frozen = True
51
- smart_union = True
52
- json_encoders = {dt.datetime: serialize_datetime}
22
+ metadata: typing.Dict[str, typing.Optional[typing.Any]]
23
+ trace_id: str
24
+ user_id: typing.Optional[str] = None
25
+ content: typing.Dict[str, typing.Optional[typing.Any]]
26
+ children: typing.Optional[typing.List[Span]] = None
27
+ config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
28
+
29
+ if IS_PYDANTIC_V2:
30
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
31
+ extra="allow", frozen=True
32
+ ) # type: ignore # Pydantic v2
33
+ else:
34
+
35
+ class Config:
36
+ frozen = True
37
+ smart_union = True
38
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
+ import typing
6
+ import pydantic
7
+
8
+
9
+ class UpdateAppOutput(UniversalBaseModel):
10
+ app_id: str
11
+ app_name: str
12
+
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -1,36 +1,21 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
5
  import typing
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class Uri(pydantic.BaseModel):
9
+ class Uri(UniversalBaseModel):
15
10
  uri: str
16
11
 
17
- def json(self, **kwargs: typing.Any) -> str:
18
- kwargs_with_defaults: typing.Any = {
19
- "by_alias": True,
20
- "exclude_unset": True,
21
- **kwargs,
22
- }
23
- return super().json(**kwargs_with_defaults)
24
-
25
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
26
- kwargs_with_defaults: typing.Any = {
27
- "by_alias": True,
28
- "exclude_unset": True,
29
- **kwargs,
30
- }
31
- return super().dict(**kwargs_with_defaults)
12
+ if IS_PYDANTIC_V2:
13
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
14
+ extra="allow", frozen=True
15
+ ) # type: ignore # Pydantic v2
16
+ else:
32
17
 
33
- class Config:
34
- frozen = True
35
- smart_union = True
36
- json_encoders = {dt.datetime: serialize_datetime}
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -1,39 +1,24 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
5
  from .validation_error_loc_item import ValidationErrorLocItem
8
-
9
- try:
10
- import pydantic.v1 as pydantic # type: ignore
11
- except ImportError:
12
- import pydantic # type: ignore
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
13
8
 
14
9
 
15
- class ValidationError(pydantic.BaseModel):
10
+ class ValidationError(UniversalBaseModel):
16
11
  loc: typing.List[ValidationErrorLocItem]
17
12
  msg: str
18
13
  type: str
19
14
 
20
- def json(self, **kwargs: typing.Any) -> str:
21
- kwargs_with_defaults: typing.Any = {
22
- "by_alias": True,
23
- "exclude_unset": True,
24
- **kwargs,
25
- }
26
- return super().json(**kwargs_with_defaults)
27
-
28
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
29
- kwargs_with_defaults: typing.Any = {
30
- "by_alias": True,
31
- "exclude_unset": True,
32
- **kwargs,
33
- }
34
- return super().dict(**kwargs_with_defaults)
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
19
+ else:
35
20
 
36
- class Config:
37
- frozen = True
38
- smart_union = True
39
- json_encoders = {dt.datetime: serialize_datetime}
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ extra = pydantic.Extra.allow
@@ -1,37 +1,22 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
4
- import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
3
+ from ..core.pydantic_utilities import UniversalBaseModel
7
4
  from .variant_action_enum import VariantActionEnum
8
-
9
- try:
10
- import pydantic.v1 as pydantic # type: ignore
11
- except ImportError:
12
- import pydantic # type: ignore
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import typing
7
+ import pydantic
13
8
 
14
9
 
15
- class VariantAction(pydantic.BaseModel):
10
+ class VariantAction(UniversalBaseModel):
16
11
  action: VariantActionEnum
17
12
 
18
- def json(self, **kwargs: typing.Any) -> str:
19
- kwargs_with_defaults: typing.Any = {
20
- "by_alias": True,
21
- "exclude_unset": True,
22
- **kwargs,
23
- }
24
- return super().json(**kwargs_with_defaults)
25
-
26
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
27
- kwargs_with_defaults: typing.Any = {
28
- "by_alias": True,
29
- "exclude_unset": True,
30
- **kwargs,
31
- }
32
- return super().dict(**kwargs_with_defaults)
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
17
+ else:
33
18
 
34
- class Config:
35
- frozen = True
36
- smart_union = True
37
- json_encoders = {dt.datetime: serialize_datetime}
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -1,23 +1,5 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import enum
4
3
  import typing
5
4
 
6
- T_Result = typing.TypeVar("T_Result")
7
-
8
-
9
- class VariantActionEnum(str, enum.Enum):
10
- """
11
- An enumeration.
12
- """
13
-
14
- START = "START"
15
- STOP = "STOP"
16
-
17
- def visit(
18
- self, start: typing.Callable[[], T_Result], stop: typing.Callable[[], T_Result]
19
- ) -> T_Result:
20
- if self is VariantActionEnum.START:
21
- return start()
22
- if self is VariantActionEnum.STOP:
23
- return stop()
5
+ VariantActionEnum = typing.Union[typing.Literal["START", "STOP"], typing.Any]
@@ -1,40 +1,24 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class WithPagination(pydantic.BaseModel):
15
- data: typing.List[typing.Any]
9
+ class WithPagination(UniversalBaseModel):
10
+ data: typing.List[typing.Optional[typing.Any]]
16
11
  total: int
17
12
  page: int
18
13
  page_size: int = pydantic.Field(alias="pageSize")
19
14
 
20
- def json(self, **kwargs: typing.Any) -> str:
21
- kwargs_with_defaults: typing.Any = {
22
- "by_alias": True,
23
- "exclude_unset": True,
24
- **kwargs,
25
- }
26
- return super().json(**kwargs_with_defaults)
27
-
28
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
29
- kwargs_with_defaults: typing.Any = {
30
- "by_alias": True,
31
- "exclude_unset": True,
32
- **kwargs,
33
- }
34
- return super().dict(**kwargs_with_defaults)
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
19
+ else:
35
20
 
36
- class Config:
37
- frozen = True
38
- smart_union = True
39
- allow_population_by_field_name = True
40
- json_encoders = {dt.datetime: serialize_datetime}
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ extra = pydantic.Extra.allow
@@ -1,38 +1,23 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
5
  from .workspace_permission import WorkspacePermission
8
-
9
- try:
10
- import pydantic.v1 as pydantic # type: ignore
11
- except ImportError:
12
- import pydantic # type: ignore
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
13
8
 
14
9
 
15
- class WorkspaceMemberResponse(pydantic.BaseModel):
16
- user: typing.Dict[str, typing.Any]
10
+ class WorkspaceMemberResponse(UniversalBaseModel):
11
+ user: typing.Dict[str, typing.Optional[typing.Any]]
17
12
  roles: typing.List[WorkspacePermission]
18
13
 
19
- def json(self, **kwargs: typing.Any) -> str:
20
- kwargs_with_defaults: typing.Any = {
21
- "by_alias": True,
22
- "exclude_unset": True,
23
- **kwargs,
24
- }
25
- return super().json(**kwargs_with_defaults)
26
-
27
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
28
- kwargs_with_defaults: typing.Any = {
29
- "by_alias": True,
30
- "exclude_unset": True,
31
- **kwargs,
32
- }
33
- return super().dict(**kwargs_with_defaults)
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
18
+ else:
34
19
 
35
- class Config:
36
- frozen = True
37
- smart_union = True
38
- json_encoders = {dt.datetime: serialize_datetime}
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -1,40 +1,25 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from .workspace_role import WorkspaceRole
4
5
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
6
  from .permission import Permission
8
- from .workspace_role import WorkspaceRole
9
-
10
- try:
11
- import pydantic.v1 as pydantic # type: ignore
12
- except ImportError:
13
- import pydantic # type: ignore
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
14
9
 
15
10
 
16
- class WorkspacePermission(pydantic.BaseModel):
11
+ class WorkspacePermission(UniversalBaseModel):
17
12
  role_name: WorkspaceRole
18
- role_description: typing.Optional[str]
19
- permissions: typing.Optional[typing.List[Permission]]
20
-
21
- def json(self, **kwargs: typing.Any) -> str:
22
- kwargs_with_defaults: typing.Any = {
23
- "by_alias": True,
24
- "exclude_unset": True,
25
- **kwargs,
26
- }
27
- return super().json(**kwargs_with_defaults)
28
-
29
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
30
- kwargs_with_defaults: typing.Any = {
31
- "by_alias": True,
32
- "exclude_unset": True,
33
- **kwargs,
34
- }
35
- return super().dict(**kwargs_with_defaults)
36
-
37
- class Config:
38
- frozen = True
39
- smart_union = True
40
- json_encoders = {dt.datetime: serialize_datetime}
13
+ role_description: typing.Optional[str] = None
14
+ permissions: typing.Optional[typing.List[Permission]] = None
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
18
+ extra="allow", frozen=True
19
+ ) # type: ignore # Pydantic v2
20
+ else:
21
+
22
+ class Config:
23
+ frozen = True
24
+ smart_union = True
25
+ extra = pydantic.Extra.allow