auto-editor 24.27.1__py3-none-any.whl → 24.30.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,338 +1,96 @@
1
1
  from __future__ import annotations
2
2
 
3
- from dataclasses import dataclass, field
3
+ from dataclasses import dataclass
4
4
  from typing import TypedDict
5
5
 
6
+ import av
7
+ from av.codec import Codec
8
+
6
9
 
7
10
  class DictContainer(TypedDict, total=False):
8
- allow_video: bool
9
- allow_audio: bool
10
- allow_subtitle: bool
11
- allow_image: bool
12
11
  max_videos: int | None
13
12
  max_audios: int | None
14
13
  max_subtitles: int | None
15
- vcodecs: list[str] | None
16
- acodecs: list[str] | None
17
- scodecs: list[str] | None
18
- vstrict: bool
19
- sstrict: bool
20
- disallow_v: list[str]
21
14
  samplerate: list[int] | None
22
15
 
23
16
 
24
17
  @dataclass(slots=True)
25
18
  class Container:
26
- allow_video: bool = False
27
- allow_audio: bool = False
28
- allow_subtitle: bool = False
29
- allow_image: bool = False
19
+ allow_image: bool
20
+ vcodecs: set[str]
21
+ acodecs: set[str]
22
+ scodecs: set[str]
23
+ default_vid: str
24
+ default_aud: str
25
+ default_sub: str
30
26
  max_videos: int | None = None
31
27
  max_audios: int | None = None
32
28
  max_subtitles: int | None = None
33
- vcodecs: list[str] | None = None
34
- acodecs: list[str] | None = None
35
- scodecs: list[str] | None = None
36
- vstrict: bool = False
37
- sstrict: bool = False
38
- disallow_v: list[str] = field(default_factory=list)
39
29
  samplerate: list[int] | None = None # Any samplerate is allowed
40
30
 
41
31
 
42
- h264_en = [
43
- "h264",
44
- "libx264",
45
- "libx264rgb",
46
- "libopenh264",
47
- "h264_videotoolbox",
48
- "h264_amf",
49
- "h264_nvenc",
50
- "h264_qsv",
51
- ]
52
- hevc_en = ["hevc", "libx265", "hevc_videotoolbox", "hevc_amf", "hevc_nvenc", "hevc_qsv"]
53
- av1_en = ["av1", "libaom-av1", "av1_nvenc", "av1_amf"]
54
- prores_en = ["prores", "prores_videotoolbox", "prores_aw", "prores_ks"]
55
- aac_en = ["aac", "aac_at", "libfdk_aac"]
56
- opus_en = ["opus", "libopus"]
57
-
58
- h265: DictContainer = {
59
- "allow_video": True,
60
- "vcodecs": hevc_en + ["mpeg4"] + h264_en,
61
- }
62
- h264: DictContainer = {
63
- "allow_video": True,
64
- "vcodecs": h264_en + ["mpeg4"] + hevc_en,
65
- }
66
- aac: DictContainer = {
67
- "allow_audio": True,
68
- "max_audios": 1,
69
- "acodecs": aac_en,
70
- }
71
- ass: DictContainer = {
72
- "allow_subtitle": True,
73
- "scodecs": ["ass", "ssa"],
74
- "max_subtitles": 1,
75
- "sstrict": True,
76
- }
77
- mp4: DictContainer = {
78
- "allow_video": True,
79
- "allow_audio": True,
80
- "allow_subtitle": True,
81
- "allow_image": True,
82
- "vcodecs": h264_en + hevc_en + av1_en + ["vp9", "mpeg4", "mpeg2video", "mjpeg"],
83
- "acodecs": aac_en + opus_en + ["mp3", "flac", "vorbis", "libvorbis", "ac3", "mp2"],
84
- "vstrict": True,
85
- }
86
- ogg: DictContainer = {
87
- "allow_video": True,
88
- "allow_audio": True,
89
- "allow_subtitle": True,
90
- "vcodecs": ["libtheora", "theora"],
91
- "acodecs": opus_en + ["libvorbis", "vorbis", "flac", "speex"],
92
- "vstrict": True,
32
+ containers: dict[str, DictContainer] = {
33
+ "aac": {"max_audios": 1},
34
+ "adts": {"max_audios": 1},
35
+ "ass": {"max_subtitles": 1},
36
+ "ssa": {"max_subtitles": 1},
37
+ "apng": {"max_videos": 1},
38
+ "gif": {"max_videos": 1},
39
+ "wav": {"max_audios": 1},
40
+ "ast": {"max_audios": 1},
41
+ "mp3": {"max_audios": 1},
42
+ "flac": {"max_audios": 1},
43
+ "srt": {"max_subtitles": 1},
44
+ "vtt": {"max_subtitles": 1},
45
+ "swf": {"samplerate": [44100, 22050, 11025]},
93
46
  }
94
47
 
95
- mka_audio = (
96
- ["libvorbis", "vorbis"]
97
- + aac_en
98
- + opus_en
99
- + [
100
- "mp3",
101
- "flac",
102
- "ac3",
103
- "mp2",
104
- "wmav2",
105
- "pcm_s16le",
106
- "pcm_alaw",
107
- "pcm_f32le",
108
- "pcm_f64le",
109
- "pcm_mulaw",
110
- "pcm_s16be",
111
- "pcm_s24be",
112
- "pcm_s24le",
113
- "pcm_s32be",
114
- "pcm_s32le",
115
- "pcm_u8",
116
- ]
117
- )
118
48
 
119
- containers: dict[str, DictContainer] = {
120
- # Aliases section
121
- "aac": aac,
122
- "adts": aac,
123
- "ass": ass,
124
- "ssa": ass,
125
- "264": h264,
126
- "h264": h264,
127
- "265": h265,
128
- "h265": h265,
129
- "hevc": h265,
130
- "mp4": mp4,
131
- "m4a": mp4,
132
- "ogg": ogg,
133
- "ogv": ogg,
134
- "apng": {
135
- "allow_video": True,
136
- "max_videos": 1,
137
- "vcodecs": ["apng"],
138
- "vstrict": True,
139
- },
140
- "gif": {
141
- "allow_video": True,
142
- "max_videos": 1,
143
- "vcodecs": ["gif"],
144
- "vstrict": True,
145
- },
146
- "wav": {
147
- "allow_audio": True,
148
- "max_audios": 1,
149
- "acodecs": [
150
- "pcm_s16le",
151
- "mp3",
152
- "mp2",
153
- "wmav2",
154
- "pcm_alaw",
155
- "pcm_f32le",
156
- "pcm_f64le",
157
- "pcm_mulaw",
158
- "pcm_s24le",
159
- "pcm_s32le",
160
- "pcm_u8",
161
- ],
162
- },
163
- "ast": {
164
- "allow_audio": True,
165
- "max_audios": 1,
166
- "acodecs": ["pcm_s16be_planar"],
167
- },
168
- "mp3": {
169
- "allow_audio": True,
170
- "max_audios": 1,
171
- "acodecs": ["mp3"],
172
- },
173
- "opus": {
174
- "allow_audio": True,
175
- "acodecs": opus_en + ["flac", "libvorbis", "vorbis", "speex"],
176
- },
177
- "oga": {
178
- "allow_audio": True,
179
- "acodecs": opus_en + ["flac", "libvorbis", "vorbis", "speex"],
180
- },
181
- "flac": {
182
- "allow_audio": True,
183
- "max_audios": 1,
184
- "acodecs": ["flac"],
185
- },
186
- "webm": {
187
- "allow_video": True,
188
- "allow_audio": True,
189
- "allow_subtitle": True,
190
- "vcodecs": ["vp9", "vp8"] + av1_en,
191
- "acodecs": opus_en + ["vorbis", "libvorbis"],
192
- "scodecs": ["webvtt"],
193
- "vstrict": True,
194
- "sstrict": True,
195
- },
196
- "srt": {
197
- "allow_subtitle": True,
198
- "scodecs": ["srt"],
199
- "max_subtitles": 1,
200
- "sstrict": True,
201
- },
202
- "vtt": {
203
- "allow_subtitle": True,
204
- "scodecs": ["webvtt"],
205
- "max_subtitles": 1,
206
- "sstrict": True,
207
- },
208
- "avi": {
209
- "allow_video": True,
210
- "allow_audio": True,
211
- "vcodecs": ["mpeg4"] + h264_en + ["prores", "mjpeg", "mpeg2video", "rawvideo"],
212
- "acodecs": ["mp3"]
213
- + aac_en
214
- + [
215
- "flac",
216
- "vorbis",
217
- "libvorbis",
218
- "mp2",
219
- "wmav2",
220
- "pcm_s16le",
221
- "pcm_alaw",
222
- "pcm_f32le",
223
- "pcm_f64le",
224
- "pcm_mulaw",
225
- "pcm_s24le",
226
- "pcm_s32le",
227
- "pcm_u8",
228
- ],
229
- "disallow_v": hevc_en + ["apng", "gif"],
230
- },
231
- "wmv": {
232
- "allow_video": True,
233
- "allow_audio": True,
234
- "vcodecs": ["msmpeg4v3"]
235
- + h264_en
236
- + ["mpeg4", "mpeg2video", "mjpeg", "rawvideo"],
237
- "acodecs": ["wmav2"]
238
- + aac_en
239
- + [
240
- "mp3",
241
- "flac",
242
- "vorbis",
243
- "libvorbis",
244
- "ac3",
245
- "mp2",
246
- "pcm_s16le",
247
- "pcm_alaw",
248
- "pcm_f32le",
249
- "pcm_f64le",
250
- "pcm_mulaw",
251
- "pcm_s24le",
252
- "pcm_s32le",
253
- "pcm_u8",
254
- ],
255
- "vstrict": True,
256
- },
257
- "mkv": {
258
- "allow_video": True,
259
- "allow_audio": True,
260
- "allow_subtitle": True,
261
- "allow_image": True,
262
- "vcodecs": h264_en
263
- + hevc_en
264
- + prores_en
265
- + [
266
- "vp9",
267
- "vp8",
268
- "mpeg4",
269
- "mpeg2video",
270
- "msmpeg4v3",
271
- "mjpeg",
272
- "gif",
273
- "rawvideo",
274
- ],
275
- "acodecs": mka_audio,
276
- "disallow_v": ["apng"],
277
- },
278
- "mka": {
279
- "allow_audio": True,
280
- "acodecs": mka_audio,
281
- },
282
- "mov": {
283
- "allow_video": True,
284
- "allow_audio": True,
285
- "allow_subtitle": True,
286
- "vcodecs": h264_en
287
- + hevc_en
288
- + prores_en
289
- + [
290
- "mpeg4",
291
- "mpeg2video",
292
- "msmpeg4v3",
293
- "mjpeg",
294
- "gif",
295
- "flv1",
296
- "dvvideo",
297
- "rawvideo",
298
- ],
299
- "acodecs": aac_en
300
- + [
301
- "mp3",
302
- "vorbis",
303
- "libvorbis",
304
- "ac3",
305
- "mp2",
306
- "wmav2",
307
- "pcm_s16le",
308
- "pcm_alaw",
309
- "pcm_f32be",
310
- "pcm_f32le",
311
- "pcm_f64be",
312
- "pcm_f64le",
313
- "pcm_mulaw",
314
- "pcm_s16be",
315
- "pcm_s24be",
316
- "pcm_s24le",
317
- "pcm_s32be",
318
- "pcm_s32le",
319
- "pcm_s8",
320
- "pcm_u8",
321
- ],
322
- "disallow_v": ["apng", "vp9", "vp8"],
323
- },
324
- "swf": {
325
- "allow_video": True,
326
- "allow_audio": True,
327
- "vcodecs": ["flv1", "mjpeg"],
328
- "acodecs": ["mp3"],
329
- "vstrict": True,
330
- "samplerate": [44100, 22050, 11025],
331
- },
332
- }
49
+ def codec_type(x: str) -> str:
50
+ if x in ("vp9", "vp8", "h264", "hevc", "av1", "gif", "apng"):
51
+ return "video"
52
+ if x in ("aac", "flac", "mp3"):
53
+ return "audio"
54
+ if x in ("ass", "ssa", "srt"):
55
+ return "subtitle"
56
+
57
+ try:
58
+ return Codec(x, "r").type
59
+ except Exception:
60
+ try:
61
+ return Codec(x, "w").type
62
+ except Exception:
63
+ return ""
64
+
65
+
66
+ def container_constructor(ext: str) -> Container:
67
+ with av.open(f".{ext}", "w") as container:
68
+ codecs = container.supported_codecs
69
+ if ext == "webm":
70
+ vdefault = "vp9"
71
+ else:
72
+ vdefault = container.default_video_codec
73
+ adefault = container.default_audio_codec
74
+ sdefault = container.default_subtitle_codec
75
+
76
+ vcodecs = set()
77
+ acodecs = set()
78
+ scodecs = set()
79
+
80
+ for codec in codecs:
81
+ kind = codec_type(codec)
82
+ if kind == "video":
83
+ vcodecs.add(codec)
84
+ if codec == "h264":
85
+ vcodecs.add("libx264")
86
+ if kind == "audio":
87
+ acodecs.add(codec)
88
+ if kind == "subtitle":
89
+ scodecs.add(codec)
333
90
 
91
+ allow_image = ext in ("mp4", "mkv")
92
+ kwargs = containers[ext] if ext in containers else {}
334
93
 
335
- def container_constructor(key: str) -> Container:
336
- if key in containers:
337
- return Container(**containers[key])
338
- return Container(allow_video=True, allow_audio=True, allow_subtitle=True)
94
+ return Container(
95
+ allow_image, vcodecs, acodecs, scodecs, vdefault, adefault, sdefault, **kwargs
96
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-editor
3
- Version: 24.27.1
3
+ Version: 24.30.1
4
4
  Summary: Auto-Editor: Effort free video editing!
5
5
  Author-email: WyattBlue <wyattblue@auto-editor.com>
6
6
  License: Unlicense
@@ -11,8 +11,8 @@ Keywords: video,audio,media,editor,editing,processing,nonlinear,automatic,silenc
11
11
  Requires-Python: >=3.10
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: numpy >=1.22.0
15
- Requires-Dist: pyav ==12.2.*
14
+ Requires-Dist: numpy >=1.23.0
15
+ Requires-Dist: pyav ==12.3.*
16
16
  Requires-Dist: ae-ffmpeg ==1.2.*
17
17
 
18
18
  <p align="center"><img src="https://auto-editor.com/img/auto-editor-banner.webp" title="Auto-Editor" width="700"></p>
@@ -182,6 +182,3 @@ auto-editor --margin --help
182
182
 
183
183
  ## Copyright
184
184
  Auto-Editor is under the [Public Domain](https://github.com/WyattBlue/auto-editor/blob/master/LICENSE) and includes all directories besides the ones listed below. Auto-Editor was created by [these people.](https://auto-editor.com/blog/thank-you-early-testers)
185
-
186
- ae-ffmpeg is under the [LGPLv3 License](https://github.com/WyattBlue/auto-editor/blob/master/ae-ffmpeg/LICENSE.txt). The ffmpeg and ffprobe programs were created by the FFmpeg team.
187
-
@@ -1,15 +1,12 @@
1
- ae-ffmpeg/setup.py,sha256=HeORyrs8OyJ32lSnMaIhI2B7U1lkk3QP6wOjxpoiF3Y,1891
2
- ae-ffmpeg/ae_ffmpeg/__init__.py,sha256=Fd2YsCINa0dB3tf9VVKDTPT9P6MDH-ve3RT2pqArImI,453
3
- ae-ffmpeg/ae_ffmpeg/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- auto_editor/__init__.py,sha256=x3FkUVgQK07IAJYRgjIfWDxsjSINz0ig_JBv3pG5gas,43
1
+ auto_editor/__init__.py,sha256=2eo38rUAsDC2UUJAIJ4AZoh26SJrz93bjEMG1PMKUnQ,43
5
2
  auto_editor/__main__.py,sha256=nkb8N_bxF_qld53LWo4c6Y0n9NDRdsPfANpVF1RD1cQ,9863
6
- auto_editor/analyze.py,sha256=NVDARF7ZxNLWMJ89HsuqCS1TMSeYhf2e5C66cQUTKrk,13200
7
- auto_editor/edit.py,sha256=EEB9PJdGpXh5b1vDdSnsEtI8aJEcF64-SNZjFRg6Nrs,11484
3
+ auto_editor/analyze.py,sha256=6siPLoYwEjvbAzPfKZWDEcqtGXIM8n9qNveyCCYLAgI,11769
4
+ auto_editor/edit.py,sha256=yZFLoWqfC2QFEdibp7AlKXMRB-6jHwNDpTW2SlN-4Is,11325
8
5
  auto_editor/ffwrapper.py,sha256=jga7-HbQnC4w21qZk4aY4kwLT7UPqkGn6NJPFM5Qssc,7811
9
6
  auto_editor/help.py,sha256=BFiP7vBz42TUzum4-zaQIrV1OY7kHeN0pe0MPE0T5xw,7997
10
- auto_editor/make_layers.py,sha256=P49tkQ2td0s6-IPWpnM9iFlyVV-KckLK4Y9xdxrRyhk,9613
11
- auto_editor/output.py,sha256=5_4HtSkd6Lwv2ATEwLKJuXL1yBGScWAPLxvh_nHrBA4,8101
12
- auto_editor/preview.py,sha256=fo2BDIkvl96q_ssq8AAu1tl6FN_j23h8987aDPSmjDs,3094
7
+ auto_editor/make_layers.py,sha256=AzfxRkm9ZFjeVwdh3jFT_5_YvVaUMtphVKDtIaDI5bo,8900
8
+ auto_editor/output.py,sha256=OpZG3SvDRumKoU-fZOA-8-hc9pO_uBdO3WTNhDO9LHM,8065
9
+ auto_editor/preview.py,sha256=CVKtSjcX1dNjbBgsD9PTbRBwRV6dxBLkJ_VIkkBuTUY,3032
13
10
  auto_editor/timeline.py,sha256=JwcS-8AS5vsoTL_m03aosYijScQef4AGa2lyutQ8wbI,7069
14
11
  auto_editor/validate_input.py,sha256=JQt7J5xOBJDp6lnd2sQptpYhf7Z_hyxNEzLsE9E7LKU,2596
15
12
  auto_editor/vanparse.py,sha256=p0u1X2gKM_lWB9bg-Lotqq9-bjfLgsVW9-U4Lwbz0aU,10029
@@ -23,36 +20,36 @@ auto_editor/formats/utils.py,sha256=GIZw28WHuCIaZ_zMI0v6Kxbq0QaIpbLsdSegdYwQxQ8,
23
20
  auto_editor/lang/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
21
  auto_editor/lang/json.py,sha256=OsNcYlfEj8ZLlzLK-gkLcrCCKI7mJz9rpe-6XLr4f9U,9231
25
22
  auto_editor/lang/libmath.py,sha256=z33A161Oe6vYYK7R6pgYjdZZe63dQkN38Qf36TL3prg,847
26
- auto_editor/lang/palet.py,sha256=9eQwirwwejf0qrXxXqwETEFv4MQ98jUs-0X_wHMaxRg,59027
23
+ auto_editor/lang/palet.py,sha256=ZlQsKS5TEUDDiPQSXMSXcdoYYibcv6nwwe372IVdQkw,59839
27
24
  auto_editor/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- auto_editor/lib/contracts.py,sha256=CTay7wMWnMSbTD1QAwE-b6yvIcSPvkpxkFQRXoJiqZE,7258
25
+ auto_editor/lib/contracts.py,sha256=HxWWMU63_6nKsdIXCDKnlWaYzS0dpN-H3uwCuzZALaM,7353
29
26
  auto_editor/lib/data_structs.py,sha256=EXNcdMsdmZxMRlpbXmIbRoC-YfGzvPZi7EdBQGwvpP4,6887
30
27
  auto_editor/lib/err.py,sha256=UlszQJdzMZwkbT8x3sY4GkCV_5x9yrd6uVVUzvA8iiI,35
31
28
  auto_editor/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
29
  auto_editor/render/audio.py,sha256=pUhD4rQZfUnyzKgpuxNxl_2CUGwbkAWo2356HUAW7VM,8835
33
- auto_editor/render/subtitle.py,sha256=RUG0hNh0Mbt3IRxef9hKUpUPXvyTa3HVoqoSHYivAT4,4355
34
- auto_editor/render/video.py,sha256=E1snevFC4mMk_S_oDquJPKyElQfdDodO7EJEQ22JJF8,13202
30
+ auto_editor/render/subtitle.py,sha256=g195kDN0LcwKlZeQMCflXPH5n_74iwCk1RPLSQ5eP34,4373
31
+ auto_editor/render/video.py,sha256=MOhZh72VGe0LVrDE8SzBb-FqXUrnQTIF51zz1qvX2_I,12987
35
32
  auto_editor/subcommands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
33
  auto_editor/subcommands/desc.py,sha256=GDrKJYiHMaeTrplZAceXl1JwoqD78XsV2_5lc0Xd7po,869
37
34
  auto_editor/subcommands/info.py,sha256=7Sgt9WR0rWxe7juCRKseMxW6gKv3z3voqFcL8-MOVVM,6927
38
- auto_editor/subcommands/levels.py,sha256=qSEXSkYPOCmr4_VZ1xAwtCZzaBOe8wXY0T-orN3Qg_A,4006
35
+ auto_editor/subcommands/levels.py,sha256=ymHwAp2l7HScmdTtNAPDEeDfRVY_rRPRigUCDYx2F40,4220
39
36
  auto_editor/subcommands/palet.py,sha256=tbQoRWoT4jR3yu0etGApfprM-oQgXIjC-rIY-QG3nM0,655
40
- auto_editor/subcommands/repl.py,sha256=nbCVIyFwG3HRtGr8q-yLtASVMbMKDzAbn5vqA6RC9bk,3722
41
- auto_editor/subcommands/subdump.py,sha256=2rIaGVtWWMBbPJ0NouPD7fY5lhk0QD_XKE_4EnAeWPw,892
37
+ auto_editor/subcommands/repl.py,sha256=gEVmZduWwnumMe4GLHi72C_IbmdscYwiz7mjigU97Qk,3300
38
+ auto_editor/subcommands/subdump.py,sha256=af_XBf7kaevqHn1A71z8C-7x8pS5WKD9FE_ugkCw6rk,665
42
39
  auto_editor/subcommands/test.py,sha256=UcpJp-PMcoUyz6LDD4y2V6EQ9w1ed66fPZr4GpzJReg,25050
43
40
  auto_editor/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
41
  auto_editor/utils/bar.py,sha256=RJqkJ8gNr8op_Z-2hh48ExjSonmTPX-RshctK_itv14,3988
45
42
  auto_editor/utils/chunks.py,sha256=J-eGKtEz68gFtRrj1kOSgH4Tj_Yz6prNQ7Xr-d9NQJw,52
46
43
  auto_editor/utils/cmdkw.py,sha256=XApxw7FZBOEJV9N4LHhdw1GVfHbFfCjr-zCZ1gJsSvY,6002
47
- auto_editor/utils/container.py,sha256=cl8wN5w-PjShPabnppil56r2dykQCfWdsR45jBbCkuo,7976
44
+ auto_editor/utils/container.py,sha256=CWB55RRzADBuQmX8lhiPaG8iPayGWaebvtmJjgJ6WRA,2497
48
45
  auto_editor/utils/encoder.py,sha256=auNYo7HXbcU4iTUCc0LE5lpwFmSvdWvBm6-5KIaRK8w,2983
49
46
  auto_editor/utils/func.py,sha256=H38xO6Wxg1TZILVrx-nCowCzj_mqBUtJuOFp4DV3Hsc,4843
50
47
  auto_editor/utils/log.py,sha256=ry-C92PRkJ-c8PQYIs1imk1qigDYfsCoLBYK6CQSP7I,2844
51
48
  auto_editor/utils/subtitle_tools.py,sha256=TjjVPiT8bWzZJcrZjF7ddpgfIsVkLE4LyxXzBswHAGU,693
52
49
  auto_editor/utils/types.py,sha256=zWbU_VkcdP4yHHzKyaSiXu560n5U53i0x5SPkUDsCZU,11570
53
- auto_editor-24.27.1.dist-info/LICENSE,sha256=yiq99pWITHfqS0pbZMp7cy2dnbreTuvBwudsU-njvIM,1210
54
- auto_editor-24.27.1.dist-info/METADATA,sha256=GBxzQhnfrlu3KJ89iT7RZ04nvEhUeJfAOzPl6OxtS6A,6322
55
- auto_editor-24.27.1.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
56
- auto_editor-24.27.1.dist-info/entry_points.txt,sha256=-H7zdTw4MqnAcwrN5xTNkGIhzZtJMxS9r6lTMeR9-aA,240
57
- auto_editor-24.27.1.dist-info/top_level.txt,sha256=xwV1JV1ZeRmlH9VeBRZXgXtWHpWSD4w1mY5II56D3ns,22
58
- auto_editor-24.27.1.dist-info/RECORD,,
50
+ auto_editor-24.30.1.dist-info/LICENSE,sha256=yiq99pWITHfqS0pbZMp7cy2dnbreTuvBwudsU-njvIM,1210
51
+ auto_editor-24.30.1.dist-info/METADATA,sha256=6PQ4JL2l2YioyyknShGetU4rsQ2Czp8EJHZzMsbo7dA,6138
52
+ auto_editor-24.30.1.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
53
+ auto_editor-24.30.1.dist-info/entry_points.txt,sha256=-H7zdTw4MqnAcwrN5xTNkGIhzZtJMxS9r6lTMeR9-aA,240
54
+ auto_editor-24.30.1.dist-info/top_level.txt,sha256=ky1HUkqq9i034c4CUU_0wBw0xZsxxyGEak1eTbdvpyA,12
55
+ auto_editor-24.30.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.2.0)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,16 +0,0 @@
1
- __version__ = "1.2.0"
2
-
3
- import os.path
4
- from platform import machine, system
5
-
6
-
7
- def get_path() -> str:
8
- _os = system()
9
- _arch = machine().lower()
10
- _interdir = _os if _os != "Darwin" else f"{_os}-{_arch}"
11
- program = "ffmpeg.exe" if _os == "Windows" else "ffmpeg"
12
-
13
- dirpath = os.path.dirname(os.path.realpath(__file__))
14
- file_path = os.path.join(dirpath, _interdir, program)
15
-
16
- return file_path if os.path.isfile(file_path) else "ffmpeg"
File without changes
ae-ffmpeg/setup.py DELETED
@@ -1,65 +0,0 @@
1
- import re
2
-
3
- from setuptools import find_packages, setup
4
-
5
-
6
- def pip_version():
7
- with open("ae_ffmpeg/__init__.py") as f:
8
- version_content = f.read()
9
-
10
- version_match = re.search(
11
- r"^__version__ = ['\"]([^'\"]*)['\"]", version_content, re.M
12
- )
13
-
14
- if version_match:
15
- return version_match.group(1)
16
-
17
- raise ValueError("Unable to find version string.")
18
-
19
-
20
- with open("README.md") as f:
21
- long_description = f.read()
22
-
23
- setup(
24
- name="ae-ffmpeg",
25
- version=pip_version(),
26
- description="Static FFmpeg binaries for Auto-Editor",
27
- long_description=long_description,
28
- long_description_content_type="text/markdown",
29
- license="LGPLv3",
30
- url="https://auto-editor.com",
31
- project_urls={
32
- "Bug Tracker": "https://github.com/WyattBlue/auto-editor/issues",
33
- "Source Code": "https://github.com/WyattBlue/auto-editor",
34
- },
35
- author="WyattBlue",
36
- author_email="wyattblue@auto-editor.com",
37
- keywords="video audio media",
38
- packages=find_packages(),
39
- package_data={
40
- "ae_ffmpeg": [
41
- "LICENSE.txt",
42
- "Windows/ffmpeg.exe",
43
- "Windows/ffprobe.exe",
44
- "Windows/libopenh264.dll",
45
- "Darwin-x86_64/ffmpeg",
46
- "Darwin-x86_64/ffprobe",
47
- "Darwin-arm64/ffmpeg",
48
- "Darwin-arm64/ffprobe",
49
- "py.typed",
50
- ],
51
- },
52
- include_package_data=True,
53
- zip_safe=False,
54
- python_requires=">=3.8",
55
- classifiers=[
56
- "Topic :: Multimedia :: Sound/Audio",
57
- "Topic :: Multimedia :: Video",
58
- "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
59
- "Intended Audience :: Developers",
60
- "Operating System :: MacOS :: MacOS X",
61
- "Operating System :: Microsoft :: Windows",
62
- "Development Status :: 5 - Production/Stable",
63
- "Programming Language :: Python :: 3",
64
- ],
65
- )