Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
06dabae
Added nicegui app
lucasimi Jun 4, 2025
2374ff9
Improved handling of UI elements
lucasimi Jun 5, 2025
ca4c2f2
Added scaling toggle. UI improvements
lucasimi Jun 5, 2025
64ecfa3
Improved UI
lucasimi Jun 6, 2025
6a326cd
Improved UI
lucasimi Jun 6, 2025
c7fc1a5
Added data examples. Improved UI
lucasimi Jun 7, 2025
b1e907f
Fixed position of plotly menus in case of empty buttons
lucasimi Jun 7, 2025
48e7940
Added colorscales. Added script
lucasimi Jun 7, 2025
ac3fb5d
Added port configuration from environment variable
lucasimi Jun 8, 2025
06baecd
fixed type
lucasimi Jun 8, 2025
1ed83be
Added host from env variable
lucasimi Jun 8, 2025
85a9492
Disabled reload
lucasimi Jun 8, 2025
2b1c651
Fixed readme and docs. Added redirect
lucasimi Jun 8, 2025
e767f40
Minor improvements
lucasimi Jun 9, 2025
9f521ff
Made app module internal. Added unit test for app
lucasimi Jun 9, 2025
2a7175c
added condition to skip app testing
lucasimi Jun 9, 2025
8f0443f
Added deps for testing
lucasimi Jun 9, 2025
5944d39
Fix tests
lucasimi Jun 9, 2025
98a75ba
Fixed extra deps
lucasimi Jun 9, 2025
a21e9fc
Removed skip condition
lucasimi Jun 9, 2025
59ce4c8
Improved docs
lucasimi Jun 9, 2025
99834ba
Bumped minor version
lucasimi Jun 9, 2025
325816f
Merge branch 'main' of github.com:lucasimi/tda-mapper-python into add…
lucasimi Jun 13, 2025
22eb568
Fixed memory leak in plotly plot
lucasimi Jun 13, 2025
197a732
Added plot settings. Improved UI styling
lucasimi Jun 15, 2025
f7639d3
Updated buttons
lucasimi Jun 17, 2025
76d99c3
Fixed ui menus during plot update
lucasimi Jun 18, 2025
7dd9051
Fixed main
lucasimi Jun 18, 2025
38c1a6d
Improved node size settings
lucasimi Jun 18, 2025
1b64e5a
Fixed script
lucasimi Jun 18, 2025
76eaabf
Renamed module
lucasimi Jun 18, 2025
5443b2f
Fixed node size
lucasimi Jun 18, 2025
2bd6bad
Improved app testing
lucasimi Jun 19, 2025
a109eb7
Improved testing
lucasimi Jun 19, 2025
566f662
Improved testing
lucasimi Jun 19, 2025
909e306
Improved logging
lucasimi Jun 19, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/test-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:

- name: Install dependencies
run: |
python -m pip install -e .[dev]
python -m pip install -e .[dev,app]

- name: Run benchmarks
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:

- name: Install dependencies
run: |
python -m pip install -e .[dev]
python -m pip install -e .[dev,app]

- name: Run tests and code coverage
run: |
Expand Down
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ and in the

- **Interactive app**

Provides an interactive web-based interface (via Streamlit) for dynamic
exploration of Mapper graph structures, offering real-time adjustments to
parameters and visualizations.
Provides an interactive web-based interface for dynamic exploration of
Mapper graph structures, offering real-time adjustments to parameters and
visualizations.

## Background

Expand Down Expand Up @@ -138,21 +138,23 @@ More examples can be found in the

## Interactive App

Use our Streamlit app to visualize and explore your data without writing code.
You can run a live demo directly on
[Streamlit Cloud](https://tda-mapper-app.streamlit.app/),
or locally on your machine. The first time you run the app locally, you may
need to install the required dependencies from the `requirements.txt` file by
running
Use our app to interactively visualize and explore your data without writing
code. You can try it right away using
[our live demo](https://tda-mapper-app.up.railway.app/),
or run it locally on your machine.

```bash
pip install -r app/requirements.txt
```
To run it locally:

then run the app locally with
1. Install the app and its dependencies:

```bash
streamlit run app/streamlit_app.py
```
```bash
pip install tda-mapper[app]
```

2. Launch the app:

```bash
tda-mapper-app
```

![tda-mapper-app](https://github.com/lucasimi/tda-mapper-python/raw/main/resources/tda-mapper-app.png)
12 changes: 11 additions & 1 deletion app/streamlit_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -959,4 +959,14 @@ def main():
st.markdown(FOOTER)


main()
def redirect():
st.markdown(
"""
## 🚨 Notice: This app is no longer not maintained and will be removed soon.

### 👉 To continue using the service, please switch to the [new, updated version](https://tda-mapper-app.up.railway.app/).
"""
)


redirect()
8 changes: 3 additions & 5 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
:target: https://codecov.io/github/lucasimi/tda-mapper-python
.. |DOI| image:: https://img.shields.io/badge/DOI-10.5281/zenodo.10642381-blue?logo=doi&logoColor=silver
:target: https://doi.org/10.5281/zenodo.10642381
.. |Streamlit App| image:: https://img.shields.io/badge/Streamlit-App-blue?logo=streamlit&logoColor=silver
:target: https://tda-mapper-app.streamlit.app/
.. |Step 1| image:: https://github.com/lucasimi/tda-mapper-python/raw/main/resources/mapper_1.png
.. |Step 2| image:: https://github.com/lucasimi/tda-mapper-python/raw/main/resources/mapper_2.png
.. |Step 3| image:: https://github.com/lucasimi/tda-mapper-python/raw/main/resources/mapper_3.png
Expand Down Expand Up @@ -68,9 +66,9 @@ Core features

- **Interactive app**

Provides an interactive web-based interface (via Streamlit) for dynamic
exploration of Mapper graph structures, offering real-time adjustments to
parameters and visualizations.
Provides an interactive web-based interface for dynamic exploration of
Mapper graph structures, offering real-time adjustments to parameters and
visualizations.


Background
Expand Down
29 changes: 13 additions & 16 deletions docs/source/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -92,27 +92,24 @@ More examples can be found in the
Interactive App
---------------

Use our Streamlit app to visualize and explore your data without writing code.
You can run a live demo directly on
`Streamlit Cloud <https://tda-mapper-app.streamlit.app/>`__,
or locally on your machine using the following:

Use our Streamlit app to visualize and explore your data without writing code.
You can run a live demo directly on
`Streamlit Cloud <https://tda-mapper-app.streamlit.app/>`__,
or locally on your machine. The first time you run the app locally, you may
need to install the required dependencies from the `requirements.txt` file by
running
Use our app to interactively visualize and explore your data without writing
code. You can try it right away using
`our live demo <https://tda-mapper-app.up.railway.app/>`__,
or run it locally on your machine.

.. code:: bash
To run it locally:

pip install -r app/requirements.txt
1. Install the app and its dependencies:

then run the app locally with
.. code:: bash

.. code:: bash
pip install tda-mapper[app]

2. Launch the app:

.. code:: bash

streamlit run app/streamlit_app.py
tda-mapper-app

|Interactive App|

Expand Down
27 changes: 25 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "tda-mapper"
version = "0.11.2"
version = "0.12.0"
description = "A simple and efficient Python implementation of Mapper algorithm for Topological Data Analysis"
readme = "README.md"
authors = [{ name = "Luca Simi", email = "lucasimi90@gmail.com" }]
Expand Down Expand Up @@ -44,14 +44,25 @@ requires-python = ">=3.8"
[project.optional-dependencies]
dev = [
"coverage[toml]",
"pandas",
"pandas<3.0.0",
"scikit-learn<1.6.0",
"pytest",
"pytest-asyncio",
"black[jupyter]",
"isort",
"flake8",
"kaleido",
"nbformat>=4.2.0",
]
app = [
"pandas<3.0.0",
"scikit-learn<1.6.0",
"umap-learn<0.6.0",
"nicegui>=2.18.0,<3.0.0",
]

[project.scripts]
tda-mapper-app = "tdamapper._run_app:run"

[project.urls]
Homepage = "https://github.com/lucasimi/tda-mapper-python"
Expand Down Expand Up @@ -88,3 +99,15 @@ include_trailing_comma = true
force_grid_wrap = 0
combine_as_imports = true
skip = ["venv", ".venv", "build", "dist"]

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
asyncio_default_fixture_loop_scope = "function"
filterwarnings = [
'ignore::DeprecationWarning:_plotly_utils\.basevalidators',
]

markers = [
"module_under_test",
]
Binary file modified resources/tda-mapper-app.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/tdamapper/_run_app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from tdamapper.app import main


def run():
main()


if __name__ in {"__main__", "__mp_main__", "tdamapper._run_app"}:
run()
Loading