Skip to main content

Help modules for different applications, especially for google cloud

Project description

SIBR Module

PyPI version 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 for append, replace, and merge operations.
  • 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

If in use locally, make sure to set your credentials available as environment variables using: GOOGLE_APPLICATION_CREDENTIALS=path-to-your-credentials.

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.
    • dtype_map: Optional argument if the user wishes to specify a certain mapping of dtypes to Big Query types

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sibr_module-0.1.8.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sibr_module-0.1.8-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file sibr_module-0.1.8.tar.gz.

File metadata

  • Download URL: sibr_module-0.1.8.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

Hashes for sibr_module-0.1.8.tar.gz
Algorithm Hash digest
SHA256 c608e3c536c4f1341da169e495a11db7bb1841a88cbd5ba092c561ded241e14a
MD5 1cec69b27a28a39d458d74f11c131d6a
BLAKE2b-256 fa0546410cabb98385d9993355e2937e609e3f7636f890b8f69352a1268a7680

See more details on using hashes here.

File details

Details for the file sibr_module-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: sibr_module-0.1.8-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

Hashes for sibr_module-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 49609c4f0e3c72ce9affa136578f4a801ce1a0c59a701ae3612c31752e6e18cb
MD5 ec5877b7d5a4bcfa5595e04009e28d57
BLAKE2b-256 b7de7f5b9f115dcddae414e644da71a616b103300a2218a71c5fc29f2809cd6b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page