fds.sdk.ProposalGenerationEngine 0.1.0__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 (141) hide show
  1. fds/__init__.py +0 -0
  2. fds/sdk/ProposalGenerationEngine/__init__.py +28 -0
  3. fds/sdk/ProposalGenerationEngine/api/__init__.py +3 -0
  4. fds/sdk/ProposalGenerationEngine/api/ex_post_api.py +1451 -0
  5. fds/sdk/ProposalGenerationEngine/api/lookup_api.py +333 -0
  6. fds/sdk/ProposalGenerationEngine/api_client.py +939 -0
  7. fds/sdk/ProposalGenerationEngine/apis/__init__.py +18 -0
  8. fds/sdk/ProposalGenerationEngine/configuration.py +500 -0
  9. fds/sdk/ProposalGenerationEngine/exceptions.py +160 -0
  10. fds/sdk/ProposalGenerationEngine/model/__init__.py +5 -0
  11. fds/sdk/ProposalGenerationEngine/model/array.py +279 -0
  12. fds/sdk/ProposalGenerationEngine/model/backfill_data.py +264 -0
  13. fds/sdk/ProposalGenerationEngine/model/base_settings.py +264 -0
  14. fds/sdk/ProposalGenerationEngine/model/boxplot.py +266 -0
  15. fds/sdk/ProposalGenerationEngine/model/boxplot_boxplot_summary.py +284 -0
  16. fds/sdk/ProposalGenerationEngine/model/cl_pair.py +252 -0
  17. fds/sdk/ProposalGenerationEngine/model/correlation_matrix.py +260 -0
  18. fds/sdk/ProposalGenerationEngine/model/correlation_stats.py +268 -0
  19. fds/sdk/ProposalGenerationEngine/model/dated_correlation_stats.py +268 -0
  20. fds/sdk/ProposalGenerationEngine/model/dated_correlation_stats_per_time_window.py +262 -0
  21. fds/sdk/ProposalGenerationEngine/model/dated_node_stats.py +262 -0
  22. fds/sdk/ProposalGenerationEngine/model/drawdown.py +268 -0
  23. fds/sdk/ProposalGenerationEngine/model/drawdown_stats.py +290 -0
  24. fds/sdk/ProposalGenerationEngine/model/entity.py +256 -0
  25. fds/sdk/ProposalGenerationEngine/model/entity_stats.py +292 -0
  26. fds/sdk/ProposalGenerationEngine/model/error.py +274 -0
  27. fds/sdk/ProposalGenerationEngine/model/errors.py +262 -0
  28. fds/sdk/ProposalGenerationEngine/model/ex_post_period_stats.py +333 -0
  29. fds/sdk/ProposalGenerationEngine/model/ex_post_period_stats_all_of.py +262 -0
  30. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio.py +343 -0
  31. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_all_of.py +268 -0
  32. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_investment.py +329 -0
  33. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_investment_all_of.py +266 -0
  34. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_investment_response.py +357 -0
  35. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_investment_response_all_of.py +284 -0
  36. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_investment_series_response.py +353 -0
  37. fds/sdk/ProposalGenerationEngine/model/ex_post_portfolio_investment_series_response_all_of.py +280 -0
  38. fds/sdk/ProposalGenerationEngine/model/ex_post_rolling_settings.py +338 -0
  39. fds/sdk/ProposalGenerationEngine/model/ex_post_rolling_settings_all_of.py +280 -0
  40. fds/sdk/ProposalGenerationEngine/model/ex_post_series.py +268 -0
  41. fds/sdk/ProposalGenerationEngine/model/ex_post_series_data.py +280 -0
  42. fds/sdk/ProposalGenerationEngine/model/ex_post_series_response.py +268 -0
  43. fds/sdk/ProposalGenerationEngine/model/ex_post_series_response_data.py +272 -0
  44. fds/sdk/ProposalGenerationEngine/model/ex_post_series_response_meta.py +262 -0
  45. fds/sdk/ProposalGenerationEngine/model/ex_post_series_rolling.py +268 -0
  46. fds/sdk/ProposalGenerationEngine/model/ex_post_series_rolling_data.py +278 -0
  47. fds/sdk/ProposalGenerationEngine/model/ex_post_series_rolling_response.py +274 -0
  48. fds/sdk/ProposalGenerationEngine/model/ex_post_series_rolling_response_data.py +262 -0
  49. fds/sdk/ProposalGenerationEngine/model/ex_post_series_rolling_response_meta.py +262 -0
  50. fds/sdk/ProposalGenerationEngine/model/ex_post_series_rolling_settings.py +341 -0
  51. fds/sdk/ProposalGenerationEngine/model/ex_post_series_settings.py +353 -0
  52. fds/sdk/ProposalGenerationEngine/model/ex_post_series_settings_all_of.py +267 -0
  53. fds/sdk/ProposalGenerationEngine/model/ex_post_settings.py +355 -0
  54. fds/sdk/ProposalGenerationEngine/model/ex_post_settings_all_of.py +262 -0
  55. fds/sdk/ProposalGenerationEngine/model/ex_post_stats.py +268 -0
  56. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_correlations.py +268 -0
  57. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_correlations_data.py +280 -0
  58. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_correlations_response.py +274 -0
  59. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_correlations_response_meta.py +262 -0
  60. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_correlations_settings.py +346 -0
  61. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_correlations_settings_all_of.py +275 -0
  62. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_data.py +280 -0
  63. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_factor_exposure.py +268 -0
  64. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_factor_exposure_data.py +280 -0
  65. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_factor_exposure_response.py +274 -0
  66. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_factor_exposure_response_meta.py +262 -0
  67. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_factor_exposure_settings.py +338 -0
  68. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_factor_exposure_settings_all_of.py +267 -0
  69. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_response.py +268 -0
  70. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_response_data.py +272 -0
  71. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_response_meta.py +262 -0
  72. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling.py +268 -0
  73. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling_data.py +280 -0
  74. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling_response.py +274 -0
  75. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling_response_data.py +262 -0
  76. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling_response_meta.py +262 -0
  77. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling_settings.py +339 -0
  78. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_rolling_settings_all_of.py +262 -0
  79. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_settings.py +360 -0
  80. fds/sdk/ProposalGenerationEngine/model/ex_post_stats_settings_all_of.py +256 -0
  81. fds/sdk/ProposalGenerationEngine/model/exposure.py +282 -0
  82. fds/sdk/ProposalGenerationEngine/model/investment.py +343 -0
  83. fds/sdk/ProposalGenerationEngine/model/investment_all_of.py +280 -0
  84. fds/sdk/ProposalGenerationEngine/model/key_value_pair.py +260 -0
  85. fds/sdk/ProposalGenerationEngine/model/level.py +256 -0
  86. fds/sdk/ProposalGenerationEngine/model/paged_securities.py +276 -0
  87. fds/sdk/ProposalGenerationEngine/model/paged_securities_meta.py +262 -0
  88. fds/sdk/ProposalGenerationEngine/model/paged_securities_meta_pagination.py +260 -0
  89. fds/sdk/ProposalGenerationEngine/model/performance_stats.py +264 -0
  90. fds/sdk/ProposalGenerationEngine/model/period.py +260 -0
  91. fds/sdk/ProposalGenerationEngine/model/period_correlation_stats.py +333 -0
  92. fds/sdk/ProposalGenerationEngine/model/period_correlation_stats_all_of.py +262 -0
  93. fds/sdk/ProposalGenerationEngine/model/period_info.py +268 -0
  94. fds/sdk/ProposalGenerationEngine/model/period_series.py +333 -0
  95. fds/sdk/ProposalGenerationEngine/model/period_series_all_of.py +262 -0
  96. fds/sdk/ProposalGenerationEngine/model/periods.py +262 -0
  97. fds/sdk/ProposalGenerationEngine/model/portfolio.py +331 -0
  98. fds/sdk/ProposalGenerationEngine/model/portfolio_all_of.py +266 -0
  99. fds/sdk/ProposalGenerationEngine/model/portfolio_correlation_matrix.py +260 -0
  100. fds/sdk/ProposalGenerationEngine/model/portfolio_entity.py +266 -0
  101. fds/sdk/ProposalGenerationEngine/model/portfolio_entity_details.py +256 -0
  102. fds/sdk/ProposalGenerationEngine/model/portfolio_investment.py +268 -0
  103. fds/sdk/ProposalGenerationEngine/model/portfolio_with_ex_post_series.py +333 -0
  104. fds/sdk/ProposalGenerationEngine/model/portfolio_with_ex_post_series_all_of.py +268 -0
  105. fds/sdk/ProposalGenerationEngine/model/portfolio_with_ex_post_stats.py +337 -0
  106. fds/sdk/ProposalGenerationEngine/model/portfolio_with_ex_post_stats_all_of.py +272 -0
  107. fds/sdk/ProposalGenerationEngine/model/portfolio_with_rolling_series.py +327 -0
  108. fds/sdk/ProposalGenerationEngine/model/portfolio_with_rolling_series_all_of.py +262 -0
  109. fds/sdk/ProposalGenerationEngine/model/portfolio_with_rolling_stats.py +327 -0
  110. fds/sdk/ProposalGenerationEngine/model/portfolio_with_rolling_stats_all_of.py +262 -0
  111. fds/sdk/ProposalGenerationEngine/model/rebalancing.py +270 -0
  112. fds/sdk/ProposalGenerationEngine/model/relative_risk_stats.py +280 -0
  113. fds/sdk/ProposalGenerationEngine/model/return_stats.py +264 -0
  114. fds/sdk/ProposalGenerationEngine/model/risk_node_stats.py +304 -0
  115. fds/sdk/ProposalGenerationEngine/model/risk_stats.py +290 -0
  116. fds/sdk/ProposalGenerationEngine/model/rolling_series.py +262 -0
  117. fds/sdk/ProposalGenerationEngine/model/rolling_series_per_time_window.py +266 -0
  118. fds/sdk/ProposalGenerationEngine/model/rolling_series_per_time_window_returns.py +266 -0
  119. fds/sdk/ProposalGenerationEngine/model/rolling_stats.py +262 -0
  120. fds/sdk/ProposalGenerationEngine/model/rolling_stats_per_time_window.py +262 -0
  121. fds/sdk/ProposalGenerationEngine/model/rolling_stats_per_time_window_rolling.py +256 -0
  122. fds/sdk/ProposalGenerationEngine/model/serie_stats.py +282 -0
  123. fds/sdk/ProposalGenerationEngine/model/series_stats.py +266 -0
  124. fds/sdk/ProposalGenerationEngine/model/settings.py +338 -0
  125. fds/sdk/ProposalGenerationEngine/model/settings_all_of.py +269 -0
  126. fds/sdk/ProposalGenerationEngine/model/stats.py +311 -0
  127. fds/sdk/ProposalGenerationEngine/model/time_window.py +256 -0
  128. fds/sdk/ProposalGenerationEngine/model/time_window_series.py +262 -0
  129. fds/sdk/ProposalGenerationEngine/model/time_window_stats.py +268 -0
  130. fds/sdk/ProposalGenerationEngine/model/time_window_stats_generic.py +256 -0
  131. fds/sdk/ProposalGenerationEngine/model/transaction_rule.py +334 -0
  132. fds/sdk/ProposalGenerationEngine/model/ui_value_object.py +264 -0
  133. fds/sdk/ProposalGenerationEngine/model_utils.py +2062 -0
  134. fds/sdk/ProposalGenerationEngine/models/__init__.py +133 -0
  135. fds/sdk/ProposalGenerationEngine/rest.py +347 -0
  136. fds/sdk/__init__.py +0 -0
  137. fds_sdk_proposalgenerationengine-0.1.0.dist-info/METADATA +456 -0
  138. fds_sdk_proposalgenerationengine-0.1.0.dist-info/RECORD +141 -0
  139. fds_sdk_proposalgenerationengine-0.1.0.dist-info/WHEEL +5 -0
  140. fds_sdk_proposalgenerationengine-0.1.0.dist-info/licenses/LICENSE +202 -0
  141. fds_sdk_proposalgenerationengine-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,282 @@
1
+ """
2
+ Proposal Generation Engine API
3
+
4
+ Documentation on all available end points in the Proposal Generation API # noqa: E501
5
+
6
+ The version of the OpenAPI document: 0.0.1
7
+ Contact: api@factset.com
8
+ Generated by: https://openapi-generator.tech
9
+ """
10
+
11
+
12
+ import re # noqa: F401
13
+ import sys # noqa: F401
14
+
15
+ from fds.sdk.ProposalGenerationEngine.model_utils import ( # noqa: F401
16
+ ApiTypeError,
17
+ ModelComposed,
18
+ ModelNormal,
19
+ ModelSimple,
20
+ cached_property,
21
+ change_keys_js_to_python,
22
+ convert_js_args_to_python_args,
23
+ date,
24
+ datetime,
25
+ file_type,
26
+ none_type,
27
+ validate_get_composed_info,
28
+ OpenApiModel
29
+ )
30
+ from fds.sdk.ProposalGenerationEngine.exceptions import ApiAttributeError
31
+
32
+
33
+ def lazy_import():
34
+ from fds.sdk.ProposalGenerationEngine.model.ui_value_object import UiValueObject
35
+ globals()['UiValueObject'] = UiValueObject
36
+
37
+
38
+ class Exposure(ModelNormal):
39
+ """NOTE: This class is auto generated by OpenAPI Generator.
40
+ Ref: https://openapi-generator.tech
41
+
42
+ Do not edit the class manually.
43
+
44
+ Attributes:
45
+ allowed_values (dict): The key is the tuple path to the attribute
46
+ and the for var_name this is (var_name,). The value is a dict
47
+ with a capitalized key describing the allowed value and an allowed
48
+ value. These dicts store the allowed enum values.
49
+ attribute_map (dict): The key is attribute name
50
+ and the value is json key in definition.
51
+ discriminator_value_class_map (dict): A dict to go from the discriminator
52
+ variable value to the discriminator class name.
53
+ validations (dict): The key is the tuple path to the attribute
54
+ and the for var_name this is (var_name,). The value is a dict
55
+ that stores validations for max_length, min_length, max_items,
56
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
57
+ inclusive_minimum, and regex.
58
+ additional_properties_type (tuple): A tuple of classes accepted
59
+ as additional properties values.
60
+ """
61
+
62
+ allowed_values = {
63
+ }
64
+
65
+ validations = {
66
+ }
67
+
68
+ @cached_property
69
+ def additional_properties_type():
70
+ """
71
+ This must be a method because a model may have properties that are
72
+ of type self, this must run after the class is loaded
73
+ """
74
+ lazy_import()
75
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
76
+
77
+ _nullable = False
78
+
79
+ @cached_property
80
+ def openapi_types():
81
+ """
82
+ This must be a method because a model may have properties that are
83
+ of type self, this must run after the class is loaded
84
+
85
+ Returns
86
+ openapi_types (dict): The key is attribute name
87
+ and the value is attribute type.
88
+ """
89
+ lazy_import()
90
+ return {
91
+ 'id': (str,), # noqa: E501
92
+ 'name': (str,), # noqa: E501
93
+ 'group': (str,), # noqa: E501
94
+ 'exposure': (float,), # noqa: E501
95
+ 'rsquare': (float,), # noqa: E501
96
+ 'factors': ([UiValueObject],), # noqa: E501
97
+ }
98
+
99
+ @cached_property
100
+ def discriminator():
101
+ return None
102
+
103
+
104
+ attribute_map = {
105
+ 'id': 'id', # noqa: E501
106
+ 'name': 'name', # noqa: E501
107
+ 'group': 'group', # noqa: E501
108
+ 'exposure': 'exposure', # noqa: E501
109
+ 'rsquare': 'rsquare', # noqa: E501
110
+ 'factors': 'factors', # noqa: E501
111
+ }
112
+
113
+ read_only_vars = {
114
+ }
115
+
116
+ _composed_schemas = {}
117
+
118
+ @classmethod
119
+ @convert_js_args_to_python_args
120
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
121
+ """Exposure - a model defined in OpenAPI
122
+
123
+ Keyword Args:
124
+ _check_type (bool): if True, values for parameters in openapi_types
125
+ will be type checked and a TypeError will be
126
+ raised if the wrong type is input.
127
+ Defaults to True
128
+ _path_to_item (tuple/list): This is a list of keys or values to
129
+ drill down to the model in received_data
130
+ when deserializing a response
131
+ _spec_property_naming (bool): True if the variable names in the input data
132
+ are serialized names, as specified in the OpenAPI document.
133
+ False if the variable names in the input data
134
+ are pythonic names, e.g. snake case (default)
135
+ _configuration (Configuration): the instance to use when
136
+ deserializing a file_type parameter.
137
+ If passed, type conversion is attempted
138
+ If omitted no type conversion is done.
139
+ _visited_composed_classes (tuple): This stores a tuple of
140
+ classes that we have traveled through so that
141
+ if we see that class again we will not use its
142
+ discriminator again.
143
+ When traveling through a discriminator, the
144
+ composed schema that is
145
+ is traveled through is added to this set.
146
+ For example if Animal has a discriminator
147
+ petType and we pass in "Dog", and the class Dog
148
+ allOf includes Animal, we move through Animal
149
+ once using the discriminator, and pick Dog.
150
+ Then in Dog, we will make an instance of the
151
+ Animal class but this time we won't travel
152
+ through its discriminator because we passed in
153
+ _visited_composed_classes = (Animal,)
154
+ id (str): [optional] # noqa: E501
155
+ name (str): [optional] # noqa: E501
156
+ group (str): [optional] # noqa: E501
157
+ exposure (float): [optional] # noqa: E501
158
+ rsquare (float): [optional] # noqa: E501
159
+ factors ([UiValueObject]): [optional] # noqa: E501
160
+ """
161
+
162
+ _check_type = kwargs.pop('_check_type', True)
163
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
164
+ _path_to_item = kwargs.pop('_path_to_item', ())
165
+ _configuration = kwargs.pop('_configuration', None)
166
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
167
+
168
+ self = super(OpenApiModel, cls).__new__(cls)
169
+
170
+ if args:
171
+ raise ApiTypeError(
172
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
173
+ args,
174
+ self.__class__.__name__,
175
+ ),
176
+ path_to_item=_path_to_item,
177
+ valid_classes=(self.__class__,),
178
+ )
179
+
180
+ self._data_store = {}
181
+ self._check_type = _check_type
182
+ self._spec_property_naming = _spec_property_naming
183
+ self._path_to_item = _path_to_item
184
+ self._configuration = _configuration
185
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
186
+
187
+ for var_name, var_value in kwargs.items():
188
+ if var_name not in self.attribute_map and \
189
+ self._configuration is not None and \
190
+ self._configuration.discard_unknown_keys and \
191
+ self.additional_properties_type is None:
192
+ # discard variable.
193
+ continue
194
+ setattr(self, var_name, var_value)
195
+ return self
196
+
197
+ required_properties = set([
198
+ '_data_store',
199
+ '_check_type',
200
+ '_spec_property_naming',
201
+ '_path_to_item',
202
+ '_configuration',
203
+ '_visited_composed_classes',
204
+ ])
205
+
206
+ @convert_js_args_to_python_args
207
+ def __init__(self, *args, **kwargs): # noqa: E501
208
+ """Exposure - a model defined in OpenAPI
209
+
210
+ Keyword Args:
211
+ _check_type (bool): if True, values for parameters in openapi_types
212
+ will be type checked and a TypeError will be
213
+ raised if the wrong type is input.
214
+ Defaults to True
215
+ _path_to_item (tuple/list): This is a list of keys or values to
216
+ drill down to the model in received_data
217
+ when deserializing a response
218
+ _spec_property_naming (bool): True if the variable names in the input data
219
+ are serialized names, as specified in the OpenAPI document.
220
+ False if the variable names in the input data
221
+ are pythonic names, e.g. snake case (default)
222
+ _configuration (Configuration): the instance to use when
223
+ deserializing a file_type parameter.
224
+ If passed, type conversion is attempted
225
+ If omitted no type conversion is done.
226
+ _visited_composed_classes (tuple): This stores a tuple of
227
+ classes that we have traveled through so that
228
+ if we see that class again we will not use its
229
+ discriminator again.
230
+ When traveling through a discriminator, the
231
+ composed schema that is
232
+ is traveled through is added to this set.
233
+ For example if Animal has a discriminator
234
+ petType and we pass in "Dog", and the class Dog
235
+ allOf includes Animal, we move through Animal
236
+ once using the discriminator, and pick Dog.
237
+ Then in Dog, we will make an instance of the
238
+ Animal class but this time we won't travel
239
+ through its discriminator because we passed in
240
+ _visited_composed_classes = (Animal,)
241
+ id (str): [optional] # noqa: E501
242
+ name (str): [optional] # noqa: E501
243
+ group (str): [optional] # noqa: E501
244
+ exposure (float): [optional] # noqa: E501
245
+ rsquare (float): [optional] # noqa: E501
246
+ factors ([UiValueObject]): [optional] # noqa: E501
247
+ """
248
+
249
+ _check_type = kwargs.pop('_check_type', True)
250
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
251
+ _path_to_item = kwargs.pop('_path_to_item', ())
252
+ _configuration = kwargs.pop('_configuration', None)
253
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
254
+
255
+ if args:
256
+ raise ApiTypeError(
257
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
258
+ args,
259
+ self.__class__.__name__,
260
+ ),
261
+ path_to_item=_path_to_item,
262
+ valid_classes=(self.__class__,),
263
+ )
264
+
265
+ self._data_store = {}
266
+ self._check_type = _check_type
267
+ self._spec_property_naming = _spec_property_naming
268
+ self._path_to_item = _path_to_item
269
+ self._configuration = _configuration
270
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
271
+
272
+ for var_name, var_value in kwargs.items():
273
+ if var_name not in self.attribute_map and \
274
+ self._configuration is not None and \
275
+ self._configuration.discard_unknown_keys and \
276
+ self.additional_properties_type is None:
277
+ # discard variable.
278
+ continue
279
+ setattr(self, var_name, var_value)
280
+ if var_name in self.read_only_vars:
281
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
282
+ f"class with read only attributes.")
@@ -0,0 +1,343 @@
1
+ """
2
+ Proposal Generation Engine API
3
+
4
+ Documentation on all available end points in the Proposal Generation API # noqa: E501
5
+
6
+ The version of the OpenAPI document: 0.0.1
7
+ Contact: api@factset.com
8
+ Generated by: https://openapi-generator.tech
9
+ """
10
+
11
+
12
+ import re # noqa: F401
13
+ import sys # noqa: F401
14
+
15
+ from fds.sdk.ProposalGenerationEngine.model_utils import ( # noqa: F401
16
+ ApiTypeError,
17
+ ModelComposed,
18
+ ModelNormal,
19
+ ModelSimple,
20
+ cached_property,
21
+ change_keys_js_to_python,
22
+ convert_js_args_to_python_args,
23
+ date,
24
+ datetime,
25
+ file_type,
26
+ none_type,
27
+ validate_get_composed_info,
28
+ OpenApiModel
29
+ )
30
+ from fds.sdk.ProposalGenerationEngine.exceptions import ApiAttributeError
31
+
32
+
33
+ def lazy_import():
34
+ from fds.sdk.ProposalGenerationEngine.model.entity import Entity
35
+ from fds.sdk.ProposalGenerationEngine.model.investment_all_of import InvestmentAllOf
36
+ globals()['Entity'] = Entity
37
+ globals()['InvestmentAllOf'] = InvestmentAllOf
38
+
39
+
40
+ class Investment(ModelComposed):
41
+ """NOTE: This class is auto generated by OpenAPI Generator.
42
+ Ref: https://openapi-generator.tech
43
+
44
+ Do not edit the class manually.
45
+
46
+ Attributes:
47
+ allowed_values (dict): The key is the tuple path to the attribute
48
+ and the for var_name this is (var_name,). The value is a dict
49
+ with a capitalized key describing the allowed value and an allowed
50
+ value. These dicts store the allowed enum values.
51
+ attribute_map (dict): The key is attribute name
52
+ and the value is json key in definition.
53
+ discriminator_value_class_map (dict): A dict to go from the discriminator
54
+ variable value to the discriminator class name.
55
+ validations (dict): The key is the tuple path to the attribute
56
+ and the for var_name this is (var_name,). The value is a dict
57
+ that stores validations for max_length, min_length, max_items,
58
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
59
+ inclusive_minimum, and regex.
60
+ additional_properties_type (tuple): A tuple of classes accepted
61
+ as additional properties values.
62
+ """
63
+
64
+ allowed_values = {
65
+ }
66
+
67
+ validations = {
68
+ }
69
+
70
+ @cached_property
71
+ def additional_properties_type():
72
+ """
73
+ This must be a method because a model may have properties that are
74
+ of type self, this must run after the class is loaded
75
+ """
76
+ lazy_import()
77
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
78
+
79
+ _nullable = False
80
+
81
+ @cached_property
82
+ def openapi_types():
83
+ """
84
+ This must be a method because a model may have properties that are
85
+ of type self, this must run after the class is loaded
86
+
87
+ Returns
88
+ openapi_types (dict): The key is attribute name
89
+ and the value is attribute type.
90
+ """
91
+ lazy_import()
92
+ return {
93
+ 'id': (str,), # noqa: E501
94
+ 'name': (str,), # noqa: E501
95
+ 'proxy_code': (str,), # noqa: E501
96
+ 'cusip': (str,), # noqa: E501
97
+ 'trading_symbol': (str,), # noqa: E501
98
+ 'security_type': (str,), # noqa: E501
99
+ 'class_name': (str,), # noqa: E501
100
+ 'currency': (str,), # noqa: E501
101
+ }
102
+
103
+ @cached_property
104
+ def discriminator():
105
+ return None
106
+
107
+
108
+ attribute_map = {
109
+ 'id': 'id', # noqa: E501
110
+ 'name': 'name', # noqa: E501
111
+ 'proxy_code': 'proxyCode', # noqa: E501
112
+ 'cusip': 'cusip', # noqa: E501
113
+ 'trading_symbol': 'tradingSymbol', # noqa: E501
114
+ 'security_type': 'securityType', # noqa: E501
115
+ 'class_name': 'className', # noqa: E501
116
+ 'currency': 'currency', # noqa: E501
117
+ }
118
+
119
+ read_only_vars = {
120
+ }
121
+
122
+ @classmethod
123
+ @convert_js_args_to_python_args
124
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
125
+ """Investment - a model defined in OpenAPI
126
+
127
+ Keyword Args:
128
+ _check_type (bool): if True, values for parameters in openapi_types
129
+ will be type checked and a TypeError will be
130
+ raised if the wrong type is input.
131
+ Defaults to True
132
+ _path_to_item (tuple/list): This is a list of keys or values to
133
+ drill down to the model in received_data
134
+ when deserializing a response
135
+ _spec_property_naming (bool): True if the variable names in the input data
136
+ are serialized names, as specified in the OpenAPI document.
137
+ False if the variable names in the input data
138
+ are pythonic names, e.g. snake case (default)
139
+ _configuration (Configuration): the instance to use when
140
+ deserializing a file_type parameter.
141
+ If passed, type conversion is attempted
142
+ If omitted no type conversion is done.
143
+ _visited_composed_classes (tuple): This stores a tuple of
144
+ classes that we have traveled through so that
145
+ if we see that class again we will not use its
146
+ discriminator again.
147
+ When traveling through a discriminator, the
148
+ composed schema that is
149
+ is traveled through is added to this set.
150
+ For example if Animal has a discriminator
151
+ petType and we pass in "Dog", and the class Dog
152
+ allOf includes Animal, we move through Animal
153
+ once using the discriminator, and pick Dog.
154
+ Then in Dog, we will make an instance of the
155
+ Animal class but this time we won't travel
156
+ through its discriminator because we passed in
157
+ _visited_composed_classes = (Animal,)
158
+ id (str): unique id of the entity. [optional] # noqa: E501
159
+ name (str): [optional] # noqa: E501
160
+ proxy_code (str): unique identifier. [optional] # noqa: E501
161
+ cusip (str): [optional] # noqa: E501
162
+ trading_symbol (str): [optional] # noqa: E501
163
+ security_type (str): [optional] # noqa: E501
164
+ class_name (str): [optional] # noqa: E501
165
+ currency (str): [optional] # noqa: E501
166
+ """
167
+
168
+ _check_type = kwargs.pop('_check_type', True)
169
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
170
+ _path_to_item = kwargs.pop('_path_to_item', ())
171
+ _configuration = kwargs.pop('_configuration', None)
172
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
173
+
174
+ self = super(OpenApiModel, cls).__new__(cls)
175
+
176
+ if args:
177
+ raise ApiTypeError(
178
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
179
+ args,
180
+ self.__class__.__name__,
181
+ ),
182
+ path_to_item=_path_to_item,
183
+ valid_classes=(self.__class__,),
184
+ )
185
+
186
+ self._data_store = {}
187
+ self._check_type = _check_type
188
+ self._spec_property_naming = _spec_property_naming
189
+ self._path_to_item = _path_to_item
190
+ self._configuration = _configuration
191
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
192
+
193
+ constant_args = {
194
+ '_check_type': _check_type,
195
+ '_path_to_item': _path_to_item,
196
+ '_spec_property_naming': _spec_property_naming,
197
+ '_configuration': _configuration,
198
+ '_visited_composed_classes': self._visited_composed_classes,
199
+ }
200
+ composed_info = validate_get_composed_info(
201
+ constant_args, kwargs, self)
202
+ self._composed_instances = composed_info[0]
203
+ self._var_name_to_model_instances = composed_info[1]
204
+ self._additional_properties_model_instances = composed_info[2]
205
+ discarded_args = composed_info[3]
206
+
207
+ for var_name, var_value in kwargs.items():
208
+ if var_name in discarded_args and \
209
+ self._configuration is not None and \
210
+ self._configuration.discard_unknown_keys and \
211
+ self._additional_properties_model_instances:
212
+ # discard variable.
213
+ continue
214
+ setattr(self, var_name, var_value)
215
+
216
+ return self
217
+
218
+ required_properties = set([
219
+ '_data_store',
220
+ '_check_type',
221
+ '_spec_property_naming',
222
+ '_path_to_item',
223
+ '_configuration',
224
+ '_visited_composed_classes',
225
+ '_composed_instances',
226
+ '_var_name_to_model_instances',
227
+ '_additional_properties_model_instances',
228
+ ])
229
+
230
+ @convert_js_args_to_python_args
231
+ def __init__(self, *args, **kwargs): # noqa: E501
232
+ """Investment - a model defined in OpenAPI
233
+
234
+ Keyword Args:
235
+ _check_type (bool): if True, values for parameters in openapi_types
236
+ will be type checked and a TypeError will be
237
+ raised if the wrong type is input.
238
+ Defaults to True
239
+ _path_to_item (tuple/list): This is a list of keys or values to
240
+ drill down to the model in received_data
241
+ when deserializing a response
242
+ _spec_property_naming (bool): True if the variable names in the input data
243
+ are serialized names, as specified in the OpenAPI document.
244
+ False if the variable names in the input data
245
+ are pythonic names, e.g. snake case (default)
246
+ _configuration (Configuration): the instance to use when
247
+ deserializing a file_type parameter.
248
+ If passed, type conversion is attempted
249
+ If omitted no type conversion is done.
250
+ _visited_composed_classes (tuple): This stores a tuple of
251
+ classes that we have traveled through so that
252
+ if we see that class again we will not use its
253
+ discriminator again.
254
+ When traveling through a discriminator, the
255
+ composed schema that is
256
+ is traveled through is added to this set.
257
+ For example if Animal has a discriminator
258
+ petType and we pass in "Dog", and the class Dog
259
+ allOf includes Animal, we move through Animal
260
+ once using the discriminator, and pick Dog.
261
+ Then in Dog, we will make an instance of the
262
+ Animal class but this time we won't travel
263
+ through its discriminator because we passed in
264
+ _visited_composed_classes = (Animal,)
265
+ id (str): unique id of the entity. [optional] # noqa: E501
266
+ name (str): [optional] # noqa: E501
267
+ proxy_code (str): unique identifier. [optional] # noqa: E501
268
+ cusip (str): [optional] # noqa: E501
269
+ trading_symbol (str): [optional] # noqa: E501
270
+ security_type (str): [optional] # noqa: E501
271
+ class_name (str): [optional] # noqa: E501
272
+ currency (str): [optional] # noqa: E501
273
+ """
274
+
275
+ _check_type = kwargs.pop('_check_type', True)
276
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
277
+ _path_to_item = kwargs.pop('_path_to_item', ())
278
+ _configuration = kwargs.pop('_configuration', None)
279
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
280
+
281
+ if args:
282
+ raise ApiTypeError(
283
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
284
+ args,
285
+ self.__class__.__name__,
286
+ ),
287
+ path_to_item=_path_to_item,
288
+ valid_classes=(self.__class__,),
289
+ )
290
+
291
+ self._data_store = {}
292
+ self._check_type = _check_type
293
+ self._spec_property_naming = _spec_property_naming
294
+ self._path_to_item = _path_to_item
295
+ self._configuration = _configuration
296
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
297
+
298
+ constant_args = {
299
+ '_check_type': _check_type,
300
+ '_path_to_item': _path_to_item,
301
+ '_spec_property_naming': _spec_property_naming,
302
+ '_configuration': _configuration,
303
+ '_visited_composed_classes': self._visited_composed_classes,
304
+ }
305
+ composed_info = validate_get_composed_info(
306
+ constant_args, kwargs, self)
307
+ self._composed_instances = composed_info[0]
308
+ self._var_name_to_model_instances = composed_info[1]
309
+ self._additional_properties_model_instances = composed_info[2]
310
+ discarded_args = composed_info[3]
311
+
312
+ for var_name, var_value in kwargs.items():
313
+ if var_name in discarded_args and \
314
+ self._configuration is not None and \
315
+ self._configuration.discard_unknown_keys and \
316
+ self._additional_properties_model_instances:
317
+ # discard variable.
318
+ continue
319
+ setattr(self, var_name, var_value)
320
+ if var_name in self.read_only_vars:
321
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
322
+ f"class with read only attributes.")
323
+
324
+ @cached_property
325
+ def _composed_schemas():
326
+ # we need this here to make our import statements work
327
+ # we must store _composed_schemas in here so the code is only run
328
+ # when we invoke this method. If we kept this at the class
329
+ # level we would get an error because the class level
330
+ # code would be run when this module is imported, and these composed
331
+ # classes don't exist yet because their module has not finished
332
+ # loading
333
+ lazy_import()
334
+ return {
335
+ 'anyOf': [
336
+ ],
337
+ 'allOf': [
338
+ Entity,
339
+ InvestmentAllOf,
340
+ ],
341
+ 'oneOf': [
342
+ ],
343
+ }