Top

rosetta.core.fragment module

from _core_fragment_ import *

from cStringIO import StringIO

from types import MethodType

import rosetta.utility

def __fragment_getstate__(self):
    """Generate a state dictionary containing a serialized fragment frame containing the source fragment."""

    fragment_frame = Frame()
    fragment_frame.add_fragment(self)

    data = StringIO()
    fragment_frame.show(rosetta.utility.ostream(data))

    return {"FragmentFrame" : data.getvalue()}

def __fragment_setstate__(self, state):
    """Read state dictionary containing a serialized fragment frame containing the source fragment."""

    data = state["FragmentFrame"]

    frame_list = FrameList()

    fragment_io = FragmentIO()
    fragment_io.read_data( rosetta.utility.istream(StringIO(data)), frame_list )

    assert frame_list.flat_size() == 1

    self.copy(frame_list.fragID(1).fragment())

def __fragment_reduce_ex__(self, protocol_level):
    """Fragment reduce implementation, generates annotated fragments.""" 
    return (AnnotatedFragData, ("pickle", 0), self.__getstate__())

FragData.__getstate__ = MethodType(__fragment_getstate__, None, FragData)
FragData.__setstate__ = MethodType(__fragment_setstate__, None, FragData)
FragData.__reduce_ex__ = MethodType(__fragment_reduce_ex__, None, FragData)

AnnotatedFragData.__getstate__ = MethodType(__fragment_getstate__, None, AnnotatedFragData)
AnnotatedFragData.__setstate__ = MethodType(__fragment_setstate__, None, AnnotatedFragData)
AnnotatedFragData.__reduce_ex__ = MethodType(__fragment_reduce_ex__, None, AnnotatedFragData)
from _core_fragment_ import *

Sub-modules