Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions doc/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
Changelog
=========

[Unreleased]
------------

Performance
^^^^^^^^^^^
- Cached commonly used metadata of fields to :attr:`~scim2_models.BaseModel.__scim_info__`.
- Collapsed all scim context validators in :class:`~scim2_models.BaseModel` to one model validator.
- Collapsed serialization to one model serializer in :class:`~scim2_models.BaseModel`.
- Moved ``model_dump`` and ``model_dump_json`` to :class:`~scim2_models.BaseModel`.
- Cached ``_normalize_attribute_name``.
- Simplified ``normalize_attribute_names``

Fixed
^^^^^
- Check recursively extensions' replace constraints.
- The result of ``model_dump`` does not differ from native pydantic's dump if ``scim_ctx`` is set to ``None``.

[0.6.12] - 2026-04-13
---------------------

Expand Down
3 changes: 3 additions & 0 deletions scim2_models/attributes.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from inspect import isclass
from typing import Annotated
from typing import Any
from typing import ClassVar
from typing import get_origin

from pydantic import Field
Expand All @@ -15,6 +16,8 @@
class ComplexAttribute(BaseModel):
"""A complex attribute as defined in :rfc:`RFC7643 §2.3.8 <7643#section-2.3.8>`."""

__is_complex_attribute__: ClassVar[bool] = True

_attribute_urn: str | None = None

def get_attribute_urn(self, field_name: str) -> str:
Expand Down
Loading
Loading