Skip to main content

Add your description here

Project description

KymFlow

KymFlow is a NiceGUI-based application for browsing kymograph TIFF files, editing metadata, and running Radon-based flow analysis.

The backend lives in src/kymflow_core and is completely GUI-agnostic, so scripts and notebooks can reuse the same API for analysis, metadata editing, or batch processing.


Requirements

  • Python 3.9+
  • uv for dependency management (recommended)

Getting the Source

Clone the repository (or download the ZIP) from GitHub:

git clone https://github.com/mapmanager/kymflow.git
cd kymflow

All commands below assume you are in the project root.


Installation (uv)

KymFlow uses a src/ layout and should be installed in editable mode. With uv this is a single command:

uv pip install -e ".[gui]"

This creates (or updates) .venv/, installs the package in editable mode, and pulls in the GUI + dev extras. If you add/remove dependencies in pyproject.toml, rerun the same command. Regular source edits do not require reinstalling.

Not using uv? Any standard tool can install the same extras via: pip install -e ".[gui,test]" or the equivalent in your environment.


Running the GUI

Launch the NiceGUI app with:

uv run python -m kymflow_gui.main

This automatically uses the uv-managed environment and keeps editable imports intact. The GUI defaults to port 8080; tweak defaults in src/kymflow_gui/config.py if needed.


Running Tests

uv pip install -e ".[test]"
uv run pytest

Tests that require proprietary TIFF data auto-skip when the sample data is unavailable.


Working with Jupyter Notebooks

Install the optional notebook extras (once):

uv pip install -e ".[notebook]"

Launch Jupyter Lab inside the repo (it will open in the notebooks/ folder by default):

uv run jupyter lab --notebook-dir notebooks

You can also use jupyter notebook if you prefer the classic interface. All dependencies run inside the same uv-managed environment.


Project Layout

kymflow/
├─ src/
│  ├─ kymflow_core/       # backend (KymFile, metadata, analysis, repository)
│  └─ kymflow_gui/        # NiceGUI frontend (layout, components)
├─ tests/                 # unit/integration tests
├─ pyproject.toml
├─ README.md
└─ .venv/                 # uv-managed virtualenv

Contributing

Issues and pull requests are welcome. Please include clear steps to reproduce bugs and run uv run pytest before submitting changes. More detailed guidelines will be added later.

Troubleshooting

To kill a stale nicegui. By default it should be running on port 8080.

sudo lsof -iTCP:8080 -sTCP:LISTEN

Then look for pid and kill <pid>

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

kymflow-0.1.0.tar.gz (317.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kymflow-0.1.0-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file kymflow-0.1.0.tar.gz.

File metadata

  • Download URL: kymflow-0.1.0.tar.gz
  • Upload date:
  • Size: 317.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for kymflow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d267543f5b5e961a5a5b1c2b7866d8fbe16975ea801008e9deca34d9b8dfbd8e
MD5 b0b46696aefb9f52573396fe14f4811d
BLAKE2b-256 cf1a7a0d913700420465884f2b24f4e257d4f4f1fda17321a2ba69d3e9d454a3

See more details on using hashes here.

File details

Details for the file kymflow-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kymflow-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for kymflow-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45d95df8636a672360637a174cb6685d39eb4162142161221cc0c492c9f2499d
MD5 feb270960ca5ecf57d3a660ddbdef1dc
BLAKE2b-256 e7b588d81f36bce203f1c21d26b782cb7ed101845031adc20abce499a1a1c01c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page