fds.sdk.FactSetQuantFactorLibrary 1.0.13__tar.gz
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.
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/LICENSE +202 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/PKG-INFO +336 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/README.md +321 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/__init__.py +0 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/__init__.py +28 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/api/__init__.py +3 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/api/factors_api.py +673 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/api/helper_api.py +560 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/api_client.py +939 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/apis/__init__.py +18 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/configuration.py +496 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/exceptions.py +160 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/__init__.py +5 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/error_response.py +278 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/error_response_sub_errors.py +268 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/factor_groups_param.py +283 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/factors.py +274 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/factors_param.py +283 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/factors_request.py +300 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/factors_response.py +262 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/frequency.py +283 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/ids.py +283 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/library.py +280 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/library_request.py +268 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model/library_response.py +262 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/model_utils.py +2062 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/models/__init__.py +23 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/FactSetQuantFactorLibrary/rest.py +347 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds/sdk/__init__.py +0 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds.sdk.FactSetQuantFactorLibrary.egg-info/PKG-INFO +336 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds.sdk.FactSetQuantFactorLibrary.egg-info/SOURCES.txt +35 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds.sdk.FactSetQuantFactorLibrary.egg-info/dependency_links.txt +1 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds.sdk.FactSetQuantFactorLibrary.egg-info/requires.txt +3 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/fds.sdk.FactSetQuantFactorLibrary.egg-info/top_level.txt +1 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/setup.cfg +7 -0
- fds.sdk.FactSetQuantFactorLibrary-1.0.13/setup.py +47 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
+
|
|
181
|
+
To apply the Apache License to your work, attach the following
|
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
+
replaced with your own identifying information. (Don't include
|
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
+
comment syntax for the file format. We also recommend that a
|
|
186
|
+
file or class name and description of purpose be included on the
|
|
187
|
+
same "printed page" as the copyright notice for easier
|
|
188
|
+
identification within third-party archives.
|
|
189
|
+
|
|
190
|
+
Copyright 2019 FactSet Research Systems Inc
|
|
191
|
+
|
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
+
you may not use this file except in compliance with the License.
|
|
194
|
+
You may obtain a copy of the License at
|
|
195
|
+
|
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
+
|
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
+
See the License for the specific language governing permissions and
|
|
202
|
+
limitations under the License.
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: fds.sdk.FactSetQuantFactorLibrary
|
|
3
|
+
Version: 1.0.13
|
|
4
|
+
Summary: FactSet Quant Factor Library client library for Python
|
|
5
|
+
Home-page: https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1
|
|
6
|
+
Author: FactSet Research Systems
|
|
7
|
+
License: Apache License, Version 2.0
|
|
8
|
+
Keywords: FactSet,API,SDK
|
|
9
|
+
Platform: UNKNOWN
|
|
10
|
+
Requires-Python: >=3.7
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
|
|
14
|
+
[](https://www.factset.com)
|
|
15
|
+
|
|
16
|
+
# FactSet Quant Factor Library client library for Python
|
|
17
|
+
|
|
18
|
+
[]()
|
|
19
|
+
[](https://pypi.org/project/fds.sdk.FactSetQuantFactorLibrary/)
|
|
20
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
21
|
+
|
|
22
|
+
The FactSet FactSet Quant Factor Library (QFL) API helps to detect investment themes across global equity markets, incorporate ideas into your portfolio construction process, and transform raw data into actionable intelligence. Over 2000+ items spanning Factor Groups in-
|
|
23
|
+
* Classification and Reference Data - Asset Data, Country, Industry, and Size
|
|
24
|
+
* Market - Liquidity, Market Sensitivity, Momentum, Technical, Volatility
|
|
25
|
+
* Core Fundamentals - Efficiency, Growth, Management, Profitability, Quality, Solvency, Value
|
|
26
|
+
* Macro and Cross Asset - Commodity, FX Sensitivity, Debt, Economic
|
|
27
|
+
* Alternative - Analyst Sentiment, Corporate Governance, Crowding, Insider Activity.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
31
|
+
|
|
32
|
+
- API version: 1.0.1
|
|
33
|
+
- SDK version: 1.0.13
|
|
34
|
+
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
35
|
+
|
|
36
|
+
For more information, please visit [http://www.factset.com/api](http://www.factset.com/api)
|
|
37
|
+
|
|
38
|
+
## Requirements
|
|
39
|
+
|
|
40
|
+
* Python >= 3.7
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
### Poetry
|
|
45
|
+
|
|
46
|
+
```shell
|
|
47
|
+
poetry add fds.sdk.utils fds.sdk.FactSetQuantFactorLibrary==1.0.13
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### pip
|
|
51
|
+
|
|
52
|
+
```shell
|
|
53
|
+
pip install fds.sdk.utils fds.sdk.FactSetQuantFactorLibrary==1.0.13
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
1. [Generate authentication credentials](../../../../README.md#authentication).
|
|
59
|
+
2. Setup Python environment.
|
|
60
|
+
1. Install and activate python 3.7+. If you're using [pyenv](https://github.com/pyenv/pyenv):
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
pyenv install 3.9.7
|
|
64
|
+
pyenv shell 3.9.7
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
2. (optional) [Install poetry](https://python-poetry.org/docs/#installation).
|
|
68
|
+
3. [Install dependencies](#installation).
|
|
69
|
+
4. Run the following:
|
|
70
|
+
|
|
71
|
+
> [!IMPORTANT]
|
|
72
|
+
> The parameter variables defined below are just examples and may potentially contain non valid values. Please replace them with valid values.
|
|
73
|
+
|
|
74
|
+
### Example Code
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
from fds.sdk.utils.authentication import ConfidentialClient
|
|
78
|
+
|
|
79
|
+
import fds.sdk.FactSetQuantFactorLibrary
|
|
80
|
+
from fds.sdk.FactSetQuantFactorLibrary.api import factors_api
|
|
81
|
+
from fds.sdk.FactSetQuantFactorLibrary.models import *
|
|
82
|
+
from dateutil.parser import parse as dateutil_parser
|
|
83
|
+
from pprint import pprint
|
|
84
|
+
|
|
85
|
+
# See configuration.py for a list of all supported configuration parameters.
|
|
86
|
+
|
|
87
|
+
# Examples for each supported authentication method are below,
|
|
88
|
+
# choose one that satisfies your use case.
|
|
89
|
+
|
|
90
|
+
# (Preferred) OAuth 2.0: FactSetOAuth2
|
|
91
|
+
# See https://github.com/FactSet/enterprise-sdk#oauth-20
|
|
92
|
+
# for information on how to create the app-config.json file
|
|
93
|
+
#
|
|
94
|
+
# The confidential client instance should be reused in production environments.
|
|
95
|
+
# See https://github.com/FactSet/enterprise-sdk-utils-python#authentication
|
|
96
|
+
# for more information on using the ConfidentialClient class
|
|
97
|
+
configuration = fds.sdk.FactSetQuantFactorLibrary.Configuration(
|
|
98
|
+
fds_oauth_client=ConfidentialClient('/path/to/app-config.json')
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Basic authentication: FactSetApiKey
|
|
102
|
+
# See https://github.com/FactSet/enterprise-sdk#api-key
|
|
103
|
+
# for information how to create an API key
|
|
104
|
+
# configuration = fds.sdk.FactSetQuantFactorLibrary.Configuration(
|
|
105
|
+
# username='USERNAME-SERIAL',
|
|
106
|
+
# password='API-KEY'
|
|
107
|
+
# )
|
|
108
|
+
|
|
109
|
+
# Enter a context with an instance of the API client
|
|
110
|
+
with fds.sdk.FactSetQuantFactorLibrary.ApiClient(configuration) as api_client:
|
|
111
|
+
# Create an instance of the API class
|
|
112
|
+
api_instance = factors_api.FactorsApi(api_client)
|
|
113
|
+
ids = ["FDS-US"] # [str] | Security or Entity identifiers. FactSet Identifiers, tickers, CUSIP and SEDOL are accepted as inputs. **NOTE:** Fixed Income identifiers, ETFs, and Options are not accepted in this endpoint. <p>***Maximum possible ids limit** = 3500 per request*</p> `NOTE:` *The maximum possible ids limit for a request will **decrease** based on the size of the historical date range, the number of factors or factorGroups requested.* *<p> GET Method URL request lines are also limited to a total length of 8192 bytes (8KB). In cases where the service allows for thousands of ids, which may lead to exceeding this request line limit of 8KB, its advised for any requests with large request lines to be requested through the respective \"POST\" method.</p>*
|
|
114
|
+
factors = ["rsi21D","ulcer252D","turbulence21D"] # [str] | Array of individual Factor Items requested. For a list of all available factors and descriptions use the `/library` endpoint.***<p>factors limit** = 20 individual factors per request*
|
|
115
|
+
start_date = "2020-11-30" # str | The start date requested for a given date range in **YYYY-MM-DD** format. Future dates (T+1) are not accepted in this endpoint.
|
|
116
|
+
end_date = "2021-11-30" # str | The end date requested for a given date range in **YYYY-MM-DD** format. Future dates (T+1) are not accepted in this endpoint. **NOTE:** The input endDate must come AFTER the input startDate.
|
|
117
|
+
factor_groups = ["Momentum","Technical","Volatility"] # [str] | Fetch a collection of Factors that fall within one of the below \"groups\". For example, resting factorGroup=Momentum will return all factors under the momentum group. To know which items are available in each group use the /library endpoint.***<p>factor groups limit** = 5 factor groups per request* ### Classification and Reference |Group|Descriptions| |---|---| |Asset_Data|Easily input security-level metadata into your quantitative research process. Common metrics used include Days Since Report, Days to Report, ADR Flag, and Minimum Lot Size. Integrate variables from FactSet Reference, FactSet Fundamentals, and FactSet Estimates databases to impose portfolio constraints and access general reference data.| |Country|Evaluate securities based on the countries in which they have the highest exposure. Analyze company-level exposures across various countries and measure how concentrated a firm’s business is within their countries of operation. Metrics are derived from FactSet Reference and FactSet Geographic Revenue Exposure (GeoRev) databases and include Country Exposure, Country of Incorporation, and Country of Risk.| |Industry|Classify securities based on the industries in which they generate the majority of their revenues. Incorporate variables from the FactSet Revere Business and Industry Classification System (RBICS) database to measure how concentrated a firm’s business is within the industries they operate and across various sub-sectors. Common metrics include Industry Classifications, Industry Exposures, and Industry Concentration.| |Size|Assess how large or small a company is relative to industry peers. Create size buckets and clarify the systematic portion of company returns using variables from FactSet Prices, FactSet RBICS, FactSet Fundamentals, and FactSet Estimates. Common metrics include Size Classification, Enterprise Value, and Market Share.| ### Market Factors |Group|Descriptions| |---|---| |Liquidity|Assess how investible a security is, as well as the potential market impact of a trade using signals built off pricing and volume data from FactSet Prices. Integrate factors as components into your alpha models to evaluate systematic risk or input them into your portfolio construction models to dictate how much of an asset can be bought or sold based on liquidity levels. Common metrics include Average Dollars Traded, Share Turnover, and Bid Ask Spread.| |Market Sensitivity|Clarify the common variations in stock returns attributable to the performance of their local market indices. Leverage regressions performed between security-level and market-index returns across different return horizons and methodologies. Metrics are derived from FactSet Prices and include Beta R-Squared, Up Market Beta, and Down Market Beta.| |Momentum|Analyze the historical momentum of a security and uncover how each underlying data item, calculation, and horizon can be meaningful in different situations. Metrics are derived from FactSet Prices and include 52W Position, Return Momentum, and Velocity.| |Technical|Forecast the direction of future price movements based on historical market data and leverage heuristic or pattern-based signals from FactSet Prices. Common metrics include Average True Range, Ulcer Performance Index, and Money Flow Volume.| |Volatility|Measure the uncertainty in asset price movements with indicators from the FactSet Prices database. Capture various forms of uncertainty by employing statistical calculations on security performance data. Common metrics include Return Volatility, Semivariance, and Turbulence.| ### Core Fundamentals |Group|Descriptions| |---|---| |Efficiency|Leverage core financial data to determine how effectively a company uses its assets, collects payments, and operates its business. Most variables are measured as turnover ratios and include changes over time to provide transparency into the efficiency of each business process. Metrics are derived from FactSet Fundamentals and FactSet Estimates and include Asset Turnover, Receivables Turnover, and Cash Conversion Cycle| |Growth|Measure a company’s ability to grow faster than its peers. Compare the future expected growth of a company with its historical growth and view growth rates adjusted for stability. Integrate variables from FactSet RBICS, FactSet Fundamentals, and FactSet Estimates to analyze growth rates over multiple horizons including Market Share, Sales, and EPS Growth| |Management|Gain insight into how management finances their business and the decisions they make that impact the core financial statements. These choices are reflected in changes to total debt or equity, the overall size of the balance sheet, and decisions around the accounting methods used. Metrics are derived from FactSet Fundamentals and FactSet Estimates and include Capital Expenditures (CAPEX) Growth, Equity Buyback Ratio, and Depreciation & Amortization Variability| |Profitability|Evaluate a company’s ability to generate income relative to its revenue or balance sheet metrics. Identify lucrative businesses relative to their industry, region, and size profile. Metrics are derived from FactSet Fundamentals and FactSet Estimates and include Return on Assets, Return on Invested Capital Change, and Return on Total Equity |Quality|Understand the overall financial health and quality of a company’s business. Use historical data from FactSet Fundamentals to analyze balance sheet health, stability of earnings and profit margins, variability in cash flows, and trends that look beyond headline financial metrics. Common metrics include Cash Earnings Ratio Variability, Revenue Stability, and Accruals Ratios. Composite quality scores (i.e., the Piotroski F-Score, Beneish M-Score, and Altman Z-Score) and their underlying components are also available as individual metrics.| |Solvency|Measure a company’s ability to meet their short- and long-term financial obligations and determine the degree of leverage employed to run their business. Incorporate financial ratios from FactSet Fundamentals and FactSet Estimates to quantify liability or debt obligation relative to earnings, cash flows, equities, or items from the asset side of the balance sheet. Common metrics include Current Ratio, Current Asset Liquidity, and Debt to Equity Change.| |Value|Quickly determine how cheap or expensive a company is based on common security-level characteristics from FactSet Prices, FactSet Fundamentals, and FactSet Estimates. Apply factors as an intersection between other factors for a more customized analysis, such as finding the cheapest stocks among the highest quality companies. Common metrics include Earnings Yield, Book to Price, and Revenue to Enterprise Value.| ### Macro and Cross-Asset |Group|Descriptions| |---|---| |Commodity|Quantify the impact movements in the commodity markets have on equity prices. Metrics are derived from FactSet Prices and allow you to measure company-level exposure to commodities such as Gold, Crude Oil, Coffee, and Live Cattle.| |FX_Sensitivity| Analyze security-level sensitivity to fluctuations in the currency markets. Metrics are derived from FactSet Prices and allow you to identify company exposures to currencies such as USD, EUR, JPY, and CNY. |Debt|Uncover details related to company debt through issuer-level factor exposures. Use the FactSet Fixed Income Prices & Derived Analytics database to aggregate metrics at the company level. Common metrics include Effective Duration, Option Adjusted Spread, and Yield to Worst.| |Economic|Capture daily security exposures to leading economic indicator forecasts. Leverage the Quant Factor Library’s detailed country exposure model to attribute economic measures to individual companies. Metrics are derived from FactSet Economic Estimates and include Real GPD Growth, Industrial Production Growth, Core CPI Inflation, and Policy Rates. ### Alternative |Group|Descriptions| |---|---| |Analyst_Sentiment|Analyze a security’s outlook from the perspective of a sell-side research analyst. Leverage consensus estimates data from the FactSet Estimates database to analyze the directional change in estimate revisions for various financial statement items and time periods. Common metrics include Sales Estimate Revisions, Free Cash Flow Estimate Revisions, and Robust Estimate Revisions.| |Corporate_Governance|Identify companies with strong corporate governance. Analyze the profile of a company’s management and board based on tenure, diversity, compensation incentives, and more factors from the FactSet People database. Common metrics include Management - Average Age, Board - Activist Member, and Executives - Average Bonus.| |Crowding|Understand the degree to which investors own, purchase, or sell a security. View characteristics of each investor’s profile and characterize crowding from passive, active, institutional, ETF, and hedge fund investors. Use metrics from FactSet Ownership, FactSet Prices, and FactSet Fundamentals to help identify potential effects of crowding such as whether certain investor types are acquiring or divesting from a given security. Common metrics include Active Buyer Percent of Portfolio Change, ETF Days to Liquidate, and Hedge Fund Percent Outstanding.| |Insider_Activity|Measure the degree to which insiders own, purchase, or sell their company’s stock. Analyze the sentiment of those with access to material non-public information or determine how the amount of insider ownership may impact management’s key business decisions. Metrics are derived from FactSet Ownership and include Insider Percent Outstanding, Insider Number of Buys, and Insider Seller Position Change. |ESG|Analyze Environmental, Social and Governance (ESG) behavior, which are aggregated and categorized into continuously updated, material ESG scores to uncover risks and opportunities from companies. Truvalue Labs focuses on company ESG behavior from external sources and includes both positive and negative events that go beyond traditional sources of ESG risk data. (optional)
|
|
118
|
+
frequency = "M" # str | Controls the display frequency of the data returned. * **D** = Daily * **W** = Weekly, based on the last day of the week of the start date. * **M** = Monthly, based on the last trading day of the month. * **AM** = Monthly, based on the start date (e.g., if the start date is June 16, data is displayed for June 16, May 16, April 16 etc.). * **CQ** = Quarterly based on the last trading day of the calendar quarter (March, June, September, or December). * **AY** = Actual Annual, based on the start date. * **CY** = Calendar Annual, based on the last trading day of the calendar year. (optional) if omitted the server will use the default value of "M"
|
|
119
|
+
|
|
120
|
+
try:
|
|
121
|
+
# Retrieves Quant Factors for a small list of ids.
|
|
122
|
+
# example passing only required values which don't have defaults set
|
|
123
|
+
# and optional values
|
|
124
|
+
api_response = api_instance.get_factors(ids, factors, start_date, end_date, factor_groups=factor_groups, frequency=frequency)
|
|
125
|
+
|
|
126
|
+
pprint(api_response)
|
|
127
|
+
except fds.sdk.FactSetQuantFactorLibrary.ApiException as e:
|
|
128
|
+
print("Exception when calling FactorsApi->get_factors: %s\n" % e)
|
|
129
|
+
|
|
130
|
+
# # Get response, http status code and response headers
|
|
131
|
+
# try:
|
|
132
|
+
# # Retrieves Quant Factors for a small list of ids.
|
|
133
|
+
# api_response, http_status_code, response_headers = api_instance.get_factors_with_http_info(ids, factors, start_date, end_date, factor_groups=factor_groups, frequency=frequency)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
# pprint(api_response)
|
|
137
|
+
# pprint(http_status_code)
|
|
138
|
+
# pprint(response_headers)
|
|
139
|
+
# except fds.sdk.FactSetQuantFactorLibrary.ApiException as e:
|
|
140
|
+
# print("Exception when calling FactorsApi->get_factors: %s\n" % e)
|
|
141
|
+
|
|
142
|
+
# # Get response asynchronous
|
|
143
|
+
# try:
|
|
144
|
+
# # Retrieves Quant Factors for a small list of ids.
|
|
145
|
+
# async_result = api_instance.get_factors_async(ids, factors, start_date, end_date, factor_groups=factor_groups, frequency=frequency)
|
|
146
|
+
# api_response = async_result.get()
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
# pprint(api_response)
|
|
150
|
+
# except fds.sdk.FactSetQuantFactorLibrary.ApiException as e:
|
|
151
|
+
# print("Exception when calling FactorsApi->get_factors: %s\n" % e)
|
|
152
|
+
|
|
153
|
+
# # Get response, http status code and response headers asynchronous
|
|
154
|
+
# try:
|
|
155
|
+
# # Retrieves Quant Factors for a small list of ids.
|
|
156
|
+
# async_result = api_instance.get_factors_with_http_info_async(ids, factors, start_date, end_date, factor_groups=factor_groups, frequency=frequency)
|
|
157
|
+
# api_response, http_status_code, response_headers = async_result.get()
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
# pprint(api_response)
|
|
161
|
+
# pprint(http_status_code)
|
|
162
|
+
# pprint(response_headers)
|
|
163
|
+
# except fds.sdk.FactSetQuantFactorLibrary.ApiException as e:
|
|
164
|
+
# print("Exception when calling FactorsApi->get_factors: %s\n" % e)
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Using Pandas
|
|
169
|
+
|
|
170
|
+
To convert an API response to a Pandas DataFrame, it is necessary to transform it first to a dictionary.
|
|
171
|
+
```python
|
|
172
|
+
import pandas as pd
|
|
173
|
+
|
|
174
|
+
response_dict = api_response.to_dict()['data']
|
|
175
|
+
|
|
176
|
+
simple_json_response = pd.DataFrame(response_dict)
|
|
177
|
+
nested_json_response = pd.json_normalize(response_dict)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Debugging
|
|
181
|
+
|
|
182
|
+
The SDK uses the standard library [`logging`](https://docs.python.org/3/library/logging.html#module-logging) module.
|
|
183
|
+
|
|
184
|
+
Setting `debug` to `True` on an instance of the `Configuration` class sets the log-level of related packages to `DEBUG`
|
|
185
|
+
and enables additional logging in Pythons [HTTP Client](https://docs.python.org/3/library/http.client.html).
|
|
186
|
+
|
|
187
|
+
**Note**: This prints out sensitive information (e.g. the full request and response). Use with care.
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
import logging
|
|
191
|
+
import fds.sdk.FactSetQuantFactorLibrary
|
|
192
|
+
|
|
193
|
+
logging.basicConfig(level=logging.DEBUG)
|
|
194
|
+
|
|
195
|
+
configuration = fds.sdk.FactSetQuantFactorLibrary.Configuration(...)
|
|
196
|
+
configuration.debug = True
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Configure a Proxy
|
|
200
|
+
|
|
201
|
+
You can pass proxy settings to the Configuration class:
|
|
202
|
+
|
|
203
|
+
* `proxy`: The URL of the proxy to use.
|
|
204
|
+
* `proxy_headers`: a dictionary to pass additional headers to the proxy (e.g. `Proxy-Authorization`).
|
|
205
|
+
|
|
206
|
+
```python
|
|
207
|
+
import fds.sdk.FactSetQuantFactorLibrary
|
|
208
|
+
|
|
209
|
+
configuration = fds.sdk.FactSetQuantFactorLibrary.Configuration(
|
|
210
|
+
# ...
|
|
211
|
+
proxy="http://secret:password@localhost:5050",
|
|
212
|
+
proxy_headers={
|
|
213
|
+
"Custom-Proxy-Header": "Custom-Proxy-Header-Value"
|
|
214
|
+
}
|
|
215
|
+
)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Custom SSL Certificate
|
|
219
|
+
|
|
220
|
+
TLS/SSL certificate verification can be configured with the following Configuration parameters:
|
|
221
|
+
|
|
222
|
+
* `ssl_ca_cert`: a path to the certificate to use for verification in `PEM` format.
|
|
223
|
+
* `verify_ssl`: setting this to `False` disables the verification of certificates.
|
|
224
|
+
Disabling the verification is not recommended, but it might be useful during
|
|
225
|
+
local development or testing.
|
|
226
|
+
|
|
227
|
+
```python
|
|
228
|
+
import fds.sdk.FactSetQuantFactorLibrary
|
|
229
|
+
|
|
230
|
+
configuration = fds.sdk.FactSetQuantFactorLibrary.Configuration(
|
|
231
|
+
# ...
|
|
232
|
+
ssl_ca_cert='/path/to/ca.pem'
|
|
233
|
+
)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Request Retries
|
|
237
|
+
|
|
238
|
+
In case the request retry behaviour should be customized, it is possible to pass a `urllib3.Retry` object to the `retry` property of the Configuration.
|
|
239
|
+
|
|
240
|
+
```python
|
|
241
|
+
from urllib3 import Retry
|
|
242
|
+
import fds.sdk.FactSetQuantFactorLibrary
|
|
243
|
+
|
|
244
|
+
configuration = fds.sdk.FactSetQuantFactorLibrary.Configuration(
|
|
245
|
+
# ...
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
configuration.retries = Retry(total=3, status_forcelist=[500, 502, 503, 504])
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
## Documentation for API Endpoints
|
|
253
|
+
|
|
254
|
+
All URIs are relative to *https://api.factset.com/content*
|
|
255
|
+
|
|
256
|
+
Class | Method | HTTP request | Description
|
|
257
|
+
------------ | ------------- | ------------- | -------------
|
|
258
|
+
*FactorsApi* | [**get_factors**](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/FactorsApi.md#get_factors) | **GET** /factset-quant-factor-library/v1/factors | Retrieves Quant Factors for a small list of ids.
|
|
259
|
+
*FactorsApi* | [**get_factors_for_list**](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/FactorsApi.md#get_factors_for_list) | **POST** /factset-quant-factor-library/v1/factors | Retrieves Quant Factors for a large list of ids.
|
|
260
|
+
*HelperApi* | [**get_factor_library**](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/HelperApi.md#get_factor_library) | **GET** /factset-quant-factor-library/v1/library | Retrieve a list of all available factors with relevant meta data.
|
|
261
|
+
*HelperApi* | [**get_factor_library_list**](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/HelperApi.md#get_factor_library_list) | **POST** /factset-quant-factor-library/v1/library | Retrieves a list of all available factors with relevant meta data.
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
## Documentation For Models
|
|
265
|
+
|
|
266
|
+
- [ErrorResponse](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/ErrorResponse.md)
|
|
267
|
+
- [ErrorResponseSubErrors](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/ErrorResponseSubErrors.md)
|
|
268
|
+
- [FactorGroupsParam](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/FactorGroupsParam.md)
|
|
269
|
+
- [Factors](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/Factors.md)
|
|
270
|
+
- [FactorsParam](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/FactorsParam.md)
|
|
271
|
+
- [FactorsRequest](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/FactorsRequest.md)
|
|
272
|
+
- [FactorsResponse](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/FactorsResponse.md)
|
|
273
|
+
- [Frequency](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/Frequency.md)
|
|
274
|
+
- [Ids](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/Ids.md)
|
|
275
|
+
- [Library](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/Library.md)
|
|
276
|
+
- [LibraryRequest](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/LibraryRequest.md)
|
|
277
|
+
- [LibraryResponse](https://github.com/FactSet/enterprise-sdk/tree/main/code/python/FactSetQuantFactorLibrary/v1/docs/LibraryResponse.md)
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
## Documentation For Authorization
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
## FactSetApiKey
|
|
284
|
+
|
|
285
|
+
- **Type**: HTTP basic authentication
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
## FactSetOAuth2
|
|
289
|
+
|
|
290
|
+
- **Type**: OAuth
|
|
291
|
+
- **Flow**: application
|
|
292
|
+
- **Authorization URL**:
|
|
293
|
+
- **Scopes**: N/A
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
## Notes for Large OpenAPI documents
|
|
297
|
+
If the OpenAPI document is large, imports in fds.sdk.FactSetQuantFactorLibrary.apis and fds.sdk.FactSetQuantFactorLibrary.models may fail with a
|
|
298
|
+
RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:
|
|
299
|
+
|
|
300
|
+
Solution 1:
|
|
301
|
+
Use specific imports for apis and models like:
|
|
302
|
+
- `from fds.sdk.FactSetQuantFactorLibrary.api.default_api import DefaultApi`
|
|
303
|
+
- `from fds.sdk.FactSetQuantFactorLibrary.model.pet import Pet`
|
|
304
|
+
|
|
305
|
+
Solution 2:
|
|
306
|
+
Before importing the package, adjust the maximum recursion limit as shown below:
|
|
307
|
+
```
|
|
308
|
+
import sys
|
|
309
|
+
sys.setrecursionlimit(1500)
|
|
310
|
+
import fds.sdk.FactSetQuantFactorLibrary
|
|
311
|
+
from fds.sdk.FactSetQuantFactorLibrary.apis import *
|
|
312
|
+
from fds.sdk.FactSetQuantFactorLibrary.models import *
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Contributing
|
|
316
|
+
|
|
317
|
+
Please refer to the [contributing guide](../../../../CONTRIBUTING.md).
|
|
318
|
+
|
|
319
|
+
## Copyright
|
|
320
|
+
|
|
321
|
+
Copyright 2022 FactSet Research Systems Inc
|
|
322
|
+
|
|
323
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
324
|
+
you may not use this file except in compliance with the License.
|
|
325
|
+
You may obtain a copy of the License at
|
|
326
|
+
|
|
327
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
328
|
+
|
|
329
|
+
Unless required by applicable law or agreed to in writing, software
|
|
330
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
331
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
332
|
+
See the License for the specific language governing permissions and
|
|
333
|
+
limitations under the License.
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|