Help modules for different applications, especially for google cloud
Project description
SIBR Module
A collection of helper modules for interacting with Google Cloud Platform services, designed to simplify common workflows. This package provides easy-to-use classes for BigQuery, Google Cloud Storage, Secret Manager, and Cloud Logging.
Features
BigQuery: Easily upload DataFrames to BigQuery tables with automatic schema detection and support forappend,replace, andmergeoperations.CStorage: Upload and download files to and from Google Cloud Storage buckets.SecretsManager: Securely access secrets from Google Secret Manager.Logger: A flexible logger that supports both local file logging and integration with Google Cloud Logging.
Installation
You can install the package from PyPI:
pip install sibr-module
Quickstart
Ensure you are authenticated with Google Cloud. You can do this by running:
gcloud auth application-default login
import pandas as pd
from sibr_module import BigQuery, Logger
# --- 1. Set up a logger ---
# This will log to a local file and, if enabled, to Google Cloud Logging
logger = Logger(log_name="my_app_logger", enable_cloud_logging=True)
logger.info("Application starting up.")
# --- 2. Prepare your data ---
data = {'name': ['Alice', 'Bob'], 'score': [85, 92]}
my_dataframe = pd.DataFrame(data)
# --- 3. Use the BigQuery helper ---
try:
# Initialize the client with your Google Cloud Project ID
bq_client = BigQuery(project_id="your-gcp-project-id", logger=logger)
# Upload the DataFrame to a BigQuery table
bq_client.to_bq(
df=my_dataframe,
dataset_name="my_dataset",
table_name="my_table",
if_exists="append" # Options: 'append', 'replace', or 'merge'
)
logger.info("Successfully uploaded data to BigQuery.")
except Exception as e:
logger.error(f"An error occurred: {e}")
Usage Details
BigQuery
The BigQuery class handles interactions with Google BigQuery.
- to_bq(df, dataset_name, table_name, if_exists='append', merge_on=None): Uploads a pandas DataFrame.
- if_exists='append': Adds data to an existing table.
- if_exists='replace': Deletes the existing table and creates a new one.
- if_exists='merge': Updates existing rows and inserts new ones. Requires merge_on to be set with a list of key columns.
- read_bq(query): Executes a query and returns the result as a pandas DataFrame.
CStorage
The CStorage class simplifies file operations with Google Cloud Storage.
-
upload(local_file_path, destination_blob_name): Uploads a local file to the bucket.
-
download(source_blob_name, destination_file_path): Downloads a file from the bucket.
SecretsManager
Access your secrets easily.
- get_secret(secret_id): Retrieves the latest version of a secret by its ID.
Contributing
Contributions are welcome! Please open an issue or submit a pull request if you have any improvements or bug fixes.
License
This project is licensed under the MIT License. See the LICENSE file for details.
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 sibr_module-0.1.6.tar.gz.
File metadata
- Download URL: sibr_module-0.1.6.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1872d474b85e6ee0302903e035ebbed5dc537bb7224ff832e6a6eb2eaeb40f6
|
|
| MD5 |
7c9039e1028c4fcc11b9770565037d0d
|
|
| BLAKE2b-256 |
ab072bf7d5d33bb2d86728cc455f09c64d8abd84c71379f3b24895c93eb782fa
|
File details
Details for the file sibr_module-0.1.6-py3-none-any.whl.
File metadata
- Download URL: sibr_module-0.1.6-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50c87e226f9ad6505df2be8dd6c96ae717df447712b51f01fdcf05646c7c784b
|
|
| MD5 |
75d96905f019a56fa17e5f897d2b6238
|
|
| BLAKE2b-256 |
569277fa4f40102106e323b2a37af51dee322b1c4513e2b5f11d186781749f78
|