This repository houses the code for a Python SDK to interact with Atlan.
https://developer.atlan.com/getting-started/python-sdk/
To get started developing the SDK:
-
Clone the repository:
git clone <repository-url>
-
Ensure you have Python 3.8 or later installed. You can verify your Python version with:
python --version
or
python3 --version
-
Set up a virtual environment for development:
python -m venv venv source venv/bin/activate # On macOS/Linux venv\Scripts\activate # On Windows
-
Install the required dependencies:
# Upgrade pip before installing dependencies python -m pip install --upgrade pip # Install required dependencies for development pip install -e . && pip install -r requirements-dev.txt
Before committing code, ensure it adheres to the repository's formatting guidelines. You can apply the required formatting using the below command:
./pyatlan-formatter
For running integration tests, you'll need to configure your environment:
- Copy the example environment file:
cp .env.example .env
- Update the
.env
file with your Atlan API key and base URL. - Load the environment variables:
- For macOS/Linux:
export $(cat .env | xargs)
- For Windows (PowerShell): Load environment variables
# Run this in PowerShell (not Command Prompt) Get-Content .env | ForEach-Object { if ($_ -match '^(.*?)=(.*)$') { $env:($matches[1]) = $matches[2] } }
- For macOS/Linux: Load environment variables from .env file
export $(cat .env | xargs)
- For macOS/Linux:
You can run all the QA checks using the following command:
./qa-checks
You can run the SDK's unit tests without needing access to an Atlan environment:
pytest tests/unit
Once the environment is set up, you can run integration tests:
- All integration tests:
pytest tests/integration
- Specific integration tests:
pytest tests/integration/<test_specific_feature>.py
If you've pushed new typedefs to Atlan and want to generate SDK asset models to manage them via the SDK, this section covers how to run the SDK generator.
Note
Before running any generator scripts, make sure you have configured your environment variables specifically ATLAN_BASE_URL
and ATLAN_API_KEY
.
-
Retrieve the typedefs from your Atlan instance and save them to a JSON file by running:
python3 pyatlan/generator/create_typedefs_file.py
-
Generate the asset
models
,enums
, andstruct
modules in the SDK based on the typedefs by running:python3 pyatlan/generator/class_generator.py
-
The generated files will be unformatted. To format them properly, run the formatter:
./pyatlan-formatter
Portions of the SDK are based on original work from https://github.com/apache/atlas. Those classes that derive from this original work have an extra heading comment as follows:
# Based on original code from https://github.com/apache/atlas (under Apache-2.0 license)
Portions of the SDK are based on original work from https://github.com/elastic/elasticsearch-dsl-py. Those classes that derive from this original work have an extra heading comment as follows:
# Based on original code from https://github.com/elastic/elasticsearch-dsl-py.git (under Apache-2.0 license)
License: CC BY 4.0, Copyright 2022 Atlan Pte. Ltd.