flywheel-sdk 20.4.0rc1__py2.py3-none-any.whl → 20.5.0__py2.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 (35) hide show
  1. flywheel/__init__.py +2 -0
  2. flywheel/api/acquisitions_api.py +116 -0
  3. flywheel/api/sessions_api.py +3 -3
  4. flywheel/api/subjects_api.py +116 -0
  5. flywheel/api_client.py +1 -1
  6. flywheel/configuration.py +2 -2
  7. flywheel/drone_login.py +2 -1
  8. flywheel/finder.py +11 -12
  9. flywheel/flywheel.py +28 -2
  10. flywheel/gear_context.py +6 -17
  11. flywheel/models/__init__.py +3 -1
  12. flywheel/models/acquisition_container_output.py +1 -0
  13. flywheel/models/acquisition_copy_input.py +221 -0
  14. flywheel/models/acquisition_list_output.py +32 -4
  15. flywheel/models/acquisition_node.py +1 -0
  16. flywheel/models/acquisition_output.py +32 -4
  17. flywheel/models/acquisition_upsert_input.py +31 -4
  18. flywheel/models/cvat_info.py +31 -4
  19. flywheel/models/features.py +28 -28
  20. flywheel/models/gear_invocation.py +1 -0
  21. flywheel/models/gear_mixin.py +4 -16
  22. flywheel/models/mixins.py +25 -76
  23. flywheel/models/search_parent_acquisition.py +1 -0
  24. flywheel/models/session_upsert_input.py +31 -4
  25. flywheel/models/subject.py +8 -0
  26. flywheel/models/subject_copy_input.py +221 -0
  27. flywheel/models/subject_upsert_input.py +31 -4
  28. flywheel/models/work_in_progress_features.py +30 -1
  29. flywheel/util.py +6 -8
  30. flywheel/view_builder.py +14 -40
  31. {flywheel_sdk-20.4.0rc1.dist-info → flywheel_sdk-20.5.0.dist-info}/METADATA +1 -1
  32. {flywheel_sdk-20.4.0rc1.dist-info → flywheel_sdk-20.5.0.dist-info}/RECORD +35 -33
  33. {flywheel_sdk-20.4.0rc1.dist-info → flywheel_sdk-20.5.0.dist-info}/WHEEL +0 -0
  34. {flywheel_sdk-20.4.0rc1.dist-info → flywheel_sdk-20.5.0.dist-info}/licenses/LICENSE.txt +0 -0
  35. {flywheel_sdk-20.4.0rc1.dist-info → flywheel_sdk-20.5.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,221 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Flywheel
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: 0.0.1
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+
14
+ ## NOTE: This file is auto generated by the swagger code generator program.
15
+ ## Do not edit the file manually.
16
+
17
+ import pprint
18
+ import re # noqa: F401
19
+ import six
20
+
21
+ from flywheel.models.copy_filter import CopyFilter # noqa: F401,E501
22
+
23
+ class AcquisitionCopyInput(object):
24
+
25
+ swagger_types = {
26
+ 'label': 'str',
27
+ 'dst_session_id': 'str',
28
+ 'filter': 'CopyFilter'
29
+ }
30
+
31
+ attribute_map = {
32
+ 'label': 'label',
33
+ 'dst_session_id': 'dst_session_id',
34
+ 'filter': 'filter'
35
+ }
36
+
37
+ rattribute_map = {
38
+ 'label': 'label',
39
+ 'dst_session_id': 'dst_session_id',
40
+ 'filter': 'filter'
41
+ }
42
+
43
+ def __init__(self, label=None, dst_session_id=None, filter=None): # noqa: E501
44
+ """AcquisitionCopyInput - a model defined in Swagger"""
45
+ super(AcquisitionCopyInput, self).__init__()
46
+
47
+ self._label = None
48
+ self._dst_session_id = None
49
+ self._filter = None
50
+ self.discriminator = None
51
+ self.alt_discriminator = None
52
+
53
+ if label is not None:
54
+ self.label = label
55
+ self.dst_session_id = dst_session_id
56
+ self.filter = filter
57
+
58
+ @property
59
+ def label(self):
60
+ """Gets the label of this AcquisitionCopyInput.
61
+
62
+ Label to apply to the copied acquisition
63
+
64
+ :return: The label of this AcquisitionCopyInput.
65
+ :rtype: str
66
+ """
67
+ return self._label
68
+
69
+ @label.setter
70
+ def label(self, label):
71
+ """Sets the label of this AcquisitionCopyInput.
72
+
73
+ Label to apply to the copied acquisition
74
+
75
+ :param label: The label of this AcquisitionCopyInput. # noqa: E501
76
+ :type: str
77
+ """
78
+
79
+ self._label = label
80
+
81
+ @property
82
+ def dst_session_id(self):
83
+ """Gets the dst_session_id of this AcquisitionCopyInput.
84
+
85
+ Session to copy to
86
+
87
+ :return: The dst_session_id of this AcquisitionCopyInput.
88
+ :rtype: str
89
+ """
90
+ return self._dst_session_id
91
+
92
+ @dst_session_id.setter
93
+ def dst_session_id(self, dst_session_id):
94
+ """Sets the dst_session_id of this AcquisitionCopyInput.
95
+
96
+ Session to copy to
97
+
98
+ :param dst_session_id: The dst_session_id of this AcquisitionCopyInput. # noqa: E501
99
+ :type: str
100
+ """
101
+
102
+ self._dst_session_id = dst_session_id
103
+
104
+ @property
105
+ def filter(self):
106
+ """Gets the filter of this AcquisitionCopyInput.
107
+
108
+
109
+ :return: The filter of this AcquisitionCopyInput.
110
+ :rtype: CopyFilter
111
+ """
112
+ return self._filter
113
+
114
+ @filter.setter
115
+ def filter(self, filter):
116
+ """Sets the filter of this AcquisitionCopyInput.
117
+
118
+
119
+ :param filter: The filter of this AcquisitionCopyInput. # noqa: E501
120
+ :type: CopyFilter
121
+ """
122
+
123
+ self._filter = filter
124
+
125
+
126
+ @staticmethod
127
+ def positional_to_model(value):
128
+ """Converts a positional argument to a model value"""
129
+ return value
130
+
131
+ def return_value(self):
132
+ """Unwraps return value from model"""
133
+ return self
134
+
135
+ def to_dict(self):
136
+ """Returns the model properties as a dict"""
137
+ result = {}
138
+
139
+ for attr, _ in six.iteritems(self.swagger_types):
140
+ value = getattr(self, attr)
141
+ if isinstance(value, list):
142
+ result[attr] = list(map(
143
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
144
+ value
145
+ ))
146
+ elif hasattr(value, "to_dict"):
147
+ result[attr] = value.to_dict()
148
+ elif isinstance(value, dict):
149
+ result[attr] = dict(map(
150
+ lambda item: (item[0], item[1].to_dict())
151
+ if hasattr(item[1], "to_dict") else item,
152
+ value.items()
153
+ ))
154
+ else:
155
+ result[attr] = value
156
+
157
+ return result
158
+
159
+ def to_str(self):
160
+ """Returns the string representation of the model"""
161
+ return pprint.pformat(self.to_dict())
162
+
163
+ def __repr__(self):
164
+ """For `print` and `pprint`"""
165
+ return self.to_str()
166
+
167
+ def __eq__(self, other):
168
+ """Returns true if both objects are equal"""
169
+ if not isinstance(other, AcquisitionCopyInput):
170
+ return False
171
+
172
+ return self.__dict__ == other.__dict__
173
+
174
+ def __ne__(self, other):
175
+ """Returns true if both objects are not equal"""
176
+ return not self == other
177
+
178
+ # Container emulation
179
+ def __getitem__(self, key):
180
+ """Returns the value of key"""
181
+ key = self._map_key(key)
182
+ return getattr(self, key)
183
+
184
+ def __setitem__(self, key, value):
185
+ """Sets the value of key"""
186
+ key = self._map_key(key)
187
+ setattr(self, key, value)
188
+
189
+ def __contains__(self, key):
190
+ """Checks if the given value is a key in this object"""
191
+ key = self._map_key(key, raise_on_error=False)
192
+ return key is not None
193
+
194
+ def keys(self):
195
+ """Returns the list of json properties in the object"""
196
+ return self.__class__.rattribute_map.keys()
197
+
198
+ def values(self):
199
+ """Returns the list of values in the object"""
200
+ for key in self.__class__.attribute_map.keys():
201
+ yield getattr(self, key)
202
+
203
+ def items(self):
204
+ """Returns the list of json property to value mapping"""
205
+ for key, prop in self.__class__.rattribute_map.items():
206
+ yield key, getattr(self, prop)
207
+
208
+ def get(self, key, default=None):
209
+ """Get the value of the provided json property, or default"""
210
+ key = self._map_key(key, raise_on_error=False)
211
+ if key:
212
+ return getattr(self, key, default)
213
+ return default
214
+
215
+ def _map_key(self, key, raise_on_error=True):
216
+ result = self.__class__.rattribute_map.get(key)
217
+ if result is None:
218
+ if raise_on_error:
219
+ raise AttributeError('Invalid attribute name: {}'.format(key))
220
+ return None
221
+ return '_' + result
@@ -19,6 +19,7 @@ import re # noqa: F401
19
19
  import six
20
20
 
21
21
  from flywheel.models.acquisition_parents import AcquisitionParents # noqa: F401,E501
22
+ from flywheel.models.copy_status import CopyStatus # noqa: F401,E501
22
23
  from flywheel.models.file_list_output import FileListOutput # noqa: F401,E501
23
24
  from flywheel.models.join_origins import JoinOrigins # noqa: F401,E501
24
25
  from flywheel.models.note import Note # noqa: F401,E501
@@ -49,7 +50,8 @@ class AcquisitionListOutput(AcquisitionMixin):
49
50
  'join_origin': 'JoinOrigins',
50
51
  'files': 'list[FileListOutput]',
51
52
  'copy_of': 'str',
52
- 'original_copy_of': 'str'
53
+ 'original_copy_of': 'str',
54
+ 'copy_status': 'CopyStatus'
53
55
  }
54
56
 
55
57
  attribute_map = {
@@ -74,7 +76,8 @@ class AcquisitionListOutput(AcquisitionMixin):
74
76
  'join_origin': 'join-origin',
75
77
  'files': 'files',
76
78
  'copy_of': 'copy_of',
77
- 'original_copy_of': 'original_copy_of'
79
+ 'original_copy_of': 'original_copy_of',
80
+ 'copy_status': 'copy_status'
78
81
  }
79
82
 
80
83
  rattribute_map = {
@@ -99,10 +102,11 @@ class AcquisitionListOutput(AcquisitionMixin):
99
102
  'join-origin': 'join_origin',
100
103
  'files': 'files',
101
104
  'copy_of': 'copy_of',
102
- 'original_copy_of': 'original_copy_of'
105
+ 'original_copy_of': 'original_copy_of',
106
+ 'copy_status': 'copy_status'
103
107
  }
104
108
 
105
- def __init__(self, id=None, parents=None, label=None, session=None, info=None, info_exists=False, metadata=None, uid=None, timestamp=None, timezone=None, created=None, tags=None, modified=None, revision=1, permissions=None, notes=None, analyses=None, collections=None, join_origin=None, files=None, copy_of=None, original_copy_of=None): # noqa: E501
109
+ def __init__(self, id=None, parents=None, label=None, session=None, info=None, info_exists=False, metadata=None, uid=None, timestamp=None, timezone=None, created=None, tags=None, modified=None, revision=1, permissions=None, notes=None, analyses=None, collections=None, join_origin=None, files=None, copy_of=None, original_copy_of=None, copy_status=None): # noqa: E501
106
110
  """AcquisitionListOutput - a model defined in Swagger"""
107
111
  super(AcquisitionListOutput, self).__init__()
108
112
 
@@ -128,6 +132,7 @@ class AcquisitionListOutput(AcquisitionMixin):
128
132
  self._files = None
129
133
  self._copy_of = None
130
134
  self._original_copy_of = None
135
+ self._copy_status = None
131
136
  self.discriminator = None
132
137
  self.alt_discriminator = None
133
138
 
@@ -168,6 +173,8 @@ class AcquisitionListOutput(AcquisitionMixin):
168
173
  self.copy_of = copy_of
169
174
  if original_copy_of is not None:
170
175
  self.original_copy_of = original_copy_of
176
+ if copy_status is not None:
177
+ self.copy_status = copy_status
171
178
 
172
179
  @property
173
180
  def id(self):
@@ -631,6 +638,27 @@ class AcquisitionListOutput(AcquisitionMixin):
631
638
 
632
639
  self._original_copy_of = original_copy_of
633
640
 
641
+ @property
642
+ def copy_status(self):
643
+ """Gets the copy_status of this AcquisitionListOutput.
644
+
645
+
646
+ :return: The copy_status of this AcquisitionListOutput.
647
+ :rtype: CopyStatus
648
+ """
649
+ return self._copy_status
650
+
651
+ @copy_status.setter
652
+ def copy_status(self, copy_status):
653
+ """Sets the copy_status of this AcquisitionListOutput.
654
+
655
+
656
+ :param copy_status: The copy_status of this AcquisitionListOutput. # noqa: E501
657
+ :type: CopyStatus
658
+ """
659
+
660
+ self._copy_status = copy_status
661
+
634
662
 
635
663
  @staticmethod
636
664
  def positional_to_model(value):
@@ -20,6 +20,7 @@ import six
20
20
 
21
21
  from flywheel.models.acquisition_output import AcquisitionOutput # noqa: F401,E501
22
22
  from flywheel.models.acquisition_parents import AcquisitionParents # noqa: F401,E501
23
+ from flywheel.models.copy_status import CopyStatus # noqa: F401,E501
23
24
  from flywheel.models.file_output import FileOutput # noqa: F401,E501
24
25
  from flywheel.models.join_origins import JoinOrigins # noqa: F401,E501
25
26
  from flywheel.models.note import Note # noqa: F401,E501
@@ -19,6 +19,7 @@ import re # noqa: F401
19
19
  import six
20
20
 
21
21
  from flywheel.models.acquisition_parents import AcquisitionParents # noqa: F401,E501
22
+ from flywheel.models.copy_status import CopyStatus # noqa: F401,E501
22
23
  from flywheel.models.file_output import FileOutput # noqa: F401,E501
23
24
  from flywheel.models.join_origins import JoinOrigins # noqa: F401,E501
24
25
  from flywheel.models.note import Note # noqa: F401,E501
@@ -49,7 +50,8 @@ class AcquisitionOutput(AcquisitionMixin):
49
50
  'join_origin': 'JoinOrigins',
50
51
  'files': 'list[FileOutput]',
51
52
  'copy_of': 'str',
52
- 'original_copy_of': 'str'
53
+ 'original_copy_of': 'str',
54
+ 'copy_status': 'CopyStatus'
53
55
  }
54
56
 
55
57
  attribute_map = {
@@ -74,7 +76,8 @@ class AcquisitionOutput(AcquisitionMixin):
74
76
  'join_origin': 'join-origin',
75
77
  'files': 'files',
76
78
  'copy_of': 'copy_of',
77
- 'original_copy_of': 'original_copy_of'
79
+ 'original_copy_of': 'original_copy_of',
80
+ 'copy_status': 'copy_status'
78
81
  }
79
82
 
80
83
  rattribute_map = {
@@ -99,10 +102,11 @@ class AcquisitionOutput(AcquisitionMixin):
99
102
  'join-origin': 'join_origin',
100
103
  'files': 'files',
101
104
  'copy_of': 'copy_of',
102
- 'original_copy_of': 'original_copy_of'
105
+ 'original_copy_of': 'original_copy_of',
106
+ 'copy_status': 'copy_status'
103
107
  }
104
108
 
105
- def __init__(self, id=None, parents=None, label=None, session=None, info_exists=None, info=None, metadata=None, uid=None, timestamp=None, timezone=None, created=None, modified=None, revision=1, permissions=None, tags=None, notes=None, analyses=None, collections=None, join_origin=None, files=None, copy_of=None, original_copy_of=None): # noqa: E501
109
+ def __init__(self, id=None, parents=None, label=None, session=None, info_exists=None, info=None, metadata=None, uid=None, timestamp=None, timezone=None, created=None, modified=None, revision=1, permissions=None, tags=None, notes=None, analyses=None, collections=None, join_origin=None, files=None, copy_of=None, original_copy_of=None, copy_status=None): # noqa: E501
106
110
  """AcquisitionOutput - a model defined in Swagger"""
107
111
  super(AcquisitionOutput, self).__init__()
108
112
 
@@ -128,6 +132,7 @@ class AcquisitionOutput(AcquisitionMixin):
128
132
  self._files = None
129
133
  self._copy_of = None
130
134
  self._original_copy_of = None
135
+ self._copy_status = None
131
136
  self.discriminator = None
132
137
  self.alt_discriminator = None
133
138
 
@@ -166,6 +171,8 @@ class AcquisitionOutput(AcquisitionMixin):
166
171
  self.copy_of = copy_of
167
172
  if original_copy_of is not None:
168
173
  self.original_copy_of = original_copy_of
174
+ if copy_status is not None:
175
+ self.copy_status = copy_status
169
176
 
170
177
  @property
171
178
  def id(self):
@@ -629,6 +636,27 @@ class AcquisitionOutput(AcquisitionMixin):
629
636
 
630
637
  self._original_copy_of = original_copy_of
631
638
 
639
+ @property
640
+ def copy_status(self):
641
+ """Gets the copy_status of this AcquisitionOutput.
642
+
643
+
644
+ :return: The copy_status of this AcquisitionOutput.
645
+ :rtype: CopyStatus
646
+ """
647
+ return self._copy_status
648
+
649
+ @copy_status.setter
650
+ def copy_status(self, copy_status):
651
+ """Sets the copy_status of this AcquisitionOutput.
652
+
653
+
654
+ :param copy_status: The copy_status of this AcquisitionOutput. # noqa: E501
655
+ :type: CopyStatus
656
+ """
657
+
658
+ self._copy_status = copy_status
659
+
632
660
 
633
661
  @staticmethod
634
662
  def positional_to_model(value):
@@ -30,7 +30,8 @@ class AcquisitionUpsertInput(object):
30
30
  'source': 'CoreModelsCommonSource',
31
31
  'timestamp': 'datetime',
32
32
  'timezone': 'str',
33
- 'info': 'object'
33
+ 'info': 'object',
34
+ 'tags': 'list[str]'
34
35
  }
35
36
 
36
37
  attribute_map = {
@@ -41,7 +42,8 @@ class AcquisitionUpsertInput(object):
41
42
  'source': 'source',
42
43
  'timestamp': 'timestamp',
43
44
  'timezone': 'timezone',
44
- 'info': 'info'
45
+ 'info': 'info',
46
+ 'tags': 'tags'
45
47
  }
46
48
 
47
49
  rattribute_map = {
@@ -52,10 +54,11 @@ class AcquisitionUpsertInput(object):
52
54
  'source': 'source',
53
55
  'timestamp': 'timestamp',
54
56
  'timezone': 'timezone',
55
- 'info': 'info'
57
+ 'info': 'info',
58
+ 'tags': 'tags'
56
59
  }
57
60
 
58
- def __init__(self, id=None, uid=None, routing_field=None, label=None, source=None, timestamp=None, timezone=None, info=None): # noqa: E501
61
+ def __init__(self, id=None, uid=None, routing_field=None, label=None, source=None, timestamp=None, timezone=None, info=None, tags=None): # noqa: E501
59
62
  """AcquisitionUpsertInput - a model defined in Swagger"""
60
63
  super(AcquisitionUpsertInput, self).__init__()
61
64
 
@@ -67,6 +70,7 @@ class AcquisitionUpsertInput(object):
67
70
  self._timestamp = None
68
71
  self._timezone = None
69
72
  self._info = None
73
+ self._tags = None
70
74
  self.discriminator = None
71
75
  self.alt_discriminator = None
72
76
 
@@ -86,6 +90,8 @@ class AcquisitionUpsertInput(object):
86
90
  self.timezone = timezone
87
91
  if info is not None:
88
92
  self.info = info
93
+ if tags is not None:
94
+ self.tags = tags
89
95
 
90
96
  @property
91
97
  def id(self):
@@ -255,6 +261,27 @@ class AcquisitionUpsertInput(object):
255
261
 
256
262
  self._info = info
257
263
 
264
+ @property
265
+ def tags(self):
266
+ """Gets the tags of this AcquisitionUpsertInput.
267
+
268
+
269
+ :return: The tags of this AcquisitionUpsertInput.
270
+ :rtype: list[str]
271
+ """
272
+ return self._tags
273
+
274
+ @tags.setter
275
+ def tags(self, tags):
276
+ """Sets the tags of this AcquisitionUpsertInput.
277
+
278
+
279
+ :param tags: The tags of this AcquisitionUpsertInput. # noqa: E501
280
+ :type: list[str]
281
+ """
282
+
283
+ self._tags = tags
284
+
258
285
 
259
286
  @staticmethod
260
287
  def positional_to_model(value):
@@ -26,24 +26,27 @@ class CVATInfo(object):
26
26
  'task_id': 'int',
27
27
  'job_id': 'int',
28
28
  'sync_state': 'CVATSyncState',
29
- 'errors': 'list[str]'
29
+ 'errors': 'list[str]',
30
+ 'error_summary': 'str'
30
31
  }
31
32
 
32
33
  attribute_map = {
33
34
  'task_id': 'task_id',
34
35
  'job_id': 'job_id',
35
36
  'sync_state': 'sync_state',
36
- 'errors': 'errors'
37
+ 'errors': 'errors',
38
+ 'error_summary': 'error_summary'
37
39
  }
38
40
 
39
41
  rattribute_map = {
40
42
  'task_id': 'task_id',
41
43
  'job_id': 'job_id',
42
44
  'sync_state': 'sync_state',
43
- 'errors': 'errors'
45
+ 'errors': 'errors',
46
+ 'error_summary': 'error_summary'
44
47
  }
45
48
 
46
- def __init__(self, task_id=None, job_id=None, sync_state=None, errors=None): # noqa: E501
49
+ def __init__(self, task_id=None, job_id=None, sync_state=None, errors=None, error_summary=None): # noqa: E501
47
50
  """CVATInfo - a model defined in Swagger"""
48
51
  super(CVATInfo, self).__init__()
49
52
 
@@ -51,6 +54,7 @@ class CVATInfo(object):
51
54
  self._job_id = None
52
55
  self._sync_state = None
53
56
  self._errors = None
57
+ self._error_summary = None
54
58
  self.discriminator = None
55
59
  self.alt_discriminator = None
56
60
 
@@ -62,6 +66,8 @@ class CVATInfo(object):
62
66
  self.sync_state = sync_state
63
67
  if errors is not None:
64
68
  self.errors = errors
69
+ if error_summary is not None:
70
+ self.error_summary = error_summary
65
71
 
66
72
  @property
67
73
  def task_id(self):
@@ -147,6 +153,27 @@ class CVATInfo(object):
147
153
 
148
154
  self._errors = errors
149
155
 
156
+ @property
157
+ def error_summary(self):
158
+ """Gets the error_summary of this CVATInfo.
159
+
160
+
161
+ :return: The error_summary of this CVATInfo.
162
+ :rtype: str
163
+ """
164
+ return self._error_summary
165
+
166
+ @error_summary.setter
167
+ def error_summary(self, error_summary):
168
+ """Sets the error_summary of this CVATInfo.
169
+
170
+
171
+ :param error_summary: The error_summary of this CVATInfo. # noqa: E501
172
+ :type: str
173
+ """
174
+
175
+ self._error_summary = error_summary
176
+
150
177
 
151
178
  @staticmethod
152
179
  def positional_to_model(value):
@@ -35,10 +35,10 @@ class Features(object):
35
35
  'default_viewer_apps': 'bool',
36
36
  'deid_log': 'bool',
37
37
  'deid_profile': 'bool',
38
- 'dicom_web_uploader_non_21_cfr': 'bool',
39
38
  'dimse': 'bool',
40
39
  'elastic_search_primary': 'bool',
41
40
  'exchange': 'bool',
41
+ 'case_uploader': 'bool',
42
42
  'exchange_admin': 'bool',
43
43
  'external_routing': 'bool',
44
44
  'gear_access': 'bool',
@@ -103,10 +103,10 @@ class Features(object):
103
103
  'default_viewer_apps': 'default_viewer_apps',
104
104
  'deid_log': 'deid_log',
105
105
  'deid_profile': 'deid_profile',
106
- 'dicom_web_uploader_non_21_cfr': 'dicom_web_uploader_non_21CFR',
107
106
  'dimse': 'dimse',
108
107
  'elastic_search_primary': 'elastic_search_primary',
109
108
  'exchange': 'exchange',
109
+ 'case_uploader': 'case_uploader',
110
110
  'exchange_admin': 'exchange_admin',
111
111
  'external_routing': 'external_routing',
112
112
  'gear_access': 'gear_access',
@@ -171,10 +171,10 @@ class Features(object):
171
171
  'default_viewer_apps': 'default_viewer_apps',
172
172
  'deid_log': 'deid_log',
173
173
  'deid_profile': 'deid_profile',
174
- 'dicom_web_uploader_non_21CFR': 'dicom_web_uploader_non_21_cfr',
175
174
  'dimse': 'dimse',
176
175
  'elastic_search_primary': 'elastic_search_primary',
177
176
  'exchange': 'exchange',
177
+ 'case_uploader': 'case_uploader',
178
178
  'exchange_admin': 'exchange_admin',
179
179
  'external_routing': 'external_routing',
180
180
  'gear_access': 'gear_access',
@@ -224,7 +224,7 @@ class Features(object):
224
224
  'tasks_refactor': 'tasks_refactor'
225
225
  }
226
226
 
227
- def __init__(self, api_enabled_gear_rules=True, auth0=None, audit_trail=False, azureml_integration=False, cold_job_logs=False, collections=False, copy_by_reference=True, core_api=True, crawler=False, cvat=False, data_views_non_21_cfr=True, default_viewer_apps=True, deid_log=False, deid_profile=False, dicom_web_uploader_non_21_cfr=True, dimse=False, elastic_search_primary=False, exchange=False, exchange_admin=False, external_routing=False, gear_access=True, google_analytics=True, healthcare_api=False, job_ask=True, job_prioritization=True, job_tickets=True, jupyter_integration=False, jupyterhub_external_storage=True, ldap_sync=False, multifactor_auth=False, multipart_signed_url=True, multiproject=False, ohif_multi_subject_view=False, ohif_meteor=False, ohif_react=False, ohif_react_beta=False, ohif_slice_order=None, ohif_v2_adhoc_indexing=True, ohif_v3=True, ohif_v3_beta=False, ohif_v3_default_app=False, ohif_v3_readonly=False, project_export=True, project_import=True, project_list_uses_stats=False, project_locking=False, reader_tasks=False, rts_sync=False, sentry_logging=None, session_templates_non_21_cfr=True, shared_projects=False, signed_url=False, study_task_status=False, tagging=False, tags_in_lists=True, task_manager_data_views=True, transform_search_fields=True, unsafe_login=False, url_access_apps=False, userpilot=None, validate_classification=True, engine_validate_classification=False, virus_scan=False, legacy_dicom_uploader=False, tasks_refactor=False): # noqa: E501
227
+ def __init__(self, api_enabled_gear_rules=True, auth0=None, audit_trail=False, azureml_integration=False, cold_job_logs=False, collections=False, copy_by_reference=True, core_api=True, crawler=False, cvat=False, data_views_non_21_cfr=True, default_viewer_apps=True, deid_log=False, deid_profile=False, dimse=False, elastic_search_primary=False, exchange=False, case_uploader=False, exchange_admin=False, external_routing=False, gear_access=True, google_analytics=True, healthcare_api=False, job_ask=True, job_prioritization=True, job_tickets=True, jupyter_integration=False, jupyterhub_external_storage=True, ldap_sync=False, multifactor_auth=False, multipart_signed_url=True, multiproject=False, ohif_multi_subject_view=False, ohif_meteor=False, ohif_react=False, ohif_react_beta=False, ohif_slice_order=None, ohif_v2_adhoc_indexing=True, ohif_v3=True, ohif_v3_beta=False, ohif_v3_default_app=False, ohif_v3_readonly=False, project_export=True, project_import=True, project_list_uses_stats=False, project_locking=False, reader_tasks=False, rts_sync=False, sentry_logging=None, session_templates_non_21_cfr=True, shared_projects=False, signed_url=False, study_task_status=False, tagging=False, tags_in_lists=True, task_manager_data_views=True, transform_search_fields=True, unsafe_login=False, url_access_apps=False, userpilot=None, validate_classification=True, engine_validate_classification=False, virus_scan=False, legacy_dicom_uploader=False, tasks_refactor=False): # noqa: E501
228
228
  """Features - a model defined in Swagger"""
229
229
  super(Features, self).__init__()
230
230
 
@@ -242,10 +242,10 @@ class Features(object):
242
242
  self._default_viewer_apps = None
243
243
  self._deid_log = None
244
244
  self._deid_profile = None
245
- self._dicom_web_uploader_non_21_cfr = None
246
245
  self._dimse = None
247
246
  self._elastic_search_primary = None
248
247
  self._exchange = None
248
+ self._case_uploader = None
249
249
  self._exchange_admin = None
250
250
  self._external_routing = None
251
251
  self._gear_access = None
@@ -324,14 +324,14 @@ class Features(object):
324
324
  self.deid_log = deid_log
325
325
  if deid_profile is not None:
326
326
  self.deid_profile = deid_profile
327
- if dicom_web_uploader_non_21_cfr is not None:
328
- self.dicom_web_uploader_non_21_cfr = dicom_web_uploader_non_21_cfr
329
327
  if dimse is not None:
330
328
  self.dimse = dimse
331
329
  if elastic_search_primary is not None:
332
330
  self.elastic_search_primary = elastic_search_primary
333
331
  if exchange is not None:
334
332
  self.exchange = exchange
333
+ if case_uploader is not None:
334
+ self.case_uploader = case_uploader
335
335
  if exchange_admin is not None:
336
336
  self.exchange_admin = exchange_admin
337
337
  if external_routing is not None:
@@ -721,27 +721,6 @@ class Features(object):
721
721
 
722
722
  self._deid_profile = deid_profile
723
723
 
724
- @property
725
- def dicom_web_uploader_non_21_cfr(self):
726
- """Gets the dicom_web_uploader_non_21_cfr of this Features.
727
-
728
-
729
- :return: The dicom_web_uploader_non_21_cfr of this Features.
730
- :rtype: bool
731
- """
732
- return self._dicom_web_uploader_non_21_cfr
733
-
734
- @dicom_web_uploader_non_21_cfr.setter
735
- def dicom_web_uploader_non_21_cfr(self, dicom_web_uploader_non_21_cfr):
736
- """Sets the dicom_web_uploader_non_21_cfr of this Features.
737
-
738
-
739
- :param dicom_web_uploader_non_21_cfr: The dicom_web_uploader_non_21_cfr of this Features. # noqa: E501
740
- :type: bool
741
- """
742
-
743
- self._dicom_web_uploader_non_21_cfr = dicom_web_uploader_non_21_cfr
744
-
745
724
  @property
746
725
  def dimse(self):
747
726
  """Gets the dimse of this Features.
@@ -805,6 +784,27 @@ class Features(object):
805
784
 
806
785
  self._exchange = exchange
807
786
 
787
+ @property
788
+ def case_uploader(self):
789
+ """Gets the case_uploader of this Features.
790
+
791
+
792
+ :return: The case_uploader of this Features.
793
+ :rtype: bool
794
+ """
795
+ return self._case_uploader
796
+
797
+ @case_uploader.setter
798
+ def case_uploader(self, case_uploader):
799
+ """Sets the case_uploader of this Features.
800
+
801
+
802
+ :param case_uploader: The case_uploader of this Features. # noqa: E501
803
+ :type: bool
804
+ """
805
+
806
+ self._case_uploader = case_uploader
807
+
808
808
  @property
809
809
  def exchange_admin(self):
810
810
  """Gets the exchange_admin of this Features.
@@ -1,4 +1,5 @@
1
1
  """Provides gear invocation support"""
2
+
2
3
  from .. import util
3
4
 
4
5