codeset 0.1.0a9__tar.gz → 0.1.0a10__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 codeset might be problematic. Click here for more details.

Files changed (93) hide show
  1. codeset-0.1.0a10/.release-please-manifest.json +3 -0
  2. {codeset-0.1.0a9 → codeset-0.1.0a10}/CHANGELOG.md +22 -0
  3. {codeset-0.1.0a9 → codeset-0.1.0a10}/PKG-INFO +5 -5
  4. {codeset-0.1.0a9 → codeset-0.1.0a10}/README.md +3 -3
  5. {codeset-0.1.0a9 → codeset-0.1.0a10}/pyproject.toml +2 -2
  6. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_base_client.py +9 -2
  7. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_models.py +8 -5
  8. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_version.py +1 -1
  9. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/sessions/verify_status_response.py +10 -1
  10. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_client.py +2 -2
  11. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_models.py +45 -0
  12. codeset-0.1.0a9/.release-please-manifest.json +0 -3
  13. {codeset-0.1.0a9 → codeset-0.1.0a10}/.gitignore +0 -0
  14. {codeset-0.1.0a9 → codeset-0.1.0a10}/CONTRIBUTING.md +0 -0
  15. {codeset-0.1.0a9 → codeset-0.1.0a10}/LICENSE +0 -0
  16. {codeset-0.1.0a9 → codeset-0.1.0a10}/SECURITY.md +0 -0
  17. {codeset-0.1.0a9 → codeset-0.1.0a10}/api.md +0 -0
  18. {codeset-0.1.0a9 → codeset-0.1.0a10}/bin/check-release-environment +0 -0
  19. {codeset-0.1.0a9 → codeset-0.1.0a10}/bin/publish-pypi +0 -0
  20. {codeset-0.1.0a9 → codeset-0.1.0a10}/examples/.keep +0 -0
  21. {codeset-0.1.0a9 → codeset-0.1.0a10}/mypy.ini +0 -0
  22. {codeset-0.1.0a9 → codeset-0.1.0a10}/noxfile.py +0 -0
  23. {codeset-0.1.0a9 → codeset-0.1.0a10}/release-please-config.json +0 -0
  24. {codeset-0.1.0a9 → codeset-0.1.0a10}/requirements-dev.lock +0 -0
  25. {codeset-0.1.0a9 → codeset-0.1.0a10}/requirements.lock +0 -0
  26. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/__init__.py +0 -0
  27. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_client.py +0 -0
  28. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_compat.py +0 -0
  29. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_constants.py +0 -0
  30. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_exceptions.py +0 -0
  31. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_files.py +0 -0
  32. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_qs.py +0 -0
  33. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_resource.py +0 -0
  34. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_response.py +0 -0
  35. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_streaming.py +0 -0
  36. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_types.py +0 -0
  37. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/__init__.py +0 -0
  38. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_logs.py +0 -0
  39. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_proxy.py +0 -0
  40. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_reflection.py +0 -0
  41. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_resources_proxy.py +0 -0
  42. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_streams.py +0 -0
  43. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_sync.py +0 -0
  44. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_transform.py +0 -0
  45. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_typing.py +0 -0
  46. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/_utils/_utils.py +0 -0
  47. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/lib/.keep +0 -0
  48. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/py.typed +0 -0
  49. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/resources/__init__.py +0 -0
  50. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/resources/health.py +0 -0
  51. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/resources/samples.py +0 -0
  52. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/resources/sessions/__init__.py +0 -0
  53. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/resources/sessions/sessions.py +0 -0
  54. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/resources/sessions/verify.py +0 -0
  55. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/__init__.py +0 -0
  56. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/container_info.py +0 -0
  57. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/error_info.py +0 -0
  58. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/health_check_response.py +0 -0
  59. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/sample_download_params.py +0 -0
  60. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/sample_list_response.py +0 -0
  61. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session.py +0 -0
  62. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_apply_diff_params.py +0 -0
  63. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_apply_diff_response.py +0 -0
  64. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_close_response.py +0 -0
  65. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_create_params.py +0 -0
  66. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_create_response.py +0 -0
  67. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_execute_command_params.py +0 -0
  68. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_execute_command_response.py +0 -0
  69. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_list_response.py +0 -0
  70. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/session_status.py +0 -0
  71. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/sessions/__init__.py +0 -0
  72. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/sessions/job_status.py +0 -0
  73. {codeset-0.1.0a9 → codeset-0.1.0a10}/src/codeset/types/sessions/verify_start_response.py +0 -0
  74. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/__init__.py +0 -0
  75. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/api_resources/__init__.py +0 -0
  76. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/api_resources/sessions/__init__.py +0 -0
  77. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/api_resources/sessions/test_verify.py +0 -0
  78. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/api_resources/test_health.py +0 -0
  79. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/api_resources/test_samples.py +0 -0
  80. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/api_resources/test_sessions.py +0 -0
  81. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/conftest.py +0 -0
  82. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/sample_file.txt +0 -0
  83. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_deepcopy.py +0 -0
  84. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_extract_files.py +0 -0
  85. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_files.py +0 -0
  86. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_qs.py +0 -0
  87. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_required_args.py +0 -0
  88. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_response.py +0 -0
  89. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_streaming.py +0 -0
  90. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_transform.py +0 -0
  91. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_utils/test_proxy.py +0 -0
  92. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/test_utils/test_typing.py +0 -0
  93. {codeset-0.1.0a9 → codeset-0.1.0a10}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.10"
3
+ }
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.10 (2025-07-15)
4
+
5
+ Full Changelog: [v0.1.0-alpha.9...v0.1.0-alpha.10](https://github.com/codeset-ai/codeset-sdk/compare/v0.1.0-alpha.9...v0.1.0-alpha.10)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([6dfc0ce](https://github.com/codeset-ai/codeset-sdk/commit/6dfc0ce61591a02857cf455c9303d0dbc5942c4d))
10
+ * **api:** api update ([7f8ad17](https://github.com/codeset-ai/codeset-sdk/commit/7f8ad17bf64892f70a6c324de5f560ee3d8be774))
11
+ * **api:** api update ([0f7b0ed](https://github.com/codeset-ai/codeset-sdk/commit/0f7b0ed03db4cb5e6e7d0484e3aee128e70509c8))
12
+ * clean up environment call outs ([eda028f](https://github.com/codeset-ai/codeset-sdk/commit/eda028f46edc46d9aeafd2ff4cf196fe54526de7))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **client:** don't send Content-Type header on GET requests ([10a9ffd](https://github.com/codeset-ai/codeset-sdk/commit/10a9ffd175b2837f6a880ab281369d95f3f5ba42))
18
+ * **parsing:** correctly handle nested discriminated unions ([2f64896](https://github.com/codeset-ai/codeset-sdk/commit/2f64896ab114adb782cb349aabd8275e7ae48982))
19
+
20
+
21
+ ### Chores
22
+
23
+ * **readme:** fix version rendering on pypi ([8743285](https://github.com/codeset-ai/codeset-sdk/commit/87432851bcbc016e6d3cab5a6388e72d0de2af72))
24
+
3
25
  ## 0.1.0-alpha.9 (2025-07-09)
4
26
 
5
27
  Full Changelog: [v0.1.0-alpha.8...v0.1.0-alpha.9](https://github.com/codeset-ai/codeset-sdk/compare/v0.1.0-alpha.8...v0.1.0-alpha.9)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: codeset
3
- Version: 0.1.0a9
3
+ Version: 0.1.0a10
4
4
  Summary: The official Python library for the codeset API
5
5
  Project-URL: Homepage, https://github.com/codeset-ai/codeset-sdk
6
6
  Project-URL: Repository, https://github.com/codeset-ai/codeset-sdk
@@ -30,12 +30,13 @@ Requires-Dist: sniffio
30
30
  Requires-Dist: typing-extensions<5,>=4.10
31
31
  Provides-Extra: aiohttp
32
32
  Requires-Dist: aiohttp; extra == 'aiohttp'
33
- Requires-Dist: httpx-aiohttp>=0.1.6; extra == 'aiohttp'
33
+ Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
34
34
  Description-Content-Type: text/markdown
35
35
 
36
36
  # Codeset Python API library
37
37
 
38
- [![PyPI version](https://github.com/codeset-ai/codeset-sdk/tree/main/<https://img.shields.io/pypi/v/codeset.svg?label=pypi%20(stable)>)](https://pypi.org/project/codeset/)
38
+ <!-- prettier-ignore -->
39
+ [![PyPI version](https://img.shields.io/pypi/v/codeset.svg?label=pypi%20(stable))](https://pypi.org/project/codeset/)
39
40
 
40
41
  The Codeset Python library provides convenient access to the Codeset REST API from any Python 3.8+
41
42
  application. The library includes type definitions for all request params and response fields,
@@ -113,7 +114,6 @@ pip install --pre codeset[aiohttp]
113
114
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
114
115
 
115
116
  ```python
116
- import os
117
117
  import asyncio
118
118
  from codeset import DefaultAioHttpClient
119
119
  from codeset import AsyncCodeset
@@ -121,7 +121,7 @@ from codeset import AsyncCodeset
121
121
 
122
122
  async def main() -> None:
123
123
  async with AsyncCodeset(
124
- api_key=os.environ.get("CODESET_API_KEY"), # This is the default and can be omitted
124
+ api_key="My API Key",
125
125
  http_client=DefaultAioHttpClient(),
126
126
  ) as client:
127
127
  response = await client.health.check()
@@ -1,6 +1,7 @@
1
1
  # Codeset Python API library
2
2
 
3
- [![PyPI version](<https://img.shields.io/pypi/v/codeset.svg?label=pypi%20(stable)>)](https://pypi.org/project/codeset/)
3
+ <!-- prettier-ignore -->
4
+ [![PyPI version](https://img.shields.io/pypi/v/codeset.svg?label=pypi%20(stable))](https://pypi.org/project/codeset/)
4
5
 
5
6
  The Codeset Python library provides convenient access to the Codeset REST API from any Python 3.8+
6
7
  application. The library includes type definitions for all request params and response fields,
@@ -78,7 +79,6 @@ pip install --pre codeset[aiohttp]
78
79
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
79
80
 
80
81
  ```python
81
- import os
82
82
  import asyncio
83
83
  from codeset import DefaultAioHttpClient
84
84
  from codeset import AsyncCodeset
@@ -86,7 +86,7 @@ from codeset import AsyncCodeset
86
86
 
87
87
  async def main() -> None:
88
88
  async with AsyncCodeset(
89
- api_key=os.environ.get("CODESET_API_KEY"), # This is the default and can be omitted
89
+ api_key="My API Key",
90
90
  http_client=DefaultAioHttpClient(),
91
91
  ) as client:
92
92
  response = await client.health.check()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codeset"
3
- version = "0.1.0-alpha.9"
3
+ version = "0.1.0-alpha.10"
4
4
  description = "The official Python library for the codeset API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -39,7 +39,7 @@ Homepage = "https://github.com/codeset-ai/codeset-sdk"
39
39
  Repository = "https://github.com/codeset-ai/codeset-sdk"
40
40
 
41
41
  [project.optional-dependencies]
42
- aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.6"]
42
+ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
43
43
 
44
44
  [tool.rye]
45
45
  managed = true
@@ -529,6 +529,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
529
529
  # work around https://github.com/encode/httpx/discussions/2880
530
530
  kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
531
531
 
532
+ is_body_allowed = options.method.lower() != "get"
533
+
534
+ if is_body_allowed:
535
+ kwargs["json"] = json_data if is_given(json_data) else None
536
+ kwargs["files"] = files
537
+ else:
538
+ headers.pop("Content-Type", None)
539
+ kwargs.pop("data", None)
540
+
532
541
  # TODO: report this error to httpx
533
542
  return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
534
543
  headers=headers,
@@ -540,8 +549,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
540
549
  # so that passing a `TypedDict` doesn't cause an error.
541
550
  # https://github.com/microsoft/pyright/issues/3526#event-6715453066
542
551
  params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
543
- json=json_data if is_given(json_data) else None,
544
- files=files,
545
552
  **kwargs,
546
553
  )
547
554
 
@@ -2,9 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  import os
4
4
  import inspect
5
- from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, cast
5
+ from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, Optional, cast
6
6
  from datetime import date, datetime
7
7
  from typing_extensions import (
8
+ List,
8
9
  Unpack,
9
10
  Literal,
10
11
  ClassVar,
@@ -366,7 +367,7 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
366
367
  if type_ is None:
367
368
  raise RuntimeError(f"Unexpected field type is None for {key}")
368
369
 
369
- return construct_type(value=value, type_=type_)
370
+ return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
370
371
 
371
372
 
372
373
  def is_basemodel(type_: type) -> bool:
@@ -420,7 +421,7 @@ def construct_type_unchecked(*, value: object, type_: type[_T]) -> _T:
420
421
  return cast(_T, construct_type(value=value, type_=type_))
421
422
 
422
423
 
423
- def construct_type(*, value: object, type_: object) -> object:
424
+ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]] = None) -> object:
424
425
  """Loose coercion to the expected type with construction of nested values.
425
426
 
426
427
  If the given value does not match the expected type then it is returned as-is.
@@ -438,8 +439,10 @@ def construct_type(*, value: object, type_: object) -> object:
438
439
  type_ = type_.__value__ # type: ignore[unreachable]
439
440
 
440
441
  # unwrap `Annotated[T, ...]` -> `T`
441
- if is_annotated_type(type_):
442
- meta: tuple[Any, ...] = get_args(type_)[1:]
442
+ if metadata is not None:
443
+ meta: tuple[Any, ...] = tuple(metadata)
444
+ elif is_annotated_type(type_):
445
+ meta = get_args(type_)[1:]
443
446
  type_ = extract_type_arg(type_, 0)
444
447
  else:
445
448
  meta = tuple()
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "codeset"
4
- __version__ = "0.1.0-alpha.9" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.10" # x-release-please-version
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import List, Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
@@ -31,6 +31,15 @@ class Result(BaseModel):
31
31
  total: int
32
32
  """Total number of tests executed."""
33
33
 
34
+ failures: Optional[List[object]] = None
35
+ """A list of failed tests with their details."""
36
+
37
+ stderr: Optional[str] = None
38
+ """Standard error from the verifier."""
39
+
40
+ stdout: Optional[str] = None
41
+ """Standard output from the verifier."""
42
+
34
43
  tool: Optional[Literal["test_suite"]] = None
35
44
 
36
45
 
@@ -471,7 +471,7 @@ class TestCodeset:
471
471
  def test_multipart_repeating_array(self, client: Codeset) -> None:
472
472
  request = client._build_request(
473
473
  FinalRequestOptions.construct(
474
- method="get",
474
+ method="post",
475
475
  url="/foo",
476
476
  headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
477
477
  json_data={"array": ["foo", "bar"]},
@@ -1281,7 +1281,7 @@ class TestAsyncCodeset:
1281
1281
  def test_multipart_repeating_array(self, async_client: AsyncCodeset) -> None:
1282
1282
  request = async_client._build_request(
1283
1283
  FinalRequestOptions.construct(
1284
- method="get",
1284
+ method="post",
1285
1285
  url="/foo",
1286
1286
  headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
1287
1287
  json_data={"array": ["foo", "bar"]},
@@ -889,3 +889,48 @@ def test_discriminated_union_case() -> None:
889
889
  )
890
890
 
891
891
  assert isinstance(m, ModelB)
892
+
893
+
894
+ def test_nested_discriminated_union() -> None:
895
+ class InnerType1(BaseModel):
896
+ type: Literal["type_1"]
897
+
898
+ class InnerModel(BaseModel):
899
+ inner_value: str
900
+
901
+ class InnerType2(BaseModel):
902
+ type: Literal["type_2"]
903
+ some_inner_model: InnerModel
904
+
905
+ class Type1(BaseModel):
906
+ base_type: Literal["base_type_1"]
907
+ value: Annotated[
908
+ Union[
909
+ InnerType1,
910
+ InnerType2,
911
+ ],
912
+ PropertyInfo(discriminator="type"),
913
+ ]
914
+
915
+ class Type2(BaseModel):
916
+ base_type: Literal["base_type_2"]
917
+
918
+ T = Annotated[
919
+ Union[
920
+ Type1,
921
+ Type2,
922
+ ],
923
+ PropertyInfo(discriminator="base_type"),
924
+ ]
925
+
926
+ model = construct_type(
927
+ type_=T,
928
+ value={
929
+ "base_type": "base_type_1",
930
+ "value": {
931
+ "type": "type_2",
932
+ },
933
+ },
934
+ )
935
+ assert isinstance(model, Type1)
936
+ assert isinstance(model.value, InnerType2)
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.9"
3
- }
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