Skip to content

Commit 396e4d4

Browse files
chore: update dependencies
1 parent 43172d8 commit 396e4d4

4 files changed

Lines changed: 320 additions & 221 deletions

File tree

.env.test

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ FASTAPI__SWAGGER_UI_PARAMS={}
1919
TESTCONTAINERS_RYUK_CONTAINER_IMAGE=testcontainers/ryuk:0.14.0
2020

2121
# Temporal Configuration
22-
TEMPORAL__IMAGE=temporalio/auto-setup:1.29.1
22+
TEMPORAL__IMAGE=temporalio/auto-setup:1.29.2
2323
TEMPORAL__HOST=localhost
2424
TEMPORAL__PORT=7233
2525
TEMPORAL__NAMESPACE=default
@@ -40,7 +40,7 @@ POSTGRES_SQLALCHEMY__USERNAME=test_user
4040
POSTGRES_SQLALCHEMY__PASSWORD=test_password
4141

4242
# StarRocks Configuration
43-
STARROCKS__IMAGE=starrocks/allin1-ubuntu:4.0.3
43+
STARROCKS__IMAGE=starrocks/allin1-ubuntu:4.0.4
4444
STARROCKS_SQLALCHEMY__DRIVER_NAME=starrocks
4545
STARROCKS_SQLALCHEMY__HOST=localhost
4646
STARROCKS_SQLALCHEMY__PORT=9030
@@ -49,7 +49,7 @@ STARROCKS_SQLALCHEMY__USERNAME=root
4949
STARROCKS_SQLALCHEMY__PASSWORD=
5050

5151
# Keycloak Configuration
52-
KEYCLOAK__IMAGE=quay.io/keycloak/keycloak:26.4.5
52+
KEYCLOAK__IMAGE=quay.io/keycloak/keycloak:26.5.2
5353
KEYCLOAK__SERVER_URL=http://localhost:8080
5454
KEYCLOAK__ADMIN_USERNAME=admin
5555
KEYCLOAK__ADMIN_PASSWORD=admin

docs/changelog.md

Lines changed: 64 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,75 @@
22

33
All notable changes to ArchiPy are documented in this changelog, organized by version.
44

5+
## [v4.0.3] - 2026-01-24
6+
7+
### Added
8+
9+
#### Tests
10+
11+
- Add PostgreSQL and SQLite support for atomic transaction tests
12+
- Add Starrocks TestContainer support
13+
14+
### Changed
15+
16+
- Replace Black with Ruff formatter
17+
18+
### Fixed
19+
20+
#### Configs
21+
22+
- Resolve type errors in base_config and keycloak_utils
23+
24+
- Remove reference to non-existent error_message_types module
25+
26+
### Chore
27+
28+
#### Configs
29+
30+
- Configure Ruff to respect pyproject.toml in CI lint workflow
31+
32+
- Apply Ruff formatting fixes
33+
- Merge branch 'master' of github.com:SyntaxArc/ArchiPy
34+
- Merge pull request #102 from SyntaxArc/dependabot/github_actions/actions/cache-5
35+
- Update dependencies
36+
37+
### CI
38+
39+
- Bump actions/cache from 4 to 5
40+
- Refactor ty workflow
41+
- Separate ruff and ty linting into dedicated workflows
42+
543
## [v4.0.2] - 2025-12-11
644

745
### Changed
846

947
#### Development Tools
1048

11-
- Broadened Ruff configuration (additional ignores, per-file overrides, relaxed limits) and expanded type-checking/lint sections for optional dependency handling (lazy imports, optional extras).
12-
- Raised Pylint branch/statement limits to accommodate complex decorator and interceptor flows; added explicit flake8 config blocks for comprehensions, errmsg, type-checking, and unused-arguments.
49+
- Broadened Ruff configuration (additional ignores, per-file overrides, relaxed limits) and expanded type-checking/lint
50+
sections for optional dependency handling (lazy imports, optional extras).
51+
- Raised Pylint branch/statement limits to accommodate complex decorator and interceptor flows; added explicit flake8
52+
config blocks for comprehensions, errmsg, type-checking, and unused-arguments.
1353

1454
#### Adapters
1555

16-
- SQLAlchemy base adapters: tightened filtering/exception handling helpers and optional dependency guards in session managers.
17-
- Email/Kafka/ScyllaDB/Temporal adapters: improved lazy import behavior, tracing hooks, and error handling consistency to match optional extras.
56+
- SQLAlchemy base adapters: tightened filtering/exception handling helpers and optional dependency guards in session
57+
managers.
58+
- Email/Kafka/ScyllaDB/Temporal adapters: improved lazy import behavior, tracing hooks, and error handling consistency
59+
to match optional extras.
1860

1961
#### Helpers
2062

21-
- Decorators (cache/retry/timing/tracing/sqlalchemy_atomic): clarified lazy-import paths, kept TYPE_CHECKING stubs, and aligned __getattr__ caching.
22-
- gRPC interceptors (trace/metric, client/server): better Sentry span management, traceparent propagation, and guard rails when APM extras are disabled.
23-
- Utility helpers (app/error/file/keycloak): safer optional imports for HTTP/gRPC/Keycloak, clearer exception logging, and minor robustness fixes.
63+
- Decorators (cache/retry/timing/tracing/sqlalchemy_atomic): clarified lazy-import paths, kept TYPE_CHECKING stubs, and
64+
aligned __getattr__ caching.
65+
- gRPC interceptors (trace/metric, client/server): better Sentry span management, traceparent propagation, and guard
66+
rails when APM extras are disabled.
67+
- Utility helpers (app/error/file/keycloak): safer optional imports for HTTP/gRPC/Keycloak, clearer exception logging,
68+
and minor robustness fixes.
2469

2570
#### Testing
2671

27-
- BDD updates for cache decorator (TTL, clearing, bound method identity), Elastic adapter, Keycloak adapter, ScyllaDB adapter, and error utils to match revised behaviors and lazy-import handling.
72+
- BDD updates for cache decorator (TTL, clearing, bound method identity), Elastic adapter, Keycloak adapter, ScyllaDB
73+
adapter, and error utils to match revised behaviors and lazy-import handling.
2874

2975
#### Dependencies
3076

@@ -93,7 +139,8 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve
93139

94140
#### Models - Errors
95141

96-
- **Error System Migration to T-Strings** - Refactored error system to use t-string template formatting with inline context variables
142+
- **Error System Migration to T-Strings** - Refactored error system to use t-string template formatting with inline
143+
context variables
97144
- Removed `ErrorDetailDTO` and `ErrorMessageType` dependencies
98145
- Added class attributes (`code`, `message_en`, `message_fa`, `http_status`, `grpc_status`) to `BaseError`
99146
- Implemented t-string template formatting with context variables in error messages
@@ -126,15 +173,18 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve
126173

127174
#### Helpers - Decorators
128175

129-
- **Lazy Import for SQLAlchemy Decorators** - Changed SQLAlchemy decorators to use lazy imports via `__getattr__` in `archipy.helpers.decorators`
176+
- **Lazy Import for SQLAlchemy Decorators** - Changed SQLAlchemy decorators to use lazy imports via `__getattr__` in
177+
`archipy.helpers.decorators`
130178
- SQLAlchemy decorators are now only imported when actually accessed, not at module import time
131-
- Prevents SQLAlchemy from being required when using archipy without the `sqlalchemy` extra (e.g., `archipy[scylladb]`)
179+
- Prevents SQLAlchemy from being required when using archipy without the `sqlalchemy` extra (e.g.,
180+
`archipy[scylladb]`)
132181
- Provides better error messages when SQLAlchemy decorators are accessed without the sqlalchemy extra installed
133182
- Maintains full IDE support through type stubs using `TYPE_CHECKING`
134183

135184
#### Adapters - Temporal
136185

137-
- **Lazy Import for SQLAlchemy Decorators** - Updated `AtomicActivity` class to use lazy imports for SQLAlchemy atomic decorators
186+
- **Lazy Import for SQLAlchemy Decorators** - Updated `AtomicActivity` class to use lazy imports for SQLAlchemy atomic
187+
decorators
138188
- Moved SQLAlchemy decorator imports from module level to method level in `_get_atomic_decorator()`
139189
- Prevents SQLAlchemy from being required when using Temporal adapters without the sqlalchemy extra
140190
- Improves modularity and allows using Temporal features independently of SQLAlchemy
@@ -344,7 +394,8 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve
344394

345395
#### Redis Configuration
346396

347-
- **Removed Invalid Retry on Timeout Configuration** - Fixed Redis adapter configuration by removing unsupported parameter
397+
- **Removed Invalid Retry on Timeout Configuration** - Fixed Redis adapter configuration by removing unsupported
398+
parameter
348399
- Removed `RETRY_ON_TIMEOUT` field from `RedisConfig` class as it does not exist in Redis cluster configuration
349400
- Removed `retry_on_timeout` parameter from both synchronous and asynchronous Redis adapter initialization
350401
- Resolves configuration errors when using Redis cluster mode with invalid parameters

pyproject.toml

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,31 +20,32 @@ license = { file = "LICENSE" }
2020
# Core optional dependencies
2121
aiosqlite = ["aiosqlite>=0.22.1"]
2222
behave = ["behave>=1.3.3"]
23-
cache = ["cachetools>=6.2.4", "async-lru>=2.0.5"]
23+
cache = ["cachetools>=6.2.4", "async-lru>=2.1.0"]
2424
dependency-injection = ["dependency-injector>=4.48.3"]
2525
elastic-apm = ["elastic-apm>=6.25.0"]
2626
elasticsearch = ["elasticsearch>=9.2.1"]
2727
elasticsearch-async = ["elasticsearch[async]>=9.2.1"]
2828
fakeredis = ["fakeredis>=2.33.0"]
2929
fastapi = ["fastapi[all]>=0.128.0"]
30-
grpc = ["grpcio>=1.76.0", "grpcio-health-checking>=1.76.0", "protobuf>=6.33.2"]
30+
grpc = ["grpcio>=1.76.0", "grpcio-health-checking>=1.76.0", "protobuf>=6.33.4"]
3131
jwt = ["pyjwt>=2.10.1"]
32-
kafka = ["confluent-kafka>=2.12.2"]
32+
kafka = ["confluent-kafka>=2.13.0"]
3333
kavenegar = ["kavenegar>=1.1.2"]
34-
keycloak = ["python-keycloak>=6.0.0", "cachetools>=6.2.4", "async-lru>=2.0.5"]
35-
minio = ["minio>=7.2.20", "cachetools>=6.2.4", "async-lru>=2.0.5"]
34+
keycloak = ["python-keycloak>=7.0.2", "cachetools>=6.2.4", "async-lru>=2.1.0"]
35+
minio = ["minio>=7.2.20", "cachetools>=6.2.4", "async-lru>=2.1.0"]
3636
parsian-ipg = ["zeep>=4.3.2", "requests[socks]>=2.32.5"]
3737
postgres = ["psycopg[binary,pool]>=3.3.2"]
38-
prometheus = ["prometheus-client>=0.23.1"]
38+
prometheus = ["prometheus-client>=0.24.1"]
3939
redis = ["redis[hiredis]>=7.1.0"]
4040
scheduler = ["apscheduler>=3.11.2"]
41-
scylladb = ["scylla-driver>=3.29.7", "lz4>=4.4.5", "cachetools>=6.2.4", "async-lru>=2.0.5"]
42-
sentry = ["sentry-sdk>=2.48.0"]
43-
sqlalchemy = ["sqlalchemy>=2.0.45"]
44-
starrocks = ["starrocks>=1.3.2", "pymysql>=1.1.2"]
45-
starrocks-async = ["starrocks>=1.3.2", "aiomysql>=0.3.2"]
41+
scylladb = ["scylla-driver>=3.29.7", "lz4>=4.4.5", "cachetools>=6.2.4", "async-lru>=2.1.0"]
42+
sentry = ["sentry-sdk>=2.50.0"]
43+
sqlalchemy = ["sqlalchemy>=2.0.46"]
44+
sqlalchemy-async = ["sqlalchemy[asyncio]>=2.0.46"]
45+
starrocks = ["starrocks>=1.3.3", "pymysql>=1.1.2"]
46+
starrocks-async = ["starrocks>=1.3.3", "aiomysql>=0.3.2"]
4647
temporalio = ["temporalio>=1.21.1"]
47-
testcontainers = ["testcontainers>=4.13.3"]
48+
testcontainers = ["testcontainers>=4.14.0"]
4849

4950
[tool.pytest.ini_options]
5051
asyncio_mode = "auto"
@@ -65,18 +66,18 @@ build-backend = "hatchling.build"
6566
[dependency-groups]
6667
dev = [
6768
"add-trailing-comma>=4.0.0",
68-
"bandit>=1.9.2",
69+
"bandit>=1.9.3",
6970
"codespell>=2.4.1",
70-
"ty>=0.0.8",
71+
"ty>=0.0.13",
7172
"pre-commit-hooks>=6.0.0",
7273
"pre-commit>=4.5.1",
73-
"ruff>=0.14.10",
74+
"ruff>=0.14.14",
7475
"types-cachetools>=6.2.0.20251022",
7576
"types-grpcio>=1.0.0.20251009",
7677
"types-protobuf>=6.32.1.20251210",
7778
"types-pymysql>=1.1.0.20251220",
78-
"types-regex>=2025.11.3.20251106",
79-
"types-requests>=2.32.4.20250913",
79+
"types-regex>=2026.1.15.20260116",
80+
"types-requests>=2.32.4.20260107",
8081
"validate-pyproject>=0.24.1",
8182
]
8283

@@ -85,8 +86,8 @@ docs = [
8586
"mkdocs-material>=9.7.1",
8687
"mkdocs>=1.6.1",
8788
"mkdocstrings-python>=2.0.1",
88-
"mkdocstrings>=1.0.0",
89-
"pymdown-extensions>=10.19.1",
89+
"mkdocstrings>=1.0.1",
90+
"pymdown-extensions>=10.20.1",
9091
]
9192

9293

0 commit comments

Comments
 (0)