Metadata-Version: 2.4
Name: pyatlan
Version: 7.0.1
Summary: Atlan Python Client
Home-page: https://github.com/atlanhq/atlan-python
Author: Atlan Technologies Pvt Ltd
Author-email: engineering@atlan.com
License: Apache LICENSE 2.0
Keywords: atlan client
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: requests~=2.32.3
Requires-Dist: pydantic~=2.10.6
Requires-Dist: jinja2~=3.1.6
Requires-Dist: tenacity~=9.0.0
Requires-Dist: urllib3<3,>=1.26.0
Requires-Dist: lazy_loader~=0.4
Requires-Dist: nanoid~=2.0.0
Requires-Dist: pytz~=2025.1
Requires-Dist: python-dateutil~=2.9.0.post0
Requires-Dist: PyYAML~=6.0.2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright 2022 Atlan Pte. Ltd. -->

[![SphinxDocs](https://img.shields.io/badge/sphinx--docs-passing-success)](https://atlanhq.github.io/atlan-python/)

# Atlan Python SDK

This repository houses the code for a Python SDK to interact with [Atlan](https://atlan.com).

## [Documentation](https://developer.atlan.com/getting-started/python-sdk/)

[https://developer.atlan.com/getting-started/python-sdk/](https://developer.atlan.com/getting-started/python-sdk/)

## Installing for Development

### Initial Setup
To get started developing the SDK:

1. Clone the repository:
   ```bash
   git clone <repository-url>
   ```

2. Ensure you have Python 3.8 or later installed. You can verify your Python version with:
   ```bash
   python --version
   ```
   or
   ```bash
   python3 --version
   ```

3. Set up a virtual environment for development:
   ```bash
   python -m venv venv
   source venv/bin/activate  # On macOS/Linux
   venv\Scripts\activate     # On Windows
   ```

4. Install the required dependencies:
   ```bash
   # 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
   ```

### Code Formatting
Before committing code, ensure it adheres to the repository's formatting guidelines. You can apply the required formatting using the below command:

```bash
./pyatlan-formatter
```

### Environment Setup
For running integration tests, you'll need to configure your environment:

1. Copy the example environment file:
   ```bash
   cp .env.example .env
   ```
2. Update the `.env` file with your Atlan API key and base URL.
3. Load the environment variables:
    - For macOS/Linux:
      ```bash
      export $(cat .env | xargs)
      ```
    - For Windows (PowerShell): Load environment variables
      ```powershell
      # 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
      ```bash
      export $(cat .env | xargs)
      ```


## Testing the SDK

### Run all the QA checks
You can run all the QA checks using the following command:

```bash
./qa-checks
```

### Running Unit Tests
You can run the SDK's unit tests **without needing access to an Atlan environment**:

```bash
pytest tests/unit
```

### Running Integration Tests
Once the environment is set up, you can run integration tests:

- All integration tests:
  ```bash
  pytest tests/integration
  ```
- Specific integration tests:
  ```bash
  pytest tests/integration/<test_specific_feature>.py
  ```

### Running the SDK Model Generator

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](https://developer.atlan.com/sdks/python/#configure-the-sdk) specifically `ATLAN_BASE_URL` and `ATLAN_API_KEY`.

1. Retrieve the typedefs from your Atlan instance and save them to a JSON file by running:

   ```shell
   python3 pyatlan/generator/create_typedefs_file.py
   ```

2. Generate the asset `models`, `enums`, and `struct` modules in the SDK based on the typedefs by running:

   ```shell
   python3 pyatlan/generator/class_generator.py
   ```

3. The generated files will be unformatted. To format them properly, run the formatter:

   ```shell
   ./pyatlan-formatter
   ```

## Attribution

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:

```python
# 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:

```python
# Based on original code from https://github.com/elastic/elasticsearch-dsl-py.git (under Apache-2.0 license)
```
----
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/),
Copyright 2022 Atlan Pte. Ltd.
