-
Notifications
You must be signed in to change notification settings - Fork 56
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #59 from glut23/refactor
Refactor
- Loading branch information
Showing
65 changed files
with
4,514 additions
and
1,604 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12'] | ||
|
||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install tox | ||
run: pip install tox | ||
|
||
- name: Run tox | ||
run: tox |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,43 @@ | ||
[metadata] | ||
description-file = README.rst | ||
description_file = README.rst | ||
|
||
[flake8] | ||
doctests = true | ||
radon-max-cc=10 | ||
|
||
[tox:tox] | ||
envlist = | ||
codestyle | ||
py | ||
coverage | ||
isolated_build = True | ||
|
||
[coverage:run] | ||
source = webvtt | ||
branch = true | ||
|
||
[coverage:report] | ||
fail_under = 100 | ||
|
||
[testenv] | ||
deps = | ||
coverage | ||
description = run the tests and provide coverage metrics | ||
commands = | ||
coverage run -m unittest discover | ||
|
||
[testenv:codestyle] | ||
deps = | ||
flake8 | ||
flake8-docstrings | ||
radon | ||
mypy | ||
commands = | ||
flake8 webvtt setup.py | ||
mypy webvtt | ||
|
||
[testenv:coverage] | ||
deps = coverage | ||
commands = | ||
coverage html --fail-under=0 | ||
coverage report |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,40 @@ | ||
import io | ||
import re | ||
from setuptools import setup, find_packages | ||
"""webvtt-py setuptools configuration.""" | ||
|
||
with io.open('README.rst', 'r', encoding='utf-8') as f: | ||
readme = f.read() | ||
import re | ||
import pathlib | ||
|
||
with io.open('webvtt/__init__.py', 'rt', encoding='utf-8') as f: | ||
version = re.search(r'__version__ = \'(.*?)\'', f.read()).group(1) | ||
from setuptools import setup, find_packages | ||
|
||
version = ( | ||
re.search( | ||
r'__version__ = \'(.*?)\'', | ||
pathlib.Path('webvtt/__init__.py').read_text() | ||
).group(1) | ||
) | ||
|
||
setup( | ||
name='webvtt-py', | ||
version=version, | ||
description='WebVTT reader, writer and segmenter', | ||
long_description=readme, | ||
long_description=pathlib.Path('README.rst').read_text(), | ||
author='Alejandro Mendez', | ||
author_email='[email protected]', | ||
url='https://github.com/glut23/webvtt-py', | ||
packages=find_packages('.', exclude=['tests']), | ||
include_package_data=True, | ||
install_requires=[ | ||
'docopt' | ||
], | ||
entry_points={ | ||
'console_scripts': [ | ||
'webvtt=webvtt.cli:main' | ||
] | ||
}, | ||
license='MIT', | ||
python_requires='>=3.4', | ||
python_requires='>=3.7', | ||
classifiers=[ | ||
'Development Status :: 3 - Alpha', | ||
'Intended Audience :: Developers', | ||
'License :: OSI Approved :: MIT License', | ||
'Programming Language :: Python', | ||
'Programming Language :: Python :: 3', | ||
'Programming Language :: Python :: 3.4', | ||
'Programming Language :: Python :: 3.5', | ||
'Programming Language :: Python :: 3.6', | ||
'Programming Language :: Python :: 3.7', | ||
'Programming Language :: Python :: 3.8', | ||
'Programming Language :: Python :: 3.9', | ||
|
This file was deleted.
Oops, something went wrong.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
WEBVTT | ||
NOTE Sample of comments with styles | ||
STYLE | ||
::cue { | ||
background-image: linear-gradient(to bottom, dimgray, lightgray); | ||
color: papayawhip; | ||
} | ||
NOTE This is the second block of styles | ||
NOTE | ||
Multiline comment for the same | ||
second block of styles | ||
STYLE | ||
::cue(b) { | ||
color: peachpuff; | ||
} | ||
00:00:00.000 --> 00:00:10.000 | ||
- Hello <b>world</b>. |
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
import unittest | ||
import tempfile | ||
import os | ||
import pathlib | ||
import textwrap | ||
|
||
from webvtt.cli import main | ||
|
||
|
||
class CLITestCase(unittest.TestCase): | ||
|
||
def test_cli(self): | ||
vtt_file = ( | ||
pathlib.Path(__file__).resolve().parent | ||
/ 'samples' / 'sample.vtt' | ||
) | ||
|
||
with tempfile.TemporaryDirectory() as temp_dir: | ||
|
||
main(['segment', str(vtt_file.resolve()), '-o', temp_dir]) | ||
_, dirs, files = next(os.walk(temp_dir)) | ||
|
||
self.assertEqual(len(dirs), 0) | ||
self.assertEqual(len(files), 8) | ||
for expected_file in ('prog_index.m3u8', | ||
'fileSequence0.webvtt', | ||
'fileSequence1.webvtt', | ||
'fileSequence2.webvtt', | ||
'fileSequence3.webvtt', | ||
'fileSequence4.webvtt', | ||
'fileSequence5.webvtt', | ||
'fileSequence6.webvtt', | ||
): | ||
self.assertIn(expected_file, files) | ||
|
||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'prog_index.m3u8').read_text(), | ||
textwrap.dedent( | ||
''' | ||
#EXTM3U | ||
#EXT-X-TARGETDURATION:10 | ||
#EXT-X-VERSION:3 | ||
#EXT-X-PLAYLIST-TYPE:VOD | ||
#EXTINF:30.00000 | ||
fileSequence0.webvtt | ||
#EXTINF:30.00000 | ||
fileSequence1.webvtt | ||
#EXTINF:30.00000 | ||
fileSequence2.webvtt | ||
#EXTINF:30.00000 | ||
fileSequence3.webvtt | ||
#EXTINF:30.00000 | ||
fileSequence4.webvtt | ||
#EXTINF:30.00000 | ||
fileSequence5.webvtt | ||
#EXTINF:30.00000 | ||
fileSequence6.webvtt | ||
#EXT-X-ENDLIST | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence0.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:00.500 --> 00:00:07.000 | ||
Caption text #1 | ||
00:00:07.000 --> 00:00:11.890 | ||
Caption text #2 | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence1.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:07.000 --> 00:00:11.890 | ||
Caption text #2 | ||
00:00:11.890 --> 00:00:16.320 | ||
Caption text #3 | ||
00:00:16.320 --> 00:00:21.580 | ||
Caption text #4 | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence2.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:16.320 --> 00:00:21.580 | ||
Caption text #4 | ||
00:00:21.580 --> 00:00:23.880 | ||
Caption text #5 | ||
00:00:23.880 --> 00:00:27.280 | ||
Caption text #6 | ||
00:00:27.280 --> 00:00:30.280 | ||
Caption text #7 | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence3.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:27.280 --> 00:00:30.280 | ||
Caption text #7 | ||
00:00:30.280 --> 00:00:36.510 | ||
Caption text #8 | ||
00:00:36.510 --> 00:00:38.870 | ||
Caption text #9 | ||
00:00:38.870 --> 00:00:45.000 | ||
Caption text #10 | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence4.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:38.870 --> 00:00:45.000 | ||
Caption text #10 | ||
00:00:45.000 --> 00:00:47.000 | ||
Caption text #11 | ||
00:00:47.000 --> 00:00:50.970 | ||
Caption text #12 | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence5.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:47.000 --> 00:00:50.970 | ||
Caption text #12 | ||
00:00:50.970 --> 00:00:54.440 | ||
Caption text #13 | ||
00:00:54.440 --> 00:00:58.600 | ||
Caption text #14 | ||
00:00:58.600 --> 00:01:01.350 | ||
Caption text #15 | ||
''' | ||
).lstrip()) | ||
self.assertEqual( | ||
(pathlib.Path(temp_dir) / 'fileSequence6.webvtt').read_text(), | ||
textwrap.dedent( | ||
''' | ||
WEBVTT | ||
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000 | ||
00:00:58.600 --> 00:01:01.350 | ||
Caption text #15 | ||
00:01:01.350 --> 00:01:04.300 | ||
Caption text #16 | ||
''' | ||
).lstrip()) |
Oops, something went wrong.