llatos commited on
Commit
6b8808f
·
verified ·
1 Parent(s): 8e62f03

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.DS_Store ADDED
Binary file (6.15 kB). View file
 
.gitattributes CHANGED
@@ -33,3 +33,200 @@ 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/python filter=lfs diff=lfs merge=lfs -text
37
+ .venv/bin/python3 filter=lfs diff=lfs merge=lfs -text
38
+ .venv/bin/python3.12 filter=lfs diff=lfs merge=lfs -text
39
+ .venv/bin/ruff filter=lfs diff=lfs merge=lfs -text
40
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libbrotlicommon.1.1.0.dylib filter=lfs diff=lfs merge=lfs -text
41
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libbrotlidec.1.1.0.dylib filter=lfs diff=lfs merge=lfs -text
42
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libfreetype.6.dylib filter=lfs diff=lfs merge=lfs -text
43
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libharfbuzz.0.dylib filter=lfs diff=lfs merge=lfs -text
44
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libjpeg.62.4.0.dylib filter=lfs diff=lfs merge=lfs -text
45
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/liblcms2.2.dylib filter=lfs diff=lfs merge=lfs -text
46
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/liblzma.5.dylib filter=lfs diff=lfs merge=lfs -text
47
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libopenjp2.2.5.3.dylib filter=lfs diff=lfs merge=lfs -text
48
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libpng16.16.dylib filter=lfs diff=lfs merge=lfs -text
49
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libtiff.6.dylib filter=lfs diff=lfs merge=lfs -text
50
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libwebp.7.dylib filter=lfs diff=lfs merge=lfs -text
51
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libwebpmux.3.dylib filter=lfs diff=lfs merge=lfs -text
52
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libxcb.1.1.0.dylib filter=lfs diff=lfs merge=lfs -text
53
+ .venv/lib/python3.12/site-packages/PIL/.dylibs/libz.1.3.1.zlib-ng.dylib filter=lfs diff=lfs merge=lfs -text
54
+ .venv/lib/python3.12/site-packages/PIL/__pycache__/Image.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
55
+ .venv/lib/python3.12/site-packages/PIL/_imaging.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
56
+ .venv/lib/python3.12/site-packages/PIL/_imagingft.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
57
+ .venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
58
+ .venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
59
+ .venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
60
+ .venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
61
+ .venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
62
+ .venv/lib/python3.12/site-packages/click/__pycache__/core.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
63
+ .venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust.abi3.so filter=lfs diff=lfs merge=lfs -text
64
+ .venv/lib/python3.12/site-packages/cryptography/x509/__pycache__/extensions.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
65
+ .venv/lib/python3.12/site-packages/gradio/__pycache__/blocks.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
66
+ .venv/lib/python3.12/site-packages/gradio/_frontend_code/lite/dist/assets/Canvas3D-BNUzHJMJ.js.map filter=lfs diff=lfs merge=lfs -text
67
+ .venv/lib/python3.12/site-packages/gradio/_frontend_code/lite/dist/assets/PlotlyPlot-CQtop1ne.js.map filter=lfs diff=lfs merge=lfs -text
68
+ .venv/lib/python3.12/site-packages/gradio/_frontend_code/lite/dist/assets/gradio-5.20.1-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
69
+ .venv/lib/python3.12/site-packages/gradio/_frontend_code/lite/dist/assets/gradio_client-1.7.2-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
70
+ .venv/lib/python3.12/site-packages/gradio/templates/frontend/assets/Canvas3D-B4hdlRYx.js.map filter=lfs diff=lfs merge=lfs -text
71
+ .venv/lib/python3.12/site-packages/gradio/templates/frontend/assets/PlotlyPlot-DSYhxG2K.js.map filter=lfs diff=lfs merge=lfs -text
72
+ .venv/lib/python3.12/site-packages/gradio/templates/frontend/static/fonts/Source[[:space:]]Sans[[:space:]]Pro/SourceSansPro-Bold.woff2 filter=lfs diff=lfs merge=lfs -text
73
+ .venv/lib/python3.12/site-packages/gradio/templates/frontend/static/fonts/Source[[:space:]]Sans[[:space:]]Pro/SourceSansPro-Regular.woff2 filter=lfs diff=lfs merge=lfs -text
74
+ .venv/lib/python3.12/site-packages/gradio/templates/frontend/static/img/Duck.glb filter=lfs diff=lfs merge=lfs -text
75
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/2.B3L4zow3.js.br filter=lfs diff=lfs merge=lfs -text
76
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/AltairPlot.7au1hBkw.js.br filter=lfs diff=lfs merge=lfs -text
77
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/Canvas3D.DW1PYBQ2.js.br filter=lfs diff=lfs merge=lfs -text
78
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/Index.CIaqC43S.js.br filter=lfs diff=lfs merge=lfs -text
79
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/Index.D1QC_EcI.js.br filter=lfs diff=lfs merge=lfs -text
80
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/PlotlyPlot.DDNVrHQO.js.br filter=lfs diff=lfs merge=lfs -text
81
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/hls.CFPBCiRi.js.br filter=lfs diff=lfs merge=lfs -text
82
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/vega-embed.module.DMA2qfI3.js.br filter=lfs diff=lfs merge=lfs -text
83
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/client/_app/immutable/chunks/vega-tooltip.module.Cy27XviU.js.br filter=lfs diff=lfs merge=lfs -text
84
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/server/chunks/Canvas3D-KPqQQZrD.js.map filter=lfs diff=lfs merge=lfs -text
85
+ .venv/lib/python3.12/site-packages/gradio/templates/node/build/server/chunks/PlotlyPlot-CCSoSx2P.js.map filter=lfs diff=lfs merge=lfs -text
86
+ .venv/lib/python3.12/site-packages/gradio_client/__pycache__/media_data.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
87
+ .venv/lib/python3.12/site-packages/huggingface_hub/__pycache__/hf_api.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
88
+ .venv/lib/python3.12/site-packages/huggingface_hub/inference/__pycache__/_client.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
89
+ .venv/lib/python3.12/site-packages/huggingface_hub/inference/_generated/__pycache__/_async_client.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
90
+ .venv/lib/python3.12/site-packages/idna/__pycache__/uts46data.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
91
+ .venv/lib/python3.12/site-packages/jinja2/__pycache__/compiler.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
92
+ .venv/lib/python3.12/site-packages/markupsafe/_speedups.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
93
+ .venv/lib/python3.12/site-packages/numpy/_core/__pycache__/_add_newdocs.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
94
+ .venv/lib/python3.12/site-packages/numpy/_core/__pycache__/fromnumeric.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
95
+ .venv/lib/python3.12/site-packages/numpy/_core/_multiarray_tests.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
96
+ .venv/lib/python3.12/site-packages/numpy/_core/_multiarray_umath.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
97
+ .venv/lib/python3.12/site-packages/numpy/_core/_simd.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
98
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_datetime.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
99
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_dtype.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
100
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_multiarray.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
101
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_nditer.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
102
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_numeric.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
103
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_regression.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
104
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_ufunc.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
105
+ .venv/lib/python3.12/site-packages/numpy/_core/tests/__pycache__/test_umath.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
106
+ .venv/lib/python3.12/site-packages/numpy/f2py/__pycache__/crackfortran.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
107
+ .venv/lib/python3.12/site-packages/numpy/fft/_pocketfft_umath.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
108
+ .venv/lib/python3.12/site-packages/numpy/lib/__pycache__/_function_base_impl.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
109
+ .venv/lib/python3.12/site-packages/numpy/lib/tests/__pycache__/test_function_base.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
110
+ .venv/lib/python3.12/site-packages/numpy/lib/tests/__pycache__/test_io.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
111
+ .venv/lib/python3.12/site-packages/numpy/linalg/__pycache__/_linalg.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
112
+ .venv/lib/python3.12/site-packages/numpy/linalg/_umath_linalg.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
113
+ .venv/lib/python3.12/site-packages/numpy/linalg/tests/__pycache__/test_linalg.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
114
+ .venv/lib/python3.12/site-packages/numpy/ma/__pycache__/core.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
115
+ .venv/lib/python3.12/site-packages/numpy/ma/tests/__pycache__/test_core.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
116
+ .venv/lib/python3.12/site-packages/numpy/ma/tests/__pycache__/test_extras.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
117
+ .venv/lib/python3.12/site-packages/numpy/random/_bounded_integers.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
118
+ .venv/lib/python3.12/site-packages/numpy/random/_common.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
119
+ .venv/lib/python3.12/site-packages/numpy/random/_generator.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
120
+ .venv/lib/python3.12/site-packages/numpy/random/_mt19937.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
121
+ .venv/lib/python3.12/site-packages/numpy/random/_pcg64.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
122
+ .venv/lib/python3.12/site-packages/numpy/random/_philox.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
123
+ .venv/lib/python3.12/site-packages/numpy/random/bit_generator.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
124
+ .venv/lib/python3.12/site-packages/numpy/random/mtrand.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
125
+ .venv/lib/python3.12/site-packages/numpy/random/tests/__pycache__/test_generator_mt19937.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
126
+ .venv/lib/python3.12/site-packages/numpy/random/tests/__pycache__/test_random.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
127
+ .venv/lib/python3.12/site-packages/numpy/random/tests/__pycache__/test_randomstate.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
128
+ .venv/lib/python3.12/site-packages/numpy/testing/_private/__pycache__/utils.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
129
+ .venv/lib/python3.12/site-packages/numpy/testing/tests/__pycache__/test_utils.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
130
+ .venv/lib/python3.12/site-packages/orjson/orjson.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
131
+ .venv/lib/python3.12/site-packages/pandas/_libs/algos.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
132
+ .venv/lib/python3.12/site-packages/pandas/_libs/arrays.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
133
+ .venv/lib/python3.12/site-packages/pandas/_libs/groupby.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
134
+ .venv/lib/python3.12/site-packages/pandas/_libs/hashing.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
135
+ .venv/lib/python3.12/site-packages/pandas/_libs/hashtable.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
136
+ .venv/lib/python3.12/site-packages/pandas/_libs/index.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
137
+ .venv/lib/python3.12/site-packages/pandas/_libs/internals.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
138
+ .venv/lib/python3.12/site-packages/pandas/_libs/interval.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
139
+ .venv/lib/python3.12/site-packages/pandas/_libs/join.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
140
+ .venv/lib/python3.12/site-packages/pandas/_libs/lib.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
141
+ .venv/lib/python3.12/site-packages/pandas/_libs/missing.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
142
+ .venv/lib/python3.12/site-packages/pandas/_libs/ops.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
143
+ .venv/lib/python3.12/site-packages/pandas/_libs/parsers.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
144
+ .venv/lib/python3.12/site-packages/pandas/_libs/properties.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
145
+ .venv/lib/python3.12/site-packages/pandas/_libs/reshape.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
146
+ .venv/lib/python3.12/site-packages/pandas/_libs/sas.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
147
+ .venv/lib/python3.12/site-packages/pandas/_libs/sparse.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
148
+ .venv/lib/python3.12/site-packages/pandas/_libs/testing.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
149
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslib.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
150
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/ccalendar.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
151
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/conversion.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
152
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/dtypes.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
153
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/fields.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
154
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/nattype.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
155
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/np_datetime.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
156
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/offsets.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
157
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/parsing.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
158
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/period.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
159
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/strptime.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
160
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/timedeltas.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
161
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/timestamps.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
162
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/timezones.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
163
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/tzconversion.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
164
+ .venv/lib/python3.12/site-packages/pandas/_libs/tslibs/vectorized.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
165
+ .venv/lib/python3.12/site-packages/pandas/_libs/window/aggregations.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
166
+ .venv/lib/python3.12/site-packages/pandas/_libs/window/indexers.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
167
+ .venv/lib/python3.12/site-packages/pandas/_libs/writers.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
168
+ .venv/lib/python3.12/site-packages/pandas/core/__pycache__/frame.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
169
+ .venv/lib/python3.12/site-packages/pandas/core/__pycache__/generic.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
170
+ .venv/lib/python3.12/site-packages/pandas/core/__pycache__/indexing.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
171
+ .venv/lib/python3.12/site-packages/pandas/core/__pycache__/resample.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
172
+ .venv/lib/python3.12/site-packages/pandas/core/__pycache__/series.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
173
+ .venv/lib/python3.12/site-packages/pandas/core/arrays/__pycache__/categorical.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
174
+ .venv/lib/python3.12/site-packages/pandas/core/arrays/arrow/__pycache__/array.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
175
+ .venv/lib/python3.12/site-packages/pandas/core/groupby/__pycache__/generic.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
176
+ .venv/lib/python3.12/site-packages/pandas/core/groupby/__pycache__/groupby.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
177
+ .venv/lib/python3.12/site-packages/pandas/core/indexes/__pycache__/base.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
178
+ .venv/lib/python3.12/site-packages/pandas/core/indexes/__pycache__/multi.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
179
+ .venv/lib/python3.12/site-packages/pandas/core/strings/__pycache__/accessor.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
180
+ .venv/lib/python3.12/site-packages/pandas/io/__pycache__/pytables.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
181
+ .venv/lib/python3.12/site-packages/pandas/io/__pycache__/sql.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
182
+ .venv/lib/python3.12/site-packages/pandas/io/__pycache__/stata.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
183
+ .venv/lib/python3.12/site-packages/pandas/io/formats/__pycache__/style.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
184
+ .venv/lib/python3.12/site-packages/pandas/tests/__pycache__/test_algos.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
185
+ .venv/lib/python3.12/site-packages/pandas/tests/arithmetic/__pycache__/test_datetime64.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
186
+ .venv/lib/python3.12/site-packages/pandas/tests/arithmetic/__pycache__/test_timedelta64.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
187
+ .venv/lib/python3.12/site-packages/pandas/tests/computation/__pycache__/test_eval.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
188
+ .venv/lib/python3.12/site-packages/pandas/tests/copy_view/__pycache__/test_methods.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
189
+ .venv/lib/python3.12/site-packages/pandas/tests/dtypes/__pycache__/test_inference.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
190
+ .venv/lib/python3.12/site-packages/pandas/tests/extension/__pycache__/test_arrow.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
191
+ .venv/lib/python3.12/site-packages/pandas/tests/frame/__pycache__/test_arithmetic.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
192
+ .venv/lib/python3.12/site-packages/pandas/tests/frame/__pycache__/test_constructors.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
193
+ .venv/lib/python3.12/site-packages/pandas/tests/frame/__pycache__/test_reductions.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
194
+ .venv/lib/python3.12/site-packages/pandas/tests/frame/__pycache__/test_stack_unstack.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
195
+ .venv/lib/python3.12/site-packages/pandas/tests/frame/indexing/__pycache__/test_indexing.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
196
+ .venv/lib/python3.12/site-packages/pandas/tests/groupby/__pycache__/test_categorical.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
197
+ .venv/lib/python3.12/site-packages/pandas/tests/groupby/__pycache__/test_groupby.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
198
+ .venv/lib/python3.12/site-packages/pandas/tests/indexing/__pycache__/test_loc.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
199
+ .venv/lib/python3.12/site-packages/pandas/tests/io/__pycache__/test_sql.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
200
+ .venv/lib/python3.12/site-packages/pandas/tests/io/__pycache__/test_stata.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
201
+ .venv/lib/python3.12/site-packages/pandas/tests/io/formats/__pycache__/test_format.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
202
+ .venv/lib/python3.12/site-packages/pandas/tests/io/json/__pycache__/test_pandas.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
203
+ .venv/lib/python3.12/site-packages/pandas/tests/plotting/__pycache__/test_datetimelike.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
204
+ .venv/lib/python3.12/site-packages/pandas/tests/plotting/frame/__pycache__/test_frame.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
205
+ .venv/lib/python3.12/site-packages/pandas/tests/resample/__pycache__/test_datetime_index.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
206
+ .venv/lib/python3.12/site-packages/pandas/tests/reshape/__pycache__/test_pivot.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
207
+ .venv/lib/python3.12/site-packages/pandas/tests/reshape/merge/__pycache__/test_merge.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
208
+ .venv/lib/python3.12/site-packages/pandas/tests/series/__pycache__/test_constructors.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
209
+ .venv/lib/python3.12/site-packages/pandas/tests/tools/__pycache__/test_to_datetime.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
210
+ .venv/lib/python3.12/site-packages/pdfminer/__pycache__/fontmetrics.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
211
+ .venv/lib/python3.12/site-packages/pdfminer/__pycache__/glyphlist.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
212
+ .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
213
+ .venv/lib/python3.12/site-packages/pip/_vendor/distlib/t64-arm.exe filter=lfs diff=lfs merge=lfs -text
214
+ .venv/lib/python3.12/site-packages/pip/_vendor/distlib/t64.exe filter=lfs diff=lfs merge=lfs -text
215
+ .venv/lib/python3.12/site-packages/pip/_vendor/distlib/w64-arm.exe filter=lfs diff=lfs merge=lfs -text
216
+ .venv/lib/python3.12/site-packages/pip/_vendor/distlib/w64.exe filter=lfs diff=lfs merge=lfs -text
217
+ .venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
218
+ .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
219
+ .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
220
+ .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
221
+ .venv/lib/python3.12/site-packages/pycparser/__pycache__/yacctab.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
222
+ .venv/lib/python3.12/site-packages/pycparser/ply/__pycache__/yacc.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
223
+ .venv/lib/python3.12/site-packages/pydantic/__pycache__/json_schema.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
224
+ .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_generate_schema.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
225
+ .venv/lib/python3.12/site-packages/pydantic_core/__pycache__/core_schema.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
226
+ .venv/lib/python3.12/site-packages/pydantic_core/_pydantic_core.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
227
+ .venv/lib/python3.12/site-packages/pygments/lexers/__pycache__/lisp.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
228
+ .venv/lib/python3.12/site-packages/pypdfium2_raw/__pycache__/bindings.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
229
+ .venv/lib/python3.12/site-packages/pypdfium2_raw/libpdfium.dylib filter=lfs diff=lfs merge=lfs -text
230
+ .venv/lib/python3.12/site-packages/rich/__pycache__/_emoji_codes.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
231
+ .venv/lib/python3.12/site-packages/rich/__pycache__/console.cpython-312.pyc filter=lfs diff=lfs merge=lfs -text
232
+ .venv/lib/python3.12/site-packages/yaml/_yaml.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text
.gradio/certificate.pem ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
3
+ TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
4
+ cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
5
+ WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
6
+ ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
7
+ MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
8
+ h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
9
+ 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
10
+ A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
11
+ T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
12
+ B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
13
+ B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
14
+ KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
15
+ OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
16
+ jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
17
+ qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
18
+ rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
19
+ HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
20
+ hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
21
+ ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
22
+ 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
23
+ NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
24
+ ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
25
+ TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
26
+ jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
27
+ oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
28
+ 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
29
+ mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
30
+ emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
31
+ -----END CERTIFICATE-----
.idea/.gitignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
4
+ # Editor-based HTTP Client requests
5
+ /httpRequests/
6
+ # Datasource local storage ignored files
7
+ /dataSources/
8
+ /dataSources.local.xml
.idea/git_toolbox_blame.xml ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GitToolBoxBlameSettings">
4
+ <option name="version" value="2" />
5
+ </component>
6
+ </project>
.idea/git_toolbox_prj.xml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GitToolBoxProjectSettings">
4
+ <option name="commitMessageIssueKeyValidationOverride">
5
+ <BoolValueOverride>
6
+ <option name="enabled" value="true" />
7
+ </BoolValueOverride>
8
+ </option>
9
+ <option name="commitMessageValidationEnabledOverride">
10
+ <BoolValueOverride>
11
+ <option name="enabled" value="true" />
12
+ </BoolValueOverride>
13
+ </option>
14
+ </component>
15
+ </project>
.idea/inspectionProfiles/Project_Default.xml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
5
+ <option name="ignoredPackages">
6
+ <value>
7
+ <list size="6">
8
+ <item index="0" class="java.lang.String" itemvalue="tokenizers" />
9
+ <item index="1" class="java.lang.String" itemvalue="transformers" />
10
+ <item index="2" class="java.lang.String" itemvalue="triton" />
11
+ <item index="3" class="java.lang.String" itemvalue="torch" />
12
+ <item index="4" class="java.lang.String" itemvalue="torchvision" />
13
+ <item index="5" class="java.lang.String" itemvalue="torchaudio" />
14
+ </list>
15
+ </value>
16
+ </option>
17
+ </inspection_tool>
18
+ </profile>
19
+ </component>
.idea/inspectionProfiles/profiles_settings.xml ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ <component name="InspectionProjectProfileManager">
2
+ <settings>
3
+ <option name="USE_PROJECT_PROFILE" value="false" />
4
+ <version value="1.0" />
5
+ </settings>
6
+ </component>
.idea/misc.xml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Black">
4
+ <option name="sdkName" value="Python 3.12 (unimoConvertPdfToExcel)" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (unimoConvertPdfToExcel)" project-jdk-type="Python SDK" />
7
+ </project>
.idea/modules.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/unimoConvertPdfToExcel.iml" filepath="$PROJECT_DIR$/.idea/unimoConvertPdfToExcel.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
.idea/unimoConvertPdfToExcel.iml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="PYTHON_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/.venv" />
6
+ </content>
7
+ <orderEntry type="jdk" jdkName="Python 3.12 (unimoConvertPdfToExcel)" jdkType="Python SDK" />
8
+ <orderEntry type="sourceFolder" forTests="false" />
9
+ </component>
10
+ </module>
.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
.idea/workspace.xml ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="ChangeListManager">
7
+ <list default="true" id="d5879944-fd41-453b-9ce8-8ffb1872c926" name="Changes" comment="Refine PDF processing and dynamic output generation.&#10;&#10;Introduced timestamped dynamic filenames for Excel outputs and enhanced pattern matching for key data extraction. Improved handling of &quot;VLR.COMISSAO&quot; by dynamically identifying valid monetary values, and updated &quot;NOME DO CLIENTE&quot; formatting logic to support edge cases. These changes ensure better reliability and flexibility in data processing." />
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="Git.Settings">
14
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
15
+ </component>
16
+ <component name="GitHubPullRequestSearchHistory">{
17
+ &quot;lastFilter&quot;: {
18
+ &quot;state&quot;: &quot;OPEN&quot;,
19
+ &quot;assignee&quot;: &quot;Santos-Jefferson&quot;
20
+ }
21
+ }</component>
22
+ <component name="GithubPullRequestsUISettings">{
23
+ &quot;selectedUrlAndAccountId&quot;: {
24
+ &quot;url&quot;: &quot;https://github.com/Santos-Jefferson/unimoConvertPdfToExcel.git&quot;,
25
+ &quot;accountId&quot;: &quot;e63bb271-a277-4fac-8f22-2136b092c782&quot;
26
+ }
27
+ }</component>
28
+ <component name="KubernetesApiPersistence">{}</component>
29
+ <component name="KubernetesApiProvider">{
30
+ &quot;isMigrated&quot;: true
31
+ }</component>
32
+ <component name="ProjectColorInfo">{
33
+ &quot;associatedIndex&quot;: 7
34
+ }</component>
35
+ <component name="ProjectId" id="2uBZHqTfVu8U3HRjyiccGmZByXx" />
36
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
37
+ <component name="ProjectViewState">
38
+ <option name="hideEmptyMiddlePackages" value="true" />
39
+ <option name="showLibraryContents" value="true" />
40
+ <option name="sortKey" value="BY_TIME_DESCENDING" />
41
+ </component>
42
+ <component name="PropertiesComponent">{
43
+ &quot;keyToString&quot;: {
44
+ &quot;Python.main.executor&quot;: &quot;Run&quot;,
45
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
46
+ &quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
47
+ &quot;git-widget-placeholder&quot;: &quot;main&quot;,
48
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
49
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
50
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
51
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
52
+ &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
53
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
54
+ }
55
+ }</component>
56
+ <component name="RunManager">
57
+ <configuration name="main" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
58
+ <module name="unimoConvertPdfToExcel" />
59
+ <option name="ENV_FILES" value="" />
60
+ <option name="INTERPRETER_OPTIONS" value="" />
61
+ <option name="PARENT_ENVS" value="true" />
62
+ <envs>
63
+ <env name="PYTHONUNBUFFERED" value="1" />
64
+ </envs>
65
+ <option name="SDK_HOME" value="" />
66
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
67
+ <option name="IS_MODULE_SDK" value="true" />
68
+ <option name="ADD_CONTENT_ROOTS" value="true" />
69
+ <option name="ADD_SOURCE_ROOTS" value="true" />
70
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
71
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
72
+ <option name="PARAMETERS" value="" />
73
+ <option name="SHOW_COMMAND_LINE" value="false" />
74
+ <option name="EMULATE_TERMINAL" value="false" />
75
+ <option name="MODULE_MODE" value="false" />
76
+ <option name="REDIRECT_INPUT" value="false" />
77
+ <option name="INPUT_FILE" value="" />
78
+ <method v="2" />
79
+ </configuration>
80
+ </component>
81
+ <component name="SharedIndexes">
82
+ <attachedChunks>
83
+ <set>
84
+ <option value="bundled-js-predefined-d6986cc7102b-5c90d61e3bab-JavaScript-PY-242.23726.102" />
85
+ <option value="bundled-python-sdk-5e1850174b45-399fe30bd8c1-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-242.23726.102" />
86
+ </set>
87
+ </attachedChunks>
88
+ </component>
89
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
90
+ <component name="TaskManager">
91
+ <task active="true" id="Default" summary="Default task">
92
+ <changelist id="d5879944-fd41-453b-9ce8-8ffb1872c926" name="Changes" comment="" />
93
+ <created>1741723843297</created>
94
+ <option name="number" value="Default" />
95
+ <option name="presentableId" value="Default" />
96
+ <updated>1741723843297</updated>
97
+ <workItem from="1741723845706" duration="7389000" />
98
+ </task>
99
+ <task id="LOCAL-00001" summary="Add PDF to Excel conversion with Gradio interface&#10;&#10;This commit introduces a Gradio-based application to convert financial PDFs into Brazilian-formatted Excel files. It extracts and processes structured data, ensures proper formatting, and allows users to upload PDFs and download the result seamlessly. Configuration for the Python SDK was also updated in project settings.">
100
+ <option name="closed" value="true" />
101
+ <created>1741724207474</created>
102
+ <option name="number" value="00001" />
103
+ <option name="presentableId" value="LOCAL-00001" />
104
+ <option name="project" value="LOCAL" />
105
+ <updated>1741724207474</updated>
106
+ </task>
107
+ <task id="LOCAL-00002" summary="Update data processing and Gradio UI outputs&#10;&#10;Added formatting adjustments for client names in the data pipeline and modified the function to return both the dataframe and file path. Updated Gradio UI to display a preview of extracted data alongside the downloadable file. Included IntelliJ project settings for Git Toolbox integration.">
108
+ <option name="closed" value="true" />
109
+ <created>1741726570668</created>
110
+ <option name="number" value="00002" />
111
+ <option name="presentableId" value="LOCAL-00002" />
112
+ <option name="project" value="LOCAL" />
113
+ <updated>1741726570668</updated>
114
+ </task>
115
+ <task id="LOCAL-00003" summary="Refine PDF processing and dynamic output generation.&#10;&#10;Introduced timestamped dynamic filenames for Excel outputs and enhanced pattern matching for key data extraction. Improved handling of &quot;VLR.COMISSAO&quot; by dynamically identifying valid monetary values, and updated &quot;NOME DO CLIENTE&quot; formatting logic to support edge cases. These changes ensure better reliability and flexibility in data processing.">
116
+ <option name="closed" value="true" />
117
+ <created>1741728036586</created>
118
+ <option name="number" value="00003" />
119
+ <option name="presentableId" value="LOCAL-00003" />
120
+ <option name="project" value="LOCAL" />
121
+ <updated>1741728036586</updated>
122
+ </task>
123
+ <option name="localTasksCounter" value="4" />
124
+ <servers />
125
+ </component>
126
+ <component name="TypeScriptGeneratedFilesManager">
127
+ <option name="version" value="3" />
128
+ </component>
129
+ <component name="VcsManagerConfiguration">
130
+ <MESSAGE value="Add PDF to Excel conversion with Gradio interface&#10;&#10;This commit introduces a Gradio-based application to convert financial PDFs into Brazilian-formatted Excel files. It extracts and processes structured data, ensures proper formatting, and allows users to upload PDFs and download the result seamlessly. Configuration for the Python SDK was also updated in project settings." />
131
+ <MESSAGE value="Update data processing and Gradio UI outputs&#10;&#10;Added formatting adjustments for client names in the data pipeline and modified the function to return both the dataframe and file path. Updated Gradio UI to display a preview of extracted data alongside the downloadable file. Included IntelliJ project settings for Git Toolbox integration." />
132
+ <MESSAGE value="Refine PDF processing and dynamic output generation.&#10;&#10;Introduced timestamped dynamic filenames for Excel outputs and enhanced pattern matching for key data extraction. Improved handling of &quot;VLR.COMISSAO&quot; by dynamically identifying valid monetary values, and updated &quot;NOME DO CLIENTE&quot; formatting logic to support edge cases. These changes ensure better reliability and flexibility in data processing." />
133
+ <option name="LAST_COMMIT_MESSAGE" value="Refine PDF processing and dynamic output generation.&#10;&#10;Introduced timestamped dynamic filenames for Excel outputs and enhanced pattern matching for key data extraction. Improved handling of &quot;VLR.COMISSAO&quot; by dynamically identifying valid monetary values, and updated &quot;NOME DO CLIENTE&quot; formatting logic to support edge cases. These changes ensure better reliability and flexibility in data processing." />
134
+ </component>
135
+ <component name="XDebuggerManager">
136
+ <breakpoint-manager>
137
+ <breakpoints>
138
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
139
+ <url>file://$PROJECT_DIR$/main.py</url>
140
+ <line>89</line>
141
+ <option name="timeStamp" value="1" />
142
+ </line-breakpoint>
143
+ </breakpoints>
144
+ </breakpoint-manager>
145
+ </component>
146
+ <component name="com.intellij.coverage.CoverageDataManagerImpl">
147
+ <SUITE FILE_PATH="coverage/unimoConvertPdfToExcel$main.coverage" NAME="main Coverage Results" MODIFIED="1741727988386" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
148
+ </component>
149
+ </project>
.venv/.DS_Store ADDED
Binary file (6.15 kB). View file
 
.venv/.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ # created by virtualenv automatically
2
+ *
.venv/bin/__pycache__/dumppdf.cpython-312.pyc ADDED
Binary file (19.3 kB). View file
 
.venv/bin/__pycache__/pdf2txt.cpython-312.pyc ADDED
Binary file (11 kB). View file
 
.venv/bin/activate ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file must be used with "source bin/activate" *from bash*
2
+ # you cannot run it directly
3
+
4
+
5
+ if [ "${BASH_SOURCE-}" = "$0" ]; then
6
+ echo "You must source this script: \$ source $0" >&2
7
+ exit 33
8
+ fi
9
+
10
+ deactivate () {
11
+ unset -f pydoc >/dev/null 2>&1 || true
12
+
13
+ # reset old environment variables
14
+ # ! [ -z ${VAR+_} ] returns true if VAR is declared at all
15
+ if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
16
+ PATH="$_OLD_VIRTUAL_PATH"
17
+ export PATH
18
+ unset _OLD_VIRTUAL_PATH
19
+ fi
20
+ if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
21
+ PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
22
+ export PYTHONHOME
23
+ unset _OLD_VIRTUAL_PYTHONHOME
24
+ fi
25
+
26
+ # The hash command must be called to get it to forget past
27
+ # commands. Without forgetting past commands the $PATH changes
28
+ # we made may not be respected
29
+ hash -r 2>/dev/null
30
+
31
+ if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
32
+ PS1="$_OLD_VIRTUAL_PS1"
33
+ export PS1
34
+ unset _OLD_VIRTUAL_PS1
35
+ fi
36
+
37
+ unset VIRTUAL_ENV
38
+ unset VIRTUAL_ENV_PROMPT
39
+ if [ ! "${1-}" = "nondestructive" ] ; then
40
+ # Self destruct!
41
+ unset -f deactivate
42
+ fi
43
+ }
44
+
45
+ # unset irrelevant variables
46
+ deactivate nondestructive
47
+
48
+ VIRTUAL_ENV='/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv'
49
+ if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
50
+ VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
51
+ fi
52
+ export VIRTUAL_ENV
53
+
54
+ _OLD_VIRTUAL_PATH="$PATH"
55
+ PATH="$VIRTUAL_ENV/bin:$PATH"
56
+ export PATH
57
+
58
+ if [ "x" != x ] ; then
59
+ VIRTUAL_ENV_PROMPT=""
60
+ else
61
+ VIRTUAL_ENV_PROMPT=$(basename "$VIRTUAL_ENV")
62
+ fi
63
+ export VIRTUAL_ENV_PROMPT
64
+
65
+ # unset PYTHONHOME if set
66
+ if ! [ -z "${PYTHONHOME+_}" ] ; then
67
+ _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
68
+ unset PYTHONHOME
69
+ fi
70
+
71
+ if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
72
+ _OLD_VIRTUAL_PS1="${PS1-}"
73
+ PS1="(${VIRTUAL_ENV_PROMPT}) ${PS1-}"
74
+ export PS1
75
+ fi
76
+
77
+ # Make sure to unalias pydoc if it's already there
78
+ alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true
79
+
80
+ pydoc () {
81
+ python -m pydoc "$@"
82
+ }
83
+
84
+ # The hash command must be called to get it to forget past
85
+ # commands. Without forgetting past commands the $PATH changes
86
+ # we made may not be respected
87
+ hash -r 2>/dev/null
.venv/bin/activate.csh ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file must be used with "source bin/activate.csh" *from csh*.
2
+ # You cannot run it directly.
3
+ # Created by Davide Di Blasi <davidedb@gmail.com>.
4
+
5
+ set newline='\
6
+ '
7
+
8
+ 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'
9
+
10
+ # Unset irrelevant variables.
11
+ deactivate nondestructive
12
+
13
+ setenv VIRTUAL_ENV '/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv'
14
+
15
+ set _OLD_VIRTUAL_PATH="$PATH:q"
16
+ setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q"
17
+
18
+
19
+
20
+ if ('' != "") then
21
+ setenv VIRTUAL_ENV_PROMPT ''
22
+ else
23
+ setenv VIRTUAL_ENV_PROMPT "$VIRTUAL_ENV:t:q"
24
+ endif
25
+
26
+ if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then
27
+ if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then
28
+ set do_prompt = "1"
29
+ else
30
+ set do_prompt = "0"
31
+ endif
32
+ else
33
+ set do_prompt = "1"
34
+ endif
35
+
36
+ if ( $do_prompt == "1" ) then
37
+ # Could be in a non-interactive environment,
38
+ # in which case, $prompt is undefined and we wouldn't
39
+ # care about the prompt anyway.
40
+ if ( $?prompt ) then
41
+ set _OLD_VIRTUAL_PROMPT="$prompt:q"
42
+ if ( "$prompt:q" =~ *"$newline:q"* ) then
43
+ :
44
+ else
45
+ set prompt = '('"$VIRTUAL_ENV_PROMPT:q"') '"$prompt:q"
46
+ endif
47
+ endif
48
+ endif
49
+
50
+ unset env_name
51
+ unset do_prompt
52
+
53
+ alias pydoc python -m pydoc
54
+
55
+ rehash
.venv/bin/activate.fish ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
2
+ # Do not run it directly.
3
+
4
+ function _bashify_path -d "Converts a fish path to something bash can recognize"
5
+ set fishy_path $argv
6
+ set bashy_path $fishy_path[1]
7
+ for path_part in $fishy_path[2..-1]
8
+ set bashy_path "$bashy_path:$path_part"
9
+ end
10
+ echo $bashy_path
11
+ end
12
+
13
+ function _fishify_path -d "Converts a bash path to something fish can recognize"
14
+ echo $argv | tr ':' '\n'
15
+ end
16
+
17
+ function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
18
+ # reset old environment variables
19
+ if test -n "$_OLD_VIRTUAL_PATH"
20
+ # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
21
+ if test (echo $FISH_VERSION | head -c 1) -lt 3
22
+ set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH")
23
+ else
24
+ set -gx PATH $_OLD_VIRTUAL_PATH
25
+ end
26
+ set -e _OLD_VIRTUAL_PATH
27
+ end
28
+
29
+ if test -n "$_OLD_VIRTUAL_PYTHONHOME"
30
+ set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME"
31
+ set -e _OLD_VIRTUAL_PYTHONHOME
32
+ end
33
+
34
+ if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
35
+ and functions -q _old_fish_prompt
36
+ # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
37
+ set -l fish_function_path
38
+
39
+ # Erase virtualenv's `fish_prompt` and restore the original.
40
+ functions -e fish_prompt
41
+ functions -c _old_fish_prompt fish_prompt
42
+ functions -e _old_fish_prompt
43
+ set -e _OLD_FISH_PROMPT_OVERRIDE
44
+ end
45
+
46
+ set -e VIRTUAL_ENV
47
+ set -e VIRTUAL_ENV_PROMPT
48
+
49
+ if test "$argv[1]" != 'nondestructive'
50
+ # Self-destruct!
51
+ functions -e pydoc
52
+ functions -e deactivate
53
+ functions -e _bashify_path
54
+ functions -e _fishify_path
55
+ end
56
+ end
57
+
58
+ # Unset irrelevant variables.
59
+ deactivate nondestructive
60
+
61
+ set -gx VIRTUAL_ENV '/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv'
62
+
63
+ # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling
64
+ if test (echo $FISH_VERSION | head -c 1) -lt 3
65
+ set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH)
66
+ else
67
+ set -gx _OLD_VIRTUAL_PATH $PATH
68
+ end
69
+ set -gx PATH "$VIRTUAL_ENV"'/bin' $PATH
70
+
71
+ # Prompt override provided?
72
+ # If not, just use the environment name.
73
+ if test -n ''
74
+ set -gx VIRTUAL_ENV_PROMPT ''
75
+ else
76
+ set -gx VIRTUAL_ENV_PROMPT (basename "$VIRTUAL_ENV")
77
+ end
78
+
79
+ # Unset `$PYTHONHOME` if set.
80
+ if set -q PYTHONHOME
81
+ set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
82
+ set -e PYTHONHOME
83
+ end
84
+
85
+ function pydoc
86
+ python -m pydoc $argv
87
+ end
88
+
89
+ if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
90
+ # Copy the current `fish_prompt` function as `_old_fish_prompt`.
91
+ functions -c fish_prompt _old_fish_prompt
92
+
93
+ function fish_prompt
94
+ # Run the user's prompt first; it might depend on (pipe)status.
95
+ set -l prompt (_old_fish_prompt)
96
+
97
+ printf '(%s) ' $VIRTUAL_ENV_PROMPT
98
+
99
+ string join -- \n $prompt # handle multi-line prompts
100
+ end
101
+
102
+ set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
103
+ end
.venv/bin/activate.nu ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # virtualenv activation module
2
+ # Activate with `overlay use activate.nu`
3
+ # Deactivate with `deactivate`, as usual
4
+ #
5
+ # To customize the overlay name, you can call `overlay use activate.nu as foo`,
6
+ # but then simply `deactivate` won't work because it is just an alias to hide
7
+ # the "activate" overlay. You'd need to call `overlay hide foo` manually.
8
+
9
+ export-env {
10
+ def is-string [x] {
11
+ ($x | describe) == 'string'
12
+ }
13
+
14
+ def has-env [...names] {
15
+ $names | each {|n|
16
+ $n in $env
17
+ } | all {|i| $i == true}
18
+ }
19
+
20
+ # Emulates a `test -z`, but btter as it handles e.g 'false'
21
+ def is-env-true [name: string] {
22
+ if (has-env $name) {
23
+ # Try to parse 'true', '0', '1', and fail if not convertible
24
+ let parsed = (do -i { $env | get $name | into bool })
25
+ if ($parsed | describe) == 'bool' {
26
+ $parsed
27
+ } else {
28
+ not ($env | get -i $name | is-empty)
29
+ }
30
+ } else {
31
+ false
32
+ }
33
+ }
34
+
35
+ let virtual_env = '/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv'
36
+ let bin = 'bin'
37
+
38
+ let is_windows = ($nu.os-info.family) == 'windows'
39
+ let path_name = (if (has-env 'Path') {
40
+ 'Path'
41
+ } else {
42
+ 'PATH'
43
+ }
44
+ )
45
+
46
+ let venv_path = ([$virtual_env $bin] | path join)
47
+ let new_path = ($env | get $path_name | prepend $venv_path)
48
+
49
+ # If there is no default prompt, then use the env name instead
50
+ let virtual_env_prompt = (if ('' | is-empty) {
51
+ ($virtual_env | path basename)
52
+ } else {
53
+ ''
54
+ })
55
+
56
+ let new_env = {
57
+ $path_name : $new_path
58
+ VIRTUAL_ENV : $virtual_env
59
+ VIRTUAL_ENV_PROMPT : $virtual_env_prompt
60
+ }
61
+
62
+ let new_env = (if (is-env-true 'VIRTUAL_ENV_DISABLE_PROMPT') {
63
+ $new_env
64
+ } else {
65
+ # Creating the new prompt for the session
66
+ let virtual_prefix = $'(char lparen)($virtual_env_prompt)(char rparen) '
67
+
68
+ # Back up the old prompt builder
69
+ let old_prompt_command = (if (has-env 'PROMPT_COMMAND') {
70
+ $env.PROMPT_COMMAND
71
+ } else {
72
+ ''
73
+ })
74
+
75
+ let new_prompt = (if (has-env 'PROMPT_COMMAND') {
76
+ if 'closure' in ($old_prompt_command | describe) {
77
+ {|| $'($virtual_prefix)(do $old_prompt_command)' }
78
+ } else {
79
+ {|| $'($virtual_prefix)($old_prompt_command)' }
80
+ }
81
+ } else {
82
+ {|| $'($virtual_prefix)' }
83
+ })
84
+
85
+ $new_env | merge {
86
+ PROMPT_COMMAND : $new_prompt
87
+ VIRTUAL_PREFIX : $virtual_prefix
88
+ }
89
+ })
90
+
91
+ # Environment variables that will be loaded as the virtual env
92
+ load-env $new_env
93
+ }
94
+
95
+ export alias pydoc = python -m pydoc
96
+ export alias deactivate = overlay hide activate
.venv/bin/activate.ps1 ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ $script:THIS_PATH = $myinvocation.mycommand.path
2
+ $script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent
3
+
4
+ function global:deactivate([switch] $NonDestructive) {
5
+ if (Test-Path variable:_OLD_VIRTUAL_PATH) {
6
+ $env:PATH = $variable:_OLD_VIRTUAL_PATH
7
+ Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global
8
+ }
9
+
10
+ if (Test-Path function:_old_virtual_prompt) {
11
+ $function:prompt = $function:_old_virtual_prompt
12
+ Remove-Item function:\_old_virtual_prompt
13
+ }
14
+
15
+ if ($env:VIRTUAL_ENV) {
16
+ Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue
17
+ }
18
+
19
+ if ($env:VIRTUAL_ENV_PROMPT) {
20
+ Remove-Item env:VIRTUAL_ENV_PROMPT -ErrorAction SilentlyContinue
21
+ }
22
+
23
+ if (!$NonDestructive) {
24
+ # Self destruct!
25
+ Remove-Item function:deactivate
26
+ Remove-Item function:pydoc
27
+ }
28
+ }
29
+
30
+ function global:pydoc {
31
+ python -m pydoc $args
32
+ }
33
+
34
+ # unset irrelevant variables
35
+ deactivate -nondestructive
36
+
37
+ $VIRTUAL_ENV = $BASE_DIR
38
+ $env:VIRTUAL_ENV = $VIRTUAL_ENV
39
+
40
+ if ("" -ne "") {
41
+ $env:VIRTUAL_ENV_PROMPT = ""
42
+ }
43
+ else {
44
+ $env:VIRTUAL_ENV_PROMPT = $( Split-Path $env:VIRTUAL_ENV -Leaf )
45
+ }
46
+
47
+ New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH
48
+
49
+ $env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH
50
+ if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) {
51
+ function global:_old_virtual_prompt {
52
+ ""
53
+ }
54
+ $function:_old_virtual_prompt = $function:prompt
55
+
56
+ function global:prompt {
57
+ # Add the custom prefix to the existing prompt
58
+ $previous_prompt_value = & $function:_old_virtual_prompt
59
+ ("(" + $env:VIRTUAL_ENV_PROMPT + ") " + $previous_prompt_value)
60
+ }
61
+ }
.venv/bin/activate_this.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Activate virtualenv for current interpreter:
3
+
4
+ Use exec(open(this_file).read(), {'__file__': this_file}).
5
+
6
+ This can be used when you must use an existing Python interpreter, not the virtualenv bin/python.
7
+ """ # noqa: D415
8
+ from __future__ import annotations
9
+
10
+ import os
11
+ import site
12
+ import sys
13
+
14
+ try:
15
+ abs_file = os.path.abspath(__file__)
16
+ except NameError as exc:
17
+ msg = "You must use exec(open(this_file).read(), {'__file__': this_file}))"
18
+ raise AssertionError(msg) from exc
19
+
20
+ bin_dir = os.path.dirname(abs_file)
21
+ base = bin_dir[: -len("bin") - 1] # strip away the bin part from the __file__, plus the path separator
22
+
23
+ # prepend bin to PATH (this file is inside the bin directory)
24
+ os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)])
25
+ os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory
26
+ os.environ["VIRTUAL_ENV_PROMPT"] = "" or os.path.basename(base) # noqa: SIM222
27
+
28
+ # add the virtual environments libraries to the host python import mechanism
29
+ prev_length = len(sys.path)
30
+ for lib in "../lib/python3.12/site-packages".split(os.pathsep):
31
+ path = os.path.realpath(os.path.join(bin_dir, lib))
32
+ site.addsitedir(path.decode("utf-8") if "" else path)
33
+ sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]
34
+
35
+ sys.real_prefix = sys.prefix
36
+ sys.prefix = base
.venv/bin/dumppdf.py ADDED
@@ -0,0 +1,473 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ """Extract pdf structure in XML format"""
3
+ import logging
4
+ import os.path
5
+ import re
6
+ import sys
7
+ from typing import Any, Container, Dict, Iterable, List, Optional, TextIO, Union, cast
8
+ from argparse import ArgumentParser
9
+
10
+ import pdfminer
11
+ from pdfminer.pdfdocument import PDFDocument, PDFNoOutlines, PDFXRefFallback
12
+ from pdfminer.pdfpage import PDFPage
13
+ from pdfminer.pdfparser import PDFParser
14
+ from pdfminer.pdftypes import PDFObjectNotFound, PDFValueError
15
+ from pdfminer.pdftypes import PDFStream, PDFObjRef, resolve1, stream_value
16
+ from pdfminer.psparser import PSKeyword, PSLiteral, LIT
17
+ from pdfminer.utils import isnumber
18
+
19
+ logging.basicConfig()
20
+ logger = logging.getLogger(__name__)
21
+
22
+ ESC_PAT = re.compile(r'[\000-\037&<>()"\042\047\134\177-\377]')
23
+
24
+
25
+ def escape(s: Union[str, bytes]) -> str:
26
+ if isinstance(s, bytes):
27
+ us = str(s, "latin-1")
28
+ else:
29
+ us = s
30
+ return ESC_PAT.sub(lambda m: "&#%d;" % ord(m.group(0)), us)
31
+
32
+
33
+ def dumpxml(out: TextIO, obj: object, codec: Optional[str] = None) -> None:
34
+ if obj is None:
35
+ out.write("<null />")
36
+ return
37
+
38
+ if isinstance(obj, dict):
39
+ out.write('<dict size="%d">\n' % len(obj))
40
+ for (k, v) in obj.items():
41
+ out.write("<key>%s</key>\n" % k)
42
+ out.write("<value>")
43
+ dumpxml(out, v)
44
+ out.write("</value>\n")
45
+ out.write("</dict>")
46
+ return
47
+
48
+ if isinstance(obj, list):
49
+ out.write('<list size="%d">\n' % len(obj))
50
+ for v in obj:
51
+ dumpxml(out, v)
52
+ out.write("\n")
53
+ out.write("</list>")
54
+ return
55
+
56
+ if isinstance(obj, (str, bytes)):
57
+ out.write('<string size="%d">%s</string>' % (len(obj), escape(obj)))
58
+ return
59
+
60
+ if isinstance(obj, PDFStream):
61
+ if codec == "raw":
62
+ # Bug: writing bytes to text I/O. This will raise TypeError.
63
+ out.write(obj.get_rawdata()) # type: ignore [arg-type]
64
+ elif codec == "binary":
65
+ # Bug: writing bytes to text I/O. This will raise TypeError.
66
+ out.write(obj.get_data()) # type: ignore [arg-type]
67
+ else:
68
+ out.write("<stream>\n<props>\n")
69
+ dumpxml(out, obj.attrs)
70
+ out.write("\n</props>\n")
71
+ if codec == "text":
72
+ data = obj.get_data()
73
+ out.write('<data size="%d">%s</data>\n' % (len(data), escape(data)))
74
+ out.write("</stream>")
75
+ return
76
+
77
+ if isinstance(obj, PDFObjRef):
78
+ out.write('<ref id="%d" />' % obj.objid)
79
+ return
80
+
81
+ if isinstance(obj, PSKeyword):
82
+ # Likely bug: obj.name is bytes, not str
83
+ out.write("<keyword>%s</keyword>" % obj.name) # type: ignore [str-bytes-safe]
84
+ return
85
+
86
+ if isinstance(obj, PSLiteral):
87
+ # Likely bug: obj.name may be bytes, not str
88
+ out.write("<literal>%s</literal>" % obj.name) # type: ignore [str-bytes-safe]
89
+ return
90
+
91
+ if isnumber(obj):
92
+ out.write("<number>%s</number>" % obj)
93
+ return
94
+
95
+ raise TypeError(obj)
96
+
97
+
98
+ def dumptrailers(
99
+ out: TextIO, doc: PDFDocument, show_fallback_xref: bool = False
100
+ ) -> None:
101
+ for xref in doc.xrefs:
102
+ if not isinstance(xref, PDFXRefFallback) or show_fallback_xref:
103
+ out.write("<trailer>\n")
104
+ dumpxml(out, xref.get_trailer())
105
+ out.write("\n</trailer>\n\n")
106
+ no_xrefs = all(isinstance(xref, PDFXRefFallback) for xref in doc.xrefs)
107
+ if no_xrefs and not show_fallback_xref:
108
+ msg = (
109
+ "This PDF does not have an xref. Use --show-fallback-xref if "
110
+ "you want to display the content of a fallback xref that "
111
+ "contains all objects."
112
+ )
113
+ logger.warning(msg)
114
+ return
115
+
116
+
117
+ def dumpallobjs(
118
+ out: TextIO,
119
+ doc: PDFDocument,
120
+ codec: Optional[str] = None,
121
+ show_fallback_xref: bool = False,
122
+ ) -> None:
123
+ visited = set()
124
+ out.write("<pdf>")
125
+ for xref in doc.xrefs:
126
+ for objid in xref.get_objids():
127
+ if objid in visited:
128
+ continue
129
+ visited.add(objid)
130
+ try:
131
+ obj = doc.getobj(objid)
132
+ if obj is None:
133
+ continue
134
+ out.write('<object id="%d">\n' % objid)
135
+ dumpxml(out, obj, codec=codec)
136
+ out.write("\n</object>\n\n")
137
+ except PDFObjectNotFound as e:
138
+ print("not found: %r" % e)
139
+ dumptrailers(out, doc, show_fallback_xref)
140
+ out.write("</pdf>")
141
+ return
142
+
143
+
144
+ def dumpoutline(
145
+ outfp: TextIO,
146
+ fname: str,
147
+ objids: Any,
148
+ pagenos: Container[int],
149
+ password: str = "",
150
+ dumpall: bool = False,
151
+ codec: Optional[str] = None,
152
+ extractdir: Optional[str] = None,
153
+ ) -> None:
154
+ fp = open(fname, "rb")
155
+ parser = PDFParser(fp)
156
+ doc = PDFDocument(parser, password)
157
+ pages = {
158
+ page.pageid: pageno
159
+ for (pageno, page) in enumerate(PDFPage.create_pages(doc), 1)
160
+ }
161
+
162
+ def resolve_dest(dest: object) -> Any:
163
+ if isinstance(dest, (str, bytes)):
164
+ dest = resolve1(doc.get_dest(dest))
165
+ elif isinstance(dest, PSLiteral):
166
+ dest = resolve1(doc.get_dest(dest.name))
167
+ if isinstance(dest, dict):
168
+ dest = dest["D"]
169
+ if isinstance(dest, PDFObjRef):
170
+ dest = dest.resolve()
171
+ return dest
172
+
173
+ try:
174
+ outlines = doc.get_outlines()
175
+ outfp.write("<outlines>\n")
176
+ for (level, title, dest, a, se) in outlines:
177
+ pageno = None
178
+ if dest:
179
+ dest = resolve_dest(dest)
180
+ pageno = pages[dest[0].objid]
181
+ elif a:
182
+ action = a
183
+ if isinstance(action, dict):
184
+ subtype = action.get("S")
185
+ if subtype and repr(subtype) == "/'GoTo'" and action.get("D"):
186
+ dest = resolve_dest(action["D"])
187
+ pageno = pages[dest[0].objid]
188
+ s = escape(title)
189
+ outfp.write('<outline level="{!r}" title="{}">\n'.format(level, s))
190
+ if dest is not None:
191
+ outfp.write("<dest>")
192
+ dumpxml(outfp, dest)
193
+ outfp.write("</dest>\n")
194
+ if pageno is not None:
195
+ outfp.write("<pageno>%r</pageno>\n" % pageno)
196
+ outfp.write("</outline>\n")
197
+ outfp.write("</outlines>\n")
198
+ except PDFNoOutlines:
199
+ pass
200
+ parser.close()
201
+ fp.close()
202
+ return
203
+
204
+
205
+ LITERAL_FILESPEC = LIT("Filespec")
206
+ LITERAL_EMBEDDEDFILE = LIT("EmbeddedFile")
207
+
208
+
209
+ def extractembedded(fname: str, password: str, extractdir: str) -> None:
210
+ def extract1(objid: int, obj: Dict[str, Any]) -> None:
211
+ filename = os.path.basename(obj.get("UF") or cast(bytes, obj.get("F")).decode())
212
+ fileref = obj["EF"].get("UF") or obj["EF"].get("F")
213
+ fileobj = doc.getobj(fileref.objid)
214
+ if not isinstance(fileobj, PDFStream):
215
+ error_msg = (
216
+ "unable to process PDF: reference for %r is not a "
217
+ "PDFStream" % filename
218
+ )
219
+ raise PDFValueError(error_msg)
220
+ if fileobj.get("Type") is not LITERAL_EMBEDDEDFILE:
221
+ raise PDFValueError(
222
+ "unable to process PDF: reference for %r "
223
+ "is not an EmbeddedFile" % (filename)
224
+ )
225
+ path = os.path.join(extractdir, "%.6d-%s" % (objid, filename))
226
+ if os.path.exists(path):
227
+ raise IOError("file exists: %r" % path)
228
+ print("extracting: %r" % path)
229
+ os.makedirs(os.path.dirname(path), exist_ok=True)
230
+ out = open(path, "wb")
231
+ out.write(fileobj.get_data())
232
+ out.close()
233
+ return
234
+
235
+ with open(fname, "rb") as fp:
236
+ parser = PDFParser(fp)
237
+ doc = PDFDocument(parser, password)
238
+ extracted_objids = set()
239
+ for xref in doc.xrefs:
240
+ for objid in xref.get_objids():
241
+ obj = doc.getobj(objid)
242
+ if (
243
+ objid not in extracted_objids
244
+ and isinstance(obj, dict)
245
+ and obj.get("Type") is LITERAL_FILESPEC
246
+ ):
247
+ extracted_objids.add(objid)
248
+ extract1(objid, obj)
249
+ return
250
+
251
+
252
+ def dumppdf(
253
+ outfp: TextIO,
254
+ fname: str,
255
+ objids: Iterable[int],
256
+ pagenos: Container[int],
257
+ password: str = "",
258
+ dumpall: bool = False,
259
+ codec: Optional[str] = None,
260
+ extractdir: Optional[str] = None,
261
+ show_fallback_xref: bool = False,
262
+ ) -> None:
263
+ fp = open(fname, "rb")
264
+ parser = PDFParser(fp)
265
+ doc = PDFDocument(parser, password)
266
+ if objids:
267
+ for objid in objids:
268
+ obj = doc.getobj(objid)
269
+ dumpxml(outfp, obj, codec=codec)
270
+ if pagenos:
271
+ for (pageno, page) in enumerate(PDFPage.create_pages(doc)):
272
+ if pageno in pagenos:
273
+ if codec:
274
+ for obj in page.contents:
275
+ obj = stream_value(obj)
276
+ dumpxml(outfp, obj, codec=codec)
277
+ else:
278
+ dumpxml(outfp, page.attrs)
279
+ if dumpall:
280
+ dumpallobjs(outfp, doc, codec, show_fallback_xref)
281
+ if (not objids) and (not pagenos) and (not dumpall):
282
+ dumptrailers(outfp, doc, show_fallback_xref)
283
+ fp.close()
284
+ if codec not in ("raw", "binary"):
285
+ outfp.write("\n")
286
+ return
287
+
288
+
289
+ def create_parser() -> ArgumentParser:
290
+ parser = ArgumentParser(description=__doc__, add_help=True)
291
+ parser.add_argument(
292
+ "files",
293
+ type=str,
294
+ default=None,
295
+ nargs="+",
296
+ help="One or more paths to PDF files.",
297
+ )
298
+
299
+ parser.add_argument(
300
+ "--version",
301
+ "-v",
302
+ action="version",
303
+ version="pdfminer.six v{}".format(pdfminer.__version__),
304
+ )
305
+ parser.add_argument(
306
+ "--debug",
307
+ "-d",
308
+ default=False,
309
+ action="store_true",
310
+ help="Use debug logging level.",
311
+ )
312
+ procedure_parser = parser.add_mutually_exclusive_group()
313
+ procedure_parser.add_argument(
314
+ "--extract-toc",
315
+ "-T",
316
+ default=False,
317
+ action="store_true",
318
+ help="Extract structure of outline",
319
+ )
320
+ procedure_parser.add_argument(
321
+ "--extract-embedded", "-E", type=str, help="Extract embedded files"
322
+ )
323
+
324
+ parse_params = parser.add_argument_group(
325
+ "Parser", description="Used during PDF parsing"
326
+ )
327
+ parse_params.add_argument(
328
+ "--page-numbers",
329
+ type=int,
330
+ default=None,
331
+ nargs="+",
332
+ help="A space-seperated list of page numbers to parse.",
333
+ )
334
+ parse_params.add_argument(
335
+ "--pagenos",
336
+ "-p",
337
+ type=str,
338
+ help="A comma-separated list of page numbers to parse. Included for "
339
+ "legacy applications, use --page-numbers for more idiomatic "
340
+ "argument entry.",
341
+ )
342
+ parse_params.add_argument(
343
+ "--objects",
344
+ "-i",
345
+ type=str,
346
+ help="Comma separated list of object numbers to extract",
347
+ )
348
+ parse_params.add_argument(
349
+ "--all",
350
+ "-a",
351
+ default=False,
352
+ action="store_true",
353
+ help="If the structure of all objects should be extracted",
354
+ )
355
+ parse_params.add_argument(
356
+ "--show-fallback-xref",
357
+ action="store_true",
358
+ help="Additionally show the fallback xref. Use this if the PDF "
359
+ "has zero or only invalid xref's. This setting is ignored if "
360
+ "--extract-toc or --extract-embedded is used.",
361
+ )
362
+ parse_params.add_argument(
363
+ "--password",
364
+ "-P",
365
+ type=str,
366
+ default="",
367
+ help="The password to use for decrypting PDF file.",
368
+ )
369
+
370
+ output_params = parser.add_argument_group(
371
+ "Output", description="Used during output generation."
372
+ )
373
+ output_params.add_argument(
374
+ "--outfile",
375
+ "-o",
376
+ type=str,
377
+ default="-",
378
+ help='Path to file where output is written. Or "-" (default) to '
379
+ "write to stdout.",
380
+ )
381
+ codec_parser = output_params.add_mutually_exclusive_group()
382
+ codec_parser.add_argument(
383
+ "--raw-stream",
384
+ "-r",
385
+ default=False,
386
+ action="store_true",
387
+ help="Write stream objects without encoding",
388
+ )
389
+ codec_parser.add_argument(
390
+ "--binary-stream",
391
+ "-b",
392
+ default=False,
393
+ action="store_true",
394
+ help="Write stream objects with binary encoding",
395
+ )
396
+ codec_parser.add_argument(
397
+ "--text-stream",
398
+ "-t",
399
+ default=False,
400
+ action="store_true",
401
+ help="Write stream objects as plain text",
402
+ )
403
+
404
+ return parser
405
+
406
+
407
+ def main(argv: Optional[List[str]] = None) -> None:
408
+ parser = create_parser()
409
+ args = parser.parse_args(args=argv)
410
+
411
+ if args.debug:
412
+ logging.getLogger().setLevel(logging.DEBUG)
413
+
414
+ if args.outfile == "-":
415
+ outfp = sys.stdout
416
+ else:
417
+ outfp = open(args.outfile, "w")
418
+
419
+ if args.objects:
420
+ objids = [int(x) for x in args.objects.split(",")]
421
+ else:
422
+ objids = []
423
+
424
+ if args.page_numbers:
425
+ pagenos = {x - 1 for x in args.page_numbers}
426
+ elif args.pagenos:
427
+ pagenos = {int(x) - 1 for x in args.pagenos.split(",")}
428
+ else:
429
+ pagenos = set()
430
+
431
+ password = args.password
432
+
433
+ if args.raw_stream:
434
+ codec: Optional[str] = "raw"
435
+ elif args.binary_stream:
436
+ codec = "binary"
437
+ elif args.text_stream:
438
+ codec = "text"
439
+ else:
440
+ codec = None
441
+
442
+ for fname in args.files:
443
+ if args.extract_toc:
444
+ dumpoutline(
445
+ outfp,
446
+ fname,
447
+ objids,
448
+ pagenos,
449
+ password=password,
450
+ dumpall=args.all,
451
+ codec=codec,
452
+ extractdir=None,
453
+ )
454
+ elif args.extract_embedded:
455
+ extractembedded(fname, password=password, extractdir=args.extract_embedded)
456
+ else:
457
+ dumppdf(
458
+ outfp,
459
+ fname,
460
+ objids,
461
+ pagenos,
462
+ password=password,
463
+ dumpall=args.all,
464
+ codec=codec,
465
+ extractdir=None,
466
+ show_fallback_xref=args.show_fallback_xref,
467
+ )
468
+
469
+ outfp.close()
470
+
471
+
472
+ if __name__ == "__main__":
473
+ main()
.venv/bin/f2py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.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
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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/gradio ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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/httpx ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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/markdown-it ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from charset_normalizer import cli
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(cli.cli_detect())
.venv/bin/numpy-config ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.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/pdf2txt.py ADDED
@@ -0,0 +1,317 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ """A command line tool for extracting text and images from PDF and
3
+ output it to plain text, html, xml or tags."""
4
+ import argparse
5
+ import logging
6
+ import sys
7
+ from typing import Any, Container, Iterable, List, Optional
8
+
9
+ import pdfminer.high_level
10
+ from pdfminer.layout import LAParams
11
+ from pdfminer.utils import AnyIO
12
+
13
+ logging.basicConfig()
14
+
15
+ OUTPUT_TYPES = ((".htm", "html"), (".html", "html"), (".xml", "xml"), (".tag", "tag"))
16
+
17
+
18
+ def float_or_disabled(x: str) -> Optional[float]:
19
+ if x.lower().strip() == "disabled":
20
+ return None
21
+ try:
22
+ return float(x)
23
+ except ValueError:
24
+ raise argparse.ArgumentTypeError("invalid float value: {}".format(x))
25
+
26
+
27
+ def extract_text(
28
+ files: Iterable[str] = [],
29
+ outfile: str = "-",
30
+ laparams: Optional[LAParams] = None,
31
+ output_type: str = "text",
32
+ codec: str = "utf-8",
33
+ strip_control: bool = False,
34
+ maxpages: int = 0,
35
+ page_numbers: Optional[Container[int]] = None,
36
+ password: str = "",
37
+ scale: float = 1.0,
38
+ rotation: int = 0,
39
+ layoutmode: str = "normal",
40
+ output_dir: Optional[str] = None,
41
+ debug: bool = False,
42
+ disable_caching: bool = False,
43
+ **kwargs: Any
44
+ ) -> AnyIO:
45
+ if not files:
46
+ raise ValueError("Must provide files to work upon!")
47
+
48
+ if output_type == "text" and outfile != "-":
49
+ for override, alttype in OUTPUT_TYPES:
50
+ if outfile.endswith(override):
51
+ output_type = alttype
52
+
53
+ if outfile == "-":
54
+ outfp: AnyIO = sys.stdout
55
+ if sys.stdout.encoding is not None:
56
+ codec = "utf-8"
57
+ else:
58
+ outfp = open(outfile, "wb")
59
+
60
+ for fname in files:
61
+ with open(fname, "rb") as fp:
62
+ pdfminer.high_level.extract_text_to_fp(fp, **locals())
63
+ return outfp
64
+
65
+
66
+ def create_parser() -> argparse.ArgumentParser:
67
+ parser = argparse.ArgumentParser(description=__doc__, add_help=True)
68
+ parser.add_argument(
69
+ "files",
70
+ type=str,
71
+ default=None,
72
+ nargs="+",
73
+ help="One or more paths to PDF files.",
74
+ )
75
+
76
+ parser.add_argument(
77
+ "--version",
78
+ "-v",
79
+ action="version",
80
+ version="pdfminer.six v{}".format(pdfminer.__version__),
81
+ )
82
+ parser.add_argument(
83
+ "--debug",
84
+ "-d",
85
+ default=False,
86
+ action="store_true",
87
+ help="Use debug logging level.",
88
+ )
89
+ parser.add_argument(
90
+ "--disable-caching",
91
+ "-C",
92
+ default=False,
93
+ action="store_true",
94
+ help="If caching or resources, such as fonts, should be disabled.",
95
+ )
96
+
97
+ parse_params = parser.add_argument_group(
98
+ "Parser", description="Used during PDF parsing"
99
+ )
100
+ parse_params.add_argument(
101
+ "--page-numbers",
102
+ type=int,
103
+ default=None,
104
+ nargs="+",
105
+ help="A space-seperated list of page numbers to parse.",
106
+ )
107
+ parse_params.add_argument(
108
+ "--pagenos",
109
+ "-p",
110
+ type=str,
111
+ help="A comma-separated list of page numbers to parse. "
112
+ "Included for legacy applications, use --page-numbers "
113
+ "for more idiomatic argument entry.",
114
+ )
115
+ parse_params.add_argument(
116
+ "--maxpages",
117
+ "-m",
118
+ type=int,
119
+ default=0,
120
+ help="The maximum number of pages to parse.",
121
+ )
122
+ parse_params.add_argument(
123
+ "--password",
124
+ "-P",
125
+ type=str,
126
+ default="",
127
+ help="The password to use for decrypting PDF file.",
128
+ )
129
+ parse_params.add_argument(
130
+ "--rotation",
131
+ "-R",
132
+ default=0,
133
+ type=int,
134
+ help="The number of degrees to rotate the PDF "
135
+ "before other types of processing.",
136
+ )
137
+
138
+ la_params = LAParams() # will be used for defaults
139
+ la_param_group = parser.add_argument_group(
140
+ "Layout analysis", description="Used during layout analysis."
141
+ )
142
+ la_param_group.add_argument(
143
+ "--no-laparams",
144
+ "-n",
145
+ default=False,
146
+ action="store_true",
147
+ help="If layout analysis parameters should be ignored.",
148
+ )
149
+ la_param_group.add_argument(
150
+ "--detect-vertical",
151
+ "-V",
152
+ default=la_params.detect_vertical,
153
+ action="store_true",
154
+ help="If vertical text should be considered during layout analysis",
155
+ )
156
+ la_param_group.add_argument(
157
+ "--line-overlap",
158
+ type=float,
159
+ default=la_params.line_overlap,
160
+ help="If two characters have more overlap than this they "
161
+ "are considered to be on the same line. The overlap is specified "
162
+ "relative to the minimum height of both characters.",
163
+ )
164
+ la_param_group.add_argument(
165
+ "--char-margin",
166
+ "-M",
167
+ type=float,
168
+ default=la_params.char_margin,
169
+ help="If two characters are closer together than this margin they "
170
+ "are considered to be part of the same line. The margin is "
171
+ "specified relative to the width of the character.",
172
+ )
173
+ la_param_group.add_argument(
174
+ "--word-margin",
175
+ "-W",
176
+ type=float,
177
+ default=la_params.word_margin,
178
+ help="If two characters on the same line are further apart than this "
179
+ "margin then they are considered to be two separate words, and "
180
+ "an intermediate space will be added for readability. The margin "
181
+ "is specified relative to the width of the character.",
182
+ )
183
+ la_param_group.add_argument(
184
+ "--line-margin",
185
+ "-L",
186
+ type=float,
187
+ default=la_params.line_margin,
188
+ help="If two lines are close together they are considered to "
189
+ "be part of the same paragraph. The margin is specified "
190
+ "relative to the height of a line.",
191
+ )
192
+ la_param_group.add_argument(
193
+ "--boxes-flow",
194
+ "-F",
195
+ type=float_or_disabled,
196
+ default=la_params.boxes_flow,
197
+ help="Specifies how much a horizontal and vertical position of a "
198
+ "text matters when determining the order of lines. The value "
199
+ "should be within the range of -1.0 (only horizontal position "
200
+ "matters) to +1.0 (only vertical position matters). You can also "
201
+ "pass `disabled` to disable advanced layout analysis, and "
202
+ "instead return text based on the position of the bottom left "
203
+ "corner of the text box.",
204
+ )
205
+ la_param_group.add_argument(
206
+ "--all-texts",
207
+ "-A",
208
+ default=la_params.all_texts,
209
+ action="store_true",
210
+ help="If layout analysis should be performed on text in figures.",
211
+ )
212
+
213
+ output_params = parser.add_argument_group(
214
+ "Output", description="Used during output generation."
215
+ )
216
+ output_params.add_argument(
217
+ "--outfile",
218
+ "-o",
219
+ type=str,
220
+ default="-",
221
+ help="Path to file where output is written. "
222
+ 'Or "-" (default) to write to stdout.',
223
+ )
224
+ output_params.add_argument(
225
+ "--output_type",
226
+ "-t",
227
+ type=str,
228
+ default="text",
229
+ help="Type of output to generate {text,html,xml,tag}.",
230
+ )
231
+ output_params.add_argument(
232
+ "--codec",
233
+ "-c",
234
+ type=str,
235
+ default="utf-8",
236
+ help="Text encoding to use in output file.",
237
+ )
238
+ output_params.add_argument(
239
+ "--output-dir",
240
+ "-O",
241
+ default=None,
242
+ help="The output directory to put extracted images in. If not given, "
243
+ "images are not extracted.",
244
+ )
245
+ output_params.add_argument(
246
+ "--layoutmode",
247
+ "-Y",
248
+ default="normal",
249
+ type=str,
250
+ help="Type of layout to use when generating html "
251
+ "{normal,exact,loose}. If normal,each line is"
252
+ " positioned separately in the html. If exact"
253
+ ", each character is positioned separately in"
254
+ " the html. If loose, same result as normal "
255
+ "but with an additional newline after each "
256
+ "text line. Only used when output_type is html.",
257
+ )
258
+ output_params.add_argument(
259
+ "--scale",
260
+ "-s",
261
+ type=float,
262
+ default=1.0,
263
+ help="The amount of zoom to use when generating html file. "
264
+ "Only used when output_type is html.",
265
+ )
266
+ output_params.add_argument(
267
+ "--strip-control",
268
+ "-S",
269
+ default=False,
270
+ action="store_true",
271
+ help="Remove control statement from text. "
272
+ "Only used when output_type is xml.",
273
+ )
274
+
275
+ return parser
276
+
277
+
278
+ def parse_args(args: Optional[List[str]]) -> argparse.Namespace:
279
+ parsed_args = create_parser().parse_args(args=args)
280
+
281
+ # Propagate parsed layout parameters to LAParams object
282
+ if parsed_args.no_laparams:
283
+ parsed_args.laparams = None
284
+ else:
285
+ parsed_args.laparams = LAParams(
286
+ line_overlap=parsed_args.line_overlap,
287
+ char_margin=parsed_args.char_margin,
288
+ line_margin=parsed_args.line_margin,
289
+ word_margin=parsed_args.word_margin,
290
+ boxes_flow=parsed_args.boxes_flow,
291
+ detect_vertical=parsed_args.detect_vertical,
292
+ all_texts=parsed_args.all_texts,
293
+ )
294
+
295
+ if parsed_args.page_numbers:
296
+ parsed_args.page_numbers = {x - 1 for x in parsed_args.page_numbers}
297
+
298
+ if parsed_args.pagenos:
299
+ parsed_args.page_numbers = {int(x) - 1 for x in parsed_args.pagenos.split(",")}
300
+
301
+ if parsed_args.output_type == "text" and parsed_args.outfile != "-":
302
+ for override, alttype in OUTPUT_TYPES:
303
+ if parsed_args.outfile.endswith(override):
304
+ parsed_args.output_type = alttype
305
+
306
+ return parsed_args
307
+
308
+
309
+ def main(args: Optional[List[str]] = None) -> int:
310
+ parsed_args = parse_args(args)
311
+ outfp = extract_text(**vars(parsed_args))
312
+ outfp.close()
313
+ return 0
314
+
315
+
316
+ if __name__ == "__main__":
317
+ sys.exit(main())
.venv/bin/pdfplumber ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pdfplumber.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/pip ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pip._internal.cli.main import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pip-3.12 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pip._internal.cli.main import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pip3 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pip._internal.cli.main import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pip3.12 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pip._internal.cli.main import main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(main())
.venv/bin/pygmentize ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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/pypdfium2 ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
2
+ # -*- coding: utf-8 -*-
3
+ import re
4
+ import sys
5
+ from pypdfium2.__main__ import cli_main
6
+ if __name__ == '__main__':
7
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
+ sys.exit(cli_main())
.venv/bin/python ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80ee2dd97bc26259d4e30853336f72ad38aa4aa0531bb196cc444d899422689d
3
+ size 152624
.venv/bin/python3 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80ee2dd97bc26259d4e30853336f72ad38aa4aa0531bb196cc444d899422689d
3
+ size 152624
.venv/bin/python3.12 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80ee2dd97bc26259d4e30853336f72ad38aa4aa0531bb196cc444d899422689d
3
+ size 152624
.venv/bin/ruff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b7977225ec13b371d01e5da788125ecada8868bcb6bc05d307e493ae90fb4141
3
+ size 26503584
.venv/bin/tqdm ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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/typer ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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
+ #!/Users/jsan0043/PycharmProjects/unimoConvertPdfToExcel/.venv/bin/python
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/.DS_Store ADDED
Binary file (6.15 kB). View file