A low-key build system for working with data.
Project description
laforge is a low-key build system for working with data.
💻 Introduction
You know, I've always thought technology could solve almost any problem.
$ python -m pip install laforge -q
...
$ laforge create
Creating /home/matvan/science/build.ini
? Creating a new laforge INI at: /home/matvan/science/build.ini
Creating /home/matvan/science/build.ini
? Default read directory, relative to /home/matvan/science/: ./data
? Default write directory, relative to /home/matvan/science/: ./output
? Default execute directory, relative to /home/matvan/science/: ./
? SQL Distribution: SQLite
? Database: :memory:
New laforge INI written at: /home/matvan/science/build.ini
Enjoy!
There's theory and then there's application. They don't always jibe.
$ vim ./build.ini
...
$ cat ./build.ini
[DEFAULT]
read_dir: ./data
write_dir: ./output
execute_dir: ./
distro: sqlite
database: :memory:
# Write the contents of an Excel sheet as a SQL table
[load_individual]
read: 2019_indiv_data.xlsx
write: raw_grp
# Write the contents of a CSV as a SQL table
[load_group]
read: 2019_grp_data.csv
write: raw_indiv
# Execute a standalone SQL script; read a SQL table and save as CSV
[do_some_things]
execute: do_stuff.sql
read: laforge.demo.aggregate
write: aggregate.csv
# Read the result of an ad-hoc SQL query; write to an HTML table
[peek]
read:
"select top 50 *
from demo.aggregate agg
left join demo.raw_indiv ri
on agg.v1 = r1.v2
order by newid();"
write: results_peek.html
Yeah, but that's imposs—yes, sir.
$ laforge build
‖-)
📓 Documentation
https://laforge.readthedocs.io/en/latest/
⚗️ Development
Captain, we can do it... It'll take fifteen years and a research team of a hundred.
🤖 Automation
🚀 Downstream
🧙 Author
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
laforge-0.1.6.tar.gz
(50.7 kB
view details)
Built Distribution
laforge-0.1.6-py3-none-any.whl
(68.3 kB
view details)
File details
Details for the file laforge-0.1.6.tar.gz
.
File metadata
- Download URL: laforge-0.1.6.tar.gz
- Upload date:
- Size: 50.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a440098d54d4523e8dec329f7152dae98939e0b58583062f65a5cf280b481a84 |
|
MD5 | 0d1e3758a2f14de2c0422f4a383ecd06 |
|
BLAKE2b-256 | 110eb6f2891d06ebddf11e61d52fff6531d7dd0d865227c09c667a059877fe13 |
File details
Details for the file laforge-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: laforge-0.1.6-py3-none-any.whl
- Upload date:
- Size: 68.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdf599277c86123534cbd0bfa3cef46896dd7aad294b73a5f501fee3e8b6bee0 |
|
MD5 | 974c5ccfbd3187e41f8cb1bed7771518 |
|
BLAKE2b-256 | feef14c5ec4db91a2c30e34ed5abf581d8a42c30fe9224732d66e915dc25916c |