Skip to content

Commit 1bf8074

Browse files
authored
Merge pull request #100 from lostfields/feature/oauth2
feature/oauth2
2 parents a361040 + 20c963a commit 1bf8074

File tree

13 files changed

+823
-542
lines changed

13 files changed

+823
-542
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,7 @@ venv.bak/
103103
# mypy
104104
.mypy_cache/
105105

106-
.vscode
106+
.vscode
107+
.idea
108+
109+
token.json

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ positional arguments:
1717
set Set status of a device
1818
dump Dump raw data of a device
1919
history Dump history of a device
20-
20+
2121
optional arguments:
2222
-h, --help show this help message and exit
2323
-t TOKEN, --token TOKEN
@@ -99,16 +99,19 @@ optional arguments:
9999
```python
100100
import pcomfortcloud
101101

102+
102103
session = pcomfortcloud.Session('[email protected]', 'mypassword')
103104
session.login()
104105

105-
devices = session.get_devices()
106+
client = pcomfortcloud.ApiClient(session)
107+
108+
devices = client.get_devices()
106109

107110
print(devices)
108111

109-
print(session.get_device(devices[0]['id']))
112+
print(client.get_device(devices[0]['id']))
110113

111-
session.set_device(devices[0]['id'],
114+
client.set_device(devices[0]['id'],
112115
power = pcomfortcloud.constants.Power.On,
113116
temperature = 22.0)
114117
```

pcomfortcloud/__init__.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,30 @@
33
"""
44

55
__all__ = [
6+
'ApiClient',
67
'Error',
78
'LoginError',
8-
'ResponseError',
9-
'Session'
9+
'RequestError',
10+
'ResponseError'
1011
]
1112

13+
from .apiclient import (
14+
ApiClient
15+
)
16+
1217
from .session import (
18+
Session
19+
)
20+
21+
from .authentication import (
22+
Authentication
23+
)
24+
25+
from .exceptions import (
1326
Error,
1427
LoginError,
15-
ResponseError,
16-
Session
28+
RequestError,
29+
ResponseError
1730
)
1831

19-
from . import constants
32+
from . import constants

pcomfortcloud/__main__.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
11
import argparse
2+
import os
23
import json
34
import pcomfortcloud
45

56
from enum import Enum
67

7-
def print_result(obj, indent = 0):
8+
def print_result(obj, indent=0):
89
for key in obj:
910
value = obj[key]
1011

1112
if isinstance(value, dict):
1213
print(" "*indent + key)
1314
print_result(value, indent + 4)
1415
elif isinstance(value, Enum):
15-
print(" "*indent + "{0: <{width}}: {1}".format(key, value.name, width=25-indent))
16+
print(
17+
" "*indent + "{0: <{width}}: {1}".format(key, value.name, width=25-indent))
1618
elif isinstance(value, list):
1719
print(" "*indent + "{0: <{width}}:".format(key, width=25-indent))
1820
for elt in value:
1921
print_result(elt, indent + 4)
2022
print("")
2123
else:
22-
print(" "*indent + "{0: <{width}}: {1}".format(key, value, width=25-indent))
24+
print(" "*indent +
25+
"{0: <{width}}: {1}".format(key, value, width=25-indent))
2326

24-
def str2bool(v):
25-
if v.lower() in ('yes', 'true', 't', 'y', '1'):
27+
28+
def str2bool(boolean_string_value):
29+
if boolean_string_value.lower() in ('yes', 'true', 't', 'y', '1'):
2630
return True
27-
elif v.lower() in ('no', 'false', 'f', 'n', '0'):
31+
if boolean_string_value.lower() in ('no', 'false', 'f', 'n', '0'):
2832
return False
29-
else:
30-
raise argparse.ArgumentTypeError('Boolean value expected.')
33+
raise argparse.ArgumentTypeError('Boolean value expected.')
34+
3135

3236
def main():
3337
""" Start pcomfortcloud Comfort Cloud command line """
@@ -46,13 +50,7 @@ def main():
4650
parser.add_argument(
4751
'-t', '--token',
4852
help='File to store token in',
49-
default='~/.pcomfortcloud-token')
50-
51-
parser.add_argument(
52-
'-s', '--skipVerify',
53-
help='Skip Ssl verification if set as True',
54-
type=str2bool, nargs='?', const=True,
55-
default=False)
53+
default='$HOME/.pcomfortcloud-oauth-token')
5654

5755
parser.add_argument(
5856
'-r', '--raw',
@@ -198,13 +196,13 @@ def main():
198196

199197
args = parser.parse_args()
200198

201-
session = pcomfortcloud.Session(args.username, args.password, args.token, args.raw, args.skipVerify == False)
199+
session = pcomfortcloud.Session(args.username, args.password, args.token, args.raw)
202200
session.login()
203201
try:
204202
if args.command == 'list':
205203
print("list of devices and its device id (1-x)")
206204
for idx, device in enumerate(session.get_devices()):
207-
if(idx > 0):
205+
if idx > 0:
208206
print('')
209207

210208
print("device #{}".format(idx + 1))
@@ -271,9 +269,8 @@ def main():
271269
print_result(session.history(device['id'], args.mode, args.date))
272270

273271
except pcomfortcloud.ResponseError as ex:
274-
print(ex.text)
272+
print(ex)
275273

276274

277-
# pylint: disable=C0103
278275
if __name__ == "__main__":
279276
main()

0 commit comments

Comments
 (0)