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 .secrets.baseline

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [4.4.0] - 2026-10-04

### Changed

- `Features` is now an `enum.StrEnum`. `str(Features.X)` and f-strings return
the value (e.g. `"orderbook"`) instead of `"Features.X"`. Equality with
strings, `.value`, and JSON serialization are unchanged. `src/` also
formats under ruff 0.16 (`overlap.py` WMA lambda, Python fences in
`utils/README.md`), which unblocks Dependabot #154.
`utils/README.md`), which clears the ruff 0.16 lint in Dependabot #154.

## [4.3.3] - 2026-09-29

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ A **high-performance async Python SDK** for the [ProjectX Trading Platform](http

This Python SDK acts as a bridge between your trading strategies and the ProjectX platform, handling all the complex API interactions, data processing, and real-time connectivity.

## 🚀 v4.3.3 - cachetools 7 runtime dependency
## 🚀 v4.4.0 - Features is a StrEnum

**Latest Version**: v4.3.3 — runtime `cachetools` is 7.2.0 (`>=7.1.7`). Use remains `TTLCache` only, with typing updated for cachetools 7 stubs (#150, #119). v4.3.2 skips the bounded-statistics counter sweep in `RealtimeDataManager.cleanup()` (#98). v4.3.1 coalesces `quote_update` / `market_depth` forwards so an RTH-open flood cannot starve `NEW_BAR` (#143).
**Latest Version**: v4.4.0 — `Features` is an `enum.StrEnum`. `str()` and f-strings of a member return the value (for example `"orderbook"`) instead of `"Features.ORDERBOOK"`. Equality, `.value`, and JSON are unchanged (#155). v4.3.3 bumps runtime cachetools to 7.2.0 (#150, #119). v4.3.2 skips the bounded-statistics counter sweep in `RealtimeDataManager.cleanup()` (#98).

**Key changes**:
- Official defaults: `https://api.topstepx.com` and `https://rtc.topstepx.com`
Expand Down
8 changes: 8 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ The canonical changelog is the repository root [CHANGELOG.md](https://github.com

## [Unreleased]

## [4.4.0] - 2026-10-04

`Features` is now an `enum.StrEnum`. `str()` and f-strings return the
member value (for example `"orderbook"`) instead of `"Features.ORDERBOOK"`.
Equality with strings, `.value`, and JSON serialization are unchanged
(#155). `src/` formats under ruff 0.16. See the root CHANGELOG for the
full note.

## [4.3.3] - 2026-09-29

Runtime `cachetools` is 7.2.0 (`>=7.1.7`). Use remains `TTLCache` only;
Expand Down
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

**project-x-py** is a high-performance **async Python SDK** for the [ProjectX Trading Platform](https://www.projectx.com/) Gateway API. This library enables developers to build sophisticated trading strategies and applications by providing comprehensive async access to futures trading operations, real-time market data, Level 2 orderbook analysis, and 64 named indicators (Polars implementations; **not** a full TA-Lib port).

!!! note "Version 4.3.3"
**Latest Release**: TopstepX-only Gateway SDK (`api.topstepx.com` / `rtc.topstepx.com`) with native brackets, risk OCO and entry-order gating, stale-feed watchdog, `OrderSubmissionUncertainError`, and 64 named Polars indicators (not a full TA-Lib port). v4.3.3 bumps runtime cachetools to 7.2.0 (>=7.1.7); TTLCache use is unchanged and typing matches cachetools 7 stubs (#150, #119). v4.3.2 skips the bounded-statistics counter sweep in `RealtimeDataManager.cleanup()` so teardown does not read counters that are about to be discarded (#98). v4.3.1 coalesces `quote_update` / `market_depth` forwards so an RTH-open flood cannot starve `NEW_BAR` (#143). v4.3.0 added `aggregate_session_bars()` and reconnect health fixes (#140, #141). See the [v3 → v4 migration guide](migration/v3-to-v4.md).
!!! note "Version 4.4.0"
**Latest Release**: TopstepX-only Gateway SDK (`api.topstepx.com` / `rtc.topstepx.com`) with native brackets, risk OCO and entry-order gating, stale-feed watchdog, `OrderSubmissionUncertainError`, and 64 named Polars indicators (not a full TA-Lib port). v4.4.0 makes `Features` an `enum.StrEnum`: `str()` and f-strings return the member value (for example `"orderbook"`) instead of `"Features.ORDERBOOK"`; equality, `.value`, and JSON are unchanged (#155). v4.3.3 bumps runtime cachetools to 7.2.0 (>=7.1.7); TTLCache use is unchanged and typing matches cachetools 7 stubs (#150, #119). v4.3.2 skips the bounded-statistics counter sweep in `RealtimeDataManager.cleanup()` so teardown does not read counters that are about to be discarded (#98). v4.3.1 coalesces `quote_update` / `market_depth` forwards so an RTH-open flood cannot starve `NEW_BAR` (#143). v4.3.0 added `aggregate_session_bars()` and reconnect health fixes (#140, #141). See the [v3 → v4 migration guide](migration/v3-to-v4.md).

!!! note "Stable Production Release"
This project maintains strict semantic versioning. v4.0.0 is a major release with documented breaking changes. Deprecation warnings are provided for at least 2 minor versions before removal.
Expand Down
4 changes: 2 additions & 2 deletions examples/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ProjectX Python SDK Examples (v4.3.3)
# ProjectX Python SDK Examples (v4.4.0)

This directory contains working examples for the ProjectX Python SDK v4.3.3. All examples use **MNQ (Micro E-mini NASDAQ)** contracts to minimize risk during testing.
This directory contains working examples for the ProjectX Python SDK v4.4.0. All examples use **MNQ (Micro E-mini NASDAQ)** contracts to minimize risk during testing.

**Note:** v4.0 is the TopstepX Gateway revival. Use `TradingSuite.create()`, `await suite.get_stats()` / `export_stats()`, and see `docs/migration/v3-to-v4.md` for breaking changes.

Expand Down
6 changes: 3 additions & 3 deletions src/project_x_py/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Author: @TexasCoding
Date: 2026-08-29
Version: 4.3.3 - bump cachetools to 7.2.0 (#150)
Version: 4.4.0 - Features is a StrEnum (#155)

Overview:
A comprehensive Python SDK for the ProjectX Trading Platform Gateway API, providing
Expand Down Expand Up @@ -96,7 +96,7 @@
It provides the infrastructure to help developers create their own trading applications
that integrate with the ProjectX platform.

Version: 4.3.3
Version: 4.4.0
Author: TexasCoding

See Also:
Expand All @@ -109,7 +109,7 @@
- `utils`: Utility functions and calculations
"""

__version__ = "4.3.3"
__version__ = "4.4.0"
__author__ = "TexasCoding"

# Core client classes - renamed from Async* to standard names
Expand Down
2 changes: 1 addition & 1 deletion src/project_x_py/client/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ async def _create_client(self: "ProjectXClientProtocol") -> httpx.AsyncClient:
verify=True,
follow_redirects=False,
headers={
"User-Agent": "ProjectX-Python-SDK/4.3.3",
"User-Agent": "ProjectX-Python-SDK/4.4.0",
"Accept": "application/json",
},
)
Expand Down
2 changes: 1 addition & 1 deletion src/project_x_py/indicators/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@
)

# Version info
__version__ = "4.3.3"
__version__ = "4.4.0"
__author__ = "TexasCoding"


Expand Down
2 changes: 1 addition & 1 deletion src/project_x_py/statistics/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@
"CleanupScheduler",
]

__version__ = "4.3.3"
__version__ = "4.4.0"
Loading