Skip to main content

CodeFactor

Description

Gobits is a very small module, which acts as a metadata carrier within an event-driven architecture on the Google Cloud Platform (GCP). It automatically adds fields that may be useful downstream to determine the origin of a message.

Usage

Class attributes:

class Gobits:
    """
    A small class that gathers information (bits) for a pub/sub message payload.

    Attributes:
        _request                Holds information about the cloud function request.
        _context                Holds information about the cloud function context.
        envelope                The envelope containing a pub/sub message.
        message                 The pub/sub message to be processed.
        processed               Time of processing (UTC).
        gcp_project             The source GCP project.
        execution_id            The id of the execution.
        execution_type          Type of the service processing the message.
        execution_trigger_type  Type of the trigger invoking the processor.
        function_name           Name of the processing cloud function.
        function_version        Version of the processing cloud function.
        event_id                The id of the trigger event.
        message_id              The pub/sub message id.
        message_publish_time    Time of publishing to pub/sub (UTC).
        source_subscription     The originating pub/sub subscription.
    """

Cloud function with HTTP trigger:

from gobits import Gobits


def handler(request):

    metadata = Gobits.from_request(request=request)

    message = {
      'gobits': [metadata.to_json()],
      'data': []
    }

Cloud function with other trigger:

from gobits import Gobits


def handler(data, context):

    metadata = Gobits.from_context(context=context)

    message = {
      'gobits': [metadata.to_json()],
      'data': []
    }

Testing

Sometimes you want to test a cloud function locally. Be sure to pass mock objects containing the correct fields (if applicable).

from main import handler
from unittest.mock import Mock

mock_data = Mock()
mock_context = Mock()
mock_context.event_id = "12345678"

handler(mock_data, mock_context)

Metadata

Release files for gobits 1.0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gobits 1.0.10
File Size Uploaded
gobits-1.0.10.tar.gz 16.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gobits 1.0.10
File Interpreter ABI Platform
gobits-1.0.10-py3-none-any.whl Python 3 none any Details

Total release size: 32.3 kB

Release files / gobits-1.0.10.tar.gz

Download URL gobits-1.0.10.tar.gz
Size 16.3 kB
Tags Source
SHA-256 checksum
How to use checksums
59d29811e61117c9d738a6d1d1d4697edce3844d44ccbb63c49be58e38e60c15
BLAKE2b-256 checksum
How to use checksums
0a12ad7d4708f286e575e2023e97e7d2abc022f5089e6628204a12a513195367
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release files / gobits-1.0.10-py3-none-any.whl

Download URL gobits-1.0.10-py3-none-any.whl
Size 16.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
65355a894d127c3a52a98f732b1da054d0e68ecac139c652d1e50b1f99043ff3
BLAKE2b-256 checksum
How to use checksums
47a6303ed3ecf6567bb41c9dd3e6781214aa8c501d9f3145e9924d74d2d3a7a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release history Release notifications | RSS feed

This release

1.0.10 This release

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page