Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
- OS: [e.g. macOS, Linux, Windows]
- Python version: [e.g. 3.9, 3.10, 3.11, 3.12, 3.13]
- SDK version: [e.g. 25.12.1] (run `python -c "import graphiant_sdk; print(graphiant_sdk.__version__)"` to check)
- Python version: [e.g. 3.10, 3.11, 3.12, 3.13]
- SDK version: [e.g. 26.3.2] (run `python -c "import graphiant_sdk; print(graphiant_sdk.__version__)"` to check)
- Installation method: [e.g. pip, from source]

**Additional context**
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Comprehensive linting workflow that runs multiple code quality checks in paralle

### `test.yml` - Testing
Runs all tests for the SDK:
- **`test` job** - Matrix job testing against Python 3.9, 3.10, 3.11, 3.12, 3.13:
- **`test` job** - Matrix job testing against Python 3.10, 3.11, 3.12, 3.13:
- Unit tests with pytest
- Code coverage reporting
- Coverage reports uploaded to Codecov (Python 3.12 only)
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ jobs:
fail-fast: false
matrix:
python-version:
- '3.9'
- '3.10'
- '3.11'
- '3.12'
Expand Down
3 changes: 3 additions & 0 deletions .openapi-generator-ignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# OpenAPI Generator Ignore
LICENSE
.travis.yml
pyproject.toml
requirements.txt
setup.py
README.md
.gitignore
Expand Down
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# ref: https://docs.travis-ci.com/user/languages/python
language: python
python:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,20 @@ All notable changes to the Graphiant SDK Python package will be documented in th

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [26.3.2] - 2026-03-27

### Changed
- **Version:** Package **26.3.2** (same bundled OpenAPI input file as 26.3.1: `graphiant_api_docs_v26.3.1.json`).
- **Python:** Minimum supported version is **3.10** (`requires-python`, `setup.py`, CI, and contributor docs).
- **Dependencies:** Direct **Pygments ≥ 2.20**; dev dependency **filelock ≥ 3.20.3** in Poetry (see `pyproject.toml` / `poetry.lock`).

### Security
- **Pygments** minimum raised to mitigate known ReDoS issues in older releases.
- **filelock** (dev, pulled in by the **tox** / **virtualenv** stack): minimum **≥ 3.20.3** to avoid vulnerable releases affected by a **time-of-check–time-of-use (TOCTOU)** race in **SoftFileLock** that could allow **symlink attacks** during lock file creation (upstream patched releases; this repo uses **Python ≥ 3.10** so **filelock** 3.20.x can be resolved).

### Documentation
- README, CONTRIBUTING, GitHub Actions workflow docs, issue template, and `.travis.yml` updated for Python **3.10+** only (removed **3.9** from test matrices and examples).

## [26.3.1] - 2026-03-26

### Added
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ pytest tests/test_default_api.py::test_function_name

- `tests/` directory contains all test files
- Tests use the `pytest` framework
- Tests are automatically run in CI/CD across Python 3.9, 3.10, 3.11, 3.12, and 3.13
- Tests are automatically run in CI/CD across Python 3.10, 3.11, 3.12, and 3.13

### Writing Tests

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Graphiant SDK Python

[![PyPI version](https://badge.fury.io/py/graphiant-sdk.svg)](https://badge.fury.io/py/graphiant-sdk)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.graphiant.com/docs/graphiant-sdk-python)
[![CI/CD](https://github.com/Graphiant-Inc/graphiant-sdk-python/actions/workflows/test.yml/badge.svg)](https://github.com/Graphiant-Inc/graphiant-sdk-python/actions)
Expand Down Expand Up @@ -372,7 +372,7 @@ def get_device_info(api, bearer_token, device_id):

### Prerequisites

- Python 3.9+ (3.12+ recommended)
- Python 3.10+ (3.12+ recommended)
- Git
- OpenAPI Generator (for code generation)

Expand All @@ -381,7 +381,7 @@ def get_device_info(api, bearer_token, device_id):
This repository uses GitHub Actions for continuous integration and deployment:

- **Linting** ([lint.yml](https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/.github/workflows/lint.yml)): Runs Flake8 and MyPy type checking on pull requests and pushes
- **Testing** ([test.yml](https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/.github/workflows/test.yml)): Runs pytest with coverage across Python 3.9, 3.10, 3.11, 3.12, and 3.13
- **Testing** ([test.yml](https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/.github/workflows/test.yml)): Runs pytest with coverage across Python 3.10, 3.11, 3.12, and 3.13
- **Building** ([build.yml](https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/.github/workflows/build.yml)): Builds wheel and source distributions
- **Releasing** ([release.yml](https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/.github/workflows/release.yml)): Publishes to PyPI (manual trigger, admin-only)

Expand Down Expand Up @@ -425,10 +425,10 @@ openapi-generator generate \
--git-user-id Graphiant-Inc \
--git-repo-id graphiant-sdk-python \
--package-name graphiant_sdk \
--additional-properties=packageVersion=26.3.1
--additional-properties=packageVersion=26.3.2
```

> **Note**: Latest API documentation can be downloaded from the Graphiant portal under "Support Hub" > "Developer Tools".
> **Note:** Download the latest API bundle from the Graphiant portal under **Support Hub** → **Developer Tools**. Set **`packageVersion`** to the SDK release you are publishing (this branch: **26.3.2**). The **`-i`** filename reflects the API doc bundle version (here `graphiant_api_docs_v26.3.1.json`) and may stay the same across patch releases when the spec is unchanged.

### Testing

Expand Down
14 changes: 11 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,24 @@

We actively support the following versions with security updates:

| Version | Supported | Notes |
| ------- | ------------------ | ------------------------ |
| 26.3.x | :white_check_mark: | Current stable release |
| Version | Supported | Notes |
| ------- | ------------------ | ---------------------------------------- |
| 26.3.x | :white_check_mark: | Current stable release (latest: **26.3.2**) |
| 26.2.x | :white_check_mark: | Previous release |
| 26.1.x | :white_check_mark: | Older supported release |
| 25.12.x | :white_check_mark: | Legacy release |
| < 25.12 | :x: | No longer supported |

**Note:** We recommend always using the latest version to ensure you have the most recent security patches.

### Pygments

**Pygments** has **Regular Expression Denial of Service (ReDoS) due to Inefficient Regex for GUID Matching** in vulnerable older releases. This package declares **Pygments ≥ 2.20** as a direct dependency so installs resolve patched releases.

### Development tooling (`filelock`)

Tools such as **tox** and **virtualenv** depend on **filelock**. Older **filelock** versions were affected by a **time-of-check–time-of-use (TOCTOU)** issue in **SoftFileLock**, including a race that could allow **symlink attacks** during lock file creation. This package declares **Python ≥ 3.10** and **filelock ≥ 3.20.3** for Poetry dev dependencies so installs resolve **filelock** releases that include the relevant fixes.

## Reporting a Vulnerability

We take security vulnerabilities seriously. If you discover a security vulnerability, please follow these steps:
Expand Down
2 changes: 1 addition & 1 deletion graphiant_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
""" # noqa: E501


__version__ = "26.3.1"
__version__ = "26.3.2"

# Define package exports
__all__ = [
Expand Down
2 changes: 1 addition & 1 deletion graphiant_sdk/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def __init__(
self.default_headers[header_name] = header_value
self.cookie = cookie
# Set default User-Agent.
self.user_agent = 'OpenAPI-Generator/26.3.1/python'
self.user_agent = 'OpenAPI-Generator/26.3.2/python'
self.client_side_validation = configuration.client_side_validation

def __enter__(self):
Expand Down
2 changes: 1 addition & 1 deletion graphiant_sdk/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ def to_debug_report(self) -> str:
"OS: {env}\n"\
"Python Version: {pyversion}\n"\
"Version of the API: 1.0.0\n"\
"SDK Package Version: 26.3.1".\
"SDK Package Version: 26.3.2".\
format(env=sys.platform, pyversion=sys.version)

def get_host_settings(self) -> List[HostSetting]:
Expand Down
Loading
Loading