Skip to main content

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) [![Worfklow](https://github.com/andrewyates/profane/workflows/pytest/badge.svg)](https://github.com/andrewyates/profane/actions) [![PyPI version fury.io](https://badge.fury.io/py/profane.svg)](https://pypi.python.org/pypi/profane/)

# Overview Profane is a library for creating complex experimental pipelines. Profane pipelines are based on two key ideas: 1. An experiment is a function of its configuration. In other words, an experiment should be deterministic given a set of experimental parameters (random seed, specific algorithms to run, etc). 2. An experiment is described as a DAG representing modules’ (nodes’) dependencies in which the state of a node is independent of its parent’s state. That is, a node’s operation is a function of its configuration and the configurations of its children. This means that a node may not modify the configuration (or state) of its children (or descendants).

These allow for the construction of a flexible pipeline with automatic caching. Each node’s configuration can be modified to change experimental parameters, and a node’s output can be safely cached in a path derived from its configuration and the configurations of its children. These nodes are called modules.

This library is heavily inspired by the excellent [sacred](https://sacred.readthedocs.io/en/stable/) library. Among other differences, profane imposes a specific structure on the pipeline and leverages this to allow profane modules to be dynamically configured (which would be similar to dynamic sacred ingredients). Profane was developed based on experiences using sacred with a heavily modified pipeline initialization step.

## Example The example/ directory contains a module graph similar to that used in Capreolus. Run it with the run.sh script.

Metadata

Release files for profane 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for profane 0.2.4
File Size Uploaded Provenance Actions
profane-0.2.4.tar.gz 15.4 kB Without provenance Details for profane-0.2.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for profane 0.2.4
File Interpreter ABI Platform Actions
profane-0.2.4-py3-none-any.whl Python 3 none any Details for profane-0.2.4-py3-none-any.whl

Total release size: 36.6 kB

Release files / profane-0.2.4.tar.gz

Download URL profane-0.2.4.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6aadc73177192606ea58b6fab3759693ce354798628ae7f91c0be36db0917bd0
BLAKE2b-256 checksum
How to use checksums
0104976bd25ec070f0758f3cae58adb7c98a698a2f541ab2ea7be54f94cc43bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/36.5.0.post20170921 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.9

Release files / profane-0.2.4-py3-none-any.whl

Download URL profane-0.2.4-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44eeafa775755a80e55293ccb6b20059145ed5dac00f91e21cb60e1c3b882eb9
BLAKE2b-256 checksum
How to use checksums
6c45d6570508dcd37da68ac59fbd4da69e611ad4015c07d1ad0b4fe003410bc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/36.5.0.post20170921 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.9

Security for profane 0.2.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page