scim2-models 0.3.2__tar.gz → 0.3.3__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.
Files changed (109) hide show
  1. {scim2_models-0.3.2 → scim2_models-0.3.3}/.pre-commit-config.yaml +1 -1
  2. {scim2_models-0.3.2 → scim2_models-0.3.3}/PKG-INFO +1 -1
  3. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/changelog.rst +7 -0
  4. {scim2_models-0.3.2 → scim2_models-0.3.3}/pyproject.toml +1 -1
  5. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/user.py +2 -1
  6. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_list_response.py +1 -1
  7. scim2_models-0.3.3/uv.lock +1359 -0
  8. scim2_models-0.3.2/uv.lock +0 -1355
  9. {scim2_models-0.3.2 → scim2_models-0.3.3}/.github/FUNDING.yml +0 -0
  10. {scim2_models-0.3.2 → scim2_models-0.3.3}/.github/workflows/release.yml +0 -0
  11. {scim2_models-0.3.2 → scim2_models-0.3.3}/.github/workflows/tests.yaml +0 -0
  12. {scim2_models-0.3.2 → scim2_models-0.3.3}/.gitignore +0 -0
  13. {scim2_models-0.3.2 → scim2_models-0.3.3}/.readthedocs.yml +0 -0
  14. {scim2_models-0.3.2 → scim2_models-0.3.3}/LICENSE +0 -0
  15. {scim2_models-0.3.2 → scim2_models-0.3.3}/README.md +0 -0
  16. {scim2_models-0.3.2 → scim2_models-0.3.3}/conftest.py +0 -0
  17. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/__init__.py +0 -0
  18. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/conf.py +0 -0
  19. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/contributing.rst +0 -0
  20. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/index.rst +0 -0
  21. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/reference.rst +0 -0
  22. {scim2_models-0.3.2 → scim2_models-0.3.3}/doc/tutorial.rst +0 -0
  23. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.1-user-minimal.json +0 -0
  24. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.2-user-full.json +0 -0
  25. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.3-enterprise_user.json +0 -0
  26. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.4-group.json +0 -0
  27. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.5-service_provider_configuration.json +0 -0
  28. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.6-resource_type-group.json +0 -0
  29. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.6-resource_type-user.json +0 -0
  30. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.7.1-schema-enterprise_user.json +0 -0
  31. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.7.1-schema-group.json +0 -0
  32. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.7.1-schema-user.json +0 -0
  33. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.7.2-schema-resource_type.json +0 -0
  34. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.7.2-schema-schema.json +0 -0
  35. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7643-8.7.2-schema-service_provider_configuration.json +0 -0
  36. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.12-error-bad_request.json +0 -0
  37. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.12-error-not_found.json +0 -0
  38. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.14-user-post_request.json +0 -0
  39. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.14-user-post_response.json +0 -0
  40. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.3-user-post_request.json +0 -0
  41. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.3-user-post_response.json +0 -0
  42. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.4.1-user-known-resource.json +0 -0
  43. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.4.2-list_response-partial_attributes.json +0 -0
  44. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.4.3-list_response-post_query.json +0 -0
  45. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.4.3-search_request.json +0 -0
  46. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.1-user-put_request.json +0 -0
  47. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.1-user-put_response.json +0 -0
  48. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.1-patch_op-add_emails.json +0 -0
  49. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.1-patch_op-add_members.json +0 -0
  50. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.2-patch_op-remove_all_members.json +0 -0
  51. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.2-patch_op-remove_and_add_one_member.json +0 -0
  52. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.2-patch_op-remove_multi_complex_value.json +0 -0
  53. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.2-patch_op-remove_one_member.json +0 -0
  54. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.3-patch_op-replace_all_email_values.json +0 -0
  55. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.3-patch_op-replace_all_members.json +0 -0
  56. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.3-patch_op-replace_street_address.json +0 -0
  57. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.5.2.3-patch_op-replace_user_work_address.json +0 -0
  58. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.6-error-not_found.json +0 -0
  59. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.1-bulk_request-circular_conflict.json +0 -0
  60. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.1-list_response-circular_reference.json +0 -0
  61. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.2-bulk_request-enterprise_user.json +0 -0
  62. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.2-bulk_request-temporary_identifier.json +0 -0
  63. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.2-bulk_response-temporary_identifier.json +0 -0
  64. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.3-bulk_request-multiple_operations.json +0 -0
  65. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.3-bulk_response-error_invalid_syntax.json +0 -0
  66. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.3-bulk_response-multiple_errors.json +0 -0
  67. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.3-bulk_response-multiple_operations.json +0 -0
  68. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.3-error-invalid_syntax.json +0 -0
  69. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.7.4-error-payload_too_large.json +0 -0
  70. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-3.9-user-partial_response.json +0 -0
  71. {scim2_models-0.3.2 → scim2_models-0.3.3}/samples/rfc7644-4-list_response-resource_types.json +0 -0
  72. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/__init__.py +0 -0
  73. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/base.py +0 -0
  74. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/constants.py +0 -0
  75. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/py.typed +0 -0
  76. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/__init__.py +0 -0
  77. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/enterprise_user.py +0 -0
  78. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/group.py +0 -0
  79. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/resource.py +0 -0
  80. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/resource_type.py +0 -0
  81. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/schema.py +0 -0
  82. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7643/service_provider_config.py +0 -0
  83. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/__init__.py +0 -0
  84. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/bulk.py +0 -0
  85. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/error.py +0 -0
  86. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/list_response.py +0 -0
  87. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/message.py +0 -0
  88. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/patch_op.py +0 -0
  89. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/rfc7644/search_request.py +0 -0
  90. {scim2_models-0.3.2 → scim2_models-0.3.3}/scim2_models/utils.py +0 -0
  91. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/__init__.py +0 -0
  92. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/conftest.py +0 -0
  93. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_dynamic_resources.py +0 -0
  94. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_dynamic_schemas.py +0 -0
  95. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_enterprise_user.py +0 -0
  96. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_errors.py +0 -0
  97. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_group.py +0 -0
  98. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_model_attributes.py +0 -0
  99. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_model_serialization.py +0 -0
  100. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_model_validation.py +0 -0
  101. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_models.py +0 -0
  102. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_patch_op.py +0 -0
  103. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_resource_extension.py +0 -0
  104. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_resource_type.py +0 -0
  105. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_schema.py +0 -0
  106. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_search_request.py +0 -0
  107. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_service_provider_configuration.py +0 -0
  108. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_user.py +0 -0
  109. {scim2_models-0.3.2 → scim2_models-0.3.3}/tests/test_utils.py +0 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  repos:
3
3
  - repo: https://github.com/astral-sh/ruff-pre-commit
4
- rev: 'v0.11.2'
4
+ rev: 'v0.11.10'
5
5
  hooks:
6
6
  - id: ruff
7
7
  args: [--fix, --exit-non-zero-on-fix]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scim2-models
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: SCIM2 models serialization and validation with pydantic
5
5
  Project-URL: documentation, https://scim2-models.readthedocs.io
6
6
  Project-URL: repository, https://github.com/python-scim/scim2-models
@@ -1,6 +1,13 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ [0.3.3] - 2025-05-21
5
+ --------------------
6
+
7
+ Fixed
8
+ ^^^^^
9
+ - User class typing. :pr:`92`
10
+
4
11
  [0.3.2] - 2025-03-28
5
12
  --------------------
6
13
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "scim2-models"
7
- version = "0.3.2"
7
+ version = "0.3.3"
8
8
  description = "SCIM2 models serialization and validation with pydantic"
9
9
  authors = [{name="Yaal Coop", email="contact@yaal.coop"}]
10
10
  license = {file = "LICENSE"}
@@ -17,6 +17,7 @@ from ..base import Required
17
17
  from ..base import Returned
18
18
  from ..base import Uniqueness
19
19
  from ..utils import Base64Bytes
20
+ from .resource import AnyExtension
20
21
  from .resource import Resource
21
22
 
22
23
 
@@ -213,7 +214,7 @@ class X509Certificate(MultiValuedComplexAttribute):
213
214
  """The value of an X.509 certificate."""
214
215
 
215
216
 
216
- class User(Resource):
217
+ class User(Resource[AnyExtension]):
217
218
  schemas: Annotated[list[str], Required.true] = [
218
219
  "urn:ietf:params:scim:schemas:core:2.0:User"
219
220
  ]
@@ -40,7 +40,7 @@ def test_enterprise_user(load_sample):
40
40
  }
41
41
  response = ListResponse[User[EnterpriseUser]].model_validate(payload)
42
42
  obj = response.resources[0]
43
- assert isinstance(obj, User[EnterpriseUser])
43
+ assert isinstance(obj, User)
44
44
 
45
45
 
46
46
  def test_group(load_sample):