Module jumpscale.clients.kraken.kraken
Kraken client is a growing client support kraken.com API
Getting kraken clientn
Kraken client is available from j.clients.kraken
JS-NG> k1 = j.clients.kraken.get("k1")
Getting a pair price
Here we try to get the value of XLMUSD (it's the default as well.)
JS-NG> p1 = k1.get_pair_price()                                                                                       
JS-NG> p1.last_trade                                                                                                  
'0.06943500'
JS-NG> p1.bid                                                                                                         
'0.06930000'
JS-NG> p1.ask                                                                                                         
'0.06943500'
Expand source code
"""Kraken client is a growing client support kraken.com API
## Getting kraken clientn
Kraken client is available from `j.clients.kraken`
```
JS-NG> k1 = j.clients.kraken.get("k1")
```                                                                                
## Getting a pair price
Here we try to get the value of `XLMUSD` (it's the default as well.)
```
JS-NG> p1 = k1.get_pair_price()                                                                                       
JS-NG> p1.last_trade                                                                                                  
'0.06943500'
JS-NG> p1.bid                                                                                                         
'0.06930000'
JS-NG> p1.ask                                                                                                         
'0.06943500'
```
"""
import requests
from jumpscale.loader import j
from jumpscale.clients.base import Client, Base
from jumpscale.core.base import fields
class Price(Base):
    pair = fields.String()
    ask = fields.String()
    bid = fields.String()
    last_trade = fields.String()
    stored_date = fields.DateTime()
class KrakenClient(Client):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._session = requests.Session()
    def _do_request(self, url, ex):
        res = self._session.get(url).json()
        if res["error"]:
            raise ex("\n".join(res["error"]))
        return res
    def get_pair_price(self, pair="XLMUSD"):
        """Gets price of specified pair
        Args:
            pair (str): pair name. Defaults to XLMUSD
        Raises:
            j.exceptions.Input: If incorrect pair is provided
        Returns:
            Price: Object containing ask, bid and last trade price
        """
        res = self._do_request(f"https://api.kraken.com/0/public/Ticker?pair={pair}", j.exceptions.Input)
        result = res["result"]
        key = list(result.keys())[0]
        data = {
            "pair": pair,
            "ask": result[key]["a"][0],
            "bid": result[key]["b"][0],
            "last_trade": result[key]["c"][0],
            "stored_date": j.data.time.utcnow().datetime,
        }
        return Price(**data)Classes
- class KrakenClient (*args, **kwargs)
- 
A simple attribute-based namespace. SimpleNamespace(**kwargs) base class implementation for any class with fields which supports getting/setting raw data for any instance fields. any instance can have an optional name and a parent. class Person(Base): name = fields.String() age = fields.Float() p = Person(name="ahmed", age="19") print(p.name, p.age)Args- parent_:- Base, optional
- parent instance. Defaults to None.
- instance_name_:- str, optional
- instance name. Defaults to None.
- **values
- any given field values to initiate the instance with
 Expand source codeclass KrakenClient(Client): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._session = requests.Session() def _do_request(self, url, ex): res = self._session.get(url).json() if res["error"]: raise ex("\n".join(res["error"])) return res def get_pair_price(self, pair="XLMUSD"): """Gets price of specified pair Args: pair (str): pair name. Defaults to XLMUSD Raises: j.exceptions.Input: If incorrect pair is provided Returns: Price: Object containing ask, bid and last trade price """ res = self._do_request(f"https://api.kraken.com/0/public/Ticker?pair={pair}", j.exceptions.Input) result = res["result"] key = list(result.keys())[0] data = { "pair": pair, "ask": result[key]["a"][0], "bid": result[key]["b"][0], "last_trade": result[key]["c"][0], "stored_date": j.data.time.utcnow().datetime, } return Price(**data)AncestorsMethods- def get_pair_price(self, pair='XLMUSD')
- 
Gets price of specified pair Args- pair:- str
- pair name. Defaults to XLMUSD
 Raises- j.exceptions.Input
- If incorrect pair is provided
 Returns- Price
- Object containing ask, bid and last trade price
 Expand source codedef get_pair_price(self, pair="XLMUSD"): """Gets price of specified pair Args: pair (str): pair name. Defaults to XLMUSD Raises: j.exceptions.Input: If incorrect pair is provided Returns: Price: Object containing ask, bid and last trade price """ res = self._do_request(f"https://api.kraken.com/0/public/Ticker?pair={pair}", j.exceptions.Input) result = res["result"] key = list(result.keys())[0] data = { "pair": pair, "ask": result[key]["a"][0], "bid": result[key]["b"][0], "last_trade": result[key]["c"][0], "stored_date": j.data.time.utcnow().datetime, } return Price(**data)
 Inherited members
- class Price (parent_=None, instance_name_=None, **values)
- 
A simple attribute-based namespace. SimpleNamespace(**kwargs) base class implementation for any class with fields which supports getting/setting raw data for any instance fields. any instance can have an optional name and a parent. class Person(Base): name = fields.String() age = fields.Float() p = Person(name="ahmed", age="19") print(p.name, p.age)Args- parent_:- Base, optional
- parent instance. Defaults to None.
- instance_name_:- str, optional
- instance name. Defaults to None.
- **values
- any given field values to initiate the instance with
 Expand source codeclass Price(Base): pair = fields.String() ask = fields.String() bid = fields.String() last_trade = fields.String() stored_date = fields.DateTime()Ancestors- Base
- types.SimpleNamespace
 Instance variables- var ask
- 
getter method this property will call _get_value, which would if the value is already defined and will get the default value if notReturns- any
- the field value
 Expand source codedef getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field)
- var bid
- 
getter method this property will call _get_value, which would if the value is already defined and will get the default value if notReturns- any
- the field value
 Expand source codedef getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field)
- var last_trade
- 
getter method this property will call _get_value, which would if the value is already defined and will get the default value if notReturns- any
- the field value
 Expand source codedef getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field)
- var pair
- 
getter method this property will call _get_value, which would if the value is already defined and will get the default value if notReturns- any
- the field value
 Expand source codedef getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field)
- var stored_date
- 
getter method this property will call _get_value, which would if the value is already defined and will get the default value if notReturns- any
- the field value
 Expand source codedef getter(self): """ getter method this property will call `_get_value`, which would if the value is already defined and will get the default value if not Returns: any: the field value """ return self._get_value(name, field)
 Inherited members