Skip to main content

A build system for explainable science

Project description

Artisan is a lightweight experiment-management library with support for gradual typing. It allows you to write code like this:

class SineWave(artisan.Artifact):
    'sin(2πf⋅t + φ) for t ∈ [0, 1sec), sampled at 44.1kHz.'

    class Spec(Protocol):
        f: float; 'Frequency'
        φ: float = 0.0; 'Phase shift'

    def __init__(self, spec: Spec) -> None:
        self.t = np.linspace(0, 1, 44100)
        self.x = np.sin(2 * np.pi * spec.f * self.t + spec.φ)

to generate file trees like this:

├── SineWave_0000/
   ├── _meta_.json
   ├── t.cbor
   └── x.cbor
└── SineWave_0001/
    ├── _meta_.json
    ├── t.cbor
    └── x.cbor

that can be viewed as customizable, live-updated, interactive documents like this:

– artisan-ui screenshot –

to facilitate an explorable, explainable, composable-component-based approach to scientific, analytical, and artistic programming. Complete documentation is available on Read the Docs.

Installation

> pip install artisan-builder

Artisan works with CPython and PyPy 3.6+.

Development

To install the project’s dependencies:

To run the test suite:

> poetry run pytest

To build the HTML documentation:

> poetry run task build-docs

To build the HTML documentation with live-previewing:

> poetry run task serve-docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

artisan-builder-0.3.0.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

artisan_builder-0.3.0-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file artisan-builder-0.3.0.tar.gz.

File metadata

  • Download URL: artisan-builder-0.3.0.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.8.5 Linux/5.4.0-51-generic

File hashes

Hashes for artisan-builder-0.3.0.tar.gz
Algorithm Hash digest
SHA256 41c724242e17de627d9999e5f12b916f612302f7a5211e516447d6accb6be9f5
MD5 ddde8a82b6728829c878debb3c93175a
BLAKE2b-256 39cfe5c9061b29d5550e7f86b8fb9bcff5ab67aec18e0d33a9d1c90d7f53a6b7

See more details on using hashes here.

File details

Details for the file artisan_builder-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: artisan_builder-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.8.5 Linux/5.4.0-51-generic

File hashes

Hashes for artisan_builder-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bdf3ea69f297f7c811448e6fd2c3ccbdeb876f5cbf774082d8a3499e1b8e667b
MD5 7fe66e32eda9d23cbe5b654aa05b8cad
BLAKE2b-256 6f9a020e5bb3030c061feb2d0839367395fb5999f37cd6a62484b9a68d102a97

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page