Changeset 1734:91d14dd2cf0e in orange-bioinformatics for _bioinformatics/obiKEGG/entry/fields.py


Ignore:
Timestamp:
03/05/13 19:48:26 (14 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

obiKEGG code style fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/obiKEGG/entry/fields.py

    r1716 r1734  
    11""" 
    2 Wrapper classes for db entry fields to support pythoninc  
     2Wrapper classes for db entry fields to support pythonic 
    33interface. 
    4    
     4 
    55""" 
    66 
     7 
    78class DBField(object): 
    8     """ Base DBGET entry field 
    9     """ 
    10     __SLOTS__ = ["text"] 
     9    """ 
     10    Base DBGET entry field 
     11    """ 
     12    __SLOTS__ = ["text"] 
     13 
    1114    def __init__(self, text): 
    1215        self.text = text 
    13          
    14     def _convert(self): 
    15         """ Convert the contents into python representation using 
    16         builtin types. 
    17           
     16 
     17    def _convert(self): 
     18        """ 
     19        Convert the contents into python representation using builtin types. 
    1820        """ 
    1921        return self.text.rstrip("\n") 
    20      
    21      
     22 
     23 
    2224class DBSimpleField(DBField): 
    23     """ Simple field (with no subsections). 
     25    """ 
     26    Simple field (with no subsections). 
    2427    """ 
    2528    __SLOTS__ = ["text"] 
    2629    # TITLE must be set in subclasses or object instances 
    2730    TITLE = None 
     31 
    2832    def __str__(self): 
    2933        return self.format() 
    30          
    31          
     34 
    3235    def format(self, section_indent=12, subsection_indent=0): 
    3336        fmt = (" " * subsection_indent) + "%-" + \ 
     
    3740        text = fmt % (self.TITLE, text) 
    3841        return text 
    39      
     42 
    4043    def _indent(self, text, section_indent=12): 
    4144        indent_str = "\n" + " " * section_indent 
    4245        nl_count = text.count("\n") 
    4346        return text.replace("\n", indent_str, nl_count - 1) 
    44      
    45      
     47 
     48 
    4649class DBEntryField(DBSimpleField): 
    47     """ ENTRY field (all entries start with this field) 
     50    """ 
     51    ENTRY field (all entries start with this field) 
    4852    """ 
    4953    __SLOTS__ = ["text"] 
    5054    TITLE = "ENTRY" 
    51      
    52      
     55 
     56 
    5357class DBNameField(DBSimpleField): 
    5458    __SLOTS__ = ["text"] 
    5559    TITLE = "NAME" 
    56      
    57      
     60 
     61 
    5862class DBDefinitionField(DBSimpleField): 
    5963    __SLOTS__ = ["text"] 
    6064    TITLE = "DEFINITION" 
    61      
    62      
     65 
     66 
    6367class DBFieldWithSubsections(DBSimpleField): 
    64     """ A field with subsections (for instance REFERENCE in genome) 
     68    """ 
     69    A field with subsections (for instance REFERENCE in genome) 
    6570    """ 
    6671    __SLOTS__ = ["text", "subsections"] 
    6772    TITLE = None 
    6873    SUBSECTIONS = None 
    69      
     74 
    7075    def __init__(self, text, subsections=None): 
    7176        self.text = text 
    7277        self.subsections = subsections or [] 
    73          
     78 
    7479    def format(self, section_indent=12, subsection_indent=2): 
    7580        text = DBSimpleField.format(self, section_indent, subsection_indent=0) 
     
    7782                       for sub in self.subsections] 
    7883        return "".join([text] + subsections) 
    79      
     84 
    8085    def _convert(self): 
    8186        my = DBSimpleField._convert(self) 
     
    8388                for s in self.subsections] 
    8489        return (my, subs) 
    85          
    86          
     90 
     91 
    8792class DBTaxonomyField(DBFieldWithSubsections): 
    8893    __SLOTS__ = ["text", "subsections"] 
    8994    TITLE = "TAXONOMY" 
    9095    SUBSECTIONS = ["LINEAGE"] 
    91      
     96 
    9297    @property 
    9398    def taxid(self): 
    9499        return DBSimpleField._convert(self).split(":")[1] 
    95      
    96      
     100 
     101 
    97102class DBDataSourceField(DBSimpleField): 
    98103    __SLOTS__ = ["text"] 
     
    104109    TITLE = "REFERENCE" 
    105110    SUBSECTIONS = ["AUTHORS", "TITLE", "JOURNAL"] 
    106      
     111 
    107112    @property 
    108113    def authors(self): 
    109114        return self.subsections[0] 
    110          
     115 
    111116    @property 
    112117    def title(self): 
    113118        return self.subsections[1] 
    114      
     119 
    115120    @property 
    116121    def journal(self): 
    117122        return self.subsections[2] 
    118      
    119      
     123 
     124 
    120125class DBDBLinks(DBSimpleField): 
    121126    __SLOTS__ = ["text"] 
    122127    TITLE = "DBLINKS" 
    123      
     128 
    124129    @property 
    125130    def links(self): 
    126131        return [tuple(s.split(": ", 1)) \ 
    127132                for s in self.text.splitlines()] 
    128          
    129     def _convert(self): 
    130         # Some dblinks can span multiple lines but are always 'indented'  
     133 
     134    def _convert(self): 
     135        # Some dblinks can span multiple lines but are always 'indented' 
    131136        links = DBSimpleField._convert(self).replace("\n ", "").splitlines() 
    132137        links = [tuple(link.split(": ", 1)) for link in links] 
     
    134139                 for key, values in links] 
    135140        return dict(links) 
    136      
    137      
     141 
     142 
    138143class DBPathway(DBSimpleField): 
    139144    __SLOTS__ = ["text"] 
    140145    TITLE = "PATHWAY" 
    141      
     146 
    142147    @property 
    143148    def pathways(self): 
    144149        return self._convert() 
    145      
     150 
    146151    def _convert(self): 
    147152        text = DBSimpleField._convert(self) 
    148153        return [line.split(" ", 1)[0] for line in text.splitlines()] 
    149      
    150      
     154 
     155 
    151156class DBAASeq(DBSimpleField): 
    152157    __SLOTS__ = ["text"] 
    153158    TITLE = "AASEQ" 
    154      
     159 
    155160    @property 
    156161    def sequence(self): 
    157162        return self.split("\n", 1)[1].replace("\n", "") 
    158      
     163 
    159164    @property 
    160165    def sequence_lenght(self): 
    161166        return int(self.text.split("\n", 1)[0]) 
    162      
     167 
    163168    def _convert(self): 
    164169        text = DBSimpleField._convert(self) 
    165170        count, seq = text.split("\n", 1) 
    166171        return seq.replace("\n", "") 
    167      
    168      
     172 
     173 
    169174class DBNTSeq(DBSimpleField): 
    170175    __SLOTS__ = ["text"] 
    171176    TITLE = "NTSEQ" 
    172      
     177 
    173178    @property 
    174179    def sequence(self): 
    175180        return self.split("\n", 1)[1].replace("\n", "") 
    176      
     181 
    177182    @property 
    178183    def sequence_lenght(self): 
    179184        return int(self.text.split("\n", 1)[0]) 
    180      
     185 
    181186    def _convert(self): 
    182187        text = DBSimpleField._convert(self) 
    183188        count, seq = text.split("\n", 1) 
    184189        return seq.replace("\n", "") 
    185      
    186      
     190 
     191 
    187192class DBPathwayMapField(DBSimpleField): 
    188193    __SLOTS__ = ["text"] 
    189194    TITLE = "PATHWAY_MAP" 
    190      
     195 
    191196    def kgml_url(self): 
    192197        return "http://www.genome.jp/kegg-bin/download?entry={0}&format=kgml".format(self.pathway_id) 
    193      
     198 
    194199    @property 
    195200    def pathway_id(self): 
    196201        return self.text.split(" ", 1)[0] 
    197      
    198      
     202 
     203 
    199204class DBGeneField(DBSimpleField): 
    200205    __SLOTS__ = ["text"] 
    201206    TITLE = "GENE" 
    202      
     207 
    203208    def _convert(self): 
    204209        text = DBSimpleField._convert(self) 
    205210        lines = text.splitlines() 
    206211        return [line.split(" ", 1)[0] for line in lines] 
    207      
     212 
     213 
    208214class DBEnzymeField(DBSimpleField): 
    209215    __SLOTS__ = ["text"] 
    210216    TITLE = "ENZYME" 
    211      
     217 
    212218    def _convert(self): 
    213219        text = DBSimpleField._convert(self) 
    214220        lines = text.splitlines() 
    215221        return lines 
    216      
     222 
     223 
    217224class DBCompoundField(DBSimpleField): 
    218225    __SLOTS__ = ["text"] 
    219226    TITLE = "COMPOUND" 
    220      
     227 
    221228    def _convert(self): 
    222229        text = DBSimpleField._convert(self) 
    223230        lines = text.splitlines() 
    224231        return [line.split(" ", 1)[0] for line in lines] 
    225      
    226      
Note: See TracChangeset for help on using the changeset viewer.