{"id":27575,"library":"absql","title":"ABSQL","description":"A rendering engine for templated SQL. Current version 0.6.3, with occasional releases. Supports Jinja-like templating, YAML frontmatter, and multiple file types.","status":"active","version":"0.6.3","language":"python","source_language":"en","source_url":"https://github.com/pipeline-tools/ABSQL","tags":["sql","templating","jinja","yaml","rendering"],"install":[{"cmd":"pip install absql","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"note":"","wrong":"","symbol":"ABSQLEngine","correct":"from absql import ABSQLEngine"},{"note":"","wrong":"","symbol":"render","correct":"from absql import render"},{"note":"","wrong":"","symbol":"render_file","correct":"from absql import render_file"}],"quickstart":{"code":"from absql import ABSQLEngine\n\nengine = ABSQLEngine()\ntemplate = \"\"\"\n---\ndb: postgresql\n---\nSELECT * FROM {{ table_name }}\n\"\"\"\nresult = engine.render(template, table_name='users')\nprint(result)","lang":"python","description":"Define a template with YAML frontmatter and render with context variables."},"warnings":[{"fix":"If you relied on the old key (e.g., `result['sql']`), update to `result['absql_body']`.","message":"In v0.6.0, when `return_dict=True`, the key for file-specific content changed to `absql_body` instead of the filename.","severity":"breaking","affected_versions":">=0.6.0"},{"fix":"Install `flatdict` separately if needed: `pip install flatdict`.","message":"The `flatdict` package dependency was removed in v0.6.3. If you used `flatdict` directly in your code, it will break.","severity":"gotcha","affected_versions":">=0.6.3"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Install absql with YAML support: `pip install absql[yaml]` or install PyYAML separately.","cause":"Missing dependency for YAML frontmatter parsing.","error":"ModuleNotFoundError: No module named 'frontmatter'"},{"fix":"Always pass context as a dictionary: `engine.render(template, {'key': 'value'})`.","cause":"Passing a string as context instead of a dictionary.","error":"AttributeError: 'str' object has no attribute 'items'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}