Skip to content

Releases: kevinrider/etrade-python

Release list

v1.1.0

Choose a tag to compare

@kevinrider kevinrider released this 18 Oct 03:18

Added

  • Optional public CoordinatedCredentialStore transaction-lock protocol and
    CredentialCoordinationError for sanitized coordination failures.
  • Cross-process OS-backed namespace locks in KeyringCredentialStore, with a
    configurable directory and acquisition timeout, and shared-instance locks in
    MemoryCredentialStore. Credentials and namespace formats remain compatible.
  • Public SessionManager.revoke() coordinating broker revocation and local
    deletion; the existing auth CLI now uses it.
  • Offline subprocess tests using fake shared keyring storage and mocked OAuth.

Fixed

  • Serialize complete lifecycle transactions across cooperating processes, reload
    credentials under the lock, and preserve newer usage/renewal timestamps when
    saving the same credentials. Late usage callbacks cannot restore deleted or
    replaced credentials.
  • Wait for cancelled keyring workers before releasing transaction ownership,
    including cancellation of pending tasks during event-loop shutdown.
    Retain credential-free lock files to prevent lock identity replacement races.

v1.0.0

Choose a tag to compare

@kevinrider kevinrider released this 11 Oct 17:34

First stable release of etrade-python, an unofficial, typed, async-first E*TRADE REST API client.

  • Supports Accounts, Portfolio, Transactions, Market, Orders, and Alerts.
  • OAuth 1.0a authentication with automatic session renewal and pluggable credential storage.
  • Typed request and response models, validated order requests, and an order builder.
  • Diagnostic CLI and interactive orders demo.
  • Python 3.11+ support.

Full Changelog: https://github.com/kevinrider/etrade-python/blob/v1.0.0/CHANGELOG.md