moberst commited on
Commit
7845551
·
verified ·
1 Parent(s): b12b5f3

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +121 -0
  2. .gitignore +8 -0
  3. .venv/.gitignore +1 -0
  4. .venv/CACHEDIR.TAG +1 -0
  5. .venv/bin/activate +116 -0
  6. .venv/bin/activate.bat +59 -0
  7. .venv/bin/activate.csh +76 -0
  8. .venv/bin/activate.fish +124 -0
  9. .venv/bin/activate.nu +117 -0
  10. .venv/bin/activate.ps1 +82 -0
  11. .venv/bin/activate_this.py +59 -0
  12. .venv/bin/deactivate.bat +39 -0
  13. .venv/bin/f2py +8 -0
  14. .venv/bin/fastapi +8 -0
  15. .venv/bin/fonttools +8 -0
  16. .venv/bin/gradio +8 -0
  17. .venv/bin/hf +8 -0
  18. .venv/bin/httpx +8 -0
  19. .venv/bin/huggingface-cli +8 -0
  20. .venv/bin/ipython +8 -0
  21. .venv/bin/ipython3 +8 -0
  22. .venv/bin/markdown-it +8 -0
  23. .venv/bin/normalizer +8 -0
  24. .venv/bin/numpy-config +8 -0
  25. .venv/bin/pydoc.bat +22 -0
  26. .venv/bin/pyftmerge +8 -0
  27. .venv/bin/pyftsubset +8 -0
  28. .venv/bin/pygmentize +8 -0
  29. .venv/bin/python +0 -0
  30. .venv/bin/python3 +0 -0
  31. .venv/bin/python3.11 +0 -0
  32. .venv/bin/ruff +3 -0
  33. .venv/bin/tiny-agents +8 -0
  34. .venv/bin/tqdm +8 -0
  35. .venv/bin/ttx +8 -0
  36. .venv/bin/typer +8 -0
  37. .venv/bin/upload_theme +8 -0
  38. .venv/bin/uvicorn +8 -0
  39. .venv/bin/websockets +8 -0
  40. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/INSTALLER +1 -0
  41. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/LICENSE +19 -0
  42. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/METADATA +131 -0
  43. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/RECORD +9 -0
  44. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/REQUESTED +0 -0
  45. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/WHEEL +6 -0
  46. .venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/top_level.txt +2 -0
  47. .venv/lib/python3.11/site-packages/IPython/__init__.py +144 -0
  48. .venv/lib/python3.11/site-packages/IPython/__main__.py +14 -0
  49. .venv/lib/python3.11/site-packages/IPython/core/__init__.py +0 -0
  50. .venv/lib/python3.11/site-packages/IPython/core/alias.py +268 -0
.gitattributes CHANGED
@@ -33,3 +33,124 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ .venv/bin/ruff filter=lfs diff=lfs merge=lfs -text
37
+ .venv/lib/python3.11/site-packages/PIL/_imaging.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
38
+ .venv/lib/python3.11/site-packages/PIL/_imagingcms.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
39
+ .venv/lib/python3.11/site-packages/PIL/_imagingft.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
40
+ .venv/lib/python3.11/site-packages/PIL/_imagingmath.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
41
+ .venv/lib/python3.11/site-packages/_brotli.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
42
+ .venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
43
+ .venv/lib/python3.11/site-packages/contourpy/_contourpy.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
44
+ .venv/lib/python3.11/site-packages/fontTools/cu2qu/cu2qu.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
45
+ .venv/lib/python3.11/site-packages/fontTools/feaLib/lexer.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
46
+ .venv/lib/python3.11/site-packages/fontTools/misc/bezierTools.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
47
+ .venv/lib/python3.11/site-packages/fontTools/pens/momentsPen.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
48
+ .venv/lib/python3.11/site-packages/fontTools/qu2cu/qu2cu.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
49
+ .venv/lib/python3.11/site-packages/fontTools/varLib/iup.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
50
+ .venv/lib/python3.11/site-packages/gradio/templates/frontend/assets/PlotlyPlot-1fQ1lBO3.js.map filter=lfs diff=lfs merge=lfs -text
51
+ .venv/lib/python3.11/site-packages/gradio/templates/frontend/static/fonts/Source[[:space:]]Sans[[:space:]]Pro/SourceSansPro-Bold.woff2 filter=lfs diff=lfs merge=lfs -text
52
+ .venv/lib/python3.11/site-packages/gradio/templates/frontend/static/fonts/Source[[:space:]]Sans[[:space:]]Pro/SourceSansPro-Regular.woff2 filter=lfs diff=lfs merge=lfs -text
53
+ .venv/lib/python3.11/site-packages/gradio/templates/frontend/static/img/Duck.glb filter=lfs diff=lfs merge=lfs -text
54
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/2.DkBldhLH.js.br filter=lfs diff=lfs merge=lfs -text
55
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/Code.CLHciC1X.js.br filter=lfs diff=lfs merge=lfs -text
56
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/Index.Bf5-jbRB.js.br filter=lfs diff=lfs merge=lfs -text
57
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/PlotlyPlot.DVMJ-Hi9.js.br filter=lfs diff=lfs merge=lfs -text
58
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/PlotlyPlot.DVMJ-Hi9.js.map filter=lfs diff=lfs merge=lfs -text
59
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/cytoscape.esm.BlEmlE64.js.br filter=lfs diff=lfs merge=lfs -text
60
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/hls.C_AVPmGC.js.br filter=lfs diff=lfs merge=lfs -text
61
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/index.BoI39RQH.js.br filter=lfs diff=lfs merge=lfs -text
62
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/mermaid.core.B0Ot9kP3.js.br filter=lfs diff=lfs merge=lfs -text
63
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/vega-tooltip.module.D9zSz8iC.js.br filter=lfs diff=lfs merge=lfs -text
64
+ .venv/lib/python3.11/site-packages/gradio/templates/node/build/server/chunks/PlotlyPlot-D4ZO-WDo.js.map filter=lfs diff=lfs merge=lfs -text
65
+ .venv/lib/python3.11/site-packages/hf_xet/hf_xet.abi3.so filter=lfs diff=lfs merge=lfs -text
66
+ .venv/lib/python3.11/site-packages/kiwisolver/_cext.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
67
+ .venv/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
68
+ .venv/lib/python3.11/site-packages/matplotlib/_image.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
69
+ .venv/lib/python3.11/site-packages/matplotlib/_path.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
70
+ .venv/lib/python3.11/site-packages/matplotlib/_qhull.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
71
+ .venv/lib/python3.11/site-packages/matplotlib/_tri.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
72
+ .venv/lib/python3.11/site-packages/matplotlib/backends/_backend_agg.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
73
+ .venv/lib/python3.11/site-packages/matplotlib/backends/_tkagg.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
74
+ .venv/lib/python3.11/site-packages/matplotlib/ft2font.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
75
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf filter=lfs diff=lfs merge=lfs -text
76
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf filter=lfs diff=lfs merge=lfs -text
77
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf filter=lfs diff=lfs merge=lfs -text
78
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf filter=lfs diff=lfs merge=lfs -text
79
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf filter=lfs diff=lfs merge=lfs -text
80
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf filter=lfs diff=lfs merge=lfs -text
81
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf filter=lfs diff=lfs merge=lfs -text
82
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf filter=lfs diff=lfs merge=lfs -text
83
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf filter=lfs diff=lfs merge=lfs -text
84
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf filter=lfs diff=lfs merge=lfs -text
85
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf filter=lfs diff=lfs merge=lfs -text
86
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf filter=lfs diff=lfs merge=lfs -text
87
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf filter=lfs diff=lfs merge=lfs -text
88
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf filter=lfs diff=lfs merge=lfs -text
89
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf filter=lfs diff=lfs merge=lfs -text
90
+ .venv/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf filter=lfs diff=lfs merge=lfs -text
91
+ .venv/lib/python3.11/site-packages/numpy/_core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
92
+ .venv/lib/python3.11/site-packages/numpy/_core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
93
+ .venv/lib/python3.11/site-packages/numpy/_core/_simd.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
94
+ .venv/lib/python3.11/site-packages/numpy/fft/_pocketfft_umath.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
95
+ .venv/lib/python3.11/site-packages/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
96
+ .venv/lib/python3.11/site-packages/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
97
+ .venv/lib/python3.11/site-packages/numpy/random/_common.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
98
+ .venv/lib/python3.11/site-packages/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
99
+ .venv/lib/python3.11/site-packages/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
100
+ .venv/lib/python3.11/site-packages/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
101
+ .venv/lib/python3.11/site-packages/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
102
+ .venv/lib/python3.11/site-packages/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
103
+ .venv/lib/python3.11/site-packages/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
104
+ .venv/lib/python3.11/site-packages/numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0 filter=lfs diff=lfs merge=lfs -text
105
+ .venv/lib/python3.11/site-packages/numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0 filter=lfs diff=lfs merge=lfs -text
106
+ .venv/lib/python3.11/site-packages/numpy.libs/libscipy_openblas64_-8fb3d286.so filter=lfs diff=lfs merge=lfs -text
107
+ .venv/lib/python3.11/site-packages/orjson/orjson.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
108
+ .venv/lib/python3.11/site-packages/pandas/_libs/algos.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
109
+ .venv/lib/python3.11/site-packages/pandas/_libs/arrays.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
110
+ .venv/lib/python3.11/site-packages/pandas/_libs/groupby.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
111
+ .venv/lib/python3.11/site-packages/pandas/_libs/hashing.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
112
+ .venv/lib/python3.11/site-packages/pandas/_libs/hashtable.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
113
+ .venv/lib/python3.11/site-packages/pandas/_libs/index.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
114
+ .venv/lib/python3.11/site-packages/pandas/_libs/internals.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
115
+ .venv/lib/python3.11/site-packages/pandas/_libs/interval.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
116
+ .venv/lib/python3.11/site-packages/pandas/_libs/join.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
117
+ .venv/lib/python3.11/site-packages/pandas/_libs/lib.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
118
+ .venv/lib/python3.11/site-packages/pandas/_libs/missing.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
119
+ .venv/lib/python3.11/site-packages/pandas/_libs/ops.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
120
+ .venv/lib/python3.11/site-packages/pandas/_libs/parsers.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
121
+ .venv/lib/python3.11/site-packages/pandas/_libs/reshape.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
122
+ .venv/lib/python3.11/site-packages/pandas/_libs/sas.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
123
+ .venv/lib/python3.11/site-packages/pandas/_libs/sparse.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
124
+ .venv/lib/python3.11/site-packages/pandas/_libs/testing.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
125
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslib.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
126
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/conversion.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
127
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/dtypes.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
128
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/fields.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
129
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/nattype.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
130
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/np_datetime.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
131
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/offsets.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
132
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/parsing.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
133
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/period.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
134
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/strptime.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
135
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/timedeltas.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
136
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/timestamps.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
137
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/timezones.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
138
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/tzconversion.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
139
+ .venv/lib/python3.11/site-packages/pandas/_libs/tslibs/vectorized.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
140
+ .venv/lib/python3.11/site-packages/pandas/_libs/window/aggregations.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
141
+ .venv/lib/python3.11/site-packages/pandas/_libs/window/indexers.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
142
+ .venv/lib/python3.11/site-packages/pandas/_libs/writers.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
143
+ .venv/lib/python3.11/site-packages/pillow.libs/libavif-01e67780.so.16.3.0 filter=lfs diff=lfs merge=lfs -text
144
+ .venv/lib/python3.11/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0 filter=lfs diff=lfs merge=lfs -text
145
+ .venv/lib/python3.11/site-packages/pillow.libs/libfreetype-083ff72c.so.6.20.2 filter=lfs diff=lfs merge=lfs -text
146
+ .venv/lib/python3.11/site-packages/pillow.libs/libharfbuzz-fe5b8f8d.so.0.61121.0 filter=lfs diff=lfs merge=lfs -text
147
+ .venv/lib/python3.11/site-packages/pillow.libs/libjpeg-8a13c6e0.so.62.4.0 filter=lfs diff=lfs merge=lfs -text
148
+ .venv/lib/python3.11/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17 filter=lfs diff=lfs merge=lfs -text
149
+ .venv/lib/python3.11/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1 filter=lfs diff=lfs merge=lfs -text
150
+ .venv/lib/python3.11/site-packages/pillow.libs/libopenjp2-56811f71.so.2.5.3 filter=lfs diff=lfs merge=lfs -text
151
+ .venv/lib/python3.11/site-packages/pillow.libs/libpng16-d00bd151.so.16.49.0 filter=lfs diff=lfs merge=lfs -text
152
+ .venv/lib/python3.11/site-packages/pillow.libs/libtiff-13a02c81.so.6.1.0 filter=lfs diff=lfs merge=lfs -text
153
+ .venv/lib/python3.11/site-packages/pillow.libs/libwebp-5f0275c0.so.7.1.10 filter=lfs diff=lfs merge=lfs -text
154
+ .venv/lib/python3.11/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0 filter=lfs diff=lfs merge=lfs -text
155
+ .venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
156
+ .venv/lib/python3.11/site-packages/yaml/_yaml.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ build/*
2
+ dist/*
3
+ CLAUDE.md
4
+ *.pdf
5
+ *.png
6
+ Thumbs.db
7
+ Thumbs.db:encryptable
8
+ *.pyc
.venv/.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ *
.venv/CACHEDIR.TAG ADDED
@@ -0,0 +1 @@
 
 
1
+ Signature: 8a477f597d28d172789f06886806bc55
.venv/bin/activate ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ # Get script path (only used if environment is relocatable).
26
+ if [ -n "${BASH_VERSION:+x}" ] ; then
27
+ SCRIPT_PATH="${BASH_SOURCE[0]}"
28
+ if [ "$SCRIPT_PATH" = "$0" ]; then
29
+ # Only bash has a reasonably robust check for source'dness.
30
+ echo "You must source this script: \$ source $0" >&2
31
+ exit 33
32
+ fi
33
+ elif [ -n "${ZSH_VERSION:+x}" ] ; then
34
+ SCRIPT_PATH="${(%):-%x}"
35
+ elif [ -n "${KSH_VERSION:+x}" ] ; then
36
+ SCRIPT_PATH="${.sh.file}"
37
+ fi
38
+
39
+ deactivate () {
40
+ unset -f pydoc >/dev/null 2>&1 || true
41
+
42
+ # reset old environment variables
43
+ # ! [ -z ${VAR+_} ] returns true if VAR is declared at all
44
+ if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
45
+ PATH="$_OLD_VIRTUAL_PATH"
46
+ export PATH
47
+ unset _OLD_VIRTUAL_PATH
48
+ fi
49
+ if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
50
+ PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
51
+ export PYTHONHOME
52
+ unset _OLD_VIRTUAL_PYTHONHOME
53
+ fi
54
+
55
+ # The hash command must be called to get it to forget past
56
+ # commands. Without forgetting past commands the $PATH changes
57
+ # we made may not be respected
58
+ hash -r 2>/dev/null
59
+
60
+ if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
61
+ PS1="$_OLD_VIRTUAL_PS1"
62
+ export PS1
63
+ unset _OLD_VIRTUAL_PS1
64
+ fi
65
+
66
+ unset VIRTUAL_ENV
67
+ unset VIRTUAL_ENV_PROMPT
68
+ if [ ! "${1-}" = "nondestructive" ] ; then
69
+ # Self destruct!
70
+ unset -f deactivate
71
+ fi
72
+ }
73
+
74
+ # unset irrelevant variables
75
+ deactivate nondestructive
76
+
77
+ VIRTUAL_ENV='/home/moberst/repos/ppi-pp/.venv'
78
+ if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
79
+ VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
80
+ fi
81
+ export VIRTUAL_ENV
82
+
83
+ _OLD_VIRTUAL_PATH="$PATH"
84
+ PATH="$VIRTUAL_ENV/bin:$PATH"
85
+ export PATH
86
+
87
+ if [ "xppi-pp" != x ] ; then
88
+ VIRTUAL_ENV_PROMPT="ppi-pp"
89
+ else
90
+ VIRTUAL_ENV_PROMPT=$(basename "$VIRTUAL_ENV")
91
+ fi
92
+ export VIRTUAL_ENV_PROMPT
93
+
94
+ # unset PYTHONHOME if set
95
+ if ! [ -z "${PYTHONHOME+_}" ] ; then
96
+ _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
97
+ unset PYTHONHOME
98
+ fi
99
+
100
+ if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
101
+ _OLD_VIRTUAL_PS1="${PS1-}"
102
+ PS1="(${VIRTUAL_ENV_PROMPT}) ${PS1-}"
103
+ export PS1
104
+ fi
105
+
106
+ # Make sure to unalias pydoc if it's already there
107
+ alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true
108
+
109
+ pydoc () {
110
+ python -m pydoc "$@"
111
+ }
112
+
113
+ # The hash command must be called to get it to forget past
114
+ # commands. Without forgetting past commands the $PATH changes
115
+ # we made may not be respected
116
+ hash -r 2>/dev/null
.venv/bin/activate.bat ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ @for %%i in ("/home/moberst/repos/ppi-pp/.venv") do @set "VIRTUAL_ENV=%%~fi"
23
+
24
+ @set "VIRTUAL_ENV_PROMPT=ppi-pp"
25
+ @if NOT DEFINED VIRTUAL_ENV_PROMPT (
26
+ @for %%d in ("%VIRTUAL_ENV%") do @set "VIRTUAL_ENV_PROMPT=%%~nxd"
27
+ )
28
+
29
+ @if defined _OLD_VIRTUAL_PROMPT (
30
+ @set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
31
+ ) else (
32
+ @if not defined PROMPT (
33
+ @set "PROMPT=$P$G"
34
+ )
35
+ @if not defined VIRTUAL_ENV_DISABLE_PROMPT (
36
+ @set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
37
+ )
38
+ )
39
+ @if not defined VIRTUAL_ENV_DISABLE_PROMPT (
40
+ @set "PROMPT=(%VIRTUAL_ENV_PROMPT%) %PROMPT%"
41
+ )
42
+
43
+ @REM Don't use () to avoid problems with them in %PATH%
44
+ @if defined _OLD_VIRTUAL_PYTHONHOME @goto ENDIFVHOME
45
+ @set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
46
+ :ENDIFVHOME
47
+
48
+ @set PYTHONHOME=
49
+
50
+ @REM if defined _OLD_VIRTUAL_PATH (
51
+ @if not defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH1
52
+ @set "PATH=%_OLD_VIRTUAL_PATH%"
53
+ :ENDIFVPATH1
54
+ @REM ) else (
55
+ @if defined _OLD_VIRTUAL_PATH @goto ENDIFVPATH2
56
+ @set "_OLD_VIRTUAL_PATH=%PATH%"
57
+ :ENDIFVPATH2
58
+
59
+ @set "PATH=%VIRTUAL_ENV%\bin;%PATH%"
.venv/bin/activate.csh ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 '/home/moberst/repos/ppi-pp/.venv'
35
+
36
+ set _OLD_VIRTUAL_PATH="$PATH:q"
37
+ setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q"
38
+
39
+
40
+
41
+ if ('ppi-pp' != "") then
42
+ setenv VIRTUAL_ENV_PROMPT 'ppi-pp'
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 ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 (echo $FISH_VERSION | head -c 1) -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 '/home/moberst/repos/ppi-pp/.venv'
83
+
84
+ # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
85
+ if test (echo $FISH_VERSION | head -c 1) -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 'ppi-pp'
95
+ set -gx VIRTUAL_ENV_PROMPT 'ppi-pp'
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 ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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`,
27
+ # but then simply `deactivate` won't work because it is just an alias to hide
28
+ # the "activate" overlay. You'd need to call `overlay hide foo` manually.
29
+
30
+ export-env {
31
+ def is-string [x] {
32
+ ($x | describe) == 'string'
33
+ }
34
+
35
+ def has-env [...names] {
36
+ $names | each {|n|
37
+ $n in $env
38
+ } | all {|i| $i == true}
39
+ }
40
+
41
+ # Emulates a `test -z`, but better as it handles e.g 'false'
42
+ def is-env-true [name: string] {
43
+ if (has-env $name) {
44
+ # Try to parse 'true', '0', '1', and fail if not convertible
45
+ let parsed = (do -i { $env | get $name | into bool })
46
+ if ($parsed | describe) == 'bool' {
47
+ $parsed
48
+ } else {
49
+ not ($env | get -i $name | is-empty)
50
+ }
51
+ } else {
52
+ false
53
+ }
54
+ }
55
+
56
+ let virtual_env = '/home/moberst/repos/ppi-pp/.venv'
57
+ let bin = 'bin'
58
+
59
+ let is_windows = ($nu.os-info.family) == 'windows'
60
+ let path_name = (if (has-env 'Path') {
61
+ 'Path'
62
+ } else {
63
+ 'PATH'
64
+ }
65
+ )
66
+
67
+ let venv_path = ([$virtual_env $bin] | path join)
68
+ let new_path = ($env | get $path_name | prepend $venv_path)
69
+
70
+ # If there is no default prompt, then use the env name instead
71
+ let virtual_env_prompt = (if ('ppi-pp' | is-empty) {
72
+ ($virtual_env | path basename)
73
+ } else {
74
+ 'ppi-pp'
75
+ })
76
+
77
+ let new_env = {
78
+ $path_name : $new_path
79
+ VIRTUAL_ENV : $virtual_env
80
+ VIRTUAL_ENV_PROMPT : $virtual_env_prompt
81
+ }
82
+
83
+ let new_env = (if (is-env-true 'VIRTUAL_ENV_DISABLE_PROMPT') {
84
+ $new_env
85
+ } else {
86
+ # Creating the new prompt for the session
87
+ let virtual_prefix = $'(char lparen)($virtual_env_prompt)(char rparen) '
88
+
89
+ # Back up the old prompt builder
90
+ let old_prompt_command = (if (has-env 'PROMPT_COMMAND') {
91
+ $env.PROMPT_COMMAND
92
+ } else {
93
+ ''
94
+ })
95
+
96
+ let new_prompt = (if (has-env 'PROMPT_COMMAND') {
97
+ if 'closure' in ($old_prompt_command | describe) {
98
+ {|| $'($virtual_prefix)(do $old_prompt_command)' }
99
+ } else {
100
+ {|| $'($virtual_prefix)($old_prompt_command)' }
101
+ }
102
+ } else {
103
+ {|| $'($virtual_prefix)' }
104
+ })
105
+
106
+ $new_env | merge {
107
+ PROMPT_COMMAND : $new_prompt
108
+ VIRTUAL_PREFIX : $virtual_prefix
109
+ }
110
+ })
111
+
112
+ # Environment variables that will be loaded as the virtual env
113
+ load-env $new_env
114
+ }
115
+
116
+ export alias pydoc = python -m pydoc
117
+ export alias deactivate = overlay hide activate
.venv/bin/activate.ps1 ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 ("ppi-pp" -ne "") {
62
+ $env:VIRTUAL_ENV_PROMPT = "ppi-pp"
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 ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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"] = "ppi-pp" 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.11/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 ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/f2py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from numpy.f2py.f2py2e import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/fastapi ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from fastapi.cli import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/fonttools ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from fontTools.__main__ import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/gradio ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from gradio.cli import cli
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(cli())
.venv/bin/hf ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from huggingface_hub.cli.hf import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/httpx ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from httpx import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/huggingface-cli ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from huggingface_hub.commands.huggingface_cli import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/ipython ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from IPython import start_ipython
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(start_ipython())
.venv/bin/ipython3 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from IPython import start_ipython
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(start_ipython())
.venv/bin/markdown-it ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from markdown_it.cli.parse import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/normalizer ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from charset_normalizer.cli import cli_detect
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(cli_detect())
.venv/bin/numpy-config ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from numpy._configtool import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pydoc.bat ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/pyftmerge ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from fontTools.merge import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pyftsubset ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from fontTools.subset import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pygmentize ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pygments.cmdline import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/python ADDED
Binary file (20.2 kB). View file
 
.venv/bin/python3 ADDED
Binary file (20.2 kB). View file
 
.venv/bin/python3.11 ADDED
Binary file (20.2 kB). View file
 
.venv/bin/ruff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b2576c0128fd8b2200a4b5b19eeb4c1f08f5bfdf67a178d8ed0425089ed7dcdb
3
+ size 36721024
.venv/bin/tiny-agents ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from huggingface_hub.inference._mcp.cli import app
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(app())
.venv/bin/tqdm ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from tqdm.cli import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/ttx ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi-pp/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from fontTools.ttx import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/typer ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from typer.cli import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/upload_theme ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from gradio.themes.upload_theme import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/uvicorn ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from uvicorn.main import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/bin/websockets ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/home/moberst/repos/ppi/.venv/bin/python3
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from websockets.cli import main
6
+ if __name__ == "__main__":
7
+ sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
8
+ sys.exit(main())
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ uv
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/METADATA ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: Brotli
3
+ Version: 1.1.0
4
+ Summary: Python bindings for the Brotli compression library
5
+ Home-page: https://github.com/google/brotli
6
+ Author: The Brotli Authors
7
+ License: MIT
8
+ Platform: Posix
9
+ Platform: MacOS X
10
+ Platform: Windows
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: MacOS :: MacOS X
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: C
19
+ Classifier: Programming Language :: C++
20
+ Classifier: Programming Language :: Python
21
+ Classifier: Programming Language :: Python :: 2
22
+ Classifier: Programming Language :: Python :: 2.7
23
+ Classifier: Programming Language :: Python :: 3
24
+ Classifier: Programming Language :: Python :: 3.3
25
+ Classifier: Programming Language :: Python :: 3.4
26
+ Classifier: Programming Language :: Python :: 3.5
27
+ Classifier: Programming Language :: Unix Shell
28
+ Classifier: Topic :: Software Development :: Libraries
29
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
+ Classifier: Topic :: System :: Archiving
31
+ Classifier: Topic :: System :: Archiving :: Compression
32
+ Classifier: Topic :: Text Processing :: Fonts
33
+ Classifier: Topic :: Utilities
34
+ Description-Content-Type: text/markdown
35
+ License-File: LICENSE
36
+
37
+ <p align="center">
38
+ <img src="https://github.com/google/brotli/actions/workflows/build_test.yml/badge.svg" alt="GitHub Actions Build Status" href="https://github.com/google/brotli/actions?query=branch%3Amaster">
39
+ <img src="https://oss-fuzz-build-logs.storage.googleapis.com/badges/brotli.svg" alt="Fuzzing Status" href="https://oss-fuzz-build-logs.storage.googleapis.com/index.html#brotli">
40
+ </p>
41
+ <p align="center"><img src="https://brotli.org/brotli.svg" alt="Brotli" width="64"></p>
42
+
43
+ ### Introduction
44
+
45
+ Brotli is a generic-purpose lossless compression algorithm that compresses data
46
+ using a combination of a modern variant of the LZ77 algorithm, Huffman coding
47
+ and 2nd order context modeling, with a compression ratio comparable to the best
48
+ currently available general-purpose compression methods. It is similar in speed
49
+ with deflate but offers more dense compression.
50
+
51
+ The specification of the Brotli Compressed Data Format is defined in [RFC 7932](https://tools.ietf.org/html/rfc7932).
52
+
53
+ Brotli is open-sourced under the MIT License, see the LICENSE file.
54
+
55
+ > **Please note:** brotli is a "stream" format; it does not contain
56
+ > meta-information, like checksums or uncompresssed data length. It is possible
57
+ > to modify "raw" ranges of the compressed stream and the decoder will not
58
+ > notice that.
59
+
60
+ ### Build instructions
61
+
62
+ #### Vcpkg
63
+
64
+ You can download and install brotli using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
65
+
66
+ git clone https://github.com/Microsoft/vcpkg.git
67
+ cd vcpkg
68
+ ./bootstrap-vcpkg.sh
69
+ ./vcpkg integrate install
70
+ ./vcpkg install brotli
71
+
72
+ The brotli port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
73
+
74
+ #### Bazel
75
+
76
+ See [Bazel](http://www.bazel.build/)
77
+
78
+ #### CMake
79
+
80
+ The basic commands to build and install brotli are:
81
+
82
+ $ mkdir out && cd out
83
+ $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./installed ..
84
+ $ cmake --build . --config Release --target install
85
+
86
+ You can use other [CMake](https://cmake.org/) configuration.
87
+
88
+ #### Python
89
+
90
+ To install the latest release of the Python module, run the following:
91
+
92
+ $ pip install brotli
93
+
94
+ To install the tip-of-the-tree version, run:
95
+
96
+ $ pip install --upgrade git+https://github.com/google/brotli
97
+
98
+ See the [Python readme](python/README.md) for more details on installing
99
+ from source, development, and testing.
100
+
101
+ ### Contributing
102
+
103
+ We glad to answer/library related questions in
104
+ [brotli mailing list](https://groups.google.com/forum/#!forum/brotli).
105
+
106
+ Regular issues / feature requests should be reported in
107
+ [issue tracker](https://github.com/google/brotli/issues).
108
+
109
+ For reporting vulnerability please read [SECURITY](SECURITY.md).
110
+
111
+ For contributing changes please read [CONTRIBUTING](CONTRIBUTING.md).
112
+
113
+ ### Benchmarks
114
+ * [Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/) / [Unstable Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/unstable/)
115
+ * [Large Text Compression Benchmark](http://mattmahoney.net/dc/text.html)
116
+ * [Lzturbo Benchmark](https://sites.google.com/site/powturbo/home/benchmark)
117
+
118
+ ### Related projects
119
+ > **Disclaimer:** Brotli authors take no responsibility for the third party projects mentioned in this section.
120
+
121
+ Independent [decoder](https://github.com/madler/brotli) implementation by Mark Adler, based entirely on format specification.
122
+
123
+ JavaScript port of brotli [decoder](https://github.com/devongovett/brotli.js). Could be used directly via `npm install brotli`
124
+
125
+ Hand ported [decoder / encoder](https://github.com/dominikhlbg/BrotliHaxe) in haxe by Dominik Homberger. Output source code: JavaScript, PHP, Python, Java and C#
126
+
127
+ 7Zip [plugin](https://github.com/mcmilk/7-Zip-Zstd)
128
+
129
+ Dart [native bindings](https://github.com/thosakwe/brotli)
130
+
131
+ Dart compression framework with [fast FFI-based Brotli implementation](https://pub.dev/documentation/es_compression/latest/brotli/brotli-library.html) with ready-to-use prebuilt binaries for Win/Linux/Mac
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/RECORD ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ Brotli-1.1.0.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
2
+ Brotli-1.1.0.dist-info/LICENSE,sha256=PRgACONpIqTo2uwRw0x68mT-1ZYtB5JK6pKMOOhmPJQ,1084
3
+ Brotli-1.1.0.dist-info/METADATA,sha256=LJosR9yLMqr7jATPCPS3pSzTdjqqD08KpM8lk9ZuUrs,5496
4
+ Brotli-1.1.0.dist-info/RECORD,,
5
+ Brotli-1.1.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ Brotli-1.1.0.dist-info/WHEEL,sha256=48wUIcZcdQ2pWN7qt0HP02Cvv6HIQZGsSgx3PsepNj8,152
7
+ Brotli-1.1.0.dist-info/top_level.txt,sha256=gsS54HrhO3ZveFxeMrKo_7qH4Sm4TbQ7jGLVBEqJ4NI,15
8
+ _brotli.cpython-311-x86_64-linux-gnu.so,sha256=9Z8K8hUOUdF9gkBZ--Iv3t0lkGvGhQa4aRHsyw0tvGM,7455112
9
+ brotli.py,sha256=PnGIVmeFGFHSOwermGwohhd2Fyr44FhgejLQkkIIFiA,1866
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/REQUESTED ADDED
File without changes
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/WHEEL ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.41.2)
3
+ Root-Is-Purelib: false
4
+ Tag: cp311-cp311-manylinux_2_17_x86_64
5
+ Tag: cp311-cp311-manylinux2014_x86_64
6
+
.venv/lib/python3.11/site-packages/Brotli-1.1.0.dist-info/top_level.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ _brotli
2
+ brotli
.venv/lib/python3.11/site-packages/IPython/__init__.py ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PYTHON_ARGCOMPLETE_OK
2
+ """
3
+ IPython: tools for interactive and parallel computing in Python.
4
+
5
+ https://ipython.org
6
+ """
7
+ #-----------------------------------------------------------------------------
8
+ # Copyright (c) 2008-2011, IPython Development Team.
9
+ # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
10
+ # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
11
+ # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
12
+ #
13
+ # Distributed under the terms of the Modified BSD License.
14
+ #
15
+ # The full license is in the file COPYING.txt, distributed with this software.
16
+ #-----------------------------------------------------------------------------
17
+
18
+ #-----------------------------------------------------------------------------
19
+ # Imports
20
+ #-----------------------------------------------------------------------------
21
+
22
+ import sys
23
+ import warnings
24
+
25
+ #-----------------------------------------------------------------------------
26
+ # Setup everything
27
+ #-----------------------------------------------------------------------------
28
+
29
+ # Don't forget to also update setup.py when this changes!
30
+ if sys.version_info < (3, 11):
31
+ raise ImportError(
32
+ """
33
+ IPython 8.31+ supports Python 3.11 and above, following SPEC0
34
+ IPython 8.19+ supports Python 3.10 and above, following SPEC0.
35
+ IPython 8.13+ supports Python 3.9 and above, following NEP 29.
36
+ IPython 8.0-8.12 supports Python 3.8 and above, following NEP 29.
37
+ When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
38
+ Python 3.3 and 3.4 were supported up to IPython 6.x.
39
+ Python 3.5 was supported with IPython 7.0 to 7.9.
40
+ Python 3.6 was supported with IPython up to 7.16.
41
+ Python 3.7 was still supported with the 7.x branch.
42
+
43
+ See IPython `README.rst` file for more information:
44
+
45
+ https://github.com/ipython/ipython/blob/main/README.rst
46
+
47
+ """
48
+ )
49
+
50
+ #-----------------------------------------------------------------------------
51
+ # Setup the top level names
52
+ #-----------------------------------------------------------------------------
53
+
54
+ from .core.getipython import get_ipython
55
+ from .core import release
56
+ from .core.application import Application
57
+ from .terminal.embed import embed
58
+
59
+ from .core.interactiveshell import InteractiveShell
60
+ from .utils.sysinfo import sys_info
61
+ from .utils.frame import extract_module_locals
62
+
63
+ __all__ = ["start_ipython", "embed", "embed_kernel"]
64
+
65
+ # Release data
66
+ __author__ = '%s <%s>' % (release.author, release.author_email)
67
+ __license__ = release.license
68
+ __version__ = release.version
69
+ version_info = release.version_info
70
+ # list of CVEs that should have been patched in this release.
71
+ # this is informational and should not be relied upon.
72
+ __patched_cves__ = {"CVE-2022-21699", "CVE-2023-24816"}
73
+
74
+
75
+ def embed_kernel(module=None, local_ns=None, **kwargs):
76
+ """Embed and start an IPython kernel in a given scope.
77
+
78
+ If you don't want the kernel to initialize the namespace
79
+ from the scope of the surrounding function,
80
+ and/or you want to load full IPython configuration,
81
+ you probably want `IPython.start_kernel()` instead.
82
+
83
+ This is a deprecated alias for `ipykernel.embed.embed_kernel()`,
84
+ to be removed in the future.
85
+ You should import directly from `ipykernel.embed`; this wrapper
86
+ fails anyway if you don't have `ipykernel` package installed.
87
+
88
+ Parameters
89
+ ----------
90
+ module : types.ModuleType, optional
91
+ The module to load into IPython globals (default: caller)
92
+ local_ns : dict, optional
93
+ The namespace to load into IPython user namespace (default: caller)
94
+ **kwargs : various, optional
95
+ Further keyword args are relayed to the IPKernelApp constructor,
96
+ such as `config`, a traitlets :class:`Config` object (see :ref:`configure_start_ipython`),
97
+ allowing configuration of the kernel. Will only have an effect
98
+ on the first embed_kernel call for a given process.
99
+ """
100
+
101
+ warnings.warn(
102
+ "import embed_kernel from ipykernel.embed directly (since 2013)."
103
+ " Importing from IPython will be removed in the future",
104
+ DeprecationWarning,
105
+ stacklevel=2,
106
+ )
107
+
108
+ (caller_module, caller_locals) = extract_module_locals(1)
109
+ if module is None:
110
+ module = caller_module
111
+ if local_ns is None:
112
+ local_ns = dict(**caller_locals)
113
+
114
+ # Only import .zmq when we really need it
115
+ from ipykernel.embed import embed_kernel as real_embed_kernel
116
+ real_embed_kernel(module=module, local_ns=local_ns, **kwargs)
117
+
118
+ def start_ipython(argv=None, **kwargs):
119
+ """Launch a normal IPython instance (as opposed to embedded)
120
+
121
+ `IPython.embed()` puts a shell in a particular calling scope,
122
+ such as a function or method for debugging purposes,
123
+ which is often not desirable.
124
+
125
+ `start_ipython()` does full, regular IPython initialization,
126
+ including loading startup files, configuration, etc.
127
+ much of which is skipped by `embed()`.
128
+
129
+ This is a public API method, and will survive implementation changes.
130
+
131
+ Parameters
132
+ ----------
133
+ argv : list or None, optional
134
+ If unspecified or None, IPython will parse command-line options from sys.argv.
135
+ To prevent any command-line parsing, pass an empty list: `argv=[]`.
136
+ user_ns : dict, optional
137
+ specify this dictionary to initialize the IPython user namespace with particular values.
138
+ **kwargs : various, optional
139
+ Any other kwargs will be passed to the Application constructor,
140
+ such as `config`, a traitlets :class:`Config` object (see :ref:`configure_start_ipython`),
141
+ allowing configuration of the instance (see :ref:`terminal_options`).
142
+ """
143
+ from IPython.terminal.ipapp import launch_new_instance
144
+ return launch_new_instance(argv=argv, **kwargs)
.venv/lib/python3.11/site-packages/IPython/__main__.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PYTHON_ARGCOMPLETE_OK
2
+ # encoding: utf-8
3
+ """Terminal-based IPython entry point."""
4
+ # -----------------------------------------------------------------------------
5
+ # Copyright (c) 2012, IPython Development Team.
6
+ #
7
+ # Distributed under the terms of the Modified BSD License.
8
+ #
9
+ # The full license is in the file COPYING.txt, distributed with this software.
10
+ # -----------------------------------------------------------------------------
11
+
12
+ from IPython import start_ipython
13
+
14
+ start_ipython()
.venv/lib/python3.11/site-packages/IPython/core/__init__.py ADDED
File without changes
.venv/lib/python3.11/site-packages/IPython/core/alias.py ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # encoding: utf-8
2
+ """
3
+ System command aliases.
4
+
5
+ Authors:
6
+
7
+ * Fernando Perez
8
+ * Brian Granger
9
+ """
10
+
11
+ #-----------------------------------------------------------------------------
12
+ # Copyright (C) 2008-2011 The IPython Development Team
13
+ #
14
+ # Distributed under the terms of the BSD License.
15
+ #
16
+ # The full license is in the file COPYING.txt, distributed with this software.
17
+ #-----------------------------------------------------------------------------
18
+
19
+ #-----------------------------------------------------------------------------
20
+ # Imports
21
+ #-----------------------------------------------------------------------------
22
+
23
+ import os
24
+ import re
25
+ import sys
26
+
27
+ from traitlets.config.configurable import Configurable
28
+ from .error import UsageError
29
+
30
+ from traitlets import List, Instance
31
+ from logging import error
32
+
33
+ import typing as t
34
+
35
+
36
+ #-----------------------------------------------------------------------------
37
+ # Utilities
38
+ #-----------------------------------------------------------------------------
39
+
40
+ # This is used as the pattern for calls to split_user_input.
41
+ shell_line_split = re.compile(r'^(\s*)()(\S+)(.*$)')
42
+
43
+ def default_aliases() -> t.List[t.Tuple[str, str]]:
44
+ """Return list of shell aliases to auto-define.
45
+ """
46
+ # Note: the aliases defined here should be safe to use on a kernel
47
+ # regardless of what frontend it is attached to. Frontends that use a
48
+ # kernel in-process can define additional aliases that will only work in
49
+ # their case. For example, things like 'less' or 'clear' that manipulate
50
+ # the terminal should NOT be declared here, as they will only work if the
51
+ # kernel is running inside a true terminal, and not over the network.
52
+
53
+ if os.name == 'posix':
54
+ default_aliases = [('mkdir', 'mkdir'), ('rmdir', 'rmdir'),
55
+ ('mv', 'mv'), ('rm', 'rm'), ('cp', 'cp'),
56
+ ('cat', 'cat'),
57
+ ]
58
+ # Useful set of ls aliases. The GNU and BSD options are a little
59
+ # different, so we make aliases that provide as similar as possible
60
+ # behavior in ipython, by passing the right flags for each platform
61
+ if sys.platform.startswith('linux'):
62
+ ls_aliases = [('ls', 'ls -F --color'),
63
+ # long ls
64
+ ('ll', 'ls -F -o --color'),
65
+ # ls normal files only
66
+ ('lf', 'ls -F -o --color %l | grep ^-'),
67
+ # ls symbolic links
68
+ ('lk', 'ls -F -o --color %l | grep ^l'),
69
+ # directories or links to directories,
70
+ ('ldir', 'ls -F -o --color %l | grep /$'),
71
+ # things which are executable
72
+ ('lx', 'ls -F -o --color %l | grep ^-..x'),
73
+ ]
74
+ elif sys.platform.startswith('openbsd') or sys.platform.startswith('netbsd'):
75
+ # OpenBSD, NetBSD. The ls implementation on these platforms do not support
76
+ # the -G switch and lack the ability to use colorized output.
77
+ ls_aliases = [('ls', 'ls -F'),
78
+ # long ls
79
+ ('ll', 'ls -F -l'),
80
+ # ls normal files only
81
+ ('lf', 'ls -F -l %l | grep ^-'),
82
+ # ls symbolic links
83
+ ('lk', 'ls -F -l %l | grep ^l'),
84
+ # directories or links to directories,
85
+ ('ldir', 'ls -F -l %l | grep /$'),
86
+ # things which are executable
87
+ ('lx', 'ls -F -l %l | grep ^-..x'),
88
+ ]
89
+ else:
90
+ # BSD, OSX, etc.
91
+ ls_aliases = [('ls', 'ls -F -G'),
92
+ # long ls
93
+ ('ll', 'ls -F -l -G'),
94
+ # ls normal files only
95
+ ('lf', 'ls -F -l -G %l | grep ^-'),
96
+ # ls symbolic links
97
+ ('lk', 'ls -F -l -G %l | grep ^l'),
98
+ # directories or links to directories,
99
+ ('ldir', 'ls -F -G -l %l | grep /$'),
100
+ # things which are executable
101
+ ('lx', 'ls -F -l -G %l | grep ^-..x'),
102
+ ]
103
+ default_aliases = default_aliases + ls_aliases
104
+ elif os.name in ['nt', 'dos']:
105
+ default_aliases = [('ls', 'dir /on'),
106
+ ('ddir', 'dir /ad /on'), ('ldir', 'dir /ad /on'),
107
+ ('mkdir', 'mkdir'), ('rmdir', 'rmdir'),
108
+ ('echo', 'echo'), ('ren', 'ren'), ('copy', 'copy'),
109
+ ]
110
+ else:
111
+ default_aliases = []
112
+
113
+ return default_aliases
114
+
115
+
116
+ class AliasError(Exception):
117
+ pass
118
+
119
+
120
+ class InvalidAliasError(AliasError):
121
+ pass
122
+
123
+
124
+ class Alias:
125
+ """Callable object storing the details of one alias.
126
+
127
+ Instances are registered as magic functions to allow use of aliases.
128
+ """
129
+
130
+ # Prepare blacklist
131
+ blacklist = {'cd','popd','pushd','dhist','alias','unalias'}
132
+
133
+ def __init__(self, shell, name, cmd):
134
+ self.shell = shell
135
+ self.name = name
136
+ self.cmd = cmd
137
+ self.__doc__ = "Alias for `!{}`".format(cmd)
138
+ self.nargs = self.validate()
139
+
140
+ def validate(self):
141
+ """Validate the alias, and return the number of arguments."""
142
+ if self.name in self.blacklist:
143
+ raise InvalidAliasError("The name %s can't be aliased "
144
+ "because it is a keyword or builtin." % self.name)
145
+ try:
146
+ caller = self.shell.magics_manager.magics['line'][self.name]
147
+ except KeyError:
148
+ pass
149
+ else:
150
+ if not isinstance(caller, Alias):
151
+ raise InvalidAliasError("The name %s can't be aliased "
152
+ "because it is another magic command." % self.name)
153
+
154
+ if not (isinstance(self.cmd, str)):
155
+ raise InvalidAliasError("An alias command must be a string, "
156
+ "got: %r" % self.cmd)
157
+
158
+ nargs = self.cmd.count('%s') - self.cmd.count('%%s')
159
+
160
+ if (nargs > 0) and (self.cmd.find('%l') >= 0):
161
+ raise InvalidAliasError('The %s and %l specifiers are mutually '
162
+ 'exclusive in alias definitions.')
163
+
164
+ return nargs
165
+
166
+ def __repr__(self):
167
+ return "<alias {} for {!r}>".format(self.name, self.cmd)
168
+
169
+ def __call__(self, rest=''):
170
+ cmd = self.cmd
171
+ nargs = self.nargs
172
+ # Expand the %l special to be the user's input line
173
+ if cmd.find('%l') >= 0:
174
+ cmd = cmd.replace('%l', rest)
175
+ rest = ''
176
+
177
+ if nargs==0:
178
+ if cmd.find('%%s') >= 1:
179
+ cmd = cmd.replace('%%s', '%s')
180
+ # Simple, argument-less aliases
181
+ cmd = '%s %s' % (cmd, rest)
182
+ else:
183
+ # Handle aliases with positional arguments
184
+ args = rest.split(None, nargs)
185
+ if len(args) < nargs:
186
+ raise UsageError('Alias <%s> requires %s arguments, %s given.' %
187
+ (self.name, nargs, len(args)))
188
+ cmd = '%s %s' % (cmd % tuple(args[:nargs]),' '.join(args[nargs:]))
189
+
190
+ self.shell.system(cmd)
191
+
192
+ #-----------------------------------------------------------------------------
193
+ # Main AliasManager class
194
+ #-----------------------------------------------------------------------------
195
+
196
+ class AliasManager(Configurable):
197
+ default_aliases: List = List(default_aliases()).tag(config=True)
198
+ user_aliases: List = List(default_value=[]).tag(config=True)
199
+ shell = Instance(
200
+ "IPython.core.interactiveshell.InteractiveShellABC", allow_none=True
201
+ )
202
+
203
+ def __init__(self, shell=None, **kwargs):
204
+ super(AliasManager, self).__init__(shell=shell, **kwargs)
205
+ # For convenient access
206
+ if self.shell is not None:
207
+ self.linemagics = self.shell.magics_manager.magics["line"]
208
+ self.init_aliases()
209
+
210
+ def init_aliases(self):
211
+ # Load default & user aliases
212
+ for name, cmd in self.default_aliases + self.user_aliases:
213
+ if (
214
+ cmd.startswith("ls ")
215
+ and self.shell is not None
216
+ and self.shell.colors == "nocolor"
217
+ ):
218
+ cmd = cmd.replace(" --color", "")
219
+ self.soft_define_alias(name, cmd)
220
+
221
+ @property
222
+ def aliases(self):
223
+ return [(n, func.cmd) for (n, func) in self.linemagics.items()
224
+ if isinstance(func, Alias)]
225
+
226
+ def soft_define_alias(self, name, cmd):
227
+ """Define an alias, but don't raise on an AliasError."""
228
+ try:
229
+ self.define_alias(name, cmd)
230
+ except AliasError as e:
231
+ error("Invalid alias: %s" % e)
232
+
233
+ def define_alias(self, name, cmd):
234
+ """Define a new alias after validating it.
235
+
236
+ This will raise an :exc:`AliasError` if there are validation
237
+ problems.
238
+ """
239
+ caller = Alias(shell=self.shell, name=name, cmd=cmd)
240
+ self.shell.magics_manager.register_function(caller, magic_kind='line',
241
+ magic_name=name)
242
+
243
+ def get_alias(self, name):
244
+ """Return an alias, or None if no alias by that name exists."""
245
+ aname = self.linemagics.get(name, None)
246
+ return aname if isinstance(aname, Alias) else None
247
+
248
+ def is_alias(self, name):
249
+ """Return whether or not a given name has been defined as an alias"""
250
+ return self.get_alias(name) is not None
251
+
252
+ def undefine_alias(self, name):
253
+ if self.is_alias(name):
254
+ del self.linemagics[name]
255
+ else:
256
+ raise ValueError('%s is not an alias' % name)
257
+
258
+ def clear_aliases(self):
259
+ for name, _ in self.aliases:
260
+ self.undefine_alias(name)
261
+
262
+ def retrieve_alias(self, name):
263
+ """Retrieve the command to which an alias expands."""
264
+ caller = self.get_alias(name)
265
+ if caller:
266
+ return caller.cmd
267
+ else:
268
+ raise ValueError('%s is not an alias' % name)