The Python backbone for jdm-electron-flask desktop apps
Project description
jdm-electron-flask (Python)
The Python backbone for
jdm-electron-flaskdesktop apps.
This package ships inside every project scaffolded by the jdm-cli electron-flask plugin. It provides the app factory, dynamic API registration, SocketIO setup, and environment-aware logging — so you build features, not boilerplate.
Installation
You don't install this manually. It's included in the scaffolded requirements.txt:
jdm-electron-flask==1.0.0
If you need it standalone:
pip install jdm-electron-flask
What it provides
create_app
The Flask app factory. Handles config loading, SocketIO init, blueprint auto-discovery, and the React SPA catch-all route.
# run.py
from jdm_electron_flask import create_app, get_socketio
app = create_app()
socketio = get_socketio()
if __name__ == "__main__":
socketio.run(app, host="0.0.0.0", port=5000, debug=True)
JDMBlueprint
Extended Blueprint with built-in response helpers.
from jdm_electron_flask import JDMBlueprint
health_bp = JDMBlueprint("health", __name__)
@health_bp.route("/health")
def health():
return health_bp.success({"status": "ok"})
JDMEvents
Base class for organizing socket event handlers.
from jdm_electron_flask import JDMEvents
class ConnectEvents(JDMEvents):
def register(self):
@self.socketio.on("connect")
def on_connect():
self.on_connect()
@self.socketio.on("ping_server")
def on_ping(data):
self.emit("pong_client", {"echo": data})
ConnectEvents().register()
Printer
Environment-aware logger. Prints in development, writes to logs/<date>.log in production/deployed.
from jdm_electron_flask import Printer
Printer.success("Blueprint registered")
Printer.warn("Something is off")
Printer.error("Something broke")
Printer.info("Just FYI")
Response helpers
from jdm_electron_flask import success, error, paginate
return success({"user": "JDM"})
return error("Not found", status=404)
return paginate(items, total=100, page=1, per_page=10)
Validators
from jdm_electron_flask import validate_fields
valid, msg, data = validate_fields(["name", "email"])
if not valid:
return error(msg)
Dynamic API registration
Routes are controlled by config/api.json:
{
"health": {
"link": "/api",
"masterEnabled": true
},
"users": {
"link": "/api/users",
"masterEnabled": true,
"disabledOnProduction": false,
"disabledOnDeployed": false
}
}
Adding a new route:
- Add entry to
config/api.json - Create
app/api/users.pywith ausers_bpblueprint
That's it. No touching __init__.py ever again.
Environment modes
FLASK_ENV |
Behavior |
|---|---|
development |
Debug on, console logging, all routes enabled |
production |
Debug off, file logging, respects disabledOnProduction |
deployed |
Debug off, file logging, respects disabledOnDeployed |
Companion
This package is the Python half of the jdm-electron-flask ecosystem:
| Package | Role |
|---|---|
jdm-electron-flask (npm) |
CLI plugin — scaffold, build, compile |
jdm-electron-flask (PyPI) |
Backend library — app factory, blueprints, sockets |
License
MIT © JDM-Github
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jdm_electron_flask-1.0.5.tar.gz.
File metadata
- Download URL: jdm_electron_flask-1.0.5.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef207553665fe8cb752588db65fc9b6de0d36755c44a78ac731c71d76c9e0b15
|
|
| MD5 |
2494925ce236ca1c157760ace214bfe7
|
|
| BLAKE2b-256 |
1007039a5c1eb2b03e7b61f4b806befed51fc1d9c543af2cddcf0228eacb6ef9
|
File details
Details for the file jdm_electron_flask-1.0.5-py3-none-any.whl.
File metadata
- Download URL: jdm_electron_flask-1.0.5-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a3be8e14fd1017398ef265917c3c06090966e2ce71b220831cf5a404e4e1407
|
|
| MD5 |
4ee7476902ec7c269bbbfb654ab7529e
|
|
| BLAKE2b-256 |
6897be3b92a07423a4e933eae83bbbd1a2d371a58362f5384e2596fd93458b5c
|