This view is limited to 50 files because it contains too many changes. See the raw diff here.
Files changed (50) hide show
  1. .venv/.gitignore +0 -1
  2. .venv/.lock +0 -0
  3. .venv/CACHEDIR.TAG +0 -1
  4. .venv/bin/activate +0 -130
  5. .venv/bin/activate.bat +0 -71
  6. .venv/bin/activate.csh +0 -76
  7. .venv/bin/activate.fish +0 -124
  8. .venv/bin/activate.nu +0 -102
  9. .venv/bin/activate.ps1 +0 -82
  10. .venv/bin/activate_this.py +0 -59
  11. .venv/bin/deactivate.bat +0 -39
  12. .venv/bin/dotenv +0 -10
  13. .venv/bin/fastapi +0 -10
  14. .venv/bin/hf +0 -10
  15. .venv/bin/httpx +0 -10
  16. .venv/bin/huggingface-cli +0 -10
  17. .venv/bin/jsonschema +0 -10
  18. .venv/bin/markdown-it +0 -10
  19. .venv/bin/mcp +0 -10
  20. .venv/bin/pydoc.bat +0 -22
  21. .venv/bin/pygmentize +0 -10
  22. .venv/bin/python +0 -0
  23. .venv/bin/python3 +0 -0
  24. .venv/bin/python3.12 +0 -0
  25. .venv/bin/tiny-agents +0 -10
  26. .venv/bin/tqdm +0 -10
  27. .venv/bin/typer +0 -10
  28. .venv/bin/uvicorn +0 -10
  29. .venv/lib/python3.12/site-packages/__pycache__/_virtualenv.cpython-312.pyc +0 -0
  30. .venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc +0 -3
  31. .venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -3
  32. .venv/lib/python3.12/site-packages/_virtualenv.pth +0 -3
  33. .venv/lib/python3.12/site-packages/_virtualenv.py +0 -101
  34. .venv/lib/python3.12/site-packages/_yaml/__init__.py +0 -33
  35. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER +0 -1
  36. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/METADATA +0 -145
  37. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/RECORD +0 -10
  38. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/REQUESTED +0 -0
  39. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/WHEEL +0 -4
  40. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt +0 -4
  41. .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE +0 -21
  42. .venv/lib/python3.12/site-packages/annotated_doc/__init__.py +0 -3
  43. .venv/lib/python3.12/site-packages/annotated_doc/main.py +0 -36
  44. .venv/lib/python3.12/site-packages/annotated_doc/py.typed +0 -0
  45. .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER +0 -1
  46. .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA +0 -295
  47. .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD +0 -9
  48. .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/REQUESTED +0 -0
  49. .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL +0 -4
  50. .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE +0 -21
.venv/.gitignore DELETED
@@ -1 +0,0 @@
1
- *
 
 
.venv/.lock DELETED
File without changes
.venv/CACHEDIR.TAG DELETED
@@ -1 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
 
 
.venv/bin/activate DELETED
@@ -1,130 +0,0 @@
1
- # Copyright (c) 2020-202x The virtualenv developers
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- # This file must be used with "source bin/activate" *from bash*
23
- # you cannot run it directly
24
-
25
- if ! [ -z "${SCRIPT_PATH+_}" ] ; then
26
- _OLD_SCRIPT_PATH="$SCRIPT_PATH"
27
- fi
28
-
29
- # Get script path (only used if environment is relocatable).
30
- if [ -n "${BASH_VERSION:+x}" ] ; then
31
- SCRIPT_PATH="${BASH_SOURCE[0]}"
32
- if [ "$SCRIPT_PATH" = "$0" ]; then
33
- # Only bash has a reasonably robust check for source'dness.
34
- echo "You must source this script: \$ source $0" >&2
35
- exit 33
36
- fi
37
- elif [ -n "${ZSH_VERSION:+x}" ] ; then
38
- SCRIPT_PATH="${(%):-%x}"
39
- elif [ -n "${KSH_VERSION:+x}" ] ; then
40
- SCRIPT_PATH="${.sh.file}"
41
- fi
42
-
43
- deactivate () {
44
- unset -f pydoc >/dev/null 2>&1 || true
45
-
46
- # reset old environment variables
47
- # ! [ -z ${VAR+_} ] returns true if VAR is declared at all
48
- if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
49
- PATH="$_OLD_VIRTUAL_PATH"
50
- export PATH
51
- unset _OLD_VIRTUAL_PATH
52
- fi
53
- if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
54
- PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
55
- export PYTHONHOME
56
- unset _OLD_VIRTUAL_PYTHONHOME
57
- fi
58
-
59
- # The hash command must be called to get it to forget past
60
- # commands. Without forgetting past commands the $PATH changes
61
- # we made may not be respected
62
- hash -r 2>/dev/null
63
-
64
- if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
65
- PS1="$_OLD_VIRTUAL_PS1"
66
- export PS1
67
- unset _OLD_VIRTUAL_PS1
68
- fi
69
-
70
- unset VIRTUAL_ENV
71
- unset VIRTUAL_ENV_PROMPT
72
- if [ ! "${1-}" = "nondestructive" ] ; then
73
- # Self destruct!
74
- unset -f deactivate
75
- fi
76
- }
77
-
78
- # unset irrelevant variables
79
- deactivate nondestructive
80
-
81
- VIRTUAL_ENV='/app/.venv'
82
- if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
83
- VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
84
- fi
85
- export VIRTUAL_ENV
86
-
87
- # Unset the `SCRIPT_PATH` variable, now that the `VIRTUAL_ENV` variable
88
- # has been set. This is important for relocatable environments.
89
- if ! [ -z "${_OLD_SCRIPT_PATH+_}" ] ; then
90
- SCRIPT_PATH="$_OLD_SCRIPT_PATH"
91
- export SCRIPT_PATH
92
- unset _OLD_SCRIPT_PATH
93
- else
94
- unset SCRIPT_PATH
95
- fi
96
-
97
- _OLD_VIRTUAL_PATH="$PATH"
98
- PATH="$VIRTUAL_ENV/bin:$PATH"
99
- export PATH
100
-
101
- if [ "xclickup-mcp" != x ] ; then
102
- VIRTUAL_ENV_PROMPT="clickup-mcp"
103
- else
104
- VIRTUAL_ENV_PROMPT=$(basename "$VIRTUAL_ENV")
105
- fi
106
- export VIRTUAL_ENV_PROMPT
107
-
108
- # unset PYTHONHOME if set
109
- if ! [ -z "${PYTHONHOME+_}" ] ; then
110
- _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
111
- unset PYTHONHOME
112
- fi
113
-
114
- if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
115
- _OLD_VIRTUAL_PS1="${PS1-}"
116
- PS1="(${VIRTUAL_ENV_PROMPT}) ${PS1-}"
117
- export PS1
118
- fi
119
-
120
- # Make sure to unalias pydoc if it's already there
121
- alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true
122
-
123
- pydoc () {
124
- python -m pydoc "$@"
125
- }
126
-
127
- # The hash command must be called to get it to forget past
128
- # commands. Without forgetting past commands the $PATH changes
129
- # we made may not be respected
130
- hash -r 2>/dev/null || true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/activate.bat DELETED
@@ -1,71 +0,0 @@
1
- @REM Copyright (c) 2020-202x The virtualenv developers
2
- @REM
3
- @REM Permission is hereby granted, free of charge, to any person obtaining
4
- @REM a copy of this software and associated documentation files (the
5
- @REM "Software"), to deal in the Software without restriction, including
6
- @REM without limitation the rights to use, copy, modify, merge, publish,
7
- @REM distribute, sublicense, and/or sell copies of the Software, and to
8
- @REM permit persons to whom the Software is furnished to do so, subject to
9
- @REM the following conditions:
10
- @REM
11
- @REM The above copyright notice and this permission notice shall be
12
- @REM included in all copies or substantial portions of the Software.
13
- @REM
14
- @REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- @REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- @REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- @REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- @REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- @REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- @REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- @REM This file is UTF-8 encoded, so we need to update the current code page while executing it
23
- @for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do @set _OLD_CODEPAGE=%%a
24
-
25
- @if defined _OLD_CODEPAGE (
26
- "%SystemRoot%\System32\chcp.com" 65001 > nul
27
- )
28
-
29
- @for %%i in ("/app/.venv") do @set "VIRTUAL_ENV=%%~fi"
30
-
31
- @set "VIRTUAL_ENV_PROMPT=clickup-mcp"
32
- @if NOT DEFINED VIRTUAL_ENV_PROMPT (
33
- @for %%d in ("%VIRTUAL_ENV%") do @set "VIRTUAL_ENV_PROMPT=%%~nxd"
34
- )
35
-
36
- @if defined _OLD_VIRTUAL_PROMPT (
37
- @set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
38
- ) else (
39
- @if not defined PROMPT (
40
- @set "PROMPT=$P$G"
41
- )
42
- @if not defined VIRTUAL_ENV_DISABLE_PROMPT (
43
- @set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
44
- )
45
- )
46
- @if not defined VIRTUAL_ENV_DISABLE_PROMPT (
47
- @set "PROMPT=(%VIRTUAL_ENV_PROMPT%) %PROMPT%"
48
- )
49
-
50
- @REM Don't use () to avoid problems with them in %PATH%
51
- @if defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME
52
- @set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
53
- :ENDIFVHOME
54
-
55
- @set PYTHONHOME=
56
-
57
- @REM if defined _OLD_VIRTUAL_PATH (
58
- @if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH1
59
- @set "PATH=%_OLD_VIRTUAL_PATH%"
60
- :ENDIFVPATH1
61
- @REM ) else (
62
- @if defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH2
63
- @set "_OLD_VIRTUAL_PATH=%PATH%"
64
- :ENDIFVPATH2
65
-
66
- @set "PATH=%VIRTUAL_ENV%\bin;%PATH%"
67
-
68
- @if defined _OLD_CODEPAGE (
69
- "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul
70
- @set _OLD_CODEPAGE=
71
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/activate.csh DELETED
@@ -1,76 +0,0 @@
1
- # Copyright (c) 2020-202x The virtualenv developers
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- # This file must be used with "source bin/activate.csh" *from csh*.
23
- # You cannot run it directly.
24
- # Created by Davide Di Blasi <davidedb@gmail.com>.
25
-
26
- set newline='\
27
- '
28
-
29
- alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
30
-
31
- # Unset irrelevant variables.
32
- deactivate nondestructive
33
-
34
- setenv VIRTUAL_ENV '/app/.venv'
35
-
36
- set _OLD_VIRTUAL_PATH="$PATH:q"
37
- setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q"
38
-
39
-
40
-
41
- if ('clickup-mcp' != "") then
42
- setenv VIRTUAL_ENV_PROMPT 'clickup-mcp'
43
- else
44
- setenv VIRTUAL_ENV_PROMPT "$VIRTUAL_ENV:t:q"
45
- endif
46
-
47
- if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then
48
- if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then
49
- set do_prompt = "1"
50
- else
51
- set do_prompt = "0"
52
- endif
53
- else
54
- set do_prompt = "1"
55
- endif
56
-
57
- if ( $do_prompt == "1" ) then
58
- # Could be in a non-interactive environment,
59
- # in which case, $prompt is undefined and we wouldn't
60
- # care about the prompt anyway.
61
- if ( $?prompt ) then
62
- set _OLD_VIRTUAL_PROMPT="$prompt:q"
63
- if ( "$prompt:q" =~ *"$newline:q"* ) then
64
- :
65
- else
66
- set prompt = '('"$VIRTUAL_ENV_PROMPT:q"') '"$prompt:q"
67
- endif
68
- endif
69
- endif
70
-
71
- unset env_name
72
- unset do_prompt
73
-
74
- alias pydoc python -m pydoc
75
-
76
- rehash
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/activate.fish DELETED
@@ -1,124 +0,0 @@
1
- # Copyright (c) 2020-202x The virtualenv developers
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- # This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
23
- # Do not run it directly.
24
-
25
- function _bashify_path -d "Converts a fish path to something bash can recognize"
26
- set fishy_path $argv
27
- set bashy_path $fishy_path[1]
28
- for path_part in $fishy_path[2..-1]
29
- set bashy_path "$bashy_path:$path_part"
30
- end
31
- echo $bashy_path
32
- end
33
-
34
- function _fishify_path -d "Converts a bash path to something fish can recognize"
35
- echo $argv | tr ':' '\n'
36
- end
37
-
38
- function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
39
- # reset old environment variables
40
- if test -n "$_OLD_VIRTUAL_PATH"
41
- # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
42
- if test (string sub -s 1 -l 1 $FISH_VERSION) -lt 3
43
- set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH")
44
- else
45
- set -gx PATH $_OLD_VIRTUAL_PATH
46
- end
47
- set -e _OLD_VIRTUAL_PATH
48
- end
49
-
50
- if test -n "$_OLD_VIRTUAL_PYTHONHOME"
51
- set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME"
52
- set -e _OLD_VIRTUAL_PYTHONHOME
53
- end
54
-
55
- if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
56
- and functions -q _old_fish_prompt
57
- # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
58
- set -l fish_function_path
59
-
60
- # Erase virtualenv's `fish_prompt` and restore the original.
61
- functions -e fish_prompt
62
- functions -c _old_fish_prompt fish_prompt
63
- functions -e _old_fish_prompt
64
- set -e _OLD_FISH_PROMPT_OVERRIDE
65
- end
66
-
67
- set -e VIRTUAL_ENV
68
- set -e VIRTUAL_ENV_PROMPT
69
-
70
- if test "$argv[1]" != 'nondestructive'
71
- # Self-destruct!
72
- functions -e pydoc
73
- functions -e deactivate
74
- functions -e _bashify_path
75
- functions -e _fishify_path
76
- end
77
- end
78
-
79
- # Unset irrelevant variables.
80
- deactivate nondestructive
81
-
82
- set -gx VIRTUAL_ENV '/app/.venv'
83
-
84
- # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
85
- if test (string sub -s 1 -l 1 $FISH_VERSION) -lt 3
86
- set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH)
87
- else
88
- set -gx _OLD_VIRTUAL_PATH $PATH
89
- end
90
- set -gx PATH "$VIRTUAL_ENV"'/bin' $PATH
91
-
92
- # Prompt override provided?
93
- # If not, just use the environment name.
94
- if test -n 'clickup-mcp'
95
- set -gx VIRTUAL_ENV_PROMPT 'clickup-mcp'
96
- else
97
- set -gx VIRTUAL_ENV_PROMPT (basename "$VIRTUAL_ENV")
98
- end
99
-
100
- # Unset `$PYTHONHOME` if set.
101
- if set -q PYTHONHOME
102
- set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
103
- set -e PYTHONHOME
104
- end
105
-
106
- function pydoc
107
- python -m pydoc $argv
108
- end
109
-
110
- if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
111
- # Copy the current `fish_prompt` function as `_old_fish_prompt`.
112
- functions -c fish_prompt _old_fish_prompt
113
-
114
- function fish_prompt
115
- # Run the user's prompt first; it might depend on (pipe)status.
116
- set -l prompt (_old_fish_prompt)
117
-
118
- printf '(%s) ' $VIRTUAL_ENV_PROMPT
119
-
120
- string join -- \n $prompt # handle multi-line prompts
121
- end
122
-
123
- set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
124
- end
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/activate.nu DELETED
@@ -1,102 +0,0 @@
1
- # Copyright (c) 2020-202x The virtualenv developers
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- # virtualenv activation module:
23
- # - Activate with `overlay use activate.nu`
24
- # - Deactivate with `deactivate`, as usual
25
- #
26
- # To customize the overlay name, you can call `overlay use activate.nu as foo`, but then simply `deactivate` won't work
27
- # because it is just an alias to hide the "activate" overlay. You'd need to call `overlay hide foo` manually.
28
-
29
- module warning {
30
- export-env {
31
- const file = path self
32
- error make -u {
33
- msg: $"`($file | path basename)` is meant to be used with `overlay use`, not `source`"
34
- }
35
- }
36
-
37
- }
38
-
39
- use warning
40
-
41
- export-env {
42
-
43
- let nu_ver = (version | get version | split row '.' | take 2 | each { into int })
44
- if $nu_ver.0 == 0 and $nu_ver.1 < 106 {
45
- error make {
46
- msg: 'virtualenv Nushell activation requires Nushell 0.106 or greater.'
47
- }
48
- }
49
-
50
- def is-string [x] {
51
- ($x | describe) == 'string'
52
- }
53
-
54
- def has-env [...names] {
55
- $names | each {|n| $n in $env } | all {|i| $i }
56
- }
57
-
58
- def is-env-true [name: string] {
59
- if (has-env $name) {
60
- let val = ($env | get --optional $name)
61
- if ($val | describe) == 'bool' {
62
- $val
63
- } else {
64
- not ($val | is-empty)
65
- }
66
- } else {
67
- false
68
- }
69
- }
70
-
71
- let virtual_env = '/app/.venv'
72
- let bin = 'bin'
73
- let path_name = if (has-env 'Path') { 'Path' } else { 'PATH' }
74
- let venv_path = ([$virtual_env $bin] | path join)
75
- let new_path = ($env | get $path_name | prepend $venv_path)
76
- let virtual_env_prompt = if ('clickup-mcp' | is-empty) {
77
- ($virtual_env | path basename)
78
- } else {
79
- 'clickup-mcp'
80
- }
81
- let new_env = { $path_name: $new_path VIRTUAL_ENV: $virtual_env VIRTUAL_ENV_PROMPT: $virtual_env_prompt }
82
- let old_prompt_command = if (has-env 'PROMPT_COMMAND') { $env.PROMPT_COMMAND } else { '' }
83
- let new_env = if (is-env-true 'VIRTUAL_ENV_DISABLE_PROMPT') {
84
- $new_env
85
- } else {
86
- let virtual_prefix = $'(char lparen)($virtual_env_prompt)(char rparen) '
87
- let new_prompt = if (has-env 'PROMPT_COMMAND') {
88
- if ('closure' in ($old_prompt_command | describe)) {
89
- {|| $'($virtual_prefix)(do $old_prompt_command)' }
90
- } else {
91
- {|| $'($virtual_prefix)($old_prompt_command)' }
92
- }
93
- } else {
94
- {|| $'($virtual_prefix)' }
95
- }
96
- $new_env | merge { PROMPT_COMMAND: $new_prompt VIRTUAL_PREFIX: $virtual_prefix }
97
- }
98
- load-env $new_env
99
- }
100
-
101
- export alias pydoc = python -m pydoc
102
- export alias deactivate = overlay hide activate
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/activate.ps1 DELETED
@@ -1,82 +0,0 @@
1
- # Copyright (c) 2020-202x The virtualenv developers
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- $script:THIS_PATH = $myinvocation.mycommand.path
23
- $script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent
24
-
25
- function global:deactivate([switch] $NonDestructive) {
26
- if (Test-Path variable:_OLD_VIRTUAL_PATH) {
27
- $env:PATH = $variable:_OLD_VIRTUAL_PATH
28
- Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global
29
- }
30
-
31
- if (Test-Path function:_old_virtual_prompt) {
32
- $function:prompt = $function:_old_virtual_prompt
33
- Remove-Item function:\_old_virtual_prompt
34
- }
35
-
36
- if ($env:VIRTUAL_ENV) {
37
- Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue
38
- }
39
-
40
- if ($env:VIRTUAL_ENV_PROMPT) {
41
- Remove-Item env:VIRTUAL_ENV_PROMPT -ErrorAction SilentlyContinue
42
- }
43
-
44
- if (!$NonDestructive) {
45
- # Self destruct!
46
- Remove-Item function:deactivate
47
- Remove-Item function:pydoc
48
- }
49
- }
50
-
51
- function global:pydoc {
52
- python -m pydoc $args
53
- }
54
-
55
- # unset irrelevant variables
56
- deactivate -nondestructive
57
-
58
- $VIRTUAL_ENV = $BASE_DIR
59
- $env:VIRTUAL_ENV = $VIRTUAL_ENV
60
-
61
- if ("clickup-mcp" -ne "") {
62
- $env:VIRTUAL_ENV_PROMPT = "clickup-mcp"
63
- }
64
- else {
65
- $env:VIRTUAL_ENV_PROMPT = $( Split-Path $env:VIRTUAL_ENV -Leaf )
66
- }
67
-
68
- New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH
69
-
70
- $env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH
71
- if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) {
72
- function global:_old_virtual_prompt {
73
- ""
74
- }
75
- $function:_old_virtual_prompt = $function:prompt
76
-
77
- function global:prompt {
78
- # Add the custom prefix to the existing prompt
79
- $previous_prompt_value = & $function:_old_virtual_prompt
80
- ("(" + $env:VIRTUAL_ENV_PROMPT + ") " + $previous_prompt_value)
81
- }
82
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/activate_this.py DELETED
@@ -1,59 +0,0 @@
1
- # Copyright (c) 2020-202x The virtualenv developers
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- """
23
- Activate virtualenv for current interpreter:
24
-
25
- import runpy
26
- runpy.run_path(this_file)
27
-
28
- This can be used when you must use an existing Python interpreter, not the virtualenv bin/python.
29
- """ # noqa: D415
30
-
31
- from __future__ import annotations
32
-
33
- import os
34
- import site
35
- import sys
36
-
37
- try:
38
- abs_file = os.path.abspath(__file__)
39
- except NameError as exc:
40
- msg = "You must use import runpy; runpy.run_path(this_file)"
41
- raise AssertionError(msg) from exc
42
-
43
- bin_dir = os.path.dirname(abs_file)
44
- base = bin_dir[: -len("bin") - 1] # strip away the bin part from the __file__, plus the path separator
45
-
46
- # prepend bin to PATH (this file is inside the bin directory)
47
- os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)])
48
- os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory
49
- os.environ["VIRTUAL_ENV_PROMPT"] = "clickup-mcp" or os.path.basename(base) # noqa: SIM222
50
-
51
- # add the virtual environments libraries to the host python import mechanism
52
- prev_length = len(sys.path)
53
- for lib in "../lib/python3.12/site-packages".split(os.pathsep):
54
- path = os.path.realpath(os.path.join(bin_dir, lib))
55
- site.addsitedir(path)
56
- sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]
57
-
58
- sys.real_prefix = sys.prefix
59
- sys.prefix = base
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/deactivate.bat DELETED
@@ -1,39 +0,0 @@
1
- @REM Copyright (c) 2020-202x The virtualenv developers
2
- @REM
3
- @REM Permission is hereby granted, free of charge, to any person obtaining
4
- @REM a copy of this software and associated documentation files (the
5
- @REM "Software"), to deal in the Software without restriction, including
6
- @REM without limitation the rights to use, copy, modify, merge, publish,
7
- @REM distribute, sublicense, and/or sell copies of the Software, and to
8
- @REM permit persons to whom the Software is furnished to do so, subject to
9
- @REM the following conditions:
10
- @REM
11
- @REM The above copyright notice and this permission notice shall be
12
- @REM included in all copies or substantial portions of the Software.
13
- @REM
14
- @REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- @REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- @REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- @REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- @REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- @REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- @REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- @set VIRTUAL_ENV=
23
- @set VIRTUAL_ENV_PROMPT=
24
-
25
- @REM Don't use () to avoid problems with them in %PATH%
26
- @if not defined _OLD_VIRTUAL_PROMPT @goto ENDIFVPROMPT
27
- @set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
28
- @set _OLD_VIRTUAL_PROMPT=
29
- :ENDIFVPROMPT
30
-
31
- @if not defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME
32
- @set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%"
33
- @set _OLD_VIRTUAL_PYTHONHOME=
34
- :ENDIFVHOME
35
-
36
- @if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH
37
- @set "PATH=%_OLD_VIRTUAL_PATH%"
38
- @set _OLD_VIRTUAL_PATH=
39
- :ENDIFVPATH
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/dotenv DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from dotenv.__main__ import cli
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(cli())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/fastapi DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from fastapi.cli import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/hf DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from huggingface_hub.cli.hf import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/httpx DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from httpx import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/huggingface-cli DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from huggingface_hub.cli.deprecated_cli import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/jsonschema DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from jsonschema.cli import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/markdown-it DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from markdown_it.cli.parse import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/mcp DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from mcp.cli import app
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(app())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/pydoc.bat DELETED
@@ -1,22 +0,0 @@
1
- @REM Copyright (c) 2020-202x The virtualenv developers
2
- @REM
3
- @REM Permission is hereby granted, free of charge, to any person obtaining
4
- @REM a copy of this software and associated documentation files (the
5
- @REM "Software"), to deal in the Software without restriction, including
6
- @REM without limitation the rights to use, copy, modify, merge, publish,
7
- @REM distribute, sublicense, and/or sell copies of the Software, and to
8
- @REM permit persons to whom the Software is furnished to do so, subject to
9
- @REM the following conditions:
10
- @REM
11
- @REM The above copyright notice and this permission notice shall be
12
- @REM included in all copies or substantial portions of the Software.
13
- @REM
14
- @REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- @REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- @REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- @REM NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- @REM LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- @REM OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- @REM WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- python.exe -m pydoc %*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/pygmentize DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from pygments.cmdline import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/python DELETED
Binary file (17.7 kB)
 
.venv/bin/python3 DELETED
Binary file (17.7 kB)
 
.venv/bin/python3.12 DELETED
Binary file (17.7 kB)
 
.venv/bin/tiny-agents DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from huggingface_hub.inference._mcp.cli import app
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(app())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/tqdm DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from tqdm.cli import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/typer DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from typer.cli import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/bin/uvicorn DELETED
@@ -1,10 +0,0 @@
1
- #!/app/.venv/bin/python
2
- # -*- coding: utf-8 -*-
3
- import sys
4
- from uvicorn.main import main
5
- if __name__ == "__main__":
6
- if sys.argv[0].endswith("-script.pyw"):
7
- sys.argv[0] = sys.argv[0][:-11]
8
- elif sys.argv[0].endswith(".exe"):
9
- sys.argv[0] = sys.argv[0][:-4]
10
- sys.exit(main())
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/__pycache__/_virtualenv.cpython-312.pyc DELETED
Binary file (4.09 kB)
 
.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:03bcc1f4dcdb3a028ce1f932b191449bddcf83206f31f20436efcd48aa509a60
3
- size 163615
 
 
 
 
.venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-x86_64-linux-gnu.so DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:0062edc397e7f6ee029b093705b1a5b171bb55912f41e90004cc841ae45999c1
3
- size 348808
 
 
 
 
.venv/lib/python3.12/site-packages/_virtualenv.pth DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:69ac3d8f27e679c81b94ab30b3b56e9cd138219b1ba94a1fa3606d5a76a1433d
3
- size 18
 
 
 
 
.venv/lib/python3.12/site-packages/_virtualenv.py DELETED
@@ -1,101 +0,0 @@
1
- """Patches that are applied at runtime to the virtual environment."""
2
-
3
- import os
4
- import sys
5
-
6
- VIRTUALENV_PATCH_FILE = os.path.join(__file__)
7
-
8
-
9
- def patch_dist(dist):
10
- """
11
- Distutils allows user to configure some arguments via a configuration file:
12
- https://docs.python.org/3.11/install/index.html#distutils-configuration-files.
13
-
14
- Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up.
15
- """ # noqa: D205
16
- # we cannot allow some install config as that would get packages installed outside of the virtual environment
17
- old_parse_config_files = dist.Distribution.parse_config_files
18
-
19
- def parse_config_files(self, *args, **kwargs):
20
- result = old_parse_config_files(self, *args, **kwargs)
21
- install = self.get_option_dict("install")
22
-
23
- if "prefix" in install: # the prefix governs where to install the libraries
24
- install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix)
25
- for base in ("purelib", "platlib", "headers", "scripts", "data"):
26
- key = f"install_{base}"
27
- if key in install: # do not allow global configs to hijack venv paths
28
- install.pop(key, None)
29
- return result
30
-
31
- dist.Distribution.parse_config_files = parse_config_files
32
-
33
-
34
- # Import hook that patches some modules to ignore configuration values that break package installation in case
35
- # of virtual environments.
36
- _DISTUTILS_PATCH = "distutils.dist", "setuptools.dist"
37
- # https://docs.python.org/3/library/importlib.html#setting-up-an-importer
38
-
39
-
40
- class _Finder:
41
- """A meta path finder that allows patching the imported distutils modules."""
42
-
43
- fullname = None
44
-
45
- # lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup,
46
- # because there are gevent-based applications that need to be first to import threading by themselves.
47
- # See https://github.com/pypa/virtualenv/issues/1895 for details.
48
- lock = [] # noqa: RUF012
49
-
50
- def find_spec(self, fullname, path, target=None): # noqa: ARG002
51
- if fullname in _DISTUTILS_PATCH and self.fullname is None:
52
- # initialize lock[0] lazily
53
- if len(self.lock) == 0:
54
- import threading
55
-
56
- lock = threading.Lock()
57
- # there is possibility that two threads T1 and T2 are simultaneously running into find_spec,
58
- # observing .lock as empty, and further going into hereby initialization. However due to the GIL,
59
- # list.append() operation is atomic and this way only one of the threads will "win" to put the lock
60
- # - that every thread will use - into .lock[0].
61
- # https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe
62
- self.lock.append(lock)
63
-
64
- from functools import partial
65
- from importlib.util import find_spec
66
-
67
- with self.lock[0]:
68
- self.fullname = fullname
69
- try:
70
- spec = find_spec(fullname, path)
71
- if spec is not None:
72
- # https://www.python.org/dev/peps/pep-0451/#how-loading-will-work
73
- is_new_api = hasattr(spec.loader, "exec_module")
74
- func_name = "exec_module" if is_new_api else "load_module"
75
- old = getattr(spec.loader, func_name)
76
- func = self.exec_module if is_new_api else self.load_module
77
- if old is not func:
78
- try: # noqa: SIM105
79
- setattr(spec.loader, func_name, partial(func, old))
80
- except AttributeError:
81
- pass # C-Extension loaders are r/o such as zipimporter with <3.7
82
- return spec
83
- finally:
84
- self.fullname = None
85
- return None
86
-
87
- @staticmethod
88
- def exec_module(old, module):
89
- old(module)
90
- if module.__name__ in _DISTUTILS_PATCH:
91
- patch_dist(module)
92
-
93
- @staticmethod
94
- def load_module(old, name):
95
- module = old(name)
96
- if module.__name__ in _DISTUTILS_PATCH:
97
- patch_dist(module)
98
- return module
99
-
100
-
101
- sys.meta_path.insert(0, _Finder())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/_yaml/__init__.py DELETED
@@ -1,33 +0,0 @@
1
- # This is a stub package designed to roughly emulate the _yaml
2
- # extension module, which previously existed as a standalone module
3
- # and has been moved into the `yaml` package namespace.
4
- # It does not perfectly mimic its old counterpart, but should get
5
- # close enough for anyone who's relying on it even when they shouldn't.
6
- import yaml
7
-
8
- # in some circumstances, the yaml module we imoprted may be from a different version, so we need
9
- # to tread carefully when poking at it here (it may not have the attributes we expect)
10
- if not getattr(yaml, '__with_libyaml__', False):
11
- from sys import version_info
12
-
13
- exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError
14
- raise exc("No module named '_yaml'")
15
- else:
16
- from yaml._yaml import *
17
- import warnings
18
- warnings.warn(
19
- 'The _yaml extension module is now located at yaml._yaml'
20
- ' and its location is subject to change. To use the'
21
- ' LibYAML-based parser and emitter, import from `yaml`:'
22
- ' `from yaml import CLoader as Loader, CDumper as Dumper`.',
23
- DeprecationWarning
24
- )
25
- del warnings
26
- # Don't `del yaml` here because yaml is actually an existing
27
- # namespace member of _yaml.
28
-
29
- __name__ = '_yaml'
30
- # If the module is top-level (i.e. not a part of any specific package)
31
- # then the attribute should be set to ''.
32
- # https://docs.python.org/3.8/library/types.html
33
- __package__ = ''
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER DELETED
@@ -1 +0,0 @@
1
- uv
 
 
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/METADATA DELETED
@@ -1,145 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: annotated-doc
3
- Version: 0.0.4
4
- Summary: Document parameters, class attributes, return types, and variables inline, with Annotated.
5
- Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
6
- License-Expression: MIT
7
- License-File: LICENSE
8
- Classifier: Intended Audience :: Information Technology
9
- Classifier: Intended Audience :: System Administrators
10
- Classifier: Operating System :: OS Independent
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python
13
- Classifier: Topic :: Internet
14
- Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
15
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
- Classifier: Topic :: Software Development :: Libraries
17
- Classifier: Topic :: Software Development
18
- Classifier: Typing :: Typed
19
- Classifier: Development Status :: 4 - Beta
20
- Classifier: Intended Audience :: Developers
21
- Classifier: Programming Language :: Python :: 3 :: Only
22
- Classifier: Programming Language :: Python :: 3.8
23
- Classifier: Programming Language :: Python :: 3.9
24
- Classifier: Programming Language :: Python :: 3.10
25
- Classifier: Programming Language :: Python :: 3.11
26
- Classifier: Programming Language :: Python :: 3.12
27
- Classifier: Programming Language :: Python :: 3.13
28
- Classifier: Programming Language :: Python :: 3.14
29
- Project-URL: Homepage, https://github.com/fastapi/annotated-doc
30
- Project-URL: Documentation, https://github.com/fastapi/annotated-doc
31
- Project-URL: Repository, https://github.com/fastapi/annotated-doc
32
- Project-URL: Issues, https://github.com/fastapi/annotated-doc/issues
33
- Project-URL: Changelog, https://github.com/fastapi/annotated-doc/release-notes.md
34
- Requires-Python: >=3.8
35
- Description-Content-Type: text/markdown
36
-
37
- # Annotated Doc
38
-
39
- Document parameters, class attributes, return types, and variables inline, with `Annotated`.
40
-
41
- <a href="https://github.com/fastapi/annotated-doc/actions?query=workflow%3ATest+event%3Apush+branch%3Amain" target="_blank">
42
- <img src="https://github.com/fastapi/annotated-doc/actions/workflows/test.yml/badge.svg?event=push&branch=main" alt="Test">
43
- </a>
44
- <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/annotated-doc" target="_blank">
45
- <img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/annotated-doc.svg" alt="Coverage">
46
- </a>
47
- <a href="https://pypi.org/project/annotated-doc" target="_blank">
48
- <img src="https://img.shields.io/pypi/v/annotated-doc?color=%2334D058&label=pypi%20package" alt="Package version">
49
- </a>
50
- <a href="https://pypi.org/project/annotated-doc" target="_blank">
51
- <img src="https://img.shields.io/pypi/pyversions/annotated-doc.svg?color=%2334D058" alt="Supported Python versions">
52
- </a>
53
-
54
- ## Installation
55
-
56
- ```bash
57
- pip install annotated-doc
58
- ```
59
-
60
- Or with `uv`:
61
-
62
- ```Python
63
- uv add annotated-doc
64
- ```
65
-
66
- ## Usage
67
-
68
- Import `Doc` and pass a single literal string with the documentation for the specific parameter, class attribute, return type, or variable.
69
-
70
- For example, to document a parameter `name` in a function `hi` you could do:
71
-
72
- ```Python
73
- from typing import Annotated
74
-
75
- from annotated_doc import Doc
76
-
77
- def hi(name: Annotated[str, Doc("Who to say hi to")]) -> None:
78
- print(f"Hi, {name}!")
79
- ```
80
-
81
- You can also use it to document class attributes:
82
-
83
- ```Python
84
- from typing import Annotated
85
-
86
- from annotated_doc import Doc
87
-
88
- class User:
89
- name: Annotated[str, Doc("The user's name")]
90
- age: Annotated[int, Doc("The user's age")]
91
- ```
92
-
93
- The same way, you could document return types and variables, or anything that could have a type annotation with `Annotated`.
94
-
95
- ## Who Uses This
96
-
97
- `annotated-doc` was made for:
98
-
99
- * [FastAPI](https://fastapi.tiangolo.com/)
100
- * [Typer](https://typer.tiangolo.com/)
101
- * [SQLModel](https://sqlmodel.tiangolo.com/)
102
- * [Asyncer](https://asyncer.tiangolo.com/)
103
-
104
- `annotated-doc` is supported by [griffe-typingdoc](https://github.com/mkdocstrings/griffe-typingdoc), which powers reference documentation like the one in the [FastAPI Reference](https://fastapi.tiangolo.com/reference/).
105
-
106
- ## Reasons not to use `annotated-doc`
107
-
108
- You are already comfortable with one of the existing docstring formats, like:
109
-
110
- * Sphinx
111
- * numpydoc
112
- * Google
113
- * Keras
114
-
115
- Your team is already comfortable using them.
116
-
117
- You prefer having the documentation about parameters all together in a docstring, separated from the code defining them.
118
-
119
- You care about a specific set of users, using one specific editor, and that editor already has support for the specific docstring format you use.
120
-
121
- ## Reasons to use `annotated-doc`
122
-
123
- * No micro-syntax to learn for newcomers, it’s **just Python** syntax.
124
- * **Editing** would be already fully supported by default by any editor (current or future) supporting Python syntax, including syntax errors, syntax highlighting, etc.
125
- * **Rendering** would be relatively straightforward to implement by static tools (tools that don't need runtime execution), as the information can be extracted from the AST they normally already create.
126
- * **Deduplication of information**: the name of a parameter would be defined in a single place, not duplicated inside of a docstring.
127
- * **Elimination** of the possibility of having **inconsistencies** when removing a parameter or class variable and **forgetting to remove** its documentation.
128
- * **Minimization** of the probability of adding a new parameter or class variable and **forgetting to add its documentation**.
129
- * **Elimination** of the possibility of having **inconsistencies** between the **name** of a parameter in the **signature** and the name in the docstring when it is renamed.
130
- * **Access** to the documentation string for each symbol at **runtime**, including existing (older) Python versions.
131
- * A more formalized way to document other symbols, like type aliases, that could use Annotated.
132
- * **Support** for apps using FastAPI, Typer and others.
133
- * **AI Accessibility**: AI tools will have an easier way understanding each parameter as the distance from documentation to parameter is much closer.
134
-
135
- ## History
136
-
137
- I ([@tiangolo](https://github.com/tiangolo)) originally wanted for this to be part of the Python standard library (in [PEP 727](https://peps.python.org/pep-0727/)), but the proposal was withdrawn as there was a fair amount of negative feedback and opposition.
138
-
139
- The conclusion was that this was better done as an external effort, in a third-party library.
140
-
141
- So, here it is, with a simpler approach, as a third-party library, in a way that can be used by others, starting with FastAPI and friends.
142
-
143
- ## License
144
-
145
- This project is licensed under the terms of the MIT license.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/RECORD DELETED
@@ -1,10 +0,0 @@
1
- annotated_doc-0.0.4.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
2
- annotated_doc-0.0.4.dist-info/METADATA,sha256=Irm5KJua33dY2qKKAjJ-OhKaVBVIfwFGej_dSe3Z1TU,6566
3
- annotated_doc-0.0.4.dist-info/RECORD,,
4
- annotated_doc-0.0.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- annotated_doc-0.0.4.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
6
- annotated_doc-0.0.4.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
7
- annotated_doc-0.0.4.dist-info/licenses/LICENSE,sha256=__Fwd5pqy_ZavbQFwIfxzuF4ZpHkqWpANFF-SlBKDN8,1086
8
- annotated_doc/__init__.py,sha256=VuyxxUe80kfEyWnOrCx_Bk8hybo3aKo6RYBlkBBYW8k,52
9
- annotated_doc/main.py,sha256=5Zfvxv80SwwLqpRW73AZyZyiM4bWma9QWRbp_cgD20s,1075
10
- annotated_doc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/REQUESTED DELETED
File without changes
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/WHEEL DELETED
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: pdm-backend (2.4.5)
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt DELETED
@@ -1,4 +0,0 @@
1
- [console_scripts]
2
-
3
- [gui_scripts]
4
-
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2025 Sebastián Ramírez
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
13
- all 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
21
- THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc/__init__.py DELETED
@@ -1,3 +0,0 @@
1
- from .main import Doc as Doc
2
-
3
- __version__ = "0.0.4"
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc/main.py DELETED
@@ -1,36 +0,0 @@
1
- class Doc:
2
- """Define the documentation of a type annotation using `Annotated`, to be
3
- used in class attributes, function and method parameters, return values,
4
- and variables.
5
-
6
- The value should be a positional-only string literal to allow static tools
7
- like editors and documentation generators to use it.
8
-
9
- This complements docstrings.
10
-
11
- The string value passed is available in the attribute `documentation`.
12
-
13
- Example:
14
-
15
- ```Python
16
- from typing import Annotated
17
- from annotated_doc import Doc
18
-
19
- def hi(name: Annotated[str, Doc("Who to say hi to")]) -> None:
20
- print(f"Hi, {name}!")
21
- ```
22
- """
23
-
24
- def __init__(self, documentation: str, /) -> None:
25
- self.documentation = documentation
26
-
27
- def __repr__(self) -> str:
28
- return f"Doc({self.documentation!r})"
29
-
30
- def __hash__(self) -> int:
31
- return hash(self.documentation)
32
-
33
- def __eq__(self, other: object) -> bool:
34
- if not isinstance(other, Doc):
35
- return NotImplemented
36
- return self.documentation == other.documentation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_doc/py.typed DELETED
File without changes
.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER DELETED
@@ -1 +0,0 @@
1
- uv
 
 
.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA DELETED
@@ -1,295 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: annotated-types
3
- Version: 0.7.0
4
- Summary: Reusable constraint types to use with typing.Annotated
5
- Project-URL: Homepage, https://github.com/annotated-types/annotated-types
6
- Project-URL: Source, https://github.com/annotated-types/annotated-types
7
- Project-URL: Changelog, https://github.com/annotated-types/annotated-types/releases
8
- Author-email: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Samuel Colvin <s@muelcolvin.com>, Zac Hatfield-Dodds <zac@zhd.dev>
9
- License-File: LICENSE
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Environment :: Console
12
- Classifier: Environment :: MacOS X
13
- Classifier: Intended Audience :: Developers
14
- Classifier: Intended Audience :: Information Technology
15
- Classifier: License :: OSI Approved :: MIT License
16
- Classifier: Operating System :: POSIX :: Linux
17
- Classifier: Operating System :: Unix
18
- Classifier: Programming Language :: Python :: 3 :: Only
19
- Classifier: Programming Language :: Python :: 3.8
20
- Classifier: Programming Language :: Python :: 3.9
21
- Classifier: Programming Language :: Python :: 3.10
22
- Classifier: Programming Language :: Python :: 3.11
23
- Classifier: Programming Language :: Python :: 3.12
24
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
- Classifier: Typing :: Typed
26
- Requires-Python: >=3.8
27
- Requires-Dist: typing-extensions>=4.0.0; python_version < '3.9'
28
- Description-Content-Type: text/markdown
29
-
30
- # annotated-types
31
-
32
- [![CI](https://github.com/annotated-types/annotated-types/workflows/CI/badge.svg?event=push)](https://github.com/annotated-types/annotated-types/actions?query=event%3Apush+branch%3Amain+workflow%3ACI)
33
- [![pypi](https://img.shields.io/pypi/v/annotated-types.svg)](https://pypi.python.org/pypi/annotated-types)
34
- [![versions](https://img.shields.io/pypi/pyversions/annotated-types.svg)](https://github.com/annotated-types/annotated-types)
35
- [![license](https://img.shields.io/github/license/annotated-types/annotated-types.svg)](https://github.com/annotated-types/annotated-types/blob/main/LICENSE)
36
-
37
- [PEP-593](https://peps.python.org/pep-0593/) added `typing.Annotated` as a way of
38
- adding context-specific metadata to existing types, and specifies that
39
- `Annotated[T, x]` _should_ be treated as `T` by any tool or library without special
40
- logic for `x`.
41
-
42
- This package provides metadata objects which can be used to represent common
43
- constraints such as upper and lower bounds on scalar values and collection sizes,
44
- a `Predicate` marker for runtime checks, and
45
- descriptions of how we intend these metadata to be interpreted. In some cases,
46
- we also note alternative representations which do not require this package.
47
-
48
- ## Install
49
-
50
- ```bash
51
- pip install annotated-types
52
- ```
53
-
54
- ## Examples
55
-
56
- ```python
57
- from typing import Annotated
58
- from annotated_types import Gt, Len, Predicate
59
-
60
- class MyClass:
61
- age: Annotated[int, Gt(18)] # Valid: 19, 20, ...
62
- # Invalid: 17, 18, "19", 19.0, ...
63
- factors: list[Annotated[int, Predicate(is_prime)]] # Valid: 2, 3, 5, 7, 11, ...
64
- # Invalid: 4, 8, -2, 5.0, "prime", ...
65
-
66
- my_list: Annotated[list[int], Len(0, 10)] # Valid: [], [10, 20, 30, 40, 50]
67
- # Invalid: (1, 2), ["abc"], [0] * 20
68
- ```
69
-
70
- ## Documentation
71
-
72
- _While `annotated-types` avoids runtime checks for performance, users should not
73
- construct invalid combinations such as `MultipleOf("non-numeric")` or `Annotated[int, Len(3)]`.
74
- Downstream implementors may choose to raise an error, emit a warning, silently ignore
75
- a metadata item, etc., if the metadata objects described below are used with an
76
- incompatible type - or for any other reason!_
77
-
78
- ### Gt, Ge, Lt, Le
79
-
80
- Express inclusive and/or exclusive bounds on orderable values - which may be numbers,
81
- dates, times, strings, sets, etc. Note that the boundary value need not be of the
82
- same type that was annotated, so long as they can be compared: `Annotated[int, Gt(1.5)]`
83
- is fine, for example, and implies that the value is an integer x such that `x > 1.5`.
84
-
85
- We suggest that implementors may also interpret `functools.partial(operator.le, 1.5)`
86
- as being equivalent to `Gt(1.5)`, for users who wish to avoid a runtime dependency on
87
- the `annotated-types` package.
88
-
89
- To be explicit, these types have the following meanings:
90
-
91
- * `Gt(x)` - value must be "Greater Than" `x` - equivalent to exclusive minimum
92
- * `Ge(x)` - value must be "Greater than or Equal" to `x` - equivalent to inclusive minimum
93
- * `Lt(x)` - value must be "Less Than" `x` - equivalent to exclusive maximum
94
- * `Le(x)` - value must be "Less than or Equal" to `x` - equivalent to inclusive maximum
95
-
96
- ### Interval
97
-
98
- `Interval(gt, ge, lt, le)` allows you to specify an upper and lower bound with a single
99
- metadata object. `None` attributes should be ignored, and non-`None` attributes
100
- treated as per the single bounds above.
101
-
102
- ### MultipleOf
103
-
104
- `MultipleOf(multiple_of=x)` might be interpreted in two ways:
105
-
106
- 1. Python semantics, implying `value % multiple_of == 0`, or
107
- 2. [JSONschema semantics](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.1),
108
- where `int(value / multiple_of) == value / multiple_of`.
109
-
110
- We encourage users to be aware of these two common interpretations and their
111
- distinct behaviours, especially since very large or non-integer numbers make
112
- it easy to cause silent data corruption due to floating-point imprecision.
113
-
114
- We encourage libraries to carefully document which interpretation they implement.
115
-
116
- ### MinLen, MaxLen, Len
117
-
118
- `Len()` implies that `min_length <= len(value) <= max_length` - lower and upper bounds are inclusive.
119
-
120
- As well as `Len()` which can optionally include upper and lower bounds, we also
121
- provide `MinLen(x)` and `MaxLen(y)` which are equivalent to `Len(min_length=x)`
122
- and `Len(max_length=y)` respectively.
123
-
124
- `Len`, `MinLen`, and `MaxLen` may be used with any type which supports `len(value)`.
125
-
126
- Examples of usage:
127
-
128
- * `Annotated[list, MaxLen(10)]` (or `Annotated[list, Len(max_length=10))`) - list must have a length of 10 or less
129
- * `Annotated[str, MaxLen(10)]` - string must have a length of 10 or less
130
- * `Annotated[list, MinLen(3))` (or `Annotated[list, Len(min_length=3))`) - list must have a length of 3 or more
131
- * `Annotated[list, Len(4, 6)]` - list must have a length of 4, 5, or 6
132
- * `Annotated[list, Len(8, 8)]` - list must have a length of exactly 8
133
-
134
- #### Changed in v0.4.0
135
-
136
- * `min_inclusive` has been renamed to `min_length`, no change in meaning
137
- * `max_exclusive` has been renamed to `max_length`, upper bound is now **inclusive** instead of **exclusive**
138
- * The recommendation that slices are interpreted as `Len` has been removed due to ambiguity and different semantic
139
- meaning of the upper bound in slices vs. `Len`
140
-
141
- See [issue #23](https://github.com/annotated-types/annotated-types/issues/23) for discussion.
142
-
143
- ### Timezone
144
-
145
- `Timezone` can be used with a `datetime` or a `time` to express which timezones
146
- are allowed. `Annotated[datetime, Timezone(None)]` must be a naive datetime.
147
- `Timezone[...]` ([literal ellipsis](https://docs.python.org/3/library/constants.html#Ellipsis))
148
- expresses that any timezone-aware datetime is allowed. You may also pass a specific
149
- timezone string or [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects)
150
- object such as `Timezone(timezone.utc)` or `Timezone("Africa/Abidjan")` to express that you only
151
- allow a specific timezone, though we note that this is often a symptom of fragile design.
152
-
153
- #### Changed in v0.x.x
154
-
155
- * `Timezone` accepts [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) objects instead of
156
- `timezone`, extending compatibility to [`zoneinfo`](https://docs.python.org/3/library/zoneinfo.html) and third party libraries.
157
-
158
- ### Unit
159
-
160
- `Unit(unit: str)` expresses that the annotated numeric value is the magnitude of
161
- a quantity with the specified unit. For example, `Annotated[float, Unit("m/s")]`
162
- would be a float representing a velocity in meters per second.
163
-
164
- Please note that `annotated_types` itself makes no attempt to parse or validate
165
- the unit string in any way. That is left entirely to downstream libraries,
166
- such as [`pint`](https://pint.readthedocs.io) or
167
- [`astropy.units`](https://docs.astropy.org/en/stable/units/).
168
-
169
- An example of how a library might use this metadata:
170
-
171
- ```python
172
- from annotated_types import Unit
173
- from typing import Annotated, TypeVar, Callable, Any, get_origin, get_args
174
-
175
- # given a type annotated with a unit:
176
- Meters = Annotated[float, Unit("m")]
177
-
178
-
179
- # you can cast the annotation to a specific unit type with any
180
- # callable that accepts a string and returns the desired type
181
- T = TypeVar("T")
182
- def cast_unit(tp: Any, unit_cls: Callable[[str], T]) -> T | None:
183
- if get_origin(tp) is Annotated:
184
- for arg in get_args(tp):
185
- if isinstance(arg, Unit):
186
- return unit_cls(arg.unit)
187
- return None
188
-
189
-
190
- # using `pint`
191
- import pint
192
- pint_unit = cast_unit(Meters, pint.Unit)
193
-
194
-
195
- # using `astropy.units`
196
- import astropy.units as u
197
- astropy_unit = cast_unit(Meters, u.Unit)
198
- ```
199
-
200
- ### Predicate
201
-
202
- `Predicate(func: Callable)` expresses that `func(value)` is truthy for valid values.
203
- Users should prefer the statically inspectable metadata above, but if you need
204
- the full power and flexibility of arbitrary runtime predicates... here it is.
205
-
206
- For some common constraints, we provide generic types:
207
-
208
- * `IsLower = Annotated[T, Predicate(str.islower)]`
209
- * `IsUpper = Annotated[T, Predicate(str.isupper)]`
210
- * `IsDigit = Annotated[T, Predicate(str.isdigit)]`
211
- * `IsFinite = Annotated[T, Predicate(math.isfinite)]`
212
- * `IsNotFinite = Annotated[T, Predicate(Not(math.isfinite))]`
213
- * `IsNan = Annotated[T, Predicate(math.isnan)]`
214
- * `IsNotNan = Annotated[T, Predicate(Not(math.isnan))]`
215
- * `IsInfinite = Annotated[T, Predicate(math.isinf)]`
216
- * `IsNotInfinite = Annotated[T, Predicate(Not(math.isinf))]`
217
-
218
- so that you can write e.g. `x: IsFinite[float] = 2.0` instead of the longer
219
- (but exactly equivalent) `x: Annotated[float, Predicate(math.isfinite)] = 2.0`.
220
-
221
- Some libraries might have special logic to handle known or understandable predicates,
222
- for example by checking for `str.isdigit` and using its presence to both call custom
223
- logic to enforce digit-only strings, and customise some generated external schema.
224
- Users are therefore encouraged to avoid indirection like `lambda s: s.lower()`, in
225
- favor of introspectable methods such as `str.lower` or `re.compile("pattern").search`.
226
-
227
- To enable basic negation of commonly used predicates like `math.isnan` without introducing introspection that makes it impossible for implementers to introspect the predicate we provide a `Not` wrapper that simply negates the predicate in an introspectable manner. Several of the predicates listed above are created in this manner.
228
-
229
- We do not specify what behaviour should be expected for predicates that raise
230
- an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently
231
- skip invalid constraints, or statically raise an error; or it might try calling it
232
- and then propagate or discard the resulting
233
- `TypeError: descriptor 'isdigit' for 'str' objects doesn't apply to a 'int' object`
234
- exception. We encourage libraries to document the behaviour they choose.
235
-
236
- ### Doc
237
-
238
- `doc()` can be used to add documentation information in `Annotated`, for function and method parameters, variables, class attributes, return types, and any place where `Annotated` can be used.
239
-
240
- It expects a value that can be statically analyzed, as the main use case is for static analysis, editors, documentation generators, and similar tools.
241
-
242
- It returns a `DocInfo` class with a single attribute `documentation` containing the value passed to `doc()`.
243
-
244
- This is the early adopter's alternative form of the [`typing-doc` proposal](https://github.com/tiangolo/fastapi/blob/typing-doc/typing_doc.md).
245
-
246
- ### Integrating downstream types with `GroupedMetadata`
247
-
248
- Implementers may choose to provide a convenience wrapper that groups multiple pieces of metadata.
249
- This can help reduce verbosity and cognitive overhead for users.
250
- For example, an implementer like Pydantic might provide a `Field` or `Meta` type that accepts keyword arguments and transforms these into low-level metadata:
251
-
252
- ```python
253
- from dataclasses import dataclass
254
- from typing import Iterator
255
- from annotated_types import GroupedMetadata, Ge
256
-
257
- @dataclass
258
- class Field(GroupedMetadata):
259
- ge: int | None = None
260
- description: str | None = None
261
-
262
- def __iter__(self) -> Iterator[object]:
263
- # Iterating over a GroupedMetadata object should yield annotated-types
264
- # constraint metadata objects which describe it as fully as possible,
265
- # and may include other unknown objects too.
266
- if self.ge is not None:
267
- yield Ge(self.ge)
268
- if self.description is not None:
269
- yield Description(self.description)
270
- ```
271
-
272
- Libraries consuming annotated-types constraints should check for `GroupedMetadata` and unpack it by iterating over the object and treating the results as if they had been "unpacked" in the `Annotated` type. The same logic should be applied to the [PEP 646 `Unpack` type](https://peps.python.org/pep-0646/), so that `Annotated[T, Field(...)]`, `Annotated[T, Unpack[Field(...)]]` and `Annotated[T, *Field(...)]` are all treated consistently.
273
-
274
- Libraries consuming annotated-types should also ignore any metadata they do not recongize that came from unpacking a `GroupedMetadata`, just like they ignore unrecognized metadata in `Annotated` itself.
275
-
276
- Our own `annotated_types.Interval` class is a `GroupedMetadata` which unpacks itself into `Gt`, `Lt`, etc., so this is not an abstract concern. Similarly, `annotated_types.Len` is a `GroupedMetadata` which unpacks itself into `MinLen` (optionally) and `MaxLen`.
277
-
278
- ### Consuming metadata
279
-
280
- We intend to not be prescriptive as to _how_ the metadata and constraints are used, but as an example of how one might parse constraints from types annotations see our [implementation in `test_main.py`](https://github.com/annotated-types/annotated-types/blob/f59cf6d1b5255a0fe359b93896759a180bec30ae/tests/test_main.py#L94-L103).
281
-
282
- It is up to the implementer to determine how this metadata is used.
283
- You could use the metadata for runtime type checking, for generating schemas or to generate example data, amongst other use cases.
284
-
285
- ## Design & History
286
-
287
- This package was designed at the PyCon 2022 sprints by the maintainers of Pydantic
288
- and Hypothesis, with the goal of making it as easy as possible for end-users to
289
- provide more informative annotations for use by runtime libraries.
290
-
291
- It is deliberately minimal, and following PEP-593 allows considerable downstream
292
- discretion in what (if anything!) they choose to support. Nonetheless, we expect
293
- that staying simple and covering _only_ the most common use-cases will give users
294
- and maintainers the best experience we can. If you'd like more constraints for your
295
- types - follow our lead, by defining them and documenting them downstream!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD DELETED
@@ -1,9 +0,0 @@
1
- annotated_types-0.7.0.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
2
- annotated_types-0.7.0.dist-info/METADATA,sha256=7ltqxksJJ0wCYFGBNIQCWTlWQGeAH0hRFdnK3CB895E,15046
3
- annotated_types-0.7.0.dist-info/RECORD,,
4
- annotated_types-0.7.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- annotated_types-0.7.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
6
- annotated_types-0.7.0.dist-info/licenses/LICENSE,sha256=_hBJiEsaDZNCkB6I4H8ykl0ksxIdmXK2poBfuYJLCV0,1083
7
- annotated_types/__init__.py,sha256=RynLsRKUEGI0KimXydlD1fZEfEzWwDo0Uon3zOKhG1Q,13819
8
- annotated_types/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- annotated_types/test_cases.py,sha256=zHFX6EpcMbGJ8FzBYDbO56bPwx_DYIVSKbZM-4B3_lg,6421
 
 
 
 
 
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/REQUESTED DELETED
File without changes
.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL DELETED
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: hatchling 1.24.2
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any
 
 
 
 
 
.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2022 the contributors
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.