hela: write your data catalog as code
You probably already have your data job scripts version controlled, but what about your data catalog? The answer: write your data catalog as code! Storing your data catalog and data documentation as code makes your catalog searchable, referenceable, reliable, platform agnostic, sets you up for easy collaboration and much more! This library is built to fit small and large data landscapes, but is happiest when included from the start.
Hela (or Hel) is the norse mythological collector of souls, and the Swedish word for "whole" or "all of it". Hela
is designed to give everyone a chance to build a data catalog, with a low entry barrier: pure python code.
Links:
Installing
Using pip:
pip install hela
Using poetry:
poetry add hela
Roadmap
These are up-coming features in no particular order, but contributions towards these milestones are highly appreciated! To read more about contributing check out CONTRIBUTING.md.
- Search functionality in web app
- More integrations (Snowflake, Redshift)
- More feature rich dataset classes
- Data lineage functionality (both visualized in notebooks and web app)
- Prettier docs page
(Mega) Quick start
If you want to read more check out the docs page. If you do not have patience for that, the following is all you need to get started.
First of all build your own dataset class by inheriting the BaseDataset class. This class will hold most of your project specific functionality such as read/write, authentication etc.
class MyDatasetClass(BaseDataset):
def __init__(
self,
name: str, # Required
description: str, # Optional but recommended
columns: list, # Optional but recommended
rich_description_path: str = None, # Optional, used for web app
partition_cols: list = None, # Optional but recommended
# folder: str = None, # Only do one of either folder or database
database: str = None, # Optional, can also be enriched via Catalog
) -> None:
super().__init__(
name,
data_type='bigquery',
folder=None,
database=database,
description=description,
rich_description_path=rich_description_path,
partition_cols=partition_cols,
columns=columns
)
# Do more of your own init stuff
def my_func(self) -> None:
# Your own dataset function
pass
# Now instantiate your dataset class with one example column
my_dataset = MyDatasetClass('my_dataset', 'An example dataset.', [
Col('my_column', String(), 'An example column.')
])
Now that you have a dataset class, and instantiated your first dataset, you can start populating your data catalog.
from hela import Catalog
class MyCatalog(Catalog):
my_dataset = my_dataset
That's it! You now have a small catalog to keep building on. To view it as a web page you can
add the following code to a python script, and in the future add it in whichever CI/CD tool you use.
This will generate an index.html file that you can view in your browser or host on e.g. github pages.
from hela import generate_webpage
generate_webpage(MyCatalog, output_folder='.')
To view what a bigger data catalog can look like check out the showcase catalog.
Metadata
Release files for hela 0.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| hela-0.2.6.tar.gz | 161.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hela-0.2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 330.9 kB
Release files / hela-0.2.6.tar.gz
| Download URL | hela-0.2.6.tar.gz |
|---|---|
| Size | 161.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc65f507df73819bb75889d7dd3b5214d412d4c00137dec43004cb20f00a94ab
|
|
BLAKE2b-256 checksum How to use checksums |
117dd720145d8797bfa53db4cc5308f80234e8d1ac7b3f5f1c3ebb5f86584e90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.5.1 CPython/3.11.4 Darwin/22.4.0
|
Release files / hela-0.2.6-py3-none-any.whl
| Download URL | hela-0.2.6-py3-none-any.whl |
|---|---|
| Size | 169.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b0e6f6384cf8682008d36c0cc0f3f0846c3887b8a948a021c8c94e98fd0935b
|
|
BLAKE2b-256 checksum How to use checksums |
91365cfa01e8e47814bc99a44e3e03d2419b781add57c5a7a5400f0153d20456
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.5.1 CPython/3.11.4 Darwin/22.4.0
|
Security for hela 0.2.6
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.