Spaces:
Runtime error
Runtime error
Commit
·
15b4859
1
Parent(s):
5ff1e7b
add convert tool
Browse files- README.md +24 -0
- ai_video_cli/main.py +98 -0
- poetry.lock +176 -179
- pyproject.toml +2 -1
README.md
CHANGED
@@ -115,3 +115,27 @@ ai-video thumbnail my_video.mp4
|
|
115 |
```
|
116 |
|
117 |
This command will generate a thumbnail from the first frame of `my_video.mp4` and save it as `my_video_thumbnail.jpg`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
```
|
116 |
|
117 |
This command will generate a thumbnail from the first frame of `my_video.mp4` and save it as `my_video_thumbnail.jpg`.
|
118 |
+
|
119 |
+
### 5. Convert Video
|
120 |
+
|
121 |
+
Converts a video to specific video and audio codecs, with optional cropping.
|
122 |
+
|
123 |
+
```
|
124 |
+
ai-video convert <input_file> [output_file] [--video_codec VIDEO_CODEC] [--audio_codec AUDIO_CODEC] [--crop_width CROP_WIDTH] [--crop_height CROP_HEIGHT]
|
125 |
+
```
|
126 |
+
|
127 |
+
- `<input_file>`: Path to the input video file
|
128 |
+
- `[output_file]`: Optional path for the output video file (default: <input_file>_converted.<ext>)
|
129 |
+
- `--video_codec`: Video codec to use (default: libx264)
|
130 |
+
- `--audio_codec`: Audio codec to use (default: aac)
|
131 |
+
- `--crop_width`: Width to crop the video (default: 1280)
|
132 |
+
- `--crop_height`: Height to crop the video (default: 768)
|
133 |
+
|
134 |
+
Example:
|
135 |
+
```
|
136 |
+
ai-video convert input_video.mp4 output_video.mp4 --video_codec libx265 --audio_codec mp3 --crop_width 1920 --crop_height 1080
|
137 |
+
```
|
138 |
+
|
139 |
+
This command will convert `input_video.mp4` to `output_video.mp4`, using the libx265 video codec and mp3 audio codec. It will also resize and crop the video to 1920x1080 pixels. If the input video's aspect ratio doesn't match 1920x1080, the video will be scaled to fit within these dimensions and centered.
|
140 |
+
|
141 |
+
If you don't specify an output file, the tool will automatically generate one with the suffix "_converted" added to the input filename.
|
ai_video_cli/main.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
import argparse
|
|
|
2 |
import os
|
3 |
from moviepy.editor import VideoFileClip, concatenate_videoclips, vfx
|
4 |
from PIL import Image
|
@@ -105,6 +106,60 @@ def generate_thumbnail(input_file, output_file=None):
|
|
105 |
print(f"Error: {e}")
|
106 |
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
def main():
|
109 |
parser = argparse.ArgumentParser(description="AI Video Editor CLI Tool")
|
110 |
subparsers = parser.add_subparsers(dest="command", help="Commands")
|
@@ -160,6 +215,40 @@ def main():
|
|
160 |
help="Output thumbnail file (optional, default: <input_file>_thumbnail.jpg)",
|
161 |
)
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
args = parser.parse_args()
|
164 |
|
165 |
if args.command == "split":
|
@@ -170,6 +259,15 @@ def main():
|
|
170 |
replace_audio(args.input_video, args.audio_video, args.output_file)
|
171 |
elif args.command == "thumbnail":
|
172 |
generate_thumbnail(args.input_file, args.output_file)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
else:
|
174 |
parser.print_help()
|
175 |
|
|
|
1 |
import argparse
|
2 |
+
import math
|
3 |
import os
|
4 |
from moviepy.editor import VideoFileClip, concatenate_videoclips, vfx
|
5 |
from PIL import Image
|
|
|
106 |
print(f"Error: {e}")
|
107 |
|
108 |
|
109 |
+
def convert_video(
|
110 |
+
input_file, output_file, video_codec, audio_codec, crop_width, crop_height
|
111 |
+
):
|
112 |
+
try:
|
113 |
+
video = VideoFileClip(input_file)
|
114 |
+
|
115 |
+
# If output_file is not provided, create a default name
|
116 |
+
if output_file is None:
|
117 |
+
base_filename, ext = os.path.splitext(input_file)
|
118 |
+
output_file = f"{base_filename}_converted{ext}"
|
119 |
+
|
120 |
+
# Resize and crop the video if dimensions are provided
|
121 |
+
if crop_width and crop_height:
|
122 |
+
# Calculate the aspect ratios
|
123 |
+
target_aspect = crop_width / crop_height
|
124 |
+
video_aspect = video.w / video.h
|
125 |
+
|
126 |
+
if video_aspect > target_aspect:
|
127 |
+
# Video is wider, scale based on height
|
128 |
+
new_height = crop_height
|
129 |
+
new_width = int(math.ceil(new_height * video_aspect))
|
130 |
+
else:
|
131 |
+
# Video is taller, scale based on width
|
132 |
+
new_width = crop_width
|
133 |
+
new_height = int(math.ceil(new_width / video_aspect))
|
134 |
+
|
135 |
+
# Resize the video
|
136 |
+
resized_video = video.resize(height=new_height, width=new_width)
|
137 |
+
|
138 |
+
# Calculate padding
|
139 |
+
pad_x = max(0, (crop_width - new_width) // 2)
|
140 |
+
pad_y = max(0, (crop_height - new_height) // 2)
|
141 |
+
|
142 |
+
# Crop to final size
|
143 |
+
final_video = resized_video.crop(
|
144 |
+
x1=pad_x, y1=pad_y, width=crop_width, height=crop_height
|
145 |
+
)
|
146 |
+
else:
|
147 |
+
final_video = video
|
148 |
+
|
149 |
+
# Write the video file with specified codecs
|
150 |
+
final_video.write_videofile(
|
151 |
+
output_file, codec=video_codec, audio_codec=audio_codec
|
152 |
+
)
|
153 |
+
|
154 |
+
print(f"Video converted and saved as: {output_file}")
|
155 |
+
print(f"Video codec: {video_codec}")
|
156 |
+
print(f"Audio codec: {audio_codec}")
|
157 |
+
if crop_width and crop_height:
|
158 |
+
print(f"Video resized and cropped to: {crop_width}x{crop_height}")
|
159 |
+
except Exception as e:
|
160 |
+
print(f"Error: {e}")
|
161 |
+
|
162 |
+
|
163 |
def main():
|
164 |
parser = argparse.ArgumentParser(description="AI Video Editor CLI Tool")
|
165 |
subparsers = parser.add_subparsers(dest="command", help="Commands")
|
|
|
215 |
help="Output thumbnail file (optional, default: <input_file>_thumbnail.jpg)",
|
216 |
)
|
217 |
|
218 |
+
# Convert command
|
219 |
+
convert_parser = subparsers.add_parser(
|
220 |
+
"convert",
|
221 |
+
help="Convert a video to specific video and audio codecs, with optional cropping",
|
222 |
+
)
|
223 |
+
convert_parser.add_argument("input_file", help="Input video file")
|
224 |
+
convert_parser.add_argument(
|
225 |
+
"output_file",
|
226 |
+
nargs="?",
|
227 |
+
help="Output video file (optional, default: <input_file>_converted.<ext>)",
|
228 |
+
)
|
229 |
+
convert_parser.add_argument(
|
230 |
+
"--video_codec",
|
231 |
+
default="libx264",
|
232 |
+
help="Video codec to use (default: libx264)",
|
233 |
+
)
|
234 |
+
convert_parser.add_argument(
|
235 |
+
"--audio_codec",
|
236 |
+
default="aac",
|
237 |
+
help="Audio codec to use (default: aac)",
|
238 |
+
)
|
239 |
+
convert_parser.add_argument(
|
240 |
+
"--crop_width",
|
241 |
+
type=int,
|
242 |
+
default=1280,
|
243 |
+
help="Width to crop the video (default: 1280)",
|
244 |
+
)
|
245 |
+
convert_parser.add_argument(
|
246 |
+
"--crop_height",
|
247 |
+
type=int,
|
248 |
+
default=768,
|
249 |
+
help="Height to crop the video (default: 768)",
|
250 |
+
)
|
251 |
+
|
252 |
args = parser.parse_args()
|
253 |
|
254 |
if args.command == "split":
|
|
|
259 |
replace_audio(args.input_video, args.audio_video, args.output_file)
|
260 |
elif args.command == "thumbnail":
|
261 |
generate_thumbnail(args.input_file, args.output_file)
|
262 |
+
elif args.command == "convert":
|
263 |
+
convert_video(
|
264 |
+
args.input_file,
|
265 |
+
args.output_file,
|
266 |
+
args.video_codec,
|
267 |
+
args.audio_codec,
|
268 |
+
args.crop_width,
|
269 |
+
args.crop_height,
|
270 |
+
)
|
271 |
else:
|
272 |
parser.print_help()
|
273 |
|
poetry.lock
CHANGED
@@ -13,101 +13,116 @@ files = [
|
|
13 |
|
14 |
[[package]]
|
15 |
name = "charset-normalizer"
|
16 |
-
version = "3.
|
17 |
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
18 |
optional = false
|
19 |
python-versions = ">=3.7.0"
|
20 |
files = [
|
21 |
-
{file = "
|
22 |
-
{file = "charset_normalizer-3.
|
23 |
-
{file = "charset_normalizer-3.
|
24 |
-
{file = "charset_normalizer-3.
|
25 |
-
{file = "charset_normalizer-3.
|
26 |
-
{file = "charset_normalizer-3.
|
27 |
-
{file = "charset_normalizer-3.
|
28 |
-
{file = "charset_normalizer-3.
|
29 |
-
{file = "charset_normalizer-3.
|
30 |
-
{file = "charset_normalizer-3.
|
31 |
-
{file = "charset_normalizer-3.
|
32 |
-
{file = "charset_normalizer-3.
|
33 |
-
{file = "charset_normalizer-3.
|
34 |
-
{file = "charset_normalizer-3.
|
35 |
-
{file = "charset_normalizer-3.
|
36 |
-
{file = "charset_normalizer-3.
|
37 |
-
{file = "charset_normalizer-3.
|
38 |
-
{file = "charset_normalizer-3.
|
39 |
-
{file = "charset_normalizer-3.
|
40 |
-
{file = "charset_normalizer-3.
|
41 |
-
{file = "charset_normalizer-3.
|
42 |
-
{file = "charset_normalizer-3.
|
43 |
-
{file = "charset_normalizer-3.
|
44 |
-
{file = "charset_normalizer-3.
|
45 |
-
{file = "charset_normalizer-3.
|
46 |
-
{file = "charset_normalizer-3.
|
47 |
-
{file = "charset_normalizer-3.
|
48 |
-
{file = "charset_normalizer-3.
|
49 |
-
{file = "charset_normalizer-3.
|
50 |
-
{file = "charset_normalizer-3.
|
51 |
-
{file = "charset_normalizer-3.
|
52 |
-
{file = "charset_normalizer-3.
|
53 |
-
{file = "charset_normalizer-3.
|
54 |
-
{file = "charset_normalizer-3.
|
55 |
-
{file = "charset_normalizer-3.
|
56 |
-
{file = "charset_normalizer-3.
|
57 |
-
{file = "charset_normalizer-3.
|
58 |
-
{file = "charset_normalizer-3.
|
59 |
-
{file = "charset_normalizer-3.
|
60 |
-
{file = "charset_normalizer-3.
|
61 |
-
{file = "charset_normalizer-3.
|
62 |
-
{file = "charset_normalizer-3.
|
63 |
-
{file = "charset_normalizer-3.
|
64 |
-
{file = "charset_normalizer-3.
|
65 |
-
{file = "charset_normalizer-3.
|
66 |
-
{file = "charset_normalizer-3.
|
67 |
-
{file = "charset_normalizer-3.
|
68 |
-
{file = "charset_normalizer-3.
|
69 |
-
{file = "charset_normalizer-3.
|
70 |
-
{file = "charset_normalizer-3.
|
71 |
-
{file = "charset_normalizer-3.
|
72 |
-
{file = "charset_normalizer-3.
|
73 |
-
{file = "charset_normalizer-3.
|
74 |
-
{file = "charset_normalizer-3.
|
75 |
-
{file = "charset_normalizer-3.
|
76 |
-
{file = "charset_normalizer-3.
|
77 |
-
{file = "charset_normalizer-3.
|
78 |
-
{file = "charset_normalizer-3.
|
79 |
-
{file = "charset_normalizer-3.
|
80 |
-
{file = "charset_normalizer-3.
|
81 |
-
{file = "charset_normalizer-3.
|
82 |
-
{file = "charset_normalizer-3.
|
83 |
-
{file = "charset_normalizer-3.
|
84 |
-
{file = "charset_normalizer-3.
|
85 |
-
{file = "charset_normalizer-3.
|
86 |
-
{file = "charset_normalizer-3.
|
87 |
-
{file = "charset_normalizer-3.
|
88 |
-
{file = "charset_normalizer-3.
|
89 |
-
{file = "charset_normalizer-3.
|
90 |
-
{file = "charset_normalizer-3.
|
91 |
-
{file = "charset_normalizer-3.
|
92 |
-
{file = "charset_normalizer-3.
|
93 |
-
{file = "charset_normalizer-3.
|
94 |
-
{file = "charset_normalizer-3.
|
95 |
-
{file = "charset_normalizer-3.
|
96 |
-
{file = "charset_normalizer-3.
|
97 |
-
{file = "charset_normalizer-3.
|
98 |
-
{file = "charset_normalizer-3.
|
99 |
-
{file = "charset_normalizer-3.
|
100 |
-
{file = "charset_normalizer-3.
|
101 |
-
{file = "charset_normalizer-3.
|
102 |
-
{file = "charset_normalizer-3.
|
103 |
-
{file = "charset_normalizer-3.
|
104 |
-
{file = "charset_normalizer-3.
|
105 |
-
{file = "charset_normalizer-3.
|
106 |
-
{file = "charset_normalizer-3.
|
107 |
-
{file = "charset_normalizer-3.
|
108 |
-
{file = "charset_normalizer-3.
|
109 |
-
{file = "charset_normalizer-3.
|
110 |
-
{file = "charset_normalizer-3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
]
|
112 |
|
113 |
[[package]]
|
@@ -268,100 +283,82 @@ files = [
|
|
268 |
|
269 |
[[package]]
|
270 |
name = "pillow"
|
271 |
-
version = "
|
272 |
description = "Python Imaging Library (Fork)"
|
273 |
optional = false
|
274 |
-
python-versions = ">=3.
|
275 |
files = [
|
276 |
-
{file = "
|
277 |
-
{file = "
|
278 |
-
{file = "
|
279 |
-
{file = "
|
280 |
-
{file = "
|
281 |
-
{file = "
|
282 |
-
{file = "
|
283 |
-
{file = "
|
284 |
-
{file = "
|
285 |
-
{file = "
|
286 |
-
{file = "
|
287 |
-
{file = "
|
288 |
-
{file = "
|
289 |
-
{file = "
|
290 |
-
{file = "
|
291 |
-
{file = "
|
292 |
-
{file = "
|
293 |
-
{file = "
|
294 |
-
{file = "
|
295 |
-
{file = "
|
296 |
-
{file = "
|
297 |
-
{file = "
|
298 |
-
{file = "
|
299 |
-
{file = "
|
300 |
-
{file = "
|
301 |
-
{file = "
|
302 |
-
{file = "
|
303 |
-
{file = "
|
304 |
-
{file = "
|
305 |
-
{file = "
|
306 |
-
{file = "
|
307 |
-
{file = "
|
308 |
-
{file = "
|
309 |
-
{file = "
|
310 |
-
{file = "
|
311 |
-
{file = "
|
312 |
-
{file = "
|
313 |
-
{file = "
|
314 |
-
{file = "
|
315 |
-
{file = "
|
316 |
-
{file = "
|
317 |
-
{file = "
|
318 |
-
{file = "
|
319 |
-
{file = "
|
320 |
-
{file = "
|
321 |
-
{file = "
|
322 |
-
{file = "
|
323 |
-
{file = "
|
324 |
-
{file = "
|
325 |
-
{file = "
|
326 |
-
{file = "
|
327 |
-
{file = "
|
328 |
-
{file = "
|
329 |
-
{file = "
|
330 |
-
{file = "
|
331 |
-
{file = "
|
332 |
-
{file = "
|
333 |
-
{file = "
|
334 |
-
{file = "
|
335 |
-
{file = "
|
336 |
-
{file = "
|
337 |
-
{file = "
|
338 |
-
{file = "
|
339 |
-
{file = "
|
340 |
-
{file = "
|
341 |
-
{file = "
|
342 |
-
{file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"},
|
343 |
-
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"},
|
344 |
-
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"},
|
345 |
-
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"},
|
346 |
-
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"},
|
347 |
-
{file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"},
|
348 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"},
|
349 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"},
|
350 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"},
|
351 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"},
|
352 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"},
|
353 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"},
|
354 |
-
{file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"},
|
355 |
-
{file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"},
|
356 |
]
|
357 |
|
358 |
[package.extras]
|
359 |
-
docs = ["furo", "olefile", "sphinx (>=
|
360 |
-
fpx = ["olefile"]
|
361 |
-
mic = ["olefile"]
|
362 |
tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
|
363 |
-
typing = ["typing-extensions"]
|
364 |
-
xmp = ["defusedxml"]
|
365 |
|
366 |
[[package]]
|
367 |
name = "proglog"
|
@@ -458,4 +455,4 @@ zstd = ["zstandard (>=0.18.0)"]
|
|
458 |
[metadata]
|
459 |
lock-version = "2.0"
|
460 |
python-versions = ">=3.9,<3.12"
|
461 |
-
content-hash = "
|
|
|
13 |
|
14 |
[[package]]
|
15 |
name = "charset-normalizer"
|
16 |
+
version = "3.4.0"
|
17 |
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
18 |
optional = false
|
19 |
python-versions = ">=3.7.0"
|
20 |
files = [
|
21 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"},
|
22 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"},
|
23 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"},
|
24 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"},
|
25 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"},
|
26 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"},
|
27 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"},
|
28 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"},
|
29 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"},
|
30 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"},
|
31 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"},
|
32 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"},
|
33 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"},
|
34 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"},
|
35 |
+
{file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"},
|
36 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"},
|
37 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"},
|
38 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"},
|
39 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"},
|
40 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"},
|
41 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"},
|
42 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"},
|
43 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"},
|
44 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"},
|
45 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"},
|
46 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"},
|
47 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"},
|
48 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"},
|
49 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"},
|
50 |
+
{file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"},
|
51 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"},
|
52 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"},
|
53 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"},
|
54 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"},
|
55 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"},
|
56 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"},
|
57 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"},
|
58 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"},
|
59 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"},
|
60 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"},
|
61 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"},
|
62 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"},
|
63 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"},
|
64 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"},
|
65 |
+
{file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"},
|
66 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"},
|
67 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"},
|
68 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"},
|
69 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"},
|
70 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"},
|
71 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"},
|
72 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"},
|
73 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"},
|
74 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"},
|
75 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"},
|
76 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"},
|
77 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"},
|
78 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"},
|
79 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"},
|
80 |
+
{file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"},
|
81 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"},
|
82 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"},
|
83 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"},
|
84 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"},
|
85 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"},
|
86 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"},
|
87 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"},
|
88 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"},
|
89 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"},
|
90 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"},
|
91 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"},
|
92 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"},
|
93 |
+
{file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"},
|
94 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"},
|
95 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"},
|
96 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"},
|
97 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"},
|
98 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"},
|
99 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"},
|
100 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"},
|
101 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"},
|
102 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"},
|
103 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"},
|
104 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"},
|
105 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"},
|
106 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"},
|
107 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"},
|
108 |
+
{file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"},
|
109 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"},
|
110 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"},
|
111 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"},
|
112 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"},
|
113 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"},
|
114 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"},
|
115 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"},
|
116 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"},
|
117 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"},
|
118 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"},
|
119 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"},
|
120 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"},
|
121 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"},
|
122 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"},
|
123 |
+
{file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"},
|
124 |
+
{file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"},
|
125 |
+
{file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"},
|
126 |
]
|
127 |
|
128 |
[[package]]
|
|
|
283 |
|
284 |
[[package]]
|
285 |
name = "pillow"
|
286 |
+
version = "9.5.0"
|
287 |
description = "Python Imaging Library (Fork)"
|
288 |
optional = false
|
289 |
+
python-versions = ">=3.7"
|
290 |
files = [
|
291 |
+
{file = "Pillow-9.5.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:ace6ca218308447b9077c14ea4ef381ba0b67ee78d64046b3f19cf4e1139ad16"},
|
292 |
+
{file = "Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3d403753c9d5adc04d4694d35cf0391f0f3d57c8e0030aac09d7678fa8030aa"},
|
293 |
+
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ba1b81ee69573fe7124881762bb4cd2e4b6ed9dd28c9c60a632902fe8db8b38"},
|
294 |
+
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe7e1c262d3392afcf5071df9afa574544f28eac825284596ac6db56e6d11062"},
|
295 |
+
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f36397bf3f7d7c6a3abdea815ecf6fd14e7fcd4418ab24bae01008d8d8ca15e"},
|
296 |
+
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:252a03f1bdddce077eff2354c3861bf437c892fb1832f75ce813ee94347aa9b5"},
|
297 |
+
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:85ec677246533e27770b0de5cf0f9d6e4ec0c212a1f89dfc941b64b21226009d"},
|
298 |
+
{file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b416f03d37d27290cb93597335a2f85ed446731200705b22bb927405320de903"},
|
299 |
+
{file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1781a624c229cb35a2ac31cc4a77e28cafc8900733a864870c49bfeedacd106a"},
|
300 |
+
{file = "Pillow-9.5.0-cp310-cp310-win32.whl", hash = "sha256:8507eda3cd0608a1f94f58c64817e83ec12fa93a9436938b191b80d9e4c0fc44"},
|
301 |
+
{file = "Pillow-9.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3c6b54e304c60c4181da1c9dadf83e4a54fd266a99c70ba646a9baa626819eb"},
|
302 |
+
{file = "Pillow-9.5.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:7ec6f6ce99dab90b52da21cf0dc519e21095e332ff3b399a357c187b1a5eee32"},
|
303 |
+
{file = "Pillow-9.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:560737e70cb9c6255d6dcba3de6578a9e2ec4b573659943a5e7e4af13f298f5c"},
|
304 |
+
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96e88745a55b88a7c64fa49bceff363a1a27d9a64e04019c2281049444a571e3"},
|
305 |
+
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d9c206c29b46cfd343ea7cdfe1232443072bbb270d6a46f59c259460db76779a"},
|
306 |
+
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcc2c53c06f2ccb8976fb5c71d448bdd0a07d26d8e07e321c103416444c7ad1"},
|
307 |
+
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:a0f9bb6c80e6efcde93ffc51256d5cfb2155ff8f78292f074f60f9e70b942d99"},
|
308 |
+
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8d935f924bbab8f0a9a28404422da8af4904e36d5c33fc6f677e4c4485515625"},
|
309 |
+
{file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fed1e1cf6a42577953abbe8e6cf2fe2f566daebde7c34724ec8803c4c0cda579"},
|
310 |
+
{file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c1170d6b195555644f0616fd6ed929dfcf6333b8675fcca044ae5ab110ded296"},
|
311 |
+
{file = "Pillow-9.5.0-cp311-cp311-win32.whl", hash = "sha256:54f7102ad31a3de5666827526e248c3530b3a33539dbda27c6843d19d72644ec"},
|
312 |
+
{file = "Pillow-9.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfa4561277f677ecf651e2b22dc43e8f5368b74a25a8f7d1d4a3a243e573f2d4"},
|
313 |
+
{file = "Pillow-9.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:965e4a05ef364e7b973dd17fc765f42233415974d773e82144c9bbaaaea5d089"},
|
314 |
+
{file = "Pillow-9.5.0-cp312-cp312-win32.whl", hash = "sha256:22baf0c3cf0c7f26e82d6e1adf118027afb325e703922c8dfc1d5d0156bb2eeb"},
|
315 |
+
{file = "Pillow-9.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:432b975c009cf649420615388561c0ce7cc31ce9b2e374db659ee4f7d57a1f8b"},
|
316 |
+
{file = "Pillow-9.5.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5d4ebf8e1db4441a55c509c4baa7a0587a0210f7cd25fcfe74dbbce7a4bd1906"},
|
317 |
+
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375f6e5ee9620a271acb6820b3d1e94ffa8e741c0601db4c0c4d3cb0a9c224bf"},
|
318 |
+
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99eb6cafb6ba90e436684e08dad8be1637efb71c4f2180ee6b8f940739406e78"},
|
319 |
+
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dfaaf10b6172697b9bceb9a3bd7b951819d1ca339a5ef294d1f1ac6d7f63270"},
|
320 |
+
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:763782b2e03e45e2c77d7779875f4432e25121ef002a41829d8868700d119392"},
|
321 |
+
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:35f6e77122a0c0762268216315bf239cf52b88865bba522999dc38f1c52b9b47"},
|
322 |
+
{file = "Pillow-9.5.0-cp37-cp37m-win32.whl", hash = "sha256:aca1c196f407ec7cf04dcbb15d19a43c507a81f7ffc45b690899d6a76ac9fda7"},
|
323 |
+
{file = "Pillow-9.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322724c0032af6692456cd6ed554bb85f8149214d97398bb80613b04e33769f6"},
|
324 |
+
{file = "Pillow-9.5.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:a0aa9417994d91301056f3d0038af1199eb7adc86e646a36b9e050b06f526597"},
|
325 |
+
{file = "Pillow-9.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8286396b351785801a976b1e85ea88e937712ee2c3ac653710a4a57a8da5d9c"},
|
326 |
+
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c830a02caeb789633863b466b9de10c015bded434deb3ec87c768e53752ad22a"},
|
327 |
+
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbd359831c1657d69bb81f0db962905ee05e5e9451913b18b831febfe0519082"},
|
328 |
+
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc330c3370a81bbf3f88557097d1ea26cd8b019d6433aa59f71195f5ddebbf"},
|
329 |
+
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:7002d0797a3e4193c7cdee3198d7c14f92c0836d6b4a3f3046a64bd1ce8df2bf"},
|
330 |
+
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:229e2c79c00e85989a34b5981a2b67aa079fd08c903f0aaead522a1d68d79e51"},
|
331 |
+
{file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9adf58f5d64e474bed00d69bcd86ec4bcaa4123bfa70a65ce72e424bfb88ed96"},
|
332 |
+
{file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:662da1f3f89a302cc22faa9f14a262c2e3951f9dbc9617609a47521c69dd9f8f"},
|
333 |
+
{file = "Pillow-9.5.0-cp38-cp38-win32.whl", hash = "sha256:6608ff3bf781eee0cd14d0901a2b9cc3d3834516532e3bd673a0a204dc8615fc"},
|
334 |
+
{file = "Pillow-9.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:e49eb4e95ff6fd7c0c402508894b1ef0e01b99a44320ba7d8ecbabefddcc5569"},
|
335 |
+
{file = "Pillow-9.5.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:482877592e927fd263028c105b36272398e3e1be3269efda09f6ba21fd83ec66"},
|
336 |
+
{file = "Pillow-9.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ded42b9ad70e5f1754fb7c2e2d6465a9c842e41d178f262e08b8c85ed8a1d8e"},
|
337 |
+
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c446d2245ba29820d405315083d55299a796695d747efceb5717a8b450324115"},
|
338 |
+
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aca1152d93dcc27dc55395604dcfc55bed5f25ef4c98716a928bacba90d33a3"},
|
339 |
+
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:608488bdcbdb4ba7837461442b90ea6f3079397ddc968c31265c1e056964f1ef"},
|
340 |
+
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:60037a8db8750e474af7ffc9faa9b5859e6c6d0a50e55c45576bf28be7419705"},
|
341 |
+
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:07999f5834bdc404c442146942a2ecadd1cb6292f5229f4ed3b31e0a108746b1"},
|
342 |
+
{file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a127ae76092974abfbfa38ca2d12cbeddcdeac0fb71f9627cc1135bedaf9d51a"},
|
343 |
+
{file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:489f8389261e5ed43ac8ff7b453162af39c3e8abd730af8363587ba64bb2e865"},
|
344 |
+
{file = "Pillow-9.5.0-cp39-cp39-win32.whl", hash = "sha256:9b1af95c3a967bf1da94f253e56b6286b50af23392a886720f563c547e48e964"},
|
345 |
+
{file = "Pillow-9.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:77165c4a5e7d5a284f10a6efaa39a0ae8ba839da344f20b111d62cc932fa4e5d"},
|
346 |
+
{file = "Pillow-9.5.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:833b86a98e0ede388fa29363159c9b1a294b0905b5128baf01db683672f230f5"},
|
347 |
+
{file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaf305d6d40bd9632198c766fb64f0c1a83ca5b667f16c1e79e1661ab5060140"},
|
348 |
+
{file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0852ddb76d85f127c135b6dd1f0bb88dbb9ee990d2cd9aa9e28526c93e794fba"},
|
349 |
+
{file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:91ec6fe47b5eb5a9968c79ad9ed78c342b1f97a091677ba0e012701add857829"},
|
350 |
+
{file = "Pillow-9.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb841572862f629b99725ebaec3287fc6d275be9b14443ea746c1dd325053cbd"},
|
351 |
+
{file = "Pillow-9.5.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c380b27d041209b849ed246b111b7c166ba36d7933ec6e41175fd15ab9eb1572"},
|
352 |
+
{file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c9af5a3b406a50e313467e3565fc99929717f780164fe6fbb7704edba0cebbe"},
|
353 |
+
{file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5671583eab84af046a397d6d0ba25343c00cd50bce03787948e0fff01d4fd9b1"},
|
354 |
+
{file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:84a6f19ce086c1bf894644b43cd129702f781ba5751ca8572f08aa40ef0ab7b7"},
|
355 |
+
{file = "Pillow-9.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1e7723bd90ef94eda669a3c2c19d549874dd5badaeefabefd26053304abe5799"},
|
356 |
+
{file = "Pillow-9.5.0.tar.gz", hash = "sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
]
|
358 |
|
359 |
[package.extras]
|
360 |
+
docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"]
|
|
|
|
|
361 |
tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
|
|
|
|
|
362 |
|
363 |
[[package]]
|
364 |
name = "proglog"
|
|
|
455 |
[metadata]
|
456 |
lock-version = "2.0"
|
457 |
python-versions = ">=3.9,<3.12"
|
458 |
+
content-hash = "d63c7289d43e8878198ee8ea1a585dedbfca0de77e2a2f134393e0b8a1513df7"
|
pyproject.toml
CHANGED
@@ -4,12 +4,13 @@ version = "0.1.0"
|
|
4 |
description = "AI Video Editor CLI Tool"
|
5 |
authors = ["Marcus Schiesser <[email protected]>"]
|
6 |
readme = "README.md"
|
7 |
-
packages = [{include = "ai_video_cli"}]
|
8 |
|
9 |
[tool.poetry.dependencies]
|
10 |
python = ">=3.9,<3.12"
|
11 |
moviepy = "^1.0.3"
|
12 |
numpy = "^1.26.0"
|
|
|
13 |
|
14 |
[tool.poetry.scripts]
|
15 |
ai-video = "ai_video_cli.main:main"
|
|
|
4 |
description = "AI Video Editor CLI Tool"
|
5 |
authors = ["Marcus Schiesser <[email protected]>"]
|
6 |
readme = "README.md"
|
7 |
+
packages = [{ include = "ai_video_cli" }]
|
8 |
|
9 |
[tool.poetry.dependencies]
|
10 |
python = ">=3.9,<3.12"
|
11 |
moviepy = "^1.0.3"
|
12 |
numpy = "^1.26.0"
|
13 |
+
pillow = "^9"
|
14 |
|
15 |
[tool.poetry.scripts]
|
16 |
ai-video = "ai_video_cli.main:main"
|