lockss-pyclient 0.1.0.dev2__py3-none-any.whl → 0.1.0.dev3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. lockss/pyclient/__init__.py +8 -29
  2. lockss/pyclient/__main__.py +37 -0
  3. lockss/pyclient/_internal_common.py +395 -0
  4. lockss/pyclient/_internal_config.py +207 -0
  5. lockss/pyclient/_internal_crawler.py +251 -0
  6. lockss/pyclient/_internal_md.py +111 -0
  7. lockss/pyclient/_internal_poller.py +174 -0
  8. lockss/pyclient/_internal_rs.py +232 -0
  9. lockss/pyclient/cli.py +839 -0
  10. lockss/pyclient/config/__init__.py +15 -0
  11. lockss/pyclient/config/api/aus_api.py +14 -6
  12. lockss/pyclient/config/api/config_api.py +12 -12
  13. lockss/pyclient/config/api/utils_api.py +2 -2
  14. lockss/pyclient/config/configuration.py +1 -1
  15. lockss/pyclient/config/models/__init__.py +15 -0
  16. lockss/pyclient/config/models/access_type.py +90 -0
  17. lockss/pyclient/config/models/au_agreements.py +136 -0
  18. lockss/pyclient/config/models/au_config_page_info.py +140 -0
  19. lockss/pyclient/config/models/au_state_bean.py +942 -0
  20. lockss/pyclient/config/models/au_status.py +837 -8
  21. lockss/pyclient/config/models/au_suspect_url_versions.py +136 -0
  22. lockss/pyclient/config/models/check_substance_result.py +6 -22
  23. lockss/pyclient/config/models/dated_peer_id_set_impl.py +162 -0
  24. lockss/pyclient/config/models/hash_result.py +136 -0
  25. lockss/pyclient/config/models/page_info.py +226 -0
  26. lockss/pyclient/config/models/peer_agreement.py +188 -0
  27. lockss/pyclient/config/models/peer_agreements.py +136 -0
  28. lockss/pyclient/config/models/platform_configuration_ws_result.py +421 -8
  29. lockss/pyclient/config/models/platform_configuration_ws_result_daemon_version.py +188 -0
  30. lockss/pyclient/config/models/platform_configuration_ws_result_java_version.py +188 -0
  31. lockss/pyclient/config/models/platform_configuration_ws_result_platform.py +162 -0
  32. lockss/pyclient/config/models/substance_checker_state.py +91 -0
  33. lockss/pyclient/config/models/suspect_url_version.py +214 -0
  34. lockss/pyclient/config/swagger.yaml +2031 -0
  35. lockss/pyclient/crawler/__init__.py +1 -0
  36. lockss/pyclient/crawler/api/crawls_api.py +2 -2
  37. lockss/pyclient/crawler/configuration.py +1 -1
  38. lockss/pyclient/crawler/models/__init__.py +1 -0
  39. lockss/pyclient/crawler/models/crawl_desc.py +4 -12
  40. lockss/pyclient/crawler/models/crawl_kind_enum.py +90 -0
  41. lockss/pyclient/crawler/models/page_info.py +22 -24
  42. lockss/pyclient/crawler/swagger.yaml +1197 -0
  43. lockss/pyclient/md/configuration.py +1 -1
  44. lockss/pyclient/md/models/page_info.py +22 -24
  45. lockss/pyclient/md/swagger.yaml +583 -0
  46. lockss/pyclient/output.py +131 -0
  47. lockss/pyclient/poller/__init__.py +11 -5
  48. lockss/pyclient/poller/api/export_api.py +5 -5
  49. lockss/pyclient/poller/api/hash_api.py +3 -3
  50. lockss/pyclient/poller/api/poll_detail_api.py +42 -42
  51. lockss/pyclient/poller/api/poller_polls_api.py +18 -18
  52. lockss/pyclient/poller/api/service_api.py +2 -2
  53. lockss/pyclient/poller/api/voter_polls_api.py +18 -18
  54. lockss/pyclient/poller/configuration.py +1 -1
  55. lockss/pyclient/poller/models/__init__.py +11 -5
  56. lockss/pyclient/poller/models/export_file_type_enum.py +93 -0
  57. lockss/pyclient/poller/models/export_filename_translation_enum.py +91 -0
  58. lockss/pyclient/poller/models/page_info.py +226 -0
  59. lockss/pyclient/poller/models/poll_desc.py +3 -11
  60. lockss/pyclient/poller/models/poll_variant_enum.py +92 -0
  61. lockss/pyclient/poller/models/poller_page_info.py +140 -0
  62. lockss/pyclient/poller/models/repair_page_info.py +140 -0
  63. lockss/pyclient/poller/models/repair_type_enum.py +91 -0
  64. lockss/pyclient/poller/models/tally_type_enum.py +93 -0
  65. lockss/pyclient/poller/models/url_page_info.py +140 -0
  66. lockss/pyclient/poller/models/voter_page_info.py +140 -0
  67. lockss/pyclient/poller/models/voter_urls_enum.py +92 -0
  68. lockss/pyclient/poller/swagger.yaml +1658 -0
  69. lockss/pyclient/rs/__init__.py +6 -0
  70. lockss/pyclient/rs/api/artifacts_api.py +20 -20
  71. lockss/pyclient/rs/api/aus_api.py +5 -5
  72. lockss/pyclient/rs/api/repo_api.py +4 -4
  73. lockss/pyclient/rs/api/status_api.py +1 -1
  74. lockss/pyclient/rs/api/wayback_api.py +12 -12
  75. lockss/pyclient/rs/configuration.py +8 -1
  76. lockss/pyclient/rs/models/__init__.py +6 -0
  77. lockss/pyclient/rs/models/artifact.py +111 -81
  78. lockss/pyclient/rs/models/au_size.py +6 -0
  79. lockss/pyclient/rs/models/auid_page_info.py +2 -2
  80. lockss/pyclient/rs/models/bulk_au_op_enum.py +90 -0
  81. lockss/pyclient/rs/models/include_content_enum.py +91 -0
  82. lockss/pyclient/rs/models/page_info.py +26 -29
  83. lockss/pyclient/rs/models/pywb_match_enum.py +93 -0
  84. lockss/pyclient/rs/models/pywb_output_enum.py +90 -0
  85. lockss/pyclient/rs/models/pywb_sort_enum.py +91 -0
  86. lockss/pyclient/rs/models/storage_info.py +131 -80
  87. lockss/pyclient/rs/models/versions_enum.py +90 -0
  88. lockss/pyclient/rs/swagger.yaml +1306 -0
  89. {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info}/METADATA +10 -3
  90. {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info}/RECORD +93 -45
  91. {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info}/WHEEL +1 -1
  92. lockss_pyclient-0.1.0.dev3.dist-info/entry_points.txt +3 -0
  93. {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,226 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LOCKSS Configuration Service REST API
5
+
6
+ REST API of the LOCKSS Configuration Service # noqa: E501
7
+
8
+ OpenAPI spec version: 2.0.0
9
+ Contact: lockss-support@lockss.org
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ class PageInfo(object):
19
+ """NOTE: This class is auto generated by the swagger code generator program.
20
+
21
+ Do not edit the class manually.
22
+ """
23
+ """
24
+ Attributes:
25
+ swagger_types (dict): The key is attribute name
26
+ and the value is attribute type.
27
+ attribute_map (dict): The key is attribute name
28
+ and the value is json key in definition.
29
+ """
30
+ swagger_types = {
31
+ 'total_count': 'int',
32
+ 'items_in_page': 'int',
33
+ 'continuation_token': 'str',
34
+ 'cur_link': 'str',
35
+ 'next_link': 'str'
36
+ }
37
+
38
+ attribute_map = {
39
+ 'total_count': 'totalCount',
40
+ 'items_in_page': 'itemsInPage',
41
+ 'continuation_token': 'continuationToken',
42
+ 'cur_link': 'curLink',
43
+ 'next_link': 'nextLink'
44
+ }
45
+
46
+ def __init__(self, total_count=None, items_in_page=None, continuation_token=None, cur_link=None, next_link=None): # noqa: E501
47
+ """PageInfo - a model defined in Swagger""" # noqa: E501
48
+ self._total_count = None
49
+ self._items_in_page = None
50
+ self._continuation_token = None
51
+ self._cur_link = None
52
+ self._next_link = None
53
+ self.discriminator = None
54
+ if total_count is not None:
55
+ self.total_count = total_count
56
+ self.items_in_page = items_in_page
57
+ if continuation_token is not None:
58
+ self.continuation_token = continuation_token
59
+ self.cur_link = cur_link
60
+ if next_link is not None:
61
+ self.next_link = next_link
62
+
63
+ @property
64
+ def total_count(self):
65
+ """Gets the total_count of this PageInfo. # noqa: E501
66
+
67
+ The total number of items # noqa: E501
68
+
69
+ :return: The total_count of this PageInfo. # noqa: E501
70
+ :rtype: int
71
+ """
72
+ return self._total_count
73
+
74
+ @total_count.setter
75
+ def total_count(self, total_count):
76
+ """Sets the total_count of this PageInfo.
77
+
78
+ The total number of items # noqa: E501
79
+
80
+ :param total_count: The total_count of this PageInfo. # noqa: E501
81
+ :type: int
82
+ """
83
+
84
+ self._total_count = total_count
85
+
86
+ @property
87
+ def items_in_page(self):
88
+ """Gets the items_in_page of this PageInfo. # noqa: E501
89
+
90
+ The number of items in the page # noqa: E501
91
+
92
+ :return: The items_in_page of this PageInfo. # noqa: E501
93
+ :rtype: int
94
+ """
95
+ return self._items_in_page
96
+
97
+ @items_in_page.setter
98
+ def items_in_page(self, items_in_page):
99
+ """Sets the items_in_page of this PageInfo.
100
+
101
+ The number of items in the page # noqa: E501
102
+
103
+ :param items_in_page: The items_in_page of this PageInfo. # noqa: E501
104
+ :type: int
105
+ """
106
+ if items_in_page is None:
107
+ raise ValueError("Invalid value for `items_in_page`, must not be `None`") # noqa: E501
108
+
109
+ self._items_in_page = items_in_page
110
+
111
+ @property
112
+ def continuation_token(self):
113
+ """Gets the continuation_token of this PageInfo. # noqa: E501
114
+
115
+ The continuation token # noqa: E501
116
+
117
+ :return: The continuation_token of this PageInfo. # noqa: E501
118
+ :rtype: str
119
+ """
120
+ return self._continuation_token
121
+
122
+ @continuation_token.setter
123
+ def continuation_token(self, continuation_token):
124
+ """Sets the continuation_token of this PageInfo.
125
+
126
+ The continuation token # noqa: E501
127
+
128
+ :param continuation_token: The continuation_token of this PageInfo. # noqa: E501
129
+ :type: str
130
+ """
131
+
132
+ self._continuation_token = continuation_token
133
+
134
+ @property
135
+ def cur_link(self):
136
+ """Gets the cur_link of this PageInfo. # noqa: E501
137
+
138
+ The link of the current request # noqa: E501
139
+
140
+ :return: The cur_link of this PageInfo. # noqa: E501
141
+ :rtype: str
142
+ """
143
+ return self._cur_link
144
+
145
+ @cur_link.setter
146
+ def cur_link(self, cur_link):
147
+ """Sets the cur_link of this PageInfo.
148
+
149
+ The link of the current request # noqa: E501
150
+
151
+ :param cur_link: The cur_link of this PageInfo. # noqa: E501
152
+ :type: str
153
+ """
154
+ if cur_link is None:
155
+ raise ValueError("Invalid value for `cur_link`, must not be `None`") # noqa: E501
156
+
157
+ self._cur_link = cur_link
158
+
159
+ @property
160
+ def next_link(self):
161
+ """Gets the next_link of this PageInfo. # noqa: E501
162
+
163
+ The link of the next request # noqa: E501
164
+
165
+ :return: The next_link of this PageInfo. # noqa: E501
166
+ :rtype: str
167
+ """
168
+ return self._next_link
169
+
170
+ @next_link.setter
171
+ def next_link(self, next_link):
172
+ """Sets the next_link of this PageInfo.
173
+
174
+ The link of the next request # noqa: E501
175
+
176
+ :param next_link: The next_link of this PageInfo. # noqa: E501
177
+ :type: str
178
+ """
179
+
180
+ self._next_link = next_link
181
+
182
+ def to_dict(self):
183
+ """Returns the model properties as a dict"""
184
+ result = {}
185
+
186
+ for attr, _ in six.iteritems(self.swagger_types):
187
+ value = getattr(self, attr)
188
+ if isinstance(value, list):
189
+ result[attr] = list(map(
190
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
191
+ value
192
+ ))
193
+ elif hasattr(value, "to_dict"):
194
+ result[attr] = value.to_dict()
195
+ elif isinstance(value, dict):
196
+ result[attr] = dict(map(
197
+ lambda item: (item[0], item[1].to_dict())
198
+ if hasattr(item[1], "to_dict") else item,
199
+ value.items()
200
+ ))
201
+ else:
202
+ result[attr] = value
203
+ if issubclass(PageInfo, dict):
204
+ for key, value in self.items():
205
+ result[key] = value
206
+
207
+ return result
208
+
209
+ def to_str(self):
210
+ """Returns the string representation of the model"""
211
+ return pprint.pformat(self.to_dict())
212
+
213
+ def __repr__(self):
214
+ """For `print` and `pprint`"""
215
+ return self.to_str()
216
+
217
+ def __eq__(self, other):
218
+ """Returns true if both objects are equal"""
219
+ if not isinstance(other, PageInfo):
220
+ return False
221
+
222
+ return self.__dict__ == other.__dict__
223
+
224
+ def __ne__(self, other):
225
+ """Returns true if both objects are not equal"""
226
+ return not self == other
@@ -0,0 +1,188 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LOCKSS Configuration Service REST API
5
+
6
+ REST API of the LOCKSS Configuration Service # noqa: E501
7
+
8
+ OpenAPI spec version: 2.0.0
9
+ Contact: lockss-support@lockss.org
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ class PeerAgreement(object):
19
+ """NOTE: This class is auto generated by the swagger code generator program.
20
+
21
+ Do not edit the class manually.
22
+ """
23
+ """
24
+ Attributes:
25
+ swagger_types (dict): The key is attribute name
26
+ and the value is attribute type.
27
+ attribute_map (dict): The key is attribute name
28
+ and the value is json key in definition.
29
+ """
30
+ swagger_types = {
31
+ 'percent_agreement': 'float',
32
+ 'percent_agreement_time': 'int',
33
+ 'highest_percent_agreement': 'float',
34
+ 'highest_percent_agreement_time': 'int'
35
+ }
36
+
37
+ attribute_map = {
38
+ 'percent_agreement': 'percentAgreement',
39
+ 'percent_agreement_time': 'percentAgreementTime',
40
+ 'highest_percent_agreement': 'highestPercentAgreement',
41
+ 'highest_percent_agreement_time': 'highestPercentAgreementTime'
42
+ }
43
+
44
+ def __init__(self, percent_agreement=None, percent_agreement_time=None, highest_percent_agreement=None, highest_percent_agreement_time=None): # noqa: E501
45
+ """PeerAgreement - a model defined in Swagger""" # noqa: E501
46
+ self._percent_agreement = None
47
+ self._percent_agreement_time = None
48
+ self._highest_percent_agreement = None
49
+ self._highest_percent_agreement_time = None
50
+ self.discriminator = None
51
+ if percent_agreement is not None:
52
+ self.percent_agreement = percent_agreement
53
+ if percent_agreement_time is not None:
54
+ self.percent_agreement_time = percent_agreement_time
55
+ if highest_percent_agreement is not None:
56
+ self.highest_percent_agreement = highest_percent_agreement
57
+ if highest_percent_agreement_time is not None:
58
+ self.highest_percent_agreement_time = highest_percent_agreement_time
59
+
60
+ @property
61
+ def percent_agreement(self):
62
+ """Gets the percent_agreement of this PeerAgreement. # noqa: E501
63
+
64
+
65
+ :return: The percent_agreement of this PeerAgreement. # noqa: E501
66
+ :rtype: float
67
+ """
68
+ return self._percent_agreement
69
+
70
+ @percent_agreement.setter
71
+ def percent_agreement(self, percent_agreement):
72
+ """Sets the percent_agreement of this PeerAgreement.
73
+
74
+
75
+ :param percent_agreement: The percent_agreement of this PeerAgreement. # noqa: E501
76
+ :type: float
77
+ """
78
+
79
+ self._percent_agreement = percent_agreement
80
+
81
+ @property
82
+ def percent_agreement_time(self):
83
+ """Gets the percent_agreement_time of this PeerAgreement. # noqa: E501
84
+
85
+
86
+ :return: The percent_agreement_time of this PeerAgreement. # noqa: E501
87
+ :rtype: int
88
+ """
89
+ return self._percent_agreement_time
90
+
91
+ @percent_agreement_time.setter
92
+ def percent_agreement_time(self, percent_agreement_time):
93
+ """Sets the percent_agreement_time of this PeerAgreement.
94
+
95
+
96
+ :param percent_agreement_time: The percent_agreement_time of this PeerAgreement. # noqa: E501
97
+ :type: int
98
+ """
99
+
100
+ self._percent_agreement_time = percent_agreement_time
101
+
102
+ @property
103
+ def highest_percent_agreement(self):
104
+ """Gets the highest_percent_agreement of this PeerAgreement. # noqa: E501
105
+
106
+
107
+ :return: The highest_percent_agreement of this PeerAgreement. # noqa: E501
108
+ :rtype: float
109
+ """
110
+ return self._highest_percent_agreement
111
+
112
+ @highest_percent_agreement.setter
113
+ def highest_percent_agreement(self, highest_percent_agreement):
114
+ """Sets the highest_percent_agreement of this PeerAgreement.
115
+
116
+
117
+ :param highest_percent_agreement: The highest_percent_agreement of this PeerAgreement. # noqa: E501
118
+ :type: float
119
+ """
120
+
121
+ self._highest_percent_agreement = highest_percent_agreement
122
+
123
+ @property
124
+ def highest_percent_agreement_time(self):
125
+ """Gets the highest_percent_agreement_time of this PeerAgreement. # noqa: E501
126
+
127
+
128
+ :return: The highest_percent_agreement_time of this PeerAgreement. # noqa: E501
129
+ :rtype: int
130
+ """
131
+ return self._highest_percent_agreement_time
132
+
133
+ @highest_percent_agreement_time.setter
134
+ def highest_percent_agreement_time(self, highest_percent_agreement_time):
135
+ """Sets the highest_percent_agreement_time of this PeerAgreement.
136
+
137
+
138
+ :param highest_percent_agreement_time: The highest_percent_agreement_time of this PeerAgreement. # noqa: E501
139
+ :type: int
140
+ """
141
+
142
+ self._highest_percent_agreement_time = highest_percent_agreement_time
143
+
144
+ def to_dict(self):
145
+ """Returns the model properties as a dict"""
146
+ result = {}
147
+
148
+ for attr, _ in six.iteritems(self.swagger_types):
149
+ value = getattr(self, attr)
150
+ if isinstance(value, list):
151
+ result[attr] = list(map(
152
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
153
+ value
154
+ ))
155
+ elif hasattr(value, "to_dict"):
156
+ result[attr] = value.to_dict()
157
+ elif isinstance(value, dict):
158
+ result[attr] = dict(map(
159
+ lambda item: (item[0], item[1].to_dict())
160
+ if hasattr(item[1], "to_dict") else item,
161
+ value.items()
162
+ ))
163
+ else:
164
+ result[attr] = value
165
+ if issubclass(PeerAgreement, dict):
166
+ for key, value in self.items():
167
+ result[key] = value
168
+
169
+ return result
170
+
171
+ def to_str(self):
172
+ """Returns the string representation of the model"""
173
+ return pprint.pformat(self.to_dict())
174
+
175
+ def __repr__(self):
176
+ """For `print` and `pprint`"""
177
+ return self.to_str()
178
+
179
+ def __eq__(self, other):
180
+ """Returns true if both objects are equal"""
181
+ if not isinstance(other, PeerAgreement):
182
+ return False
183
+
184
+ return self.__dict__ == other.__dict__
185
+
186
+ def __ne__(self, other):
187
+ """Returns true if both objects are not equal"""
188
+ return not self == other
@@ -0,0 +1,136 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LOCKSS Configuration Service REST API
5
+
6
+ REST API of the LOCKSS Configuration Service # noqa: E501
7
+
8
+ OpenAPI spec version: 2.0.0
9
+ Contact: lockss-support@lockss.org
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ class PeerAgreements(object):
19
+ """NOTE: This class is auto generated by the swagger code generator program.
20
+
21
+ Do not edit the class manually.
22
+ """
23
+ """
24
+ Attributes:
25
+ swagger_types (dict): The key is attribute name
26
+ and the value is attribute type.
27
+ attribute_map (dict): The key is attribute name
28
+ and the value is json key in definition.
29
+ """
30
+ swagger_types = {
31
+ 'id': 'str',
32
+ 'map': 'dict(str, PeerAgreement)'
33
+ }
34
+
35
+ attribute_map = {
36
+ 'id': 'id',
37
+ 'map': 'map'
38
+ }
39
+
40
+ def __init__(self, id=None, map=None): # noqa: E501
41
+ """PeerAgreements - a model defined in Swagger""" # noqa: E501
42
+ self._id = None
43
+ self._map = None
44
+ self.discriminator = None
45
+ if id is not None:
46
+ self.id = id
47
+ if map is not None:
48
+ self.map = map
49
+
50
+ @property
51
+ def id(self):
52
+ """Gets the id of this PeerAgreements. # noqa: E501
53
+
54
+
55
+ :return: The id of this PeerAgreements. # noqa: E501
56
+ :rtype: str
57
+ """
58
+ return self._id
59
+
60
+ @id.setter
61
+ def id(self, id):
62
+ """Sets the id of this PeerAgreements.
63
+
64
+
65
+ :param id: The id of this PeerAgreements. # noqa: E501
66
+ :type: str
67
+ """
68
+
69
+ self._id = id
70
+
71
+ @property
72
+ def map(self):
73
+ """Gets the map of this PeerAgreements. # noqa: E501
74
+
75
+
76
+ :return: The map of this PeerAgreements. # noqa: E501
77
+ :rtype: dict(str, PeerAgreement)
78
+ """
79
+ return self._map
80
+
81
+ @map.setter
82
+ def map(self, map):
83
+ """Sets the map of this PeerAgreements.
84
+
85
+
86
+ :param map: The map of this PeerAgreements. # noqa: E501
87
+ :type: dict(str, PeerAgreement)
88
+ """
89
+
90
+ self._map = map
91
+
92
+ def to_dict(self):
93
+ """Returns the model properties as a dict"""
94
+ result = {}
95
+
96
+ for attr, _ in six.iteritems(self.swagger_types):
97
+ value = getattr(self, attr)
98
+ if isinstance(value, list):
99
+ result[attr] = list(map(
100
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
101
+ value
102
+ ))
103
+ elif hasattr(value, "to_dict"):
104
+ result[attr] = value.to_dict()
105
+ elif isinstance(value, dict):
106
+ result[attr] = dict(map(
107
+ lambda item: (item[0], item[1].to_dict())
108
+ if hasattr(item[1], "to_dict") else item,
109
+ value.items()
110
+ ))
111
+ else:
112
+ result[attr] = value
113
+ if issubclass(PeerAgreements, dict):
114
+ for key, value in self.items():
115
+ result[key] = value
116
+
117
+ return result
118
+
119
+ def to_str(self):
120
+ """Returns the string representation of the model"""
121
+ return pprint.pformat(self.to_dict())
122
+
123
+ def __repr__(self):
124
+ """For `print` and `pprint`"""
125
+ return self.to_str()
126
+
127
+ def __eq__(self, other):
128
+ """Returns true if both objects are equal"""
129
+ if not isinstance(other, PeerAgreements):
130
+ return False
131
+
132
+ return self.__dict__ == other.__dict__
133
+
134
+ def __ne__(self, other):
135
+ """Returns true if both objects are not equal"""
136
+ return not self == other