#!/usr/bin/env python
""" """
# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2011 Hendrix Demers"
__license__ = ""
# Standard library modules.
import logging
import os.path
# Third party modules.
import numpy as np
# Local modules.
# Project modules
import pymcxray.serialization._Serialization as _Serialization
# Globals and constants variables.
[docs]class SerializationNumpy(_Serialization._Serialization):
[docs] def load(self):
filepath = self.getFilepath()
if self._verbose:
logging.debug("Reading serialization file: %s.", filepath)
serializedData = np.zeros((1), dtype=float)
if os.path.isfile(filepath):
serializedData = np.fromfile(filepath)
return serializedData
[docs] def save(self, serializedData):
filepath = self.getFilepath()
if self._verbose:
logging.debug("Writing serialization file %s.", filepath)
serializedData.tofile(filepath)
def _getSerializationExtension(self):
return "_numpy.dat"
[docs]class SerializationNumpyTxt(SerializationNumpy):
def _getSerializationExtension(self):
return "_numpy.txt"
[docs] def load(self):
data = np.zeros((1))
filepath = self.getFilepath()
if os.path.isfile(filepath):
data = np.loadtxt(filepath)
return data
[docs] def save(self, data):
filepath = self.getFilepath()
np.savetxt(filepath, data)
[docs]class SerializationNumpyTxtGz(SerializationNumpyTxt):
def _getSerializationExtension(self):
return "_numpy.txt.gz"
[docs]class SerializationNumpyNPY(SerializationNumpy):
def _getSerializationExtension(self):
return "_numpy.npy"
[docs] def load(self):
data = np.zeros((1))
filepath = self.getFilepath()
if os.path.isfile(filepath):
data = np.load(filepath)
return data
[docs] def save(self, data):
filepath = self.getFilepath()
np.save(filepath, data)
[docs]class SerializationNumpyNPZ(SerializationNumpy):
def _getSerializationExtension(self):
return "_numpy.npz"
[docs] def load(self):
data = {}
filepath = self.getFilepath()
if os.path.isfile(filepath):
npzfile = np.load(filepath)
for key in npzfile.files:
data[key] = npzfile[key]
del npzfile
return data
[docs] def save(self, data):
filepath = self.getFilepath()
np.savez(filepath, **data)