def perform_command(self): """ Perform command and return the appropriate exit code. :rtype: int """ if len(self.actual_arguments) < 1: return self.print_help() audio_file_path = self.actual_arguments[0] try: audiofile = AudioFile(audio_file_path, rconf=self.rconf, logger=self.logger) audiofile.read_properties() if self.has_option([u"-f", u"--full"]): audiofile.read_samples_from_file() self.print_generic(audiofile.__unicode__()) return self.NO_ERROR_EXIT_CODE except OSError: self.print_error(u"Cannot read file '%s'" % (audio_file_path)) self.print_error( u"Make sure the input file path is written/escaped correctly") except AudioFileProbeError: self.print_error(u"Unable to call the ffprobe executable '%s'" % (self.rconf[RuntimeConfiguration.FFPROBE_PATH])) self.print_error(u"Make sure the path to ffprobe is correct") except AudioFileUnsupportedFormatError: self.print_error(u"Cannot read properties of file '%s'" % (audio_file_path)) self.print_error( u"Make sure the input file has a format supported by ffprobe") return self.ERROR_EXIT_CODE
def load(self, path, rp=False, rs=False): af = AudioFile(gf.absolute_path(path, __file__)) if rp: af.read_properties() if rs: af.read_samples_from_file() return af
def perform_command(self): """ Perform command and return the appropriate exit code. :rtype: int """ if len(self.actual_arguments) < 1: return self.print_help() audio_file_path = self.actual_arguments[0] try: audiofile = AudioFile(audio_file_path, rconf=self.rconf, logger=self.logger) audiofile.read_properties() self.print_generic(audiofile.__unicode__()) return self.NO_ERROR_EXIT_CODE except OSError: self.print_error(u"Cannot read file '%s'" % (audio_file_path)) self.print_error(u"Make sure the input file path is written/escaped correctly") except AudioFileProbeError: self.print_error(u"Unable to call the ffprobe executable '%s'" % (self.rconf[RuntimeConfiguration.FFPROBE_PATH])) self.print_error(u"Make sure the path to ffprobe is correct") except AudioFileUnsupportedFormatError: self.print_error(u"Cannot read properties of file '%s'" % (audio_file_path)) self.print_error(u"Make sure the input file has a format supported by ffprobe") return self.ERROR_EXIT_CODE
def load(self, path, rp=False, rs=False): af = AudioFile(gf.absolute_path(path, __file__)) if rp: af.read_properties() if rs: af.read_samples_from_file() return af
def main(): """ Entry point """ if len(sys.argv) < 2: usage() return file_path = sys.argv[1] audiofile = AudioFile(file_path) audiofile.read_properties() print str(audiofile)
def main(): """ Entry point """ if len(sys.argv) < 2: usage() return file_path = sys.argv[1] audiofile = AudioFile(file_path) audiofile.read_properties() print str(audiofile)
class Task(Loggable): """ A structure representing a task, that is, an audio file and an ordered set of text fragments to be synchronized. :param string config_string: the task configuration string :param rconf: a runtime configuration :type rconf: :class:`~aeneas.runtimeconfiguration.RuntimeConfiguration` :param logger: the logger object :type logger: :class:`~aeneas.logger.Logger` :raises: TypeError: if ``config_string`` is not ``None`` and it is not a Unicode string """ TAG = u"Task" def __init__(self, config_string=None, rconf=None, logger=None): super(Task, self).__init__(rconf=rconf, logger=logger) self.identifier = gf.uuid_string() self.configuration = None self.audio_file_path = None # relative to input container root self.audio_file_path_absolute = None # concrete path, file will be read from this! self.audio_file = None self.text_file_path = None # relative to input container root self.text_file_path_absolute = None # concrete path, file will be read from this! self.text_file = None self.sync_map_file_path = None # relative to output container root self.sync_map_file_path_absolute = None # concrete path, file will be written to this! self.sync_map = None if config_string is not None: self.configuration = TaskConfiguration(config_string) def __unicode__(self): msg = [ u"%s: '%s'" % (gc.RPN_TASK_IDENTIFIER, self.identifier), u"Configuration:\n%s" % self.configuration.__unicode__(), u"Audio file path: %s" % self.audio_file_path, u"Audio file path (absolute): %s" % self.audio_file_path_absolute, u"Text file path: %s" % self.text_file_path, u"Text file path (absolute): %s" % self.text_file_path_absolute, u"Sync map file path: %s" % self.sync_map_file_path, u"Sync map file path (absolute): %s" % self.sync_map_file_path_absolute ] return u"\n".join(msg) def __str__(self): return gf.safe_str(self.__unicode__()) @property def identifier(self): """ The identifier of the task. :rtype: string """ return self.__identifier @identifier.setter def identifier(self, value): self.__identifier = value @property def audio_file_path_absolute(self): """ The absolute path of the audio file. :rtype: string """ return self.__audio_file_path_absolute @audio_file_path_absolute.setter def audio_file_path_absolute(self, audio_file_path_absolute): self.__audio_file_path_absolute = audio_file_path_absolute self._populate_audio_file() @property def text_file_path_absolute(self): """ The absolute path of the text file. :rtype: string """ return self.__text_file_path_absolute @text_file_path_absolute.setter def text_file_path_absolute(self, text_file_path_absolute): self.__text_file_path_absolute = text_file_path_absolute self._populate_text_file() @property def sync_map_file_path_absolute(self): """ The absolute path of the sync map file. :rtype: string """ return self.__sync_map_file_path_absolute @sync_map_file_path_absolute.setter def sync_map_file_path_absolute(self, sync_map_file_path_absolute): self.__sync_map_file_path_absolute = sync_map_file_path_absolute def output_sync_map_file(self, container_root_path=None): """ Output the sync map file for this task. If ``container_root_path`` is specified, the output sync map file will be created at the path obtained by joining the ``container_root_path`` and the relative path of the sync map inside the container. Otherwise, the sync map file will be created at the path ``self.sync_map_file_path_absolute``. Return the the path of the sync map file created, or ``None`` if an error occurred. :param string container_root_path: the path to the root directory for the output container :rtype: string """ if self.sync_map is None: self.log_exc(u"The sync_map object has not been set", None, True, TypeError) if (container_root_path is not None) and (self.sync_map_file_path is None): self.log_exc(u"The (internal) path of the sync map has been set", None, True, TypeError) self.log([u"container_root_path is %s", container_root_path]) self.log([u"self.sync_map_file_path is %s", self.sync_map_file_path]) self.log([u"self.sync_map_file_path_absolute is %s", self.sync_map_file_path_absolute]) if (container_root_path is not None) and (self.sync_map_file_path is not None): path = os.path.join(container_root_path, self.sync_map_file_path) elif self.sync_map_file_path_absolute: path = self.sync_map_file_path_absolute gf.ensure_parent_directory(path) self.log([u"Output sync map to %s", path]) sync_map_format = self.configuration["o_format"] audio_ref = self.configuration["o_smil_audio_ref"] page_ref = self.configuration["o_smil_page_ref"] self.log([u"sync_map_format is %s", sync_map_format]) self.log([u"page_ref is %s", page_ref]) self.log([u"audio_ref is %s", audio_ref]) self.log(u"Calling sync_map.write...") afpa = self.audio_file_path_absolute if afpa is not None: afpa = os.path.abspath(afpa) parameters = { "audio_file_path_absolute": afpa, gc.PPN_TASK_OS_FILE_SMIL_PAGE_REF : page_ref, gc.PPN_TASK_OS_FILE_SMIL_AUDIO_REF : audio_ref } self.sync_map.write(sync_map_format, path, parameters) self.log(u"Calling sync_map.write... done") return path def _populate_audio_file(self): """ Create the ``self.audio_file`` object by reading the audio file at ``self.audio_file_path_absolute``. """ self.log(u"Populate audio file...") if self.audio_file_path_absolute is not None: self.log([u"audio_file_path_absolute is '%s'", self.audio_file_path_absolute]) self.audio_file = AudioFile( file_path=self.audio_file_path_absolute, logger=self.logger ) self.audio_file.read_properties() else: self.log(u"audio_file_path_absolute is None") self.log(u"Populate audio file... done") def _populate_text_file(self): """ Create the ``self.text_file`` object by reading the text file at ``self.text_file_path_absolute``. """ self.log(u"Populate text file...") if ( (self.text_file_path_absolute is not None) and (self.configuration["language"] is not None) ): # the following values might be None parameters = { gc.PPN_TASK_IS_TEXT_FILE_IGNORE_REGEX : self.configuration["i_t_ignore_regex"], gc.PPN_TASK_IS_TEXT_FILE_TRANSLITERATE_MAP : self.configuration["i_t_transliterate_map"], gc.PPN_TASK_IS_TEXT_MPLAIN_WORD_SEPARATOR : self.configuration["i_t_mplain_word_separator"], gc.PPN_TASK_IS_TEXT_MUNPARSED_L1_ID_REGEX : self.configuration["i_t_munparsed_l1_id_regex"], gc.PPN_TASK_IS_TEXT_MUNPARSED_L2_ID_REGEX : self.configuration["i_t_munparsed_l2_id_regex"], gc.PPN_TASK_IS_TEXT_MUNPARSED_L3_ID_REGEX : self.configuration["i_t_munparsed_l3_id_regex"], gc.PPN_TASK_IS_TEXT_UNPARSED_CLASS_REGEX : self.configuration["i_t_unparsed_class_regex"], gc.PPN_TASK_IS_TEXT_UNPARSED_ID_REGEX : self.configuration["i_t_unparsed_id_regex"], gc.PPN_TASK_IS_TEXT_UNPARSED_ID_SORT : self.configuration["i_t_unparsed_id_sort"], gc.PPN_TASK_OS_FILE_ID_REGEX : self.configuration["o_id_regex"] } self.text_file = TextFile( file_path=self.text_file_path_absolute, file_format=self.configuration["i_t_format"], parameters=parameters, logger=self.logger ) self.text_file.set_language(self.configuration["language"]) else: self.log(u"text_file_path_absolute and/or language is None") self.log(u"Populate text file... done")
class Task(object): """ A structure representing a task, that is, an audio file and a list of text fragments to be synchronized. :param config_string: the task configuration string :type config_string: string """ TAG = "Task" def __init__(self, config_string=None): # task properties self.identifier = str(uuid.uuid4()).lower() self.configuration = None self.audio_file_path = None # relative to input container root self.audio_file_path_absolute = None # concrete path, file will be read from this! self.audio_file = None self.text_file_path = None # relative to input container root self.text_file_path_absolute = None # concrete path, file will be read from this! self.text_file = None self.sync_map_file_path = None # relative to output container root self.sync_map_file_path_absolute = None # concrete path, file will be written to this! self.sync_map = None if config_string is not None: self.configuration = TaskConfiguration(config_string) def __str__(self): accumulator = "" accumulator += "%s: '%s'\n" % (gc.RPN_TASK_IDENTIFIER, self.identifier) accumulator += "Configuration:\n%s\n" % str(self.configuration) accumulator += "Audio file path: %s\n" % self.audio_file_path accumulator += "Audio file path (absolute): %s\n" % self.audio_file_path_absolute accumulator += "Text file path: %s\n" % self.text_file_path accumulator += "Text file path (absolute): %s\n" % self.text_file_path_absolute accumulator += "Sync map file path: %s\n" % self.sync_map_file_path accumulator += "Sync map file path (absolute): %s\n" % self.sync_map_file_path_absolute return accumulator @property def identifier(self): """ The identifier of the task. :rtype: string """ return self.__identifier @identifier.setter def identifier(self, value): self.__identifier = value @property def audio_file_path_absolute(self): """ The absolute path of the audio file. :rtype: string (path) """ return self.__audio_file_path_absolute @audio_file_path_absolute.setter def audio_file_path_absolute(self, audio_file_path_absolute): self.__audio_file_path_absolute = audio_file_path_absolute self._populate_audio_file() @property def text_file_path_absolute(self): """ The absolute path of the text file. :rtype: string (path) """ return self.__text_file_path_absolute @text_file_path_absolute.setter def text_file_path_absolute(self, text_file_path_absolute): self.__text_file_path_absolute = text_file_path_absolute self._populate_text_file() @property def sync_map_file_path_absolute(self): """ The absolute path of the sync map file. :rtype: string (path) """ return self.__sync_map_file_path_absolute @sync_map_file_path_absolute.setter def sync_map_file_path_absolute(self, sync_map_file_path_absolute): self.__sync_map_file_path_absolute = sync_map_file_path_absolute def _populate_audio_file(self): """ Create the ``self.audio_file`` object by reading the audio file at ``self.audio_file_path_absolute``. """ if self.audio_file_path_absolute is not None: self.audio_file = AudioFile( file_path=self.audio_file_path_absolute, logger=None ) self.audio_file.read_properties() def _populate_text_file(self): """ Create the ``self.text_file`` object by reading the text file at ``self.text_file_path_absolute``. """ if ((self.text_file_path_absolute is not None) and (self.configuration.language is not None)): parameters = dict() parameters[gc.PPN_TASK_IS_TEXT_UNPARSED_CLASS_REGEX] = self.configuration.is_text_unparsed_class_regex parameters[gc.PPN_TASK_IS_TEXT_UNPARSED_ID_REGEX] = self.configuration.is_text_unparsed_id_regex parameters[gc.PPN_TASK_IS_TEXT_UNPARSED_ID_SORT] = self.configuration.is_text_unparsed_id_sort self.text_file = TextFile( file_path=self.text_file_path_absolute, file_format=self.configuration.is_text_file_format, parameters=parameters, logger=None ) self.text_file.set_language(self.configuration.language) def output_sync_map_file(self, container_root_path=None): """ Output the sync map file for this task. If ``container_root_path`` is specified, the output sync map file will be created at the path obtained by joining the ``container_root_path`` and the relative path of the sync map inside the container. Otherwise, the sync map file will be created at the path ``sync_map_file_path_absolute``. Return the the path of the sync map file created, or ``None`` if an error occurred. :param container_root_path: the path to the root directory for the output container :type container_root_path: string (path) :rtype: return the path of the sync map file created """ if self.sync_map is None: return None if (container_root_path is not None) and (self.sync_map_file_path is None): return None if (container_root_path is not None) and (self.sync_map_file_path is not None): path = os.path.join(container_root_path, self.sync_map_file_path) elif self.sync_map_file_path_absolute: path = self.sync_map_file_path_absolute sync_map_format = self.configuration.os_file_format parameters = dict() parameters[gc.PPN_TASK_OS_FILE_SMIL_PAGE_REF] = self.configuration.os_file_smil_page_ref parameters[gc.PPN_TASK_OS_FILE_SMIL_AUDIO_REF] = self.configuration.os_file_smil_audio_ref result = self.sync_map.write(sync_map_format, path, parameters) if not result: return None return path
class Task(object): """ A structure representing a task, that is, an audio file and a list of text fragments to be synchronized. :param config_string: the task configuration string :type config_string: string """ TAG = "Task" def __init__(self, config_string=None): # task properties self.identifier = str(uuid.uuid4()).lower() self.configuration = None self.audio_file_path = None # relative to input container root self.audio_file_path_absolute = None # concrete path, file will be read from this! self.audio_file = None self.text_file_path = None # relative to input container root self.text_file_path_absolute = None # concrete path, file will be read from this! self.text_file = None self.sync_map_file_path = None # relative to output container root self.sync_map_file_path_absolute = None # concrete path, file will be written to this! self.sync_map = None if config_string is not None: self.configuration = TaskConfiguration(config_string) def __str__(self): accumulator = "" accumulator += "%s: '%s'\n" % (gc.RPN_TASK_IDENTIFIER, self.identifier) accumulator += "Configuration:\n%s\n" % str(self.configuration) accumulator += "Audio file path: %s\n" % self.audio_file_path accumulator += "Audio file path (absolute): %s\n" % self.audio_file_path_absolute accumulator += "Text file path: %s\n" % self.text_file_path accumulator += "Text file path (absolute): %s\n" % self.text_file_path_absolute accumulator += "Sync map file path: %s\n" % self.sync_map_file_path accumulator += "Sync map file path (absolute): %s\n" % self.sync_map_file_path_absolute return accumulator @property def identifier(self): """ The identifier of the task. :rtype: string """ return self.__identifier @identifier.setter def identifier(self, value): self.__identifier = value @property def audio_file_path_absolute(self): """ The absolute path of the audio file. :rtype: string (path) """ return self.__audio_file_path_absolute @audio_file_path_absolute.setter def audio_file_path_absolute(self, audio_file_path_absolute): self.__audio_file_path_absolute = audio_file_path_absolute self._populate_audio_file() @property def text_file_path_absolute(self): """ The absolute path of the text file. :rtype: string (path) """ return self.__text_file_path_absolute @text_file_path_absolute.setter def text_file_path_absolute(self, text_file_path_absolute): self.__text_file_path_absolute = text_file_path_absolute self._populate_text_file() @property def sync_map_file_path_absolute(self): """ The absolute path of the sync map file. :rtype: string (path) """ return self.__sync_map_file_path_absolute @sync_map_file_path_absolute.setter def sync_map_file_path_absolute(self, sync_map_file_path_absolute): self.__sync_map_file_path_absolute = sync_map_file_path_absolute def _populate_audio_file(self): """ Create the ``self.audio_file`` object by reading the audio file at ``self.audio_file_path_absolute``. """ if self.audio_file_path_absolute is not None: self.audio_file = AudioFile( file_path=self.audio_file_path_absolute, logger=None) self.audio_file.read_properties() def _populate_text_file(self): """ Create the ``self.text_file`` object by reading the text file at ``self.text_file_path_absolute``. """ if ((self.text_file_path_absolute is not None) and (self.configuration.language is not None)): parameters = dict() parameters[ gc. PPN_TASK_IS_TEXT_UNPARSED_CLASS_REGEX] = self.configuration.is_text_unparsed_class_regex parameters[ gc. PPN_TASK_IS_TEXT_UNPARSED_ID_REGEX] = self.configuration.is_text_unparsed_id_regex parameters[ gc. PPN_TASK_IS_TEXT_UNPARSED_ID_SORT] = self.configuration.is_text_unparsed_id_sort self.text_file = TextFile( file_path=self.text_file_path_absolute, file_format=self.configuration.is_text_file_format, parameters=parameters, logger=None) self.text_file.set_language(self.configuration.language) def output_sync_map_file(self, container_root_path=None): """ Output the sync map file for this task. If ``container_root_path`` is specified, the output sync map file will be created at the path obtained by joining the ``container_root_path`` and the relative path of the sync map inside the container. Otherwise, the sync map file will be created at the path ``sync_map_file_path_absolute``. Return the the path of the sync map file created, or ``None`` if an error occurred. :param container_root_path: the path to the root directory for the output container :type container_root_path: string (path) :rtype: return the path of the sync map file created """ if self.sync_map is None: return None if (container_root_path is not None) and (self.sync_map_file_path is None): return None if (container_root_path is not None) and (self.sync_map_file_path is not None): path = os.path.join(container_root_path, self.sync_map_file_path) elif self.sync_map_file_path_absolute: path = self.sync_map_file_path_absolute sync_map_format = self.configuration.os_file_format parameters = dict() parameters[ gc. PPN_TASK_OS_FILE_SMIL_PAGE_REF] = self.configuration.os_file_smil_page_ref parameters[ gc. PPN_TASK_OS_FILE_SMIL_AUDIO_REF] = self.configuration.os_file_smil_audio_ref result = self.sync_map.write(sync_map_format, path, parameters) if not result: return None return path
class Task(Loggable): """ A structure representing a task, that is, an audio file and an ordered set of text fragments to be synchronized. :param string config_string: the task configuration string :param rconf: a runtime configuration :type rconf: :class:`~aeneas.runtimeconfiguration.RuntimeConfiguration` :param logger: the logger object :type logger: :class:`~aeneas.logger.Logger` :raises: TypeError: if ``config_string`` is not ``None`` and it is not a Unicode string """ TAG = u"Task" def __init__(self, config_string=None, rconf=None, logger=None): super(Task, self).__init__(rconf=rconf, logger=logger) self.identifier = gf.uuid_string() self.configuration = None self.audio_file_path = None # relative to input container root self.audio_file_path_absolute = None # concrete path, file will be read from this! self.audio_file = None self.text_file_path = None # relative to input container root self.text_file_path_absolute = None # concrete path, file will be read from this! self.text_file = None self.sync_map_file_path = None # relative to output container root self.sync_map_file_path_absolute = None # concrete path, file will be written to this! self.sync_map = None if config_string is not None: self.configuration = TaskConfiguration(config_string) def __unicode__(self): msg = [ u"%s: '%s'" % (gc.RPN_TASK_IDENTIFIER, self.identifier), u"Configuration:\n%s" % self.configuration.__unicode__(), u"Audio file path: %s" % self.audio_file_path, u"Audio file path (absolute): %s" % self.audio_file_path_absolute, u"Text file path: %s" % self.text_file_path, u"Text file path (absolute): %s" % self.text_file_path_absolute, u"Sync map file path: %s" % self.sync_map_file_path, u"Sync map file path (absolute): %s" % self.sync_map_file_path_absolute ] return u"\n".join(msg) def __str__(self): return gf.safe_str(self.__unicode__()) @property def identifier(self): """ The identifier of the task. :rtype: string """ return self.__identifier @identifier.setter def identifier(self, value): self.__identifier = value @property def audio_file_path_absolute(self): """ The absolute path of the audio file. :rtype: string """ return self.__audio_file_path_absolute @audio_file_path_absolute.setter def audio_file_path_absolute(self, audio_file_path_absolute): self.__audio_file_path_absolute = audio_file_path_absolute self._populate_audio_file() @property def text_file_path_absolute(self): """ The absolute path of the text file. :rtype: string """ return self.__text_file_path_absolute @text_file_path_absolute.setter def text_file_path_absolute(self, text_file_path_absolute): self.__text_file_path_absolute = text_file_path_absolute self._populate_text_file() @property def sync_map_file_path_absolute(self): """ The absolute path of the sync map file. :rtype: string """ return self.__sync_map_file_path_absolute @sync_map_file_path_absolute.setter def sync_map_file_path_absolute(self, sync_map_file_path_absolute): self.__sync_map_file_path_absolute = sync_map_file_path_absolute def sync_map_leaves(self, fragment_type=None): """ Return the list of non-empty leaves in the sync map associated with the task. If ``fragment_type`` has been specified, return only leaves of that fragment type. :param int fragment_type: type of fragment to return :rtype: list .. versionadded:: 1.7.0 """ if (self.sync_map is None) or (self.sync_map.fragments_tree is None): return [] return [f for f in self.sync_map.leaves(fragment_type)] def output_sync_map_file(self, container_root_path=None): """ Output the sync map file for this task. If ``container_root_path`` is specified, the output sync map file will be created at the path obtained by joining the ``container_root_path`` and the relative path of the sync map inside the container. Otherwise, the sync map file will be created at the path ``self.sync_map_file_path_absolute``. Return the the path of the sync map file created, or ``None`` if an error occurred. :param string container_root_path: the path to the root directory for the output container :rtype: string """ if self.sync_map is None: self.log_exc(u"The sync_map object has not been set", None, True, TypeError) if (container_root_path is not None) and (self.sync_map_file_path is None): self.log_exc(u"The (internal) path of the sync map has been set", None, True, TypeError) self.log([u"container_root_path is %s", container_root_path]) self.log([u"self.sync_map_file_path is %s", self.sync_map_file_path]) self.log([ u"self.sync_map_file_path_absolute is %s", self.sync_map_file_path_absolute ]) if (container_root_path is not None) and (self.sync_map_file_path is not None): path = os.path.join(container_root_path, self.sync_map_file_path) elif self.sync_map_file_path_absolute: path = self.sync_map_file_path_absolute gf.ensure_parent_directory(path) self.log([u"Output sync map to %s", path]) eaf_audio_ref = self.configuration["o_eaf_audio_ref"] head_tail_format = self.configuration["o_h_t_format"] levels = self.configuration["o_levels"] smil_audio_ref = self.configuration["o_smil_audio_ref"] smil_page_ref = self.configuration["o_smil_page_ref"] sync_map_format = self.configuration["o_format"] self.log([u"eaf_audio_ref is %s", eaf_audio_ref]) self.log([u"head_tail_format is %s", head_tail_format]) self.log([u"levels is %s", levels]) self.log([u"smil_audio_ref is %s", smil_audio_ref]) self.log([u"smil_page_ref is %s", smil_page_ref]) self.log([u"sync_map_format is %s", sync_map_format]) self.log(u"Calling sync_map.write...") parameters = { gc.PPN_TASK_OS_FILE_EAF_AUDIO_REF: eaf_audio_ref, gc.PPN_TASK_OS_FILE_HEAD_TAIL_FORMAT: head_tail_format, gc.PPN_TASK_OS_FILE_LEVELS: levels, gc.PPN_TASK_OS_FILE_SMIL_AUDIO_REF: smil_audio_ref, gc.PPN_TASK_OS_FILE_SMIL_PAGE_REF: smil_page_ref, } self.sync_map.write(sync_map_format, path, parameters) self.log(u"Calling sync_map.write... done") return path def _populate_audio_file(self): """ Create the ``self.audio_file`` object by reading the audio file at ``self.audio_file_path_absolute``. """ self.log(u"Populate audio file...") if self.audio_file_path_absolute is not None: self.log([ u"audio_file_path_absolute is '%s'", self.audio_file_path_absolute ]) self.audio_file = AudioFile( file_path=self.audio_file_path_absolute, logger=self.logger) self.audio_file.read_properties() else: self.log(u"audio_file_path_absolute is None") self.log(u"Populate audio file... done") def _populate_text_file(self): """ Create the ``self.text_file`` object by reading the text file at ``self.text_file_path_absolute``. """ self.log(u"Populate text file...") if ((self.text_file_path_absolute is not None) and (self.configuration["language"] is not None)): # the following values might be None parameters = { gc.PPN_TASK_IS_TEXT_FILE_IGNORE_REGEX: self.configuration["i_t_ignore_regex"], gc.PPN_TASK_IS_TEXT_FILE_TRANSLITERATE_MAP: self.configuration["i_t_transliterate_map"], gc.PPN_TASK_IS_TEXT_MPLAIN_WORD_SEPARATOR: self.configuration["i_t_mplain_word_separator"], gc.PPN_TASK_IS_TEXT_MUNPARSED_L1_ID_REGEX: self.configuration["i_t_munparsed_l1_id_regex"], gc.PPN_TASK_IS_TEXT_MUNPARSED_L2_ID_REGEX: self.configuration["i_t_munparsed_l2_id_regex"], gc.PPN_TASK_IS_TEXT_MUNPARSED_L3_ID_REGEX: self.configuration["i_t_munparsed_l3_id_regex"], gc.PPN_TASK_IS_TEXT_UNPARSED_CLASS_REGEX: self.configuration["i_t_unparsed_class_regex"], gc.PPN_TASK_IS_TEXT_UNPARSED_ID_REGEX: self.configuration["i_t_unparsed_id_regex"], gc.PPN_TASK_IS_TEXT_UNPARSED_ID_SORT: self.configuration["i_t_unparsed_id_sort"], gc.PPN_TASK_OS_FILE_ID_REGEX: self.configuration["o_id_regex"] } self.text_file = TextFile( file_path=self.text_file_path_absolute, file_format=self.configuration["i_t_format"], parameters=parameters, logger=self.logger) self.text_file.set_language(self.configuration["language"]) else: self.log(u"text_file_path_absolute and/or language is None") self.log(u"Populate text file... done")