pycaption 2.2.2__tar.gz → 2.2.4__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.
- {pycaption-2.2.2/pycaption.egg-info → pycaption-2.2.4}/PKG-INFO +1 -1
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/scc/__init__.py +1 -1
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/scc/constants.py +56 -56
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/scc/specialized_collections.py +5 -6
- {pycaption-2.2.2 → pycaption-2.2.4/pycaption.egg-info}/PKG-INFO +1 -1
- {pycaption-2.2.2 → pycaption-2.2.4}/setup.py +1 -1
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_scc.py +1 -1
- {pycaption-2.2.2 → pycaption-2.2.4}/LICENSE +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/MANIFEST.in +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/README.rst +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/__init__.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/base.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/dfxp/__init__.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/dfxp/base.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/dfxp/extras.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/english.pickle +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/exceptions.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/geometry.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/microdvd.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/sami.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/scc/state_machines.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/scc/translator.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/srt.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/transcript.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/utils.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption/webvtt.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption.egg-info/SOURCES.txt +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption.egg-info/dependency_links.txt +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption.egg-info/requires.txt +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/pycaption.egg-info/top_level.txt +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/setup.cfg +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/__init__.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/conftest.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/__init__.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/dfxp.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/microdvd.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/sami.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/scc.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/srt.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/translated_scc.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/fixtures/webvtt.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/mixins.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_base.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_dfxp.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_dfxp_conversion.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_dfxp_extras.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_functions.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_geometry.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_microdvd.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_microdvd_conversion.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_sami.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_sami_conversion.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_scc_conversion.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_scc_translator.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_srt.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_srt_conversion.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_webvtt.py +0 -0
- {pycaption-2.2.2 → pycaption-2.2.4}/tests/test_webvtt_conversion.py +0 -0
|
@@ -339,7 +339,7 @@ class SCCReader(BaseReader):
|
|
|
339
339
|
# same as the first.
|
|
340
340
|
# Also like codes, Special Characters are always doubled up,
|
|
341
341
|
# with only one member of each pair being displayed.
|
|
342
|
-
if word in COMMANDS or _is_pac_command(word) or word in SPECIAL_CHARS:
|
|
342
|
+
if word in COMMANDS or _is_pac_command(word) or word in SPECIAL_CHARS or word in EXTENDED_CHARS:
|
|
343
343
|
if word == self.last_command:
|
|
344
344
|
self.last_command = ''
|
|
345
345
|
return True
|
|
@@ -990,60 +990,60 @@ HEADER = 'Scenarist_SCC V1.0'
|
|
|
990
990
|
# taken from
|
|
991
991
|
# http://www.theneitherworld.com/mcpoodle/SCC_TOOLS/DOCS/CC_CHARS.HTML
|
|
992
992
|
INCONVERTIBLE_TO_ASCII_EXTENDED_CHARS_ASSOCIATION = {
|
|
993
|
-
'¡': "!", # inverted exclamation mark
|
|
994
|
-
'¤': "C", # currency
|
|
995
|
-
'¥': "Y", # yen
|
|
996
|
-
'¦': "-", # broken bar
|
|
997
|
-
'©': "c", # copyright sign
|
|
998
|
-
'«': '"', # left pointing double angle quotation mark
|
|
999
|
-
'»': '"', # right pointing double angle quotation mark
|
|
1000
|
-
'À': "A",
|
|
1001
|
-
'Á': "A",
|
|
1002
|
-
'Â': "A",
|
|
1003
|
-
'Ã': "A",
|
|
1004
|
-
'Ä': "A",
|
|
1005
|
-
'Å': "A",
|
|
1006
|
-
'Ç': "C",
|
|
1007
|
-
'È': "E",
|
|
1008
|
-
'É': "E",
|
|
1009
|
-
'Ê': "E",
|
|
1010
|
-
'Ë': "E",
|
|
1011
|
-
'Ì': "I",
|
|
1012
|
-
'Í': "I",
|
|
1013
|
-
'Î': "I",
|
|
1014
|
-
'Ï': "I",
|
|
1015
|
-
'Ò': "O",
|
|
1016
|
-
'Ó': "O",
|
|
1017
|
-
'Ô': ")",
|
|
1018
|
-
'Õ': "O",
|
|
1019
|
-
'Ö': "O",
|
|
1020
|
-
'Ø': "O",
|
|
1021
|
-
'Ù': "U",
|
|
1022
|
-
'Ú': "U",
|
|
1023
|
-
'Û': "U",
|
|
1024
|
-
'Ü': "U",
|
|
1025
|
-
'ß': "s",
|
|
1026
|
-
'ã': "a",
|
|
1027
|
-
'ä': "a",
|
|
1028
|
-
'å': "a",
|
|
1029
|
-
'ë': "e",
|
|
1030
|
-
'ì': "i",
|
|
1031
|
-
'ï': "i",
|
|
1032
|
-
'ò': "o",
|
|
1033
|
-
'õ': "o",
|
|
1034
|
-
'ö': "o",
|
|
1035
|
-
'ø': "o",
|
|
1036
|
-
'ù': "u",
|
|
1037
|
-
'ü': "u",
|
|
1038
|
-
'—': "-", # em dash
|
|
1039
|
-
'‘': "'",
|
|
1040
|
-
'’': "'",
|
|
1041
|
-
'“': '"',
|
|
1042
|
-
'”': '"',
|
|
1043
|
-
'•': ".",
|
|
1044
|
-
'℠': "s",
|
|
1045
|
-
'┌': "+",
|
|
1046
|
-
'┐': "+",
|
|
1047
|
-
'└': "+",
|
|
1048
|
-
'┘': "+"
|
|
993
|
+
'¡': ["!", "i"], # inverted exclamation mark
|
|
994
|
+
'¤': ["C"], # currency
|
|
995
|
+
'¥': ["Y"], # yen
|
|
996
|
+
'¦': ["-"], # broken bar
|
|
997
|
+
'©': ["c"], # copyright sign
|
|
998
|
+
'«': ['"'], # left pointing double angle quotation mark
|
|
999
|
+
'»': ['"'], # right pointing double angle quotation mark
|
|
1000
|
+
'À': ["A"],
|
|
1001
|
+
'Á': ["A"],
|
|
1002
|
+
'Â': ["A"],
|
|
1003
|
+
'Ã': ["A"],
|
|
1004
|
+
'Ä': ["A"],
|
|
1005
|
+
'Å': ["A"],
|
|
1006
|
+
'Ç': ["C"],
|
|
1007
|
+
'È': ["E"],
|
|
1008
|
+
'É': ["E"],
|
|
1009
|
+
'Ê': ["E"],
|
|
1010
|
+
'Ë': ["E"],
|
|
1011
|
+
'Ì': ["I"],
|
|
1012
|
+
'Í': ["I"],
|
|
1013
|
+
'Î': ["I"],
|
|
1014
|
+
'Ï': ["I"],
|
|
1015
|
+
'Ò': ["O"],
|
|
1016
|
+
'Ó': ["O"],
|
|
1017
|
+
'Ô': [")"],
|
|
1018
|
+
'Õ': ["O"],
|
|
1019
|
+
'Ö': ["O"],
|
|
1020
|
+
'Ø': ["O"],
|
|
1021
|
+
'Ù': ["U"],
|
|
1022
|
+
'Ú': ["U"],
|
|
1023
|
+
'Û': ["U"],
|
|
1024
|
+
'Ü': ["U"],
|
|
1025
|
+
'ß': ["s"],
|
|
1026
|
+
'ã': ["a"],
|
|
1027
|
+
'ä': ["a"],
|
|
1028
|
+
'å': ["a"],
|
|
1029
|
+
'ë': ["e"],
|
|
1030
|
+
'ì': ["i"],
|
|
1031
|
+
'ï': ["i"],
|
|
1032
|
+
'ò': ["o"],
|
|
1033
|
+
'õ': ["o"],
|
|
1034
|
+
'ö': ["o"],
|
|
1035
|
+
'ø': ["o"],
|
|
1036
|
+
'ù': ["u"],
|
|
1037
|
+
'ü': ["u"],
|
|
1038
|
+
'—': ["-"], # em dash
|
|
1039
|
+
'‘': ["'"],
|
|
1040
|
+
'’': ["'"],
|
|
1041
|
+
'“': ['"'],
|
|
1042
|
+
'”': ['"'],
|
|
1043
|
+
'•': ["."],
|
|
1044
|
+
'℠': ["s"],
|
|
1045
|
+
'┌': ["+"],
|
|
1046
|
+
'┐': ["+"],
|
|
1047
|
+
'└': ["+"],
|
|
1048
|
+
'┘': ["+"]
|
|
1049
1049
|
}
|
|
@@ -430,18 +430,17 @@ class InstructionNodeCreator:
|
|
|
430
430
|
)
|
|
431
431
|
if is_text_node:
|
|
432
432
|
try:
|
|
433
|
-
ascii_char =
|
|
433
|
+
ascii_char = [
|
|
434
|
+
unicodedata.normalize('NFD', accented_character)
|
|
434
435
|
.encode('ascii', 'strict').decode("utf-8")
|
|
435
|
-
except (UnicodeEncodeError, UnicodeDecodeError):
|
|
436
|
-
ascii_char = INCONVERTIBLE_TO_ASCII_EXTENDED_CHARS_ASSOCIATION[
|
|
437
|
-
accented_character
|
|
438
436
|
]
|
|
437
|
+
except (UnicodeEncodeError, UnicodeDecodeError):
|
|
438
|
+
ascii_char = INCONVERTIBLE_TO_ASCII_EXTENDED_CHARS_ASSOCIATION.get(accented_character)
|
|
439
439
|
|
|
440
|
-
if ascii_char and self._collection[-1].text[-1]
|
|
440
|
+
if ascii_char and self._collection[-1].text[-1] in ascii_char:
|
|
441
441
|
self._collection[-1].text = self._collection[-1].text[:-1]
|
|
442
442
|
|
|
443
443
|
|
|
444
|
-
|
|
445
444
|
def _get_layout_from_tuple(position_tuple):
|
|
446
445
|
"""Create a Layout object from the positioning information given
|
|
447
446
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|