Skip to content

Commit 76cdd5b

Browse files
committed
Update classes and fixes dict usage in API (in and out)
Fix #34
1 parent 9447c46 commit 76cdd5b

File tree

4 files changed

+1122
-1068
lines changed

4 files changed

+1122
-1068
lines changed

.flake8

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
[flake8]
22
exclude = build/*
3+
max-line-length = 100
4+
ignore = W503
35
per-file-ignores =
46
obswebsocket/requests.py: E501 W391 W293
57
obswebsocket/events.py: E501 W391 W293

generate_classes.py

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ def clean_var(string):
1313
Converts a string to a suitable variable name by removing not allowed
1414
characters.
1515
"""
16-
for ch in ['-', '.', '*']:
17-
string = string.replace(ch, '_')
18-
string = string.replace('[]', '')
16+
string = string.replace('-', '_').replace('[]', '')
1917
return string
2018

2119

@@ -33,10 +31,8 @@ def generate_classes():
3331
f.write("#!/usr/bin/env python\n")
3432
f.write("# -*- coding: utf-8 -*-\n")
3533
f.write("\n")
36-
f.write("# THIS FILE WAS GENERATED BY generate_classes.py - "
37-
"DO NOT EDIT #\n")
38-
f.write("# (Generated on {}) #\n".format(
39-
datetime.now().isoformat(" ")))
34+
f.write("# THIS FILE WAS GENERATED BY generate_classes.py - DO NOT EDIT #\n")
35+
f.write("# (Generated on {}) #\n".format(datetime.now().isoformat(" ")))
4036
f.write("\n")
4137
f.write("from .base_classes import Base{}\n".format(event))
4238
f.write("\n\n")
@@ -51,12 +47,10 @@ def generate_classes():
5147
if len(i['params']) > 0:
5248
f.write(" :Arguments:\n")
5349
for a in i['params']:
54-
f.write(" *{}*\n".format(
55-
clean_var(a['name'])))
56-
f.write(" type: {}\n".format(
57-
a['type']))
58-
f.write(" {}\n".format(
59-
a['description']))
50+
a['name'] = a['name'].replace("[]", ".*")
51+
f.write(" *{}*\n".format(clean_var(a['name'])))
52+
f.write(" type: {}\n".format(a['type']))
53+
f.write(" {}\n".format(a['description']))
6054
if 'optional' in a['type']:
6155
arguments_default.append(a['name'])
6256
else:
@@ -69,34 +63,35 @@ def generate_classes():
6963
if len(i['returns']) > 0:
7064
f.write(" :Returns:\n")
7165
for r in i['returns']:
72-
f.write(" *{}*\n".format(
73-
clean_var(r['name'])))
74-
f.write(" type: {}\n".format(
75-
r['type']))
76-
f.write(" {}\n".format(
77-
r['description']))
66+
r['name'] = r['name'].replace("[]", ".*")
67+
f.write(" *{}*\n".format(clean_var(r['name'])))
68+
f.write(" type: {}\n".format(r['type']))
69+
f.write(" {}\n".format(r['description']))
7870
returns.append(r['name'])
7971
except KeyError:
8072
pass
8173

74+
arguments = set([x.split(".")[0] for x in arguments])
75+
arguments_default = set([x.split(".")[0] for x in arguments_default])
76+
arguments_default = set([x for x in arguments_default if x not in arguments])
77+
returns = set([x.split(".")[0] for x in returns])
78+
8279
f.write(" \"\"\"\n\n")
8380
f.write(" def __init__({}):\n".format(
8481
", ".join(
85-
["self"] +
86-
[clean_var(a) for a in arguments] +
87-
[clean_var(a) + "=None" for a in arguments_default]
82+
["self"]
83+
+ [clean_var(a) for a in arguments]
84+
+ [clean_var(a) + "=None" for a in arguments_default]
8885
)
8986
))
9087
f.write(" Base{}.__init__(self)\n".format(event))
9188
f.write(" self.name = '{}'\n".format(i['name']))
9289
for r in returns:
9390
f.write(" self.datain['{}'] = None\n".format(r))
9491
for a in arguments:
95-
f.write(" self.dataout['{}'] = {}\n".format(
96-
a, clean_var(a)))
92+
f.write(" self.dataout['{}'] = {}\n".format(a, clean_var(a)))
9793
for a in arguments_default:
98-
f.write(" self.dataout['{}'] = {}\n".format(
99-
a, clean_var(a)))
94+
f.write(" self.dataout['{}'] = {}\n".format(a, clean_var(a)))
10095
f.write("\n")
10196
for r in returns:
10297
cc = "".join(x.capitalize() for x in r.split('-'))

0 commit comments

Comments
 (0)