inquirer-textual 0.1.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/.github/workflows/code-analysis.yml +1 -1
  2. inquirer_textual-0.3.0/.github/workflows/documentation.yml +19 -0
  3. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/.github/workflows/main.yml +11 -6
  4. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/.github/workflows/release.yml +9 -9
  5. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/.gitignore +1 -0
  6. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/PKG-INFO +55 -3
  7. inquirer_textual-0.3.0/README.md +73 -0
  8. inquirer_textual-0.3.0/docs/examples/apps/app.gif +0 -0
  9. inquirer_textual-0.3.0/docs/examples/apps/app.md +11 -0
  10. inquirer_textual-0.3.0/docs/examples/apps/app.tape +18 -0
  11. inquirer_textual-0.3.0/docs/examples/prompts/checkbox.gif +0 -0
  12. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/checkbox.md +1 -1
  13. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/checkbox.tape +3 -3
  14. inquirer_textual-0.3.0/docs/examples/prompts/confirm.gif +0 -0
  15. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/confirm.md +1 -1
  16. inquirer_textual-0.3.0/docs/examples/prompts/confirm.tape +8 -0
  17. inquirer_textual-0.3.0/docs/examples/prompts/editor.gif +0 -0
  18. inquirer_textual-0.3.0/docs/examples/prompts/editor.md +11 -0
  19. inquirer_textual-0.3.0/docs/examples/prompts/editor.tape +17 -0
  20. inquirer_textual-0.3.0/docs/examples/prompts/external.gif +0 -0
  21. inquirer_textual-0.3.0/docs/examples/prompts/external.md +12 -0
  22. inquirer_textual-0.3.0/docs/examples/prompts/external.tape +24 -0
  23. inquirer_textual-0.3.0/docs/examples/prompts/multi.gif +0 -0
  24. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/multi.md +1 -1
  25. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/multi.tape +3 -3
  26. inquirer_textual-0.3.0/docs/examples/prompts/number.gif +0 -0
  27. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/number.md +1 -1
  28. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/number.tape +3 -3
  29. inquirer_textual-0.3.0/docs/examples/prompts/path.gif +0 -0
  30. inquirer_textual-0.3.0/docs/examples/prompts/path.md +11 -0
  31. inquirer_textual-0.3.0/docs/examples/prompts/path.tape +10 -0
  32. inquirer_textual-0.3.0/docs/examples/prompts/pattern.gif +0 -0
  33. inquirer_textual-0.3.0/docs/examples/prompts/pattern.md +12 -0
  34. inquirer_textual-0.3.0/docs/examples/prompts/pattern.tape +12 -0
  35. inquirer_textual-0.3.0/docs/examples/prompts/secret.gif +0 -0
  36. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/secret.md +1 -1
  37. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/secret.tape +3 -3
  38. inquirer_textual-0.3.0/docs/examples/prompts/select.gif +0 -0
  39. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/select.md +1 -1
  40. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/select.tape +3 -3
  41. inquirer_textual-0.3.0/docs/examples/prompts/text.gif +0 -0
  42. inquirer_textual-0.3.0/docs/examples/prompts/text.md +11 -0
  43. {inquirer_textual-0.1.0/docs → inquirer_textual-0.3.0/docs/examples}/prompts/text.tape +2 -2
  44. inquirer_textual-0.3.0/docs/faq.md +11 -0
  45. inquirer_textual-0.3.0/docs/getting-started/index.md +39 -0
  46. inquirer_textual-0.3.0/docs/getting-started/simple_multi_prompt.gif +0 -0
  47. inquirer_textual-0.3.0/docs/getting-started/simple_multi_prompt.py +9 -0
  48. inquirer_textual-0.3.0/docs/getting-started/simple_multi_prompt.tape +14 -0
  49. inquirer_textual-0.3.0/docs/getting-started/simple_text_prompt.gif +0 -0
  50. inquirer_textual-0.3.0/docs/getting-started/simple_text_prompt.py +5 -0
  51. inquirer_textual-0.3.0/docs/getting-started/simple_text_prompt.tape +10 -0
  52. inquirer_textual-0.3.0/docs/getting-started/simple_text_prompts.gif +0 -0
  53. inquirer_textual-0.3.0/docs/getting-started/simple_text_prompts.py +6 -0
  54. inquirer_textual-0.3.0/docs/getting-started/simple_text_prompts.tape +14 -0
  55. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/index.md +31 -5
  56. inquirer_textual-0.3.0/docs/reference/editor.md +3 -0
  57. inquirer_textual-0.3.0/docs/reference/path.md +3 -0
  58. inquirer_textual-0.3.0/docs/reference/pattern.md +3 -0
  59. inquirer_textual-0.3.0/examples/alternatives/inquirerpy/main.py +34 -0
  60. inquirer_textual-0.3.0/examples/alternatives/python-inquirer/main.py +34 -0
  61. inquirer_textual-0.3.0/examples/app.py +21 -0
  62. inquirer_textual-0.3.0/examples/app_header.py +21 -0
  63. inquirer_textual-0.3.0/examples/app_shortcuts.py +19 -0
  64. inquirer_textual-0.1.0/examples/prompts/checkbox.py → inquirer_textual-0.3.0/examples/prompt_checkbox.py +3 -4
  65. inquirer_textual-0.1.0/examples/prompts/text.py → inquirer_textual-0.3.0/examples/prompt_editor.py +1 -1
  66. inquirer_textual-0.3.0/examples/prompt_external.py +51 -0
  67. inquirer_textual-0.3.0/examples/prompt_multi.py +18 -0
  68. inquirer_textual-0.1.0/examples/prompts/number.py → inquirer_textual-0.3.0/examples/prompt_number.py +2 -2
  69. inquirer_textual-0.3.0/examples/prompt_path.py +6 -0
  70. inquirer_textual-0.3.0/examples/prompt_pattern.py +6 -0
  71. inquirer_textual-0.1.0/examples/prompts/secret.py → inquirer_textual-0.3.0/examples/prompt_secret.py +2 -2
  72. inquirer_textual-0.3.0/examples/prompt_select.py +6 -0
  73. inquirer_textual-0.3.0/examples/prompt_text.py +5 -0
  74. inquirer_textual-0.3.0/examples/shortcuts.py +11 -0
  75. inquirer_textual-0.3.0/inquirer_textual/InquirerApp.py +162 -0
  76. inquirer_textual-0.3.0/inquirer_textual/common/AppConfig.py +9 -0
  77. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/common/Choice.py +3 -0
  78. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/common/ChoiceCheckboxLabel.py +2 -0
  79. inquirer_textual-0.3.0/inquirer_textual/common/ChoiceLabel.py +27 -0
  80. inquirer_textual-0.3.0/inquirer_textual/common/InquirerHeader.py +31 -0
  81. inquirer_textual-0.3.0/inquirer_textual/common/InquirerResult.py +24 -0
  82. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/common/Shortcut.py +3 -1
  83. inquirer_textual-0.3.0/inquirer_textual/common/StandardTheme.py +10 -0
  84. inquirer_textual-0.3.0/inquirer_textual/prompts.py +88 -0
  85. inquirer_textual-0.3.0/inquirer_textual/version.py +1 -0
  86. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerCheckbox.py +31 -14
  87. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerConfirm.py +9 -5
  88. inquirer_textual-0.3.0/inquirer_textual/widgets/InquirerEditor.py +72 -0
  89. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerMulti.py +7 -6
  90. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerNumber.py +19 -8
  91. inquirer_textual-0.3.0/inquirer_textual/widgets/InquirerPath.py +93 -0
  92. inquirer_textual-0.3.0/inquirer_textual/widgets/InquirerPattern.py +169 -0
  93. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerSecret.py +4 -3
  94. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerSelect.py +16 -11
  95. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerText.py +12 -5
  96. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/InquirerWidget.py +11 -3
  97. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/mkdocs.yml +20 -8
  98. inquirer_textual-0.3.0/pyproject.toml +71 -0
  99. inquirer_textual-0.3.0/tests/common/__snapshots__/test_ChoiceLabel/test_snapshot_with_pattern.svg +151 -0
  100. inquirer_textual-0.3.0/tests/common/__snapshots__/test_ChoiceLabel/test_snapshot_with_pointer.svg +150 -0
  101. inquirer_textual-0.3.0/tests/common/__snapshots__/test_ChoiceLabel/test_snapshot_without_pointer.svg +150 -0
  102. inquirer_textual-0.3.0/tests/common/test_ChoiceLabel.py +37 -0
  103. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/test_InquirerApp.py +13 -9
  104. inquirer_textual-0.3.0/tests/widgets/__init__.py +0 -0
  105. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerCheckbox/test_snapshot_select_value.svg +151 -0
  106. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerEditor/test_snapshot.svg +152 -0
  107. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerPath/test_snapshot.svg +153 -0
  108. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerPath/test_snapshot_with_default_value.svg +154 -0
  109. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerPath/test_validation_failure.svg +154 -0
  110. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerPattern/test_snapshot_pattern_search.svg +155 -0
  111. inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerSelect/test_snapshot_fullscreen.svg +153 -0
  112. inquirer_textual-0.3.0/tests/widgets/test_InquirerCheckbox.py +62 -0
  113. inquirer_textual-0.3.0/tests/widgets/test_InquirerConfirm.py +80 -0
  114. inquirer_textual-0.3.0/tests/widgets/test_InquirerEditor.py +23 -0
  115. inquirer_textual-0.3.0/tests/widgets/test_InquirerExternal.py +35 -0
  116. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/test_InquirerMulti.py +42 -37
  117. inquirer_textual-0.3.0/tests/widgets/test_InquirerNumber.py +23 -0
  118. inquirer_textual-0.3.0/tests/widgets/test_InquirerPath.py +44 -0
  119. inquirer_textual-0.3.0/tests/widgets/test_InquirerPattern.py +52 -0
  120. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/test_InquirerSecret.py +19 -9
  121. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/test_InquirerSelect.py +47 -20
  122. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/test_InquirerText.py +26 -9
  123. inquirer_textual-0.3.0/uv.lock +2008 -0
  124. inquirer_textual-0.1.0/.python-version +0 -1
  125. inquirer_textual-0.1.0/README.md +0 -23
  126. inquirer_textual-0.1.0/docs/prompts/checkbox.gif +0 -0
  127. inquirer_textual-0.1.0/docs/prompts/confirm.gif +0 -0
  128. inquirer_textual-0.1.0/docs/prompts/confirm.tape +0 -8
  129. inquirer_textual-0.1.0/docs/prompts/multi.gif +0 -0
  130. inquirer_textual-0.1.0/docs/prompts/number.gif +0 -0
  131. inquirer_textual-0.1.0/docs/prompts/secret.gif +0 -0
  132. inquirer_textual-0.1.0/docs/prompts/select.gif +0 -0
  133. inquirer_textual-0.1.0/docs/prompts/text.gif +0 -0
  134. inquirer_textual-0.1.0/docs/prompts/text.md +0 -5
  135. inquirer_textual-0.1.0/examples/prompts/multi.py +0 -18
  136. inquirer_textual-0.1.0/examples/prompts/select.py +0 -6
  137. inquirer_textual-0.1.0/examples/text-with-shortcuts.py +0 -7
  138. inquirer_textual-0.1.0/inquirer_textual/InquirerApp.py +0 -61
  139. inquirer_textual-0.1.0/inquirer_textual/common/ChoiceLabel.py +0 -16
  140. inquirer_textual-0.1.0/inquirer_textual/common/Result.py +0 -13
  141. inquirer_textual-0.1.0/inquirer_textual/prompts.py +0 -61
  142. inquirer_textual-0.1.0/inquirer_textual/version.py +0 -1
  143. inquirer_textual-0.1.0/pyproject.toml +0 -43
  144. inquirer_textual-0.1.0/tests/widgets/test_InquirerCheckbox.py +0 -33
  145. inquirer_textual-0.1.0/tests/widgets/test_InquirerConfirm.py +0 -71
  146. inquirer_textual-0.1.0/tests/widgets/test_InquirerNumber.py +0 -10
  147. inquirer_textual-0.1.0/uv.lock +0 -1424
  148. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/.capm.yml +0 -0
  149. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/.github/dependabot.yml +0 -0
  150. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/CHANGELOG.md +0 -0
  151. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/LICENSE +0 -0
  152. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/assets/favicon.ico +0 -0
  153. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/assets/logo-light.png +0 -0
  154. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/checkbox.md +0 -0
  155. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/confirm.md +0 -0
  156. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/multi.md +0 -0
  157. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/number.md +0 -0
  158. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/secret.md +0 -0
  159. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/select.md +0 -0
  160. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/docs/reference/text.md +0 -0
  161. /inquirer_textual-0.1.0/examples/prompts/confirm.py → /inquirer_textual-0.3.0/examples/prompt_confirm.py +0 -0
  162. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/examples/validator.py +0 -0
  163. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/__init__.py +0 -0
  164. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/common/PromptMessage.py +0 -0
  165. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/common/__init__.py +0 -0
  166. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/inquirer_textual/widgets/__init__.py +0 -0
  167. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/__init__.py +0 -0
  168. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/__snapshots__/test_InquirerApp/test_snapshot_shortcut.svg +0 -0
  169. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/__snapshots__/test_InquirerApp/test_snapshot_shortcut_no_description.svg +0 -0
  170. {inquirer_textual-0.1.0/tests/widgets → inquirer_textual-0.3.0/tests/common}/__init__.py +0 -0
  171. /inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerCheckbox/test_snapshot.svg → /inquirer_textual-0.3.0/tests/widgets/__snapshots__/test_InquirerCheckbox/test_snapshot_select_items.svg +0 -0
  172. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerConfirm/test_snapshot.svg +0 -0
  173. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerConfirm/test_snapshot_custom_chars.svg +0 -0
  174. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerConfirm/test_snapshot_default_yes.svg +0 -0
  175. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot.svg +0 -0
  176. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_fifth_input.svg +0 -0
  177. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_fifth_input_pick_default.svg +0 -0
  178. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_fourth_input.svg +0 -0
  179. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_second_input.svg +0 -0
  180. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_third_input.svg +0 -0
  181. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerNumber/test_snapshot.svg +0 -0
  182. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerSecret/test_snapshot.svg +0 -0
  183. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerSecret/test_snapshot_hide_input.svg +0 -0
  184. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerSelect/test_snapshot_mandatory.svg +0 -0
  185. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerSelect/test_snapshot_not_mandatory.svg +0 -0
  186. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerText/test_snapshot.svg +0 -0
  187. {inquirer_textual-0.1.0 → inquirer_textual-0.3.0}/tests/widgets/__snapshots__/test_InquirerText/test_snapshot_with_default_value.svg +0 -0
@@ -13,7 +13,7 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
15
  - name: Checkout sources
16
- uses: actions/checkout@v5
16
+ uses: actions/checkout@v6
17
17
 
18
18
  - name: Run CAPM
19
19
  uses: getcapm/capm-action@v1
@@ -0,0 +1,19 @@
1
+ name: documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ deploy_documentation:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout sources
13
+ uses: actions/checkout@v6
14
+
15
+ - name: Set up uv
16
+ uses: astral-sh/setup-uv@v7
17
+
18
+ - name: Deploy documentation
19
+ run: uv run mkdocs gh-deploy --force
@@ -4,22 +4,27 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
+ pull_request:
8
+ branches:
9
+ - main
7
10
 
8
11
  jobs:
9
- cicd:
12
+ ci:
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.9", "3.14"]
10
16
  runs-on: ubuntu-latest
11
17
  steps:
12
18
  - name: Checkout sources
13
- uses: actions/checkout@v5
19
+ uses: actions/checkout@v6
14
20
 
15
21
  - name: Set up uv
16
- uses: astral-sh/setup-uv@v6
22
+ uses: astral-sh/setup-uv@v7
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
17
25
 
18
26
  - name: Install dependencies
19
27
  run: uv sync --locked --dev
20
28
 
21
29
  - name: Run unit-tests
22
30
  run: uv run pytest
23
-
24
- - name: Deploy documentation
25
- run: uv run mkdocs gh-deploy --force
@@ -12,19 +12,19 @@ jobs:
12
12
  version: ${{ steps.release.outputs.version }}
13
13
  steps:
14
14
  - name: Checkout sources
15
- uses: actions/checkout@v5
15
+ uses: actions/checkout@v6
16
16
  with:
17
17
  fetch-depth: 0
18
18
 
19
19
  - name: Install uv
20
- uses: astral-sh/setup-uv@v6
20
+ uses: astral-sh/setup-uv@v7
21
21
 
22
22
  - name: Install dependencies
23
23
  run: uv sync --locked --dev
24
24
 
25
25
  - name: Python Semantic Release
26
26
  id: release
27
- uses: relekang/python-semantic-release@v9.21.0
27
+ uses: relekang/python-semantic-release@v10.5.3
28
28
  with:
29
29
  github_token: ${{ secrets.GITHUB_TOKEN }}
30
30
  strict: true
@@ -37,19 +37,19 @@ jobs:
37
37
  contents: write
38
38
  steps:
39
39
  - name: Checkout sources
40
- uses: actions/checkout@v5
40
+ uses: actions/checkout@v6
41
41
  with:
42
42
  ref: main
43
43
  fetch-depth: 0
44
44
 
45
45
  - name: Install uv
46
- uses: astral-sh/setup-uv@v6
46
+ uses: astral-sh/setup-uv@v7
47
47
 
48
48
  - name: Update lock file
49
49
  run: uv lock
50
50
 
51
51
  - name: Push changes
52
- uses: stefanzweifel/git-auto-commit-action@v6
52
+ uses: stefanzweifel/git-auto-commit-action@v7
53
53
 
54
54
  release_pypi:
55
55
  runs-on: ubuntu-latest
@@ -62,18 +62,18 @@ jobs:
62
62
  contents: write
63
63
  steps:
64
64
  - name: Checkout sources
65
- uses: actions/checkout@v5
65
+ uses: actions/checkout@v6
66
66
  with:
67
67
  ref: main
68
68
 
69
69
  - name: Install uv
70
- uses: astral-sh/setup-uv@v6
70
+ uses: astral-sh/setup-uv@v7
71
71
 
72
72
  - name: Install dependencies
73
73
  run: uv sync --locked --dev
74
74
 
75
75
  - name: Commit changes
76
- uses: stefanzweifel/git-auto-commit-action@v6
76
+ uses: stefanzweifel/git-auto-commit-action@v7
77
77
  with:
78
78
  commit_message: Build by GitHub Actions
79
79
  file_pattern: uv.lock
@@ -1,2 +1,3 @@
1
1
  site/
2
2
  .DS_Store
3
+ .python-version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: inquirer-textual
3
- Version: 0.1.0
3
+ Version: 0.3.0
4
4
  Summary: Inquirer based on Textual
5
5
  Project-URL: Changelog, https://github.com/robvanderleek/inquirer-textual/blob/master/CHANGELOG.md
6
6
  Project-URL: Documentation, https://robvanderleek.github.io/inquirer-textual/
@@ -8,8 +8,10 @@ Project-URL: Source, https://github.com/robvanderleek/inquirer-textual
8
8
  Author-email: Rob van der Leek <robvanderleek@gmail.com>
9
9
  License-Expression: GPL-3.0-or-later
10
10
  License-File: LICENSE
11
- Requires-Python: >=3.12
12
- Requires-Dist: textual>=6.2.1
11
+ Requires-Python: <3.15,>=3.9
12
+ Requires-Dist: textual>=7.1.0
13
+ Provides-Extra: examples
14
+ Requires-Dist: textual-slider>=0.2.0; extra == 'examples'
13
15
  Description-Content-Type: text/markdown
14
16
 
15
17
  # Inquirer-Textual
@@ -20,6 +22,12 @@ Description-Content-Type: text/markdown
20
22
 
21
23
  </div>
22
24
 
25
+ <div align="center">
26
+
27
+ *Versatile library for user input in Python 🎙️*
28
+
29
+ </div>
30
+
23
31
  <div align="center">
24
32
 
25
33
  [![main](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml/badge.svg)](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml)
@@ -28,6 +36,22 @@ Description-Content-Type: text/markdown
28
36
 
29
37
  </div>
30
38
 
39
+ All terminal programs start small. Some stay small, and some become incredibly
40
+ big. The goal of this Python library is to make user input simple for small
41
+ programs, while enabling a smooth transition to a comprehensive UI library as
42
+ your program grows.
43
+
44
+ Read the [documentation here](https://robvanderleek.github.io/inquirer-textual/)
45
+
46
+ ## Installation
47
+
48
+ Create and activate a virtual environment (for example with
49
+ [uv](https://docs.astral.sh/uv/)), and then install this package:
50
+
51
+ ```shell
52
+ pip install inquirer-textual
53
+ ```
54
+
31
55
  ## Development
32
56
 
33
57
  Add this library as an editable local dependency to another project using `uv`:
@@ -35,3 +59,31 @@ Add this library as an editable local dependency to another project using `uv`:
35
59
  ```shell
36
60
  uv add --editable <path-to-inquirer-textual>
37
61
  ```
62
+
63
+ ### Textual console
64
+
65
+ 1. Open the Textual Development Console:
66
+
67
+ ```shell
68
+ uv run textual console
69
+ ```
70
+
71
+ 2. Run application in development mode:
72
+
73
+ ```shell
74
+ uv run textual run --dev examples/prompt_pattern.py
75
+ ```
76
+
77
+ ### Static documentation
78
+
79
+ Generating the static documentation:
80
+
81
+ ```shell
82
+ uv run mkdocs build
83
+ ```
84
+
85
+ Viewing the static documentation:
86
+
87
+ ```shell
88
+ uv run mkdocs serve
89
+ ```
@@ -0,0 +1,73 @@
1
+ # Inquirer-Textual
2
+
3
+ <div align="center">
4
+
5
+ ![Logo](https://raw.githubusercontent.com/robvanderleek/inquirer-textual/main/docs/assets/logo-light.png)
6
+
7
+ </div>
8
+
9
+ <div align="center">
10
+
11
+ *Versatile library for user input in Python 🎙️*
12
+
13
+ </div>
14
+
15
+ <div align="center">
16
+
17
+ [![main](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml/badge.svg)](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml)
18
+ [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
19
+ [![Linting: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
20
+
21
+ </div>
22
+
23
+ All terminal programs start small. Some stay small, and some become incredibly
24
+ big. The goal of this Python library is to make user input simple for small
25
+ programs, while enabling a smooth transition to a comprehensive UI library as
26
+ your program grows.
27
+
28
+ Read the [documentation here](https://robvanderleek.github.io/inquirer-textual/)
29
+
30
+ ## Installation
31
+
32
+ Create and activate a virtual environment (for example with
33
+ [uv](https://docs.astral.sh/uv/)), and then install this package:
34
+
35
+ ```shell
36
+ pip install inquirer-textual
37
+ ```
38
+
39
+ ## Development
40
+
41
+ Add this library as an editable local dependency to another project using `uv`:
42
+
43
+ ```shell
44
+ uv add --editable <path-to-inquirer-textual>
45
+ ```
46
+
47
+ ### Textual console
48
+
49
+ 1. Open the Textual Development Console:
50
+
51
+ ```shell
52
+ uv run textual console
53
+ ```
54
+
55
+ 2. Run application in development mode:
56
+
57
+ ```shell
58
+ uv run textual run --dev examples/prompt_pattern.py
59
+ ```
60
+
61
+ ### Static documentation
62
+
63
+ Generating the static documentation:
64
+
65
+ ```shell
66
+ uv run mkdocs build
67
+ ```
68
+
69
+ Viewing the static documentation:
70
+
71
+ ```shell
72
+ uv run mkdocs serve
73
+ ```
@@ -0,0 +1,11 @@
1
+ # App
2
+
3
+ A simple interactive app.
4
+
5
+ ## Example
6
+
7
+ ![Example](app.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/app.py"
11
+ ```
@@ -0,0 +1,18 @@
1
+ Output docs/examples/apps/app.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/app.py"
5
+ Enter
6
+ Sleep 2s
7
+ Type Rob
8
+ Sleep 1s
9
+ Enter
10
+ Sleep 1s
11
+ Down 2
12
+ Sleep 1s
13
+ Enter
14
+ Sleep 1s
15
+ Down 3
16
+ Sleep 1s
17
+ Enter
18
+ Sleep 2s
@@ -7,6 +7,6 @@ A checkbox widget that allows multiple selections from a list of choices.
7
7
  ![Example](checkbox.gif)
8
8
 
9
9
  ```python
10
- --8<-- "examples/prompts/checkbox.py"
10
+ --8<-- "examples/prompt_checkbox.py"
11
11
  ```
12
12
 
@@ -1,9 +1,9 @@
1
- Output checkbox.gif
1
+ Output docs/examples/prompts/checkbox.gif
2
2
  Set Shell zsh
3
3
  Set Theme { "background": "#000000" }
4
- Type "uv run examples/prompts/checkbox.py"
4
+ Type "uv run examples/prompt_checkbox.py"
5
5
  Enter
6
- Sleep 1s
6
+ Sleep 2s
7
7
  Down
8
8
  Sleep 0.5s
9
9
  Down
@@ -7,5 +7,5 @@ A confirmation prompt that allows the user to confirm or reject.
7
7
  ![Example](confirm.gif)
8
8
 
9
9
  ```python
10
- --8<-- "examples/prompts/confirm.py"
10
+ --8<-- "examples/prompt_confirm.py"
11
11
  ```
@@ -0,0 +1,8 @@
1
+ Output docs/examples/prompts/confirm.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompt_confirm.py"
5
+ Enter
6
+ Sleep 2s
7
+ Type y
8
+ Sleep 3s
@@ -0,0 +1,11 @@
1
+ # Editor
2
+
3
+ An input widget that uses an external editor.
4
+
5
+ ## Example
6
+
7
+ ![Example](editor.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompt_editor.py"
11
+ ```
@@ -0,0 +1,17 @@
1
+ Output docs/examples/prompts/editor.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompt_editor.py"
5
+ Enter
6
+ Sleep 2s
7
+ Enter
8
+ Sleep 2s
9
+ Escape
10
+ Sleep 1s
11
+ Type "iHello world!"
12
+ Sleep 2s
13
+ Escape
14
+ Sleep 1s
15
+ Type ":wq"
16
+ Enter
17
+ Sleep 3s
@@ -0,0 +1,12 @@
1
+ # External
2
+
3
+ Embed external widgets in a prompt, for example a slider from
4
+ [TomJGooding/textual-slider](https://github.com/TomJGooding/textual-slider).
5
+
6
+ ## Example
7
+
8
+ ![Example](external.gif)
9
+
10
+ ```python
11
+ --8<-- "examples/prompt_external.py"
12
+ ```
@@ -0,0 +1,24 @@
1
+ Output docs/examples/prompts/external.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompt_external.py"
5
+ Enter
6
+ Sleep 2s
7
+ Right
8
+ Sleep 0.1s
9
+ Right
10
+ Sleep 0.1s
11
+ Right
12
+ Sleep 0.1s
13
+ Right
14
+ Sleep 0.1s
15
+ Right
16
+ Sleep 0.1s
17
+ Right
18
+ Sleep 0.1s
19
+ Right
20
+ Sleep 0.1s
21
+ Right
22
+ Sleep 1s
23
+ Enter
24
+ Sleep 3s
@@ -7,5 +7,5 @@ A prompt that allows the user to answer multiple prompts in sequence.
7
7
  ![Example](multi.gif)
8
8
 
9
9
  ```python
10
- --8<-- "examples/prompts/multi.py"
10
+ --8<-- "examples/prompt_multi.py"
11
11
  ```
@@ -1,9 +1,9 @@
1
- Output multi.gif
1
+ Output docs/examples/prompts/multi.gif
2
2
  Set Shell zsh
3
3
  Set Theme { "background": "#000000" }
4
- Type "uv run examples/prompts/multi.py"
4
+ Type "uv run examples/prompt_multi.py"
5
5
  Enter
6
- Sleep 1s
6
+ Sleep 2s
7
7
  Type Rob
8
8
  Sleep 1s
9
9
  Enter
@@ -7,5 +7,5 @@ A number input widget that allows the user to input a numerical value.
7
7
  ![Example](number.gif)
8
8
 
9
9
  ```python
10
- --8<-- "examples/prompts/number.py"
10
+ --8<-- "examples/prompt_number.py"
11
11
  ```
@@ -1,9 +1,9 @@
1
- Output number.gif
1
+ Output docs/examples/prompts/number.gif
2
2
  Set Shell zsh
3
3
  Set Theme { "background": "#000000" }
4
- Type "uv run examples/prompts/number.py"
4
+ Type "uv run examples/prompt_number.py"
5
5
  Enter
6
- Sleep 1s
6
+ Sleep 2s
7
7
  Type "1024"
8
8
  Sleep 1s
9
9
  Enter
@@ -0,0 +1,11 @@
1
+ # Path
2
+
3
+ An input prompt that allows the user to enter a file path.
4
+
5
+ ## Example
6
+
7
+ ![Example](path.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompt_path.py"
11
+ ```
@@ -0,0 +1,10 @@
1
+ Output docs/examples/prompts/path.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompt_path.py"
5
+ Enter
6
+ Sleep 2s
7
+ Type "/var/log"
8
+ Sleep 1s
9
+ Enter
10
+ Sleep 3s
@@ -0,0 +1,12 @@
1
+ # Pattern
2
+
3
+ A select widget that allows a single selection from a list of choices with
4
+ pattern filtering.
5
+
6
+ ## Example
7
+
8
+ ![Example](pattern.gif)
9
+
10
+ ```python
11
+ --8<-- "examples/prompt_pattern.py"
12
+ ```
@@ -0,0 +1,12 @@
1
+ Output docs/examples/prompts/pattern.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompt_pattern.py"
5
+ Enter
6
+ Sleep 2s
7
+ Type "on"
8
+ Sleep 2s
9
+ Down
10
+ Sleep 2s
11
+ Enter
12
+ Sleep 3s
@@ -8,5 +8,5 @@ password).
8
8
  ![Example](secret.gif)
9
9
 
10
10
  ```python
11
- --8<-- "examples/prompts/secret.py"
11
+ --8<-- "examples/prompt_secret.py"
12
12
  ```
@@ -1,9 +1,9 @@
1
- Output secret.gif
1
+ Output docs/examples/prompts/secret.gif
2
2
  Set Shell zsh
3
3
  Set Theme { "background": "#000000" }
4
- Type "uv run examples/prompts/secret.py"
4
+ Type "uv run examples/prompt_secret.py"
5
5
  Enter
6
- Sleep 1s
6
+ Sleep 2s
7
7
  Type helloworld
8
8
  Sleep 1s
9
9
  Enter
@@ -7,5 +7,5 @@ A select widget that allows a single selection from a list of choices.
7
7
  ![Example](select.gif)
8
8
 
9
9
  ```python
10
- --8<-- "examples/prompts/select.py"
10
+ --8<-- "examples/prompt_select.py"
11
11
  ```
@@ -1,9 +1,9 @@
1
- Output select.gif
1
+ Output docs/examples/prompts/select.gif
2
2
  Set Shell zsh
3
3
  Set Theme { "background": "#000000" }
4
- Type "uv run examples/prompts/select.py"
4
+ Type "uv run examples/prompt_select.py"
5
5
  Enter
6
- Sleep 2.5s
6
+ Sleep 2s
7
7
  Down
8
8
  Sleep 0.5s
9
9
  Down
@@ -0,0 +1,11 @@
1
+ # Text
2
+
3
+ A text input prompt that allows the user to enter a string.
4
+
5
+ ## Example
6
+
7
+ ![Example](text.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompt_text.py"
11
+ ```
@@ -1,7 +1,7 @@
1
- Output text.gif
1
+ Output docs/examples/prompts/text.gif
2
2
  Set Shell zsh
3
3
  Set Theme { "background": "#000000" }
4
- Type "uv run examples/prompts/text.py"
4
+ Type "uv run examples/prompt_text.py"
5
5
  Enter
6
6
  Sleep 2s
7
7
  Type Rob
@@ -0,0 +1,11 @@
1
+ # Frequently Asked Questions
2
+
3
+ ## Q. How does Inquirer-Textual compare to ...
4
+
5
+ **[InquirerPy](https://github.com/kazhala/InquirerPy)**
6
+
7
+ **[python-inquirer](https://github.com/magmax/python-inquirer)**
8
+
9
+ **[Inquirer.js](https://github.com/SBoudrias/Inquirer.js)**
10
+
11
+ The OG of Inquirer libraries, written in TypeScript.