Exemplo n.º 1
0
class PandasSeriesStore(PandasStore):
    TYPE = 'pandasseries'
    SERIALIZER = SeriesSerializer()

    def can_write(self, version, symbol, data):
        if isinstance(data, Series):
            if data.dtype == np.object_ or data.index.dtype == np.object_:
                return self.SERIALIZER.can_convert_to_records_without_objects(
                    data, symbol)
            return True
        return False

    def write(self, arctic_lib, version, symbol, item, previous_version):
        item, md = self.SERIALIZER.serialize(item)
        super(PandasSeriesStore, self).write(arctic_lib,
                                             version,
                                             symbol,
                                             item,
                                             previous_version,
                                             dtype=md)

    def append(self, arctic_lib, version, symbol, item, previous_version):
        item, md = self.SERIALIZER.serialize(item)
        super(PandasSeriesStore, self).append(arctic_lib,
                                              version,
                                              symbol,
                                              item,
                                              previous_version,
                                              dtype=md)

    def read(self, arctic_lib, version, symbol, **kwargs):
        item = super(PandasSeriesStore, self).read(arctic_lib, version, symbol,
                                                   **kwargs)
        return self.SERIALIZER.deserialize(item)
Exemplo n.º 2
0
class PandasSeriesStore(PandasStore):
    TYPE = 'pandasseries'
    SERIALIZER = SeriesSerializer()

    @staticmethod
    def can_write_type(data):
        return isinstance(data, Series)

    def can_write(self, version, symbol, data):
        if self.can_write_type(data):
            # Series has always a single-column
            if data.dtype is NP_OBJECT_DTYPE or data.index.dtype is NP_OBJECT_DTYPE:
                return self.SERIALIZER.can_convert_to_records_without_objects(data, symbol)
            return True
        return False

    def write(self, arctic_lib, version, symbol, item, previous_version):
        item, md = self.SERIALIZER.serialize(item)
        super(PandasSeriesStore, self).write(arctic_lib, version, symbol, item, previous_version, dtype=md)

    def append(self, arctic_lib, version, symbol, item, previous_version, **kwargs):
        item, md = self.SERIALIZER.serialize(item)
        super(PandasSeriesStore, self).append(arctic_lib, version, symbol, item, previous_version, dtype=md, **kwargs)

    def read_options(self):
        return super(PandasSeriesStore, self).read_options()

    def read(self, arctic_lib, version, symbol, **kwargs):
        item = super(PandasSeriesStore, self).read(arctic_lib, version, symbol, **kwargs)
        # Try to check if force_bytes_to_unicode is set in kwargs else use the config value (which defaults to False)
        force_bytes_to_unicode = kwargs.get('force_bytes_to_unicode', FORCE_BYTES_TO_UNICODE)
        return self.SERIALIZER.deserialize(item, force_bytes_to_unicode=force_bytes_to_unicode)
Exemplo n.º 3
0
class PandasSeriesStore(PandasStore):
    TYPE = 'pandasseries'
    SERIALIZER = SeriesSerializer()

    @staticmethod
    def can_write_type(data):
        return isinstance(data, Series)

    def can_write(self, version, symbol, data):
        if self.can_write_type(data):
            # Series has always a single-column
            if data.dtype is NP_OBJECT_DTYPE or data.index.dtype is NP_OBJECT_DTYPE:
                return self.SERIALIZER.can_convert_to_records_without_objects(
                    data, symbol)
            return True
        return False

    def write(self, arctic_lib, version, symbol, item, previous_version):
        item, md = self.SERIALIZER.serialize(item)
        super(PandasSeriesStore, self).write(arctic_lib,
                                             version,
                                             symbol,
                                             item,
                                             previous_version,
                                             dtype=md)

    def append(self, arctic_lib, version, symbol, item, previous_version,
               **kwargs):
        item, md = self.SERIALIZER.serialize(item)
        super(PandasSeriesStore, self).append(arctic_lib,
                                              version,
                                              symbol,
                                              item,
                                              previous_version,
                                              dtype=md,
                                              **kwargs)

    def read_options(self):
        return super(PandasSeriesStore, self).read_options()

    def read(self, arctic_lib, version, symbol, **kwargs):
        item = super(PandasSeriesStore, self).read(arctic_lib, version, symbol,
                                                   **kwargs)
        return self.SERIALIZER.deserialize(item)