pycaption 2.2.20__tar.gz → 2.2.22__tar.gz

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.
Files changed (62) hide show
  1. {pycaption-2.2.20/pycaption.egg-info → pycaption-2.2.22}/PKG-INFO +2 -2
  2. {pycaption-2.2.20 → pycaption-2.2.22}/README.rst +1 -1
  3. pycaption-2.2.22/pycaption/__init__.py +66 -0
  4. pycaption-2.2.22/pycaption/dfxp/__init__.py +2 -0
  5. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/dfxp/base.py +271 -239
  6. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/dfxp/extras.py +69 -67
  7. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/exceptions.py +2 -1
  8. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/geometry.py +107 -108
  9. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/microdvd.py +28 -25
  10. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/sami.py +164 -163
  11. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/scc/__init__.py +29 -8
  12. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/scc/specialized_collections.py +14 -11
  13. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/scc/state_machines.py +45 -10
  14. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/scc/translator.py +4 -3
  15. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/srt.py +38 -35
  16. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/utils.py +2 -2
  17. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/webvtt.py +0 -1
  18. {pycaption-2.2.20 → pycaption-2.2.22/pycaption.egg-info}/PKG-INFO +2 -2
  19. {pycaption-2.2.20 → pycaption-2.2.22}/setup.py +1 -1
  20. pycaption-2.2.22/tests/conftest.py +171 -0
  21. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/dfxp.py +22 -28
  22. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/sami.py +1 -1
  23. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/scc.py +16 -0
  24. {pycaption-2.2.20 → pycaption-2.2.22}/tests/mixins.py +19 -20
  25. pycaption-2.2.22/tests/test_base.py +134 -0
  26. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_dfxp.py +81 -46
  27. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_dfxp_conversion.py +114 -108
  28. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_dfxp_extras.py +47 -40
  29. pycaption-2.2.22/tests/test_functions.py +33 -0
  30. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_geometry.py +83 -24
  31. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_microdvd.py +4 -4
  32. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_microdvd_conversion.py +0 -1
  33. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_sami.py +39 -39
  34. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_sami_conversion.py +28 -28
  35. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_scc.py +42 -5
  36. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_scc_translator.py +14 -9
  37. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_srt.py +7 -8
  38. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_srt_conversion.py +4 -6
  39. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_webvtt.py +40 -24
  40. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_webvtt_conversion.py +28 -31
  41. pycaption-2.2.20/pycaption/__init__.py +0 -44
  42. pycaption-2.2.20/pycaption/dfxp/__init__.py +0 -2
  43. pycaption-2.2.20/tests/conftest.py +0 -104
  44. pycaption-2.2.20/tests/test_base.py +0 -58
  45. pycaption-2.2.20/tests/test_functions.py +0 -13
  46. {pycaption-2.2.20 → pycaption-2.2.22}/LICENSE +0 -0
  47. {pycaption-2.2.20 → pycaption-2.2.22}/MANIFEST.in +0 -0
  48. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/base.py +0 -0
  49. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/scc/constants.py +0 -0
  50. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption/transcript.py +0 -0
  51. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption.egg-info/SOURCES.txt +0 -0
  52. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption.egg-info/dependency_links.txt +0 -0
  53. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption.egg-info/requires.txt +0 -0
  54. {pycaption-2.2.20 → pycaption-2.2.22}/pycaption.egg-info/top_level.txt +0 -0
  55. {pycaption-2.2.20 → pycaption-2.2.22}/setup.cfg +0 -0
  56. {pycaption-2.2.20 → pycaption-2.2.22}/tests/__init__.py +0 -0
  57. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/__init__.py +0 -0
  58. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/microdvd.py +0 -0
  59. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/srt.py +0 -0
  60. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/translated_scc.py +0 -0
  61. {pycaption-2.2.20 → pycaption-2.2.22}/tests/fixtures/webvtt.py +0 -0
  62. {pycaption-2.2.20 → pycaption-2.2.22}/tests/test_scc_conversion.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycaption
3
- Version: 2.2.20
3
+ Version: 2.2.22
4
4
  Summary: Closed caption converter
5
5
  Author: Joe Norton
6
6
  Author-email: joey@nortoncrew.com
@@ -51,7 +51,7 @@ output the CaptionSet into captions of your desired format.
51
51
  Tested with Python versions 3.10, 3.11 and 3.12.
52
52
  (for Python 2 use pycaption < 1.0.0)
53
53
 
54
- For details, see the `documentation <http://pycaption.readthedocs.org>`__.
54
+ For details, see the `documentation <https://pycaption.readthedocs.io>`__.
55
55
 
56
56
  License
57
57
  -------
@@ -10,7 +10,7 @@ output the CaptionSet into captions of your desired format.
10
10
  Tested with Python versions 3.10, 3.11 and 3.12.
11
11
  (for Python 2 use pycaption < 1.0.0)
12
12
 
13
- For details, see the `documentation <http://pycaption.readthedocs.org>`__.
13
+ For details, see the `documentation <https://pycaption.readthedocs.io>`__.
14
14
 
15
15
  License
16
16
  -------
@@ -0,0 +1,66 @@
1
+ from .base import Caption, CaptionConverter, CaptionList, CaptionNode, CaptionSet
2
+ from .dfxp import DFXPReader, DFXPWriter
3
+ from .exceptions import (
4
+ CaptionLineLengthError,
5
+ CaptionReadError,
6
+ CaptionReadNoCaptions,
7
+ CaptionReadSyntaxError,
8
+ )
9
+ from .microdvd import MicroDVDReader, MicroDVDWriter
10
+ from .sami import SAMIReader, SAMIWriter
11
+ from .scc import SCCReader, SCCWriter
12
+ from .scc.translator import translate_scc
13
+ from .srt import SRTReader, SRTWriter
14
+ from .transcript import TranscriptWriter
15
+ from .webvtt import WebVTTReader, WebVTTWriter
16
+
17
+ __all__ = [
18
+ "CaptionConverter",
19
+ "DFXPReader",
20
+ "DFXPWriter",
21
+ "MicroDVDReader",
22
+ "MicroDVDWriter",
23
+ "SAMIReader",
24
+ "SAMIWriter",
25
+ "SRTReader",
26
+ "SRTWriter",
27
+ "SCCReader",
28
+ "SCCWriter",
29
+ "translate_scc",
30
+ "WebVTTReader",
31
+ "WebVTTWriter",
32
+ "CaptionReadError",
33
+ "CaptionReadNoCaptions",
34
+ "CaptionReadSyntaxError",
35
+ "detect_format",
36
+ "CaptionNode",
37
+ "Caption",
38
+ "CaptionList",
39
+ "CaptionSet",
40
+ "TranscriptWriter",
41
+ ]
42
+
43
+ SUPPORTED_READERS = (
44
+ DFXPReader,
45
+ MicroDVDReader,
46
+ WebVTTReader,
47
+ SAMIReader,
48
+ SRTReader,
49
+ SCCReader,
50
+ )
51
+
52
+
53
+ def detect_format(caps):
54
+ """
55
+ Detect the format of the provided caption string.
56
+
57
+ :returns: the reader class for the detected format.
58
+ """
59
+ if not len(caps):
60
+ raise CaptionReadNoCaptions("Empty caption file")
61
+
62
+ for reader in SUPPORTED_READERS:
63
+ if reader().detect(caps):
64
+ return reader
65
+
66
+ return None
@@ -0,0 +1,2 @@
1
+ from .base import * # noqa: F401, F403
2
+ from .extras import LegacyDFXPWriter, SinglePositioningDFXPWriter # noqa: F401