Skip to content

Commit

Permalink
Merge branch 'fix/optional-pysrt' into 'main'
Browse files Browse the repository at this point in the history
FIX: Make pysrt an optional dependency

See merge request heka/medkit!247

changelog: FIX: Make pysrt an optional dependency
ghisvail committed Nov 30, 2023
2 parents 245a248 + 8bf3994 commit 15c4e27
Showing 3 changed files with 22 additions and 12 deletions.
20 changes: 13 additions & 7 deletions medkit/io/__init__.py
Original file line number Diff line number Diff line change
@@ -8,12 +8,8 @@
"medkit_json",
"RTTMInputConverter",
"RTTMOutputConverter",
"SRTInputConverter",
"SRTOutputConverter",
]

from medkit.core.utils import modules_are_available

from .brat import BratInputConverter, BratOutputConverter
from .doccano import (
DoccanoInputConverter,
@@ -23,7 +19,17 @@
)
from . import medkit_json
from .rttm import RTTMInputConverter, RTTMOutputConverter
from .srt import SRTInputConverter, SRTOutputConverter

if modules_are_available(["spacy"]):
__all__.append("spacy")
try:
from .spacy import SpacyInputConverter, SpacyOutputConverter # noqa: F401

__all__.extend(["SpacyInputConverter", "SpacyOutputConverter"])
except ImportError:
pass

try:
from .srt import SRTInputConverter, SRTOutputConverter # noqa: F401

__all__.extend(["SRTInputConverter", "SRTOutputConverter"])
except ImportError:
pass
8 changes: 5 additions & 3 deletions tests/unit/io/test_srt_input_converter.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
from pathlib import Path

import pytest

from medkit.core import ProvTracer
from medkit.core.audio import FileAudioBuffer
from medkit.io import SRTInputConverter

srt = pytest.importorskip("medkit.io.srt")

_SRT_DIR = Path("tests/data/srt")
_AUDIO_DIR = Path("tests/data/audio")


def test_basic():
converter = SRTInputConverter()
converter = srt.SRTInputConverter()
docs = converter.load(_SRT_DIR, _AUDIO_DIR, audio_ext=".ogg")
assert len(docs) == 1
doc = docs[0]
@@ -39,7 +41,7 @@ def test_basic():

def test_prov():
prov_tracer = ProvTracer()
converter = SRTInputConverter()
converter = srt.SRTInputConverter()
converter.set_prov_tracer(prov_tracer)

docs = converter.load(_SRT_DIR, _AUDIO_DIR, audio_ext=".ogg")
6 changes: 4 additions & 2 deletions tests/unit/io/test_srt_output_converter.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from pathlib import Path

import pytest

from medkit.core import Attribute
from medkit.core.audio import AudioDocument, Segment, Span, FileAudioBuffer
from medkit.io import SRTOutputConverter

srt = pytest.importorskip("medkit.io.srt")

_AUDIO_FILE = Path("tests/data/audio/dialog.ogg")
_EXPECTED_SRT_FILE = Path("tests/data/srt/dialog.srt")
@@ -56,7 +58,7 @@ def test_basic(tmp_path: Path):
doc = _get_doc()
srt_dir = tmp_path / "srt"

converter = SRTOutputConverter()
converter = srt.SRTOutputConverter()
converter.save([doc], srt_dir, doc_names=["dialog"])

srt_file = srt_dir / "dialog.srt"

0 comments on commit 15c4e27

Please sign in to comment.