pydantic-handlebars 0.2.1-2
Package Information
| Description | Handlebars template engine for composing LLM prompts for Pydantic A Handlebars template engine for composing LLM prompts, built on Pydantic. Designed for AI/agent developers who build system prompts from dynamic data — few-shot examples, user-specific context, tool descriptions, and other content that shouldn't be hardcoded. Templates are validated against Pydantic models at compile time, catching typos and missing fields before any data is rendered. |
|---|---|
| Maintainer | Debian Python Team <team+python@tracker.debian.org> |
| Changed By | Pieter Lenaerts <plenae@disroot.org> |
| Sponsor | jcfp@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/python-team/packages/pydantic-handlebars.git (browse) |
| Tracker | https://tracker.debian.org/pkg/pydantic-handlebars |
| Uploaded | 15 hours ago |
| Supersedes | 0.2.1-1 |
New Package Report
.changes
| Changed-By | Pieter Lenaerts <plenae@disroot.org> |
|---|---|
| Architecture | source all |
| Distribution | unstable |
| Date | Tue, 27 Oct 2026 21:35:57 +0000 |
| Source | pydantic-handlebars |
| Version | 0.2.1-2 |
Changelog
pydantic-handlebars (0.2.1-2) unstable; urgency=medium . * d/copyright: add handlebar.js copyright holder
.dsc
| Component | main |
|---|---|
| Package-List | pydantic-handlebars-doc deb doc optional arch=all profile=!nodoc profile:v1=!nodoc python3-pydantic-handlebars deb python optional arch=all |
| Section | doc |
| Priority | optional |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/pydantic/pydantic-handlebars/
Files: *
Copyright: 2026, Pydantic Services Inc.
License: Expat
Files: debian/*
Copyright: 2026, Pieter Lenaerts <plenae@disroot.org>
License: Expat
Files: tests/test_helpers.py
tests/test_builtins.py
tests/test_blocks.py
tests/test_basic.py
tests/test_data.py
tests/test_subexpressions.py
tests/test_security.py
tests/test_regressions.py
tests/test_tokenizer.py
tests/test_whitespace.py
Copyright: 2026, Pydantic Services Inc.
2011-2019, Yehuda Katz
Comment:
Retrieved from
https://github.com/handlebars-lang/handlebars.js/blob/master/LICENSE
Proposed a PR to clarify the attribution:
https://github.com/pydantic/pydantic-handlebars/pull/15
License: Expat
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 1 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 13 hours ago.
Report
DFSG NEW review for pydantic-handlebars version 0.2.1-2
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 0 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The source is uniformly MIT/Expat: LICENSE carries Copyright (c) 2026 Pydantic Services Inc., matching the DEB-5 Files: * stanza, and the ten tests ported from the handlebars.js spec suite have a later stanza naming Yehuda Katz (2011-2019) with the same Expat text, whose source licence was retrieved from handlebars.js. The prescan's author check found every holder named; a grep for copyright, licence and non-free terms across the tree found nothing else. The full Expat text is present, and no file needs a /usr/share/common-licenses reference. debian/copyright is machine-readable and its stanzas match the tree.
Packaging
The packaging is conventional and mostly clean: debhelper 14 with pybuild, Testsuite: autopkgtest-pkg-pybuild with a correct debian/pybuild.testfiles, two well-formed DEP-3 patches, a doc package with doc-base, and no unused or missing substvars. One real bug remains: debian/rules implements the nodoc switch with DEB_BUILD_OPTIONS only, while the package declares and its CI exercises the nodoc build profile, so a profile-aware build still tries to run mkdocs after the profile has removed it from the build dependencies.
Issues
1. [minor] [packaging] debian/rules checks nodoc in DEB_BUILD_OPTIONS only, so the declared nodoc build profile still runs mkdocs without it installed
- Files:
debian/rules:9,debian/rules:13,debian/control - Basis: checked, in the package or with a reference tool
- Evidence: Both blocks are guarded with
ifeq ($(filter nodoc,$(DEB_BUILD_OPTIONS)),), aroundmkdocs build -d $(CURDIR)/build/htmland arounddh_mkdocs -T mkdocs -T libjs-underscore -T mkdocs-material. debian/control declaresBuild-Profiles: <!nodoc>on pydantic-handlebars-doc and putsmkdocs <!nodoc>,mkdocs-material <!nodoc>,mkdocstrings <!nodoc>andmkdocstrings-python-handlers <!nodoc>in Build-Depends-Indep. Policy 4.9.2: enabled build profiles are listed inDEB_BUILD_PROFILES, not inDEB_BUILD_OPTIONS. - Problem: With
-P nodoc(the second profile in debian/salsa-ci.yml's test-build-profiles matrix)DEB_BUILD_OPTIONSdoes not contain nodoc, soexecute_after_dh_auto_buildstill runsmkdocs build, while the profile has dropped mkdocs, mkdocs-material and the mkdocstrings packages from Build-Depends-Indep; the build stops atmkdocs: not found. Even if it got past that,dh_mkdocsinexecute_after_dh_installdocswould abort withMkDocs directory not found, because the< !nodoc>doc package is not built. debhelper itself honours both forms (dh_installdocsusesis_build_profile_active('nodoc') || get_buildoption('nodoc')), which is why the rest of the nodoc handling does not fail. - Fix: Test the profile as well, e.g.
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS) $(DEB_BUILD_PROFILES)))around both blocks, or key the docs build wholly ondh_listpackagescontaining pydantic-handlebars-doc.
Verified
- Prescan: its only output was the author check (
every holder found is named in debian/copyright), which matches what I found; it listed no files, so there was no built/minified/non-free file to account for. - Enumerated every upstream path (57 files,
.pc/anddebian/cargo-checksum.jsonabsent): no images, fonts, sounds, archives, PDFs, bytecode or minified code.uv.lockis uv's generated lock file, generated from the shippedpyproject.toml. - Upstream
LICENSEis the MIT/Expat text withCopyright (c) 2026 Pydantic Services Inc.; no source or test file carries its own copyright or licence header. TheFiles: *stanza matches it. - The later stanza for the ten tests under
tests/names Yehuda Katz 2011-2019:CLAUDE.mdstates the tests were ported from handlebars.js's spec suite, and handlebars.js's LICENSE is the same Expat text withCopyright (C) 2011-2019 by Yehuda Katz, so the attribution andLicense: Expatare right. - Grep for
Copyright,(C),©,SPDX-License-Identifier,Licensed under,GNU General/Lesser,Apache License,Mozilla Public,public domain,All rights reserved,non-commercial,no modificationand Creative Commons found nothing besides LICENSE and debian/copyright;docs/helpers.md's{{#unless license}}is example template text, not a licence term. - debian/copyright is DEP-5: canonical
Format:URL,Source:,Files: *,Files: debian/*, the tests stanza withComment:andLicense: Expat, and a stand-alone Expat paragraph with the full text. - Read all of debian/ in full: control, rules, changelog, series and both patches, pybuild.testfiles, doc-base, .docs, source/format, gbp.conf, salsa-ci.yml, upstream/metadata.
- Test imports (pytest, hypothesis, pytest-examples, pydantic, pytest-xdist) match Build-Depends-Indep; the comment line in debian/pybuild.testfiles is skipped by pybuild (
line.startswith('#')in/usr/share/dh-python/dhpython/build/base.py). - Both patches are DEP-3 (From/Date/Subject/Forwarded) and match the applied tree: one adds
paths: [src],font: false,use_directory_urls: falseto mkdocs.yml, the other skips the ruff-based docstring lint test. dh_mkdocsexists on this system (shipped by mkdocs, whichProvides: dh-sequence-mkdocs) and only uses-Tto scan extra packages for symlink targets; the doc-base absoluteFiles:/Index:paths are the same form used by other packages in /usr/share/doc-base.- uscan found the packaged version as the newest upstream release (upstream
0.2.1, packaged0.2.1).
Not confirmed
- Whether the mkdocs-material theme lists
sitemap.xmlin its static_templates: dh_mkdocs requires ansitemap.xmlnext toindex.htmland would otherwise abort withMkDocs directory not found. mkdocs-material is not installed here, so I could only check mkdocs's own build code (the sitemap template is rendered whenever the theme lists it). The maintainer'sfind ... sitemap.xml.gz -deletesuggests the file is produced. - Whether salsa-ci's
test-build-profilesjob installs Build-Depends profile-aware; if it does not, mkdocs would still be installed for the nodoc job and would mask the failure described in the issue, whilesbuild --profiles=nodocwould fail.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 13 hours ago.