def load(self, in_stream, format=None, **kwargs):
        """
        Import `in_stream` to the :class:`Dataset` object using the `format`.
        `in_stream` can be a file-like object, a string, or a bytestring.

        :param \\*\\*kwargs: (optional) custom configuration to the format `import_set`.
        """

        stream = normalize_input(in_stream)
        if not format:
            # pythonlibrary.net:
            # 如果没有提供格式,则尝试自动检测
            format = detect_format(stream)

        fmt = registry.get_format(format)
        if not hasattr(fmt, 'import_set'):
            raise UnsupportedFormat(
                'Format {} cannot be imported.'.format(format))

        if not import_set:
            # support to pass in the custom import_set function
            raise UnsupportedFormat(
                'Format {} cannot be imported.'.format(format))

        fmt.import_set(self, stream, **kwargs)
        return self
Beispiel #2
0
def detect_format(stream):
    """Return format name of given stream (file-like object, string, or bytestring)."""
    stream = normalize_input(stream)
    fmt_title = None
    for fmt in registry.formats():
        try:
            if fmt.detect(stream):
                fmt_title = fmt.title
                break
        except AttributeError:
            pass
        finally:
            if hasattr(stream, 'seek'):
                stream.seek(0)
    return fmt_title
Beispiel #3
0
    def load(self, in_stream, format, **kwargs):
        """
        Import `in_stream` to the :class:`Databook` object using the `format`.
        `in_stream` can be a file-like object, a string, or a bytestring.

        :param \\*\\*kwargs: (optional) custom configuration to the format `import_book`.
        """

        stream = normalize_input(in_stream)
        if not format:
            format = detect_format(stream)

        fmt = registry.get_format(format)
        if not hasattr(fmt, 'import_book'):
            raise UnsupportedFormat(f'Format {format} cannot be loaded.')

        fmt.import_book(self, stream, **kwargs)
        return self
 def _set_in_format(self, fmt_key, in_stream, **kwargs):
     # pythonlibrary.net:
     # 调用了format类的import_set方法,其具体实现要看不同的format类
     in_stream = normalize_input(in_stream)
     return registry.get_format(fmt_key).import_set(self, in_stream,
                                                    **kwargs)
def import_book(stream, format=None, **kwargs):
    """Return dataset of given stream (file-like object, string, or bytestring)."""

    return Databook().load(normalize_input(stream), format, **kwargs)
Beispiel #6
0
 def __set__(self, obj, val):
     self.ensure_format_loaded()
     return self._format.import_set(obj, normalize_input(val))
Beispiel #7
0
 def _set_in_format(self, fmt_key, in_stream, **kwargs):
     in_stream = normalize_input(in_stream)
     return registry.get_format(fmt_key).import_set(self, in_stream,
                                                    **kwargs)