inquirer-textual 0.1.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 (103) hide show
  1. inquirer_textual-0.1.0/.capm.yml +4 -0
  2. inquirer_textual-0.1.0/.github/dependabot.yml +22 -0
  3. inquirer_textual-0.1.0/.github/workflows/code-analysis.yml +19 -0
  4. inquirer_textual-0.1.0/.github/workflows/main.yml +25 -0
  5. inquirer_textual-0.1.0/.github/workflows/release.yml +85 -0
  6. inquirer_textual-0.1.0/.gitignore +2 -0
  7. inquirer_textual-0.1.0/.python-version +1 -0
  8. inquirer_textual-0.1.0/CHANGELOG.md +158 -0
  9. inquirer_textual-0.1.0/LICENSE +21 -0
  10. inquirer_textual-0.1.0/PKG-INFO +37 -0
  11. inquirer_textual-0.1.0/README.md +23 -0
  12. inquirer_textual-0.1.0/docs/assets/favicon.ico +0 -0
  13. inquirer_textual-0.1.0/docs/assets/logo-light.png +0 -0
  14. inquirer_textual-0.1.0/docs/index.md +39 -0
  15. inquirer_textual-0.1.0/docs/prompts/checkbox.gif +0 -0
  16. inquirer_textual-0.1.0/docs/prompts/checkbox.md +12 -0
  17. inquirer_textual-0.1.0/docs/prompts/checkbox.tape +18 -0
  18. inquirer_textual-0.1.0/docs/prompts/confirm.gif +0 -0
  19. inquirer_textual-0.1.0/docs/prompts/confirm.md +11 -0
  20. inquirer_textual-0.1.0/docs/prompts/confirm.tape +8 -0
  21. inquirer_textual-0.1.0/docs/prompts/multi.gif +0 -0
  22. inquirer_textual-0.1.0/docs/prompts/multi.md +11 -0
  23. inquirer_textual-0.1.0/docs/prompts/multi.tape +36 -0
  24. inquirer_textual-0.1.0/docs/prompts/number.gif +0 -0
  25. inquirer_textual-0.1.0/docs/prompts/number.md +11 -0
  26. inquirer_textual-0.1.0/docs/prompts/number.tape +10 -0
  27. inquirer_textual-0.1.0/docs/prompts/secret.gif +0 -0
  28. inquirer_textual-0.1.0/docs/prompts/secret.md +12 -0
  29. inquirer_textual-0.1.0/docs/prompts/secret.tape +10 -0
  30. inquirer_textual-0.1.0/docs/prompts/select.gif +0 -0
  31. inquirer_textual-0.1.0/docs/prompts/select.md +11 -0
  32. inquirer_textual-0.1.0/docs/prompts/select.tape +12 -0
  33. inquirer_textual-0.1.0/docs/prompts/text.gif +0 -0
  34. inquirer_textual-0.1.0/docs/prompts/text.md +5 -0
  35. inquirer_textual-0.1.0/docs/prompts/text.tape +10 -0
  36. inquirer_textual-0.1.0/docs/reference/checkbox.md +3 -0
  37. inquirer_textual-0.1.0/docs/reference/confirm.md +3 -0
  38. inquirer_textual-0.1.0/docs/reference/multi.md +3 -0
  39. inquirer_textual-0.1.0/docs/reference/number.md +3 -0
  40. inquirer_textual-0.1.0/docs/reference/secret.md +3 -0
  41. inquirer_textual-0.1.0/docs/reference/select.md +3 -0
  42. inquirer_textual-0.1.0/docs/reference/text.md +3 -0
  43. inquirer_textual-0.1.0/examples/prompts/checkbox.py +8 -0
  44. inquirer_textual-0.1.0/examples/prompts/confirm.py +5 -0
  45. inquirer_textual-0.1.0/examples/prompts/multi.py +18 -0
  46. inquirer_textual-0.1.0/examples/prompts/number.py +5 -0
  47. inquirer_textual-0.1.0/examples/prompts/secret.py +5 -0
  48. inquirer_textual-0.1.0/examples/prompts/select.py +6 -0
  49. inquirer_textual-0.1.0/examples/prompts/text.py +5 -0
  50. inquirer_textual-0.1.0/examples/text-with-shortcuts.py +7 -0
  51. inquirer_textual-0.1.0/examples/validator.py +18 -0
  52. inquirer_textual-0.1.0/inquirer_textual/InquirerApp.py +61 -0
  53. inquirer_textual-0.1.0/inquirer_textual/__init__.py +0 -0
  54. inquirer_textual-0.1.0/inquirer_textual/common/Choice.py +9 -0
  55. inquirer_textual-0.1.0/inquirer_textual/common/ChoiceCheckboxLabel.py +22 -0
  56. inquirer_textual-0.1.0/inquirer_textual/common/ChoiceLabel.py +16 -0
  57. inquirer_textual-0.1.0/inquirer_textual/common/PromptMessage.py +30 -0
  58. inquirer_textual-0.1.0/inquirer_textual/common/Result.py +13 -0
  59. inquirer_textual-0.1.0/inquirer_textual/common/Shortcut.py +13 -0
  60. inquirer_textual-0.1.0/inquirer_textual/common/__init__.py +0 -0
  61. inquirer_textual-0.1.0/inquirer_textual/prompts.py +61 -0
  62. inquirer_textual-0.1.0/inquirer_textual/version.py +1 -0
  63. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerCheckbox.py +77 -0
  64. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerConfirm.py +57 -0
  65. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerMulti.py +46 -0
  66. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerNumber.py +52 -0
  67. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerSecret.py +53 -0
  68. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerSelect.py +80 -0
  69. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerText.py +63 -0
  70. inquirer_textual-0.1.0/inquirer_textual/widgets/InquirerWidget.py +26 -0
  71. inquirer_textual-0.1.0/inquirer_textual/widgets/__init__.py +0 -0
  72. inquirer_textual-0.1.0/mkdocs.yml +60 -0
  73. inquirer_textual-0.1.0/pyproject.toml +43 -0
  74. inquirer_textual-0.1.0/tests/__init__.py +0 -0
  75. inquirer_textual-0.1.0/tests/__snapshots__/test_InquirerApp/test_snapshot_shortcut.svg +153 -0
  76. inquirer_textual-0.1.0/tests/__snapshots__/test_InquirerApp/test_snapshot_shortcut_no_description.svg +153 -0
  77. inquirer_textual-0.1.0/tests/test_InquirerApp.py +34 -0
  78. inquirer_textual-0.1.0/tests/widgets/__init__.py +0 -0
  79. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerCheckbox/test_snapshot.svg +152 -0
  80. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerConfirm/test_snapshot.svg +151 -0
  81. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerConfirm/test_snapshot_custom_chars.svg +151 -0
  82. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerConfirm/test_snapshot_default_yes.svg +151 -0
  83. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot.svg +152 -0
  84. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_fifth_input.svg +152 -0
  85. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_fifth_input_pick_default.svg +152 -0
  86. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_fourth_input.svg +151 -0
  87. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_second_input.svg +152 -0
  88. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerMulti/test_snapshot_third_input.svg +152 -0
  89. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerNumber/test_snapshot.svg +152 -0
  90. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerSecret/test_snapshot.svg +152 -0
  91. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerSecret/test_snapshot_hide_input.svg +153 -0
  92. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerSelect/test_snapshot_mandatory.svg +152 -0
  93. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerSelect/test_snapshot_not_mandatory.svg +152 -0
  94. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerText/test_snapshot.svg +152 -0
  95. inquirer_textual-0.1.0/tests/widgets/__snapshots__/test_InquirerText/test_snapshot_with_default_value.svg +153 -0
  96. inquirer_textual-0.1.0/tests/widgets/test_InquirerCheckbox.py +33 -0
  97. inquirer_textual-0.1.0/tests/widgets/test_InquirerConfirm.py +71 -0
  98. inquirer_textual-0.1.0/tests/widgets/test_InquirerMulti.py +112 -0
  99. inquirer_textual-0.1.0/tests/widgets/test_InquirerNumber.py +10 -0
  100. inquirer_textual-0.1.0/tests/widgets/test_InquirerSecret.py +35 -0
  101. inquirer_textual-0.1.0/tests/widgets/test_InquirerSelect.py +92 -0
  102. inquirer_textual-0.1.0/tests/widgets/test_InquirerText.py +63 -0
  103. inquirer_textual-0.1.0/uv.lock +1424 -0
@@ -0,0 +1,4 @@
1
+ packages:
2
+ - id: codelimit
3
+ - id: mypy
4
+ - id: ruff
@@ -0,0 +1,22 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ day: sunday
8
+ time: "13:15"
9
+ timezone: Europe/Amsterdam
10
+ open-pull-requests-limit: 10
11
+ commit-message:
12
+ prefix: "build"
13
+ - package-ecosystem: "uv"
14
+ directory: "/"
15
+ schedule:
16
+ interval: "weekly"
17
+ day: sunday
18
+ time: "13:00"
19
+ timezone: Europe/Amsterdam
20
+ open-pull-requests-limit: 10
21
+ commit-message:
22
+ prefix: "build"
@@ -0,0 +1,19 @@
1
+ name: code-analysis
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+ jobs:
12
+ code_analysis:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout sources
16
+ uses: actions/checkout@v5
17
+
18
+ - name: Run CAPM
19
+ uses: getcapm/capm-action@v1
@@ -0,0 +1,25 @@
1
+ name: main
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ cicd:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout sources
13
+ uses: actions/checkout@v5
14
+
15
+ - name: Set up uv
16
+ uses: astral-sh/setup-uv@v6
17
+
18
+ - name: Install dependencies
19
+ run: uv sync --locked --dev
20
+
21
+ - name: Run unit-tests
22
+ run: uv run pytest
23
+
24
+ - name: Deploy documentation
25
+ run: uv run mkdocs gh-deploy --force
@@ -0,0 +1,85 @@
1
+ name: release
2
+
3
+ on: [workflow_dispatch]
4
+
5
+ jobs:
6
+ release:
7
+ runs-on: ubuntu-latest
8
+ concurrency: release
9
+ permissions:
10
+ contents: write
11
+ outputs:
12
+ version: ${{ steps.release.outputs.version }}
13
+ steps:
14
+ - name: Checkout sources
15
+ uses: actions/checkout@v5
16
+ with:
17
+ fetch-depth: 0
18
+
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v6
21
+
22
+ - name: Install dependencies
23
+ run: uv sync --locked --dev
24
+
25
+ - name: Python Semantic Release
26
+ id: release
27
+ uses: relekang/python-semantic-release@v9.21.0
28
+ with:
29
+ github_token: ${{ secrets.GITHUB_TOKEN }}
30
+ strict: true
31
+
32
+ update_repo:
33
+ runs-on: ubuntu-latest
34
+ needs: release
35
+ concurrency: release
36
+ permissions:
37
+ contents: write
38
+ steps:
39
+ - name: Checkout sources
40
+ uses: actions/checkout@v5
41
+ with:
42
+ ref: main
43
+ fetch-depth: 0
44
+
45
+ - name: Install uv
46
+ uses: astral-sh/setup-uv@v6
47
+
48
+ - name: Update lock file
49
+ run: uv lock
50
+
51
+ - name: Push changes
52
+ uses: stefanzweifel/git-auto-commit-action@v6
53
+
54
+ release_pypi:
55
+ runs-on: ubuntu-latest
56
+ needs: update_repo
57
+ environment:
58
+ name: pypi
59
+ url: https://pypi.org/p/inquirer-textual
60
+ permissions:
61
+ id-token: write
62
+ contents: write
63
+ steps:
64
+ - name: Checkout sources
65
+ uses: actions/checkout@v5
66
+ with:
67
+ ref: main
68
+
69
+ - name: Install uv
70
+ uses: astral-sh/setup-uv@v6
71
+
72
+ - name: Install dependencies
73
+ run: uv sync --locked --dev
74
+
75
+ - name: Commit changes
76
+ uses: stefanzweifel/git-auto-commit-action@v6
77
+ with:
78
+ commit_message: Build by GitHub Actions
79
+ file_pattern: uv.lock
80
+
81
+ - name: Build distribution
82
+ run: uv build
83
+
84
+ - name: Publish to PyPI
85
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,2 @@
1
+ site/
2
+ .DS_Store
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,158 @@
1
+ # CHANGELOG
2
+
3
+
4
+ ## v0.1.0 (2025-10-10)
5
+
6
+ ### Bug Fixes
7
+
8
+ - 🐛 Fix select header
9
+ ([`e2318f4`](https://github.com/robvanderleek/inquirer-textual/commit/e2318f45f0a0bd34c923bec2f780a74592244118))
10
+
11
+ ### Build System
12
+
13
+ - ⬆️ Bump dependencies
14
+ ([`ab1cc87`](https://github.com/robvanderleek/inquirer-textual/commit/ab1cc87f8598909be17ab5e9201d0535df22b759))
15
+
16
+ - ⬆️ Bump versions
17
+ ([`84c02b9`](https://github.com/robvanderleek/inquirer-textual/commit/84c02b9a96ed771281bcfe18732677ac720e36b3))
18
+
19
+ ### Chores
20
+
21
+ - 🚧 Add checkbox widget
22
+ ([`dd50f39`](https://github.com/robvanderleek/inquirer-textual/commit/dd50f397c60071dd4a97cabcd2a5b51ed51be259))
23
+
24
+ - 🚧 Add pointer
25
+ ([`bb982fd`](https://github.com/robvanderleek/inquirer-textual/commit/bb982fdf934dcc59483ade4bb0ac31fbbed2ca70))
26
+
27
+ - 🚧 Adding tests and documentation
28
+ ([`6a03cc4`](https://github.com/robvanderleek/inquirer-textual/commit/6a03cc4b73532e7245419eb56b1189fd2268f9ea))
29
+
30
+ - 🚧 Clean up at exit
31
+ ([`335bb96`](https://github.com/robvanderleek/inquirer-textual/commit/335bb962e0f5fbdf6453d35830548de890b3a03d))
32
+
33
+ - 🚧 Created examples
34
+ ([`a37fdf6`](https://github.com/robvanderleek/inquirer-textual/commit/a37fdf6bba702a9f8b7c7cfde64339cc2d87f4f5))
35
+
36
+ - 🚧 Documentation..
37
+ ([`a5f9b07`](https://github.com/robvanderleek/inquirer-textual/commit/a5f9b075f6f67bd9800656c4fa8411d3bceb0217))
38
+
39
+ - 🚧 Documentation...
40
+ ([`7a7686c`](https://github.com/robvanderleek/inquirer-textual/commit/7a7686cf82988df2e0d7d929c1892bf408369dc5))
41
+
42
+ - 🚧 Dynamic bind
43
+ ([`b71771d`](https://github.com/robvanderleek/inquirer-textual/commit/b71771d1834daef1ea633f4c7856283f8460e64e))
44
+
45
+ - 🚧 First tests
46
+ ([`099e88c`](https://github.com/robvanderleek/inquirer-textual/commit/099e88ce7abead4f9c8168fe11618fe6a2e2cba5))
47
+
48
+ - 🚧 Fix shortcuts
49
+ ([`648fe57`](https://github.com/robvanderleek/inquirer-textual/commit/648fe57a14b3a3866250689334eaa8b1d326006a))
50
+
51
+ - 🚧 Fixed inline select
52
+ ([`84bb923`](https://github.com/robvanderleek/inquirer-textual/commit/84bb923eccfaea42282619a4751b5d98ce7126d3))
53
+
54
+ - 🚧 More tests
55
+ ([`ab14ee2`](https://github.com/robvanderleek/inquirer-textual/commit/ab14ee2cafde2fd80834dfb5731db7d1911afe38))
56
+
57
+ - 🚧 Move mandatory to super class
58
+ ([`c135050`](https://github.com/robvanderleek/inquirer-textual/commit/c1350505f3779f41894583bd9501dbd10c37b279))
59
+
60
+ - 🚧 Multi widget
61
+ ([`3d34066`](https://github.com/robvanderleek/inquirer-textual/commit/3d34066f15b49c0873f1844fcb0c80c9c91c2136))
62
+
63
+ - 🚧 Multi WIP
64
+ ([`396e187`](https://github.com/robvanderleek/inquirer-textual/commit/396e187b6e29f02b75ac7004c88d64725270c4ad))
65
+
66
+ - 🚧 Remove blank line at top
67
+ ([`0541694`](https://github.com/robvanderleek/inquirer-textual/commit/05416947f23f8d9a88bcb4f00110ba08ee0d3530))
68
+
69
+ - 🚧 Remove default binding for quit
70
+ ([`9973df6`](https://github.com/robvanderleek/inquirer-textual/commit/9973df6c645281d774628fd5990046973c82aee3))
71
+
72
+ - 🚧 Text, Number, and Select
73
+ ([`c2c588f`](https://github.com/robvanderleek/inquirer-textual/commit/c2c588f06a8a8d5d9ab37b5f3756617abfb0a7f9))
74
+
75
+ - 🚧 WIP
76
+ ([`9c04d47`](https://github.com/robvanderleek/inquirer-textual/commit/9c04d47180bc3b9492617e8cf6fa7f391a2fd2c2))
77
+
78
+ - 🚧 WIP
79
+ ([`4e4245e`](https://github.com/robvanderleek/inquirer-textual/commit/4e4245e8614040da71b5d4a852333433ae8f5d89))
80
+
81
+ - 🚧 WIP widgets
82
+ ([`321c963`](https://github.com/robvanderleek/inquirer-textual/commit/321c9639edf1823f7e62a9f39f502ffebe64f663))
83
+
84
+ - 🚧 Working on checkbox...
85
+ ([`0f0f249`](https://github.com/robvanderleek/inquirer-textual/commit/0f0f249fae085c9f02624de58219feb411a586c3))
86
+
87
+ - 🚧 Working on multi input
88
+ ([`3be8fbb`](https://github.com/robvanderleek/inquirer-textual/commit/3be8fbbc4f8ac469c01ad09070d708cd1e4096c8))
89
+
90
+ ### Continuous Integration
91
+
92
+ - 👷 Add more GHA workflows
93
+ ([`4ff85d7`](https://github.com/robvanderleek/inquirer-textual/commit/4ff85d783aef3eb8224b8c2aac8b79ba1f69b8a4))
94
+
95
+ - 💚 Add CAPM configuration
96
+ ([`8834224`](https://github.com/robvanderleek/inquirer-textual/commit/88342249b19fbbef5f4085edeb17d127c00239b2))
97
+
98
+ - 💚 Add more GHA workflows
99
+ ([`7b6333b`](https://github.com/robvanderleek/inquirer-textual/commit/7b6333bbbe4b84967fe76e42d9dc766bbd9126b2))
100
+
101
+ - 💚 Fix build
102
+ ([`f80f1f3`](https://github.com/robvanderleek/inquirer-textual/commit/f80f1f32186f31c0afd08fdfb6a666a5bc802de5))
103
+
104
+ - 💚 Fix build
105
+ ([`d5bea02`](https://github.com/robvanderleek/inquirer-textual/commit/d5bea028953d66bca77497fb620567a2b4fc3ae8))
106
+
107
+ - 💚 Fix build
108
+ ([`d216085`](https://github.com/robvanderleek/inquirer-textual/commit/d21608580191253b6571417278de357ce6363549))
109
+
110
+ - 💚 Fix build
111
+ ([`07bfd5f`](https://github.com/robvanderleek/inquirer-textual/commit/07bfd5f41e3424673e332d9323c86ec72080fbda))
112
+
113
+ - 💚 Fix build
114
+ ([`2c55c58`](https://github.com/robvanderleek/inquirer-textual/commit/2c55c5875724ad4e1589520ff4a03c39c6d80310))
115
+
116
+ - 💚 Fix code analysis
117
+ ([`04d71a0`](https://github.com/robvanderleek/inquirer-textual/commit/04d71a01466b7f250cd60bfbf4b9d4e618e1b468))
118
+
119
+ - 💚 Fixed
120
+ ([`e4a2a67`](https://github.com/robvanderleek/inquirer-textual/commit/e4a2a6742c6b519d0476d95a38ddddbc2fb4f1b8))
121
+
122
+ ### Documentation
123
+
124
+ - 📝 Add badges
125
+ ([`9d3509b`](https://github.com/robvanderleek/inquirer-textual/commit/9d3509b1316836dc0e4723b92e56eb5871ed8c42))
126
+
127
+ - 📝 Added examples
128
+ ([`c91ad24`](https://github.com/robvanderleek/inquirer-textual/commit/c91ad24d3ba29a926285af62b2fc15d8aea23149))
129
+
130
+ ### Features
131
+
132
+ - ✨ Add default value for select
133
+ ([`9ac7fcb`](https://github.com/robvanderleek/inquirer-textual/commit/9ac7fcb58c9943f8cebc62125b0204f0fd5c1a59))
134
+
135
+ - ✨ Add mandatory flag for select widget
136
+ ([`2d1a8ad`](https://github.com/robvanderleek/inquirer-textual/commit/2d1a8adf014892a959bd3b1482491ea7ad244c5f))
137
+
138
+ - ✨ Add secret input
139
+ ([`7d5d340`](https://github.com/robvanderleek/inquirer-textual/commit/7d5d340930cc8892d867cfbe2035a89bdde14097))
140
+
141
+ - 🧱 Add release workflow
142
+ ([`8ea5f27`](https://github.com/robvanderleek/inquirer-textual/commit/8ea5f27cd073c037113ee6c3d049a7025a6bec53))
143
+
144
+ ### Refactoring
145
+
146
+ - ♻️ Moved code around
147
+ ([`1e84156`](https://github.com/robvanderleek/inquirer-textual/commit/1e84156b3f5a61f69240be7b7598e0e2fb24e770))
148
+
149
+ ### Testing
150
+
151
+ - ✅ Add snapshot test
152
+ ([`b225a63`](https://github.com/robvanderleek/inquirer-textual/commit/b225a63d4f58572884f4c8b45b274f2a954699fa))
153
+
154
+ - ✅ First test
155
+ ([`097748f`](https://github.com/robvanderleek/inquirer-textual/commit/097748f8468f15e7d1b9eec2e74c7de5cd8df3f3))
156
+
157
+ - ✅ More tests
158
+ ([`6f8f2df`](https://github.com/robvanderleek/inquirer-textual/commit/6f8f2df7b5609e9308c33b02fe23f9fc961d7931))
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Rob van der Leek
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,37 @@
1
+ Metadata-Version: 2.4
2
+ Name: inquirer-textual
3
+ Version: 0.1.0
4
+ Summary: Inquirer based on Textual
5
+ Project-URL: Changelog, https://github.com/robvanderleek/inquirer-textual/blob/master/CHANGELOG.md
6
+ Project-URL: Documentation, https://robvanderleek.github.io/inquirer-textual/
7
+ Project-URL: Source, https://github.com/robvanderleek/inquirer-textual
8
+ Author-email: Rob van der Leek <robvanderleek@gmail.com>
9
+ License-Expression: GPL-3.0-or-later
10
+ License-File: LICENSE
11
+ Requires-Python: >=3.12
12
+ Requires-Dist: textual>=6.2.1
13
+ Description-Content-Type: text/markdown
14
+
15
+ # Inquirer-Textual
16
+
17
+ <div align="center">
18
+
19
+ ![Logo](https://raw.githubusercontent.com/robvanderleek/inquirer-textual/main/docs/assets/logo-light.png)
20
+
21
+ </div>
22
+
23
+ <div align="center">
24
+
25
+ [![main](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml/badge.svg)](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml)
26
+ [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
27
+ [![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)
28
+
29
+ </div>
30
+
31
+ ## Development
32
+
33
+ Add this library as an editable local dependency to another project using `uv`:
34
+
35
+ ```shell
36
+ uv add --editable <path-to-inquirer-textual>
37
+ ```
@@ -0,0 +1,23 @@
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
+ [![main](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml/badge.svg)](https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml)
12
+ [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
13
+ [![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)
14
+
15
+ </div>
16
+
17
+ ## Development
18
+
19
+ Add this library as an editable local dependency to another project using `uv`:
20
+
21
+ ```shell
22
+ uv add --editable <path-to-inquirer-textual>
23
+ ```
@@ -0,0 +1,39 @@
1
+ <style>
2
+ .md-content .md-typeset h1 { display: none; }
3
+ </style>
4
+
5
+ <div align="center">
6
+ <img src="assets/logo-light.png"/>
7
+ </div>
8
+
9
+ <p align="center"> <em>Versatile library for terminal user input in Python</em>
10
+ </p>
11
+
12
+ <div align="center">
13
+ <a href="https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml" target="_blank">
14
+ <img src="https://github.com/robvanderleek/inquirer-textual/actions/workflows/main.yml/badge.svg" alt="Badge" class="off-glb">
15
+ </a>
16
+ <a href="https://mypy-lang.org/" target="_blank">
17
+ <img src="https://www.mypy-lang.org/static/mypy_badge.svg" alt="Badge" class="off-glb">
18
+ </a>
19
+ <a href="https://github.com/astral-sh/ruff" target="_blank">
20
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json" alt="Badge" class="off-glb">
21
+ </a>
22
+ </div>
23
+
24
+ ## About
25
+
26
+ All programs start small. Some stay small, and some become incredibly big. The
27
+ goal of this Python library is to make user input simple for small programs,
28
+ yet remain flexible when programs grow.
29
+
30
+ This library is based on the sophisticated and mature
31
+ [Textual](https://textual.textualize.io/) TUI framework.
32
+
33
+ ## Key features and design principles
34
+
35
+ * **Keep simple things simple**: High-level prompts API for getting user input
36
+ * **Support evolving programs**: From small scripts to full-featured TUI
37
+ applications
38
+ * **Inquirer-like syntax**: API similar to many other Inquirer libraries
39
+ * **Single dependency**: The Textual TUI framework
@@ -0,0 +1,12 @@
1
+ # Checkbox
2
+
3
+ A checkbox widget that allows multiple selections from a list of choices.
4
+
5
+ ## Example
6
+
7
+ ![Example](checkbox.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompts/checkbox.py"
11
+ ```
12
+
@@ -0,0 +1,18 @@
1
+ Output checkbox.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/checkbox.py"
5
+ Enter
6
+ Sleep 1s
7
+ Down
8
+ Sleep 0.5s
9
+ Down
10
+ Sleep 0.5s
11
+ Space
12
+ Sleep 0.5s
13
+ Down
14
+ Sleep 0.5s
15
+ Space
16
+ Sleep 0.5s
17
+ Enter
18
+ Sleep 3s
@@ -0,0 +1,11 @@
1
+ # Confirm
2
+
3
+ A confirmation prompt that allows the user to confirm or reject.
4
+
5
+ ## Example
6
+
7
+ ![Example](confirm.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompts/confirm.py"
11
+ ```
@@ -0,0 +1,8 @@
1
+ Output confirm.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/confirm.py"
5
+ Enter
6
+ Sleep 1s
7
+ Type y
8
+ Sleep 3s
@@ -0,0 +1,11 @@
1
+ # Multi
2
+
3
+ A prompt that allows the user to answer multiple prompts in sequence.
4
+
5
+ ## Example
6
+
7
+ ![Example](multi.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompts/multi.py"
11
+ ```
@@ -0,0 +1,36 @@
1
+ Output multi.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/multi.py"
5
+ Enter
6
+ Sleep 1s
7
+ Type Rob
8
+ Sleep 1s
9
+ Enter
10
+ Sleep 1s
11
+ Type Bor
12
+ Sleep 1s
13
+ Enter
14
+ Sleep 1s
15
+ Type "1024"
16
+ Sleep 1s
17
+ Enter
18
+ Sleep 1s
19
+ Type y
20
+ Sleep 1s
21
+ Down
22
+ Sleep 1s
23
+ Down
24
+ Sleep 1s
25
+ Enter
26
+ Sleep 1s
27
+ Down
28
+ Sleep 1s
29
+ Space
30
+ Sleep 1s
31
+ Down
32
+ Sleep 1s
33
+ Space
34
+ Sleep 1s
35
+ Enter
36
+ Sleep 3s
@@ -0,0 +1,11 @@
1
+ # Number
2
+
3
+ A number input widget that allows the user to input a numerical value.
4
+
5
+ ## Example
6
+
7
+ ![Example](number.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompts/number.py"
11
+ ```
@@ -0,0 +1,10 @@
1
+ Output number.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/number.py"
5
+ Enter
6
+ Sleep 1s
7
+ Type "1024"
8
+ Sleep 1s
9
+ Enter
10
+ Sleep 3s
@@ -0,0 +1,12 @@
1
+ # Secret
2
+
3
+ A secret input prompt that allows the user to enter a secret value (e.g.,
4
+ password).
5
+
6
+ ## Example
7
+
8
+ ![Example](secret.gif)
9
+
10
+ ```python
11
+ --8<-- "examples/prompts/secret.py"
12
+ ```
@@ -0,0 +1,10 @@
1
+ Output secret.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/secret.py"
5
+ Enter
6
+ Sleep 1s
7
+ Type helloworld
8
+ Sleep 1s
9
+ Enter
10
+ Sleep 3s
@@ -0,0 +1,11 @@
1
+ # Select
2
+
3
+ A select widget that allows a single selection from a list of choices.
4
+
5
+ ## Example
6
+
7
+ ![Example](select.gif)
8
+
9
+ ```python
10
+ --8<-- "examples/prompts/select.py"
11
+ ```
@@ -0,0 +1,12 @@
1
+ Output select.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/select.py"
5
+ Enter
6
+ Sleep 2.5s
7
+ Down
8
+ Sleep 0.5s
9
+ Down
10
+ Sleep 0.5s
11
+ Enter
12
+ Sleep 3s
@@ -0,0 +1,5 @@
1
+ # Text
2
+
3
+ ```python
4
+ --8<-- "examples/prompts/text.py"
5
+ ```
@@ -0,0 +1,10 @@
1
+ Output text.gif
2
+ Set Shell zsh
3
+ Set Theme { "background": "#000000" }
4
+ Type "uv run examples/prompts/text.py"
5
+ Enter
6
+ Sleep 2s
7
+ Type Rob
8
+ Sleep 1s
9
+ Enter
10
+ Sleep 3s