Standard PIP Package for GCP integration apps.
Project description
brownLlama Pip Package
Overview
brownllama-pip (or brownllama when imported in Python) is a utility library designed to provide common functionalities and standardized components for VNP's Python projects. It aims to reduce code duplication and promote best practices across different projects.
Modules
The package currently includes the following modules:
-
bigquery.py:
- Provides the
BigQueryControllerclass for simplified interaction with Google BigQuery. - Supports creating tables, checking table existence, loading data from JSON, loading data from Google Cloud Storage (GCS), and executing queries.
- Offers methods for schema inference from JSON data and efficient data loading via GCS staging.
- Provides the
-
logger.py:
- Provides the
get_loggerfunction for obtaining configured logger instances. - Standardizes logging format and setup across projects.
- Configures both root logger and common third-party library loggers to ensure consistent logging behavior.
- Provides the
-
secret_manager.py
- Provides the
get_secretfunction for retrieving secrets from Google Secret Manager. - Enables to get, create, delete and lists the secrets.
- Provides the
-
storage.py:
- Provides the
StorageManagerclass for managing Google Cloud Storage operations. - Supports uploading data (dictionaries, lists of dictionaries, Pandas DataFrames) to GCS as JSON files.
- Includes functionality for deleting files from GCS.
- Provides the
Building and Publishing
To build and publish the package, follow these steps:
-
Install build dependencies:
uv add build twine
-
Change the version number in
pyproject.tomlfileversion = "0.1.XXX"
-
Build the package:
uv build -
Publish the package in PyPI
uvx twine upload --verbose dist/*
NOTE: PyPI is public and should not be used for sensitive information. Also, you need to setup
~/.pypircwith your PyPI credentials.
Versioning Error:
If there is some error on versioning, then you simply delete dist directory and run uv build again.
Usage
After installation, you can import and use the modules and classes provided by brownllama in your Python projects.
Example (using BigQueryController):
from brownllama.bigquery import BigQueryController
bq_controller = BigQueryController(bigquery_payload=bigquery_payload, key_path=key_path)
# Example: Export JSON data to BigQuery via GCS
gcs_uri = bq_controller.export_to_bq_via_gcs(json_data=data)
print(f"Data loaded to BigQuery via GCS: {gcs_uri}")
Refer to the individual module files (bigquery.py, logger.py, storage.py) for detailed class and function documentation and usage examples.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brownllama-0.1.26.tar.gz.
File metadata
- Download URL: brownllama-0.1.26.tar.gz
- Upload date:
- Size: 55.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80df8ee3fe1e96a7b4b3fbcbb31f8498bc8e0ba9b2b1d0af59f18895f032be87
|
|
| MD5 |
0c87d7e7bc75577b855d798112cb0251
|
|
| BLAKE2b-256 |
83dd2483547b2507248cdad396e942d276ac96583ac7ec6a8b06611db0442e55
|
File details
Details for the file brownllama-0.1.26-py3-none-any.whl.
File metadata
- Download URL: brownllama-0.1.26-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcba74bb31d1c80870daf449d8f62303e2ebdab7b5c8d6310a1836189df047e4
|
|
| MD5 |
7bc41a85f3a3145bc8eadd40d98bb8b8
|
|
| BLAKE2b-256 |
1304df8b552fed318f487eda364e7ffcae23edeaf19dfdb22bb1108df569af5e
|