This repository was archived by the owner on Mar 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdocmodels.py
58 lines (50 loc) · 1.72 KB
/
docmodels.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
46
47
48
49
50
51
52
53
54
55
56
57
58
class Documentation:
def __init__(self, base_url, chapters = []):
self.base_url = base_url
self.chapters = chapters
class Chapter:
def __init__(self, title, description=""):
self.title = title
self.description = description
self.endpoints = []
def add_endpoint(self, title, url, description = ""):
new = Endpoint(title, url, description)
self.endpoints.append(new)
return new
class Endpoint:
def __init__(self, title, url, description = ""):
self.title = title
self.url = url
self.description = description
self.path_arguments = [] # variables integrated into the URL itself
self.get_arguments = [] # variables added as get parameters
self.examples = []
def add_argument(self, category, name, description, required=False):
new = Argument(name, description, required)
if category == "path":
self.path_arguments.append(new)
elif category == "get":
self.get_arguments.append(new)
else:
raise Exception(f"Unrecognized argument type {category}")
return new
def add_example(self, title, description, url, response=""):
new = Example(title, description, url, response)
self.examples.append(new)
return new
class Argument:
def __init__(self, name, description, default=None, required=False):
self.name = name
self.description = description
self.default = default
self.required = required
self.acceptable = []
def add_values(self, potential):
"Adds information about acceptable values for an argument"
self.acceptable = potential
class Example:
def __init__(self, title, description, url, response=""):
self.title = title
self.url = url
self.description = description
self.response = response