Releases: jdrumgoole/degiro_portfolio
Releases · jdrumgoole/degiro_portfolio
Release v0.5.5
Fixed
- Event-loop starvation under load (production bug): 14 FastAPI endpoints were declared
async defwhile 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 plaindefso FastAPI runs them in a threadpool. Eliminates 30spage.gototimeouts seen under parallel test load and prevents the same freeze under real user load with slow upstream APIs. - FastAPI
app.version: was stuck at0.4.0, now trackspyproject.tomlversion.
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-dataticker auto-resolve and Yahoo fallback,refresh-live-priceserror branches, purge/shutdown error paths, andensure_indices_existrollback. - Playwright fixture flakiness eliminated: switched
page.gototowait_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
Full Changelog: v0.5.3...v0.5.4
Release v0.5.3
Full Changelog: v0.5.2...v0.5.3
Release v0.5.2
Full Changelog: v0.5.1...v0.5.2
Release v0.5.1
Full Changelog: v0.5.0...v0.5.1
Release v0.5.0
Full Changelog: v0.4.4...v0.5.0
Release v0.4.4
Full Changelog: v0.4.3...v0.4.4
Release v0.4.2
Full Changelog: v0.4.1...v0.4.2
Release v0.4.1
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
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 --desktopThe 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-desktopconsole script for direct launch--portflag to use a custom port:python -m degiro_portfolio --desktop --port 8001/api/shutdownendpoint 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:8000Full Changelog: v0.3.10...v0.4.0
Full Changelog: v0.3.10...v0.4.0