Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ notes.txt
.mypy_cache/
.pytest_cache/
.coverage
uv.lock
22 changes: 18 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,20 @@ python -m pip install --upgrade pip
python -m pip install -e .
```

Python 3.11 or newer is required. For the optional FastAPI server, install
`.[api]`; for release development, install `.[test,release,api]`.
Python 3.11 or newer is required. The core package (CLI and Python API) has no
Streamlit dependency. Optional extras:

| Extra | Installs | Needed for |
|-------|----------|------------|
| `app` | streamlit, pandas | local Streamlit web app (`streamlit run app.py`) |
| `api` | fastapi, uvicorn, python-multipart | FastAPI server |
| `test` | pytest, mypy, flake8, httpx | running tests |

```bash
python -m pip install -e ".[app]" # web app
python -m pip install -e ".[app,api]" # web app + REST API
python -m pip install -e ".[test,release,api,app]" # release development
```

---

Expand All @@ -40,8 +52,10 @@ No installation required — open in your browser:

**[Launch Web App](https://tabularqual.streamlit.app/)**

> For large networks the Streamlit cloud may hit resource limits. Run locally instead:
> For large networks the Streamlit cloud may hit resource limits. Run locally instead
> (requires the `app` extra, see [Install](#install)):
> ```bash
> python -m pip install -e ".[app]"
> streamlit run app.py
> ```

Expand Down Expand Up @@ -237,7 +251,7 @@ Common ChEBI variants such as `chebi:35305` are normalized to the canonical
`CHEBI:35305` form before validation.

```bash
pip install sbmlutils>=0.9.6
pip install sbmlutils>=0.10.2
# then run without --no-validate (the default)
```

Expand Down
12 changes: 7 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,11 @@ license = "MIT"
license-files = ["LICENSE"]
keywords = ["SBML", "SBML-qual", "logical models", "systems biology", "spreadsheet"]
dependencies = [
"python-libsbml>=5.21.0",
"python-libsbml>=5.21.1",
"openpyxl>=3.1.5",
"packaging>=24.0",
"click>=8.1.8",
"python-dateutil>=2.9.0",
"streamlit>=1.28.0",
"pandas>=2.0.0",
"sbmlutils>=0.9.6",
"sbmlutils>=0.10.2",
]
authors = [
{name = "Luna Li", email = "lixy@uw.edu"},
Expand All @@ -33,10 +30,15 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: Bio-Informatics",
]

[project.optional-dependencies]
app = [
"streamlit>=1.28.0",
"pandas>=2.2.0",
]
api = [
"fastapi>=0.115.0",
"python-multipart>=0.0.20",
Expand Down
5 changes: 2 additions & 3 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
python-libsbml>=5.21.0
python-libsbml>=5.21.1
openpyxl>=3.1.5
packaging>=24.0
click>=8.1.8
python-dateutil>=2.9.0
streamlit>=1.28.0
pandas>=2.0.0
sbmlutils>=0.9.6
sbmlutils>=0.10.2
fastapi>=0.115.0
uvicorn>=0.34.0
python-multipart>=0.0.20