/
session.py
45 lines (35 loc) · 1.09 KB
/
session.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import requests
import json
import webbrowser
class Session(object):
name = None
visualizations = []
def __init__(self, lgn=None, id=None, json=None):
self.lgn = lgn
self.host = lgn.host
self.auth = lgn.auth
self.id = id
if json:
self.id = json.get('id')
self.name = json.get('name')
def __str__(self):
if self.name:
return self.name
return str(self.id)
def __repr__(self):
s = "Session\n"
s += "number: " + str(self.id)
if self.name:
s += "name: " + str(self.name)
return s
def open(self):
webbrowser.open(self.host + '/sessions/' + str(self.id) + '/feed/')
@classmethod
def create(cls, lgn, name=None):
url = lgn.host + '/sessions/'
payload = {}
if name:
payload = {'name': name}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(payload), headers=headers, auth=lgn.auth)
return cls(lgn=lgn, json=r.json())