Changeset 1733:548d1187a29f in orange-bioinformatics for _bioinformatics/obiKEGG/types.py


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

Porting obiKEGG to use the new REST KEGG API.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _bioinformatics/obiKEGG/types.py

    r1716 r1733  
    66from datetime import datetime 
    77from collections import namedtuple 
     8from operator import methodcaller 
    89 
    910Definition = namedtuple( 
    10     "Definition", ["entry_id", 
    11                    "definition" 
    12                    ]) 
     11    "Definition", 
     12    ["entry_id", 
     13     "definition"] 
     14) 
     15 
    1316 
    1417def _Definition_from_items(items): 
     
    2427    return Definition(**dict(items_list)) 
    2528 
     29 
     30def _Definition_from_str(text): 
     31    """ 
     32    Return a `Definition` item by parsing a tab separated string `text` 
     33    i.e. text must be of the form '<entry_id>\t<definition>' 
     34 
     35    """ 
     36    return Definition(*text.split("\t", 1)) 
     37 
     38 
    2639Definition.from_items = staticmethod(_Definition_from_items) 
    27      
     40Definition.from_str = staticmethod(_Definition_from_str) 
     41 
     42 
     43OrganismSummary = namedtuple( 
     44    "OrganismSummary", 
     45    ["entry_id", 
     46     "org_code", 
     47     "name", 
     48     "lineage"], 
     49) 
     50 
     51 
     52def OrganismSummary_from_str(string): 
     53    return OrganismSummary(*string.split("\t")) 
     54 
     55OrganismSummary.from_str = staticmethod(OrganismSummary_from_str) 
     56 
     57 
    2858BInfo = namedtuple( 
    29     'BInfo', ["entry_id", 
    30               "definition", 
    31               "name", 
    32               "release", 
    33               "curator", 
    34               "contents", 
    35               "last_update", 
    36               "supported_formats" 
    37               ]) 
     59    'BInfo', 
     60    ["entry_id", 
     61    "definition", 
     62    "name", 
     63    "release", 
     64    "curator", 
     65    "contents", 
     66    "last_update", 
     67    "supported_formats"] 
     68) 
     69 
    3870 
    3971def _BInfo_from_text(text): 
    40     """ Parse the return string from binfo into a new BInfo instance. 
     72    """ Parse the return string from info into a new BInfo instance. 
    4173    """ 
    4274    lines = text.splitlines() 
    4375    name, definition = lines[0].split(" ", 1) 
    4476    definition = definition.strip() 
    45      
    4677    entry_id, release = lines[1].split(" ", 1) 
    4778    _, release = release.strip().split(" ", 1) 
    4879    curator = lines[2].strip() 
    49     contents = lines[3].strip() 
    50     _, last_update = lines[4].strip().split(":",1) 
    51     last_update = datetime.strptime(last_update.strip(), "%y/%m/%d").date() 
    52     supported_formats = lines[5].strip() 
     80    contents = "\n".join(map(methodcaller("strip"), lines[3:])) 
     81 
    5382    return BInfo(entry_id, definition, name, release, curator, 
    54                  contents, last_update, supported_formats) 
     83                 contents, None, None) 
    5584 
    5685BInfo.from_text = staticmethod(_BInfo_from_text) 
     86 
     87 
     88Link = namedtuple("Link", ["entry_id1", "entry_id2"]) 
    5789 
    5890 
Note: See TracChangeset for help on using the changeset viewer.