Source code for mrcrowbar.transforms
"""Definition classes for transformations."""
import collections
import logging
logger = logging.getLogger( __name__ )
TransformResult = collections.namedtuple( 'TransformResult', ['payload', 'end_offset'] )
TransformResult.__new__.__defaults__ = (b'', 0)
[docs]
class Transform( object ):
"""Base class for defining transformations."""
# pylint: disable=unused-argument,no-self-use
[docs]
def export_data( self, buffer, parent=None ):
"""Perform a transform on a byte string.
buffer
Source byte string.
parent
Parent object of the source (to provide context for Refs).
"""
logger.warning( '{}: export_data not implemented!'.format( self ) )
return TransformResult()
[docs]
def import_data( self, buffer, parent=None ):
"""Perform a reverse-transform on a byte string.
buffer
Source byte string.
parent
Parent object of the source (to provide context for Refs).
"""
logger.warning( '{}: import_data not implemented!'.format( self ) )
return TransformResult()