rmtlabs commited on
Commit
6d3e232
·
verified ·
1 Parent(s): b03e641

Delete myvenv

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. myvenv/bin/Activate.ps1 +0 -247
  2. myvenv/bin/activate +0 -70
  3. myvenv/bin/activate.csh +0 -27
  4. myvenv/bin/activate.fish +0 -69
  5. myvenv/bin/huggingface-cli +0 -8
  6. myvenv/bin/normalizer +0 -8
  7. myvenv/bin/pip +0 -8
  8. myvenv/bin/pip3 +0 -8
  9. myvenv/bin/pip3.12 +0 -8
  10. myvenv/bin/python +0 -3
  11. myvenv/bin/python3 +0 -3
  12. myvenv/bin/python3.12 +0 -3
  13. myvenv/bin/tiny-agents +0 -8
  14. myvenv/bin/tqdm +0 -8
  15. myvenv/lib/python3.12/site-packages/InquirerPy/__init__.py +0 -2
  16. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/__init__.cpython-312.pyc +0 -0
  17. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/enum.cpython-312.pyc +0 -0
  18. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/exceptions.cpython-312.pyc +0 -0
  19. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/inquirer.cpython-312.pyc +0 -0
  20. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/resolver.cpython-312.pyc +0 -0
  21. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/separator.cpython-312.pyc +0 -0
  22. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/utils.cpython-312.pyc +0 -0
  23. myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/validator.cpython-312.pyc +0 -0
  24. myvenv/lib/python3.12/site-packages/InquirerPy/base/__init__.py +0 -15
  25. myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/__init__.cpython-312.pyc +0 -0
  26. myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/complex.cpython-312.pyc +0 -0
  27. myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/control.cpython-312.pyc +0 -0
  28. myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/list.cpython-312.pyc +0 -0
  29. myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/simple.cpython-312.pyc +0 -0
  30. myvenv/lib/python3.12/site-packages/InquirerPy/base/complex.py +0 -294
  31. myvenv/lib/python3.12/site-packages/InquirerPy/base/control.py +0 -227
  32. myvenv/lib/python3.12/site-packages/InquirerPy/base/list.py +0 -238
  33. myvenv/lib/python3.12/site-packages/InquirerPy/base/simple.py +0 -378
  34. myvenv/lib/python3.12/site-packages/InquirerPy/containers/__init__.py +0 -1
  35. myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/__init__.cpython-312.pyc +0 -0
  36. myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/instruction.cpython-312.pyc +0 -0
  37. myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/message.cpython-312.pyc +0 -0
  38. myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/spinner.cpython-312.pyc +0 -0
  39. myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/validation.cpython-312.pyc +0 -0
  40. myvenv/lib/python3.12/site-packages/InquirerPy/containers/instruction.py +0 -38
  41. myvenv/lib/python3.12/site-packages/InquirerPy/containers/message.py +0 -42
  42. myvenv/lib/python3.12/site-packages/InquirerPy/containers/spinner.py +0 -108
  43. myvenv/lib/python3.12/site-packages/InquirerPy/containers/validation.py +0 -60
  44. myvenv/lib/python3.12/site-packages/InquirerPy/enum.py +0 -7
  45. myvenv/lib/python3.12/site-packages/InquirerPy/exceptions.py +0 -25
  46. myvenv/lib/python3.12/site-packages/InquirerPy/inquirer.py +0 -17
  47. myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__init__.py +0 -11
  48. myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__pycache__/__init__.cpython-312.pyc +0 -0
  49. myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__pycache__/checkbox.cpython-312.pyc +0 -0
  50. myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__pycache__/confirm.cpython-312.pyc +0 -0
myvenv/bin/Activate.ps1 DELETED
@@ -1,247 +0,0 @@
1
- <#
2
- .Synopsis
3
- Activate a Python virtual environment for the current PowerShell session.
4
-
5
- .Description
6
- Pushes the python executable for a virtual environment to the front of the
7
- $Env:PATH environment variable and sets the prompt to signify that you are
8
- in a Python virtual environment. Makes use of the command line switches as
9
- well as the `pyvenv.cfg` file values present in the virtual environment.
10
-
11
- .Parameter VenvDir
12
- Path to the directory that contains the virtual environment to activate. The
13
- default value for this is the parent of the directory that the Activate.ps1
14
- script is located within.
15
-
16
- .Parameter Prompt
17
- The prompt prefix to display when this virtual environment is activated. By
18
- default, this prompt is the name of the virtual environment folder (VenvDir)
19
- surrounded by parentheses and followed by a single space (ie. '(.venv) ').
20
-
21
- .Example
22
- Activate.ps1
23
- Activates the Python virtual environment that contains the Activate.ps1 script.
24
-
25
- .Example
26
- Activate.ps1 -Verbose
27
- Activates the Python virtual environment that contains the Activate.ps1 script,
28
- and shows extra information about the activation as it executes.
29
-
30
- .Example
31
- Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
32
- Activates the Python virtual environment located in the specified location.
33
-
34
- .Example
35
- Activate.ps1 -Prompt "MyPython"
36
- Activates the Python virtual environment that contains the Activate.ps1 script,
37
- and prefixes the current prompt with the specified string (surrounded in
38
- parentheses) while the virtual environment is active.
39
-
40
- .Notes
41
- On Windows, it may be required to enable this Activate.ps1 script by setting the
42
- execution policy for the user. You can do this by issuing the following PowerShell
43
- command:
44
-
45
- PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
46
-
47
- For more information on Execution Policies:
48
- https://go.microsoft.com/fwlink/?LinkID=135170
49
-
50
- #>
51
- Param(
52
- [Parameter(Mandatory = $false)]
53
- [String]
54
- $VenvDir,
55
- [Parameter(Mandatory = $false)]
56
- [String]
57
- $Prompt
58
- )
59
-
60
- <# Function declarations --------------------------------------------------- #>
61
-
62
- <#
63
- .Synopsis
64
- Remove all shell session elements added by the Activate script, including the
65
- addition of the virtual environment's Python executable from the beginning of
66
- the PATH variable.
67
-
68
- .Parameter NonDestructive
69
- If present, do not remove this function from the global namespace for the
70
- session.
71
-
72
- #>
73
- function global:deactivate ([switch]$NonDestructive) {
74
- # Revert to original values
75
-
76
- # The prior prompt:
77
- if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
78
- Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
79
- Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
80
- }
81
-
82
- # The prior PYTHONHOME:
83
- if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
84
- Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
85
- Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
86
- }
87
-
88
- # The prior PATH:
89
- if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
90
- Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
91
- Remove-Item -Path Env:_OLD_VIRTUAL_PATH
92
- }
93
-
94
- # Just remove the VIRTUAL_ENV altogether:
95
- if (Test-Path -Path Env:VIRTUAL_ENV) {
96
- Remove-Item -Path env:VIRTUAL_ENV
97
- }
98
-
99
- # Just remove VIRTUAL_ENV_PROMPT altogether.
100
- if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
101
- Remove-Item -Path env:VIRTUAL_ENV_PROMPT
102
- }
103
-
104
- # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
105
- if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
106
- Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
107
- }
108
-
109
- # Leave deactivate function in the global namespace if requested:
110
- if (-not $NonDestructive) {
111
- Remove-Item -Path function:deactivate
112
- }
113
- }
114
-
115
- <#
116
- .Description
117
- Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
118
- given folder, and returns them in a map.
119
-
120
- For each line in the pyvenv.cfg file, if that line can be parsed into exactly
121
- two strings separated by `=` (with any amount of whitespace surrounding the =)
122
- then it is considered a `key = value` line. The left hand string is the key,
123
- the right hand is the value.
124
-
125
- If the value starts with a `'` or a `"` then the first and last character is
126
- stripped from the value before being captured.
127
-
128
- .Parameter ConfigDir
129
- Path to the directory that contains the `pyvenv.cfg` file.
130
- #>
131
- function Get-PyVenvConfig(
132
- [String]
133
- $ConfigDir
134
- ) {
135
- Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
136
-
137
- # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
138
- $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
139
-
140
- # An empty map will be returned if no config file is found.
141
- $pyvenvConfig = @{ }
142
-
143
- if ($pyvenvConfigPath) {
144
-
145
- Write-Verbose "File exists, parse `key = value` lines"
146
- $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
147
-
148
- $pyvenvConfigContent | ForEach-Object {
149
- $keyval = $PSItem -split "\s*=\s*", 2
150
- if ($keyval[0] -and $keyval[1]) {
151
- $val = $keyval[1]
152
-
153
- # Remove extraneous quotations around a string value.
154
- if ("'""".Contains($val.Substring(0, 1))) {
155
- $val = $val.Substring(1, $val.Length - 2)
156
- }
157
-
158
- $pyvenvConfig[$keyval[0]] = $val
159
- Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
160
- }
161
- }
162
- }
163
- return $pyvenvConfig
164
- }
165
-
166
-
167
- <# Begin Activate script --------------------------------------------------- #>
168
-
169
- # Determine the containing directory of this script
170
- $VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
171
- $VenvExecDir = Get-Item -Path $VenvExecPath
172
-
173
- Write-Verbose "Activation script is located in path: '$VenvExecPath'"
174
- Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
175
- Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
176
-
177
- # Set values required in priority: CmdLine, ConfigFile, Default
178
- # First, get the location of the virtual environment, it might not be
179
- # VenvExecDir if specified on the command line.
180
- if ($VenvDir) {
181
- Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
182
- }
183
- else {
184
- Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
185
- $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
186
- Write-Verbose "VenvDir=$VenvDir"
187
- }
188
-
189
- # Next, read the `pyvenv.cfg` file to determine any required value such
190
- # as `prompt`.
191
- $pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
192
-
193
- # Next, set the prompt from the command line, or the config file, or
194
- # just use the name of the virtual environment folder.
195
- if ($Prompt) {
196
- Write-Verbose "Prompt specified as argument, using '$Prompt'"
197
- }
198
- else {
199
- Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
200
- if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
201
- Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
202
- $Prompt = $pyvenvCfg['prompt'];
203
- }
204
- else {
205
- Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
206
- Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
207
- $Prompt = Split-Path -Path $venvDir -Leaf
208
- }
209
- }
210
-
211
- Write-Verbose "Prompt = '$Prompt'"
212
- Write-Verbose "VenvDir='$VenvDir'"
213
-
214
- # Deactivate any currently active virtual environment, but leave the
215
- # deactivate function in place.
216
- deactivate -nondestructive
217
-
218
- # Now set the environment variable VIRTUAL_ENV, used by many tools to determine
219
- # that there is an activated venv.
220
- $env:VIRTUAL_ENV = $VenvDir
221
-
222
- if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
223
-
224
- Write-Verbose "Setting prompt to '$Prompt'"
225
-
226
- # Set the prompt to include the env name
227
- # Make sure _OLD_VIRTUAL_PROMPT is global
228
- function global:_OLD_VIRTUAL_PROMPT { "" }
229
- Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
230
- New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
231
-
232
- function global:prompt {
233
- Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
234
- _OLD_VIRTUAL_PROMPT
235
- }
236
- $env:VIRTUAL_ENV_PROMPT = $Prompt
237
- }
238
-
239
- # Clear PYTHONHOME
240
- if (Test-Path -Path Env:PYTHONHOME) {
241
- Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
242
- Remove-Item -Path Env:PYTHONHOME
243
- }
244
-
245
- # Add the venv to the PATH
246
- Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
247
- $Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/bin/activate DELETED
@@ -1,70 +0,0 @@
1
- # This file must be used with "source bin/activate" *from bash*
2
- # You cannot run it directly
3
-
4
- deactivate () {
5
- # reset old environment variables
6
- if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
7
- PATH="${_OLD_VIRTUAL_PATH:-}"
8
- export PATH
9
- unset _OLD_VIRTUAL_PATH
10
- fi
11
- if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
12
- PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
13
- export PYTHONHOME
14
- unset _OLD_VIRTUAL_PYTHONHOME
15
- fi
16
-
17
- # Call hash to forget past commands. Without forgetting
18
- # past commands the $PATH changes we made may not be respected
19
- hash -r 2> /dev/null
20
-
21
- if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
22
- PS1="${_OLD_VIRTUAL_PS1:-}"
23
- export PS1
24
- unset _OLD_VIRTUAL_PS1
25
- fi
26
-
27
- unset VIRTUAL_ENV
28
- unset VIRTUAL_ENV_PROMPT
29
- if [ ! "${1:-}" = "nondestructive" ] ; then
30
- # Self destruct!
31
- unset -f deactivate
32
- fi
33
- }
34
-
35
- # unset irrelevant variables
36
- deactivate nondestructive
37
-
38
- # on Windows, a path can contain colons and backslashes and has to be converted:
39
- if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then
40
- # transform D:\path\to\venv to /d/path/to/venv on MSYS
41
- # and to /cygdrive/d/path/to/venv on Cygwin
42
- export VIRTUAL_ENV=$(cygpath /home/coldstrel/Documents/model-rmt-draft/myvenv)
43
- else
44
- # use the path as-is
45
- export VIRTUAL_ENV=/home/coldstrel/Documents/model-rmt-draft/myvenv
46
- fi
47
-
48
- _OLD_VIRTUAL_PATH="$PATH"
49
- PATH="$VIRTUAL_ENV/"bin":$PATH"
50
- export PATH
51
-
52
- # unset PYTHONHOME if set
53
- # this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
54
- # could use `if (set -u; : $PYTHONHOME) ;` in bash
55
- if [ -n "${PYTHONHOME:-}" ] ; then
56
- _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
57
- unset PYTHONHOME
58
- fi
59
-
60
- if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
61
- _OLD_VIRTUAL_PS1="${PS1:-}"
62
- PS1='(myvenv) '"${PS1:-}"
63
- export PS1
64
- VIRTUAL_ENV_PROMPT='(myvenv) '
65
- export VIRTUAL_ENV_PROMPT
66
- fi
67
-
68
- # Call hash to forget past commands. Without forgetting
69
- # past commands the $PATH changes we made may not be respected
70
- hash -r 2> /dev/null
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/bin/activate.csh DELETED
@@ -1,27 +0,0 @@
1
- # This file must be used with "source bin/activate.csh" *from csh*.
2
- # You cannot run it directly.
3
-
4
- # Created by Davide Di Blasi <[email protected]>.
5
- # Ported to Python 3.3 venv by Andrew Svetlov <[email protected]>
6
-
7
- alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
8
-
9
- # Unset irrelevant variables.
10
- deactivate nondestructive
11
-
12
- setenv VIRTUAL_ENV /home/coldstrel/Documents/model-rmt-draft/myvenv
13
-
14
- set _OLD_VIRTUAL_PATH="$PATH"
15
- setenv PATH "$VIRTUAL_ENV/"bin":$PATH"
16
-
17
-
18
- set _OLD_VIRTUAL_PROMPT="$prompt"
19
-
20
- if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
21
- set prompt = '(myvenv) '"$prompt"
22
- setenv VIRTUAL_ENV_PROMPT '(myvenv) '
23
- endif
24
-
25
- alias pydoc python -m pydoc
26
-
27
- rehash
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/bin/activate.fish DELETED
@@ -1,69 +0,0 @@
1
- # This file must be used with "source <venv>/bin/activate.fish" *from fish*
2
- # (https://fishshell.com/). You cannot run it directly.
3
-
4
- function deactivate -d "Exit virtual environment and return to normal shell environment"
5
- # reset old environment variables
6
- if test -n "$_OLD_VIRTUAL_PATH"
7
- set -gx PATH $_OLD_VIRTUAL_PATH
8
- set -e _OLD_VIRTUAL_PATH
9
- end
10
- if test -n "$_OLD_VIRTUAL_PYTHONHOME"
11
- set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
12
- set -e _OLD_VIRTUAL_PYTHONHOME
13
- end
14
-
15
- if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
16
- set -e _OLD_FISH_PROMPT_OVERRIDE
17
- # prevents error when using nested fish instances (Issue #93858)
18
- if functions -q _old_fish_prompt
19
- functions -e fish_prompt
20
- functions -c _old_fish_prompt fish_prompt
21
- functions -e _old_fish_prompt
22
- end
23
- end
24
-
25
- set -e VIRTUAL_ENV
26
- set -e VIRTUAL_ENV_PROMPT
27
- if test "$argv[1]" != "nondestructive"
28
- # Self-destruct!
29
- functions -e deactivate
30
- end
31
- end
32
-
33
- # Unset irrelevant variables.
34
- deactivate nondestructive
35
-
36
- set -gx VIRTUAL_ENV /home/coldstrel/Documents/model-rmt-draft/myvenv
37
-
38
- set -gx _OLD_VIRTUAL_PATH $PATH
39
- set -gx PATH "$VIRTUAL_ENV/"bin $PATH
40
-
41
- # Unset PYTHONHOME if set.
42
- if set -q PYTHONHOME
43
- set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
44
- set -e PYTHONHOME
45
- end
46
-
47
- if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
48
- # fish uses a function instead of an env var to generate the prompt.
49
-
50
- # Save the current fish_prompt function as the function _old_fish_prompt.
51
- functions -c fish_prompt _old_fish_prompt
52
-
53
- # With the original prompt function renamed, we can override with our own.
54
- function fish_prompt
55
- # Save the return status of the last command.
56
- set -l old_status $status
57
-
58
- # Output the venv prompt; color taken from the blue of the Python logo.
59
- printf "%s%s%s" (set_color 4B8BBE) '(myvenv) ' (set_color normal)
60
-
61
- # Restore the return status of the previous command.
62
- echo "exit $old_status" | .
63
- # Output the original/"old" prompt.
64
- _old_fish_prompt
65
- end
66
-
67
- set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
68
- set -gx VIRTUAL_ENV_PROMPT '(myvenv) '
69
- end
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/bin/huggingface-cli DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from huggingface_hub.commands.huggingface_cli import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
myvenv/bin/normalizer DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from charset_normalizer import cli
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(cli.cli_detect())
 
 
 
 
 
 
 
 
 
myvenv/bin/pip DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from pip._internal.cli.main import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
myvenv/bin/pip3 DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from pip._internal.cli.main import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
myvenv/bin/pip3.12 DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from pip._internal.cli.main import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
myvenv/bin/python DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:2845674b3fae665f5f6c3f01674fefa4e495f15f5d755ee8f7f1a40575abdc8a
3
- size 8021824
 
 
 
 
myvenv/bin/python3 DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:2845674b3fae665f5f6c3f01674fefa4e495f15f5d755ee8f7f1a40575abdc8a
3
- size 8021824
 
 
 
 
myvenv/bin/python3.12 DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:2845674b3fae665f5f6c3f01674fefa4e495f15f5d755ee8f7f1a40575abdc8a
3
- size 8021824
 
 
 
 
myvenv/bin/tiny-agents DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from huggingface_hub.inference._mcp.cli import app
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(app())
 
 
 
 
 
 
 
 
 
myvenv/bin/tqdm DELETED
@@ -1,8 +0,0 @@
1
- #!/home/coldstrel/Documents/model-rmt-draft/myvenv/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from tqdm.cli import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/__init__.py DELETED
@@ -1,2 +0,0 @@
1
- from InquirerPy.resolver import prompt, prompt_async
2
- from InquirerPy.utils import get_style
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/__init__.cpython-312.pyc DELETED
Binary file (324 Bytes)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/enum.cpython-312.pyc DELETED
Binary file (596 Bytes)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/exceptions.cpython-312.pyc DELETED
Binary file (1.45 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/inquirer.cpython-312.pyc DELETED
Binary file (937 Bytes)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/resolver.cpython-312.pyc DELETED
Binary file (8.4 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/separator.cpython-312.pyc DELETED
Binary file (1.28 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/utils.cpython-312.pyc DELETED
Binary file (12.9 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/__pycache__/validator.cpython-312.pyc DELETED
Binary file (7.5 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/__init__.py DELETED
@@ -1,15 +0,0 @@
1
- """Module contains base class for prompts.
2
-
3
- BaseSimplePrompt ← InputPrompt ← SecretPrompt ...
4
-
5
- BaseComplexPrompt
6
-
7
- BaseListPrompt ← FuzzyPrompt
8
-
9
- ListPrompt ← ExpandPrompt ...
10
- """
11
-
12
- from .complex import BaseComplexPrompt, FakeDocument
13
- from .control import Choice, InquirerPyUIListControl
14
- from .list import BaseListPrompt
15
- from .simple import BaseSimplePrompt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/__init__.cpython-312.pyc DELETED
Binary file (679 Bytes)
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/complex.cpython-312.pyc DELETED
Binary file (13.9 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/control.cpython-312.pyc DELETED
Binary file (10.6 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/list.cpython-312.pyc DELETED
Binary file (9.46 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/__pycache__/simple.cpython-312.pyc DELETED
Binary file (17.9 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/complex.py DELETED
@@ -1,294 +0,0 @@
1
- """Contains the interface class :class:`.BaseComplexPrompt` for more complex prompts and the mocked document class :class:`.FakeDocument`."""
2
- import shutil
3
- from dataclasses import dataclass
4
- from typing import Any, Callable, List, Optional, Tuple, Union
5
-
6
- from prompt_toolkit.application import Application
7
- from prompt_toolkit.enums import EditingMode
8
- from prompt_toolkit.filters.base import Condition, FilterOrBool
9
- from prompt_toolkit.key_binding.key_bindings import KeyHandlerCallable
10
- from prompt_toolkit.keys import Keys
11
-
12
- from InquirerPy.base.simple import BaseSimplePrompt
13
- from InquirerPy.enum import INQUIRERPY_KEYBOARD_INTERRUPT
14
- from InquirerPy.utils import (
15
- InquirerPySessionResult,
16
- InquirerPyStyle,
17
- InquirerPyValidate,
18
- )
19
-
20
-
21
- @dataclass
22
- class FakeDocument:
23
- """A fake `prompt_toolkit` document class.
24
-
25
- Work around to allow non-buffer type :class:`~prompt_toolkit.layout.UIControl` to use
26
- :class:`~prompt_toolkit.validation.Validator`.
27
-
28
- Args:
29
- text: Content to be validated.
30
- cursor_position: Fake cursor position.
31
- """
32
-
33
- text: str
34
- cursor_position: int = 0
35
-
36
-
37
- class BaseComplexPrompt(BaseSimplePrompt):
38
- """A base class to create a more complex prompt that will involve :class:`~prompt_toolkit.application.Application`.
39
-
40
- Note:
41
- This class does not create :class:`~prompt_toolkit.layout.Layout` nor :class:`~prompt_toolkit.application.Application`,
42
- it only contains the necessary attributes and helper functions to be consumed.
43
-
44
- Note:
45
- Use :class:`~InquirerPy.base.BaseListPrompt` to create a complex list prompt which involves multiple choices. It has
46
- more methods and helper function implemented.
47
-
48
- See Also:
49
- :class:`~InquirerPy.base.BaseListPrompt`
50
- :class:`~InquirerPy.prompts.fuzzy.FuzzyPrompt`
51
- """
52
-
53
- def __init__(
54
- self,
55
- message: Union[str, Callable[[InquirerPySessionResult], str]],
56
- style: Optional[InquirerPyStyle] = None,
57
- border: bool = False,
58
- vi_mode: bool = False,
59
- qmark: str = "?",
60
- amark: str = "?",
61
- instruction: str = "",
62
- long_instruction: str = "",
63
- transformer: Optional[Callable[[Any], Any]] = None,
64
- filter: Optional[Callable[[Any], Any]] = None,
65
- validate: Optional[InquirerPyValidate] = None,
66
- invalid_message: str = "Invalid input",
67
- wrap_lines: bool = True,
68
- raise_keyboard_interrupt: bool = True,
69
- mandatory: bool = True,
70
- mandatory_message: str = "Mandatory prompt",
71
- session_result: Optional[InquirerPySessionResult] = None,
72
- ) -> None:
73
- super().__init__(
74
- message=message,
75
- style=style,
76
- vi_mode=vi_mode,
77
- qmark=qmark,
78
- amark=amark,
79
- instruction=instruction,
80
- transformer=transformer,
81
- filter=filter,
82
- invalid_message=invalid_message,
83
- validate=validate,
84
- wrap_lines=wrap_lines,
85
- raise_keyboard_interrupt=raise_keyboard_interrupt,
86
- mandatory=mandatory,
87
- mandatory_message=mandatory_message,
88
- session_result=session_result,
89
- )
90
- self._invalid_message = invalid_message
91
- self._rendered = False
92
- self._invalid = False
93
- self._loading = False
94
- self._application: Application
95
- self._long_instruction = long_instruction
96
- self._border = border
97
- self._height_offset = 2 # prev prompt result + current prompt question
98
- if self._border:
99
- self._height_offset += 2
100
- if self._long_instruction:
101
- self._height_offset += 1
102
- self._validation_window_bottom_offset = 0 if not self._long_instruction else 1
103
- if self._wrap_lines:
104
- self._validation_window_bottom_offset += (
105
- self.extra_long_instruction_line_count
106
- )
107
-
108
- self._is_vim_edit = Condition(lambda: self._editing_mode == EditingMode.VI)
109
- self._is_invalid = Condition(lambda: self._invalid)
110
- self._is_displaying_long_instruction = Condition(
111
- lambda: self._long_instruction != ""
112
- )
113
-
114
- def _redraw(self) -> None:
115
- """Redraw the application UI."""
116
- self._application.invalidate()
117
-
118
- def register_kb(
119
- self, *keys: Union[Keys, str], filter: FilterOrBool = True
120
- ) -> Callable[[KeyHandlerCallable], KeyHandlerCallable]:
121
- """Decorate keybinding registration function.
122
-
123
- Ensure that the `invalid` state is cleared on next keybinding entered.
124
- """
125
- kb_dec = super().register_kb(*keys, filter=filter)
126
-
127
- def decorator(func: KeyHandlerCallable) -> KeyHandlerCallable:
128
- @kb_dec
129
- def executable(event):
130
- if self._invalid:
131
- self._invalid = False
132
- func(event)
133
-
134
- return executable
135
-
136
- return decorator
137
-
138
- def _exception_handler(self, _, context) -> None:
139
- """Set exception handler for the event loop.
140
-
141
- Skip the question and raise exception.
142
-
143
- Args:
144
- loop: Current event loop.
145
- context: Exception context.
146
- """
147
- self._status["answered"] = True
148
- self._status["result"] = INQUIRERPY_KEYBOARD_INTERRUPT
149
- self._status["skipped"] = True
150
- self._application.exit(exception=context["exception"])
151
-
152
- def _after_render(self, app: Optional[Application]) -> None:
153
- """Run after the :class:`~prompt_toolkit.application.Application` is rendered/updated.
154
-
155
- Since this function is fired up on each render, adding a check on `self._rendered` to
156
- process logics that should only run once.
157
-
158
- Set event loop exception handler here, since its guaranteed that the event loop is running
159
- in `_after_render`.
160
- """
161
- if not self._rendered:
162
- self._rendered = True
163
-
164
- self._keybinding_factory()
165
- self._on_rendered(app)
166
-
167
- def _set_error(self, message: str) -> None:
168
- """Set error message and set invalid state.
169
-
170
- Args:
171
- message: Error message to display.
172
- """
173
- self._invalid_message = message
174
- self._invalid = True
175
-
176
- def _get_error_message(self) -> List[Tuple[str, str]]:
177
- """Obtain the error message dynamically.
178
-
179
- Returns:
180
- FormattedText in list of tuple format.
181
- """
182
- return [
183
- (
184
- "class:validation-toolbar",
185
- self._invalid_message,
186
- )
187
- ]
188
-
189
- def _on_rendered(self, _: Optional[Application]) -> None:
190
- """Run once after the UI is rendered. Acts like `ComponentDidMount`."""
191
- pass
192
-
193
- def _get_prompt_message(self) -> List[Tuple[str, str]]:
194
- """Get the prompt message to display.
195
-
196
- Returns:
197
- Formatted text in list of tuple format.
198
- """
199
- pre_answer = (
200
- "class:instruction",
201
- " %s " % self.instruction if self.instruction else " ",
202
- )
203
- post_answer = ("class:answer", " %s" % self.status["result"])
204
- return super()._get_prompt_message(pre_answer, post_answer)
205
-
206
- def _run(self) -> Any:
207
- """Run the application."""
208
- return self.application.run()
209
-
210
- async def _run_async(self) -> None:
211
- """Run the application asynchronously."""
212
- return await self.application.run_async()
213
-
214
- @property
215
- def application(self) -> Application:
216
- """Get the application.
217
-
218
- :class:`.BaseComplexPrompt` requires :attr:`.BaseComplexPrompt._application` to be defined since this class
219
- doesn't implement :class:`~prompt_toolkit.layout.Layout` and :class:`~prompt_toolkit.application.Application`.
220
-
221
- Raises:
222
- NotImplementedError: When `self._application` is not defined.
223
- """
224
- if not self._application:
225
- raise NotImplementedError
226
- return self._application
227
-
228
- @application.setter
229
- def application(self, value: Application) -> None:
230
- self._application = value
231
-
232
- @property
233
- def height_offset(self) -> int:
234
- """int: Height offset to apply."""
235
- if not self._wrap_lines:
236
- return self._height_offset
237
- return self.extra_line_count + self._height_offset
238
-
239
- @property
240
- def total_message_length(self) -> int:
241
- """int: Total length of the message."""
242
- total_message_length = 0
243
- if self._qmark:
244
- total_message_length += len(self._qmark)
245
- total_message_length += 1 # Extra space if qmark is present
246
- total_message_length += len(str(self._message))
247
- total_message_length += 1 # Extra space between message and instruction
248
- total_message_length += len(str(self._instruction))
249
- if self._instruction:
250
- total_message_length += 1 # Extra space behind the instruction
251
- return total_message_length
252
-
253
- @property
254
- def extra_message_line_count(self) -> int:
255
- """int: Get the extra lines created caused by line wrapping.
256
-
257
- Minus 1 on the totoal message length as we only want the extra line.
258
- 24 // 24 will equal to 1 however we only want the value to be 1 when we have 25 char
259
- which will create an extra line.
260
- """
261
- term_width, _ = shutil.get_terminal_size()
262
- return (self.total_message_length - 1) // term_width
263
-
264
- @property
265
- def extra_long_instruction_line_count(self) -> int:
266
- """int: Get the extra lines created caused by line wrapping.
267
-
268
- See Also:
269
- :attr:`.BaseComplexPrompt.extra_message_line_count`
270
- """
271
- if self._long_instruction:
272
- term_width, _ = shutil.get_terminal_size()
273
- return (len(self._long_instruction) - 1) // term_width
274
- else:
275
- return 0
276
-
277
- @property
278
- def extra_line_count(self) -> int:
279
- """Get the extra lines created caused by line wrapping.
280
-
281
- Used mainly to calculate how much additional offset should be applied when getting
282
- the height.
283
-
284
- Returns:
285
- Total extra lines created due to line wrapping.
286
- """
287
- result = 0
288
-
289
- # message wrap
290
- result += self.extra_message_line_count
291
- # long instruction wrap
292
- result += self.extra_long_instruction_line_count
293
-
294
- return result
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/control.py DELETED
@@ -1,227 +0,0 @@
1
- """Contains the content control class :class:`.InquirerPyUIListControl`."""
2
- from abc import abstractmethod
3
- from dataclasses import asdict, dataclass
4
- from typing import Any, Callable, Dict, List, Optional, Tuple, cast
5
-
6
- from prompt_toolkit.layout.controls import FormattedTextControl
7
-
8
- from InquirerPy.exceptions import InvalidArgument, RequiredKeyNotFound
9
- from InquirerPy.separator import Separator
10
- from InquirerPy.utils import InquirerPyListChoices, InquirerPySessionResult
11
-
12
- __all__ = ["Choice", "InquirerPyUIListControl"]
13
-
14
-
15
- @dataclass
16
- class Choice:
17
- """Class to create choices for list type prompts.
18
-
19
- A simple dataclass that can be used as an alternate to using :class:`dict`
20
- when working with choices.
21
-
22
- Args:
23
- value: The value of the choice when user selects this choice.
24
- name: The value that should be presented to the user prior/after selection of the choice.
25
- This value is optional, if not provided, it will fallback to the string representation of `value`.
26
- enabled: Indicates if the choice should be pre-selected.
27
- This only has effects when the prompt has `multiselect` enabled.
28
- """
29
-
30
- value: Any
31
- name: Optional[str] = None
32
- enabled: bool = False
33
-
34
- def __post_init__(self):
35
- """Assign strinify value to name if not present."""
36
- if self.name is None:
37
- self.name = str(self.value)
38
-
39
-
40
- class InquirerPyUIListControl(FormattedTextControl):
41
- """A base class to create :class:`~prompt_toolkit.layout.UIControl` to display list type contents.
42
-
43
- Args:
44
- choices(InquirerPyListChoices): List of choices to display as the content.
45
- Can also be a callable or async callable that returns a list of choices.
46
- default: Default value, this will affect the cursor position.
47
- multiselect: Indicate if the current prompt has `multiselect` enabled.
48
- session_result: Current session result.
49
- """
50
-
51
- def __init__(
52
- self,
53
- choices: InquirerPyListChoices,
54
- default: Any = None,
55
- multiselect: bool = False,
56
- session_result: Optional[InquirerPySessionResult] = None,
57
- ) -> None:
58
- self._session_result = session_result or {}
59
- self._selected_choice_index: int = 0
60
- self._choice_func = None
61
- self._multiselect = multiselect
62
- self._default = (
63
- default
64
- if not isinstance(default, Callable)
65
- else cast(Callable, default)(self._session_result)
66
- )
67
- self._raw_choices = (
68
- choices
69
- if not isinstance(choices, Callable)
70
- else cast(Callable, choices)(self._session_result)
71
- )
72
- self._choices = self._get_choices(self._raw_choices, self._default)
73
- self._safety_check()
74
- self._format_choices()
75
- super().__init__(self._get_formatted_choices)
76
-
77
- def _get_choices(self, choices: List[Any], default: Any) -> List[Dict[str, Any]]:
78
- """Process the raw user input choices and format it into dictionary.
79
-
80
- Args:
81
- choices: List of chices to display.
82
- default: Default value, this will affect the :attr:`.InquirerPyUIListControl.selected_choice_index`
83
-
84
- Returns:
85
- List of choices.
86
-
87
- Raises:
88
- RequiredKeyNotFound: When the provided choice is missing the `name` or `value` key.
89
- """
90
- processed_choices: List[Dict[str, Any]] = []
91
- try:
92
- for index, choice in enumerate(choices, start=0):
93
- if isinstance(choice, dict):
94
- if choice["value"] == default:
95
- self.selected_choice_index = index
96
- processed_choices.append(
97
- {
98
- "name": str(choice["name"]),
99
- "value": choice["value"],
100
- "enabled": choice.get("enabled", False)
101
- if self._multiselect
102
- else False,
103
- }
104
- )
105
- elif isinstance(choice, Separator):
106
- if self.selected_choice_index == index:
107
- self.selected_choice_index = (
108
- self.selected_choice_index + 1
109
- ) % len(choices)
110
- processed_choices.append(
111
- {"name": str(choice), "value": choice, "enabled": False}
112
- )
113
- elif isinstance(choice, Choice):
114
- dict_choice = asdict(choice)
115
- if dict_choice["value"] == default:
116
- self.selected_choice_index = index
117
- if not self._multiselect:
118
- dict_choice["enabled"] = False
119
- processed_choices.append(dict_choice)
120
- else:
121
- if choice == default:
122
- self.selected_choice_index = index
123
- processed_choices.append(
124
- {"name": str(choice), "value": choice, "enabled": False}
125
- )
126
- except KeyError:
127
- raise RequiredKeyNotFound(
128
- "dictionary type of choice require a 'name' key and a 'value' key"
129
- )
130
- return processed_choices
131
-
132
- @property
133
- def selected_choice_index(self) -> int:
134
- """int: Current highlighted index."""
135
- return self._selected_choice_index
136
-
137
- @selected_choice_index.setter
138
- def selected_choice_index(self, value: int) -> None:
139
- self._selected_choice_index = value
140
-
141
- @property
142
- def choices(self) -> List[Dict[str, Any]]:
143
- """List[Dict[str, Any]]: Get all processed choices."""
144
- return self._choices
145
-
146
- @choices.setter
147
- def choices(self, value: List[Dict[str, Any]]) -> None:
148
- self._choices = value
149
-
150
- def _safety_check(self) -> None:
151
- """Validate processed choices.
152
-
153
- Check if the choices are empty or if it only contains :class:`~InquirerPy.separator.Separator`.
154
- """
155
- if not self.choices:
156
- raise InvalidArgument("argument choices cannot be empty")
157
- should_proceed: bool = False
158
- for choice in self.choices:
159
- if not isinstance(choice["value"], Separator):
160
- should_proceed = True
161
- break
162
- if not should_proceed:
163
- raise InvalidArgument(
164
- "argument choices should contain choices other than separator"
165
- )
166
-
167
- def _get_formatted_choices(self) -> List[Tuple[str, str]]:
168
- """Get all choices in formatted text format.
169
-
170
- Returns:
171
- List of choices in formatted text form.
172
- """
173
- display_choices = []
174
-
175
- for index, choice in enumerate(self.choices):
176
- if index == self.selected_choice_index:
177
- display_choices += self._get_hover_text(choice)
178
- else:
179
- display_choices += self._get_normal_text(choice)
180
- display_choices.append(("", "\n"))
181
- if display_choices:
182
- display_choices.pop()
183
- return display_choices
184
-
185
- def _format_choices(self) -> None:
186
- """Perform post processing on the choices.
187
-
188
- Additional customisation to the choices after :meth:`.InquirerPyUIListControl._get_choices` call.
189
- """
190
- pass
191
-
192
- @abstractmethod
193
- def _get_hover_text(self, choice) -> List[Tuple[str, str]]:
194
- """Generate the formatted text for hovered choice.
195
-
196
- Returns:
197
- Formatted text in list of tuple format.
198
- """
199
- pass
200
-
201
- @abstractmethod
202
- def _get_normal_text(self, choice) -> List[Tuple[str, str]]:
203
- """Generate the formatted text for non-hovered choices.
204
-
205
- Returns:
206
- Formatted text in list of tuple format.
207
- """
208
- pass
209
-
210
- @property
211
- def choice_count(self) -> int:
212
- """int: Total count of choices."""
213
- return len(self.choices)
214
-
215
- @property
216
- def selection(self) -> Dict[str, Any]:
217
- """Dict[str, Any]: Current selected choice."""
218
- return self.choices[self.selected_choice_index]
219
-
220
- @property
221
- def loading(self) -> bool:
222
- """bool: Indicate if the content control is loading."""
223
- return self._loading
224
-
225
- @loading.setter
226
- def loading(self, value: bool) -> None:
227
- self._loading = value
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/list.py DELETED
@@ -1,238 +0,0 @@
1
- """Contains the base class :class:`.BaseListPrompt` which can be used to create a prompt involving choices."""
2
- from abc import abstractmethod
3
- from typing import Any, Callable, List, Optional
4
-
5
- from prompt_toolkit.filters.base import Condition
6
- from prompt_toolkit.keys import Keys
7
-
8
- from InquirerPy.base.complex import BaseComplexPrompt
9
- from InquirerPy.base.control import InquirerPyUIListControl
10
- from InquirerPy.separator import Separator
11
- from InquirerPy.utils import (
12
- InquirerPyKeybindings,
13
- InquirerPyMessage,
14
- InquirerPySessionResult,
15
- InquirerPyStyle,
16
- InquirerPyValidate,
17
- )
18
-
19
-
20
- class BaseListPrompt(BaseComplexPrompt):
21
- """A base class to create a complex prompt involving choice selections (i.e. list) using `prompt_toolkit` Application.
22
-
23
- Note:
24
- This class does not create :class:`~prompt_toolkit.layout.Layout` nor :class:`~prompt_toolkit.application.Application`,
25
- it only contains the necessary attributes and helper functions to be consumed.
26
-
27
- See Also:
28
- :class:`~InquirerPy.prompts.list.ListPrompt`
29
- :class:`~InquirerPy.prompts.fuzzy.FuzzyPrompt`
30
- """
31
-
32
- def __init__(
33
- self,
34
- message: InquirerPyMessage,
35
- style: Optional[InquirerPyStyle] = None,
36
- vi_mode: bool = False,
37
- qmark: str = "?",
38
- amark: str = "?",
39
- instruction: str = "",
40
- long_instruction: str = "",
41
- border: bool = False,
42
- transformer: Optional[Callable[[Any], Any]] = None,
43
- filter: Optional[Callable[[Any], Any]] = None,
44
- validate: Optional[InquirerPyValidate] = None,
45
- invalid_message: str = "Invalid input",
46
- multiselect: bool = False,
47
- keybindings: Optional[InquirerPyKeybindings] = None,
48
- cycle: bool = True,
49
- wrap_lines: bool = True,
50
- raise_keyboard_interrupt: bool = True,
51
- mandatory: bool = True,
52
- mandatory_message: str = "Mandatory prompt",
53
- session_result: Optional[InquirerPySessionResult] = None,
54
- ) -> None:
55
- super().__init__(
56
- message=message,
57
- style=style,
58
- border=border,
59
- vi_mode=vi_mode,
60
- qmark=qmark,
61
- amark=amark,
62
- transformer=transformer,
63
- filter=filter,
64
- invalid_message=invalid_message,
65
- validate=validate,
66
- instruction=instruction,
67
- long_instruction=long_instruction,
68
- wrap_lines=wrap_lines,
69
- raise_keyboard_interrupt=raise_keyboard_interrupt,
70
- mandatory=mandatory,
71
- mandatory_message=mandatory_message,
72
- session_result=session_result,
73
- )
74
-
75
- self._content_control: InquirerPyUIListControl
76
- self._multiselect = multiselect
77
- self._is_multiselect = Condition(lambda: self._multiselect)
78
- self._cycle = cycle
79
-
80
- if not keybindings:
81
- keybindings = {}
82
-
83
- self.kb_maps = {
84
- "down": [
85
- {"key": "down"},
86
- {"key": "c-n", "filter": ~self._is_vim_edit},
87
- {"key": "j", "filter": self._is_vim_edit},
88
- ],
89
- "up": [
90
- {"key": "up"},
91
- {"key": "c-p", "filter": ~self._is_vim_edit},
92
- {"key": "k", "filter": self._is_vim_edit},
93
- ],
94
- "toggle": [
95
- {"key": "space"},
96
- ],
97
- "toggle-down": [
98
- {"key": Keys.Tab},
99
- ],
100
- "toggle-up": [
101
- {"key": Keys.BackTab},
102
- ],
103
- "toggle-all": [
104
- {"key": "alt-r"},
105
- {"key": "c-r"},
106
- ],
107
- "toggle-all-true": [
108
- {"key": "alt-a"},
109
- {"key": "c-a"},
110
- ],
111
- "toggle-all-false": [],
112
- **keybindings,
113
- }
114
-
115
- self.kb_func_lookup = {
116
- "down": [{"func": self._handle_down}],
117
- "up": [{"func": self._handle_up}],
118
- "toggle": [{"func": self._handle_toggle_choice}],
119
- "toggle-down": [
120
- {"func": self._handle_toggle_choice},
121
- {"func": self._handle_down},
122
- ],
123
- "toggle-up": [
124
- {"func": self._handle_toggle_choice},
125
- {"func": self._handle_up},
126
- ],
127
- "toggle-all": [{"func": self._handle_toggle_all}],
128
- "toggle-all-true": [{"func": self._handle_toggle_all, "args": [True]}],
129
- "toggle-all-false": [{"func": self._handle_toggle_all, "args": [False]}],
130
- }
131
-
132
- @property
133
- def content_control(self) -> InquirerPyUIListControl:
134
- """Get the content controller object.
135
-
136
- Needs to be an instance of :class:`~InquirerPy.base.control.InquirerPyUIListControl`.
137
-
138
- Each :class:`.BaseComplexPrompt` requires a `content_control` to display custom
139
- contents for the prompt.
140
-
141
- Raises:
142
- NotImplementedError: When `self._content_control` is not found.
143
- """
144
- if not self._content_control:
145
- raise NotImplementedError
146
- return self._content_control
147
-
148
- @content_control.setter
149
- def content_control(self, value: InquirerPyUIListControl) -> None:
150
- self._content_control = value
151
-
152
- @property
153
- def result_name(self) -> Any:
154
- """Get the result value that should be printed to the terminal.
155
-
156
- In multiselect scenario, return result as a list.
157
- """
158
- if self._multiselect:
159
- return [choice["name"] for choice in self.selected_choices]
160
- else:
161
- try:
162
- return self.content_control.selection["name"]
163
- except IndexError:
164
- return ""
165
-
166
- @property
167
- def result_value(self) -> Any:
168
- """Get the result value that should return to the user.
169
-
170
- In multiselect scenario, return result as a list.
171
- """
172
- if self._multiselect:
173
- return [choice["value"] for choice in self.selected_choices]
174
- else:
175
- try:
176
- return self.content_control.selection["value"]
177
- except IndexError:
178
- return ""
179
-
180
- @property
181
- def selected_choices(self) -> List[Any]:
182
- """List[Any]: Get all user selected choices."""
183
-
184
- def filter_choice(choice):
185
- return not isinstance(choice, Separator) and choice["enabled"]
186
-
187
- return list(filter(filter_choice, self.content_control.choices))
188
-
189
- def _handle_down(self, _) -> bool:
190
- """Handle event when user attempts to move down.
191
-
192
- Returns:
193
- Boolean indicating if the action hits the cap.
194
- """
195
- if self._cycle:
196
- self.content_control.selected_choice_index = (
197
- self.content_control.selected_choice_index + 1
198
- ) % self.content_control.choice_count
199
- return False
200
- else:
201
- self.content_control.selected_choice_index += 1
202
- if (
203
- self.content_control.selected_choice_index
204
- >= self.content_control.choice_count
205
- ):
206
- self.content_control.selected_choice_index = (
207
- self.content_control.choice_count - 1
208
- )
209
- return True
210
- return False
211
-
212
- def _handle_up(self, _) -> bool:
213
- """Handle event when user attempts to move up.
214
-
215
- Returns:
216
- Boolean indicating if the action hits the cap.
217
- """
218
- if self._cycle:
219
- self.content_control.selected_choice_index = (
220
- self.content_control.selected_choice_index - 1
221
- ) % self.content_control.choice_count
222
- return False
223
- else:
224
- self.content_control.selected_choice_index -= 1
225
- if self.content_control.selected_choice_index < 0:
226
- self.content_control.selected_choice_index = 0
227
- return True
228
- return False
229
-
230
- @abstractmethod
231
- def _handle_toggle_choice(self, event) -> None:
232
- """Handle event when user attempting to toggle the state of the chocie."""
233
- pass
234
-
235
- @abstractmethod
236
- def _handle_toggle_all(self, event, value: bool) -> None:
237
- """Handle event when user attempting to alter the state of all choices."""
238
- pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/base/simple.py DELETED
@@ -1,378 +0,0 @@
1
- """Contains the base class :class:`.BaseSimplePrompt`."""
2
- import os
3
- import re
4
- from abc import ABC, abstractmethod
5
- from typing import (
6
- TYPE_CHECKING,
7
- Any,
8
- Callable,
9
- Dict,
10
- List,
11
- Optional,
12
- Tuple,
13
- Union,
14
- cast,
15
- )
16
-
17
- from prompt_toolkit.enums import EditingMode
18
- from prompt_toolkit.filters.base import Condition, FilterOrBool
19
- from prompt_toolkit.key_binding.key_bindings import KeyBindings, KeyHandlerCallable
20
- from prompt_toolkit.keys import Keys
21
- from prompt_toolkit.styles.style import Style
22
- from prompt_toolkit.validation import Validator
23
-
24
- from InquirerPy.enum import INQUIRERPY_KEYBOARD_INTERRUPT
25
- from InquirerPy.exceptions import RequiredKeyNotFound
26
- from InquirerPy.utils import (
27
- InquirerPyMessage,
28
- InquirerPySessionResult,
29
- InquirerPyStyle,
30
- InquirerPyValidate,
31
- get_style,
32
- )
33
-
34
- if TYPE_CHECKING:
35
- from prompt_toolkit.key_binding.key_processor import KeyPressEvent
36
-
37
-
38
- class BaseSimplePrompt(ABC):
39
- """The base class to create a simple terminal input prompt.
40
-
41
- Note:
42
- No actual :class:`~prompt_toolkit.application.Application` is created by this class.
43
- This class only creates some common interface and attributes that can be easily used
44
- by `prompt_toolkit`.
45
-
46
- To have a functional prompt, you'll at least have to implement the :meth:`.BaseSimplePrompt._run`
47
- and :meth:`.BaseSimplePrompt._get_prompt_message`.
48
-
49
- See Also:
50
- :class:`~InquirerPy.prompts.input.InputPrompt`
51
- """
52
-
53
- def __init__(
54
- self,
55
- message: InquirerPyMessage,
56
- style: Optional[InquirerPyStyle] = None,
57
- vi_mode: bool = False,
58
- qmark: str = "?",
59
- amark: str = "?",
60
- instruction: str = "",
61
- validate: Optional[InquirerPyValidate] = None,
62
- invalid_message: str = "Invalid input",
63
- transformer: Optional[Callable[[Any], Any]] = None,
64
- filter: Optional[Callable[[Any], Any]] = None,
65
- default: Any = "",
66
- wrap_lines: bool = True,
67
- raise_keyboard_interrupt: bool = True,
68
- mandatory: bool = True,
69
- mandatory_message: str = "Mandatory prompt",
70
- session_result: Optional[InquirerPySessionResult] = None,
71
- ) -> None:
72
- self._mandatory = mandatory
73
- self._mandatory_message = mandatory_message
74
- self._result = session_result or {}
75
- self._message = (
76
- message
77
- if not isinstance(message, Callable)
78
- else cast(Callable, message)(self._result)
79
- )
80
- self._instruction = instruction
81
- self._default = (
82
- default if not isinstance(default, Callable) else default(self._result)
83
- )
84
- self._style = Style.from_dict(style.dict if style else get_style().dict)
85
- self._qmark = qmark
86
- self._amark = amark
87
- self._status = {"answered": False, "result": None, "skipped": False}
88
- self._kb = KeyBindings()
89
- self._lexer = "class:input"
90
- self._transformer = transformer
91
- self._filter = filter
92
- self._wrap_lines = wrap_lines
93
- self._editing_mode = (
94
- EditingMode.VI
95
- if vi_mode or bool(os.getenv("INQUIRERPY_VI_MODE", False))
96
- else EditingMode.EMACS
97
- )
98
- if isinstance(validate, Validator):
99
- self._validator = validate
100
- else:
101
- self._validator = Validator.from_callable(
102
- validate if validate else lambda _: True,
103
- invalid_message,
104
- move_cursor_to_end=True,
105
- )
106
- self._raise_kbi = not os.getenv(
107
- "INQUIRERPY_NO_RAISE_KBI", not raise_keyboard_interrupt
108
- )
109
- self._is_rasing_kbi = Condition(lambda: self._raise_kbi)
110
-
111
- self._kb_maps = {
112
- "answer": [{"key": Keys.Enter}],
113
- "interrupt": [
114
- {"key": "c-c", "filter": self._is_rasing_kbi},
115
- {"key": "c-d", "filter": ~self._is_rasing_kbi},
116
- ],
117
- "skip": [{"key": "c-z"}, {"key": "c-c", "filter": ~self._is_rasing_kbi}],
118
- }
119
- self._kb_func_lookup = {
120
- "answer": [{"func": self._handle_enter}],
121
- "interrupt": [{"func": self._handle_interrupt}],
122
- "skip": [{"func": self._handle_skip}],
123
- }
124
-
125
- def _keybinding_factory(self):
126
- """Register all keybindings in `self._kb_maps`.
127
-
128
- It's required to call this function at the end of prompt constructor if
129
- it inherits from :class:`~InquirerPy.base.simple.BaseSimplePrompt` or
130
- :class:`~InquirerPy.base.complex.BaseComplexPrompt`.
131
- """
132
-
133
- def _factory(keys, filter, action):
134
- if action not in self.kb_func_lookup:
135
- raise RequiredKeyNotFound(f"keybinding action {action} not found")
136
- if not isinstance(keys, list):
137
- keys = [keys]
138
-
139
- @self.register_kb(*keys, filter=filter)
140
- def _(event):
141
- for method in self.kb_func_lookup[action]:
142
- method["func"](event, *method.get("args", []))
143
-
144
- for key, item in self.kb_maps.items():
145
- if not isinstance(item, list):
146
- item = [item]
147
- for kb in item:
148
- _factory(kb["key"], kb.get("filter", Condition(lambda: True)), key)
149
-
150
- @abstractmethod
151
- def _set_error(self, message: str) -> None:
152
- """Set the error message for the prompt.
153
-
154
- Args:
155
- message: Error message to set.
156
- """
157
- pass
158
-
159
- def _handle_skip(self, event: Optional["KeyPressEvent"]) -> None:
160
- """Handle the event when attempting to skip a prompt.
161
-
162
- Skip the prompt if the `_mandatory` field is False, otherwise
163
- show an error message that the prompt cannot be skipped.
164
- """
165
- if not self._mandatory:
166
- self.status["answered"] = True
167
- self.status["skipped"] = True
168
- self.status["result"] = None
169
- if event:
170
- event.app.exit(result=None)
171
- else:
172
- self._set_error(message=self._mandatory_message)
173
-
174
- def _handle_interrupt(self, event: Optional["KeyPressEvent"]) -> None:
175
- """Handle the event when a KeyboardInterrupt signal is sent."""
176
- self.status["answered"] = True
177
- self.status["result"] = INQUIRERPY_KEYBOARD_INTERRUPT
178
- self.status["skipped"] = True
179
- if event:
180
- event.app.exit(result=INQUIRERPY_KEYBOARD_INTERRUPT)
181
-
182
- @abstractmethod
183
- def _handle_enter(self, event: Optional["KeyPressEvent"]) -> None:
184
- """Handle the event when user attempt to answer the question."""
185
- pass
186
-
187
- @property
188
- def status(self) -> Dict[str, Any]:
189
- """Dict[str, Any]: Get current prompt status.
190
-
191
- The status contains 3 keys: "answered" and "result".
192
- answered: If the current prompt is answered.
193
- result: The result of the user answer.
194
- skipped: If the prompt is skipped.
195
- """
196
- return self._status
197
-
198
- @status.setter
199
- def status(self, value) -> None:
200
- self._status = value
201
-
202
- def register_kb(
203
- self, *keys: Union[Keys, str], filter: FilterOrBool = True, **kwargs
204
- ) -> Callable[[KeyHandlerCallable], KeyHandlerCallable]:
205
- """Keybinding registration decorator.
206
-
207
- This decorator wraps around the :meth:`prompt_toolkit.key_binding.KeyBindings.add` with
208
- added feature to process `alt` realted keybindings.
209
-
210
- By default, `prompt_toolkit` doesn't process `alt` related keybindings,
211
- it requires `alt-ANY` to `escape` + `ANY`.
212
-
213
- Args:
214
- keys: The keys to bind that can trigger the function.
215
- filter: :class:`~prompt_toolkit.filter.Condition` to indicate if this keybinding should be active.
216
-
217
- Returns:
218
- A decorator that should be applied to the function thats intended to be active when the keys
219
- are pressed.
220
-
221
- Examples:
222
- >>> @self.register_kb("alt-j")
223
- ... def test(event):
224
- ... pass
225
- """
226
- alt_pattern = re.compile(r"^alt-(.*)")
227
-
228
- def decorator(func: KeyHandlerCallable) -> KeyHandlerCallable:
229
- formatted_keys = []
230
- for key in keys:
231
- match = alt_pattern.match(key)
232
- if match:
233
- formatted_keys.append("escape")
234
- formatted_keys.append(match.group(1))
235
- else:
236
- formatted_keys.append(key)
237
-
238
- @self._kb.add(*formatted_keys, filter=filter, **kwargs)
239
- def executable(event) -> None:
240
- func(event)
241
-
242
- return executable
243
-
244
- return decorator
245
-
246
- @abstractmethod
247
- def _get_prompt_message(
248
- self, pre_answer: Tuple[str, str], post_answer: Tuple[str, str]
249
- ) -> List[Tuple[str, str]]:
250
- """Get the question message in formatted text form to display in the prompt.
251
-
252
- This function is mainly used to render the question message dynamically based
253
- on the current status (answered or not answered) of the prompt.
254
-
255
- Note:
256
- The function requires implementation when inheriting :class:`.BaseSimplePrompt`.
257
- You should call `super()._get_prompt_message(pre_answer, post_answer)` in
258
- the implemented `_get_prompt_message`.
259
-
260
- Args:
261
- pre_answer: The message to display before the question is answered.
262
- post_answer: The information to display after the question is answered.
263
-
264
- Returns:
265
- Formatted text in list of tuple format.
266
- """
267
- display_message = []
268
- if self.status["skipped"]:
269
- display_message.append(("class:skipped", self._qmark))
270
- display_message.append(
271
- ("class:skipped", "%s%s " % (" " if self._qmark else "", self._message))
272
- )
273
- elif self.status["answered"]:
274
- display_message.append(("class:answermark", self._amark))
275
- display_message.append(
276
- (
277
- "class:answered_question",
278
- "%s%s" % (" " if self._amark else "", self._message),
279
- )
280
- )
281
- display_message.append(
282
- post_answer
283
- if not self._transformer
284
- else (
285
- "class:answer",
286
- " %s" % self._transformer(self.status["result"]),
287
- )
288
- )
289
- else:
290
- display_message.append(("class:questionmark", self._qmark))
291
- display_message.append(
292
- (
293
- "class:question",
294
- "%s%s" % (" " if self._qmark else "", self._message),
295
- )
296
- )
297
- display_message.append(pre_answer)
298
- return display_message
299
-
300
- @abstractmethod
301
- def _run(self) -> Any:
302
- """Abstractmethod to enforce a run function is implemented.
303
-
304
- All prompt instance requires a `_run` call to initialise and run an instance of
305
- `PromptSession` or `Application`.
306
- """
307
- pass
308
-
309
- @abstractmethod
310
- async def _run_async(self) -> Any:
311
- """Abstractmethod to enforce a run function is implemented.
312
-
313
- All prompt instance requires a `_run_async` call to initialise and run an instance of
314
- `PromptSession` or `Application`.
315
- """
316
- pass
317
-
318
- def execute(self, raise_keyboard_interrupt: Optional[bool] = None) -> Any:
319
- """Run the prompt and get the result.
320
-
321
- Args:
322
- raise_keyboard_interrupt: **Deprecated**. Set this parameter on the prompt initialisation instead.
323
-
324
- Returns:
325
- Value of the user answer. Types varies depending on the prompt.
326
-
327
- Raises:
328
- KeyboardInterrupt: When `ctrl-c` is pressed and `raise_keyboard_interrupt` is True.
329
- """
330
- result = self._run()
331
- if raise_keyboard_interrupt is not None:
332
- self._raise_kbi = not os.getenv(
333
- "INQUIRERPY_NO_RAISE_KBI", not raise_keyboard_interrupt
334
- )
335
- if result == INQUIRERPY_KEYBOARD_INTERRUPT:
336
- raise KeyboardInterrupt
337
- if not self._filter:
338
- return result
339
- return self._filter(result)
340
-
341
- async def execute_async(self) -> None:
342
- """Run the prompt asynchronously and get the result.
343
-
344
- Returns:
345
- Value of the user answer. Types varies depending on the prompt.
346
-
347
- Raises:
348
- KeyboardInterrupt: When `ctrl-c` is pressed and `raise_keyboard_interrupt` is True.
349
- """
350
- result = await self._run_async()
351
- if result == INQUIRERPY_KEYBOARD_INTERRUPT:
352
- raise KeyboardInterrupt
353
- if not self._filter:
354
- return result
355
- return self._filter(result)
356
-
357
- @property
358
- def instruction(self) -> str:
359
- """str: Instruction to display next to question."""
360
- return self._instruction
361
-
362
- @property
363
- def kb_maps(self) -> Dict[str, Any]:
364
- """Dict[str, Any]: Keybinding mappings."""
365
- return self._kb_maps
366
-
367
- @kb_maps.setter
368
- def kb_maps(self, value: Dict[str, Any]) -> None:
369
- self._kb_maps = {**self._kb_maps, **value}
370
-
371
- @property
372
- def kb_func_lookup(self) -> Dict[str, Any]:
373
- """Dict[str, Any]: Keybinding function lookup mappings.."""
374
- return self._kb_func_lookup
375
-
376
- @kb_func_lookup.setter
377
- def kb_func_lookup(self, value: Dict[str, Any]) -> None:
378
- self._kb_func_lookup = {**self._kb_func_lookup, **value}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/__init__.py DELETED
@@ -1 +0,0 @@
1
- from .spinner import SpinnerWindow
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/__init__.cpython-312.pyc DELETED
Binary file (256 Bytes)
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/instruction.cpython-312.pyc DELETED
Binary file (1.96 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/message.cpython-312.pyc DELETED
Binary file (2.01 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/spinner.cpython-312.pyc DELETED
Binary file (5.49 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/__pycache__/validation.cpython-312.pyc DELETED
Binary file (2.71 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/instruction.py DELETED
@@ -1,38 +0,0 @@
1
- """Module contains :class:`.InstructionWindow` which can be used to display long instructions."""
2
-
3
- from typing import TYPE_CHECKING
4
-
5
- from prompt_toolkit.layout.containers import ConditionalContainer, Window
6
- from prompt_toolkit.layout.controls import FormattedTextControl
7
-
8
- if TYPE_CHECKING:
9
- from prompt_toolkit.filters.base import FilterOrBool
10
- from prompt_toolkit.formatted_text.base import AnyFormattedText
11
-
12
-
13
- class InstructionWindow(ConditionalContainer):
14
- """Conditional `prompt_toolkit` :class:`~prompt_toolkit.layout.Window` that displays long instructions.
15
-
16
- Args:
17
- message: Long instructions to display.
18
- filter: Condition to display the instruction window.
19
- """
20
-
21
- def __init__(self, message: str, filter: "FilterOrBool", **kwargs) -> None:
22
- self._message = message
23
- super().__init__(
24
- Window(
25
- FormattedTextControl(text=self._get_message),
26
- dont_extend_height=True,
27
- **kwargs
28
- ),
29
- filter=filter,
30
- )
31
-
32
- def _get_message(self) -> "AnyFormattedText":
33
- """Get long instruction to display.
34
-
35
- Returns:
36
- FormattedText in list of tuple format.
37
- """
38
- return [("class:long_instruction", self._message)]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/message.py DELETED
@@ -1,42 +0,0 @@
1
- """Module contains the main message window :class:`~prompt_toolkit.container.Container`."""
2
-
3
- from typing import TYPE_CHECKING
4
-
5
- from prompt_toolkit.layout.containers import ConditionalContainer, Window
6
- from prompt_toolkit.layout.controls import FormattedTextControl
7
- from prompt_toolkit.layout.dimension import LayoutDimension
8
-
9
- if TYPE_CHECKING:
10
- from prompt_toolkit.filters.base import FilterOrBool
11
- from prompt_toolkit.formatted_text.base import AnyFormattedText
12
-
13
-
14
- class MessageWindow(ConditionalContainer):
15
- """Main window to display question to the user.
16
-
17
- Args:
18
- message: The message to display in the terminal.
19
- filter: Condition that this message window should be displayed.
20
- Use a loading condition to only display this window while its not loading.
21
- wrap_lines: Enable line wrapping if the message is too long.
22
- show_cursor: Display cursor.
23
- """
24
-
25
- def __init__(
26
- self,
27
- message: "AnyFormattedText",
28
- filter: "FilterOrBool",
29
- wrap_lines: bool = True,
30
- show_cursor: bool = True,
31
- **kwargs
32
- ) -> None:
33
- super().__init__(
34
- content=Window(
35
- height=LayoutDimension.exact(1) if not wrap_lines else None,
36
- content=FormattedTextControl(message, show_cursor=show_cursor),
37
- wrap_lines=wrap_lines,
38
- dont_extend_height=True,
39
- **kwargs
40
- ),
41
- filter=filter,
42
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/spinner.py DELETED
@@ -1,108 +0,0 @@
1
- """Module contains spinner related resources.
2
-
3
- Note:
4
- The spinner is not a standalone spinner to run in the terminal
5
- but rather a `prompt_toolkit` :class:`~prompt_toolkit.layout.Window` that displays a spinner.
6
-
7
- Use library such as `yaspin <https://github.com/pavdmyt/yaspin>`_ if you need a plain spinner.
8
- """
9
- import asyncio
10
- from typing import TYPE_CHECKING, Callable, List, NamedTuple, Optional, Tuple, Union
11
-
12
- from prompt_toolkit.filters.utils import to_filter
13
- from prompt_toolkit.layout.containers import ConditionalContainer, Window
14
- from prompt_toolkit.layout.controls import FormattedTextControl
15
-
16
- if TYPE_CHECKING:
17
- from prompt_toolkit.filters.base import Filter
18
-
19
- __all__ = ["SPINNERS", "SpinnerWindow"]
20
-
21
-
22
- class SPINNERS(NamedTuple):
23
- """Presets of spinner patterns.
24
-
25
- See Also:
26
- https://github.com/pavdmyt/yaspin/blob/master/yaspin/data/spinners.json
27
-
28
- This only contains some basic ones thats ready to use. For more patterns, checkout the
29
- URL above.
30
-
31
- Examples:
32
- >>> from InquirerPy import inquirer
33
- >>> from InquirerPy.spinner import SPINNERS
34
- >>> inquirer.select(message="", choices=lambda _: [1, 2, 3], spinner_pattern=SPINNERS.dots)
35
- """
36
-
37
- dots = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
38
- dots2 = ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"]
39
- line = ["-", "\\", "|", "/"]
40
- line2 = ["⠂", "-", "–", "—", "–", "-"]
41
- pipe = ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"]
42
- star = ["✶", "✸", "✹", "✺", "✹", "✷"]
43
- star2 = ["+", "x", "*"]
44
- flip = ["_", "_", "_", "-", "`", "`", "'", "´", "-", "_", "_", "_"]
45
- hamburger = ["☱", "☲", "☴"]
46
- grow_vertical = ["▁", "▃", "▄", "▅", "▆", "▇", "▆", "▅", "▄", "▃"]
47
- grow_horizontal = ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "▊", "▋", "▌", "▍", "▎"]
48
- box_bounce = ["▖", "▘", "▝", "▗"]
49
- triangle = ["◢", "◣", "◤", "◥"]
50
- arc = ["◜", "◠", "◝", "◞", "◡", "◟"]
51
- circle = ["◡", "⊙", "◠"]
52
-
53
-
54
- class SpinnerWindow(ConditionalContainer):
55
- """Conditional `prompt_toolkit` :class:`~prompt_toolkit.layout.Window` that displays a spinner.
56
-
57
- Args:
58
- loading: A :class:`~prompt_toolkit.filters.Condition` to indicate if the spinner should be visible.
59
- redraw: A redraw function (i.e. :meth:`~prompt_toolkit.application.Application.invalidate`) to refresh the UI.
60
- pattern: List of pattern to display as the spinner.
61
- delay: Spinner refresh frequency.
62
- text: Loading text to display.
63
- """
64
-
65
- def __init__(
66
- self,
67
- loading: "Filter",
68
- redraw: Callable[[], None],
69
- pattern: Optional[Union[List[str], SPINNERS]] = None,
70
- delay: float = 0.1,
71
- text: str = "",
72
- ) -> None:
73
- self._loading = to_filter(loading)
74
- self._spinning = False
75
- self._redraw = redraw
76
- self._pattern = pattern or SPINNERS.line
77
- self._char = self._pattern[0]
78
- self._delay = delay
79
- self._text = text or "Loading ..."
80
-
81
- super().__init__(
82
- content=Window(content=FormattedTextControl(text=self._get_text)),
83
- filter=self._loading,
84
- )
85
-
86
- def _get_text(self) -> List[Tuple[str, str]]:
87
- """Dynamically get the text for the :class:`~prompt_toolkit.layout.Window`.
88
-
89
- Returns:
90
- Formatted text.
91
- """
92
- return [
93
- ("class:spinner_pattern", self._char),
94
- ("", " "),
95
- ("class:spinner_text", self._text),
96
- ]
97
-
98
- async def start(self) -> None:
99
- """Start the spinner."""
100
- if self._spinning:
101
- return
102
- self._spinning = True
103
- while self._loading():
104
- for char in self._pattern:
105
- await asyncio.sleep(self._delay)
106
- self._char = char
107
- self._redraw()
108
- self._spinning = False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/containers/validation.py DELETED
@@ -1,60 +0,0 @@
1
- """Module contains :class:`.ValidationWindow` which can be used to display error."""
2
-
3
- from typing import Optional
4
-
5
- from prompt_toolkit.filters.base import FilterOrBool
6
- from prompt_toolkit.formatted_text.base import AnyFormattedText
7
- from prompt_toolkit.layout.containers import ConditionalContainer, Float, Window
8
- from prompt_toolkit.layout.controls import FormattedTextControl
9
-
10
-
11
- class ValidationWindow(ConditionalContainer):
12
- """Conditional `prompt_toolkit` :class:`~prompt_toolkit.layout.Window` that displays error.
13
-
14
- Args:
15
- invalid_message: Error message to display when error occured.
16
- filter: Condition to display the error window.
17
- """
18
-
19
- def __init__(
20
- self, invalid_message: AnyFormattedText, filter: FilterOrBool, **kwargs
21
- ) -> None:
22
- super().__init__(
23
- Window(
24
- FormattedTextControl(invalid_message), dont_extend_height=True, **kwargs
25
- ),
26
- filter=filter,
27
- )
28
-
29
-
30
- class ValidationFloat(Float):
31
- """:class:`~prompt_toolkit.layout.Float` wrapper around :class:`.ValidationWindow`.
32
-
33
- Args:
34
- invalid_message: Error message to display when error occured.
35
- filter: Condition to display the error window.
36
- left: Distance to left.
37
- right: Distance to right.
38
- bottom: Distance to bottom.
39
- top: Distance to top.
40
- """
41
-
42
- def __init__(
43
- self,
44
- invalid_message: AnyFormattedText,
45
- filter: FilterOrBool,
46
- left: Optional[int] = None,
47
- right: Optional[int] = None,
48
- bottom: Optional[int] = None,
49
- top: Optional[int] = None,
50
- **kwargs
51
- ) -> None:
52
- super().__init__(
53
- content=ValidationWindow(
54
- invalid_message=invalid_message, filter=filter, **kwargs
55
- ),
56
- left=left,
57
- right=right,
58
- bottom=bottom,
59
- top=top,
60
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/enum.py DELETED
@@ -1,7 +0,0 @@
1
- """Module contains common constants."""
2
- INQUIRERPY_KEYBOARD_INTERRUPT: str = "INQUIRERPY_KEYBOARD_INTERRUPT"
3
-
4
- INQUIRERPY_POINTER_SEQUENCE: str = "\u276f"
5
- INQUIRERPY_FILL_CIRCLE_SEQUENCE: str = "\u25c9"
6
- INQUIRERPY_EMPTY_CIRCLE_SEQUENCE: str = "\u25cb"
7
- INQUIRERPY_QMARK_SEQUENCE: str = "\u003f"
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/exceptions.py DELETED
@@ -1,25 +0,0 @@
1
- """Module contains exceptions that will be raised by `InquirerPy`."""
2
-
3
-
4
- class InvalidArgument(Exception):
5
- """Provided argument is invalid.
6
-
7
- Args:
8
- message: Exception message.
9
- """
10
-
11
- def __init__(self, message: str = "invalid argument"):
12
- self._message = message
13
- super().__init__(self._message)
14
-
15
-
16
- class RequiredKeyNotFound(Exception):
17
- """Missing required keys in dictionary.
18
-
19
- Args:
20
- message: Exception message.
21
- """
22
-
23
- def __init__(self, message="required key not found"):
24
- self.message = message
25
- super().__init__(self.message)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/inquirer.py DELETED
@@ -1,17 +0,0 @@
1
- """Servers as another entry point for `InquirerPy`.
2
-
3
- See Also:
4
- :ref:`index:Alternate Syntax`.
5
-
6
- `inquirer` directly interact with individual prompt classes. It’s more flexible, easier to customise and also provides IDE type hintings/completions.
7
- """
8
- from InquirerPy.prompts import CheckboxPrompt as checkbox
9
- from InquirerPy.prompts import ConfirmPrompt as confirm
10
- from InquirerPy.prompts import ExpandPrompt as expand
11
- from InquirerPy.prompts import FilePathPrompt as filepath
12
- from InquirerPy.prompts import FuzzyPrompt as fuzzy
13
- from InquirerPy.prompts import InputPrompt as text
14
- from InquirerPy.prompts import ListPrompt as select
15
- from InquirerPy.prompts import NumberPrompt as number
16
- from InquirerPy.prompts import RawlistPrompt as rawlist
17
- from InquirerPy.prompts import SecretPrompt as secret
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__init__.py DELETED
@@ -1,11 +0,0 @@
1
- """Module contains import of all prompts classes."""
2
- from InquirerPy.prompts.checkbox import CheckboxPrompt
3
- from InquirerPy.prompts.confirm import ConfirmPrompt
4
- from InquirerPy.prompts.expand import ExpandPrompt
5
- from InquirerPy.prompts.filepath import FilePathPrompt
6
- from InquirerPy.prompts.fuzzy import FuzzyPrompt
7
- from InquirerPy.prompts.input import InputPrompt
8
- from InquirerPy.prompts.list import ListPrompt
9
- from InquirerPy.prompts.number import NumberPrompt
10
- from InquirerPy.prompts.rawlist import RawlistPrompt
11
- from InquirerPy.prompts.secret import SecretPrompt
 
 
 
 
 
 
 
 
 
 
 
 
myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__pycache__/__init__.cpython-312.pyc DELETED
Binary file (905 Bytes)
 
myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__pycache__/checkbox.cpython-312.pyc DELETED
Binary file (11.7 kB)
 
myvenv/lib/python3.12/site-packages/InquirerPy/prompts/__pycache__/confirm.cpython-312.pyc DELETED
Binary file (10.5 kB)