Source code for omxware.entities.IprCode
# -*- coding: utf-8 -*-
from omxware import omxware
from omxware.config import Connection
from omxware.entities.Entity import Entity
from omxware.utils.ResultUtils import list2str
[docs]class Ipr(Entity):
"""OMXWare IPR Entity Class"""
_category = None # str
_description = None # []
def __init__(self, connecthdr: Connection, ipr):
"""Constructor"""
"""
{id, name, type, json} attributes are read by the super().constructor()
So just parse and load the remaining attributes
"""
super().__init__(connecthdr, ipr)
if isinstance(ipr, dict):
self._json = ipr
# extracting the category for this go
if 'category' not in ipr:
self._is_preview_obj = True
else:
self._is_preview_obj = False
self._category = ipr['category']
self._description = ipr['description']
def __reload(self):
headers = {'content-type': 'application/json',
'content-language': 'en-US',
'accept': 'application/json'}
params = {'page_size': 1, 'page_number': 1}
if self.id() is not None:
methodurl = '/api/secure/' + self.type() + '/id:'
if isinstance(self.id(), list):
methodurl = methodurl + list2str(self.id())
if isinstance(self.id(), str):
methodurl = methodurl + self.id()
resp = self._connecthdr.get(methodurl=methodurl, headers=headers, payload=params)
results = resp.results()
if results is not None:
result = results[0]
g = Ipr(self._connecthdr, result.json())
self.__copy(g)
def __copy(self, ipr):
self._is_preview_obj = ipr.is_preview_obj()
self._connecthdr = ipr.connection()
self._config = ipr.configuration()
self._omx_token = ipr.omx_token()
self._json = ipr.json()
self._id = ipr.id()
self._type = ipr.type()
self._name = ipr.name()
self._category = ipr.category()
self._description = ipr.description()
[docs] def category(self):
"""
Get this IPR Code's category
Returns:
:return: str : IPR code's category
"""
return self._category
[docs] def description(self):
"""
Get this IPR Code's description
Returns:
:return: str : IPR code's description
"""
return self._description
[docs] def genes(self,
page_size=Entity._PAGE_SIZE_DEFAULT,
page_number=Entity._PAGE_INDEX_DEFAULT
):
"""
Get OMXWare Genes for this IPR code
Parameters:
:param page_number: Page Number
:type page_number: int
:param page_size: Results page size
:type page_size: int
Returns:
:return: OmxResponse: Genes
"""
omx = omxware.omxware(self.connection().config().token(), env=self.connection().config().env())
results = omx.genes(ipr_ids=self.id(), page_size=page_size, page_number=page_number)
return results
[docs] def proteins(self,
page_size=Entity._PAGE_SIZE_DEFAULT,
page_number=Entity._PAGE_INDEX_DEFAULT
):
"""
Get OMXWare Proteins for this IPR code
Parameters:
:param page_number: Page Number
:type page_number: int
:param page_size: Results page size
:type page_size: int
Returns:
:return: OmxResponse: Proteins
"""
omx = omxware.omxware(self.connection().config().token(), env=self.connection().config().env())
results = omx.proteins(ipr_ids=self.id(), page_size=page_size, page_number=page_number)
return results
[docs] def domains(self,
page_size=Entity._PAGE_SIZE_DEFAULT,
page_number=Entity._PAGE_INDEX_DEFAULT
):
"""
Get OMXWare Domains for this IPR code
Parameters:
:param page_number: Page Number
:type page_number: int
:param page_size: Results page size
:type page_size: int
Returns:
:return: OmxResponse: Domains
"""
omx = omxware.omxware(self.connection().config().token(), env=self.connection().config().env())
results = omx.domains(ipr_ids=self.id(), page_size=page_size, page_number=page_number)
return results