typed-ffmpeg-compatible 2.1.0a0__tar.gz → 2.4.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/PKG-INFO +3 -2
  2. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/README.md +2 -0
  3. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/pyproject.toml +1 -1
  4. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/global_runnable/global_args.py +3 -3
  5. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/io/_input.py +3 -3
  6. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/io/_output.py +5 -3
  7. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/io/output_args.py +3 -3
  8. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/filters.py +317 -255
  9. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/streams/audio.py +715 -312
  10. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/streams/video.py +1158 -663
  11. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/LICENSE +0 -0
  12. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/__init__.py +0 -0
  13. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/base.py +0 -0
  14. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/common/__init__.py +0 -0
  15. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/common/schema.py +0 -0
  16. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/common/serialize.py +0 -0
  17. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/__init__.py +0 -0
  18. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/compile.py +0 -0
  19. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/context.py +0 -0
  20. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/factory.py +0 -0
  21. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/global_runnable/__init__.py +0 -0
  22. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/global_runnable/runnable.py +0 -0
  23. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/io/__init__.py +0 -0
  24. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/nodes.py +0 -0
  25. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/schema.py +0 -0
  26. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/utils.py +0 -0
  27. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/dag/validate.py +0 -0
  28. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/exceptions.py +0 -0
  29. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/probe.py +0 -0
  30. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/py.typed +0 -0
  31. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/schema.py +0 -0
  32. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/streams/__init__.py +0 -0
  33. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/streams/av.py +0 -0
  34. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/streams/channel_layout.py +0 -0
  35. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/types.py +0 -0
  36. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/__init__.py +0 -0
  37. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/escaping.py +0 -0
  38. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/lazy_eval/__init__.py +0 -0
  39. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/lazy_eval/operator.py +0 -0
  40. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/lazy_eval/schema.py +0 -0
  41. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/run.py +0 -0
  42. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/snapshot.py +0 -0
  43. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/typing.py +0 -0
  44. {typed_ffmpeg_compatible-2.1.0a0 → typed_ffmpeg_compatible-2.4.0}/src/typed_ffmpeg/utils/view.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: typed-ffmpeg-compatible
3
- Version: 2.1.0a0
3
+ Version: 2.4.0
4
4
  Summary: Modern Python FFmpeg wrappers offer comprehensive support for complex filters, complete with detailed typing and documentation.
5
5
  Home-page: https://livingbio.github.io/typed-ffmpeg/
6
6
  License: MIT
@@ -17,7 +17,6 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
- Classifier: Programming Language :: Python :: 3.13
21
20
  Classifier: Topic :: Multimedia :: Sound/Audio
22
21
  Classifier: Topic :: Multimedia :: Video
23
22
  Classifier: Topic :: Software Development :: Libraries
@@ -84,6 +83,8 @@ pip install typed-ffmpeg
84
83
 
85
84
  Note: FFmpeg must be installed on your system.
86
85
 
86
+ Note: If you need to install `ffmpeg-python` at the same time, use `pip install typed-ffmpeg-compatible` to prevent conflicts with the module name.​
87
+
87
88
  ### Visualization Support
88
89
 
89
90
  To enable graph visualization features:
@@ -54,6 +54,8 @@ pip install typed-ffmpeg
54
54
 
55
55
  Note: FFmpeg must be installed on your system.
56
56
 
57
+ Note: If you need to install `ffmpeg-python` at the same time, use `pip install typed-ffmpeg-compatible` to prevent conflicts with the module name.​
58
+
57
59
  ### Visualization Support
58
60
 
59
61
  To enable graph visualization features:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "typed-ffmpeg-compatible"
3
- version = "2.1.0a0"
3
+ version = "2.4.0"
4
4
  description = "Modern Python FFmpeg wrappers offer comprehensive support for complex filters, complete with detailed typing and documentation."
5
5
  authors = ["lucemia <lucemia@gmail.com>"]
6
6
  readme = "README.md"
@@ -63,7 +63,7 @@ class GlobalArgs(ABC):
63
63
  adrift_threshold: Func = None,
64
64
  qphist: Func = None,
65
65
  vsync: Func = None,
66
- **kwargs: Any,
66
+ extra_options: dict[str, Any] = None,
67
67
  ) -> GlobalStream:
68
68
  """
69
69
  Set global options.
@@ -114,7 +114,7 @@ class GlobalArgs(ABC):
114
114
  adrift_threshold: deprecated, does nothing
115
115
  qphist: deprecated, does nothing
116
116
  vsync: set video sync method globally; deprecated, use -fps_mode
117
- **kwargs: Additional options
117
+ extra_options: Additional options
118
118
 
119
119
  Returns:
120
120
  GlobalStream: GlobalStream instance
@@ -173,6 +173,6 @@ class GlobalArgs(ABC):
173
173
  }.items()
174
174
  if v is not None
175
175
  }
176
- | kwargs
176
+ | (extra_options or {})
177
177
  ),
178
178
  ).stream()
@@ -64,7 +64,7 @@ def input(
64
64
  dcodec: String = None,
65
65
  dn: Boolean = None,
66
66
  top: Int = None,
67
- **kwargs: Any
67
+ extra_options: dict[str, Any] = None,
68
68
  ) -> AVStream:
69
69
  """
70
70
  Input file URL (ffmpeg ``-i`` option)
@@ -123,7 +123,7 @@ def input(
123
123
  dcodec: alias for -c:d (select encoder/decoder for data streams)
124
124
  dn: disable data
125
125
  top: deprecated, use the setfield video filter
126
- **kwargs: ffmpeg's input file options
126
+ extra_options: ffmpeg's input file options
127
127
 
128
128
  Returns:
129
129
  Input stream
@@ -194,4 +194,4 @@ def input(
194
194
  if v is not None
195
195
  }
196
196
 
197
- return InputNode(filename=str(filename), kwargs=tuple((options | kwargs).items())).stream()
197
+ return InputNode(filename=str(filename), kwargs=tuple((options | (extra_options or {})).items())).stream()
@@ -105,7 +105,7 @@ def output(
105
105
  dcodec: String = None,
106
106
  dn: Boolean = None,
107
107
  top: Int = None,
108
- **kwargs: Any
108
+ extra_options: dict[str, Any] = None,
109
109
  ) -> OutputStream:
110
110
  """
111
111
  Output file URL
@@ -208,7 +208,7 @@ def output(
208
208
  dcodec: alias for -c:d (select encoder/decoder for data streams)
209
209
  dn: disable data
210
210
  top: deprecated, use the setfield video filter
211
- **kwargs: the arguments for the output
211
+ extra_options: the arguments for the output
212
212
 
213
213
  Returns:
214
214
  the output stream
@@ -315,4 +315,6 @@ def output(
315
315
  if v is not None
316
316
  }
317
317
 
318
- return OutputNode(inputs=streams, filename=str(filename), kwargs=tuple((options | kwargs).items())).stream()
318
+ return OutputNode(
319
+ inputs=streams, filename=str(filename), kwargs=tuple((options | (extra_options or {})).items())
320
+ ).stream()
@@ -114,7 +114,7 @@ class OutputArgs(ABC):
114
114
  dcodec: String = None,
115
115
  dn: Boolean = None,
116
116
  top: Int = None,
117
- **kwargs: Any,
117
+ extra_options: dict[str, Any] = None,
118
118
  ) -> OutputStream:
119
119
  """
120
120
  Output file URL
@@ -217,7 +217,7 @@ class OutputArgs(ABC):
217
217
  dcodec: alias for -c:d (select encoder/decoder for data streams)
218
218
  dn: disable data
219
219
  top: deprecated, use the setfield video filter
220
- **kwargs: the arguments for the output
220
+ extra_options: the arguments for the output
221
221
 
222
222
  Returns:
223
223
  the output stream
@@ -324,4 +324,4 @@ class OutputArgs(ABC):
324
324
  if v is not None
325
325
  }
326
326
 
327
- return self._output_node(*streams, filename=filename, **options, **kwargs).stream()
327
+ return self._output_node(*streams, filename=filename, **options, **(extra_options or {})).stream()