workos 5.31.1__py3-none-any.whl → 5.32.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.
- workos/__about__.py +1 -1
- workos/exceptions.py +18 -0
- workos/types/user_management/user.py +1 -0
- workos/user_management.py +6 -0
- workos/utils/_base_http_client.py +6 -0
- {workos-5.31.1.dist-info → workos-5.32.0.dist-info}/METADATA +1 -1
- {workos-5.31.1.dist-info → workos-5.32.0.dist-info}/RECORD +10 -10
- {workos-5.31.1.dist-info → workos-5.32.0.dist-info}/LICENSE +0 -0
- {workos-5.31.1.dist-info → workos-5.32.0.dist-info}/WHEEL +0 -0
- {workos-5.31.1.dist-info → workos-5.32.0.dist-info}/top_level.txt +0 -0
workos/__about__.py
CHANGED
workos/exceptions.py
CHANGED
|
@@ -45,6 +45,24 @@ class AuthorizationException(BaseRequestException):
|
|
|
45
45
|
pass
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
class EmailVerificationRequiredException(AuthorizationException):
|
|
49
|
+
"""Raised when email verification is required before authentication.
|
|
50
|
+
|
|
51
|
+
This exception includes an email_verification_id field that can be used
|
|
52
|
+
to retrieve the email verification object or resend the verification email.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def __init__(
|
|
56
|
+
self,
|
|
57
|
+
response: httpx.Response,
|
|
58
|
+
response_json: Optional[Mapping[str, Any]],
|
|
59
|
+
) -> None:
|
|
60
|
+
super().__init__(response, response_json)
|
|
61
|
+
self.email_verification_id = self.extract_from_json(
|
|
62
|
+
"email_verification_id", None
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
48
66
|
class AuthenticationException(BaseRequestException):
|
|
49
67
|
pass
|
|
50
68
|
|
workos/user_management.py
CHANGED
|
@@ -225,6 +225,7 @@ class UserManagementModule(Protocol):
|
|
|
225
225
|
password_hash_type: Optional[PasswordHashType] = None,
|
|
226
226
|
external_id: Optional[str] = None,
|
|
227
227
|
metadata: Optional[Metadata] = None,
|
|
228
|
+
locale: Optional[str] = None,
|
|
228
229
|
) -> SyncOrAsync[User]:
|
|
229
230
|
"""Update user attributes.
|
|
230
231
|
|
|
@@ -237,6 +238,7 @@ class UserManagementModule(Protocol):
|
|
|
237
238
|
password (str): The password to set for the user. (Optional)
|
|
238
239
|
password_hash (str): The hashed password to set for the user, used when migrating from another user store. Mutually exclusive with password. (Optional)
|
|
239
240
|
password_hash_type (str): The algorithm originally used to hash the password, used when providing a password_hash. Valid values are 'bcrypt', `firebase-scrypt`, and `ssha`. (Optional)
|
|
241
|
+
locale (str): The user's locale. (Optional)
|
|
240
242
|
|
|
241
243
|
Returns:
|
|
242
244
|
User: Updated User response from WorkOS.
|
|
@@ -1002,6 +1004,7 @@ class UserManagement(UserManagementModule):
|
|
|
1002
1004
|
password_hash_type: Optional[PasswordHashType] = None,
|
|
1003
1005
|
external_id: Optional[str] = None,
|
|
1004
1006
|
metadata: Optional[Metadata] = None,
|
|
1007
|
+
locale: Optional[str] = None,
|
|
1005
1008
|
) -> User:
|
|
1006
1009
|
json = {
|
|
1007
1010
|
"first_name": first_name,
|
|
@@ -1013,6 +1016,7 @@ class UserManagement(UserManagementModule):
|
|
|
1013
1016
|
"password_hash_type": password_hash_type,
|
|
1014
1017
|
"external_id": external_id,
|
|
1015
1018
|
"metadata": metadata,
|
|
1019
|
+
"locale": locale,
|
|
1016
1020
|
}
|
|
1017
1021
|
|
|
1018
1022
|
response = self._http_client.request(
|
|
@@ -1688,6 +1692,7 @@ class AsyncUserManagement(UserManagementModule):
|
|
|
1688
1692
|
password_hash_type: Optional[PasswordHashType] = None,
|
|
1689
1693
|
external_id: Optional[str] = None,
|
|
1690
1694
|
metadata: Optional[Metadata] = None,
|
|
1695
|
+
locale: Optional[str] = None,
|
|
1691
1696
|
) -> User:
|
|
1692
1697
|
json = {
|
|
1693
1698
|
"first_name": first_name,
|
|
@@ -1699,6 +1704,7 @@ class AsyncUserManagement(UserManagementModule):
|
|
|
1699
1704
|
"password_hash_type": password_hash_type,
|
|
1700
1705
|
"external_id": external_id,
|
|
1701
1706
|
"metadata": metadata,
|
|
1707
|
+
"locale": locale,
|
|
1702
1708
|
}
|
|
1703
1709
|
|
|
1704
1710
|
response = await self._http_client.request(
|
|
@@ -20,6 +20,7 @@ from workos.exceptions import (
|
|
|
20
20
|
ServerException,
|
|
21
21
|
AuthenticationException,
|
|
22
22
|
AuthorizationException,
|
|
23
|
+
EmailVerificationRequiredException,
|
|
23
24
|
NotFoundException,
|
|
24
25
|
BadRequestException,
|
|
25
26
|
)
|
|
@@ -99,6 +100,11 @@ class BaseHTTPClient(Generic[_HttpxClientT]):
|
|
|
99
100
|
if status_code == 401:
|
|
100
101
|
raise AuthenticationException(response, response_json)
|
|
101
102
|
elif status_code == 403:
|
|
103
|
+
if (
|
|
104
|
+
response_json is not None
|
|
105
|
+
and response_json.get("code") == "email_verification_required"
|
|
106
|
+
):
|
|
107
|
+
raise EmailVerificationRequiredException(response, response_json)
|
|
102
108
|
raise AuthorizationException(response, response_json)
|
|
103
109
|
elif status_code == 404:
|
|
104
110
|
raise NotFoundException(response, response_json)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
workos/__about__.py,sha256=
|
|
1
|
+
workos/__about__.py,sha256=90Hf5DPMCnkNHSmq7ug9sJM0avrlzL8Q27SGSWF6pdM,406
|
|
2
2
|
workos/__init__.py,sha256=hOdbO_MJCvpLx8EbRjQg-fvFAB-glJmrmxUZK8kWG0k,167
|
|
3
3
|
workos/_base_client.py,sha256=YWLXBpd0YeID3WKYZkKa4l9ZuB9e6HgdLmPKZIzXsME,3599
|
|
4
4
|
workos/_client_configuration.py,sha256=g3eXhtrEMN6CW0hZ5uHb2PmLurXjyBkWZeQYMPeJD6s,222
|
|
@@ -7,7 +7,7 @@ workos/audit_logs.py,sha256=bYoAoNO4FRSaT34UxiVkgTXCVH8givcS2YGhH_9O3NA,3983
|
|
|
7
7
|
workos/client.py,sha256=hIm87iNtKfwQ93H5aRXnhTqUJIOzUEG1GX0jdLBLAYc,4345
|
|
8
8
|
workos/directory_sync.py,sha256=6Z1gHz1LWNy56EtkXwNm6jhRRcvsJ7ASeDLy_Q1oKM0,14601
|
|
9
9
|
workos/events.py,sha256=b4JIzMbd5LlVtpOMKVojC70RCHAgmLN3nJ62_2U0GwI,3892
|
|
10
|
-
workos/exceptions.py,sha256=
|
|
10
|
+
workos/exceptions.py,sha256=wYDlbMLVxrKQTF0M6ExFlxS5YEkvNZ4BeWLryRxcAFs,2335
|
|
11
11
|
workos/fga.py,sha256=qjZrdkXKwJDLVTMMrOADxyXRDkswto4kGIdtTjtS3hw,21008
|
|
12
12
|
workos/mfa.py,sha256=J8eOr4ZEmK0TPFKD7pabSalgCFCyg3XJY1stu28_8Vw,6862
|
|
13
13
|
workos/organization_domains.py,sha256=um-dm54SIs2Kd2FxqxVjIlynlenAG9NamQmNVUGOQ0k,5464
|
|
@@ -17,7 +17,7 @@ workos/portal.py,sha256=lzf3fnOor4AyVdHCHMuJzVSpAC9LWWdC5sZIRtCsb0c,2443
|
|
|
17
17
|
workos/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
18
|
workos/session.py,sha256=Fh9Y7fyjoX_cK2TayhNzpL725pwrNg-QClsgEfuMZsU,12412
|
|
19
19
|
workos/sso.py,sha256=ZBC3y-IRmxG0jPd0BOj7s7XQkXJoTLUg1fx-h3Gfy4g,13541
|
|
20
|
-
workos/user_management.py,sha256=
|
|
20
|
+
workos/user_management.py,sha256=0UsIW99wTHCxJaO3F1wcuPI0cv-ztk4WKYTVbCkFG_4,82193
|
|
21
21
|
workos/vault.py,sha256=SJXr3nJ03qJFuf30FjevMD6LLlDNX3MGaKlYGgICRRE,15657
|
|
22
22
|
workos/webhooks.py,sha256=CuwBxh6va9VZFVSXOknveGt6CCGDF3em07a-J12DbXI,4790
|
|
23
23
|
workos/widgets.py,sha256=bfbR0hQOHZabbgGL2ekD5sY1sjiUoWBTdrBd_a6WmBc,1721
|
|
@@ -105,7 +105,7 @@ workos/types/user_management/password_hash_type.py,sha256=1752LWdXbaH6TZ6IxbJWeR
|
|
|
105
105
|
workos/types/user_management/password_reset.py,sha256=-NJCfEh4Q1xS9fFXJaF_acYeuUc9POqERLh8urMhqt8,403
|
|
106
106
|
workos/types/user_management/screen_hint.py,sha256=DnPgvjRK-20i82v3YPzggna1rc6yOMyhiqwUdk01L3s,75
|
|
107
107
|
workos/types/user_management/session.py,sha256=crNGjN5pwGM3rXET7iCp0PZpSBK826P_bRlpFOhM5-4,2128
|
|
108
|
-
workos/types/user_management/user.py,sha256=
|
|
108
|
+
workos/types/user_management/user.py,sha256=qHI1zKn3WqFi5bT-g8GQiAUS_8xfpzyZRvOPBDUO3jM,636
|
|
109
109
|
workos/types/user_management/user_management_provider_type.py,sha256=t7S3zLf9n9GSYQJjshGRdiAfebYQKziGmUgbBlOmYuE,185
|
|
110
110
|
workos/types/vault/__init__.py,sha256=krBuIl8luysrtDf9-b8KTkXOHDOaSsOR-Aao6Wlil0Q,41
|
|
111
111
|
workos/types/vault/key.py,sha256=x30XBplSj9AviDDAB8MdpcULbZvvo2sUzi8RCmZQKxU,453
|
|
@@ -123,13 +123,13 @@ workos/typing/sync_or_async.py,sha256=O-a-bWqxN5A-UkSC3pOvPgDCGUY5gMD-NNny4HdISe
|
|
|
123
123
|
workos/typing/untyped_literal.py,sha256=wf48_6kZJ-AN3-V2gLC_y5k2tnUvgGnhn89HsfOKNTM,1463
|
|
124
124
|
workos/typing/webhooks.py,sha256=8GhUnrlGrgQbknh32tVtHxeR8FsXsJesW94CtZiB-_4,534
|
|
125
125
|
workos/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
126
|
-
workos/utils/_base_http_client.py,sha256=
|
|
126
|
+
workos/utils/_base_http_client.py,sha256=tX2RAk2Mc2oHPTpzIft4-Tss8-vOJZUjmHcQ9cjpwOs,7705
|
|
127
127
|
workos/utils/crypto_provider.py,sha256=QeQSR4t9xLlb90kEfl8onVUsf1yCkYq0EjFTxK0mUlk,1182
|
|
128
128
|
workos/utils/http_client.py,sha256=TM5yMFFExmAE8D2Z43-5O301tRbnylLG0aXO0isGorE,6197
|
|
129
129
|
workos/utils/pagination_order.py,sha256=_-et1DDJLG0czarTU7op4W6RA0V1f85GNsUgtyRU55Q,70
|
|
130
130
|
workos/utils/request_helper.py,sha256=NaO16qPPbSNnCeE0fiNKYb8gM-dK_okYVJbLGrEGXz8,793
|
|
131
|
-
workos-5.
|
|
132
|
-
workos-5.
|
|
133
|
-
workos-5.
|
|
134
|
-
workos-5.
|
|
135
|
-
workos-5.
|
|
131
|
+
workos-5.32.0.dist-info/LICENSE,sha256=mU--WL1JzelH2tXpKVoOlpud4cpqKSRTtdArCvYZmb4,1063
|
|
132
|
+
workos-5.32.0.dist-info/METADATA,sha256=gmhqbgss5cNnGwKWUxPMvzxk7a4jijLzTT7eVeOWMTs,4187
|
|
133
|
+
workos-5.32.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
134
|
+
workos-5.32.0.dist-info/top_level.txt,sha256=ZFskIfue1Tw-JwjyIXRvdsAl9i0DX9VbqmgICXV84Sk,7
|
|
135
|
+
workos-5.32.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|