Metadata-Version: 2.4
Name: selasviz
Version: 0.1.13
Summary: Interactive 2D visualization workbench for Pandas DataFrames
Project-URL: Homepage, https://github.com/Straw674/selasviz
Project-URL: Repository, https://github.com/Straw674/selasviz
Project-URL: Issues, https://github.com/Straw674/selasviz/issues
Project-URL: Changelog, https://github.com/Straw674/selasviz/blob/main/CHANGELOG.md
Author-email: Straw674 <qx24@mails.tsinghua.edu.cn>
License: MIT License
        
        Copyright (c) 2026 Straw674
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: datashader,pandas,panel,visualization
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.10
Requires-Dist: astropy>=5.0
Requires-Dist: bokeh>=2.4
Requires-Dist: colorcet>=3.0
Requires-Dist: datashader>=0.14
Requires-Dist: holoviews>=1.14
Requires-Dist: numpy>=1.20
Requires-Dist: pandas>=1.0
Requires-Dist: panel>=0.12
Provides-Extra: dev
Requires-Dist: black>=22.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: python-semantic-release>=9.8; extra == 'dev'
Requires-Dist: ruff>=0.1; extra == 'dev'
Description-Content-Type: text/markdown

# selasviz

An interactive 2D visualization workbench for Pandas DataFrames, built with [Panel](https://panel.holoviz.org/) and [HoloViews](https://holoviews.org/). It supports scatter, hexbin, and datashader views.

This project is managed with [uv](https://docs.astral.sh/uv/).

## Installation

### 1) Add to a project

With uv:

```bash
uv add selasviz
```

With pip:

```bash
pip install selasviz
```

After installing into your environment, the CLI entry `selasviz` is also available.

### 2) Use as a tool (CLI only)

Use this when you only need the CLI and do not want to add `selasviz` as a project dependency.

Run directly with uvx (temporary installation):

```bash
uvx --from selasviz selasviz --help
```

Or install as a global tool with uv:

```bash
uv tool install selasviz
```

Then run:

```bash
selasviz --help
```

## Quick Start

```python
import pandas as pd
from selasviz import launch_explorer

# Load your data
df = pd.read_csv("your_data.csv")

# Launch and serve the explorer
launch_explorer(df, port=5006, show=True)
```

## CLI (FITS)

The CLI currently only supports FITS table files.

Launch directly from a FITS table file:

```bash
selasviz data.fits
```

Optional arguments:

```bash
selasviz data.fits --title "Data Explorer" --port 5006
```

## Development (uv)

```bash
git clone https://github.com/Straw674/selasviz
cd selasviz
uv sync --extra dev
```

Run the standalone demo script from a source checkout:

```bash
uv run python scripts/demo_explorer.py --rows 50000 --title "Demo Explorer"
```

## Release Versioning

This repository uses Semantic Versioning with
[python-semantic-release](https://python-semantic-release.readthedocs.io/).
The next version is inferred from Conventional Commit prefixes:

- `fix:` -> patch bump
- `feat:` -> minor bump
- `feat!:` or `BREAKING CHANGE:` -> major bump

Run locally:

```bash
uv sync --extra dev
uv run semantic-release version
```

The GitHub workflow also runs this automatically on pushes to `main`.

## License

MIT License
