Source code for wkps.wio.basewkpio
# -*- coding: utf-8 -*-
"""
:filename: sppas.src.wkps.wio.basewkpio.py
:author: Laurent Vouriot, Brigitte Bigi
:contact: develop@sppas.org
:summary: Base class for any reader and writer of a workspace.
.. _This file is part of SPPAS: http://www.sppas.org/
..
-------------------------------------------------------------------------
___ __ __ __ ___
/ | \ | \ | \ / the automatic
\__ |__/ |__/ |___| \__ annotation and
\ | | | | \ analysis
___/ | | | | ___/ of speech
Copyright (C) 2011-2021 Brigitte Bigi
Laboratoire Parole et Langage, Aix-en-Provence, France
Use of this software is governed by the GNU Public License, version 3.
SPPAS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SPPAS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SPPAS. If not, see <http://www.gnu.org/licenses/>.
This banner notice must not be removed.
-------------------------------------------------------------------------
"""
from sppas.src.config import sppasTypeError
from ..workspace import sppasWorkspace
# ---------------------------------------------------------------------------
[docs]class sppasBaseWkpIO(sppasWorkspace):
"""Base class for any reader-writer of a workspace.
"""
[docs] def __init__(self, name=None):
"""Initialize a new workspace reader-writer instance.
:param name: (str) A workspace name
"""
super(sppasBaseWkpIO, self).__init__(name)
self.default_extension = None
self.software = "und"
# -----------------------------------------------------------------------
[docs] @staticmethod
def detect(filename):
"""Check whether a file is of an appropriate format or not."""
return False
# -----------------------------------------------------------------------
[docs] def set(self, wkp):
"""Set the current workspace with the content of another one.
:param wkp: (sppasWorkspace)
"""
if isinstance(wkp, sppasWorkspace) is False:
raise sppasTypeError(type(wkp), "sppasWorkspace")
self._id = wkp.get_id()
for reference in wkp.get_refs():
self.add_ref(reference)
for filepath in wkp.get_paths():
self.add(filepath)
# -----------------------------------------------------------------------
# Read/Write
# -----------------------------------------------------------------------
[docs] def read(self, filename):
"""Read a file and fill the workspace.
:param filename: (str)
"""
raise NotImplementedError
# -----------------------------------------------------------------------
[docs] def write(self, filename):
"""Write a workspace into a file.
:param filename: (str)
"""
raise NotImplementedError