@@ -137,23 +137,35 @@ def __init__(self, host, meta):
137
137
self ._ensure_json_supported ()
138
138
139
139
140
- def _ensure_json_supported (self ):
141
- """Checks the server version supports the JSON api , raises an
140
+ def _ensure_support (self , feature ):
141
+ """Checks the server version supports a given feature , raises an
142
142
exception if it does not.
143
143
144
- :raises ShotgunError: The current server version does not support json
144
+ :param feature: dict supported version and human label { 'version': (int, int, int), 'label': str }
145
+
146
+ :raises ShotgunError: The current server version does not [feature]
145
147
"""
146
- if not self .version or self .version < (2 , 4 , 0 ):
147
- raise ShotgunError ("JSON API requires server version 2.4 or " \
148
- "higher, server is %s" % (self .version ,))
148
+
149
+ if not self .version or self .version < feature ['version' ]:
150
+ raise ShotgunError (
151
+ "%s requires server version %s or higher, " \
152
+ "server is %s" % (feature ['label' ], _version_str (feature ['version' ]), _version_str (self .version ))
153
+ )
154
+
155
+
156
+ def _ensure_json_supported (self ):
157
+ """Wrapper for ensure_support"""
158
+ self ._ensure_support ({
159
+ 'version' : (2 , 4 , 0 ),
160
+ 'label' : 'JSON API'
161
+ })
149
162
150
163
def ensure_include_archived_projects (self ):
151
- """Checks the server version support include_archived_projects parameter
152
- to find.
153
- """
154
- if not self .version or self .version < (5 , 3 , 14 ):
155
- raise ShotgunError ("The include_archived_projects flag requires server version 5.3.14 or " \
156
- "higher, server is %s" % (self .version ,))
164
+ """Wrapper for ensure_support"""
165
+ self ._ensure_support ({
166
+ 'version' : (5 , 3 , 14 ),
167
+ 'label' : 'include_archived_projects parameter'
168
+ })
157
169
158
170
159
171
def __str__ (self ):
@@ -2208,4 +2220,6 @@ def _translate_filters_simple(sg_filter):
2208
2220
2209
2221
return condition
2210
2222
2211
-
2223
+ def _version_str (version ):
2224
+ """Converts a tuple of int's to a '.' separated str"""
2225
+ return '.' .join (map (str , version ))
0 commit comments