No project description provided
Project description
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:
Author’s own frustration of dealing with malfunctioning notebooks for over a decade.
Vincent D. Warmerdam: Untitled12.ipynb | PyData Eindhoven 2019
License
Bluprint is released under MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bluprint-0.1.5.tar.gz
.
File metadata
- Download URL: bluprint-0.1.5.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.11.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8960975b21de3cc162c73ae73d98d9e7c31f25a0a02174426155c2073749b063 |
|
MD5 | 6ab08bf642839319f3e677849ac4568f |
|
BLAKE2b-256 | 0a4207bbf0ebd6ce6465da3dfbf18c67078b470ce2779730a0370d5a2636cf1e |
File details
Details for the file bluprint-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: bluprint-0.1.5-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.11.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f11402ca4df71047226bb74b9ac851b8688708e6d75668b7047c1e00043f10f6 |
|
MD5 | fab7a3697fb21db35a8984afa35965f5 |
|
BLAKE2b-256 | ffe2acab93a6199fc7563bd5942dab54ea9d5c9b9bc7545eb23768c465568820 |