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 Common errors
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).
Warnings
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 ...'
Imports
- singer wrong
import singercorrectfrom hotglue_singer_sdk import SingerTap, SingerTarget
Quickstart
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()