Changelog --------- 2.2.22 ^^^^^^ - Fix: EDM (Erase Displayed Memory) command now correctly clears displayed captions in paint-on and roll-up modes. 2.2.21 ^^^^^^ - supports multi-row jumps: small jumps (1-3 rows) emit the correct number of line breaks, large jumps (4+ rows) trigger repositioning instead - clear positioning state at caption boundaries (EOC, roll-up, paint-on, clear commands) - Code reformatted with Black/isort across the codebase - Added missing tests for _PositioningTracker, Alignment.from_horizontal_and_vertical_align - Bump actions/checkout from v2 to v4 in CI workflow - Replace unmaintained archive/github-actions-slack with slackapi/slack-github-action@v3.0.2 (fixes Node.js and set-output deprecation warnings) 2.2.20 ^^^^^^ - update apache license and copyright year 2.2.19 ^^^^^^ - Remove support for python 3.8 and 3.9. 2.2.18 ^^^^^^ - Update changelog and new release tag. 2.2.17 ^^^^^^ - Update nltk from 3.8.0 to 3.9.1. 2.2.16 ^^^^^^ - Update copyright details. 2.2.15 ^^^^^^ - Always skip doubled special characters, not just in case the cue starters are doubled. 2.2.14 ^^^^^^ - Fix an issue with WebVTT writer text positioning on break inside a cue. - Prevent creating a repositioning command to the same coordinates. 2.2.13 ^^^^^^ - Mid-row codes only add spaces only if there isn't one before. - Mid-row codes add spaces only if they affect the text in the same row (not adding if it follows break or PACS). - Remove spaces to the end of the lines. - Close italics on receiving another style setting command. - Throw an CaptionReadNoCaptions error in case of an empty input file is provided. - Ignore repositioning commands which are not followed by any text before breaks. - Mid-row codes will not add the space if it is in front of punctuation. - Fix a bug with background codes when the InstructionNodeCreator collection is empty. - Fix a bug WebVTT writer adding double line breaks. 2.2.12 ^^^^^^ - Pinned nltk to 3.8.0 2.2.11 ^^^^^^ - A space should not be placed before a mid row code if it follows a PAC command or a Tab Offset - The backspace command should be treated like other commands and duplicates should be skipped if PAC commands are duplicated - Prevent webvtt writer from creating a new cue in case of line break - In case of style setting PAC which also breaks the line, we add the break first, then the style tag 2.2.10 ^^^^^ - Yanked. 2.2.9 ^^^^^ - Yanked. 2.2.8 ^^^^^ - Honor backspaces on captions in scc files - When mid-row codes which are preceded by a PAC command don't add spaces - Mid row codes which don't follow after a PAC and don't have a style reset command before will add a space to the end of the previous text node - Mid row codes which don't follow after a PAC and have a style reset command before will add a space to the beginning of the next text node - Background color codes to delete the space in front 2.2.7 ^^^^^ - The cursor moves automatically one column to the right after each character or Mid-Row Code received. 2.2.6 ^^^^^ - Pass the caption cue time with all error messages. 2.2.5 ^^^^^ - Yanked. 2.2.4 ^^^^^ - Skip duplicated extended characters. 2.2.3 ^^^^^ - Add new substitute character to ignore before extended character in SCC input files 2.2.2 ^^^^^ - Remove support for Python 3.6 & 3.7 - Restrict SCC source files to 31 characters per line (32 will throw an exception) - Bump readthedocs-sphinx-search from 0.3.1 to 0.3.2 - Change Apache copyright licensing (ending) copyright year 2.2.1 ^^^^^ - Ignore the substitute character that comes before the extended character in SCC files. 2.2.0 ^^^^^ - Added support for Python 3.11 - Added support for Beautifulsoup 4.12.2 - Remove support for Beautifulsoup < 4.12.1 - DFXP captions now end consistently with a newline 2.1.1 ^^^^^ - Added nltk as transcript dependency 2.1.0 ^^^^^ - Remove upper limit for dependency versions to solve vulnerabilities 2.0.9 ^^^^^ - Changed DFXPReader default horizontal alignment from 'center' to 'start' - Updated WebVTT horizontal alignment from 'middle' to 'center' 2.0.8 ^^^^^ - Added support for Python 3.10 - Added default start align to WebVTTWriter 2.0.7 ^^^^^ - Implemented skipping duplicate special characters for SCCReader - Added support for beautifulsoup 4.10 and lxml 4.8 - Added pytest and pytest-lazy-fixture as development dependencies 2.0.6 ^^^^^ - Updated Size.from_string() to accept 0 size without measuring unit - Replaced ValueError with CaptionReadSyntaxError for invalid sizes passed to Size.from_string() - Updated DFXPReader timestamp validation according to TTML time expression specs - Updated flashing cues validation for SCCReader to raise a CaptionReadTimingError - Fixed SCC translator not recognising special and extended characters - Raise CaptionReadTimingError for missing 'start' on SAMIReader 2.0.5 ^^^^^ - Updated DFXPReader to ignore paragraphs that only contain spaces, tabs or new lines - Added CaptionReadTimingError for invalid SCC timestamps - Added CaptionReadSyntaxError for invalid colors in SAMIReader - Raise CaptionReadTimingError when missing 'begin' or 'end' and 'dur' time on DFXPReader 2.0.4 ^^^^^ - Updated the counting of frames to happen after processing SCC commands - Made all SCC-sourced captions which have a difference of up to 5 frames between them more fluid 2.0.3 ^^^^^ - Implemented time shift for WebVTTReader - Removed WebVTTWriter 'start' position alignment - Updated the SCC Pop-On caption timing logic - Fixed the correction of end times for multiple last captions - Fixed bug when flushing implicit buffers and old key was None 2.0.2 ^^^^^ - Implemented Tab Offset commands for SCCReader - Implemented caption safe area limits (80% horizontally and 90% vertically) - Implemented SCC translator 2.0.1 ^^^^^ - Added newline between merged SRT captions with overlapping timestamps - Updated tests for SAMI format - Updated tests for SRT format - Added zero padding to 1-digit hours outputted by WebVTTWriter 2.0.0 ^^^^^ - Dropped support for Python 3.5 - Updated tests to run using pytest - Added pre-commit config 1.0.7 ^^^^^ - Fixed issue with SCC paint-on buffer not being cleared after storing - Removed null DFXPReader captions from the resulting caption list - Updated SCCReader double command handling to include the positioning and tab offset case 1.0.6 ^^^^^ - Added MicroDVD format - Fix for missing end times when reading multiple SAMI paragraphs inside a SYNC - Fix for wrong order when multiple SRT captions have the same timestamp - Fix for DFXP timestamps adding leading zeros to 2-digit hours - Added support for BeautifulSoup 4.9 - Added tests for SCC to DFXP conversion when the source contains ampersands - Added support for Python 3.9 1.0.5 ^^^^^ - Added language parameter to WebVTTWriter - Fix for TranscriptWriter merging words at caption boundary - Updated documentation with positioning information - Updated DFXP reader to fallback to the document's language if no language is present on individual