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,269 @@
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
+
34
+ class SettingsAllOf(ModelNormal):
35
+ """NOTE: This class is auto generated by OpenAPI Generator.
36
+ Ref: https://openapi-generator.tech
37
+
38
+ Do not edit the class manually.
39
+
40
+ Attributes:
41
+ allowed_values (dict): The key is the tuple path to the attribute
42
+ and the for var_name this is (var_name,). The value is a dict
43
+ with a capitalized key describing the allowed value and an allowed
44
+ value. These dicts store the allowed enum values.
45
+ attribute_map (dict): The key is attribute name
46
+ and the value is json key in definition.
47
+ discriminator_value_class_map (dict): A dict to go from the discriminator
48
+ variable value to the discriminator class name.
49
+ validations (dict): The key is the tuple path to the attribute
50
+ and the for var_name this is (var_name,). The value is a dict
51
+ that stores validations for max_length, min_length, max_items,
52
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
53
+ inclusive_minimum, and regex.
54
+ additional_properties_type (tuple): A tuple of classes accepted
55
+ as additional properties values.
56
+ """
57
+
58
+ allowed_values = {
59
+ ('reporting_frequency',): {
60
+ '1': 1,
61
+ '2': 2,
62
+ '4': 4,
63
+ '6': 6,
64
+ '12': 12,
65
+
66
+
67
+ },
68
+ }
69
+
70
+ validations = {
71
+ }
72
+
73
+ @cached_property
74
+ def additional_properties_type():
75
+ """
76
+ This must be a method because a model may have properties that are
77
+ of type self, this must run after the class is loaded
78
+ """
79
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
80
+
81
+ _nullable = False
82
+
83
+ @cached_property
84
+ def openapi_types():
85
+ """
86
+ This must be a method because a model may have properties that are
87
+ of type self, this must run after the class is loaded
88
+
89
+ Returns
90
+ openapi_types (dict): The key is attribute name
91
+ and the value is attribute type.
92
+ """
93
+ return {
94
+ 'confidence_levels': ([float],), # noqa: E501
95
+ 'reporting_frequency': (float,), # noqa: E501
96
+ }
97
+
98
+ @cached_property
99
+ def discriminator():
100
+ return None
101
+
102
+
103
+ attribute_map = {
104
+ 'confidence_levels': 'confidenceLevels', # noqa: E501
105
+ 'reporting_frequency': 'reportingFrequency', # noqa: E501
106
+ }
107
+
108
+ read_only_vars = {
109
+ }
110
+
111
+ _composed_schemas = {}
112
+
113
+ @classmethod
114
+ @convert_js_args_to_python_args
115
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
116
+ """SettingsAllOf - a model defined in OpenAPI
117
+
118
+ Keyword Args:
119
+ _check_type (bool): if True, values for parameters in openapi_types
120
+ will be type checked and a TypeError will be
121
+ raised if the wrong type is input.
122
+ Defaults to True
123
+ _path_to_item (tuple/list): This is a list of keys or values to
124
+ drill down to the model in received_data
125
+ when deserializing a response
126
+ _spec_property_naming (bool): True if the variable names in the input data
127
+ are serialized names, as specified in the OpenAPI document.
128
+ False if the variable names in the input data
129
+ are pythonic names, e.g. snake case (default)
130
+ _configuration (Configuration): the instance to use when
131
+ deserializing a file_type parameter.
132
+ If passed, type conversion is attempted
133
+ If omitted no type conversion is done.
134
+ _visited_composed_classes (tuple): This stores a tuple of
135
+ classes that we have traveled through so that
136
+ if we see that class again we will not use its
137
+ discriminator again.
138
+ When traveling through a discriminator, the
139
+ composed schema that is
140
+ is traveled through is added to this set.
141
+ For example if Animal has a discriminator
142
+ petType and we pass in "Dog", and the class Dog
143
+ allOf includes Animal, we move through Animal
144
+ once using the discriminator, and pick Dog.
145
+ Then in Dog, we will make an instance of the
146
+ Animal class but this time we won't travel
147
+ through its discriminator because we passed in
148
+ _visited_composed_classes = (Animal,)
149
+ confidence_levels ([float]): [optional] # noqa: E501
150
+ reporting_frequency (float): [optional] # noqa: E501
151
+ """
152
+
153
+ _check_type = kwargs.pop('_check_type', True)
154
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
155
+ _path_to_item = kwargs.pop('_path_to_item', ())
156
+ _configuration = kwargs.pop('_configuration', None)
157
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
158
+
159
+ self = super(OpenApiModel, cls).__new__(cls)
160
+
161
+ if args:
162
+ raise ApiTypeError(
163
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
164
+ args,
165
+ self.__class__.__name__,
166
+ ),
167
+ path_to_item=_path_to_item,
168
+ valid_classes=(self.__class__,),
169
+ )
170
+
171
+ self._data_store = {}
172
+ self._check_type = _check_type
173
+ self._spec_property_naming = _spec_property_naming
174
+ self._path_to_item = _path_to_item
175
+ self._configuration = _configuration
176
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
177
+
178
+ for var_name, var_value in kwargs.items():
179
+ if var_name not in self.attribute_map and \
180
+ self._configuration is not None and \
181
+ self._configuration.discard_unknown_keys and \
182
+ self.additional_properties_type is None:
183
+ # discard variable.
184
+ continue
185
+ setattr(self, var_name, var_value)
186
+ return self
187
+
188
+ required_properties = set([
189
+ '_data_store',
190
+ '_check_type',
191
+ '_spec_property_naming',
192
+ '_path_to_item',
193
+ '_configuration',
194
+ '_visited_composed_classes',
195
+ ])
196
+
197
+ @convert_js_args_to_python_args
198
+ def __init__(self, *args, **kwargs): # noqa: E501
199
+ """SettingsAllOf - a model defined in OpenAPI
200
+
201
+ Keyword Args:
202
+ _check_type (bool): if True, values for parameters in openapi_types
203
+ will be type checked and a TypeError will be
204
+ raised if the wrong type is input.
205
+ Defaults to True
206
+ _path_to_item (tuple/list): This is a list of keys or values to
207
+ drill down to the model in received_data
208
+ when deserializing a response
209
+ _spec_property_naming (bool): True if the variable names in the input data
210
+ are serialized names, as specified in the OpenAPI document.
211
+ False if the variable names in the input data
212
+ are pythonic names, e.g. snake case (default)
213
+ _configuration (Configuration): the instance to use when
214
+ deserializing a file_type parameter.
215
+ If passed, type conversion is attempted
216
+ If omitted no type conversion is done.
217
+ _visited_composed_classes (tuple): This stores a tuple of
218
+ classes that we have traveled through so that
219
+ if we see that class again we will not use its
220
+ discriminator again.
221
+ When traveling through a discriminator, the
222
+ composed schema that is
223
+ is traveled through is added to this set.
224
+ For example if Animal has a discriminator
225
+ petType and we pass in "Dog", and the class Dog
226
+ allOf includes Animal, we move through Animal
227
+ once using the discriminator, and pick Dog.
228
+ Then in Dog, we will make an instance of the
229
+ Animal class but this time we won't travel
230
+ through its discriminator because we passed in
231
+ _visited_composed_classes = (Animal,)
232
+ confidence_levels ([float]): [optional] # noqa: E501
233
+ reporting_frequency (float): [optional] # noqa: E501
234
+ """
235
+
236
+ _check_type = kwargs.pop('_check_type', True)
237
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
238
+ _path_to_item = kwargs.pop('_path_to_item', ())
239
+ _configuration = kwargs.pop('_configuration', None)
240
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
241
+
242
+ if args:
243
+ raise ApiTypeError(
244
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
245
+ args,
246
+ self.__class__.__name__,
247
+ ),
248
+ path_to_item=_path_to_item,
249
+ valid_classes=(self.__class__,),
250
+ )
251
+
252
+ self._data_store = {}
253
+ self._check_type = _check_type
254
+ self._spec_property_naming = _spec_property_naming
255
+ self._path_to_item = _path_to_item
256
+ self._configuration = _configuration
257
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
258
+
259
+ for var_name, var_value in kwargs.items():
260
+ if var_name not in self.attribute_map and \
261
+ self._configuration is not None and \
262
+ self._configuration.discard_unknown_keys and \
263
+ self.additional_properties_type is None:
264
+ # discard variable.
265
+ continue
266
+ setattr(self, var_name, var_value)
267
+ if var_name in self.read_only_vars:
268
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
269
+ f"class with read only attributes.")
@@ -0,0 +1,311 @@
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
+
34
+ class Stats(ModelNormal):
35
+ """NOTE: This class is auto generated by OpenAPI Generator.
36
+ Ref: https://openapi-generator.tech
37
+
38
+ Do not edit the class manually.
39
+
40
+ Attributes:
41
+ allowed_values (dict): The key is the tuple path to the attribute
42
+ and the for var_name this is (var_name,). The value is a dict
43
+ with a capitalized key describing the allowed value and an allowed
44
+ value. These dicts store the allowed enum values.
45
+ attribute_map (dict): The key is attribute name
46
+ and the value is json key in definition.
47
+ discriminator_value_class_map (dict): A dict to go from the discriminator
48
+ variable value to the discriminator class name.
49
+ validations (dict): The key is the tuple path to the attribute
50
+ and the for var_name this is (var_name,). The value is a dict
51
+ that stores validations for max_length, min_length, max_items,
52
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
53
+ inclusive_minimum, and regex.
54
+ additional_properties_type (tuple): A tuple of classes accepted
55
+ as additional properties values.
56
+ """
57
+
58
+ allowed_values = {
59
+ ('stats',): {
60
+ 'ANNRETURN': "annReturn",
61
+ 'CUMRETURN': "cumReturn",
62
+ 'MEANRETURN': "meanReturn",
63
+ 'ETR': "etr",
64
+ 'STDEV': "stDev",
65
+ 'ANNSTDEV': "annStDev",
66
+ 'ANNLOSSSTD': "annLossStd",
67
+ 'ANNSTDEV100': "annStDev100",
68
+ 'ETL': "etl",
69
+ 'SKEWNESS': "skewness",
70
+ 'EXCESSKURTOSIS': "excessKurtosis",
71
+ 'VAR': "var",
72
+ 'POSITIVERETURNSRATIO': "positiveReturnsRatio",
73
+ 'SHARPE': "sharpe",
74
+ 'SHARPEEXCESSRETURN': "sharpeExcessReturn",
75
+ 'STARR': "starr",
76
+ 'SORTINO': "sortino",
77
+ 'SORTINOEXCESSRETURN': "sortinoExcessReturn",
78
+ 'ALPHA': "alpha",
79
+ 'ALPHAEXCESSRETURN': "alphaExcessReturn",
80
+ 'BETA': "beta",
81
+ 'BETAEXCESSRETURN': "betaExcessReturn",
82
+ 'UPCAPTURE': "upCapture",
83
+ 'UPCAPTUREMSTAR': "upCaptureMStar",
84
+ 'DOWNCAPTURE': "downCapture",
85
+ 'DOWNCAPTUREMSTAR': "downCaptureMstar",
86
+ 'RSQUARE': "rsquare",
87
+ 'RSQUAREEXCESSRETURN': "rsquareExcessReturn",
88
+ 'TRACKINGERROR': "trackingError",
89
+ 'ANNTRACKINGERROR': "annTrackingError",
90
+ 'INFORMATIONRATIOANNARITHMETICEXCESSRETURN': "informationRatioAnnArithmeticExcessReturn",
91
+ 'BATTINGAVERAGE': "battingAverage",
92
+ 'CORRELATIONMATRIX': "correlationMatrix",
93
+ 'BOXPLOTSUMMARY': "boxplotSummary",
94
+ 'BOXPLOTOUTLIERS': "boxplotOutliers",
95
+ 'MAXDRAWDOWN': "maxDrawdown",
96
+ 'MAXDRAWDOWNPV': "maxDrawdownPV",
97
+ 'MAXDRAWDOWNDATE': "maxDrawdownDate",
98
+ 'MAXDRAWDOWNSTART': "maxDrawdownStart",
99
+ 'MAXDRAWDOWNEND': "maxDrawdownEnd",
100
+ 'MAXDRAWDOWNPERIODS': "maxDrawdownPeriods",
101
+ 'LONGESTDRAWDOWNSTART': "longestDrawdownStart",
102
+ 'LONGESTDRAWDOWNEND': "longestDrawdownEnd",
103
+ 'TOPDRAWDOWNS': "topDrawdowns",
104
+ 'ANNCOMPONENTRETURNATTRIBUTION': "annComponentReturnAttribution",
105
+ 'ANNPERCENTAGERETURNATTRIBUTION': "annPercentageReturnAttribution",
106
+ 'ANNCOMPONENTSTDEVATTRIBUTION': "annComponentStDevAttribution",
107
+ 'ANNPERCENTAGESTDEVATTRIBUTION': "annPercentageStDevAttribution",
108
+ 'CONTRIBUTIONTRANSACTIONS': "contributionTransactions",
109
+ 'WITHDRAWALTRANSACTIONS': "withdrawalTransactions",
110
+ 'FEETRANSACTIONS': "feeTransactions",
111
+
112
+
113
+ },
114
+ }
115
+
116
+ validations = {
117
+ }
118
+
119
+ @cached_property
120
+ def additional_properties_type():
121
+ """
122
+ This must be a method because a model may have properties that are
123
+ of type self, this must run after the class is loaded
124
+ """
125
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
126
+
127
+ _nullable = False
128
+
129
+ @cached_property
130
+ def openapi_types():
131
+ """
132
+ This must be a method because a model may have properties that are
133
+ of type self, this must run after the class is loaded
134
+
135
+ Returns
136
+ openapi_types (dict): The key is attribute name
137
+ and the value is attribute type.
138
+ """
139
+ return {
140
+ 'stats': ([str],), # noqa: E501
141
+ }
142
+
143
+ @cached_property
144
+ def discriminator():
145
+ return None
146
+
147
+
148
+ attribute_map = {
149
+ 'stats': 'stats', # noqa: E501
150
+ }
151
+
152
+ read_only_vars = {
153
+ }
154
+
155
+ _composed_schemas = {}
156
+
157
+ @classmethod
158
+ @convert_js_args_to_python_args
159
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
160
+ """Stats - a model defined in OpenAPI
161
+
162
+ Keyword Args:
163
+ _check_type (bool): if True, values for parameters in openapi_types
164
+ will be type checked and a TypeError will be
165
+ raised if the wrong type is input.
166
+ Defaults to True
167
+ _path_to_item (tuple/list): This is a list of keys or values to
168
+ drill down to the model in received_data
169
+ when deserializing a response
170
+ _spec_property_naming (bool): True if the variable names in the input data
171
+ are serialized names, as specified in the OpenAPI document.
172
+ False if the variable names in the input data
173
+ are pythonic names, e.g. snake case (default)
174
+ _configuration (Configuration): the instance to use when
175
+ deserializing a file_type parameter.
176
+ If passed, type conversion is attempted
177
+ If omitted no type conversion is done.
178
+ _visited_composed_classes (tuple): This stores a tuple of
179
+ classes that we have traveled through so that
180
+ if we see that class again we will not use its
181
+ discriminator again.
182
+ When traveling through a discriminator, the
183
+ composed schema that is
184
+ is traveled through is added to this set.
185
+ For example if Animal has a discriminator
186
+ petType and we pass in "Dog", and the class Dog
187
+ allOf includes Animal, we move through Animal
188
+ once using the discriminator, and pick Dog.
189
+ Then in Dog, we will make an instance of the
190
+ Animal class but this time we won't travel
191
+ through its discriminator because we passed in
192
+ _visited_composed_classes = (Animal,)
193
+ stats ([str]): [optional] # noqa: E501
194
+ """
195
+
196
+ _check_type = kwargs.pop('_check_type', True)
197
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
198
+ _path_to_item = kwargs.pop('_path_to_item', ())
199
+ _configuration = kwargs.pop('_configuration', None)
200
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
201
+
202
+ self = super(OpenApiModel, cls).__new__(cls)
203
+
204
+ if args:
205
+ raise ApiTypeError(
206
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
207
+ args,
208
+ self.__class__.__name__,
209
+ ),
210
+ path_to_item=_path_to_item,
211
+ valid_classes=(self.__class__,),
212
+ )
213
+
214
+ self._data_store = {}
215
+ self._check_type = _check_type
216
+ self._spec_property_naming = _spec_property_naming
217
+ self._path_to_item = _path_to_item
218
+ self._configuration = _configuration
219
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
220
+
221
+ for var_name, var_value in kwargs.items():
222
+ if var_name not in self.attribute_map and \
223
+ self._configuration is not None and \
224
+ self._configuration.discard_unknown_keys and \
225
+ self.additional_properties_type is None:
226
+ # discard variable.
227
+ continue
228
+ setattr(self, var_name, var_value)
229
+ return self
230
+
231
+ required_properties = set([
232
+ '_data_store',
233
+ '_check_type',
234
+ '_spec_property_naming',
235
+ '_path_to_item',
236
+ '_configuration',
237
+ '_visited_composed_classes',
238
+ ])
239
+
240
+ @convert_js_args_to_python_args
241
+ def __init__(self, *args, **kwargs): # noqa: E501
242
+ """Stats - a model defined in OpenAPI
243
+
244
+ Keyword Args:
245
+ _check_type (bool): if True, values for parameters in openapi_types
246
+ will be type checked and a TypeError will be
247
+ raised if the wrong type is input.
248
+ Defaults to True
249
+ _path_to_item (tuple/list): This is a list of keys or values to
250
+ drill down to the model in received_data
251
+ when deserializing a response
252
+ _spec_property_naming (bool): True if the variable names in the input data
253
+ are serialized names, as specified in the OpenAPI document.
254
+ False if the variable names in the input data
255
+ are pythonic names, e.g. snake case (default)
256
+ _configuration (Configuration): the instance to use when
257
+ deserializing a file_type parameter.
258
+ If passed, type conversion is attempted
259
+ If omitted no type conversion is done.
260
+ _visited_composed_classes (tuple): This stores a tuple of
261
+ classes that we have traveled through so that
262
+ if we see that class again we will not use its
263
+ discriminator again.
264
+ When traveling through a discriminator, the
265
+ composed schema that is
266
+ is traveled through is added to this set.
267
+ For example if Animal has a discriminator
268
+ petType and we pass in "Dog", and the class Dog
269
+ allOf includes Animal, we move through Animal
270
+ once using the discriminator, and pick Dog.
271
+ Then in Dog, we will make an instance of the
272
+ Animal class but this time we won't travel
273
+ through its discriminator because we passed in
274
+ _visited_composed_classes = (Animal,)
275
+ stats ([str]): [optional] # noqa: E501
276
+ """
277
+
278
+ _check_type = kwargs.pop('_check_type', True)
279
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
280
+ _path_to_item = kwargs.pop('_path_to_item', ())
281
+ _configuration = kwargs.pop('_configuration', None)
282
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
283
+
284
+ if args:
285
+ raise ApiTypeError(
286
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
287
+ args,
288
+ self.__class__.__name__,
289
+ ),
290
+ path_to_item=_path_to_item,
291
+ valid_classes=(self.__class__,),
292
+ )
293
+
294
+ self._data_store = {}
295
+ self._check_type = _check_type
296
+ self._spec_property_naming = _spec_property_naming
297
+ self._path_to_item = _path_to_item
298
+ self._configuration = _configuration
299
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
300
+
301
+ for var_name, var_value in kwargs.items():
302
+ if var_name not in self.attribute_map and \
303
+ self._configuration is not None and \
304
+ self._configuration.discard_unknown_keys and \
305
+ self.additional_properties_type is None:
306
+ # discard variable.
307
+ continue
308
+ setattr(self, var_name, var_value)
309
+ if var_name in self.read_only_vars:
310
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
311
+ f"class with read only attributes.")