Hotglue Singer SDK

raw JSON →
1.0.29 verified Fri May 01 auth: no python

A framework for building Singer taps and targets, maintained by Hotglue. Current version 1.0.29, supports Python 3.7.1 to <3.11. This SDK wraps the singer-python library with additional utilities for configuration, state management, and common tap/target patterns. Release cadence is irregular.

pip install hotglue-singer-sdk
error ModuleNotFoundError: No module named 'hotglue-singer-sdk'
cause Trying to import using hyphens instead of underscores.
fix
Use 'import hotglue_singer_sdk' (underscores) or 'from hotglue_singer_sdk import SingerTap'.
error TypeError: can only concatenate str (not "int") to str
cause Passing integer where a string config value is expected, common when using config file with unquoted numbers.
fix
Ensure all config values are strings (e.g., 'port': '1234' not 'port': 1234).
breaking Python 3.11 is not supported (requires <3.11). Python 3.12+ will fail.
fix Use Python 3.7.1–3.10.
deprecated The SDK is no longer actively maintained by Hotglue, consider migrating to Meltano SDK or singer-sdk.
fix Evaluate migration to Meltano SDK: https://github.com/MeltanoLabs/sdk
gotcha The library is installed as 'hotglue-singer-sdk' but import path uses underscores: 'hotglue_singer_sdk'.
fix Use 'from hotglue_singer_sdk import ...'

Minimal Singer tap using the hotglue SDK.

from hotglue_singer_sdk import SingerTap, SingerTarget

class MyTap(SingerTap):
    name = "my_tap"
    def discover(self, config):
        return [{"stream": "users", "schema": {"type": "object"}}]
    def sync(self, config, state, stream):
        yield {"type": "RECORD", "stream": stream, "record": {}}

if __name__ == "__main__":
    MyTap().run()