functualize-inline
Status: Published — Independently installable from PyPI.
Textual-based inline interactivity provider for the functualize framework. This plugin renders rich terminal widgets (confirmations, selections, text inputs, progress bars) inline within the terminal using Textual's inline mode — without taking over the full screen. When Textual is unavailable (non-TTY, CI environments), it gracefully falls back to plain CLI input() prompts.
Installation
pip install functualize-inline
Quick Start
from functualize.plugin import PromptIntent, PromptRequest
from functualize_inline import InlinePlugin
plugin = InlinePlugin()
request = PromptRequest(
intent=PromptIntent.CONFIRM_NEUTRAL,
question="Deploy to staging?",
default=True,
)
response = plugin.collect(request)
print(f"User answered: {response.value} (source: {response.source})")
Features
- Rich inline widgets — Confirmation dialogs, single/multi-select lists, text inputs, secret inputs, and acknowledgment prompts rendered with Textual styling
- Automatic CLI fallback — Detects non-TTY environments and falls back to plain
input()prompts so jobs run unattended in CI - Structured output rendering — Implements
OutputRendererprotocol withrender_log,render_phase, andrender_progressfor formatted terminal output with icons and progress bars - Timeout support — Prompts can auto-dismiss after a configurable timeout, returning the default value
- Entry-point auto-discovery — Install the package and it registers itself via the
functualize.pluginsentry point
API Reference
Public classes and functions exported by this plugin:
functualize_inline (top-level)
InlinePlugin— Main plugin class implementingInputProviderandOutputRendererprotocols. Entry point for prompt collection and terminal output rendering.
functualize_inline.apps
InlinePromptApp— A short-lived TextualApp(inline mode) that mounts a prompt widget and returns the user's response as a(value, source)tuple.
functualize_inline.widgets
PromptResult— TextualMessageposted by widgets when the user provides a response. Carries.valueand.sourceattributes.ConfirmDestructiveWidget— Red-bordered widget requiring the user to type "yes" to confirm dangerous actions.ConfirmNeutralWidget— Standard Y/n confirmation widget with keyboard shortcuts.SelectWidget— Single-selectOptionListwidget (max 12 visible items).MultiSelectWidget— Checkbox-style multi-select widget with toggle and submit.TextInputWidget— Free-text input with optional placeholder and default value.SecretInputWidget— Masked password input widget.AcknowledgeWidget— Press-any-key dismiss widget for informational prompts.
Development
Run plugin tests:
uv run pytest plugins/adapters/functualize-inline/tests/ -v
Run linting and formatting:
uv run ruff check plugins/adapters/functualize-inline/
uv run ruff format plugins/adapters/functualize-inline/
Release files for functualize-inline 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| functualize_inline-0.4.0.tar.gz | 17.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| functualize_inline-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.0 kB
Release files / functualize_inline-0.4.0.tar.gz
| Download URL | functualize_inline-0.4.0.tar.gz |
|---|---|
| Size | 17.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1aedb7c9ec828aeb089602e56f401e77beeccc35e977a2c813aa47d5d229d45f
|
|
BLAKE2b-256 checksum How to use checksums |
fd5c766f179b0bd1ee700f4d43503b6d1ed6b8f3daa64fffd21aea15595d02b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / functualize_inline-0.4.0-py3-none-any.whl
| Download URL | functualize_inline-0.4.0-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2594c42c36a5496f75c27529c7daf9c5b664dc5294d6d899568e8d2af506eede
|
|
BLAKE2b-256 checksum How to use checksums |
f994f2afcf7cd5284105cd61d3dbf148ff0e5c374f9de3c1dab9e1a03d92059b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log