| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
# Latest stable version
pip install pyatlan
# Specific version
pip install pyatlan==7.1.3
# With uv (faster) - install uv first: curl -LsSf https://astral.sh/uv/install.sh | sh
uv add pyatlan# Clone the repository
git clone https://github.com/atlanhq/atlan-python.git
cd atlan-python
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install with development dependencies
uv sync --group dev
# Run quality checks
uv run ./qa-checks
# Run tests
uv run pytest tests/unitThis project uses uv dependency groups for better dependency management:
You can install multiple groups:
# Install both dev and docs dependencies
uv sync --group dev --group docs
# Install all dependencies
uv sync --all-groups# Latest main image
docker pull registry.atlan.com/public/pyatlan:main-latest
# Version + Python tag
docker pull registry.atlan.com/public/pyatlan:8.5.1-3.11
# Commit-specific image
docker pull registry.atlan.com/public/pyatlan:sha-1a064032# Interactive Python session
docker run -it --rm registry.atlan.com/public/pyatlan:main-latest
# Run a script
docker run -it --rm \
-v $(pwd):/app \
-e ATLAN_API_KEY=your_key \
-e ATLAN_BASE_URL=https://your-tenant.atlan.com \
registry.atlan.com/public/pyatlan:main-latest \
python your_script.pyuv export --all-extras --no-hashes > requirements.txt
snyk test --file=requirements.txt --severity-threshold=high --skip-unresolved
rm -f requirements.txt# Run all unit tests
uv run pytest tests/unit
# Run with coverage
uv run pytest tests/unit --cov=pyatlan --cov-report=html# Set up environment
cp .env.example .env
# Edit .env with your Atlan credentials
# Run integration tests
uv run pytest tests/integration# Run all QA checks (formatting, linting, type checking)
uv run ./qa-checks
# Individual checks
uv run ruff format . # Code formatting
uv run ruff check . # Linting
uv run mypy . # Type checkingWe welcome contributions! Here's how to get started:
# Fork and clone the repository
git clone https://github.com/your-username/atlan-python.git
cd atlan-python
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install development dependencies
uv sync --group dev
# Install pre-commit hooks
uv run pre-commit install# Create a feature branch
git checkout -b feature/amazing-feature
# Make your changes and test
uv run ./formatter
uv run ./qa-checks
uv run pytest tests/unit
# Commit with conventional commits
git commit -m "feat: add amazing feature"
# Push and create a pull request
git push origin feature/amazing-featureGenerate asset models from your Atlan instance:
# Generate models automatically
uv run ./generator
# Force re-download typedefs (bypass cache)
uv run ./generator --override
# Use custom typedefs file
uv run ./generator ./my-typedefs.json
# Both flags can be combined
uv run ./generator --override ./my-typedefs.jsonThis will:
Generate the app builders in pyatlan.model.apps (one per connector app) from your tenant's UI configmaps. Each app gets a typed *Inputs model and a fluent, UI-equivalent builder (Credential โ Connection โ Metadata), plus a matching unit-test module under tests/unit/apps/.
# Needs a tenant with the apps installed
export ATLAN_BASE_URL=https://<your-tenant-host>
export ATLAN_API_KEY=<your-api-key>
# Regenerate all app builders + their tests
uv run generate-appsThis will:
To cover an app that isn't currently running on the tenant, add its (app_id, entrypoint) to MANIFEST in pyatlan/generator/generate_apps.py.
The pyatlan_v9 package uses msgspec Struct-based models generated from Pkl type definitions in the atlanhq/models repo.
The recommended way to regenerate models is via the Claude Code skill:
# From the atlan-python repo root:
/generate-v9-models # Generate from models@master
/generate-v9-models <branch> # Generate from a specific models branch
/generate-v9-models test # Generate and run tests
/generate-v9-models <branch> testThe skill will:
Custom methods (creator(), updater(), policy helpers, etc.) live in pyatlan_v9/model/assets/_overlays/. These are Python files read by the Pkl renderer and injected into generated classes. Each overlay file uses import directives:
Some types are not yet fully generated and are maintained by hand:
Understanding the codebase layout will help you navigate and contribute effectively:
atlan-python/ โโโ pyatlan/ # ๐ Main Python package โ โโโ __init__.py # Package initialization โ โโโ cache/ # ๐พ Caching mechanisms โ โ โโโ atlan_tag_cache.py # Tag name โ GUID mapping โ โ โโโ custom_metadata_cache.py # Custom metadata definitions โ โ โโโ enum_cache.py # Enum value caching โ โ โโโ aio/ # Async versions of caches โ โโโ client/ # ๐ HTTP client implementations โ โ โโโ atlan.py # Main synchronous client โ โ โโโ asset.py # Asset operations (CRUD, search) โ โ โโโ admin.py # Administrative operations โ โ โโโ audit.py # Audit log operations โ โ โโโ common/ # Shared client logic โ โ โโโ aio/ # Async client implementations โ โโโ model/ # ๐ Data models and assets โ โ โโโ assets/ # Asset type definitions โ โ โ โโโ core/ # Core asset types (Table, Database, etc.) โ โ โ โโโ relations/ # Relationship models โ โ โโโ fields/ # Search field definitions โ โ โโโ open_lineage/ # OpenLineage specification models โ โ โโโ packages/ # Package/workflow models โ โ โโโ aio/ # Async model variants โ โโโ generator/ # ๐๏ธ Code generation tools โ โ โโโ templates/ # Jinja2 templates for generation โ โ โโโ class_generator.py # Main generation logic โ โโโ pkg/ # ๐ฆ Package creation utilities โ โโโ events/ # ๐ Event handling (webhooks, lambdas) โ โโโ samples/ # ๐ก Example code and scripts โ โโโ test_utils/ # ๐งช Testing utilities โโโ tests/ # ๐งช Test suite โ โโโ unit/ # Unit tests (fast, no external deps) โ โโโ integration/ # Integration tests (require Atlan instance) โ โโโ data/ # Test fixtures and mock data โโโ docs/ # ๐ Sphinx documentation โ โโโ conf.py # Sphinx configuration โ โโโ *.rst # Documentation source files โโโ pyproject.toml # ๐ Project configuration (deps, tools) โโโ uv.lock # ๐ Locked dependencies โโโ qa-checks # โ Quality assurance script โโโ formatter # ๐จ Code formatting script โโโ generator # ๐๏ธ Model generation script
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Portions of this SDK are based on original work from:
Built with ๐ by Atlan
Website โข Documentation โข Support
| Back | FazBrowse Home | New Git URL |