adaptive-cards-templating-py
This library largely implements the JSON-to-JSON Adaptive Cards Template language for Python. Most features are supported, except for the Adaptive expressions prebuilt functions.
Decision gist · record as of 2026-08-14
Yes, if you are building Adaptive Cards and need template expansion in Python and can tolerate early-stage software. The package has low install friction, permissive licensing, and no external dependencies. However, be aware that it is very new (first release 2025-05-08), has minimal adoption and community validation, does not support Adaptive expressions prebuilt functions, and carries aging maintenance status. Use it for non-critical projects or where you can afford to contribute fixes upstream if issues arise.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with no runtime dependencies.
- Maintenance status is aging—the package was first released on 2025-05-08 with the latest release on 2025-05-14, and has only 2 repository stars, suggesting early-stage adoption and limited community validation.
License · maintenance · safety
permissive license (permissive) — MIT License permits free use, modification, and distribution with minimal restrictions. You may use this in commercial and proprietary projects provided you retain the copyright and license notice.
last release 2025-05-14 (457 days) · last repo commit 2025-05-14 · 2 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 91,581 downloads/mo, #13,512 on PyPI
Alternatives
Verify before relying
pip install adaptive-cards-templating-py
from adaptive_cards_templating_py import Template
import json
template_json = {"type": "AdaptiveCard", "body": [{"type": "TextBlock", "text": "${message}"}]}
template = Template(template_json)
card = template.expand({"$root": {"message": "Hello, Adaptive Cards!"}})
print(json.dumps(card, indent=2))- Whether Adaptive expressions prebuilt functions are critical for your use case, since they are explicitly unsupported.
- Real-world performance and correctness coverage of the template language implementation beyond the documented features.
- Stability and API compatibility guarantees given the very recent first release and minimal maintenance history.
What it is and what it does
This package implements the Adaptive Cards Template language for Python, allowing you to take a template JSON structure and dynamically expand it by injecting data and evaluating expressions. It supports inline data substitution via `$data`, conditional rendering with `$when`, expression evaluation using `${}` syntax, and special variables like `$root`, `$host`, and `$index`. The library is designed to work with Microsoft's Adaptive Cards format, which is commonly used in chatbots, messaging platforms, and other interactive UI contexts.
The package has no external runtime dependencies, making installation straightforward. However, it explicitly does not support Adaptive expressions prebuilt functions, which may be a limitation if your templates rely on those. Given that the first release was on 2025-05-08 and the latest on 2025-05-14, this is a very new project with minimal community adoption (2 repository stars), so real-world reliability and completeness of the implementation remain unvalidated.
Use it for
- Dynamically generate Adaptive Cards for chatbot responses by expanding templates with user-specific data.
- Render conditional card layouts based on host environment or runtime context using `$when` and `$host`.
- Build templated UI components for Microsoft Teams or other Adaptive Card-compatible platforms.
- Substitute data into card templates for bulk card generation from structured datasets.
- Evaluate expressions in card templates to compute display values without manual JSON manipulation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building Adaptive Cards and need template expansion in Python and can tolerate early-stage software.
The package has low install friction, permissive licensing, and no external dependencies. However, be aware that it is very new (first release 2025-05-08), has minimal adoption and community validation, does not support Adaptive expressions prebuilt functions, and carries aging maintenance status. Use it for non-critical projects or where you can afford to contribute fixes upstream if issues arise.
Install
adaptive-cards-templating-py on PyPI
Before you install
Low install friction with no runtime dependencies. Maintenance status is aging—the package was first released on 2025-05-08 with the latest release on 2025-05-14, and has only 2 repository stars, suggesting early-stage adoption and limited community validation.
License in practice
MIT License permits free use, modification, and distribution with minimal restrictions. You may use this in commercial and proprietary projects provided you retain the copyright and license notice.
Quickstart
pip install adaptive-cards-templating-py
from adaptive_cards_templating_py import Template
import json
template_json = {"type": "AdaptiveCard", "body": [{"type": "TextBlock", "text": "${message}"}]}
template = Template(template_json)
card = template.expand({"$root": {"message": "Hello, Adaptive Cards!"}})
print(json.dumps(card, indent=2))
Verify before relying
- Whether Adaptive expressions prebuilt functions are critical for your use case, since they are explicitly unsupported.
- Real-world performance and correctness coverage of the template language implementation beyond the documented features.
- Stability and API compatibility guarantees given the very recent first release and minimal maintenance history.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 457 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 91,581 / month, #13,512 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: adaptive_cards_templating_py-0.1.5-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “adaptive cards template expansion”
- adaptive-cards-templating-pyExpands Adaptive Card templates by substituting data and expressions…
- microsoft-teams-cardsProvides Pydantic-based models for building Adaptive Cards and…
- microsoft-agents-hosting-teamsProvides Teams-specific handlers and utilities for building Microsoft…
Give your agent the search over MCP, or paste the wish link into any chat.
More Markup packages
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
A Python markdown parser that converts markdown to HTML following the CommonMark specification, with support for plugins and custom syntax rules.
Install it if you need reliable markdown-to-HTML conversion.
Beautiful Soup parses HTML and XML documents into a navigable tree, providing Pythonic methods to search, iterate, and modify the parsed content.
Install it if you need to parse or extract data from markup documents.
et_xmlfile writes large XML files with minimal memory overhead by serializing elements to disk as they are created, rather than holding the entire tree in memory.
Install it if incremental XML writing fits your use case; skip it if your XML documents are small or you already use lxml.
Parses and edits TOML files while preserving formatting, comments, and structure, then serializes them back with layout intact.
Install it if you're building tools that touch TOML files and user readability of the source matters.
Parses Python docstrings in ReST, Google, Numpydoc, and Epydoc formats, extracting structured information like descriptions, parameters, return types, and exceptions.
Install it if you need to programmatically read and extract structured data from Python docstrings.
See also json-e · microsoft-teams-cards · empy · uri-template · pyscard · genanki · django-jinja · zope.pagetemplate · Jinja2 · sphinx_design