Skip to main content

No project description provided

Project description

docs/source/images/bluprint_logo.png

Bluprint

Bluprint is a command line utility for streamlined exploratory data science projects. Bluprint allows seamless access to configuration, data and shared code in this type of project structure created by bluprint create my_project:

my_project
├── conf
│   └── data.yaml
├── data
│   ├── emailed
│   │   └── messy.xlsx
│   └── user_processed.csv
├── notebooks
│   └── process.ipynb
└── my_project
    └── shared_code.py

Storing paths relative to the my_project directory in conf/data.yaml:

emailed:
    messy: 'emailed/messy.xlsx'
user:
    processed: 'user_processed.csv'

allows you access them in a Python script or Jupyter notebook anywhere within the project:

from bluprint_conf import load_data_yaml

data = load_data_yaml() # By default loads conf/data.yaml
print(data)
#> {
#>   'emailed': {
#>     'messy': '/path/to/my_project/data/emailed/messy.xlsx'
#>   },
#>   'user': {
#>     'processed': '/path/to/my_project/data/user_processed.csv'
#>   },
#>   'remote': {
#>     'extras': 's3://path/to/extra_data.csv'
#>   },
#> }

# Load data in a portable manner
import pandas as pd
messy_df = pd.read_xlsx(data.emailed.messy)
extras_df = pd.read_xlsx(data.remote.extras)

# Load shared code functions as Python modules
from my_project.shared_code import transform_data
transformed_df = transform_data(messy_df, extras_df)

# Save output
transformed_df.to_csv(data.user.processed)

Features

  • Write portable notebooks by loading configs with load_data_yaml() and load_config_yaml()

  • R/Python packages automatically version-locked using renv and PDM

  • Import shared code as Python modules

  • Install shared code across projects with pip install

  • Use both Python and R notebooks in a single project (see Python/R projects)

  • Share projects by copying a project directory and running pdm install

  • Works with common IDEs (RStudio, VSCode), notebook tools for linting (nbqa), notebook version control (nbstripout) or workflows (Ploomber)

Documentation

Full documentation available at: https://igor-sb.github.io/bluprint/.

Installation

Install pipx and PDM. Then run:

pipx install bluprint

References

Bluprint integrates:

Bluprint is heavily inspired by these resources:

License

Bluprint is released under MIT license.

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

bluprint-0.1.4.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

bluprint-0.1.4-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file bluprint-0.1.4.tar.gz.

File metadata

  • Download URL: bluprint-0.1.4.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.15.1 CPython/3.11.6 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for bluprint-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f65f0cc336fc86833df204da7a35b0bddb3621893ddeeed84ec37a6266069061
MD5 c95d69db764d9d26f1a2bd53b18c9021
BLAKE2b-256 50614bed8ec4ad26bc7e876c8dc556ef2aca931d24e6a3b324cd6d8f8e0b79b7

See more details on using hashes here.

File details

Details for the file bluprint-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: bluprint-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.15.1 CPython/3.11.6 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for bluprint-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ca541ab3cbc883010e16bddf8db9f105c23b4b6505ef802ec97dc56e44aac75b
MD5 4c91b6eb7177acc5ece5f81df86e8fb3
BLAKE2b-256 93197fe60a62e6ffeb5af6dcceb2a92df3c7aa437cc6086adff3e1b0aaa93c08

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