diff --git a/msal-python-conceptual/TOC.yml b/msal-python-conceptual/TOC.yml index 387a658..a4009d8 100644 --- a/msal-python-conceptual/TOC.yml +++ b/msal-python-conceptual/TOC.yml @@ -1,11 +1,10 @@ -- name: Getting started +- name: Overview of MSAL Python href: index.md +- name: Get started items: - - name: Register your app with Microsoft Entra ID - href: /azure/active-directory/develop/active-directory-integrating-applications - name: Client applications href: getting-started/client-applications.md - - name: Acquiring tokens + - name: Acquire tokens href: getting-started/acquiring-tokens.md - name: Advanced topics @@ -22,12 +21,11 @@ href: advanced/conditional-access.md - name: Token cache serialization href: advanced/msal-python-token-cache-serialization.md - - name: Developing an Azure AD B2C app with MSAL Python + - name: Develop an Azure AD B2C app with MSAL Python href: advanced/aad-b2c.md - name: Active Directory Federation Services (ADFS) Support href: advanced/msal-python-adfs-support.md - name: National clouds - href: /azure/active-directory/develop/msal-national-cloud?tabs=python - name: Username and password authentication href: advanced/username-password-authentication.md - name: How to generate secret and/or certificate for Confidential Client diff --git a/msal-python-conceptual/advanced/aad-b2c.md b/msal-python-conceptual/advanced/aad-b2c.md index 85be5c9..b00d2b8 100644 --- a/msal-python-conceptual/advanced/aad-b2c.md +++ b/msal-python-conceptual/advanced/aad-b2c.md @@ -1,11 +1,19 @@ --- title: Use MSAL Python to work with Azure AD B2C description: "You can use MSAL Python to sign-in users with social identities, acquire tokens, and customize the sign-in experience by using Azure AD B2C." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Use MSAL Python to work with Azure AD B2C -## Summary You can use MSAL Python to sign-in users with social identities, acquire tokens, and customize the sign-in experience by using [Azure AD B2C](https://aka.ms/aadb2c). diff --git a/msal-python-conceptual/advanced/best-practices.md b/msal-python-conceptual/advanced/best-practices.md index 980d68b..46e55e9 100644 --- a/msal-python-conceptual/advanced/best-practices.md +++ b/msal-python-conceptual/advanced/best-practices.md @@ -1,6 +1,15 @@ --- title: Best practices for a robust enterprise ready application description: "You've seen that with MSAL Python you can quite simply acquire a token for a protected Web API. You also don't have to handle refreshing tokens yourself. However, to build robust, enterprise ready applications, you will need to do a bit more." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Best practices for a robust enterprise ready application diff --git a/msal-python-conceptual/advanced/client-capabilities.md b/msal-python-conceptual/advanced/client-capabilities.md index 9d0b6f2..52450c1 100644 --- a/msal-python-conceptual/advanced/client-capabilities.md +++ b/msal-python-conceptual/advanced/client-capabilities.md @@ -1,6 +1,15 @@ --- title: Client capabilities description: "The Microsoft Entra service provides features and policies which are applicable in certain scenarios, such as conditional access policies." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Client capabilities diff --git a/msal-python-conceptual/advanced/client-credentials.md b/msal-python-conceptual/advanced/client-credentials.md index f88100f..2ee4c0d 100644 --- a/msal-python-conceptual/advanced/client-credentials.md +++ b/msal-python-conceptual/advanced/client-credentials.md @@ -1,6 +1,15 @@ --- title: Client credentials description: There are two types of client credentials in MSAL Python - application secrets and certificates. +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Client credentials diff --git a/msal-python-conceptual/advanced/conditional-access.md b/msal-python-conceptual/advanced/conditional-access.md index 084fa76..6effea3 100644 --- a/msal-python-conceptual/advanced/conditional-access.md +++ b/msal-python-conceptual/advanced/conditional-access.md @@ -1,6 +1,15 @@ --- title: Conditional access and claims challenges description: "When getting tokens silently, your application may receive errors when a Conditional Access claims challenge, such as MFA polic, is required by an API you're trying to access." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Conditional access and claims challenges diff --git a/msal-python-conceptual/advanced/instance-metadata-caching.md b/msal-python-conceptual/advanced/instance-metadata-caching.md index 486ecf6..eb9a7fe 100644 --- a/msal-python-conceptual/advanced/instance-metadata-caching.md +++ b/msal-python-conceptual/advanced/instance-metadata-caching.md @@ -1,6 +1,15 @@ --- title: Instance metadata caching description: "Every developer wants their program to run faster. In this article, we are going to show you how you can add a one-liner to make your MSAL Python powered app to acquire a token roughly 1.5x to 2x faster!" +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Instance metadata caching diff --git a/msal-python-conceptual/advanced/logging.md b/msal-python-conceptual/advanced/logging.md index 6b7f8f6..ae743f0 100644 --- a/msal-python-conceptual/advanced/logging.md +++ b/msal-python-conceptual/advanced/logging.md @@ -1,6 +1,15 @@ --- title: Logging description: "Logging in MSAL Python is designed to use the standard Python logging mechanisms, so all your previous knowledge of Python logging applies to MSAL Python." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Logging diff --git a/msal-python-conceptual/advanced/migrate-python-adal-msal.md b/msal-python-conceptual/advanced/migrate-python-adal-msal.md index a9822f7..759cebb 100644 --- a/msal-python-conceptual/advanced/migrate-python-adal-msal.md +++ b/msal-python-conceptual/advanced/migrate-python-adal-msal.md @@ -1,6 +1,15 @@ --- title: Python ADAL to MSAL migration guide description: Learn how to migrate your Azure Active Directory Authentication Library (ADAL) Python app to the Microsoft Authentication Library (MSAL) for Python. +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # ADAL to MSAL migration guide for Python diff --git a/msal-python-conceptual/advanced/migrate.md b/msal-python-conceptual/advanced/migrate.md index 9cb1000..130d002 100644 --- a/msal-python-conceptual/advanced/migrate.md +++ b/msal-python-conceptual/advanced/migrate.md @@ -1,6 +1,15 @@ --- title: Migrate existing Refresh Tokens into MSAL Python description: "MSAL is not a low-level OAuth2 library. MSAL wraps and hides the concept of Refresh Token (RT) away from you." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Migrate existing Refresh Tokens into MSAL Python diff --git a/msal-python-conceptual/advanced/msal-error-handling-python.md b/msal-python-conceptual/advanced/msal-error-handling-python.md index ff1cfe8..409dc8b 100644 --- a/msal-python-conceptual/advanced/msal-error-handling-python.md +++ b/msal-python-conceptual/advanced/msal-error-handling-python.md @@ -1,6 +1,15 @@ --- title: Handle errors and exceptions in MSAL for Python description: Learn how to handle errors and exceptions, Conditional Access claims challenges, and retries in MSAL for Python applications. +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Handle errors and exceptions in MSAL for Python diff --git a/msal-python-conceptual/advanced/msal-logging-python.md b/msal-python-conceptual/advanced/msal-logging-python.md index b00aee0..89cb5fb 100644 --- a/msal-python-conceptual/advanced/msal-logging-python.md +++ b/msal-python-conceptual/advanced/msal-logging-python.md @@ -1,6 +1,15 @@ --- title: Logging errors and exceptions in MSAL for Python description: Learn how to log errors and exceptions in MSAL for Python +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Logging in MSAL for Python diff --git a/msal-python-conceptual/advanced/msal-python-adfs-support.md b/msal-python-conceptual/advanced/msal-python-adfs-support.md index 1a12f9f..afaf978 100644 --- a/msal-python-conceptual/advanced/msal-python-adfs-support.md +++ b/msal-python-conceptual/advanced/msal-python-adfs-support.md @@ -1,6 +1,15 @@ --- title: Azure AD FS support (MSAL Python) description: Learn about Active Directory Federation Services (AD FS) support in the Microsoft Authentication Library for Python +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Active Directory Federation Services support in MSAL for Python diff --git a/msal-python-conceptual/advanced/msal-python-token-cache-serialization.md b/msal-python-conceptual/advanced/msal-python-token-cache-serialization.md index 82b3e74..3e3ac80 100644 --- a/msal-python-conceptual/advanced/msal-python-token-cache-serialization.md +++ b/msal-python-conceptual/advanced/msal-python-token-cache-serialization.md @@ -1,6 +1,15 @@ --- title: Custom token cache serialization (MSAL Python) description: Learn how to serialize token cache using MSAL for Python +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Custom token cache serialization in MSAL for Python diff --git a/msal-python-conceptual/advanced/username-password-authentication.md b/msal-python-conceptual/advanced/username-password-authentication.md index 26bd472..7ceb3de 100644 --- a/msal-python-conceptual/advanced/username-password-authentication.md +++ b/msal-python-conceptual/advanced/username-password-authentication.md @@ -1,6 +1,15 @@ --- title: Username and password authentication description: "By design and policy, the username/password authentication works only for Work and school accounts, but not for Microsoft Accounts (MSA)." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Username and password authentication diff --git a/msal-python-conceptual/advanced/wam.md b/msal-python-conceptual/advanced/wam.md index 249c229..b1b0bde 100644 --- a/msal-python-conceptual/advanced/wam.md +++ b/msal-python-conceptual/advanced/wam.md @@ -1,6 +1,15 @@ --- title: Using MSAL Python with Web Account Manager description: "If you are building a Windows application, you might consider simplifying how users authenticate with the help of an authentication broker - the Web Account Manager." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Using MSAL Python with Web Account Manager diff --git a/msal-python-conceptual/breadcrumb/toc.yml b/msal-python-conceptual/breadcrumb/toc.yml index 61d8fca..1aefe0f 100644 --- a/msal-python-conceptual/breadcrumb/toc.yml +++ b/msal-python-conceptual/breadcrumb/toc.yml @@ -1,3 +1,3 @@ - name: Docs - tocHref: / - topicHref: / \ No newline at end of file + tocHref: /Learn/Microsoft Entra/MSAL + topicHref: /Learn/Microsoft Entra/MSAL \ No newline at end of file diff --git a/msal-python-conceptual/docfx.json b/msal-python-conceptual/docfx.json index 7df17e3..57fd838 100644 --- a/msal-python-conceptual/docfx.json +++ b/msal-python-conceptual/docfx.json @@ -54,17 +54,13 @@ ] }, "fileMetadata": { - "author": { - "*.md": "localden", - "*/**.md": "localden" - }, - "ms.author": { - "*.md": "ddelimarsky", - "*/**.md": "ddelimarsky" - }, "ms.service": { - "*.md": "active-directory", - "*/**.md": "active-directory" + "*.md": "msal", + "*/**.md": "msal" + }, + "ms.subservice": { + "*.md": "msal-python", + "*/**.md": "msal-python" }, "titleSuffix": { "*.md": "Microsoft Authentication Library for Python", diff --git a/msal-python-conceptual/getting-started/acquiring-tokens.md b/msal-python-conceptual/getting-started/acquiring-tokens.md index 360c08d..522306b 100644 --- a/msal-python-conceptual/getting-started/acquiring-tokens.md +++ b/msal-python-conceptual/getting-started/acquiring-tokens.md @@ -1,6 +1,15 @@ --- -title: Acquiring tokens -description: "There are many ways of acquiring a token. Some require user interaction through a web browser. Some don't require any user interaction." +title: Acquire tokens for your app +description: Learn how to acquire tokens for your Python appliccation. You can acquire tokens silently or interactively through a web browser. +author: Dickson-Mwendia +manager: CelesteDG +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo +zone_pivot_groups: msal-python-acquire-token --- # Acquiring tokens @@ -15,6 +24,9 @@ Before acquiring tokens with MSAL Python, make sure to instantiate a [client app The approach to acquiring a token is different depending on the application type - public client applications (desktop and mobile) or confidential client application (web app, web API, or a daemon application like a Windows service). Each of the individual approaches is described below. + +:::zone pivot="pca" + ### Public client applications Public client applications cannot securely store a secret and can _only_ authenticate the user that is interacting with the product. MSAL Python exposes most of the token acquisition logic for public applications through [`PublicClientApplication`](xref:msal.application.PublicClientApplication). Using this class enables developers to: @@ -23,6 +35,10 @@ Public client applications cannot securely store a secret and can _only_ authent - It's also possible (but not recommended) to get a token with a [username and password](/azure/active-directory/develop/scenario-desktop-acquire-token?tabs=python#username--password). - For applications running on devices which don't have a web browser, it's possible to acquire a token through the [device code flow](/azure/active-directory/develop/scenario-desktop-acquire-token?tabs=python#command-line-tool-without-web-browser), which provides the user with a URL and a code. The user goes to a web browser on another device, enters the code and signs in. On successful authentication, Microsoft Entra ID will return a token to the browser-less device. +:::zone-end + +:::zone pivot="cca" + ### Confidential client applications Confidential client applications can securely store a secret and can authenticate both on behalf of an application as well as on behalf of a given user. With MSAL Python, developers can use [`ConfidentialClientApplication`](xref:msal.application.ConfidentialClientApplication) to access confidential client application capabilities, such as: @@ -31,6 +47,8 @@ Confidential client applications can securely store a secret and can authenticat - In the case of web Apps or web APIs **calling another downstream Web API in the name of the user**, use the [On Behalf Of flow](/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow) to acquire a token based on a user assertion (e.g., SAML, JWT). - **For Web apps authenticating in the name of a user**, acquire tokens through [authorization code](/azure/active-directory/develop/scenario-web-app-call-api-acquire-token?tabs=python) after letting the user sign-in through the authorization request URL. This is typically the mechanism used by an application which lets the user sign-in using OpenID Connect but then wants to access Web APIs for this particular user. +:::zone-end + ## MSAL Python token caching Both public and confidential client applications support token caching, handled direclt by MSAL Python. Applications should try to get a token from the cache first before relying on any other means. Take a look at the [recommended token acquisition pattern](/azure/active-directory/develop/scenario-desktop-acquire-token?tabs=python) to learn more. diff --git a/msal-python-conceptual/getting-started/client-applications.md b/msal-python-conceptual/getting-started/client-applications.md index ba12f92..f6062a5 100644 --- a/msal-python-conceptual/getting-started/client-applications.md +++ b/msal-python-conceptual/getting-started/client-applications.md @@ -1,6 +1,15 @@ --- title: Client applications description: "How to instantiate client applications in MSAL Python." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Client applications diff --git a/msal-python-conceptual/index.md b/msal-python-conceptual/index.md index d55c5f9..03a21d6 100644 --- a/msal-python-conceptual/index.md +++ b/msal-python-conceptual/index.md @@ -1,11 +1,22 @@ --- -title: Microsoft Authentication Library (MSAL) for Python -description: "Get started with the Microsoft Authentication Library for Python to sign in users or apps with Microsoft identities." +title: Overview of the Microsoft Authentication Library (MSAL) for Python +description: Get started with the Microsoft Authentication Library for Python to sign in users or apps with Microsoft identities." +author: Dickson-Mwendia +manager: CelesteDG + +ms.service: msal +ms.subservice: msal-python +ms.topic: conceptual +ms.date: 02/07/2024 +ms.author: dmwendia +ms.reviewer: shermanouko, rayluo --- # Microsoft Authentication Library (MSAL) for Python -Get started with the Microsoft Authentication Library for Python to sign in users or apps with Microsoft identities ([Microsoft Entra ID](https://azure.microsoft.com/services/active-directory/), [Microsoft Accounts](https://account.microsoft.com), and [Azure AD B2C](https://azure.microsoft.com/services/active-directory-b2c/) accounts) and obtain tokens to call Microsoft APIs such as [Microsoft Graph](https://graph.microsoft.io/) or your own APIs. +The Microsoft Authentication Library (MSAL) for Python library enables you to sign in users or apps with Microsoft identities ([Microsoft Entra ID](https://azure.microsoft.com/services/active-directory/), [Microsoft Accounts](https://account.microsoft.com), and [Azure AD B2C](https://azure.microsoft.com/services/active-directory-b2c/) accounts). Using MSAL Python, you can acquire tokens from Microsoft Entra ID to call protected web APIs such as [Microsoft Graph](https://graph.microsoft.io/), other Microsoft APIs, or your own APIs. + + ## Prerequisites diff --git a/xrefmap.yml b/xrefmap.yml index dc3656e..4643321 100644 --- a/xrefmap.yml +++ b/xrefmap.yml @@ -3467,6 +3467,10 @@ references: href: https://docs.python.org/3/library/logging.html#logging.lastResort name: lastResort uid: logging.lastResort +- fullName: logging.raiseExceptions + href: https://docs.python.org/3/library/logging.html#logging.raiseExceptions + name: raiseExceptions + uid: logging.raiseExceptions - fullName: lzma.LZMADecompressor.check href: https://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.check name: check @@ -4907,6 +4911,18 @@ references: href: https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.pax_headers name: pax_headers uid: tarfile.TarFile.pax_headers +- fullName: tarfile.TarInfo.chksum + href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.chksum + name: chksum + uid: tarfile.TarInfo.chksum +- fullName: tarfile.TarInfo.devmajor + href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.devmajor + name: devmajor + uid: tarfile.TarInfo.devmajor +- fullName: tarfile.TarInfo.devminor + href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.devminor + name: devminor + uid: tarfile.TarInfo.devminor - fullName: tarfile.TarInfo.gid href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gid name: gid @@ -4931,6 +4947,14 @@ references: href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.name name: name uid: tarfile.TarInfo.name +- fullName: tarfile.TarInfo.offset + href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.offset + name: offset + uid: tarfile.TarInfo.offset +- fullName: tarfile.TarInfo.offset_data + href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.offset_data + name: offset_data + uid: tarfile.TarInfo.offset_data - fullName: tarfile.TarInfo.pax_headers href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.pax_headers name: pax_headers @@ -4939,6 +4963,10 @@ references: href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.size name: size uid: tarfile.TarInfo.size +- fullName: tarfile.TarInfo.sparse + href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.sparse + name: sparse + uid: tarfile.TarInfo.sparse - fullName: tarfile.TarInfo.type href: https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.type name: type @@ -18923,6 +18951,18 @@ references: href: https://docs.python.org/3/library/ast.html#ast.PyCF_TYPE_COMMENTS name: PyCF_TYPE_COMMENTS uid: ast.PyCF_TYPE_COMMENTS +- fullName: asyncio.ALL_COMPLETED + href: https://docs.python.org/3/library/asyncio-task.html#asyncio.ALL_COMPLETED + name: ALL_COMPLETED + uid: asyncio.ALL_COMPLETED +- fullName: asyncio.FIRST_COMPLETED + href: https://docs.python.org/3/library/asyncio-task.html#asyncio.FIRST_COMPLETED + name: FIRST_COMPLETED + uid: asyncio.FIRST_COMPLETED +- fullName: asyncio.FIRST_EXCEPTION + href: https://docs.python.org/3/library/asyncio-task.html#asyncio.FIRST_EXCEPTION + name: FIRST_EXCEPTION + uid: asyncio.FIRST_EXCEPTION - fullName: asyncio.subprocess.DEVNULL href: https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.DEVNULL name: DEVNULL @@ -19095,6 +19135,18 @@ references: href: https://docs.python.org/3/library/codecs.html#codecs.BOM_UTF8 name: BOM_UTF8 uid: codecs.BOM_UTF8 +- fullName: concurrent.futures.ALL_COMPLETED + href: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ALL_COMPLETED + name: ALL_COMPLETED + uid: concurrent.futures.ALL_COMPLETED +- fullName: concurrent.futures.FIRST_COMPLETED + href: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.FIRST_COMPLETED + name: FIRST_COMPLETED + uid: concurrent.futures.FIRST_COMPLETED +- fullName: concurrent.futures.FIRST_EXCEPTION + href: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.FIRST_EXCEPTION + name: FIRST_EXCEPTION + uid: concurrent.futures.FIRST_EXCEPTION - fullName: configparser.MAX_INTERPOLATION_DEPTH href: https://docs.python.org/3/library/configparser.html#configparser.MAX_INTERPOLATION_DEPTH name: MAX_INTERPOLATION_DEPTH @@ -20043,6 +20095,10 @@ references: href: https://docs.python.org/3/library/datetime.html#datetime.MINYEAR name: MINYEAR uid: datetime.MINYEAR +- fullName: dbm.gnu.open_flags + href: https://docs.python.org/3/library/dbm.html#dbm.gnu.open_flags + name: open_flags + uid: dbm.gnu.open_flags - fullName: dbm.ndbm.library href: https://docs.python.org/3/library/dbm.html#dbm.ndbm.library name: library @@ -20983,6 +21039,82 @@ references: href: https://docs.python.org/3/library/constants.html#license name: license uid: license +- fullName: locale.ABDAY_1 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_1 + name: ABDAY_1 + uid: locale.ABDAY_1 +- fullName: locale.ABDAY_2 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_2 + name: ABDAY_2 + uid: locale.ABDAY_2 +- fullName: locale.ABDAY_3 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_3 + name: ABDAY_3 + uid: locale.ABDAY_3 +- fullName: locale.ABDAY_4 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_4 + name: ABDAY_4 + uid: locale.ABDAY_4 +- fullName: locale.ABDAY_5 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_5 + name: ABDAY_5 + uid: locale.ABDAY_5 +- fullName: locale.ABDAY_6 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_6 + name: ABDAY_6 + uid: locale.ABDAY_6 +- fullName: locale.ABDAY_7 + href: https://docs.python.org/3/library/locale.html#locale.ABDAY_7 + name: ABDAY_7 + uid: locale.ABDAY_7 +- fullName: locale.ABMON_1 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_1 + name: ABMON_1 + uid: locale.ABMON_1 +- fullName: locale.ABMON_10 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_10 + name: ABMON_10 + uid: locale.ABMON_10 +- fullName: locale.ABMON_11 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_11 + name: ABMON_11 + uid: locale.ABMON_11 +- fullName: locale.ABMON_12 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_12 + name: ABMON_12 + uid: locale.ABMON_12 +- fullName: locale.ABMON_2 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_2 + name: ABMON_2 + uid: locale.ABMON_2 +- fullName: locale.ABMON_3 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_3 + name: ABMON_3 + uid: locale.ABMON_3 +- fullName: locale.ABMON_4 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_4 + name: ABMON_4 + uid: locale.ABMON_4 +- fullName: locale.ABMON_5 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_5 + name: ABMON_5 + uid: locale.ABMON_5 +- fullName: locale.ABMON_6 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_6 + name: ABMON_6 + uid: locale.ABMON_6 +- fullName: locale.ABMON_7 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_7 + name: ABMON_7 + uid: locale.ABMON_7 +- fullName: locale.ABMON_8 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_8 + name: ABMON_8 + uid: locale.ABMON_8 +- fullName: locale.ABMON_9 + href: https://docs.python.org/3/library/locale.html#locale.ABMON_9 + name: ABMON_9 + uid: locale.ABMON_9 - fullName: locale.ALT_DIGITS href: https://docs.python.org/3/library/locale.html#locale.ALT_DIGITS name: ALT_DIGITS @@ -20999,6 +21131,34 @@ references: href: https://docs.python.org/3/library/locale.html#locale.CRNCYSTR name: CRNCYSTR uid: locale.CRNCYSTR +- fullName: locale.DAY_1 + href: https://docs.python.org/3/library/locale.html#locale.DAY_1 + name: DAY_1 + uid: locale.DAY_1 +- fullName: locale.DAY_2 + href: https://docs.python.org/3/library/locale.html#locale.DAY_2 + name: DAY_2 + uid: locale.DAY_2 +- fullName: locale.DAY_3 + href: https://docs.python.org/3/library/locale.html#locale.DAY_3 + name: DAY_3 + uid: locale.DAY_3 +- fullName: locale.DAY_4 + href: https://docs.python.org/3/library/locale.html#locale.DAY_4 + name: DAY_4 + uid: locale.DAY_4 +- fullName: locale.DAY_5 + href: https://docs.python.org/3/library/locale.html#locale.DAY_5 + name: DAY_5 + uid: locale.DAY_5 +- fullName: locale.DAY_6 + href: https://docs.python.org/3/library/locale.html#locale.DAY_6 + name: DAY_6 + uid: locale.DAY_6 +- fullName: locale.DAY_7 + href: https://docs.python.org/3/library/locale.html#locale.DAY_7 + name: DAY_7 + uid: locale.DAY_7 - fullName: locale.D_FMT href: https://docs.python.org/3/library/locale.html#locale.D_FMT name: D_FMT @@ -21051,6 +21211,54 @@ references: href: https://docs.python.org/3/library/locale.html#locale.LC_TIME name: LC_TIME uid: locale.LC_TIME +- fullName: locale.MON_1 + href: https://docs.python.org/3/library/locale.html#locale.MON_1 + name: MON_1 + uid: locale.MON_1 +- fullName: locale.MON_10 + href: https://docs.python.org/3/library/locale.html#locale.MON_10 + name: MON_10 + uid: locale.MON_10 +- fullName: locale.MON_11 + href: https://docs.python.org/3/library/locale.html#locale.MON_11 + name: MON_11 + uid: locale.MON_11 +- fullName: locale.MON_12 + href: https://docs.python.org/3/library/locale.html#locale.MON_12 + name: MON_12 + uid: locale.MON_12 +- fullName: locale.MON_2 + href: https://docs.python.org/3/library/locale.html#locale.MON_2 + name: MON_2 + uid: locale.MON_2 +- fullName: locale.MON_3 + href: https://docs.python.org/3/library/locale.html#locale.MON_3 + name: MON_3 + uid: locale.MON_3 +- fullName: locale.MON_4 + href: https://docs.python.org/3/library/locale.html#locale.MON_4 + name: MON_4 + uid: locale.MON_4 +- fullName: locale.MON_5 + href: https://docs.python.org/3/library/locale.html#locale.MON_5 + name: MON_5 + uid: locale.MON_5 +- fullName: locale.MON_6 + href: https://docs.python.org/3/library/locale.html#locale.MON_6 + name: MON_6 + uid: locale.MON_6 +- fullName: locale.MON_7 + href: https://docs.python.org/3/library/locale.html#locale.MON_7 + name: MON_7 + uid: locale.MON_7 +- fullName: locale.MON_8 + href: https://docs.python.org/3/library/locale.html#locale.MON_8 + name: MON_8 + uid: locale.MON_8 +- fullName: locale.MON_9 + href: https://docs.python.org/3/library/locale.html#locale.MON_9 + name: MON_9 + uid: locale.MON_9 - fullName: locale.NOEXPR href: https://docs.python.org/3/library/locale.html#locale.NOEXPR name: NOEXPR @@ -25347,6 +25555,38 @@ references: href: https://docs.python.org/3/library/email.mime.html#module-email.mime name: mime uid: email.mime +- fullName: email.mime.application + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.application + name: application + uid: email.mime.application +- fullName: email.mime.audio + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.audio + name: audio + uid: email.mime.audio +- fullName: email.mime.base + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.base + name: base + uid: email.mime.base +- fullName: email.mime.image + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.image + name: image + uid: email.mime.image +- fullName: email.mime.message + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.message + name: message + uid: email.mime.message +- fullName: email.mime.multipart + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.multipart + name: multipart + uid: email.mime.multipart +- fullName: email.mime.nonmultipart + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.nonmultipart + name: nonmultipart + uid: email.mime.nonmultipart +- fullName: email.mime.text + href: https://docs.python.org/3/library/email.mime.html#module-email.mime.text + name: text + uid: email.mime.text - fullName: email.parser href: https://docs.python.org/3/library/email.parser.html#module-email.parser name: parser @@ -27851,6 +28091,10 @@ references: href: https://docs.python.org/3/library/ftplib.html#ftplib.FTP name: FTP uid: ftplib.FTP +- fullName: ftplib.FTP_TLS + href: https://docs.python.org/3/library/ftplib.html#ftplib.FTP_TLS + name: FTP_TLS + uid: ftplib.FTP_TLS - fullName: functools.partialmethod href: https://docs.python.org/3/library/functools.html#functools.partialmethod name: partialmethod @@ -27891,6 +28135,10 @@ references: href: https://docs.python.org/3/library/http.client.html#http.client.HTTPConnection name: HTTPConnection uid: http.client.HTTPConnection +- fullName: http.client.HTTPMessage + href: https://docs.python.org/3/library/http.client.html#http.client.HTTPMessage + name: HTTPMessage + uid: http.client.HTTPMessage - fullName: http.client.HTTPResponse href: https://docs.python.org/3/library/http.client.html#http.client.HTTPResponse name: HTTPResponse @@ -33083,6 +33331,10 @@ references: href: https://docs.python.org/3/library/locale.html#locale.atoi name: atoi uid: locale.atoi +- fullName: locale.bind_textdomain_codeset + href: https://docs.python.org/3/library/locale.html#locale.bind_textdomain_codeset + name: bind_textdomain_codeset + uid: locale.bind_textdomain_codeset - fullName: locale.bindtextdomain href: https://docs.python.org/3/library/locale.html#locale.bindtextdomain name: bindtextdomain