Source code for tuna.io.metadata_parser

"""
This module's scope covers the operations related to metadata.
"""

import logging
import re

[docs]class metadata_parser ( object ): """ Responsible for translating metadata from ADHOC's ADT to Tuna's internal representation. Its constructor signature is: Parameters: * file_name : string : defaults to None Full or relative path and file name for an ADT file. """ def __init__ ( self, file_name = None ): super ( metadata_parser, self ).__init__ ( ) self.__version__ = "0.1.0" self.changelog = { "0.1.0" : "Tuna 0.14.0 : updated docstrings to new style.", } self.log = logging.getLogger ( __name__ ) self.__file_name = file_name self.__results = { } if self.__file_name != None: self.run ( )
[docs] def get_metadata ( self ): """ This method's goal is to access the parsed metadata. Returns: * self.__results : dictionary Contains the metadata obtained from reading the input file. """ return self.__results
[docs] def run ( self ): """ This method's goal is to verify file format and attempts to parse the metadata accordingly. """ self.log.debug ( "%s %s" % ( sys._getframe ( ).f_code.co_name, sys._getframe ( ).f_code.co_varnames ) ) if self.__file_name != None: if ( self.__file_name.startswith ( ".ADT", -4 ) or self.__file_name.startswith ( ".adt", -4 ) ): self.read_adt_metadata ( ) else: self.log ( "File name %s does not have .ADT or .adt suffix, aborting." % ( self.__file_name ) )
[docs]def get_metadata ( file_name = None ): """ This method's goal is to conveniently return the metadata, given a file name. Parameters: * file_name : string Containing a valid file name (and optionally, an absolute or relative path). Returns: * parser.get_metadata ( ) : dictionary Contains the metadata obtained from reading file_name. """ log = logging.getLogger ( __name__ ) log.debug ( "%s %s" % ( sys._getframe ( ).f_code.co_name, sys._getframe ( ).f_code.co_varnames ) ) if file_name: parser = metadata_parser ( file_name = file_name ) return parser.get_metadata ( )