Skip to content

Releases: jdrumgoole/degiro_portfolio

Release v0.5.5

14 Apr 10:33

Choose a tag to compare

Fixed

  • Event-loop starvation under load (production bug): 14 FastAPI endpoints were declared async def while doing sync blocking I/O (yfinance HTTP calls, SQLAlchemy queries). A single slow upstream call froze uvicorn's event loop, queuing every concurrent request — including the HTML page — until it completed. Converted all non-awaiting endpoints to plain def so FastAPI runs them in a threadpool. Eliminates 30s page.goto timeouts seen under parallel test load and prevents the same freeze under real user load with slow upstream APIs.
  • FastAPI app.version: was stuck at 0.4.0, now tracks pyproject.toml version.

Testing

  • Coverage for main.py: 72% → 89% (+115 lines). Added 13 targeted unit tests covering the upload pipeline (new-stock insert, duplicate skip, held-stock filtering, FMP live-price branch, index update exceptions), exchange-rate Yahoo fallback paths, update-market-data ticker auto-resolve and Yahoo fallback, refresh-live-prices error branches, purge/shutdown error paths, and ensure_indices_exist rollback.
  • Playwright fixture flakiness eliminated: switched page.goto to wait_until=\"domcontentloaded\" in shared_page, CSV, and Dutch e2e fixtures. Combined with the event-loop fix, the full suite now passes 5/5 consecutive parallel runs (was 2–3/5 before).
  • 224 tests total, stable across 5 consecutive parallel runs.

Full Changelog: v0.5.4...v0.5.5

Release v0.5.4

10 Apr 16:29

Choose a tag to compare

Release v0.5.3

10 Apr 15:54

Choose a tag to compare

Release v0.5.2

10 Apr 12:51

Choose a tag to compare

Release v0.5.1

10 Apr 10:27

Choose a tag to compare

Release v0.5.0

10 Apr 10:10

Choose a tag to compare

Release v0.4.4

10 Apr 09:17

Choose a tag to compare

Release v0.4.2

10 Apr 00:31

Choose a tag to compare

Release v0.4.1

09 Apr 23:54

Choose a tag to compare

What's Changed

  • Map DEGIRO columns by position instead of name, fix date parsing by @jdrumgoole in #4

Full Changelog: v0.4.0...v0.4.1

Release v0.4.0

09 Apr 00:16

Choose a tag to compare

Native Desktop Application

DEGIRO Portfolio now runs as a native desktop app — no browser needed.

Install and Launch

pip install degiro_portfolio
python -m degiro_portfolio --desktop

The application opens in a native window using your system's built-in web renderer (WebKit on Mac, WebView2 on Windows). The server starts and stops automatically with the window.

What's New

  • Desktop mode via python -m degiro_portfolio --desktop — native window, no browser needed
  • degiro-portfolio-desktop console script for direct launch
  • --port flag to use a custom port: python -m degiro_portfolio --desktop --port 8001
  • /api/shutdown endpoint for graceful server termination
  • pywebview included in the base install (not an optional extra)

Documentation

  • README and Getting Started now lead with desktop mode as the standard way to use the application
  • Web server mode documented as an alternative for browser-based access

Web Server Mode (still available)

python -m degiro_portfolio
# Then open http://localhost:8000

Full Changelog: v0.3.10...v0.4.0

Full Changelog: v0.3.10...v0.4.0