Metadata-Version: 2.5
Name: tomviz-web
Version: 1.0.0
Summary: trame and VTK based web version of tomviz
Author: Kitware Inc
License: Apache Software License
License-File: LICENSE
Keywords: Application,Framework,Interactive,Python,Web
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: loguru
Requires-Dist: scipy>=1.17.1
Requires-Dist: tomviz-kernels>=3.2.0
Requires-Dist: tomviz-pipeline>=3.2.0
Requires-Dist: trame-code>=1.1.1
Requires-Dist: trame-color-opacity-editor
Requires-Dist: trame-colormaps>=1.7.2
Requires-Dist: trame-dataclass>=2.2.1
Requires-Dist: trame-dockview>=2
Requires-Dist: trame-vtk
Requires-Dist: trame-vuetify
Requires-Dist: trame>=4
Requires-Dist: vtk>=9.7
Provides-Extra: app
Requires-Dist: pywebview; extra == 'app'
Provides-Extra: dev
Requires-Dist: nox; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pytest-cov>=3; extra == 'dev'
Requires-Dist: pytest>=6; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Description-Content-Type: text/markdown

# tomviz-web

trame and VTK based web version of the tomviz tomography application

![tomviz](https://raw.githubusercontent.com/Kitware/tomviz-web/main/tomviz.png)

## License

This library is OpenSource and follow the Apache Software License

## Installation

Install the application/library

```sh
uv venv -p 3.12
source .venv/bin/activate
uv pip install .
```

Run the application

```sh
tomviz-web --server

# Or by running the module
python -m tomviz_web --server
```

## Development setup

We recommend using uv for setting up and managing a virtual environment for your
development.

```sh
# Create venv and install all dependencies
uv sync --all-extras --dev

# Activate environment
source .venv/bin/activate

# Install commit analysis
pre-commit install
pre-commit install --hook-type commit-msg
```

For running tests and checks, you can run `nox`.

```sh
# run all
nox

# lint
nox -s lint

# tests
nox -s tests
```

### Vue components

The pipeline widget is a Vue 3 + TypeScript component that lives in
`vue-components/` and is served by the `tomviz_web.widgets` package as a built
bundle. The bundle is not under revision control, so the app cannot show the
pipeline until it has been built.

To run the app, build the bundle once after cloning (node 22+ and npm on the
PATH); `nox -s build_js` does the same:

```sh
cd vue-components
npm install
npm run build          # writes src/tomviz_web/widgets/module/serve/
```

To work on the components, replace `npm run build` with a watcher that rebuilds
the bundle on every save (reload the browser to pick it up), and use the checks
that `nox -s test_js` runs:

```sh
npm run dev            # rebuild on change, instead of npm run build
npm test               # vitest
npm run type-check     # vue-tsc
npm run lint           # eslint
```

## Professional Support

- [Training](https://www.kitware.com/courses/trame/): Learn how to confidently
  use trame from the expert developers at Kitware.
- [Support](https://www.kitware.com/trame/support/): Our experts can assist your
  team as you build your web application and establish in-house expertise.
- [Custom Development](https://www.kitware.com/trame/support/): Leverage
  Kitware’s 25+ years of experience to quickly build your web application.
