Metadata-Version: 2.1
Name: glow
Version: 0.11.3
Summary: Toolset for model training and creation of pipelines
Home-page: https://github.com/arquolo/glow
Author: Paul Maevskikh
Author-email: arquolo@gmail.com
License: MIT
Platform: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: loky (>=2.9)
Requires-Dist: lxml
Requires-Dist: numpy (~=1.21)
Requires-Dist: tqdm
Requires-Dist: wrapt
Provides-Extra: _dev
Requires-Dist: flake8 (~=3.9) ; extra == '_dev'
Requires-Dist: flake8-builtins ; extra == '_dev'
Requires-Dist: flake8-logging-format ; extra == '_dev'
Requires-Dist: flake8-pie ; extra == '_dev'
Requires-Dist: flake8-pyi ; extra == '_dev'
Requires-Dist: flake8-pytest ; extra == '_dev'
Requires-Dist: flake8-pytest-style ; extra == '_dev'
Requires-Dist: flake8-return ; extra == '_dev'
Requires-Dist: flake8-simplify ; extra == '_dev'
Requires-Dist: isort ; extra == '_dev'
Requires-Dist: mypy (~=0.900) ; extra == '_dev'
Requires-Dist: pytest (~=6.0) ; extra == '_dev'
Requires-Dist: yapf (~=0.30) ; extra == '_dev'
Provides-Extra: all
Requires-Dist: opencv-python (~=4.0) ; extra == 'all'
Requires-Dist: scipy ; extra == 'all'
Requires-Dist: imagecodecs ; extra == 'all'
Requires-Dist: sounddevice ; extra == 'all'
Requires-Dist: soundfile ; extra == 'all'
Requires-Dist: graphviz ; extra == 'all'
Requires-Dist: py3nvml ; extra == 'all'
Requires-Dist: torch (~=1.10) ; extra == 'all'
Requires-Dist: matplotlib ; extra == 'all'
Provides-Extra: cv
Requires-Dist: opencv-python (~=4.0) ; extra == 'cv'
Requires-Dist: scipy ; extra == 'cv'
Provides-Extra: cv-dither
Requires-Dist: opencv-python (~=4.0) ; extra == 'cv-dither'
Requires-Dist: scipy ; extra == 'cv-dither'
Requires-Dist: numba ; extra == 'cv-dither'
Provides-Extra: dev
Requires-Dist: flake8 (~=3.9) ; extra == 'dev'
Requires-Dist: flake8-builtins ; extra == 'dev'
Requires-Dist: flake8-logging-format ; extra == 'dev'
Requires-Dist: flake8-pie ; extra == 'dev'
Requires-Dist: flake8-pyi ; extra == 'dev'
Requires-Dist: flake8-pytest ; extra == 'dev'
Requires-Dist: flake8-pytest-style ; extra == 'dev'
Requires-Dist: flake8-return ; extra == 'dev'
Requires-Dist: flake8-simplify ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: mypy (~=0.900) ; extra == 'dev'
Requires-Dist: pytest (~=6.0) ; extra == 'dev'
Requires-Dist: yapf (~=0.30) ; extra == 'dev'
Requires-Dist: flake8-bugbear ; extra == 'dev'
Requires-Dist: flake8-comprehensions ; extra == 'dev'
Requires-Dist: flake8-eradicate ; extra == 'dev'
Requires-Dist: flake8-isort ; extra == 'dev'
Requires-Dist: flake8-quotes ; extra == 'dev'
Requires-Dist: flake8-string-format ; extra == 'dev'
Requires-Dist: pep8-naming ; extra == 'dev'
Requires-Dist: typing-extensions (~=3.10) ; extra == 'dev'
Provides-Extra: dev-wemake
Requires-Dist: flake8 (~=3.9) ; extra == 'dev-wemake'
Requires-Dist: flake8-builtins ; extra == 'dev-wemake'
Requires-Dist: flake8-logging-format ; extra == 'dev-wemake'
Requires-Dist: flake8-pie ; extra == 'dev-wemake'
Requires-Dist: flake8-pyi ; extra == 'dev-wemake'
Requires-Dist: flake8-pytest ; extra == 'dev-wemake'
Requires-Dist: flake8-pytest-style ; extra == 'dev-wemake'
Requires-Dist: flake8-return ; extra == 'dev-wemake'
Requires-Dist: flake8-simplify ; extra == 'dev-wemake'
Requires-Dist: isort ; extra == 'dev-wemake'
Requires-Dist: mypy (~=0.900) ; extra == 'dev-wemake'
Requires-Dist: pytest (~=6.0) ; extra == 'dev-wemake'
Requires-Dist: yapf (~=0.30) ; extra == 'dev-wemake'
Requires-Dist: flake8-blind-except ; extra == 'dev-wemake'
Requires-Dist: wemake-python-styleguide (~=0.15.0) ; extra == 'dev-wemake'
Provides-Extra: io
Requires-Dist: opencv-python (~=4.0) ; extra == 'io'
Requires-Dist: scipy ; extra == 'io'
Requires-Dist: imagecodecs ; extra == 'io'
Requires-Dist: sounddevice ; extra == 'io'
Requires-Dist: soundfile ; extra == 'io'
Provides-Extra: memprof
Requires-Dist: psutil ; extra == 'memprof'
Provides-Extra: nn
Requires-Dist: graphviz ; extra == 'nn'
Requires-Dist: py3nvml ; extra == 'nn'
Requires-Dist: torch (~=1.10) ; extra == 'nn'

# Glow Library
Collection of tools for easier prototyping with deep learning extensions (PyTorch framework)

## Overview
...

## Installation

For basic installation use:

```bash
pip install glow
```
<details>
<summary>Specific versions with additional requirements</summary>

```bash
pip install glow[nn]  # For cv/neural network extras
pip install glow[io]  # For I/O extras
pip install glow[all]  # For all
```
</details>
Glow is compatible with: Python 3.9+, PyTorch 1.9+.
Tested on ArchLinux, Ubuntu 18.04/20.04, Windows 10.

## Structure
- `glow.*` - Core parts, available out the box
- `glow.cv.*` - Tools for computer vision tasks
- `glow.io.*` - I/O wrappers to access data in convenient formats
- `glow.transforms` - Some custom-made augmentations for data
- `glow.nn` - Neural nets and building blocks for them
- `glow.metrics` - Metric to use while training your neural network

## Core features
- `glow.mapped` - convenient tool to parallelize computations
- `glow.memoize` - use if you want to reduce number of calls for any function

## IO features

### `glow.io.Slide` - ndarray-like reader for multiscale images (svs, tiff, etc...)
<details>

```python
from glow.io import Slide

slide = Slide.open('test.svs')
shape: tuple[int, ...] = slide.shape
scales: tuple[int, ...] = slide.scales
image: np.ndarray = slide[:2048, :2048]  # Get numpy.ndarray
```
</details>

### `glow.io.Sound` - playable sound wrapper
<details>

```python
from datetime import timedelta

import numpy as np
from glow.io import Sound

array: np.ndarray
sound = Sound(array, rate=44100)  # Wrap np.ndarray
sound = Sound.load('test.flac')  # Load sound into memory from file

# Get properties
rate: int = sound.rate
duration: timedelta = sound.duration
dtype: np.dtype = sound.dtype

 # Plays sound through default device, supports Ctrl-C for interruption
sound.play()
```
</details>


