Spaces:
Paused
Paused
Cleanup part 1
#8
by lekmikdok - opened
This view is limited to 50 files because it contains too many changes. See the raw diff here.
- .venv/.gitignore +0 -1
- .venv/.lock +0 -0
- .venv/CACHEDIR.TAG +0 -1
- .venv/bin/activate +0 -130
- .venv/bin/activate.bat +0 -71
- .venv/bin/activate.csh +0 -76
- .venv/bin/activate.fish +0 -124
- .venv/bin/activate.nu +0 -102
- .venv/bin/activate.ps1 +0 -82
- .venv/bin/activate_this.py +0 -59
- .venv/bin/deactivate.bat +0 -39
- .venv/bin/dotenv +0 -10
- .venv/bin/fastapi +0 -10
- .venv/bin/hf +0 -10
- .venv/bin/httpx +0 -10
- .venv/bin/huggingface-cli +0 -10
- .venv/bin/jsonschema +0 -10
- .venv/bin/markdown-it +0 -10
- .venv/bin/mcp +0 -10
- .venv/bin/pydoc.bat +0 -22
- .venv/bin/pygmentize +0 -10
- .venv/bin/python +0 -0
- .venv/bin/python3 +0 -0
- .venv/bin/python3.12 +0 -0
- .venv/bin/tiny-agents +0 -10
- .venv/bin/tqdm +0 -10
- .venv/bin/typer +0 -10
- .venv/bin/uvicorn +0 -10
- .venv/lib/python3.12/site-packages/__pycache__/_virtualenv.cpython-312.pyc +0 -0
- .venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc +0 -3
- .venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -3
- .venv/lib/python3.12/site-packages/_virtualenv.pth +0 -3
- .venv/lib/python3.12/site-packages/_virtualenv.py +0 -101
- .venv/lib/python3.12/site-packages/_yaml/__init__.py +0 -33
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER +0 -1
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/METADATA +0 -145
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/RECORD +0 -10
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/REQUESTED +0 -0
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/WHEEL +0 -4
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt +0 -4
- .venv/lib/python3.12/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE +0 -21
- .venv/lib/python3.12/site-packages/annotated_doc/__init__.py +0 -3
- .venv/lib/python3.12/site-packages/annotated_doc/main.py +0 -36
- .venv/lib/python3.12/site-packages/annotated_doc/py.typed +0 -0
- .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER +0 -1
- .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA +0 -295
- .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD +0 -9
- .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/REQUESTED +0 -0
- .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL +0 -4
- .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 |
-
[](https://github.com/annotated-types/annotated-types/actions?query=event%3Apush+branch%3Amain+workflow%3ACI)
|
| 33 |
-
[](https://pypi.python.org/pypi/annotated-types)
|
| 34 |
-
[](https://github.com/annotated-types/annotated-types)
|
| 35 |
-
[](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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|