Metadata-Version: 2.4
Name: linkinpy
Version: 0.0.2
Summary: A python package to bring uv managed workflows to all common image analysis tools
Project-URL: Homepage, https://github.com/your-username/MyPackageFolder
Project-URL: Repository, https://github.com/your-username/MyPackageFolder
Project-URL: Issues, https://github.com/your-username/MyPackageFolder/issues
Project-URL: Changelog, https://github.com/your-username/MyPackageFolder/blob/main/CHANGELOG.md
Author-email: "Bruno M. Saraiva" <bruno.msaraiva2@gmail.com>
License-Expression: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.9
Requires-Dist: ipyfilechooser>=0.6.0
Requires-Dist: ipywidgets>=8.0
Requires-Dist: magicgui>=0.10.0
Requires-Dist: numpy>=1.26
Requires-Dist: pyyaml>=6.0
Requires-Dist: stackview>=0.14.0
Requires-Dist: tifffile>=2024.8.10
Provides-Extra: gui
Requires-Dist: pyqt6>=6.7.0; extra == 'gui'
Provides-Extra: napari
Requires-Dist: napari>=0.5.0; extra == 'napari'
Description-Content-Type: text/markdown

# linkinpy

A Python package to bring `uv`-managed workflows to common image analysis tools.

## Quick Start

```bash
uv sync
uv run pytest
```

Run these commands from the `LinkinPy/` folder.

This package pins its local development interpreter in `.python-version` and keeps package metadata in `pyproject.toml`.

## Common Commands

```bash
uv sync                  # create/update the local environment
uv run pytest            # run the test suite
uv run ruff check .      # lint the codebase
uv run ruff format .     # format the codebase
uv run python -m build   # build the source and wheel distributions
uv run pre-commit install
```

If you prefer shorter aliases, the same workflow is available through `make`:

```bash
make sync
make test
make lint
make format
make build
```

## LinkinPy Spec Workflow

LinkinPy reads YAML spec files such as `../Library/nanopyx.yaml`. Each spec file owns exactly one isolated `uv` virtual environment at `~/.linkinpy/<spec-file-name>/`, and all runs for that spec execute inside that environment. LinkinPy checks whether `uv` is installed, bootstraps it when missing, and installs the core package into every spec-owned environment automatically.

```bash
uv run linkinpy list ../Library/nanopyx.yaml
uv run linkinpy install ../Library/nanopyx.yaml --interface cli
uv run linkinpy run ../Library/nanopyx.yaml eSRRF image=input.tif --output result.tif
```

The `run` command accepts callable arguments as `name=value`. Image arguments declared as `np.ndarray` can be passed as image file paths for the CLI path. The core also exposes Python APIs for spec parsing, environment management, image transport, direct callable execution, and magicgui widget construction.

## Project Layout

```text
src/linkinpy/
tests/
pyproject.toml
.python-version
GETTING_STARTED.md
CONTRIBUTING.md
```

## Documentation

- Start with [GETTING_STARTED.md](GETTING_STARTED.md) for first-time setup
- See [CONTRIBUTING.md](CONTRIBUTING.md) for the contributor workflow
- Track user-facing changes in [CHANGELOG.md](CHANGELOG.md)

For the multi-project repository overview, see the [repository root README](../README.md).
