Skip to content

Commit f891122

Browse files
committed
feat: make the 'build_resource_models' method public
1 parent 3f849e0 commit f891122

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

scim2_client/client.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -514,8 +514,10 @@ def modify(
514514
) -> Optional[Union[AnyResource, dict]]:
515515
raise NotImplementedError()
516516

517-
def _discover(self, resource_types, schemas):
518-
self.resource_types = resource_types
517+
def build_resource_models(
518+
self, resource_types: Collection[ResourceType], schemas: Collection[Schema]
519+
) -> tuple[type[Resource]]:
520+
"""Build models from server objects."""
519521
resource_types_by_schema = {
520522
resource_type.schema_: resource_type for resource_type in resource_types
521523
}
@@ -534,7 +536,7 @@ def _discover(self, resource_types, schemas):
534536
model = model[tuple(extensions)]
535537
resource_models.append(model)
536538

537-
self.resource_models = tuple(resource_models)
539+
return tuple(resource_models)
538540

539541

540542
class BaseSyncSCIMClient(BaseSCIMClient):
@@ -797,7 +799,9 @@ def discover(self):
797799
"""Dynamically discover the server models :class:`~scim2_models.Schema` and :class:`~scim2_models.ResourceType`."""
798800
resource_types_response = self.query(ResourceType)
799801
schemas_response = self.query(Schema)
800-
self._discover(resource_types_response.resources, schemas_response.resources)
802+
self.resource_types = resource_types_response.resources
803+
schemas = schemas_response.resources
804+
self.resource_models = self.build_resource_models(self.resource_types, schemas)
801805

802806

803807
class BaseAsyncSCIMClient(BaseSCIMClient):
@@ -1062,4 +1066,6 @@ async def discover(self):
10621066
schemas_task = asyncio.create_task(self.query(Schema))
10631067
resource_types_response = await resources_task
10641068
schemas_response = await schemas_task
1065-
self._discover(resource_types_response.resources, schemas_response.resources)
1069+
self.resource_types = resource_types_response.resources
1070+
schemas = schemas_response.resources
1071+
self.resource_models = self.build_resource_models(self.resource_types, schemas)

0 commit comments

Comments
 (0)