Registry / data / pyatlan

pyatlan

JSON →
library9.7.4pypypiunverified

The `pyatlan` library is the official Python SDK for interacting with Atlan, a data governance and metadata management platform. It provides typed wrappers around the Atlan REST API, enabling users to programmatically search, discover, govern, and manage various data assets like tables, dashboards, and glossary terms. The current version, 9.4.0, includes experimental features for the next-generation `pyatlan_v9` and ongoing quality-of-life improvements. The library maintains an active release cadence with frequent updates.

pip install pyatlan
INSTALL
IMPORT
SIG · PYATLAN
P
pyatlan
datapythonv9.7.4
Install
8.9s avg
Import
Disk
114MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v9.7.4 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
installs and imports cleanly · install 0.0s · import 0.000s · 110MB
glibc
py 3.103.920 runs
installs and imports cleanly · install 8.9s · import 0.000s · 110MB
114MB installed
● package 114MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AtlanClient
from pyatlan import AtlanClient
from pyatlan.client import AtlanClient

Initializes the `AtlanClient` using API key authentication (preferably from environment variables) and performs a basic search for active Table assets.

import os from pyatlan.client import AtlanClient from pyatlan.model.fluent_search import FluentSearch from pyatlan.model.assets import Table # Configure with environment variables (recommended) or direct parameters ATLAN_BASE_URL = os.environ.get('ATLAN_BASE_URL', 'https://<your-tenant>.atlan.com') ATLAN_API_KEY = os.environ.get('ATLAN_API_KEY', 'YOUR_API_KEY') # Assign persona(s) to API token for access if not ATLAN_API_KEY or 'YOUR_API_KEY' in ATLAN_API_KEY: raise ValueError("Please set ATLAN_API_KEY environment variable or replace 'YOUR_API_KEY' with your actual key.") if not ATLAN_BASE_URL or '<your-tenant>' in ATLAN_BASE_URL: raise ValueError("Please set ATLAN_BASE_URL environment variable or replace '<your-tenant>.atlan.com' with your actual Atlan URL.") try: client = AtlanClient(base_url=ATLAN_BASE_URL, api_key=ATLAN_API_KEY) # Example: Search for active Table assets search_request = ( FluentSearch() .where(FluentSearch.asset_type(Table)) .where(FluentSearch.active_assets()) .page_size(10) .to_request() ) response = client.asset.search(search_request) print(f"Found {len(response.assets)} active Tables:") for asset in response.assets: print(f" - {asset.name} ({asset.qualified_name})") except Exception as e: print(f"An error occurred: {e}")
Debug
Known issues
breakingMajor architectural shift in version 9.0.0, where the core data layer models transitioned from Pydantic v1 to `msgspec` for improved performance. This is part of the experimental `pyatlan_v9` initiative.
fix
Review and update code interacting with Atlan models, especially for serialization/deserialization. While functional parity is intended, direct Pydantic v1 model usage may require adaptation. Refer to `pyatlan_v9` documentation for migration guidance.
affects: >=9.0.0
gotchaIn versions 9.2.0 through 9.3.1, the policy duplicate detection logic could inadvertently block legitimate policy *updates*, treating them as duplicate creations.
fix
Upgrade to `pyatlan` version 9.3.2 or later, which revised the logic to correctly distinguish between retried creations and legitimate update requests, allowing updates to proceed.
affects: 9.2.0 - 9.3.1
gotchaIn versions prior to 9.3.0, the `DQCondition.value` field's `Union` type ordering could incorrectly coerce integer values to strings during deserialization, leading to data type mismatches.
fix
Upgrade to `pyatlan` version 9.3.0 or later, which reordered the `Union` type to prioritize `int` over `str`, resolving the deserialization issue.
affects: <9.3.0
gotchaDirectly embedding API keys or other sensitive credentials in code is a security risk. API keys should never appear in logs or exception tracebacks.
fix
Always use environment variables (e.g., `ATLAN_API_KEY`, `ATLAN_BASE_URL`) for credentials. Ensure your logging configuration strips sensitive information from logs.
affects: All versions
Upgrade
Version history
9.7.4latest on PyPI · released Jun 2, 2026
Audit
Dependencies
pythonrequiredRequired runtime version.
httpxrequiredHTTP client for API communication.
pydanticrequiredData validation, specifically Pydantic v2 models are now used. Older versions (pre-9.0.0) used Pydantic v1, which was replaced.
authlibrequiredAuthentication utilities.
msgspecrequiredUsed for faster serialization/deserialization in `pyatlan_v9` (from v9.0.0 onwards), replacing Pydantic v1 for core data layer models.
Agent activity
12 hits · last 30 days
node
12
Resources
pyatlan — pip install pyatlan · libregistry