{"library":"pybars3","title":"Pybars3","description":"Pybars3 is a Python library that provides a templating system compatible with Handlebars.js, supporting both Python 2 and Python 3. It is a fork of the original `pybars` project, enhancing it with Python 3 compatibility and features from Handlebars.js up to version 2.0. The current version is 0.9.7, released in November 2019, indicating an infrequent release cadence and a status of maintenance.","language":"python","status":"maintenance","last_verified":"Sun May 17","install":{"commands":["pip install pybars3"],"cli":null},"imports":["from pybars import Compiler"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pybars import Compiler\n\n# Get a compiler\ncompiler = Compiler()\n\n# Define a helper function\ndef _list_helper(this, options, items):\n    result = ['<ul>']\n    for item in items:\n        result.append('<li>')\n        result.extend(options['fn'](item)) # Render the inner block\n        result.append('</li>')\n    result.append('</ul>')\n    return result\n\n# Register helpers and partials\nhelpers = {'list': _list_helper}\nheader_template = compiler.compile(u'<h1>{{title}}</h1>')\npartials = {'header': header_template}\n\n# Compile the main template source\nsource = u\"\"\"\n{{>header}}\n<p>Hello, {{name}}!</p>\n{{#list people}}{{firstName}} {{lastName}}{{/list}}\n\"\"\"\ntemplate = compiler.compile(source)\n\n# Data to render\ndata = {\n    'title': 'People List',\n    'name': 'World',\n    'people': [\n        {'firstName': 'Yehuda', 'lastName': 'Katz'},\n        {'firstName': 'Carl', 'lastName': 'Lerche'},\n        {'firstName': 'Alan', 'lastName': 'Johnson'}\n    ]\n}\n\n# Render the template\noutput = template(data, helpers=helpers, partials=partials)\nprint(output)","lang":"python","description":"This quickstart demonstrates compiling a Handlebars template, registering a custom block helper, defining a partial, and rendering the template with contextual data. Note the use of `u\"\"` for template strings for compatibility, though on Python 3 plain strings are sufficient.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.9.7","pypi_latest":"0.9.7","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.2,"avg_import_s":1.84,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.77,"mem_mb":9.1,"disk_size":"19.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":1.42,"mem_mb":8.9,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.85,"mem_mb":8.5,"disk_size":"21.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":1.76,"mem_mb":8.5,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.11,"mem_mb":8.2,"disk_size":"11.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":2.01,"mem_mb":8.2,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.11,"mem_mb":8.7,"disk_size":"11.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.8,"import_time_s":1.89,"mem_mb":8.5,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.8,"mem_mb":9,"disk_size":"19.0M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pybars3","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":1.73,"mem_mb":9,"disk_size":"20M"}]}}