{"id":23859,"library":"hotglue-singer-sdk","title":"Hotglue Singer SDK","description":"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.","status":"active","version":"1.0.29","language":"python","source_language":"en","source_url":"https://github.com/hotglue/hotgluesingersdk","tags":["singer","etl","tap","target"],"install":[{"cmd":"pip install hotglue-singer-sdk","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Underlying Singer tap/target library","package":"singer-python","optional":false},{"reason":"Often used in tap implementations","package":"requests","optional":true}],"imports":[{"note":"Importing just 'singer' gets the singer-python library, not the hotglue SDK","wrong":"import singer","symbol":"singer","correct":"from hotglue_singer_sdk import SingerTap, SingerTarget"}],"quickstart":{"code":"from hotglue_singer_sdk import SingerTap, SingerTarget\n\nclass MyTap(SingerTap):\n    name = \"my_tap\"\n    def discover(self, config):\n        return [{\"stream\": \"users\", \"schema\": {\"type\": \"object\"}}]\n    def sync(self, config, state, stream):\n        yield {\"type\": \"RECORD\", \"stream\": stream, \"record\": {}}\n\nif __name__ == \"__main__\":\n    MyTap().run()","lang":"python","description":"Minimal Singer tap using the hotglue SDK."},"warnings":[{"fix":"Use Python 3.7.1–3.10.","message":"Python 3.11 is not supported (requires <3.11). Python 3.12+ will fail.","severity":"breaking","affected_versions":">=1.0.0,<1.1.0"},{"fix":"Evaluate migration to Meltano SDK: https://github.com/MeltanoLabs/sdk","message":"The SDK is no longer actively maintained by Hotglue, consider migrating to Meltano SDK or singer-sdk.","severity":"deprecated","affected_versions":"all"},{"fix":"Use 'from hotglue_singer_sdk import ...'","message":"The library is installed as 'hotglue-singer-sdk' but import path uses underscores: 'hotglue_singer_sdk'.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'import hotglue_singer_sdk' (underscores) or 'from hotglue_singer_sdk import SingerTap'.","cause":"Trying to import using hyphens instead of underscores.","error":"ModuleNotFoundError: No module named 'hotglue-singer-sdk'"},{"fix":"Ensure all config values are strings (e.g., 'port': '1234' not 'port': 1234).","cause":"Passing integer where a string config value is expected, common when using config file with unquoted numbers.","error":"TypeError: can only concatenate str (not \"int\") to str"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}