scim2-client 0.6.1__py3-none-any.whl → 0.7.0__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.
@@ -1,9 +1,7 @@
1
1
  import json
2
2
  import sys
3
3
  from contextlib import contextmanager
4
- from typing import Optional
5
4
  from typing import TypeVar
6
- from typing import Union
7
5
 
8
6
  from httpx import Client
9
7
  from httpx import RequestError
@@ -72,15 +70,14 @@ class SyncSCIMClient(BaseSyncSCIMClient):
72
70
 
73
71
  def create(
74
72
  self,
75
- resource: Union[AnyResource, dict],
76
- check_request_payload: Optional[bool] = None,
77
- check_response_payload: Optional[bool] = None,
78
- expected_status_codes: Optional[
79
- list[int]
80
- ] = BaseSyncSCIMClient.CREATION_RESPONSE_STATUS_CODES,
81
- raise_scim_errors: Optional[bool] = None,
73
+ resource: AnyResource | dict,
74
+ check_request_payload: bool | None = None,
75
+ check_response_payload: bool | None = None,
76
+ expected_status_codes: list[int]
77
+ | None = BaseSyncSCIMClient.CREATION_RESPONSE_STATUS_CODES,
78
+ raise_scim_errors: bool | None = None,
82
79
  **kwargs,
83
- ) -> Union[AnyResource, Error, dict]:
80
+ ) -> AnyResource | Error | dict:
84
81
  req = self._prepare_create_request(
85
82
  resource=resource,
86
83
  check_request_payload=check_request_payload,
@@ -105,17 +102,16 @@ class SyncSCIMClient(BaseSyncSCIMClient):
105
102
 
106
103
  def query(
107
104
  self,
108
- resource_model: Optional[type[AnyResource]] = None,
109
- id: Optional[str] = None,
110
- search_request: Optional[Union[SearchRequest, dict]] = None,
111
- check_request_payload: Optional[bool] = None,
112
- check_response_payload: Optional[bool] = None,
113
- expected_status_codes: Optional[
114
- list[int]
115
- ] = BaseSyncSCIMClient.QUERY_RESPONSE_STATUS_CODES,
116
- raise_scim_errors: Optional[bool] = None,
105
+ resource_model: type[AnyResource] | None = None,
106
+ id: str | None = None,
107
+ search_request: SearchRequest | dict | None = None,
108
+ check_request_payload: bool | None = None,
109
+ check_response_payload: bool | None = None,
110
+ expected_status_codes: list[int]
111
+ | None = BaseSyncSCIMClient.QUERY_RESPONSE_STATUS_CODES,
112
+ raise_scim_errors: bool | None = None,
117
113
  **kwargs,
118
- ) -> Union[AnyResource, ListResponse[AnyResource], Error, dict]:
114
+ ) -> AnyResource | ListResponse[AnyResource] | Error | dict:
119
115
  req = self._prepare_query_request(
120
116
  resource_model=resource_model,
121
117
  id=id,
@@ -144,15 +140,14 @@ class SyncSCIMClient(BaseSyncSCIMClient):
144
140
 
145
141
  def search(
146
142
  self,
147
- search_request: Optional[SearchRequest] = None,
148
- check_request_payload: Optional[bool] = None,
149
- check_response_payload: Optional[bool] = None,
150
- expected_status_codes: Optional[
151
- list[int]
152
- ] = BaseSyncSCIMClient.SEARCH_RESPONSE_STATUS_CODES,
153
- raise_scim_errors: Optional[bool] = None,
143
+ search_request: SearchRequest | None = None,
144
+ check_request_payload: bool | None = None,
145
+ check_response_payload: bool | None = None,
146
+ expected_status_codes: list[int]
147
+ | None = BaseSyncSCIMClient.SEARCH_RESPONSE_STATUS_CODES,
148
+ raise_scim_errors: bool | None = None,
154
149
  **kwargs,
155
- ) -> Union[AnyResource, ListResponse[AnyResource], Error, dict]:
150
+ ) -> AnyResource | ListResponse[AnyResource] | Error | dict:
156
151
  req = self._prepare_search_request(
157
152
  search_request=search_request,
158
153
  check_request_payload=check_request_payload,
@@ -179,13 +174,12 @@ class SyncSCIMClient(BaseSyncSCIMClient):
179
174
  self,
180
175
  resource_model: type,
181
176
  id: str,
182
- check_response_payload: Optional[bool] = None,
183
- expected_status_codes: Optional[
184
- list[int]
185
- ] = BaseSyncSCIMClient.DELETION_RESPONSE_STATUS_CODES,
186
- raise_scim_errors: Optional[bool] = None,
177
+ check_response_payload: bool | None = None,
178
+ expected_status_codes: list[int]
179
+ | None = BaseSyncSCIMClient.DELETION_RESPONSE_STATUS_CODES,
180
+ raise_scim_errors: bool | None = None,
187
181
  **kwargs,
188
- ) -> Optional[Union[Error, dict]]:
182
+ ) -> Error | dict | None:
189
183
  req = self._prepare_delete_request(
190
184
  resource_model=resource_model,
191
185
  id=id,
@@ -208,15 +202,14 @@ class SyncSCIMClient(BaseSyncSCIMClient):
208
202
 
209
203
  def replace(
210
204
  self,
211
- resource: Union[AnyResource, dict],
212
- check_request_payload: Optional[bool] = None,
213
- check_response_payload: Optional[bool] = None,
214
- expected_status_codes: Optional[
215
- list[int]
216
- ] = BaseSyncSCIMClient.REPLACEMENT_RESPONSE_STATUS_CODES,
217
- raise_scim_errors: Optional[bool] = None,
205
+ resource: AnyResource | dict,
206
+ check_request_payload: bool | None = None,
207
+ check_response_payload: bool | None = None,
208
+ expected_status_codes: list[int]
209
+ | None = BaseSyncSCIMClient.REPLACEMENT_RESPONSE_STATUS_CODES,
210
+ raise_scim_errors: bool | None = None,
218
211
  **kwargs,
219
- ) -> Union[AnyResource, Error, dict]:
212
+ ) -> AnyResource | Error | dict:
220
213
  req = self._prepare_replace_request(
221
214
  resource=resource,
222
215
  check_request_payload=check_request_payload,
@@ -243,15 +236,14 @@ class SyncSCIMClient(BaseSyncSCIMClient):
243
236
  self,
244
237
  resource_model: type[ResourceT],
245
238
  id: str,
246
- patch_op: Union[PatchOp[ResourceT], dict],
247
- check_request_payload: Optional[bool] = None,
248
- check_response_payload: Optional[bool] = None,
249
- expected_status_codes: Optional[
250
- list[int]
251
- ] = BaseSyncSCIMClient.PATCH_RESPONSE_STATUS_CODES,
252
- raise_scim_errors: Optional[bool] = None,
239
+ patch_op: PatchOp[ResourceT] | dict,
240
+ check_request_payload: bool | None = None,
241
+ check_response_payload: bool | None = None,
242
+ expected_status_codes: list[int]
243
+ | None = BaseSyncSCIMClient.PATCH_RESPONSE_STATUS_CODES,
244
+ raise_scim_errors: bool | None = None,
253
245
  **kwargs,
254
- ) -> Optional[Union[ResourceT, Error, dict]]:
246
+ ) -> ResourceT | Error | dict | None:
255
247
  req = self._prepare_patch_request(
256
248
  resource_model=resource_model,
257
249
  id=id,
@@ -302,15 +294,14 @@ class AsyncSCIMClient(BaseAsyncSCIMClient):
302
294
 
303
295
  async def create(
304
296
  self,
305
- resource: Union[AnyResource, dict],
306
- check_request_payload: Optional[bool] = None,
307
- check_response_payload: Optional[bool] = None,
308
- expected_status_codes: Optional[
309
- list[int]
310
- ] = BaseAsyncSCIMClient.CREATION_RESPONSE_STATUS_CODES,
311
- raise_scim_errors: Optional[bool] = None,
297
+ resource: AnyResource | dict,
298
+ check_request_payload: bool | None = None,
299
+ check_response_payload: bool | None = None,
300
+ expected_status_codes: list[int]
301
+ | None = BaseAsyncSCIMClient.CREATION_RESPONSE_STATUS_CODES,
302
+ raise_scim_errors: bool | None = None,
312
303
  **kwargs,
313
- ) -> Union[AnyResource, Error, dict]:
304
+ ) -> AnyResource | Error | dict:
314
305
  req = self._prepare_create_request(
315
306
  resource=resource,
316
307
  check_request_payload=check_request_payload,
@@ -337,17 +328,16 @@ class AsyncSCIMClient(BaseAsyncSCIMClient):
337
328
 
338
329
  async def query(
339
330
  self,
340
- resource_model: Optional[type[Resource]] = None,
341
- id: Optional[str] = None,
342
- search_request: Optional[Union[SearchRequest, dict]] = None,
343
- check_request_payload: Optional[bool] = None,
344
- check_response_payload: Optional[bool] = None,
345
- expected_status_codes: Optional[
346
- list[int]
347
- ] = BaseAsyncSCIMClient.QUERY_RESPONSE_STATUS_CODES,
348
- raise_scim_errors: Optional[bool] = None,
331
+ resource_model: type[Resource] | None = None,
332
+ id: str | None = None,
333
+ search_request: SearchRequest | dict | None = None,
334
+ check_request_payload: bool | None = None,
335
+ check_response_payload: bool | None = None,
336
+ expected_status_codes: list[int]
337
+ | None = BaseAsyncSCIMClient.QUERY_RESPONSE_STATUS_CODES,
338
+ raise_scim_errors: bool | None = None,
349
339
  **kwargs,
350
- ) -> Union[AnyResource, ListResponse[AnyResource], Error, dict]:
340
+ ) -> AnyResource | ListResponse[AnyResource] | Error | dict:
351
341
  req = self._prepare_query_request(
352
342
  resource_model=resource_model,
353
343
  id=id,
@@ -376,15 +366,14 @@ class AsyncSCIMClient(BaseAsyncSCIMClient):
376
366
 
377
367
  async def search(
378
368
  self,
379
- search_request: Optional[SearchRequest] = None,
380
- check_request_payload: Optional[bool] = None,
381
- check_response_payload: Optional[bool] = None,
382
- expected_status_codes: Optional[
383
- list[int]
384
- ] = BaseAsyncSCIMClient.SEARCH_RESPONSE_STATUS_CODES,
385
- raise_scim_errors: Optional[bool] = None,
369
+ search_request: SearchRequest | None = None,
370
+ check_request_payload: bool | None = None,
371
+ check_response_payload: bool | None = None,
372
+ expected_status_codes: list[int]
373
+ | None = BaseAsyncSCIMClient.SEARCH_RESPONSE_STATUS_CODES,
374
+ raise_scim_errors: bool | None = None,
386
375
  **kwargs,
387
- ) -> Union[AnyResource, ListResponse[AnyResource], Error, dict]:
376
+ ) -> AnyResource | ListResponse[AnyResource] | Error | dict:
388
377
  req = self._prepare_search_request(
389
378
  search_request=search_request,
390
379
  check_request_payload=check_request_payload,
@@ -413,13 +402,12 @@ class AsyncSCIMClient(BaseAsyncSCIMClient):
413
402
  self,
414
403
  resource_model: type,
415
404
  id: str,
416
- check_response_payload: Optional[bool] = None,
417
- expected_status_codes: Optional[
418
- list[int]
419
- ] = BaseAsyncSCIMClient.DELETION_RESPONSE_STATUS_CODES,
420
- raise_scim_errors: Optional[bool] = None,
405
+ check_response_payload: bool | None = None,
406
+ expected_status_codes: list[int]
407
+ | None = BaseAsyncSCIMClient.DELETION_RESPONSE_STATUS_CODES,
408
+ raise_scim_errors: bool | None = None,
421
409
  **kwargs,
422
- ) -> Optional[Union[Error, dict]]:
410
+ ) -> Error | dict | None:
423
411
  req = self._prepare_delete_request(
424
412
  resource_model=resource_model,
425
413
  id=id,
@@ -442,15 +430,14 @@ class AsyncSCIMClient(BaseAsyncSCIMClient):
442
430
 
443
431
  async def replace(
444
432
  self,
445
- resource: Union[AnyResource, dict],
446
- check_request_payload: Optional[bool] = None,
447
- check_response_payload: Optional[bool] = None,
448
- expected_status_codes: Optional[
449
- list[int]
450
- ] = BaseAsyncSCIMClient.REPLACEMENT_RESPONSE_STATUS_CODES,
451
- raise_scim_errors: Optional[bool] = None,
433
+ resource: AnyResource | dict,
434
+ check_request_payload: bool | None = None,
435
+ check_response_payload: bool | None = None,
436
+ expected_status_codes: list[int]
437
+ | None = BaseAsyncSCIMClient.REPLACEMENT_RESPONSE_STATUS_CODES,
438
+ raise_scim_errors: bool | None = None,
452
439
  **kwargs,
453
- ) -> Union[AnyResource, Error, dict]:
440
+ ) -> AnyResource | Error | dict:
454
441
  req = self._prepare_replace_request(
455
442
  resource=resource,
456
443
  check_request_payload=check_request_payload,
@@ -479,15 +466,14 @@ class AsyncSCIMClient(BaseAsyncSCIMClient):
479
466
  self,
480
467
  resource_model: type[ResourceT],
481
468
  id: str,
482
- patch_op: Union[PatchOp[ResourceT], dict],
483
- check_request_payload: Optional[bool] = None,
484
- check_response_payload: Optional[bool] = None,
485
- expected_status_codes: Optional[
486
- list[int]
487
- ] = BaseAsyncSCIMClient.PATCH_RESPONSE_STATUS_CODES,
488
- raise_scim_errors: Optional[bool] = None,
469
+ patch_op: PatchOp[ResourceT] | dict,
470
+ check_request_payload: bool | None = None,
471
+ check_response_payload: bool | None = None,
472
+ expected_status_codes: list[int]
473
+ | None = BaseAsyncSCIMClient.PATCH_RESPONSE_STATUS_CODES,
474
+ raise_scim_errors: bool | None = None,
489
475
  **kwargs,
490
- ) -> Optional[Union[ResourceT, Error, dict]]:
476
+ ) -> ResourceT | Error | dict | None:
491
477
  req = self._prepare_patch_request(
492
478
  resource_model=resource_model,
493
479
  id=id,
@@ -1,8 +1,6 @@
1
1
  import json
2
2
  from contextlib import contextmanager
3
- from typing import Optional
4
3
  from typing import TypeVar
5
- from typing import Union
6
4
  from urllib.parse import urlencode
7
5
 
8
6
  from scim2_models import AnyResource
@@ -80,7 +78,7 @@ class TestSCIMClient(BaseSyncSCIMClient):
80
78
  def __init__(
81
79
  self,
82
80
  client: Client,
83
- environ: Optional[dict] = None,
81
+ environ: dict | None = None,
84
82
  scim_prefix: str = "",
85
83
  *args,
86
84
  **kwargs,
@@ -90,7 +88,7 @@ class TestSCIMClient(BaseSyncSCIMClient):
90
88
  self.scim_prefix = scim_prefix
91
89
  self.environ = environ or {}
92
90
 
93
- def _make_url(self, url: Optional[str]) -> str:
91
+ def _make_url(self, url: str | None) -> str:
94
92
  url = url or ""
95
93
  prefix = (
96
94
  self.scim_prefix[:-1]
@@ -105,15 +103,14 @@ class TestSCIMClient(BaseSyncSCIMClient):
105
103
 
106
104
  def create(
107
105
  self,
108
- resource: Union[AnyResource, dict],
109
- check_request_payload: Optional[bool] = None,
110
- check_response_payload: Optional[bool] = None,
111
- expected_status_codes: Optional[
112
- list[int]
113
- ] = BaseSyncSCIMClient.CREATION_RESPONSE_STATUS_CODES,
114
- raise_scim_errors: Optional[bool] = None,
106
+ resource: AnyResource | dict,
107
+ check_request_payload: bool | None = None,
108
+ check_response_payload: bool | None = None,
109
+ expected_status_codes: list[int]
110
+ | None = BaseSyncSCIMClient.CREATION_RESPONSE_STATUS_CODES,
111
+ raise_scim_errors: bool | None = None,
115
112
  **kwargs,
116
- ) -> Union[AnyResource, Error, dict]:
113
+ ) -> AnyResource | Error | dict:
117
114
  req = self._prepare_create_request(
118
115
  resource=resource,
119
116
  check_request_payload=check_request_payload,
@@ -140,17 +137,16 @@ class TestSCIMClient(BaseSyncSCIMClient):
140
137
 
141
138
  def query(
142
139
  self,
143
- resource_model: Optional[type[AnyResource]] = None,
144
- id: Optional[str] = None,
145
- search_request: Optional[Union[SearchRequest, dict]] = None,
146
- check_request_payload: Optional[bool] = None,
147
- check_response_payload: Optional[bool] = None,
148
- expected_status_codes: Optional[
149
- list[int]
150
- ] = BaseSyncSCIMClient.QUERY_RESPONSE_STATUS_CODES,
151
- raise_scim_errors: Optional[bool] = None,
140
+ resource_model: type[AnyResource] | None = None,
141
+ id: str | None = None,
142
+ search_request: SearchRequest | dict | None = None,
143
+ check_request_payload: bool | None = None,
144
+ check_response_payload: bool | None = None,
145
+ expected_status_codes: list[int]
146
+ | None = BaseSyncSCIMClient.QUERY_RESPONSE_STATUS_CODES,
147
+ raise_scim_errors: bool | None = None,
152
148
  **kwargs,
153
- ) -> Union[AnyResource, ListResponse[AnyResource], Error, dict]:
149
+ ) -> AnyResource | ListResponse[AnyResource] | Error | dict:
154
150
  req = self._prepare_query_request(
155
151
  resource_model=resource_model,
156
152
  id=id,
@@ -180,15 +176,14 @@ class TestSCIMClient(BaseSyncSCIMClient):
180
176
 
181
177
  def search(
182
178
  self,
183
- search_request: Optional[SearchRequest] = None,
184
- check_request_payload: Optional[bool] = None,
185
- check_response_payload: Optional[bool] = None,
186
- expected_status_codes: Optional[
187
- list[int]
188
- ] = BaseSyncSCIMClient.SEARCH_RESPONSE_STATUS_CODES,
189
- raise_scim_errors: Optional[bool] = None,
179
+ search_request: SearchRequest | None = None,
180
+ check_request_payload: bool | None = None,
181
+ check_response_payload: bool | None = None,
182
+ expected_status_codes: list[int]
183
+ | None = BaseSyncSCIMClient.SEARCH_RESPONSE_STATUS_CODES,
184
+ raise_scim_errors: bool | None = None,
190
185
  **kwargs,
191
- ) -> Union[AnyResource, ListResponse[AnyResource], Error, dict]:
186
+ ) -> AnyResource | ListResponse[AnyResource] | Error | dict:
192
187
  req = self._prepare_search_request(
193
188
  search_request=search_request,
194
189
  check_request_payload=check_request_payload,
@@ -217,13 +212,12 @@ class TestSCIMClient(BaseSyncSCIMClient):
217
212
  self,
218
213
  resource_model: type,
219
214
  id: str,
220
- check_response_payload: Optional[bool] = None,
221
- expected_status_codes: Optional[
222
- list[int]
223
- ] = BaseSyncSCIMClient.DELETION_RESPONSE_STATUS_CODES,
224
- raise_scim_errors: Optional[bool] = None,
215
+ check_response_payload: bool | None = None,
216
+ expected_status_codes: list[int]
217
+ | None = BaseSyncSCIMClient.DELETION_RESPONSE_STATUS_CODES,
218
+ raise_scim_errors: bool | None = None,
225
219
  **kwargs,
226
- ) -> Optional[Union[Error, dict]]:
220
+ ) -> Error | dict | None:
227
221
  req = self._prepare_delete_request(
228
222
  resource_model=resource_model,
229
223
  id=id,
@@ -246,15 +240,14 @@ class TestSCIMClient(BaseSyncSCIMClient):
246
240
 
247
241
  def replace(
248
242
  self,
249
- resource: Union[AnyResource, dict],
250
- check_request_payload: Optional[bool] = None,
251
- check_response_payload: Optional[bool] = None,
252
- expected_status_codes: Optional[
253
- list[int]
254
- ] = BaseSyncSCIMClient.REPLACEMENT_RESPONSE_STATUS_CODES,
255
- raise_scim_errors: Optional[bool] = None,
243
+ resource: AnyResource | dict,
244
+ check_request_payload: bool | None = None,
245
+ check_response_payload: bool | None = None,
246
+ expected_status_codes: list[int]
247
+ | None = BaseSyncSCIMClient.REPLACEMENT_RESPONSE_STATUS_CODES,
248
+ raise_scim_errors: bool | None = None,
256
249
  **kwargs,
257
- ) -> Union[AnyResource, Error, dict]:
250
+ ) -> AnyResource | Error | dict:
258
251
  req = self._prepare_replace_request(
259
252
  resource=resource,
260
253
  check_request_payload=check_request_payload,
@@ -281,15 +274,14 @@ class TestSCIMClient(BaseSyncSCIMClient):
281
274
  self,
282
275
  resource_model: type[ResourceT],
283
276
  id: str,
284
- patch_op: Union[PatchOp[ResourceT], dict],
285
- check_request_payload: Optional[bool] = None,
286
- check_response_payload: Optional[bool] = None,
287
- expected_status_codes: Optional[
288
- list[int]
289
- ] = BaseSyncSCIMClient.PATCH_RESPONSE_STATUS_CODES,
290
- raise_scim_errors: Optional[bool] = None,
277
+ patch_op: PatchOp[ResourceT] | dict,
278
+ check_request_payload: bool | None = None,
279
+ check_response_payload: bool | None = None,
280
+ expected_status_codes: list[int]
281
+ | None = BaseSyncSCIMClient.PATCH_RESPONSE_STATUS_CODES,
282
+ raise_scim_errors: bool | None = None,
291
283
  **kwargs,
292
- ) -> Optional[Union[ResourceT, Error, dict]]:
284
+ ) -> ResourceT | Error | dict | None:
293
285
  req = self._prepare_patch_request(
294
286
  resource_model=resource_model,
295
287
  id=id,