koichi12 commited on
Commit
2e832cb
·
verified ·
1 Parent(s): 7561da3

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .venv/lib/python3.11/site-packages/colorful/colors.py +101 -0
  2. .venv/lib/python3.11/site-packages/colorful/core.py +551 -0
  3. .venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/INSTALLER +1 -0
  4. .venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/METADATA +563 -0
  5. .venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/RECORD +96 -0
  6. .venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/WHEEL +4 -0
  7. .venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/entry_points.txt +5 -0
  8. .venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/licenses/LICENSE +21 -0
  9. .venv/lib/python3.11/site-packages/grpc_status/__init__.py +13 -0
  10. .venv/lib/python3.11/site-packages/grpc_status/__pycache__/__init__.cpython-311.pyc +0 -0
  11. .venv/lib/python3.11/site-packages/grpc_status/__pycache__/_async.cpython-311.pyc +0 -0
  12. .venv/lib/python3.11/site-packages/grpc_status/__pycache__/_common.cpython-311.pyc +0 -0
  13. .venv/lib/python3.11/site-packages/grpc_status/__pycache__/rpc_status.cpython-311.pyc +0 -0
  14. .venv/lib/python3.11/site-packages/grpc_status/_async.py +58 -0
  15. .venv/lib/python3.11/site-packages/grpc_status/_common.py +27 -0
  16. .venv/lib/python3.11/site-packages/grpc_status/rpc_status.py +96 -0
  17. .venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/INSTALLER +1 -0
  18. .venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/METADATA +80 -0
  19. .venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/RECORD +14 -0
  20. .venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/WHEEL +4 -0
  21. .venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/licenses/LICENSE +19 -0
  22. .venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/INSTALLER +1 -0
  23. .venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/LICENSE.txt +28 -0
  24. .venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/METADATA +75 -0
  25. .venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/RECORD +57 -0
  26. .venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/WHEEL +4 -0
  27. .venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/entry_points.txt +3 -0
  28. .venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/INSTALLER +1 -0
  29. .venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/License.txt +1568 -0
  30. .venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/METADATA +35 -0
  31. .venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/RECORD +36 -0
  32. .venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/WHEEL +5 -0
  33. .venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/top_level.txt +1 -0
  34. .venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/INSTALLER +1 -0
  35. .venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/LICENSE +18 -0
  36. .venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/METADATA +124 -0
  37. .venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/RECORD +28 -0
  38. .venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/WHEEL +4 -0
  39. .venv/lib/python3.11/site-packages/pytest/__init__.py +172 -0
  40. .venv/lib/python3.11/site-packages/pytest/__main__.py +9 -0
  41. .venv/lib/python3.11/site-packages/pytest/__pycache__/__init__.cpython-311.pyc +0 -0
  42. .venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc +0 -0
  43. .venv/lib/python3.11/site-packages/pytest/py.typed +0 -0
  44. .venv/lib/python3.11/site-packages/torchaudio/_extension/__init__.py +74 -0
  45. .venv/lib/python3.11/site-packages/torchaudio/_extension/__pycache__/__init__.cpython-311.pyc +0 -0
  46. .venv/lib/python3.11/site-packages/torchaudio/_extension/__pycache__/utils.cpython-311.pyc +0 -0
  47. .venv/lib/python3.11/site-packages/torchaudio/_extension/utils.py +180 -0
  48. .venv/lib/python3.11/site-packages/torchaudio/datasets/__pycache__/__init__.cpython-311.pyc +0 -0
  49. .venv/lib/python3.11/site-packages/torchaudio/datasets/__pycache__/cmuarctic.cpython-311.pyc +0 -0
  50. .venv/lib/python3.11/site-packages/torchaudio/datasets/__pycache__/cmudict.cpython-311.pyc +0 -0
.venv/lib/python3.11/site-packages/colorful/colors.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """
4
+ colorful
5
+ ~~~~~~~~
6
+
7
+ Terminal string styling done right, in Python.
8
+
9
+ :copyright: (c) 2017 by Timo Furrer <tuxtimo@gmail.com>
10
+ :license: MIT, see LICENSE for more details.
11
+ """
12
+
13
+ import json
14
+
15
+ from . import utils
16
+
17
+
18
+ def parse_colors(path):
19
+ """Parse the given color files.
20
+
21
+ Supported are:
22
+ * .txt for X11 colors
23
+ * .json for colornames
24
+ """
25
+ if path.endswith(".txt"):
26
+ return parse_rgb_txt_file(path)
27
+ elif path.endswith(".json"):
28
+ return parse_json_color_file(path)
29
+
30
+ raise TypeError("colorful only supports .txt and .json files for colors")
31
+
32
+
33
+ def parse_rgb_txt_file(path):
34
+ """
35
+ Parse the given rgb.txt file into a Python dict.
36
+
37
+ See https://en.wikipedia.org/wiki/X11_color_names for more information
38
+
39
+ :param str path: the path to the X11 rgb.txt file
40
+ """
41
+ #: Holds the generated color dict
42
+ color_dict = {}
43
+
44
+ with open(path, 'r') as rgb_txt:
45
+ for line in rgb_txt:
46
+ line = line.strip()
47
+ if not line or line.startswith('!'):
48
+ continue # skip comments
49
+
50
+ parts = line.split()
51
+ color_dict[" ".join(parts[3:])] = (int(parts[0]), int(parts[1]), int(parts[2]))
52
+
53
+ return color_dict
54
+
55
+
56
+ def parse_json_color_file(path):
57
+ """Parse a JSON color file.
58
+
59
+ The JSON has to be in the following format:
60
+
61
+ .. code:: json
62
+
63
+ [{"name": "COLOR_NAME", "hex": "#HEX"}, ...]
64
+
65
+ :param str path: the path to the JSON color file
66
+ """
67
+ with open(path, "r") as color_file:
68
+ color_list = json.load(color_file)
69
+
70
+ # transform raw color list into color dict
71
+ color_dict = {c["name"]: c["hex"] for c in color_list}
72
+ return color_dict
73
+
74
+
75
+ def sanitize_color_palette(colorpalette):
76
+ """
77
+ Sanitze the given color palette so it can
78
+ be safely used by Colorful.
79
+
80
+ It will convert colors specified in hex RGB to
81
+ a RGB channel triplet.
82
+ """
83
+ new_palette = {}
84
+
85
+ def __make_valid_color_name(name):
86
+ """
87
+ Convert the given name into a valid colorname
88
+ """
89
+ if len(name) == 1:
90
+ name = name[0]
91
+ return name[:1].lower() + name[1:]
92
+
93
+ return name[0].lower() + ''.join(word.capitalize() for word in name[1:])
94
+
95
+ for key, value in colorpalette.items():
96
+ if isinstance(value, str):
97
+ # we assume it's a hex RGB value
98
+ value = utils.hex_to_rgb(value)
99
+ new_palette[__make_valid_color_name(key.split())] = value
100
+
101
+ return new_palette
.venv/lib/python3.11/site-packages/colorful/core.py ADDED
@@ -0,0 +1,551 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """
4
+ colorful
5
+ ~~~~~~~~
6
+
7
+ Terminal string styling done right, in Python.
8
+
9
+ :copyright: (c) 2017 by Timo Furrer <tuxtimo@gmail.com>
10
+ :license: MIT, see LICENSE for more details.
11
+ """
12
+
13
+ import os
14
+
15
+ from . import ansi
16
+ from . import colors
17
+ from . import styles
18
+ from . import terminal
19
+
20
+ #: Holds the name of the env variable which is
21
+ # used as path to the default rgb.txt file
22
+ DEFAULT_RGB_TXT_PATH = os.environ.get(
23
+ 'COLORFUL_DEFAULT_COLOR_PALETTE',
24
+ os.path.join(os.path.dirname(__file__), 'data', 'rgb.txt'))
25
+
26
+ #: Holds the color names mapped to RGB channels
27
+ COLOR_PALETTE = colors.parse_colors(path=DEFAULT_RGB_TXT_PATH)
28
+
29
+ #: Holds the path to the built-in `colornames` color palette file
30
+ COLORNAMES_COLORS_PATH = os.path.join(os.path.dirname(__file__), "data", "colornames.json")
31
+
32
+
33
+ class ColorfulError(Exception):
34
+ """
35
+ Exception which is raised for Colorful specific
36
+ usage errors.
37
+ """
38
+
39
+
40
+ class ColorfulAttributeError(AttributeError, ColorfulError):
41
+ """
42
+ Exception which is raised for Colorful specific
43
+ usage errors raised during ``__getattr__`` calls.
44
+
45
+ This is to ensure a correct ``__getattr__`` protocol implementation.
46
+ """
47
+
48
+
49
+ def translate_rgb_to_ansi_code(red, green, blue, offset, colormode):
50
+ """
51
+ Translate the given RGB color into the appropriate ANSI escape code
52
+ for the given color mode.
53
+ The offset is used for the base color which is used.
54
+
55
+ The ``colormode`` has to be one of:
56
+ * 0: no colors / disabled
57
+ * 8: use ANSI 8 colors
58
+ * 16: use ANSI 16 colors (same as 8 but with brightness)
59
+ * 256: use ANSI 256 colors
60
+ * 0xFFFFFF / 16777215: use 16 Million true colors
61
+
62
+ :param int red: the red channel value
63
+ :param int green: the green channel value
64
+ :param int blue: the blue channel value
65
+ :param int offset: the offset to use for the base color
66
+ :param int colormode: the color mode to use. See explanation above
67
+ """
68
+ if colormode == terminal.NO_COLORS: # colors are disabled, thus return empty string
69
+ return '', ''
70
+
71
+ if colormode == terminal.ANSI_8_COLORS or colormode == terminal.ANSI_16_COLORS:
72
+ color_code = ansi.rgb_to_ansi16(red, green, blue)
73
+ start_code = ansi.ANSI_ESCAPE_CODE.format(
74
+ code=color_code + offset - ansi.FOREGROUND_COLOR_OFFSET)
75
+ end_code = ansi.ANSI_ESCAPE_CODE.format(code=offset + ansi.COLOR_CLOSE_OFFSET)
76
+ return start_code, end_code
77
+
78
+ if colormode == terminal.ANSI_256_COLORS:
79
+ color_code = ansi.rgb_to_ansi256(red, green, blue)
80
+ start_code = ansi.ANSI_ESCAPE_CODE.format(code='{base};5;{code}'.format(
81
+ base=8 + offset, code=color_code))
82
+ end_code = ansi.ANSI_ESCAPE_CODE.format(code=offset + ansi.COLOR_CLOSE_OFFSET)
83
+ return start_code, end_code
84
+
85
+ if colormode == terminal.TRUE_COLORS:
86
+ start_code = ansi.ANSI_ESCAPE_CODE.format(code='{base};2;{red};{green};{blue}'.format(
87
+ base=8 + offset, red=red, green=green, blue=blue))
88
+ end_code = ansi.ANSI_ESCAPE_CODE.format(code=offset + ansi.COLOR_CLOSE_OFFSET)
89
+ return start_code, end_code
90
+
91
+ raise ColorfulAttributeError('invalid color mode "{0}"'.format(colormode))
92
+
93
+
94
+ def translate_colorname_to_ansi_code(colorname, offset, colormode, colorpalette):
95
+ """
96
+ Translate the given color name to a valid
97
+ ANSI escape code.
98
+
99
+ :parma str colorname: the name of the color to resolve
100
+ :parma str offset: the offset for the color code
101
+ :param int colormode: the color mode to use. See ``translate_rgb_to_ansi_code``
102
+ :parma dict colorpalette: the color palette to use for the color name mapping
103
+
104
+ :returns str: the color as ANSI escape code
105
+
106
+ :raises ColorfulError: if the given color name is invalid
107
+ """
108
+ try:
109
+ red, green, blue = colorpalette[colorname]
110
+ except KeyError:
111
+ raise ColorfulAttributeError('the color "{0}" is unknown. Use a color in your color palette (by default: X11 rgb.txt)'.format( # noqa
112
+ colorname))
113
+ else:
114
+ return translate_rgb_to_ansi_code(red, green, blue, offset, colormode)
115
+
116
+
117
+ def resolve_modifier_to_ansi_code(modifiername, colormode):
118
+ """
119
+ Resolve the given modifier name to a valid
120
+ ANSI escape code.
121
+
122
+ :param str modifiername: the name of the modifier to resolve
123
+ :param int colormode: the color mode to use. See ``translate_rgb_to_ansi_code``
124
+
125
+ :returns str: the ANSI escape code for the modifier
126
+
127
+ :raises ColorfulError: if the given modifier name is invalid
128
+ """
129
+ if colormode == terminal.NO_COLORS: # return empty string if colors are disabled
130
+ return '', ''
131
+
132
+ try:
133
+ start_code, end_code = ansi.MODIFIERS[modifiername]
134
+ except KeyError:
135
+ raise ColorfulAttributeError('the modifier "{0}" is unknown. Use one of: {1}'.format(
136
+ modifiername, ansi.MODIFIERS.keys()))
137
+ else:
138
+ return ansi.ANSI_ESCAPE_CODE.format(
139
+ code=start_code), ansi.ANSI_ESCAPE_CODE.format(
140
+ code=end_code)
141
+
142
+
143
+ def translate_style(style, colormode, colorpalette):
144
+ """
145
+ Translate the given style to an ANSI escape code
146
+ sequence.
147
+
148
+ ``style`` examples are:
149
+
150
+ * green
151
+ * bold
152
+ * red_on_black
153
+ * bold_green
154
+ * italic_yellow_on_cyan
155
+
156
+ :param str style: the style to translate
157
+ :param int colormode: the color mode to use. See ``translate_rgb_to_ansi_code``
158
+ :parma dict colorpalette: the color palette to use for the color name mapping
159
+ """
160
+ style_parts = iter(style.split('_'))
161
+
162
+ ansi_start_sequence = []
163
+ ansi_end_sequence = []
164
+
165
+ try:
166
+ # consume all modifiers
167
+ part = None
168
+ for mod_part in style_parts:
169
+ part = mod_part
170
+ if part not in ansi.MODIFIERS:
171
+ break # all modifiers have been consumed
172
+
173
+ mod_start_code, mod_end_code = resolve_modifier_to_ansi_code(part, colormode)
174
+ ansi_start_sequence.append(mod_start_code)
175
+ ansi_end_sequence.append(mod_end_code)
176
+ else: # we've consumed all parts, thus we can exit
177
+ raise StopIteration()
178
+
179
+ # next part has to be a foreground color or the 'on' keyword
180
+ # which means we have to consume background colors
181
+ if part != 'on':
182
+ ansi_start_code, ansi_end_code = translate_colorname_to_ansi_code(
183
+ part, ansi.FOREGROUND_COLOR_OFFSET, colormode, colorpalette)
184
+ ansi_start_sequence.append(ansi_start_code)
185
+ ansi_end_sequence.append(ansi_end_code)
186
+ # consume the required 'on' keyword after the foreground color
187
+ next(style_parts)
188
+
189
+ # next part has to be the background color
190
+ part = next(style_parts)
191
+ ansi_start_code, ansi_end_code = translate_colorname_to_ansi_code(
192
+ part, ansi.BACKGROUND_COLOR_OFFSET, colormode, colorpalette)
193
+ ansi_start_sequence.append(ansi_start_code)
194
+ ansi_end_sequence.append(ansi_end_code)
195
+ except StopIteration: # we've consumed all parts of the styling string
196
+ pass
197
+
198
+ # construct and return ANSI escape code sequence
199
+ return ''.join(ansi_start_sequence), ''.join(ansi_end_sequence)
200
+
201
+
202
+ def style_string(string, ansi_style, colormode, nested=False):
203
+ """
204
+ Style the given string according to the given
205
+ ANSI style string.
206
+
207
+ :param str string: the string to style
208
+ :param tuple ansi_style: the styling string returned by ``translate_style``
209
+ :param int colormode: the color mode to use. See ``translate_rgb_to_ansi_code``
210
+
211
+ :returns: a string containing proper ANSI sequence
212
+ """
213
+ ansi_start_code, ansi_end_code = ansi_style
214
+
215
+ # replace nest placeholders with the current begin style
216
+ string = str(string).replace(ansi.NEST_PLACEHOLDER, ansi_start_code)
217
+
218
+ return '{start_code}{string}{end_code}{nest_ph}'.format(
219
+ start_code=ansi_start_code,
220
+ string=string,
221
+ end_code=ansi_end_code,
222
+ nest_ph=ansi.NEST_PLACEHOLDER if nested else '')
223
+
224
+
225
+ class ColorfulString(object):
226
+ """
227
+ Represents a colored string
228
+ """
229
+ def __init__(self, orig_string, styled_string, colorful_ctx):
230
+ self.orig_string = str(orig_string)
231
+ self.styled_string = str(styled_string)
232
+ self.colorful_ctx = colorful_ctx
233
+
234
+ def __str__(self):
235
+ if self.colorful_ctx.colormode == terminal.NO_COLORS:
236
+ return self.orig_string
237
+ else:
238
+ return self.styled_string
239
+
240
+ def __len__(self):
241
+ return len(self.orig_string)
242
+
243
+ def __iter__(self):
244
+ return iter(self.styled_string)
245
+
246
+ def __add__(self, other):
247
+ if isinstance(other, ColorfulString):
248
+ return ColorfulString(
249
+ self.orig_string + other.orig_string,
250
+ self.styled_string + other.styled_string,
251
+ self.colorful_ctx)
252
+
253
+ return ColorfulString(
254
+ self.orig_string + other,
255
+ self.styled_string + other,
256
+ self.colorful_ctx)
257
+
258
+ def __iadd__(self, other):
259
+ if isinstance(other, ColorfulString):
260
+ self.orig_string += other.orig_string
261
+ self.styled_string += other.styled_string
262
+ else:
263
+ self.orig_string += other
264
+ self.styled_string += other
265
+
266
+ return self
267
+
268
+ def __radd__(self, other):
269
+ if isinstance(other, ColorfulString):
270
+ return ColorfulString(
271
+ other.orig_string + self.orig_string,
272
+ other.styled_string + self.styled_string,
273
+ self.colorful_ctx)
274
+
275
+ # we return handover the conversion to the
276
+ # object on the left side
277
+ return other + self.styled_string
278
+
279
+ def __mul__(self, other):
280
+ return ColorfulString(
281
+ self.orig_string * other,
282
+ self.styled_string * other,
283
+ self.colorful_ctx)
284
+
285
+ def __format__(self, format_spec):
286
+ if self.colorful_ctx.colormode == terminal.NO_COLORS:
287
+ return self.orig_string.__format__(format_spec)
288
+
289
+ # append nested placeholder to styled string in order to continue the
290
+ # previous styles. If the string already ends with the nest placeholder
291
+ # we don't have to append it again.
292
+ if self.styled_string.endswith(ansi.NEST_PLACEHOLDER):
293
+ styled_string = self.styled_string
294
+ else:
295
+ styled_string = '{orig_str}{nest_ph}'.format(
296
+ orig_str=self.styled_string, nest_ph=ansi.NEST_PLACEHOLDER)
297
+ return styled_string.__format__(format_spec)
298
+
299
+ def __getattr__(self, name):
300
+ str_method = getattr(self.styled_string, name)
301
+ return str_method
302
+
303
+
304
+ class Colorful(object):
305
+ """
306
+ Provides methods to style strings for terminal
307
+ output.
308
+
309
+ :param int colormode: the color mode to use. See ``translate_rgb_to_ansi_code``
310
+ """
311
+ # re-expose the color modes from ``colorful.terminal``
312
+ # on a package level.
313
+ NO_COLORS = terminal.NO_COLORS
314
+ ANSI_8_COLORS = terminal.ANSI_8_COLORS
315
+ ANSI_16_COLORS = terminal.ANSI_16_COLORS
316
+ ANSI_256_COLORS = terminal.ANSI_256_COLORS
317
+ TRUE_COLORS = terminal.TRUE_COLORS
318
+
319
+ # expose the `colornames` color palette
320
+ COLORNAMES_COLORS = COLORNAMES_COLORS_PATH
321
+
322
+ # expose ANSI escape codes to close colors
323
+ # this is especially useful when using ``str.format()``.
324
+ close_fg_color = ansi.ANSI_ESCAPE_CODE.format(
325
+ code=ansi.FOREGROUND_COLOR_OFFSET + ansi.COLOR_CLOSE_OFFSET)
326
+ close_bg_color = ansi.ANSI_ESCAPE_CODE.format(
327
+ code=ansi.BACKGROUND_COLOR_OFFSET + ansi.COLOR_CLOSE_OFFSET)
328
+
329
+ # expose ANSI escape codes to close modifiers
330
+ no_bold = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['bold'][1])
331
+ no_dimmed = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['dimmed'][1])
332
+ no_italic = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['italic'][1])
333
+ no_underlined = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['underlined'][1])
334
+ no_blinkslow = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['blinkslow'][1])
335
+ no_blinkrapid = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['blinkrapid'][1])
336
+ no_inversed = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['inversed'][1])
337
+ no_concealed = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['concealed'][1])
338
+ no_struckthrough = ansi.ANSI_ESCAPE_CODE.format(code=ansi.MODIFIERS['struckthrough'][1])
339
+
340
+ def __init__(self, colormode=None, colorpalette=None):
341
+ if colormode is None: # try to auto-detect color mode
342
+ colormode = terminal.detect_color_support(env=os.environ)
343
+
344
+ if colorpalette is None: # load default color palette
345
+ colorpalette = COLOR_PALETTE
346
+ elif isinstance(colorpalette, str): # we assume it's a path to a color file
347
+ colorpalette = colors.parse_colors(colorpalette)
348
+
349
+ #: Holds the color mode to use for this Colorful object.
350
+ self.colormode = colormode
351
+
352
+ #: Holds the color palette to use for this Colorful object.
353
+ self._colorpalette = None
354
+ self.colorpalette = colorpalette
355
+
356
+ @property
357
+ def colorpalette(self):
358
+ """
359
+ Get the current used color palette
360
+ """
361
+ return self._colorpalette
362
+
363
+ @colorpalette.setter
364
+ def colorpalette(self, colorpalette):
365
+ """
366
+ Set the colorpalette which should be used
367
+ """
368
+ if isinstance(colorpalette, str): # we assume it's a path to a color file
369
+ colorpalette = colors.parse_colors(colorpalette)
370
+
371
+ self._colorpalette = colors.sanitize_color_palette(colorpalette)
372
+
373
+ def setup(self, colormode=None, colorpalette=None, extend_colors=False):
374
+ """
375
+ Setup this colorful object by setting a ``colormode`` and
376
+ the ``colorpalette`. The ``extend_colors`` flag is used
377
+ to extend the currently active color palette instead of
378
+ replacing it.
379
+
380
+ :param int colormode: the color mode to use. See ``translate_rgb_to_ansi_code``
381
+ :parma dict colorpalette: the colorpalette to use. This ``dict`` should map
382
+ color names to it's corresponding RGB value
383
+ :param bool extend_colors: extend the active color palette instead of replacing it
384
+ """
385
+ if colormode is not None:
386
+ self.colormode = colormode
387
+
388
+ if colorpalette:
389
+ if extend_colors:
390
+ self.update_palette(colorpalette)
391
+ else:
392
+ self.colorpalette = colorpalette
393
+
394
+ def disable(self):
395
+ """
396
+ Disable all colors and styles
397
+ """
398
+ self.colormode = terminal.NO_COLORS
399
+
400
+ def use_8_ansi_colors(self):
401
+ """
402
+ Use 8 ANSI colors for this colorful object
403
+ """
404
+ self.colormode = terminal.ANSI_8_COLORS
405
+
406
+ def use_16_ansi_colors(self):
407
+ """
408
+ Use 16 ANSI colors for this colorful object
409
+ """
410
+ self.colormode = terminal.ANSI_16_COLORS
411
+
412
+ def use_256_ansi_colors(self):
413
+ """
414
+ Use 256 ANSI colors for this colorful object
415
+ """
416
+ self.colormode = terminal.ANSI_256_COLORS
417
+
418
+ def use_true_colors(self):
419
+ """
420
+ Use true colors for this colorful object
421
+ """
422
+ self.colormode = terminal.TRUE_COLORS
423
+
424
+ def use_palette(self, colorpalette):
425
+ """
426
+ Use the given color palette
427
+ """
428
+ self.colorpalette = colorpalette
429
+
430
+ def update_palette(self, colorpalette):
431
+ """
432
+ Update the currently active color palette
433
+ with the given color palette
434
+ """
435
+ self.colorpalette.update(colors.sanitize_color_palette(colorpalette))
436
+
437
+ def use_style(self, style_name):
438
+ """
439
+ Use a predefined style as color palette
440
+
441
+ :param str style_name: the name of the style
442
+ """
443
+ try:
444
+ style = getattr(styles, style_name.upper())
445
+ except AttributeError:
446
+ raise ColorfulError('the style "{0}" is undefined'.format(
447
+ style_name))
448
+ else:
449
+ self.colorpalette = style
450
+
451
+ def format(self, string, *args, **kwargs):
452
+ """
453
+ Format the given string with the given ``args`` and ``kwargs``.
454
+ The string can contain references to ``c`` which is provided by
455
+ this colorful object.
456
+
457
+ :param str string: the string to format
458
+ """
459
+ return string.format(c=self, *args, **kwargs)
460
+
461
+ def str(self, string):
462
+ """
463
+ Create a new ColorfulString instance of the given
464
+ unstyled string.
465
+
466
+ This method should be used to create a ColorfulString
467
+ which is actually not styled yet but can safely be concatinated
468
+ with other ColorfulStrings like:
469
+
470
+ >>> s = colorful.str('Hello ')
471
+ >>> s =+ colorful.black('World')
472
+ >>> str(s)
473
+ 'Hello \033[30mWorld\033[39m'
474
+
475
+ :param str string: the string to use for the ColorfulString
476
+ """
477
+ return ColorfulString(string, string, self)
478
+
479
+ def print(self, *objects, sep=' ', end='\n', file=None, flush=False):
480
+ """
481
+ Print the given objects to the given file stream.
482
+ See https://docs.python.org/3/library/functions.html#print
483
+
484
+ The only difference to the ``print()`` built-in is that
485
+ ``Colorful.print()`` formats the string with ``c=self``.
486
+ With that stylings are possible
487
+
488
+ :param str sep: the seperater between the objects
489
+ :param str end: the ending delimiter after all objects
490
+ :param file: the file stream to write to
491
+ :param bool flush: if the stream should be flushed
492
+ """
493
+ styled_objects = [self.format(o) for o in objects]
494
+ print(*styled_objects, sep=sep, end=end, file=file, flush=flush)
495
+
496
+ class ColorfulStyle(object):
497
+ """
498
+ Represents a colorful style
499
+ """
500
+ def __init__(self, style, colormode, colorful_ctx):
501
+ self.style = style
502
+ self.colormode = colormode
503
+ self.colorful_ctx = colorful_ctx
504
+
505
+ def evaluate(self, string, nested=False):
506
+ """
507
+ Evaluate the style on the given string.
508
+
509
+ :parma str string: the string to style
510
+ :param bool nested: if the string is part of another styled string
511
+ (=> nested in another style)
512
+ """
513
+ return ColorfulString(
514
+ string,
515
+ style_string(string, self.style, self.colormode, nested),
516
+ self.colorful_ctx)
517
+
518
+ def __str__(self):
519
+ return self.style[0]
520
+
521
+ def __and__(self, other):
522
+ new_style = (
523
+ self.style[0] + other.style[0],
524
+ self.style[1] + other.style[1]
525
+ )
526
+ return Colorful.ColorfulStyle(new_style, self.colormode, self.colorful_ctx)
527
+
528
+ def __call__(self, string, nested=False):
529
+ return self.evaluate(string, nested)
530
+
531
+ def __or__(self, other):
532
+ return self.evaluate(other)
533
+
534
+ def __eq__(self, other):
535
+ if not isinstance(other, Colorful.ColorfulStyle):
536
+ return False
537
+
538
+ return (
539
+ self.style == other.style and
540
+ self.colormode == other.colormode and
541
+ self.colorful_ctx == other.colorful_ctx
542
+ )
543
+
544
+ def __hash__(self):
545
+ return hash((self.style, self.colormode, self.colorful_ctx))
546
+
547
+ def __getattr__(self, name):
548
+ # translate the given name into an ANSI escape code sequence
549
+ style = translate_style(name, self.colormode, self.colorpalette)
550
+ style_wrapper = self.ColorfulStyle(style, self.colormode, self)
551
+ return style_wrapper
.venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/METADATA ADDED
@@ -0,0 +1,563 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: fastapi
3
+ Version: 0.115.8
4
+ Summary: FastAPI framework, high performance, easy to learn, fast to code, ready for production
5
+ Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
6
+ Classifier: Intended Audience :: Information Technology
7
+ Classifier: Intended Audience :: System Administrators
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python
11
+ Classifier: Topic :: Internet
12
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
13
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ Classifier: Topic :: Software Development :: Libraries
15
+ Classifier: Topic :: Software Development
16
+ Classifier: Typing :: Typed
17
+ Classifier: Development Status :: 4 - Beta
18
+ Classifier: Environment :: Web Environment
19
+ Classifier: Framework :: AsyncIO
20
+ Classifier: Framework :: FastAPI
21
+ Classifier: Framework :: Pydantic
22
+ Classifier: Framework :: Pydantic :: 1
23
+ Classifier: Framework :: Pydantic :: 2
24
+ Classifier: Intended Audience :: Developers
25
+ Classifier: License :: OSI Approved :: MIT License
26
+ Classifier: Programming Language :: Python :: 3 :: Only
27
+ Classifier: Programming Language :: Python :: 3.8
28
+ Classifier: Programming Language :: Python :: 3.9
29
+ Classifier: Programming Language :: Python :: 3.10
30
+ Classifier: Programming Language :: Python :: 3.11
31
+ Classifier: Programming Language :: Python :: 3.12
32
+ Classifier: Programming Language :: Python :: 3.13
33
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
34
+ Classifier: Topic :: Internet :: WWW/HTTP
35
+ Project-URL: Homepage, https://github.com/fastapi/fastapi
36
+ Project-URL: Documentation, https://fastapi.tiangolo.com/
37
+ Project-URL: Repository, https://github.com/fastapi/fastapi
38
+ Project-URL: Issues, https://github.com/fastapi/fastapi/issues
39
+ Project-URL: Changelog, https://fastapi.tiangolo.com/release-notes/
40
+ Requires-Python: >=3.8
41
+ Requires-Dist: starlette<0.46.0,>=0.40.0
42
+ Requires-Dist: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4
43
+ Requires-Dist: typing-extensions>=4.8.0
44
+ Provides-Extra: standard
45
+ Requires-Dist: fastapi-cli[standard]>=0.0.5; extra == "standard"
46
+ Requires-Dist: httpx>=0.23.0; extra == "standard"
47
+ Requires-Dist: jinja2>=3.1.5; extra == "standard"
48
+ Requires-Dist: python-multipart>=0.0.18; extra == "standard"
49
+ Requires-Dist: email-validator>=2.0.0; extra == "standard"
50
+ Requires-Dist: uvicorn[standard]>=0.12.0; extra == "standard"
51
+ Provides-Extra: all
52
+ Requires-Dist: fastapi-cli[standard]>=0.0.5; extra == "all"
53
+ Requires-Dist: httpx>=0.23.0; extra == "all"
54
+ Requires-Dist: jinja2>=3.1.5; extra == "all"
55
+ Requires-Dist: python-multipart>=0.0.18; extra == "all"
56
+ Requires-Dist: itsdangerous>=1.1.0; extra == "all"
57
+ Requires-Dist: pyyaml>=5.3.1; extra == "all"
58
+ Requires-Dist: ujson!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,>=4.0.1; extra == "all"
59
+ Requires-Dist: orjson>=3.2.1; extra == "all"
60
+ Requires-Dist: email-validator>=2.0.0; extra == "all"
61
+ Requires-Dist: uvicorn[standard]>=0.12.0; extra == "all"
62
+ Requires-Dist: pydantic-settings>=2.0.0; extra == "all"
63
+ Requires-Dist: pydantic-extra-types>=2.0.0; extra == "all"
64
+ Description-Content-Type: text/markdown
65
+
66
+ <p align="center">
67
+ <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
68
+ </p>
69
+ <p align="center">
70
+ <em>FastAPI framework, high performance, easy to learn, fast to code, ready for production</em>
71
+ </p>
72
+ <p align="center">
73
+ <a href="https://github.com/fastapi/fastapi/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster" target="_blank">
74
+ <img src="https://github.com/fastapi/fastapi/workflows/Test/badge.svg?event=push&branch=master" alt="Test">
75
+ </a>
76
+ <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/fastapi" target="_blank">
77
+ <img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/fastapi.svg" alt="Coverage">
78
+ </a>
79
+ <a href="https://pypi.org/project/fastapi" target="_blank">
80
+ <img src="https://img.shields.io/pypi/v/fastapi?color=%2334D058&label=pypi%20package" alt="Package version">
81
+ </a>
82
+ <a href="https://pypi.org/project/fastapi" target="_blank">
83
+ <img src="https://img.shields.io/pypi/pyversions/fastapi.svg?color=%2334D058" alt="Supported Python versions">
84
+ </a>
85
+ </p>
86
+
87
+ ---
88
+
89
+ **Documentation**: <a href="https://fastapi.tiangolo.com" target="_blank">https://fastapi.tiangolo.com</a>
90
+
91
+ **Source Code**: <a href="https://github.com/fastapi/fastapi" target="_blank">https://github.com/fastapi/fastapi</a>
92
+
93
+ ---
94
+
95
+ FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.
96
+
97
+ The key features are:
98
+
99
+ * **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance).
100
+ * **Fast to code**: Increase the speed to develop features by about 200% to 300%. *
101
+ * **Fewer bugs**: Reduce about 40% of human (developer) induced errors. *
102
+ * **Intuitive**: Great editor support. <abbr title="also known as auto-complete, autocompletion, IntelliSense">Completion</abbr> everywhere. Less time debugging.
103
+ * **Easy**: Designed to be easy to use and learn. Less time reading docs.
104
+ * **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs.
105
+ * **Robust**: Get production-ready code. With automatic interactive documentation.
106
+ * **Standards-based**: Based on (and fully compatible with) the open standards for APIs: <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank">OpenAPI</a> (previously known as Swagger) and <a href="https://json-schema.org/" class="external-link" target="_blank">JSON Schema</a>.
107
+
108
+ <small>* estimation based on tests on an internal development team, building production applications.</small>
109
+
110
+ ## Sponsors
111
+
112
+ <!-- sponsors -->
113
+
114
+ <a href="https://blockbee.io?ref=fastapi" target="_blank" title="BlockBee Cryptocurrency Payment Gateway"><img src="https://fastapi.tiangolo.com/img/sponsors/blockbee.png"></a>
115
+ <a href="https://platform.sh/try-it-now/?utm_source=fastapi-signup&utm_medium=banner&utm_campaign=FastAPI-signup-June-2023" target="_blank" title="Build, run and scale your apps on a modern, reliable, and secure PaaS."><img src="https://fastapi.tiangolo.com/img/sponsors/platform-sh.png"></a>
116
+ <a href="https://www.porter.run" target="_blank" title="Deploy FastAPI on AWS with a few clicks"><img src="https://fastapi.tiangolo.com/img/sponsors/porter.png"></a>
117
+ <a href="https://bump.sh/fastapi?utm_source=fastapi&utm_medium=referral&utm_campaign=sponsor" target="_blank" title="Automate FastAPI documentation generation with Bump.sh"><img src="https://fastapi.tiangolo.com/img/sponsors/bump-sh.svg"></a>
118
+ <a href="https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=main-badge" target="_blank" title="Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files"><img src="https://fastapi.tiangolo.com/img/sponsors/scalar.svg"></a>
119
+ <a href="https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=mainbadge" target="_blank" title="Auth, user management and more for your B2B product"><img src="https://fastapi.tiangolo.com/img/sponsors/propelauth.png"></a>
120
+ <a href="https://www.withcoherence.com/?utm_medium=advertising&utm_source=fastapi&utm_campaign=website" target="_blank" title="Coherence"><img src="https://fastapi.tiangolo.com/img/sponsors/coherence.png"></a>
121
+ <a href="https://www.mongodb.com/developer/languages/python/python-quickstart-fastapi/?utm_campaign=fastapi_framework&utm_source=fastapi_sponsorship&utm_medium=web_referral" target="_blank" title="Simplify Full Stack Development with FastAPI & MongoDB"><img src="https://fastapi.tiangolo.com/img/sponsors/mongodb.png"></a>
122
+ <a href="https://zuplo.link/fastapi-gh" target="_blank" title="Zuplo: Scale, Protect, Document, and Monetize your FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/zuplo.png"></a>
123
+ <a href="https://liblab.com?utm_source=fastapi" target="_blank" title="liblab - Generate SDKs from FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/liblab.png"></a>
124
+ <a href="https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi" target="_blank" title="Deploy & scale any full-stack web app on Render. Focus on building apps, not infra."><img src="https://fastapi.tiangolo.com/img/sponsors/render.svg"></a>
125
+ <a href="https://github.com/deepset-ai/haystack/" target="_blank" title="Build powerful search from composable, open source building blocks"><img src="https://fastapi.tiangolo.com/img/sponsors/haystack-fastapi.svg"></a>
126
+ <a href="https://databento.com/" target="_blank" title="Pay as you go for market data"><img src="https://fastapi.tiangolo.com/img/sponsors/databento.svg"></a>
127
+ <a href="https://speakeasy.com?utm_source=fastapi+repo&utm_medium=github+sponsorship" target="_blank" title="SDKs for your API | Speakeasy"><img src="https://fastapi.tiangolo.com/img/sponsors/speakeasy.png"></a>
128
+ <a href="https://www.svix.com/" target="_blank" title="Svix - Webhooks as a service"><img src="https://fastapi.tiangolo.com/img/sponsors/svix.svg"></a>
129
+ <a href="https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral" target="_blank" title="Stainless | Generate best-in-class SDKs"><img src="https://fastapi.tiangolo.com/img/sponsors/stainless.png"></a>
130
+
131
+ <!-- /sponsors -->
132
+
133
+ <a href="https://fastapi.tiangolo.com/fastapi-people/#sponsors" class="external-link" target="_blank">Other sponsors</a>
134
+
135
+ ## Opinions
136
+
137
+ "_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"
138
+
139
+ <div style="text-align: right; margin-right: 10%;">Kabir Khan - <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26" target="_blank"><small>(ref)</small></a></div>
140
+
141
+ ---
142
+
143
+ "_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_"
144
+
145
+ <div style="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/" target="_blank"><small>(ref)</small></a></div>
146
+
147
+ ---
148
+
149
+ "_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_"
150
+
151
+ <div style="text-align: right; margin-right: 10%;">Kevin Glisson, Marc Vilanova, Forest Monsen - <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072" target="_blank"><small>(ref)</small></a></div>
152
+
153
+ ---
154
+
155
+ "_I’m over the moon excited about **FastAPI**. It’s so fun!_"
156
+
157
+ <div style="text-align: right; margin-right: 10%;">Brian Okken - <strong><a href="https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855" target="_blank">Python Bytes</a> podcast host</strong> <a href="https://twitter.com/brianokken/status/1112220079972728832" target="_blank"><small>(ref)</small></a></div>
158
+
159
+ ---
160
+
161
+ "_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._"
162
+
163
+ <div style="text-align: right; margin-right: 10%;">Timothy Crosley - <strong><a href="https://github.com/hugapi/hug" target="_blank">Hug</a> creator</strong> <a href="https://news.ycombinator.com/item?id=19455465" target="_blank"><small>(ref)</small></a></div>
164
+
165
+ ---
166
+
167
+ "_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_"
168
+
169
+ "_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_"
170
+
171
+ <div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> founders - <a href="https://spacy.io" target="_blank">spaCy</a> creators</strong> <a href="https://twitter.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://twitter.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div>
172
+
173
+ ---
174
+
175
+ "_If anyone is looking to build a production Python API, I would highly recommend **FastAPI**. It is **beautifully designed**, **simple to use** and **highly scalable**, it has become a **key component** in our API first development strategy and is driving many automations and services such as our Virtual TAC Engineer._"
176
+
177
+ <div style="text-align: right; margin-right: 10%;">Deon Pillsbury - <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/" target="_blank"><small>(ref)</small></a></div>
178
+
179
+ ---
180
+
181
+ ## **Typer**, the FastAPI of CLIs
182
+
183
+ <a href="https://typer.tiangolo.com" target="_blank"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a>
184
+
185
+ If you are building a <abbr title="Command Line Interface">CLI</abbr> app to be used in the terminal instead of a web API, check out <a href="https://typer.tiangolo.com/" class="external-link" target="_blank">**Typer**</a>.
186
+
187
+ **Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀
188
+
189
+ ## Requirements
190
+
191
+ FastAPI stands on the shoulders of giants:
192
+
193
+ * <a href="https://www.starlette.io/" class="external-link" target="_blank">Starlette</a> for the web parts.
194
+ * <a href="https://docs.pydantic.dev/" class="external-link" target="_blank">Pydantic</a> for the data parts.
195
+
196
+ ## Installation
197
+
198
+ Create and activate a <a href="https://fastapi.tiangolo.com/virtual-environments/" class="external-link" target="_blank">virtual environment</a> and then install FastAPI:
199
+
200
+ <div class="termy">
201
+
202
+ ```console
203
+ $ pip install "fastapi[standard]"
204
+
205
+ ---> 100%
206
+ ```
207
+
208
+ </div>
209
+
210
+ **Note**: Make sure you put `"fastapi[standard]"` in quotes to ensure it works in all terminals.
211
+
212
+ ## Example
213
+
214
+ ### Create it
215
+
216
+ * Create a file `main.py` with:
217
+
218
+ ```Python
219
+ from typing import Union
220
+
221
+ from fastapi import FastAPI
222
+
223
+ app = FastAPI()
224
+
225
+
226
+ @app.get("/")
227
+ def read_root():
228
+ return {"Hello": "World"}
229
+
230
+
231
+ @app.get("/items/{item_id}")
232
+ def read_item(item_id: int, q: Union[str, None] = None):
233
+ return {"item_id": item_id, "q": q}
234
+ ```
235
+
236
+ <details markdown="1">
237
+ <summary>Or use <code>async def</code>...</summary>
238
+
239
+ If your code uses `async` / `await`, use `async def`:
240
+
241
+ ```Python hl_lines="9 14"
242
+ from typing import Union
243
+
244
+ from fastapi import FastAPI
245
+
246
+ app = FastAPI()
247
+
248
+
249
+ @app.get("/")
250
+ async def read_root():
251
+ return {"Hello": "World"}
252
+
253
+
254
+ @app.get("/items/{item_id}")
255
+ async def read_item(item_id: int, q: Union[str, None] = None):
256
+ return {"item_id": item_id, "q": q}
257
+ ```
258
+
259
+ **Note**:
260
+
261
+ If you don't know, check the _"In a hurry?"_ section about <a href="https://fastapi.tiangolo.com/async/#in-a-hurry" target="_blank">`async` and `await` in the docs</a>.
262
+
263
+ </details>
264
+
265
+ ### Run it
266
+
267
+ Run the server with:
268
+
269
+ <div class="termy">
270
+
271
+ ```console
272
+ $ fastapi dev main.py
273
+
274
+ ╭────────── FastAPI CLI - Development mode ───────────╮
275
+ │ │
276
+ │ Serving at: http://127.0.0.1:8000 │
277
+ │ │
278
+ │ API docs: http://127.0.0.1:8000/docs │
279
+ │ │
280
+ │ Running in development mode, for production use: │
281
+ │ │
282
+ │ fastapi run │
283
+ │ │
284
+ ╰─────────────────────────────────────────────────────╯
285
+
286
+ INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
287
+ INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
288
+ INFO: Started reloader process [2248755] using WatchFiles
289
+ INFO: Started server process [2248757]
290
+ INFO: Waiting for application startup.
291
+ INFO: Application startup complete.
292
+ ```
293
+
294
+ </div>
295
+
296
+ <details markdown="1">
297
+ <summary>About the command <code>fastapi dev main.py</code>...</summary>
298
+
299
+ The command `fastapi dev` reads your `main.py` file, detects the **FastAPI** app in it, and starts a server using <a href="https://www.uvicorn.org" class="external-link" target="_blank">Uvicorn</a>.
300
+
301
+ By default, `fastapi dev` will start with auto-reload enabled for local development.
302
+
303
+ You can read more about it in the <a href="https://fastapi.tiangolo.com/fastapi-cli/" target="_blank">FastAPI CLI docs</a>.
304
+
305
+ </details>
306
+
307
+ ### Check it
308
+
309
+ Open your browser at <a href="http://127.0.0.1:8000/items/5?q=somequery" class="external-link" target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
310
+
311
+ You will see the JSON response as:
312
+
313
+ ```JSON
314
+ {"item_id": 5, "q": "somequery"}
315
+ ```
316
+
317
+ You already created an API that:
318
+
319
+ * Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`.
320
+ * Both _paths_ take `GET` <em>operations</em> (also known as HTTP _methods_).
321
+ * The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`.
322
+ * The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`.
323
+
324
+ ### Interactive API docs
325
+
326
+ Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
327
+
328
+ You will see the automatic interactive API documentation (provided by <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank">Swagger UI</a>):
329
+
330
+ ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png)
331
+
332
+ ### Alternative API docs
333
+
334
+ And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a>.
335
+
336
+ You will see the alternative automatic documentation (provided by <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank">ReDoc</a>):
337
+
338
+ ![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png)
339
+
340
+ ## Example upgrade
341
+
342
+ Now modify the file `main.py` to receive a body from a `PUT` request.
343
+
344
+ Declare the body using standard Python types, thanks to Pydantic.
345
+
346
+ ```Python hl_lines="4 9-12 25-27"
347
+ from typing import Union
348
+
349
+ from fastapi import FastAPI
350
+ from pydantic import BaseModel
351
+
352
+ app = FastAPI()
353
+
354
+
355
+ class Item(BaseModel):
356
+ name: str
357
+ price: float
358
+ is_offer: Union[bool, None] = None
359
+
360
+
361
+ @app.get("/")
362
+ def read_root():
363
+ return {"Hello": "World"}
364
+
365
+
366
+ @app.get("/items/{item_id}")
367
+ def read_item(item_id: int, q: Union[str, None] = None):
368
+ return {"item_id": item_id, "q": q}
369
+
370
+
371
+ @app.put("/items/{item_id}")
372
+ def update_item(item_id: int, item: Item):
373
+ return {"item_name": item.name, "item_id": item_id}
374
+ ```
375
+
376
+ The `fastapi dev` server should reload automatically.
377
+
378
+ ### Interactive API docs upgrade
379
+
380
+ Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
381
+
382
+ * The interactive API documentation will be automatically updated, including the new body:
383
+
384
+ ![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)
385
+
386
+ * Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API:
387
+
388
+ ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png)
389
+
390
+ * Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen:
391
+
392
+ ![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png)
393
+
394
+ ### Alternative API docs upgrade
395
+
396
+ And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a>.
397
+
398
+ * The alternative documentation will also reflect the new query parameter and body:
399
+
400
+ ![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png)
401
+
402
+ ### Recap
403
+
404
+ In summary, you declare **once** the types of parameters, body, etc. as function parameters.
405
+
406
+ You do that with standard modern Python types.
407
+
408
+ You don't have to learn a new syntax, the methods or classes of a specific library, etc.
409
+
410
+ Just standard **Python**.
411
+
412
+ For example, for an `int`:
413
+
414
+ ```Python
415
+ item_id: int
416
+ ```
417
+
418
+ or for a more complex `Item` model:
419
+
420
+ ```Python
421
+ item: Item
422
+ ```
423
+
424
+ ...and with that single declaration you get:
425
+
426
+ * Editor support, including:
427
+ * Completion.
428
+ * Type checks.
429
+ * Validation of data:
430
+ * Automatic and clear errors when the data is invalid.
431
+ * Validation even for deeply nested JSON objects.
432
+ * <abbr title="also known as: serialization, parsing, marshalling">Conversion</abbr> of input data: coming from the network to Python data and types. Reading from:
433
+ * JSON.
434
+ * Path parameters.
435
+ * Query parameters.
436
+ * Cookies.
437
+ * Headers.
438
+ * Forms.
439
+ * Files.
440
+ * <abbr title="also known as: serialization, parsing, marshalling">Conversion</abbr> of output data: converting from Python data and types to network data (as JSON):
441
+ * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc).
442
+ * `datetime` objects.
443
+ * `UUID` objects.
444
+ * Database models.
445
+ * ...and many more.
446
+ * Automatic interactive API documentation, including 2 alternative user interfaces:
447
+ * Swagger UI.
448
+ * ReDoc.
449
+
450
+ ---
451
+
452
+ Coming back to the previous code example, **FastAPI** will:
453
+
454
+ * Validate that there is an `item_id` in the path for `GET` and `PUT` requests.
455
+ * Validate that the `item_id` is of type `int` for `GET` and `PUT` requests.
456
+ * If it is not, the client will see a useful, clear error.
457
+ * Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests.
458
+ * As the `q` parameter is declared with `= None`, it is optional.
459
+ * Without the `None` it would be required (as is the body in the case with `PUT`).
460
+ * For `PUT` requests to `/items/{item_id}`, read the body as JSON:
461
+ * Check that it has a required attribute `name` that should be a `str`.
462
+ * Check that it has a required attribute `price` that has to be a `float`.
463
+ * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present.
464
+ * All this would also work for deeply nested JSON objects.
465
+ * Convert from and to JSON automatically.
466
+ * Document everything with OpenAPI, that can be used by:
467
+ * Interactive documentation systems.
468
+ * Automatic client code generation systems, for many languages.
469
+ * Provide 2 interactive documentation web interfaces directly.
470
+
471
+ ---
472
+
473
+ We just scratched the surface, but you already get the idea of how it all works.
474
+
475
+ Try changing the line with:
476
+
477
+ ```Python
478
+ return {"item_name": item.name, "item_id": item_id}
479
+ ```
480
+
481
+ ...from:
482
+
483
+ ```Python
484
+ ... "item_name": item.name ...
485
+ ```
486
+
487
+ ...to:
488
+
489
+ ```Python
490
+ ... "item_price": item.price ...
491
+ ```
492
+
493
+ ...and see how your editor will auto-complete the attributes and know their types:
494
+
495
+ ![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png)
496
+
497
+ For a more complete example including more features, see the <a href="https://fastapi.tiangolo.com/tutorial/">Tutorial - User Guide</a>.
498
+
499
+ **Spoiler alert**: the tutorial - user guide includes:
500
+
501
+ * Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**.
502
+ * How to set **validation constraints** as `maximum_length` or `regex`.
503
+ * A very powerful and easy to use **<abbr title="also known as components, resources, providers, services, injectables">Dependency Injection</abbr>** system.
504
+ * Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth.
505
+ * More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic).
506
+ * **GraphQL** integration with <a href="https://strawberry.rocks" class="external-link" target="_blank">Strawberry</a> and other libraries.
507
+ * Many extra features (thanks to Starlette) as:
508
+ * **WebSockets**
509
+ * extremely easy tests based on HTTPX and `pytest`
510
+ * **CORS**
511
+ * **Cookie Sessions**
512
+ * ...and more.
513
+
514
+ ## Performance
515
+
516
+ Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*)
517
+
518
+ To understand more about it, see the section <a href="https://fastapi.tiangolo.com/benchmarks/" class="internal-link" target="_blank">Benchmarks</a>.
519
+
520
+ ## Dependencies
521
+
522
+ FastAPI depends on Pydantic and Starlette.
523
+
524
+ ### `standard` Dependencies
525
+
526
+ When you install FastAPI with `pip install "fastapi[standard]"` it comes with the `standard` group of optional dependencies:
527
+
528
+ Used by Pydantic:
529
+
530
+ * <a href="https://github.com/JoshData/python-email-validator" target="_blank"><code>email-validator</code></a> - for email validation.
531
+
532
+ Used by Starlette:
533
+
534
+ * <a href="https://www.python-httpx.org" target="_blank"><code>httpx</code></a> - Required if you want to use the `TestClient`.
535
+ * <a href="https://jinja.palletsprojects.com" target="_blank"><code>jinja2</code></a> - Required if you want to use the default template configuration.
536
+ * <a href="https://github.com/Kludex/python-multipart" target="_blank"><code>python-multipart</code></a> - Required if you want to support form <abbr title="converting the string that comes from an HTTP request into Python data">"parsing"</abbr>, with `request.form()`.
537
+
538
+ Used by FastAPI / Starlette:
539
+
540
+ * <a href="https://www.uvicorn.org" target="_blank"><code>uvicorn</code></a> - for the server that loads and serves your application. This includes `uvicorn[standard]`, which includes some dependencies (e.g. `uvloop`) needed for high performance serving.
541
+ * `fastapi-cli` - to provide the `fastapi` command.
542
+
543
+ ### Without `standard` Dependencies
544
+
545
+ If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`.
546
+
547
+ ### Additional Optional Dependencies
548
+
549
+ There are some additional dependencies you might want to install.
550
+
551
+ Additional optional Pydantic dependencies:
552
+
553
+ * <a href="https://docs.pydantic.dev/latest/usage/pydantic_settings/" target="_blank"><code>pydantic-settings</code></a> - for settings management.
554
+ * <a href="https://docs.pydantic.dev/latest/usage/types/extra_types/extra_types/" target="_blank"><code>pydantic-extra-types</code></a> - for extra types to be used with Pydantic.
555
+
556
+ Additional optional FastAPI dependencies:
557
+
558
+ * <a href="https://github.com/ijl/orjson" target="_blank"><code>orjson</code></a> - Required if you want to use `ORJSONResponse`.
559
+ * <a href="https://github.com/esnme/ultrajson" target="_blank"><code>ujson</code></a> - Required if you want to use `UJSONResponse`.
560
+
561
+ ## License
562
+
563
+ This project is licensed under the terms of the MIT license.
.venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/RECORD ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ../../../bin/fastapi,sha256=ozVeLQVTLKWi0x-sgvSDSBbpnbxkxT-Or79kovMzyk8,228
2
+ fastapi-0.115.8.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
3
+ fastapi-0.115.8.dist-info/METADATA,sha256=4srjIseFlbNIV_5S9uJbfMX9VvUk21nJ_Hu0HnXMqe4,27152
4
+ fastapi-0.115.8.dist-info/RECORD,,
5
+ fastapi-0.115.8.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
6
+ fastapi-0.115.8.dist-info/entry_points.txt,sha256=GCf-WbIZxyGT4MUmrPGj1cOHYZoGsNPHAvNkT6hnGeA,61
7
+ fastapi-0.115.8.dist-info/licenses/LICENSE,sha256=Tsif_IFIW5f-xYSy1KlhAy7v_oNEU4lP2cEnSQbMdE4,1086
8
+ fastapi/__init__.py,sha256=_MYtqtXdcIyUpF2BUpb8Y-6UGaviGakeY05sV25X5DE,1081
9
+ fastapi/__main__.py,sha256=bKePXLdO4SsVSM6r9SVoLickJDcR2c0cTOxZRKq26YQ,37
10
+ fastapi/__pycache__/__init__.cpython-311.pyc,,
11
+ fastapi/__pycache__/__main__.cpython-311.pyc,,
12
+ fastapi/__pycache__/_compat.cpython-311.pyc,,
13
+ fastapi/__pycache__/applications.cpython-311.pyc,,
14
+ fastapi/__pycache__/background.cpython-311.pyc,,
15
+ fastapi/__pycache__/cli.cpython-311.pyc,,
16
+ fastapi/__pycache__/concurrency.cpython-311.pyc,,
17
+ fastapi/__pycache__/datastructures.cpython-311.pyc,,
18
+ fastapi/__pycache__/encoders.cpython-311.pyc,,
19
+ fastapi/__pycache__/exception_handlers.cpython-311.pyc,,
20
+ fastapi/__pycache__/exceptions.cpython-311.pyc,,
21
+ fastapi/__pycache__/logger.cpython-311.pyc,,
22
+ fastapi/__pycache__/param_functions.cpython-311.pyc,,
23
+ fastapi/__pycache__/params.cpython-311.pyc,,
24
+ fastapi/__pycache__/requests.cpython-311.pyc,,
25
+ fastapi/__pycache__/responses.cpython-311.pyc,,
26
+ fastapi/__pycache__/routing.cpython-311.pyc,,
27
+ fastapi/__pycache__/staticfiles.cpython-311.pyc,,
28
+ fastapi/__pycache__/templating.cpython-311.pyc,,
29
+ fastapi/__pycache__/testclient.cpython-311.pyc,,
30
+ fastapi/__pycache__/types.cpython-311.pyc,,
31
+ fastapi/__pycache__/utils.cpython-311.pyc,,
32
+ fastapi/__pycache__/websockets.cpython-311.pyc,,
33
+ fastapi/_compat.py,sha256=Rg7kA7uue4Z6yr8T7hf8b7G6PeC_06mK004Nnykijfk,23953
34
+ fastapi/applications.py,sha256=Ix-o9pQAWhEDf9J0Q1hZ0nBB1uP72c-Y3oiYzvrwqiM,176316
35
+ fastapi/background.py,sha256=rouLirxUANrcYC824MSMypXL_Qb2HYg2YZqaiEqbEKI,1768
36
+ fastapi/cli.py,sha256=OYhZb0NR_deuT5ofyPF2NoNBzZDNOP8Salef2nk-HqA,418
37
+ fastapi/concurrency.py,sha256=MirfowoSpkMQZ8j_g0ZxaQKpV6eB3G-dB5TgcXCrgEA,1424
38
+ fastapi/datastructures.py,sha256=b2PEz77XGq-u3Ur1Inwk0AGjOsQZO49yF9C7IPJ15cY,5766
39
+ fastapi/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ fastapi/dependencies/__pycache__/__init__.cpython-311.pyc,,
41
+ fastapi/dependencies/__pycache__/models.cpython-311.pyc,,
42
+ fastapi/dependencies/__pycache__/utils.cpython-311.pyc,,
43
+ fastapi/dependencies/models.py,sha256=Pjl6vx-4nZ5Tta9kJa3-RfQKkXtCpS09-FhMgs9eWNs,1507
44
+ fastapi/dependencies/utils.py,sha256=UqN1H0k_4PCnP-nRYNpup1fdIuzEx1F5ZVO6WuVRx4E,35579
45
+ fastapi/encoders.py,sha256=LvwYmFeOz4tVwvgBoC5rvZnbr7hZr73KGrU8O7zSptU,11068
46
+ fastapi/exception_handlers.py,sha256=MBrIOA-ugjJDivIi4rSsUJBdTsjuzN76q4yh0q1COKw,1332
47
+ fastapi/exceptions.py,sha256=taNixuFEXb67lI1bnX1ubq8y8TseJ4yoPlWjyP0fTzk,4969
48
+ fastapi/logger.py,sha256=I9NNi3ov8AcqbsbC9wl1X-hdItKgYt2XTrx1f99Zpl4,54
49
+ fastapi/middleware/__init__.py,sha256=oQDxiFVcc1fYJUOIFvphnK7pTT5kktmfL32QXpBFvvo,58
50
+ fastapi/middleware/__pycache__/__init__.cpython-311.pyc,,
51
+ fastapi/middleware/__pycache__/cors.cpython-311.pyc,,
52
+ fastapi/middleware/__pycache__/gzip.cpython-311.pyc,,
53
+ fastapi/middleware/__pycache__/httpsredirect.cpython-311.pyc,,
54
+ fastapi/middleware/__pycache__/trustedhost.cpython-311.pyc,,
55
+ fastapi/middleware/__pycache__/wsgi.cpython-311.pyc,,
56
+ fastapi/middleware/cors.py,sha256=ynwjWQZoc_vbhzZ3_ZXceoaSrslHFHPdoM52rXr0WUU,79
57
+ fastapi/middleware/gzip.py,sha256=xM5PcsH8QlAimZw4VDvcmTnqQamslThsfe3CVN2voa0,79
58
+ fastapi/middleware/httpsredirect.py,sha256=rL8eXMnmLijwVkH7_400zHri1AekfeBd6D6qs8ix950,115
59
+ fastapi/middleware/trustedhost.py,sha256=eE5XGRxGa7c5zPnMJDGp3BxaL25k5iVQlhnv-Pk0Pss,109
60
+ fastapi/middleware/wsgi.py,sha256=Z3Ue-7wni4lUZMvH3G9ek__acgYdJstbnpZX_HQAboY,79
61
+ fastapi/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ fastapi/openapi/__pycache__/__init__.cpython-311.pyc,,
63
+ fastapi/openapi/__pycache__/constants.cpython-311.pyc,,
64
+ fastapi/openapi/__pycache__/docs.cpython-311.pyc,,
65
+ fastapi/openapi/__pycache__/models.cpython-311.pyc,,
66
+ fastapi/openapi/__pycache__/utils.cpython-311.pyc,,
67
+ fastapi/openapi/constants.py,sha256=adGzmis1L1HJRTE3kJ5fmHS_Noq6tIY6pWv_SFzoFDU,153
68
+ fastapi/openapi/docs.py,sha256=XcQq-ZbQdC5sI0gIGu5MoHK1q-OFaqws7-ORTo6sjY4,10348
69
+ fastapi/openapi/models.py,sha256=PqkxQiqcEgjKuhfUIWPZPQcyTcubtUCB3vcObLsB7VE,15397
70
+ fastapi/openapi/utils.py,sha256=vpbAzWpuNaJL_ocBxt4jp0GUUwrDKNB1anyoAx69fhA,23177
71
+ fastapi/param_functions.py,sha256=JHNPLIYvoAwdnZZavIVsxOat8x23fX_Kl33reh7HKl8,64019
72
+ fastapi/params.py,sha256=g450axUBQgQJODdtM7WBxZbQj9Z64inFvadrgHikBbU,28237
73
+ fastapi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
+ fastapi/requests.py,sha256=zayepKFcienBllv3snmWI20Gk0oHNVLU4DDhqXBb4LU,142
75
+ fastapi/responses.py,sha256=QNQQlwpKhQoIPZTTWkpc9d_QGeGZ_aVQPaDV3nQ8m7c,1761
76
+ fastapi/routing.py,sha256=WK06IwZeyRwxkdB4uHZ7JXinxtVOxM8Ke0tqHaDOvYA,176208
77
+ fastapi/security/__init__.py,sha256=bO8pNmxqVRXUjfl2mOKiVZLn0FpBQ61VUYVjmppnbJw,881
78
+ fastapi/security/__pycache__/__init__.cpython-311.pyc,,
79
+ fastapi/security/__pycache__/api_key.cpython-311.pyc,,
80
+ fastapi/security/__pycache__/base.cpython-311.pyc,,
81
+ fastapi/security/__pycache__/http.cpython-311.pyc,,
82
+ fastapi/security/__pycache__/oauth2.cpython-311.pyc,,
83
+ fastapi/security/__pycache__/open_id_connect_url.cpython-311.pyc,,
84
+ fastapi/security/__pycache__/utils.cpython-311.pyc,,
85
+ fastapi/security/api_key.py,sha256=cBI5Z4zWVjL1uJrsjTeLy7MafHPAO2HQPzTrpyoIYWA,9094
86
+ fastapi/security/base.py,sha256=dl4pvbC-RxjfbWgPtCWd8MVU-7CB2SZ22rJDXVCXO6c,141
87
+ fastapi/security/http.py,sha256=223bAV_d7NjI57Pzhbd_KlQTYlMyr5MoN1TW80rbxF8,13512
88
+ fastapi/security/oauth2.py,sha256=xCo5j1qpze6CvEuJHIneOI0v2fodGVMpHHVnHpiLfoM,21589
89
+ fastapi/security/open_id_connect_url.py,sha256=8vizZ2tGqEp1ur8SwtVgyHJhGAJ5AqahgcvSpaIioDI,2722
90
+ fastapi/security/utils.py,sha256=bd8T0YM7UQD5ATKucr1bNtAvz_Y3__dVNAv5UebiPvc,293
91
+ fastapi/staticfiles.py,sha256=iirGIt3sdY2QZXd36ijs3Cj-T0FuGFda3cd90kM9Ikw,69
92
+ fastapi/templating.py,sha256=4zsuTWgcjcEainMJFAlW6-gnslm6AgOS1SiiDWfmQxk,76
93
+ fastapi/testclient.py,sha256=nBvaAmX66YldReJNZXPOk1sfuo2Q6hs8bOvIaCep6LQ,66
94
+ fastapi/types.py,sha256=nFb36sK3DSoqoyo7Miwy3meKK5UdFBgkAgLSzQlUVyI,383
95
+ fastapi/utils.py,sha256=y8Bj5ttMaI9tS4D60OUgXqKnktBr99NdYUnHHV9LgoY,7948
96
+ fastapi/websockets.py,sha256=419uncYObEKZG0YcrXscfQQYLSWoE10jqxVMetGdR98,222
.venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: pdm-backend (2.4.3)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
.venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/entry_points.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ [console_scripts]
2
+ fastapi = fastapi.cli:main
3
+
4
+ [gui_scripts]
5
+
.venv/lib/python3.11/site-packages/fastapi-0.115.8.dist-info/licenses/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 Sebastián Ramírez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
.venv/lib/python3.11/site-packages/grpc_status/__init__.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright 2018 The gRPC Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
.venv/lib/python3.11/site-packages/grpc_status/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (184 Bytes). View file
 
.venv/lib/python3.11/site-packages/grpc_status/__pycache__/_async.cpython-311.pyc ADDED
Binary file (2.03 kB). View file
 
.venv/lib/python3.11/site-packages/grpc_status/__pycache__/_common.cpython-311.pyc ADDED
Binary file (956 Bytes). View file
 
.venv/lib/python3.11/site-packages/grpc_status/__pycache__/rpc_status.cpython-311.pyc ADDED
Binary file (3.51 kB). View file
 
.venv/lib/python3.11/site-packages/grpc_status/_async.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright 2020 The gRPC Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ """Reference implementation for status mapping in gRPC Python."""
15
+
16
+ from google.rpc import status_pb2
17
+ from grpc.experimental import aio
18
+
19
+ from ._common import GRPC_DETAILS_METADATA_KEY
20
+ from ._common import code_to_grpc_status_code
21
+
22
+
23
+ async def from_call(call: aio.Call):
24
+ """Returns a google.rpc.status.Status message from a given grpc.aio.Call.
25
+
26
+ This is an EXPERIMENTAL API.
27
+
28
+ Args:
29
+ call: An grpc.aio.Call instance.
30
+
31
+ Returns:
32
+ A google.rpc.status.Status message representing the status of the RPC.
33
+ """
34
+ code = await call.code()
35
+ details = await call.details()
36
+ trailing_metadata = await call.trailing_metadata()
37
+ if trailing_metadata is None:
38
+ return None
39
+ for key, value in trailing_metadata:
40
+ if key == GRPC_DETAILS_METADATA_KEY:
41
+ rich_status = status_pb2.Status.FromString(value)
42
+ if code.value[0] != rich_status.code:
43
+ raise ValueError(
44
+ "Code in Status proto (%s) doesn't match status code (%s)"
45
+ % (code_to_grpc_status_code(rich_status.code), code)
46
+ )
47
+ if details != rich_status.message:
48
+ raise ValueError(
49
+ "Message in Status proto (%s) doesn't match status details"
50
+ " (%s)" % (rich_status.message, details)
51
+ )
52
+ return rich_status
53
+ return None
54
+
55
+
56
+ __all__ = [
57
+ "from_call",
58
+ ]
.venv/lib/python3.11/site-packages/grpc_status/_common.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright 2020 The gRPC Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ """Reference implementation for status mapping in gRPC Python."""
15
+
16
+ import grpc
17
+
18
+ _CODE_TO_GRPC_CODE_MAPPING = {x.value[0]: x for x in grpc.StatusCode}
19
+
20
+ GRPC_DETAILS_METADATA_KEY = "grpc-status-details-bin"
21
+
22
+
23
+ def code_to_grpc_status_code(code):
24
+ try:
25
+ return _CODE_TO_GRPC_CODE_MAPPING[code]
26
+ except KeyError:
27
+ raise ValueError("Invalid status code %s" % code)
.venv/lib/python3.11/site-packages/grpc_status/rpc_status.py ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright 2018 The gRPC Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ """Reference implementation for status mapping in gRPC Python."""
15
+
16
+ import collections
17
+ import sys
18
+
19
+ from google.rpc import status_pb2
20
+ import grpc
21
+
22
+ from ._common import GRPC_DETAILS_METADATA_KEY
23
+ from ._common import code_to_grpc_status_code
24
+
25
+
26
+ class _Status(
27
+ collections.namedtuple("_Status", ("code", "details", "trailing_metadata")),
28
+ grpc.Status,
29
+ ):
30
+ pass
31
+
32
+
33
+ def from_call(call):
34
+ """Returns a google.rpc.status.Status message corresponding to a given grpc.Call.
35
+
36
+ This is an EXPERIMENTAL API.
37
+
38
+ Args:
39
+ call: A grpc.Call instance.
40
+
41
+ Returns:
42
+ A google.rpc.status.Status message representing the status of the RPC.
43
+
44
+ Raises:
45
+ ValueError: If the gRPC call's code or details are inconsistent with the
46
+ status code and message inside of the google.rpc.status.Status.
47
+ """
48
+ if call.trailing_metadata() is None:
49
+ return None
50
+ for key, value in call.trailing_metadata():
51
+ if key == GRPC_DETAILS_METADATA_KEY:
52
+ rich_status = status_pb2.Status.FromString(value)
53
+ if call.code().value[0] != rich_status.code:
54
+ raise ValueError(
55
+ "Code in Status proto (%s) doesn't match status code (%s)"
56
+ % (code_to_grpc_status_code(rich_status.code), call.code())
57
+ )
58
+ if call.details() != rich_status.message:
59
+ raise ValueError(
60
+ "Message in Status proto (%s) doesn't match status details"
61
+ " (%s)" % (rich_status.message, call.details())
62
+ )
63
+ return rich_status
64
+ return None
65
+
66
+
67
+ def to_status(status):
68
+ """Convert a google.rpc.status.Status message to grpc.Status.
69
+
70
+ This is an EXPERIMENTAL API.
71
+
72
+ Args:
73
+ status: a google.rpc.status.Status message representing the non-OK status
74
+ to terminate the RPC with and communicate it to the client.
75
+
76
+ Returns:
77
+ A grpc.Status instance representing the input google.rpc.status.Status message.
78
+ """
79
+ return _Status(
80
+ code=code_to_grpc_status_code(status.code),
81
+ details=status.message,
82
+ trailing_metadata=(
83
+ (GRPC_DETAILS_METADATA_KEY, status.SerializeToString()),
84
+ ),
85
+ )
86
+
87
+
88
+ __all__ = [
89
+ "from_call",
90
+ "to_status",
91
+ ]
92
+
93
+ if sys.version_info[0] >= 3 and sys.version_info[1] >= 6:
94
+ from . import _async as aio # pylint: disable=unused-import
95
+
96
+ __all__.append("aio")
.venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/METADATA ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: iniconfig
3
+ Version: 2.0.0
4
+ Summary: brain-dead simple config-ini parsing
5
+ Project-URL: Homepage, https://github.com/pytest-dev/iniconfig
6
+ Author-email: Ronny Pfannschmidt <opensource@ronnypfannschmidt.de>, Holger Krekel <holger.krekel@gmail.com>
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: MacOS :: MacOS X
13
+ Classifier: Operating System :: Microsoft :: Windows
14
+ Classifier: Operating System :: POSIX
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3 :: Only
17
+ Classifier: Programming Language :: Python :: 3.7
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Topic :: Software Development :: Libraries
23
+ Classifier: Topic :: Utilities
24
+ Requires-Python: >=3.7
25
+ Description-Content-Type: text/x-rst
26
+
27
+ iniconfig: brain-dead simple parsing of ini files
28
+ =======================================================
29
+
30
+ iniconfig is a small and simple INI-file parser module
31
+ having a unique set of features:
32
+
33
+ * maintains order of sections and entries
34
+ * supports multi-line values with or without line-continuations
35
+ * supports "#" comments everywhere
36
+ * raises errors with proper line-numbers
37
+ * no bells and whistles like automatic substitutions
38
+ * iniconfig raises an Error if two sections have the same name.
39
+
40
+ If you encounter issues or have feature wishes please report them to:
41
+
42
+ https://github.com/RonnyPfannschmidt/iniconfig/issues
43
+
44
+ Basic Example
45
+ ===================================
46
+
47
+ If you have an ini file like this:
48
+
49
+ .. code-block:: ini
50
+
51
+ # content of example.ini
52
+ [section1] # comment
53
+ name1=value1 # comment
54
+ name1b=value1,value2 # comment
55
+
56
+ [section2]
57
+ name2=
58
+ line1
59
+ line2
60
+
61
+ then you can do:
62
+
63
+ .. code-block:: pycon
64
+
65
+ >>> import iniconfig
66
+ >>> ini = iniconfig.IniConfig("example.ini")
67
+ >>> ini['section1']['name1'] # raises KeyError if not exists
68
+ 'value1'
69
+ >>> ini.get('section1', 'name1b', [], lambda x: x.split(","))
70
+ ['value1', 'value2']
71
+ >>> ini.get('section1', 'notexist', [], lambda x: x.split(","))
72
+ []
73
+ >>> [x.name for x in list(ini)]
74
+ ['section1', 'section2']
75
+ >>> list(list(ini)[0].items())
76
+ [('name1', 'value1'), ('name1b', 'value1,value2')]
77
+ >>> 'section1' in ini
78
+ True
79
+ >>> 'inexistendsection' in ini
80
+ False
.venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/RECORD ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ iniconfig-2.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ iniconfig-2.0.0.dist-info/METADATA,sha256=2KcBd5DEFiZclO-ruP_qzN71qcTL0hNsCw5MCDIPN6I,2599
3
+ iniconfig-2.0.0.dist-info/RECORD,,
4
+ iniconfig-2.0.0.dist-info/WHEEL,sha256=hKi7AIIx6qfnsRbr087vpeJnrVUuDokDHZacPPMW7-Y,87
5
+ iniconfig-2.0.0.dist-info/licenses/LICENSE,sha256=KvaAw570k_uCgwNW0dPfGstaBgM8ui3sehniHKp3qGY,1061
6
+ iniconfig/__init__.py,sha256=ALJSNenAgTD7RNj820NggEQuyaZp2QseTCThGJPavk0,5473
7
+ iniconfig/__pycache__/__init__.cpython-311.pyc,,
8
+ iniconfig/__pycache__/_parse.cpython-311.pyc,,
9
+ iniconfig/__pycache__/_version.cpython-311.pyc,,
10
+ iniconfig/__pycache__/exceptions.cpython-311.pyc,,
11
+ iniconfig/_parse.py,sha256=OWGLbmE8GjxcoMWTvnGbck1RoNsTm5bt5ficIRZqWJ8,2436
12
+ iniconfig/_version.py,sha256=WM8rOXoL5t25aMQJp4qbU2XP09nrDtmDnrAGhHSk0Wk,160
13
+ iniconfig/exceptions.py,sha256=3V2JS5rndwiYUh84PNYS_1zd8H8IB-Rar81ARAA7E9s,501
14
+ iniconfig/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
.venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.12.2
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
.venv/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info/licenses/LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Permission is hereby granted, free of charge, to any person obtaining a copy
3
+ of this software and associated documentation files (the "Software"), to deal
4
+ in the Software without restriction, including without limitation the rights
5
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
6
+ copies of the Software, and to permit persons to whom the Software is
7
+ furnished to do so, subject to the following conditions:
8
+
9
+ The above copyright notice and this permission notice shall be included in all
10
+ copies or substantial portions of the Software.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ SOFTWARE.
19
+
.venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/LICENSE.txt ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright 2007 Pallets
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are
5
+ met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright
8
+ notice, this list of conditions and the following disclaimer.
9
+
10
+ 2. Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ 3. Neither the name of the copyright holder nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/METADATA ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.3
2
+ Name: Jinja2
3
+ Version: 3.1.5
4
+ Summary: A very fast and expressive template engine.
5
+ Maintainer-email: Pallets <contact@palletsprojects.com>
6
+ Requires-Python: >=3.7
7
+ Description-Content-Type: text/markdown
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Environment :: Web Environment
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: BSD License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
15
+ Classifier: Topic :: Text Processing :: Markup :: HTML
16
+ Classifier: Typing :: Typed
17
+ Requires-Dist: MarkupSafe>=2.0
18
+ Requires-Dist: Babel>=2.7 ; extra == "i18n"
19
+ Project-URL: Changes, https://jinja.palletsprojects.com/changes/
20
+ Project-URL: Chat, https://discord.gg/pallets
21
+ Project-URL: Documentation, https://jinja.palletsprojects.com/
22
+ Project-URL: Donate, https://palletsprojects.com/donate
23
+ Project-URL: Source, https://github.com/pallets/jinja/
24
+ Provides-Extra: i18n
25
+
26
+ # Jinja
27
+
28
+ Jinja is a fast, expressive, extensible templating engine. Special
29
+ placeholders in the template allow writing code similar to Python
30
+ syntax. Then the template is passed data to render the final document.
31
+
32
+ It includes:
33
+
34
+ - Template inheritance and inclusion.
35
+ - Define and import macros within templates.
36
+ - HTML templates can use autoescaping to prevent XSS from untrusted
37
+ user input.
38
+ - A sandboxed environment can safely render untrusted templates.
39
+ - AsyncIO support for generating templates and calling async
40
+ functions.
41
+ - I18N support with Babel.
42
+ - Templates are compiled to optimized Python code just-in-time and
43
+ cached, or can be compiled ahead-of-time.
44
+ - Exceptions point to the correct line in templates to make debugging
45
+ easier.
46
+ - Extensible filters, tests, functions, and even syntax.
47
+
48
+ Jinja's philosophy is that while application logic belongs in Python if
49
+ possible, it shouldn't make the template designer's job difficult by
50
+ restricting functionality too much.
51
+
52
+
53
+ ## In A Nutshell
54
+
55
+ ```jinja
56
+ {% extends "base.html" %}
57
+ {% block title %}Members{% endblock %}
58
+ {% block content %}
59
+ <ul>
60
+ {% for user in users %}
61
+ <li><a href="{{ user.url }}">{{ user.username }}</a></li>
62
+ {% endfor %}
63
+ </ul>
64
+ {% endblock %}
65
+ ```
66
+
67
+ ## Donate
68
+
69
+ The Pallets organization develops and supports Jinja and other popular
70
+ packages. In order to grow the community of contributors and users, and
71
+ allow the maintainers to devote more time to the projects, [please
72
+ donate today][].
73
+
74
+ [please donate today]: https://palletsprojects.com/donate
75
+
.venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/RECORD ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jinja2-3.1.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ jinja2-3.1.5.dist-info/LICENSE.txt,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475
3
+ jinja2-3.1.5.dist-info/METADATA,sha256=PJNSUFNBwoqGA2vce2XSP8M_p2EYqAHYI7hoWLABtFo,2593
4
+ jinja2-3.1.5.dist-info/RECORD,,
5
+ jinja2-3.1.5.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
6
+ jinja2-3.1.5.dist-info/entry_points.txt,sha256=OL85gYU1eD8cuPlikifFngXpeBjaxl6rIJ8KkC_3r-I,58
7
+ jinja2/__init__.py,sha256=zpt8UHzpS2eB1c04kn1LkKkaXLXXcKd33klq7UJGIgg,1928
8
+ jinja2/__pycache__/__init__.cpython-311.pyc,,
9
+ jinja2/__pycache__/_identifier.cpython-311.pyc,,
10
+ jinja2/__pycache__/async_utils.cpython-311.pyc,,
11
+ jinja2/__pycache__/bccache.cpython-311.pyc,,
12
+ jinja2/__pycache__/compiler.cpython-311.pyc,,
13
+ jinja2/__pycache__/constants.cpython-311.pyc,,
14
+ jinja2/__pycache__/debug.cpython-311.pyc,,
15
+ jinja2/__pycache__/defaults.cpython-311.pyc,,
16
+ jinja2/__pycache__/environment.cpython-311.pyc,,
17
+ jinja2/__pycache__/exceptions.cpython-311.pyc,,
18
+ jinja2/__pycache__/ext.cpython-311.pyc,,
19
+ jinja2/__pycache__/filters.cpython-311.pyc,,
20
+ jinja2/__pycache__/idtracking.cpython-311.pyc,,
21
+ jinja2/__pycache__/lexer.cpython-311.pyc,,
22
+ jinja2/__pycache__/loaders.cpython-311.pyc,,
23
+ jinja2/__pycache__/meta.cpython-311.pyc,,
24
+ jinja2/__pycache__/nativetypes.cpython-311.pyc,,
25
+ jinja2/__pycache__/nodes.cpython-311.pyc,,
26
+ jinja2/__pycache__/optimizer.cpython-311.pyc,,
27
+ jinja2/__pycache__/parser.cpython-311.pyc,,
28
+ jinja2/__pycache__/runtime.cpython-311.pyc,,
29
+ jinja2/__pycache__/sandbox.cpython-311.pyc,,
30
+ jinja2/__pycache__/tests.cpython-311.pyc,,
31
+ jinja2/__pycache__/utils.cpython-311.pyc,,
32
+ jinja2/__pycache__/visitor.cpython-311.pyc,,
33
+ jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958
34
+ jinja2/async_utils.py,sha256=vK-PdsuorOMnWSnEkT3iUJRIkTnYgO2T6MnGxDgHI5o,2834
35
+ jinja2/bccache.py,sha256=gh0qs9rulnXo0PhX5jTJy2UHzI8wFnQ63o_vw7nhzRg,14061
36
+ jinja2/compiler.py,sha256=9RpCQl5X88BHllJiPsHPh295Hh0uApvwFJNQuutULeM,74131
37
+ jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433
38
+ jinja2/debug.py,sha256=CnHqCDHd-BVGvti_8ZsTolnXNhA3ECsY-6n_2pwU8Hw,6297
39
+ jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267
40
+ jinja2/environment.py,sha256=9nhrP7Ch-NbGX00wvyr4yy-uhNHq2OCc60ggGrni_fk,61513
41
+ jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071
42
+ jinja2/ext.py,sha256=5PF5eHfh8mXAIxXHHRB2xXbXohi8pE3nHSOxa66uS7E,31875
43
+ jinja2/filters.py,sha256=cvRI2pqXNMzw8ba41VOBpgu_wu1r-l1_QxwD6yVoJ5g,55025
44
+ jinja2/idtracking.py,sha256=-ll5lIp73pML3ErUYiIJj7tdmWxcH_IlDv3yA_hiZYo,10555
45
+ jinja2/lexer.py,sha256=LYiYio6br-Tep9nPcupWXsPEtjluw3p1mU-lNBVRUfk,29786
46
+ jinja2/loaders.py,sha256=wIrnxjvcbqh5VwW28NSkfotiDq8qNCxIOSFbGUiSLB4,24055
47
+ jinja2/meta.py,sha256=OTDPkaFvU2Hgvx-6akz7154F8BIWaRmvJcBFvwopHww,4397
48
+ jinja2/nativetypes.py,sha256=7GIGALVJgdyL80oZJdQUaUfwSt5q2lSSZbXt0dNf_M4,4210
49
+ jinja2/nodes.py,sha256=m1Duzcr6qhZI8JQ6VyJgUNinjAf5bQzijSmDnMsvUx8,34579
50
+ jinja2/optimizer.py,sha256=rJnCRlQ7pZsEEmMhsQDgC_pKyDHxP5TPS6zVPGsgcu8,1651
51
+ jinja2/parser.py,sha256=lLOFy3sEmHc5IaEHRiH1sQVnId2moUQzhyeJZTtdY30,40383
52
+ jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ jinja2/runtime.py,sha256=gDk-GvdriJXqgsGbHgrcKTP0Yp6zPXzhzrIpCFH3jAU,34249
54
+ jinja2/sandbox.py,sha256=Mw2aitlY2I8la7FYhcX2YG9BtUYcLnD0Gh3d29cDWrY,15009
55
+ jinja2/tests.py,sha256=VLsBhVFnWg-PxSBz1MhRnNWgP1ovXk3neO1FLQMeC9Q,5926
56
+ jinja2/utils.py,sha256=rRp3o9e7ZKS4fyrWRbELyLcpuGVTFcnooaOa1qx_FIk,24129
57
+ jinja2/visitor.py,sha256=EcnL1PIwf_4RVCOMxsRNuR8AXHbS1qfAdMOE2ngKJz4,3557
.venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: flit 3.10.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
.venv/lib/python3.11/site-packages/jinja2-3.1.5.dist-info/entry_points.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [babel.extractors]
2
+ jinja2=jinja2.ext:babel_extract[i18n]
3
+
.venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/License.txt ADDED
@@ -0,0 +1,1568 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ End User License Agreement
2
+ --------------------------
3
+
4
+
5
+ Preface
6
+ -------
7
+
8
+ The Software License Agreement in Chapter 1 and the Supplement
9
+ in Chapter 2 contain license terms and conditions that govern
10
+ the use of NVIDIA software. By accepting this agreement, you
11
+ agree to comply with all the terms and conditions applicable
12
+ to the product(s) included herein.
13
+
14
+
15
+ NVIDIA Driver
16
+
17
+
18
+ Description
19
+
20
+ This package contains the operating system driver and
21
+ fundamental system software components for NVIDIA GPUs.
22
+
23
+
24
+ NVIDIA CUDA Toolkit
25
+
26
+
27
+ Description
28
+
29
+ The NVIDIA CUDA Toolkit provides command-line and graphical
30
+ tools for building, debugging and optimizing the performance
31
+ of applications accelerated by NVIDIA GPUs, runtime and math
32
+ libraries, and documentation including programming guides,
33
+ user manuals, and API references.
34
+
35
+
36
+ Default Install Location of CUDA Toolkit
37
+
38
+ Windows platform:
39
+
40
+ %ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v#.#
41
+
42
+ Linux platform:
43
+
44
+ /usr/local/cuda-#.#
45
+
46
+ Mac platform:
47
+
48
+ /Developer/NVIDIA/CUDA-#.#
49
+
50
+
51
+ NVIDIA CUDA Samples
52
+
53
+
54
+ Description
55
+
56
+ This package includes over 100+ CUDA examples that demonstrate
57
+ various CUDA programming principles, and efficient CUDA
58
+ implementation of algorithms in specific application domains.
59
+
60
+
61
+ Default Install Location of CUDA Samples
62
+
63
+ Windows platform:
64
+
65
+ %ProgramData%\NVIDIA Corporation\CUDA Samples\v#.#
66
+
67
+ Linux platform:
68
+
69
+ /usr/local/cuda-#.#/samples
70
+
71
+ and
72
+
73
+ $HOME/NVIDIA_CUDA-#.#_Samples
74
+
75
+ Mac platform:
76
+
77
+ /Developer/NVIDIA/CUDA-#.#/samples
78
+
79
+
80
+ NVIDIA Nsight Visual Studio Edition (Windows only)
81
+
82
+
83
+ Description
84
+
85
+ NVIDIA Nsight Development Platform, Visual Studio Edition is a
86
+ development environment integrated into Microsoft Visual
87
+ Studio that provides tools for debugging, profiling, analyzing
88
+ and optimizing your GPU computing and graphics applications.
89
+
90
+
91
+ Default Install Location of Nsight Visual Studio Edition
92
+
93
+ Windows platform:
94
+
95
+ %ProgramFiles(x86)%\NVIDIA Corporation\Nsight Visual Studio Edition #.#
96
+
97
+
98
+ 1. License Agreement for NVIDIA Software Development Kits
99
+ ---------------------------------------------------------
100
+
101
+
102
+ Release Date: July 26, 2018
103
+ ---------------------------
104
+
105
+
106
+ Important NoticeRead before downloading, installing,
107
+ copying or using the licensed software:
108
+ -------------------------------------------------------
109
+
110
+ This license agreement, including exhibits attached
111
+ ("Agreement”) is a legal agreement between you and NVIDIA
112
+ Corporation ("NVIDIA") and governs your use of a NVIDIA
113
+ software development kit (“SDK”).
114
+
115
+ Each SDK has its own set of software and materials, but here
116
+ is a description of the types of items that may be included in
117
+ a SDK: source code, header files, APIs, data sets and assets
118
+ (examples include images, textures, models, scenes, videos,
119
+ native API input/output files), binary software, sample code,
120
+ libraries, utility programs, programming code and
121
+ documentation.
122
+
123
+ This Agreement can be accepted only by an adult of legal age
124
+ of majority in the country in which the SDK is used.
125
+
126
+ If you are entering into this Agreement on behalf of a company
127
+ or other legal entity, you represent that you have the legal
128
+ authority to bind the entity to this Agreement, in which case
129
+ “you” will mean the entity you represent.
130
+
131
+ If you don’t have the required age or authority to accept
132
+ this Agreement, or if you don’t accept all the terms and
133
+ conditions of this Agreement, do not download, install or use
134
+ the SDK.
135
+
136
+ You agree to use the SDK only for purposes that are permitted
137
+ by (a) this Agreement, and (b) any applicable law, regulation
138
+ or generally accepted practices or guidelines in the relevant
139
+ jurisdictions.
140
+
141
+
142
+ 1.1. License
143
+
144
+
145
+ 1.1.1. License Grant
146
+
147
+ Subject to the terms of this Agreement, NVIDIA hereby grants
148
+ you a non-exclusive, non-transferable license, without the
149
+ right to sublicense (except as expressly provided in this
150
+ Agreement) to:
151
+
152
+ 1. Install and use the SDK,
153
+
154
+ 2. Modify and create derivative works of sample source code
155
+ delivered in the SDK, and
156
+
157
+ 3. Distribute those portions of the SDK that are identified
158
+ in this Agreement as distributable, as incorporated in
159
+ object code format into a software application that meets
160
+ the distribution requirements indicated in this Agreement.
161
+
162
+
163
+ 1.1.2. Distribution Requirements
164
+
165
+ These are the distribution requirements for you to exercise
166
+ the distribution grant:
167
+
168
+ 1. Your application must have material additional
169
+ functionality, beyond the included portions of the SDK.
170
+
171
+ 2. The distributable portions of the SDK shall only be
172
+ accessed by your application.
173
+
174
+ 3. The following notice shall be included in modifications
175
+ and derivative works of sample source code distributed:
176
+ “This software contains source code provided by NVIDIA
177
+ Corporation.”
178
+
179
+ 4. Unless a developer tool is identified in this Agreement
180
+ as distributable, it is delivered for your internal use
181
+ only.
182
+
183
+ 5. The terms under which you distribute your application
184
+ must be consistent with the terms of this Agreement,
185
+ including (without limitation) terms relating to the
186
+ license grant and license restrictions and protection of
187
+ NVIDIA’s intellectual property rights. Additionally, you
188
+ agree that you will protect the privacy, security and
189
+ legal rights of your application users.
190
+
191
+ 6. You agree to notify NVIDIA in writing of any known or
192
+ suspected distribution or use of the SDK not in compliance
193
+ with the requirements of this Agreement, and to enforce
194
+ the terms of your agreements with respect to distributed
195
+ SDK.
196
+
197
+
198
+ 1.1.3. Authorized Users
199
+
200
+ You may allow employees and contractors of your entity or of
201
+ your subsidiary(ies) to access and use the SDK from your
202
+ secure network to perform work on your behalf.
203
+
204
+ If you are an academic institution you may allow users
205
+ enrolled or employed by the academic institution to access and
206
+ use the SDK from your secure network.
207
+
208
+ You are responsible for the compliance with the terms of this
209
+ Agreement by your authorized users. If you become aware that
210
+ your authorized users didn’t follow the terms of this
211
+ Agreement, you agree to take reasonable steps to resolve the
212
+ non-compliance and prevent new occurrences.
213
+
214
+
215
+ 1.1.4. Pre-Release SDK
216
+
217
+ The SDK versions identified as alpha, beta, preview or
218
+ otherwise as pre-release, may not be fully functional, may
219
+ contain errors or design flaws, and may have reduced or
220
+ different security, privacy, accessibility, availability, and
221
+ reliability standards relative to commercial versions of
222
+ NVIDIA software and materials. Use of a pre-release SDK may
223
+ result in unexpected results, loss of data, project delays or
224
+ other unpredictable damage or loss.
225
+
226
+ You may use a pre-release SDK at your own risk, understanding
227
+ that pre-release SDKs are not intended for use in production
228
+ or business-critical systems.
229
+
230
+ NVIDIA may choose not to make available a commercial version
231
+ of any pre-release SDK. NVIDIA may also choose to abandon
232
+ development and terminate the availability of a pre-release
233
+ SDK at any time without liability.
234
+
235
+
236
+ 1.1.5. Updates
237
+
238
+ NVIDIA may, at its option, make available patches, workarounds
239
+ or other updates to this SDK. Unless the updates are provided
240
+ with their separate governing terms, they are deemed part of
241
+ the SDK licensed to you as provided in this Agreement. You
242
+ agree that the form and content of the SDK that NVIDIA
243
+ provides may change without prior notice to you. While NVIDIA
244
+ generally maintains compatibility between versions, NVIDIA may
245
+ in some cases make changes that introduce incompatibilities in
246
+ future versions of the SDK.
247
+
248
+
249
+ 1.1.6. Third Party Licenses
250
+
251
+ The SDK may come bundled with, or otherwise include or be
252
+ distributed with, third party software licensed by a NVIDIA
253
+ supplier and/or open source software provided under an open
254
+ source license. Use of third party software is subject to the
255
+ third-party license terms, or in the absence of third party
256
+ terms, the terms of this Agreement. Copyright to third party
257
+ software is held by the copyright holders indicated in the
258
+ third-party software or license.
259
+
260
+
261
+ 1.1.7. Reservation of Rights
262
+
263
+ NVIDIA reserves all rights, title, and interest in and to the
264
+ SDK, not expressly granted to you under this Agreement.
265
+
266
+
267
+ 1.2. Limitations
268
+
269
+ The following license limitations apply to your use of the
270
+ SDK:
271
+
272
+ 1. You may not reverse engineer, decompile or disassemble,
273
+ or remove copyright or other proprietary notices from any
274
+ portion of the SDK or copies of the SDK.
275
+
276
+ 2. Except as expressly provided in this Agreement, you may
277
+ not copy, sell, rent, sublicense, transfer, distribute,
278
+ modify, or create derivative works of any portion of the
279
+ SDK. For clarity, you may not distribute or sublicense the
280
+ SDK as a stand-alone product.
281
+
282
+ 3. Unless you have an agreement with NVIDIA for this
283
+ purpose, you may not indicate that an application created
284
+ with the SDK is sponsored or endorsed by NVIDIA.
285
+
286
+ 4. You may not bypass, disable, or circumvent any
287
+ encryption, security, digital rights management or
288
+ authentication mechanism in the SDK.
289
+
290
+ 5. You may not use the SDK in any manner that would cause it
291
+ to become subject to an open source software license. As
292
+ examples, licenses that require as a condition of use,
293
+ modification, and/or distribution that the SDK be:
294
+
295
+ a. Disclosed or distributed in source code form;
296
+
297
+ b. Licensed for the purpose of making derivative works;
298
+ or
299
+
300
+ c. Redistributable at no charge.
301
+
302
+ 6. Unless you have an agreement with NVIDIA for this
303
+ purpose, you may not use the SDK with any system or
304
+ application where the use or failure of the system or
305
+ application can reasonably be expected to threaten or
306
+ result in personal injury, death, or catastrophic loss.
307
+ Examples include use in avionics, navigation, military,
308
+ medical, life support or other life critical applications.
309
+ NVIDIA does not design, test or manufacture the SDK for
310
+ these critical uses and NVIDIA shall not be liable to you
311
+ or any third party, in whole or in part, for any claims or
312
+ damages arising from such uses.
313
+
314
+ 7. You agree to defend, indemnify and hold harmless NVIDIA
315
+ and its affiliates, and their respective employees,
316
+ contractors, agents, officers and directors, from and
317
+ against any and all claims, damages, obligations, losses,
318
+ liabilities, costs or debt, fines, restitutions and
319
+ expenses (including but not limited to attorney’s fees
320
+ and costs incident to establishing the right of
321
+ indemnification) arising out of or related to your use of
322
+ the SDK outside of the scope of this Agreement, or not in
323
+ compliance with its terms.
324
+
325
+
326
+ 1.3. Ownership
327
+
328
+ 1. NVIDIA or its licensors hold all rights, title and
329
+ interest in and to the SDK and its modifications and
330
+ derivative works, including their respective intellectual
331
+ property rights, subject to your rights described in this
332
+ section. This SDK may include software and materials from
333
+ NVIDIA’s licensors, and these licensors are intended
334
+ third party beneficiaries that may enforce this Agreement
335
+ with respect to their intellectual property rights.
336
+
337
+ 2. You hold all rights, title and interest in and to your
338
+ applications and your derivative works of the sample
339
+ source code delivered in the SDK, including their
340
+ respective intellectual property rights, subject to
341
+ NVIDIA’s rights described in this section.
342
+
343
+ 3. You may, but don’t have to, provide to NVIDIA
344
+ suggestions, feature requests or other feedback regarding
345
+ the SDK, including possible enhancements or modifications
346
+ to the SDK. For any feedback that you voluntarily provide,
347
+ you hereby grant NVIDIA and its affiliates a perpetual,
348
+ non-exclusive, worldwide, irrevocable license to use,
349
+ reproduce, modify, license, sublicense (through multiple
350
+ tiers of sublicensees), and distribute (through multiple
351
+ tiers of distributors) it without the payment of any
352
+ royalties or fees to you. NVIDIA will use feedback at its
353
+ choice. NVIDIA is constantly looking for ways to improve
354
+ its products, so you may send feedback to NVIDIA through
355
+ the developer portal at https://developer.nvidia.com.
356
+
357
+
358
+ 1.4. No Warranties
359
+
360
+ THE SDK IS PROVIDED BY NVIDIA “AS IS” AND “WITH ALL
361
+ FAULTS.” TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND
362
+ ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND
363
+ OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,
364
+ BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
365
+ FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, OR THE
366
+ ABSENCE OF ANY DEFECTS THEREIN, WHETHER LATENT OR PATENT. NO
367
+ WARRANTY IS MADE ON THE BASIS OF TRADE USAGE, COURSE OF
368
+ DEALING OR COURSE OF TRADE.
369
+
370
+
371
+ 1.5. Limitation of Liability
372
+
373
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS
374
+ AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
375
+ PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, LOSS
376
+ OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF
377
+ PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION
378
+ WITH THIS AGREEMENT OR THE USE OR PERFORMANCE OF THE SDK,
379
+ WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH
380
+ OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE),
381
+ PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF
382
+ LIABILITY. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES
383
+ TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS
384
+ AGREEMENT EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE
385
+ NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS
386
+ LIMIT.
387
+
388
+ These exclusions and limitations of liability shall apply
389
+ regardless if NVIDIA or its affiliates have been advised of
390
+ the possibility of such damages, and regardless of whether a
391
+ remedy fails its essential purpose. These exclusions and
392
+ limitations of liability form an essential basis of the
393
+ bargain between the parties, and, absent any of these
394
+ exclusions or limitations of liability, the provisions of this
395
+ Agreement, including, without limitation, the economic terms,
396
+ would be substantially different.
397
+
398
+
399
+ 1.6. Termination
400
+
401
+ 1. This Agreement will continue to apply until terminated by
402
+ either you or NVIDIA as described below.
403
+
404
+ 2. If you want to terminate this Agreement, you may do so by
405
+ stopping to use the SDK.
406
+
407
+ 3. NVIDIA may, at any time, terminate this Agreement if:
408
+
409
+ a. (i) you fail to comply with any term of this
410
+ Agreement and the non-compliance is not fixed within
411
+ thirty (30) days following notice from NVIDIA (or
412
+ immediately if you violate NVIDIA’s intellectual
413
+ property rights);
414
+
415
+ b. (ii) you commence or participate in any legal
416
+ proceeding against NVIDIA with respect to the SDK; or
417
+
418
+ c. (iii) NVIDIA decides to no longer provide the SDK in
419
+ a country or, in NVIDIA’s sole discretion, the
420
+ continued use of it is no longer commercially viable.
421
+
422
+ 4. Upon any termination of this Agreement, you agree to
423
+ promptly discontinue use of the SDK and destroy all copies
424
+ in your possession or control. Your prior distributions in
425
+ accordance with this Agreement are not affected by the
426
+ termination of this Agreement. Upon written request, you
427
+ will certify in writing that you have complied with your
428
+ commitments under this section. Upon any termination of
429
+ this Agreement all provisions survive except for the
430
+ license grant provisions.
431
+
432
+
433
+ 1.7. General
434
+
435
+ If you wish to assign this Agreement or your rights and
436
+ obligations, including by merger, consolidation, dissolution
437
+ or operation of law, contact NVIDIA to ask for permission. Any
438
+ attempted assignment not approved by NVIDIA in writing shall
439
+ be void and of no effect. NVIDIA may assign, delegate or
440
+ transfer this Agreement and its rights and obligations, and if
441
+ to a non-affiliate you will be notified.
442
+
443
+ You agree to cooperate with NVIDIA and provide reasonably
444
+ requested information to verify your compliance with this
445
+ Agreement.
446
+
447
+ This Agreement will be governed in all respects by the laws of
448
+ the United States and of the State of Delaware as those laws
449
+ are applied to contracts entered into and performed entirely
450
+ within Delaware by Delaware residents, without regard to the
451
+ conflicts of laws principles. The United Nations Convention on
452
+ Contracts for the International Sale of Goods is specifically
453
+ disclaimed. You agree to all terms of this Agreement in the
454
+ English language.
455
+
456
+ The state or federal courts residing in Santa Clara County,
457
+ California shall have exclusive jurisdiction over any dispute
458
+ or claim arising out of this Agreement. Notwithstanding this,
459
+ you agree that NVIDIA shall still be allowed to apply for
460
+ injunctive remedies or an equivalent type of urgent legal
461
+ relief in any jurisdiction.
462
+
463
+ If any court of competent jurisdiction determines that any
464
+ provision of this Agreement is illegal, invalid or
465
+ unenforceable, such provision will be construed as limited to
466
+ the extent necessary to be consistent with and fully
467
+ enforceable under the law and the remaining provisions will
468
+ remain in full force and effect. Unless otherwise specified,
469
+ remedies are cumulative.
470
+
471
+ Each party acknowledges and agrees that the other is an
472
+ independent contractor in the performance of this Agreement.
473
+
474
+ The SDK has been developed entirely at private expense and is
475
+ “commercial items” consisting of “commercial computer
476
+ software” and “commercial computer software
477
+ documentation” provided with RESTRICTED RIGHTS. Use,
478
+ duplication or disclosure by the U.S. Government or a U.S.
479
+ Government subcontractor is subject to the restrictions in
480
+ this Agreement pursuant to DFARS 227.7202-3(a) or as set forth
481
+ in subparagraphs (c)(1) and (2) of the Commercial Computer
482
+ Software - Restricted Rights clause at FAR 52.227-19, as
483
+ applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas
484
+ Expressway, Santa Clara, CA 95051.
485
+
486
+ The SDK is subject to United States export laws and
487
+ regulations. You agree that you will not ship, transfer or
488
+ export the SDK into any country, or use the SDK in any manner,
489
+ prohibited by the United States Bureau of Industry and
490
+ Security or economic sanctions regulations administered by the
491
+ U.S. Department of Treasury’s Office of Foreign Assets
492
+ Control (OFAC), or any applicable export laws, restrictions or
493
+ regulations. These laws include restrictions on destinations,
494
+ end users and end use. By accepting this Agreement, you
495
+ confirm that you are not a resident or citizen of any country
496
+ currently embargoed by the U.S. and that you are not otherwise
497
+ prohibited from receiving the SDK.
498
+
499
+ Any notice delivered by NVIDIA to you under this Agreement
500
+ will be delivered via mail, email or fax. You agree that any
501
+ notices that NVIDIA sends you electronically will satisfy any
502
+ legal communication requirements. Please direct your legal
503
+ notices or other correspondence to NVIDIA Corporation, 2788
504
+ San Tomas Expressway, Santa Clara, California 95051, United
505
+ States of America, Attention: Legal Department.
506
+
507
+ This Agreement and any exhibits incorporated into this
508
+ Agreement constitute the entire agreement of the parties with
509
+ respect to the subject matter of this Agreement and supersede
510
+ all prior negotiations or documentation exchanged between the
511
+ parties relating to this SDK license. Any additional and/or
512
+ conflicting terms on documents issued by you are null, void,
513
+ and invalid. Any amendment or waiver under this Agreement
514
+ shall be in writing and signed by representatives of both
515
+ parties.
516
+
517
+
518
+ 2. CUDA Toolkit Supplement to Software License Agreement for
519
+ NVIDIA Software Development Kits
520
+ ------------------------------------------------------------
521
+
522
+
523
+ Release date: August 16, 2018
524
+ -----------------------------
525
+
526
+ The terms in this supplement govern your use of the NVIDIA
527
+ CUDA Toolkit SDK under the terms of your license agreement
528
+ (“Agreement”) as modified by this supplement. Capitalized
529
+ terms used but not defined below have the meaning assigned to
530
+ them in the Agreement.
531
+
532
+ This supplement is an exhibit to the Agreement and is
533
+ incorporated as an integral part of the Agreement. In the
534
+ event of conflict between the terms in this supplement and the
535
+ terms in the Agreement, the terms in this supplement govern.
536
+
537
+
538
+ 2.1. License Scope
539
+
540
+ The SDK is licensed for you to develop applications only for
541
+ use in systems with NVIDIA GPUs.
542
+
543
+
544
+ 2.2. Distribution
545
+
546
+ The portions of the SDK that are distributable under the
547
+ Agreement are listed in Attachment A.
548
+
549
+
550
+ 2.3. Operating Systems
551
+
552
+ Those portions of the SDK designed exclusively for use on the
553
+ Linux or FreeBSD operating systems, or other operating systems
554
+ derived from the source code to these operating systems, may
555
+ be copied and redistributed for use in accordance with this
556
+ Agreement, provided that the object code files are not
557
+ modified in any way (except for unzipping of compressed
558
+ files).
559
+
560
+
561
+ 2.4. Audio and Video Encoders and Decoders
562
+
563
+ You acknowledge and agree that it is your sole responsibility
564
+ to obtain any additional third-party licenses required to
565
+ make, have made, use, have used, sell, import, and offer for
566
+ sale your products or services that include or incorporate any
567
+ third-party software and content relating to audio and/or
568
+ video encoders and decoders from, including but not limited
569
+ to, Microsoft, Thomson, Fraunhofer IIS, Sisvel S.p.A.,
570
+ MPEG-LA, and Coding Technologies. NVIDIA does not grant to you
571
+ under this Agreement any necessary patent or other rights with
572
+ respect to any audio and/or video encoders and decoders.
573
+
574
+
575
+ 2.5. Licensing
576
+
577
+ If the distribution terms in this Agreement are not suitable
578
+ for your organization, or for any questions regarding this
579
+ Agreement, please contact NVIDIA at
580
+ nvidia-compute-license-questions@nvidia.com.
581
+
582
+
583
+ 2.6. Attachment A
584
+
585
+ The following portions of the SDK are distributable under the
586
+ Agreement:
587
+
588
+ Component
589
+
590
+ CUDA Runtime
591
+
592
+ Windows
593
+
594
+ cudart.dll, cudart_static.lib, cudadevrt.lib
595
+
596
+ Mac OSX
597
+
598
+ libcudart.dylib, libcudart_static.a, libcudadevrt.a
599
+
600
+ Linux
601
+
602
+ libcudart.so, libcudart_static.a, libcudadevrt.a
603
+
604
+ Android
605
+
606
+ libcudart.so, libcudart_static.a, libcudadevrt.a
607
+
608
+ Component
609
+
610
+ CUDA FFT Library
611
+
612
+ Windows
613
+
614
+ cufft.dll, cufftw.dll, cufft.lib, cufftw.lib
615
+
616
+ Mac OSX
617
+
618
+ libcufft.dylib, libcufft_static.a, libcufftw.dylib,
619
+ libcufftw_static.a
620
+
621
+ Linux
622
+
623
+ libcufft.so, libcufft_static.a, libcufftw.so,
624
+ libcufftw_static.a
625
+
626
+ Android
627
+
628
+ libcufft.so, libcufft_static.a, libcufftw.so,
629
+ libcufftw_static.a
630
+
631
+ Component
632
+
633
+ CUDA BLAS Library
634
+
635
+ Windows
636
+
637
+ cublas.dll, cublasLt.dll
638
+
639
+ Mac OSX
640
+
641
+ libcublas.dylib, libcublasLt.dylib, libcublas_static.a,
642
+ libcublasLt_static.a
643
+
644
+ Linux
645
+
646
+ libcublas.so, libcublasLt.so, libcublas_static.a,
647
+ libcublasLt_static.a
648
+
649
+ Android
650
+
651
+ libcublas.so, libcublasLt.so, libcublas_static.a,
652
+ libcublasLt_static.a
653
+
654
+ Component
655
+
656
+ NVIDIA "Drop-in" BLAS Library
657
+
658
+ Windows
659
+
660
+ nvblas.dll
661
+
662
+ Mac OSX
663
+
664
+ libnvblas.dylib
665
+
666
+ Linux
667
+
668
+ libnvblas.so
669
+
670
+ Component
671
+
672
+ CUDA Sparse Matrix Library
673
+
674
+ Windows
675
+
676
+ cusparse.dll, cusparse.lib
677
+
678
+ Mac OSX
679
+
680
+ libcusparse.dylib, libcusparse_static.a
681
+
682
+ Linux
683
+
684
+ libcusparse.so, libcusparse_static.a
685
+
686
+ Android
687
+
688
+ libcusparse.so, libcusparse_static.a
689
+
690
+ Component
691
+
692
+ CUDA Linear Solver Library
693
+
694
+ Windows
695
+
696
+ cusolver.dll, cusolver.lib
697
+
698
+ Mac OSX
699
+
700
+ libcusolver.dylib, libcusolver_static.a
701
+
702
+ Linux
703
+
704
+ libcusolver.so, libcusolver_static.a
705
+
706
+ Android
707
+
708
+ libcusolver.so, libcusolver_static.a
709
+
710
+ Component
711
+
712
+ CUDA Random Number Generation Library
713
+
714
+ Windows
715
+
716
+ curand.dll, curand.lib
717
+
718
+ Mac OSX
719
+
720
+ libcurand.dylib, libcurand_static.a
721
+
722
+ Linux
723
+
724
+ libcurand.so, libcurand_static.a
725
+
726
+ Android
727
+
728
+ libcurand.so, libcurand_static.a
729
+
730
+ Component
731
+
732
+ CUDA Accelerated Graph Library
733
+
734
+ Component
735
+
736
+ NVIDIA Performance Primitives Library
737
+
738
+ Windows
739
+
740
+ nppc.dll, nppc.lib, nppial.dll, nppial.lib, nppicc.dll,
741
+ nppicc.lib, nppicom.dll, nppicom.lib, nppidei.dll,
742
+ nppidei.lib, nppif.dll, nppif.lib, nppig.dll, nppig.lib,
743
+ nppim.dll, nppim.lib, nppist.dll, nppist.lib, nppisu.dll,
744
+ nppisu.lib, nppitc.dll, nppitc.lib, npps.dll, npps.lib
745
+
746
+ Mac OSX
747
+
748
+ libnppc.dylib, libnppc_static.a, libnppial.dylib,
749
+ libnppial_static.a, libnppicc.dylib, libnppicc_static.a,
750
+ libnppicom.dylib, libnppicom_static.a, libnppidei.dylib,
751
+ libnppidei_static.a, libnppif.dylib, libnppif_static.a,
752
+ libnppig.dylib, libnppig_static.a, libnppim.dylib,
753
+ libnppisu_static.a, libnppitc.dylib, libnppitc_static.a,
754
+ libnpps.dylib, libnpps_static.a
755
+
756
+ Linux
757
+
758
+ libnppc.so, libnppc_static.a, libnppial.so,
759
+ libnppial_static.a, libnppicc.so, libnppicc_static.a,
760
+ libnppicom.so, libnppicom_static.a, libnppidei.so,
761
+ libnppidei_static.a, libnppif.so, libnppif_static.a
762
+ libnppig.so, libnppig_static.a, libnppim.so,
763
+ libnppim_static.a, libnppist.so, libnppist_static.a,
764
+ libnppisu.so, libnppisu_static.a, libnppitc.so
765
+ libnppitc_static.a, libnpps.so, libnpps_static.a
766
+
767
+ Android
768
+
769
+ libnppc.so, libnppc_static.a, libnppial.so,
770
+ libnppial_static.a, libnppicc.so, libnppicc_static.a,
771
+ libnppicom.so, libnppicom_static.a, libnppidei.so,
772
+ libnppidei_static.a, libnppif.so, libnppif_static.a
773
+ libnppig.so, libnppig_static.a, libnppim.so,
774
+ libnppim_static.a, libnppist.so, libnppist_static.a,
775
+ libnppisu.so, libnppisu_static.a, libnppitc.so
776
+ libnppitc_static.a, libnpps.so, libnpps_static.a
777
+
778
+ Component
779
+
780
+ NVIDIA JPEG Library
781
+
782
+ Linux
783
+
784
+ libnvjpeg.so, libnvjpeg_static.a
785
+
786
+ Component
787
+
788
+ Internal common library required for statically linking to
789
+ cuBLAS, cuSPARSE, cuFFT, cuRAND, nvJPEG and NPP
790
+
791
+ Mac OSX
792
+
793
+ libculibos.a
794
+
795
+ Linux
796
+
797
+ libculibos.a
798
+
799
+ Component
800
+
801
+ NVIDIA Runtime Compilation Library and Header
802
+
803
+ All
804
+
805
+ nvrtc.h
806
+
807
+ Windows
808
+
809
+ nvrtc.dll, nvrtc-builtins.dll
810
+
811
+ Mac OSX
812
+
813
+ libnvrtc.dylib, libnvrtc-builtins.dylib
814
+
815
+ Linux
816
+
817
+ libnvrtc.so, libnvrtc-builtins.so
818
+
819
+ Component
820
+
821
+ NVIDIA Optimizing Compiler Library
822
+
823
+ Windows
824
+
825
+ nvvm.dll
826
+
827
+ Mac OSX
828
+
829
+ libnvvm.dylib
830
+
831
+ Linux
832
+
833
+ libnvvm.so
834
+
835
+ Component
836
+
837
+ NVIDIA Common Device Math Functions Library
838
+
839
+ Windows
840
+
841
+ libdevice.10.bc
842
+
843
+ Mac OSX
844
+
845
+ libdevice.10.bc
846
+
847
+ Linux
848
+
849
+ libdevice.10.bc
850
+
851
+ Component
852
+
853
+ CUDA Occupancy Calculation Header Library
854
+
855
+ All
856
+
857
+ cuda_occupancy.h
858
+
859
+ Component
860
+
861
+ CUDA Half Precision Headers
862
+
863
+ All
864
+
865
+ cuda_fp16.h, cuda_fp16.hpp
866
+
867
+ Component
868
+
869
+ CUDA Profiling Tools Interface (CUPTI) Library
870
+
871
+ Windows
872
+
873
+ cupti.dll
874
+
875
+ Mac OSX
876
+
877
+ libcupti.dylib
878
+
879
+ Linux
880
+
881
+ libcupti.so
882
+
883
+ Component
884
+
885
+ NVIDIA Tools Extension Library
886
+
887
+ Windows
888
+
889
+ nvToolsExt.dll, nvToolsExt.lib
890
+
891
+ Mac OSX
892
+
893
+ libnvToolsExt.dylib
894
+
895
+ Linux
896
+
897
+ libnvToolsExt.so
898
+
899
+ Component
900
+
901
+ NVIDIA CUDA Driver Libraries
902
+
903
+ Linux
904
+
905
+ libcuda.so, libnvidia-fatbinaryloader.so,
906
+ libnvidia-ptxjitcompiler.so
907
+
908
+ The NVIDIA CUDA Driver Libraries are only distributable in
909
+ applications that meet this criteria:
910
+
911
+ 1. The application was developed starting from a NVIDIA CUDA
912
+ container obtained from Docker Hub or the NVIDIA GPU
913
+ Cloud, and
914
+
915
+ 2. The resulting application is packaged as a Docker
916
+ container and distributed to users on Docker Hub or the
917
+ NVIDIA GPU Cloud only.
918
+
919
+
920
+ 2.7. Attachment B
921
+
922
+
923
+ Additional Licensing Obligations
924
+
925
+ The following third party components included in the SOFTWARE
926
+ are licensed to Licensee pursuant to the following terms and
927
+ conditions:
928
+
929
+ 1. Licensee's use of the GDB third party component is
930
+ subject to the terms and conditions of GNU GPL v3:
931
+
932
+ This product includes copyrighted third-party software licensed
933
+ under the terms of the GNU General Public License v3 ("GPL v3").
934
+ All third-party software packages are copyright by their respective
935
+ authors. GPL v3 terms and conditions are hereby incorporated into
936
+ the Agreement by this reference: http://www.gnu.org/licenses/gpl.txt
937
+
938
+ Consistent with these licensing requirements, the software
939
+ listed below is provided under the terms of the specified
940
+ open source software licenses. To obtain source code for
941
+ software provided under licenses that require
942
+ redistribution of source code, including the GNU General
943
+ Public License (GPL) and GNU Lesser General Public License
944
+ (LGPL), contact oss-requests@nvidia.com. This offer is
945
+ valid for a period of three (3) years from the date of the
946
+ distribution of this product by NVIDIA CORPORATION.
947
+
948
+ Component License
949
+ CUDA-GDB GPL v3
950
+
951
+ 2. Licensee represents and warrants that any and all third
952
+ party licensing and/or royalty payment obligations in
953
+ connection with Licensee's use of the H.264 video codecs
954
+ are solely the responsibility of Licensee.
955
+
956
+ 3. Licensee's use of the Thrust library is subject to the
957
+ terms and conditions of the Apache License Version 2.0.
958
+ All third-party software packages are copyright by their
959
+ respective authors. Apache License Version 2.0 terms and
960
+ conditions are hereby incorporated into the Agreement by
961
+ this reference.
962
+ http://www.apache.org/licenses/LICENSE-2.0.html
963
+
964
+ In addition, Licensee acknowledges the following notice:
965
+ Thrust includes source code from the Boost Iterator,
966
+ Tuple, System, and Random Number libraries.
967
+
968
+ Boost Software License - Version 1.0 - August 17th, 2003
969
+ . . . .
970
+
971
+ Permission is hereby granted, free of charge, to any person or
972
+ organization obtaining a copy of the software and accompanying
973
+ documentation covered by this license (the "Software") to use,
974
+ reproduce, display, distribute, execute, and transmit the Software,
975
+ and to prepare derivative works of the Software, and to permit
976
+ third-parties to whom the Software is furnished to do so, all
977
+ subject to the following:
978
+
979
+ The copyright notices in the Software and this entire statement,
980
+ including the above license grant, this restriction and the following
981
+ disclaimer, must be included in all copies of the Software, in whole
982
+ or in part, and all derivative works of the Software, unless such
983
+ copies or derivative works are solely in the form of machine-executable
984
+ object code generated by a source language processor.
985
+
986
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
987
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
988
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
989
+ NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
990
+ ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
991
+ OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
992
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
993
+ OTHER DEALINGS IN THE SOFTWARE.
994
+
995
+ 4. Licensee's use of the LLVM third party component is
996
+ subject to the following terms and conditions:
997
+
998
+ ======================================================
999
+ LLVM Release License
1000
+ ======================================================
1001
+ University of Illinois/NCSA
1002
+ Open Source License
1003
+
1004
+ Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.
1005
+ All rights reserved.
1006
+
1007
+ Developed by:
1008
+
1009
+ LLVM Team
1010
+
1011
+ University of Illinois at Urbana-Champaign
1012
+
1013
+ http://llvm.org
1014
+
1015
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1016
+ of this software and associated documentation files (the "Software"), to
1017
+ deal with the Software without restriction, including without limitation the
1018
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
1019
+ sell copies of the Software, and to permit persons to whom the Software is
1020
+ furnished to do so, subject to the following conditions:
1021
+
1022
+ * Redistributions of source code must retain the above copyright notice,
1023
+ this list of conditions and the following disclaimers.
1024
+
1025
+ * Redistributions in binary form must reproduce the above copyright
1026
+ notice, this list of conditions and the following disclaimers in the
1027
+ documentation and/or other materials provided with the distribution.
1028
+
1029
+ * Neither the names of the LLVM Team, University of Illinois at Urbana-
1030
+ Champaign, nor the names of its contributors may be used to endorse or
1031
+ promote products derived from this Software without specific prior
1032
+ written permission.
1033
+
1034
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1035
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1036
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1037
+ THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
1038
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1039
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1040
+ DEALINGS WITH THE SOFTWARE.
1041
+
1042
+ 5. Licensee's use (e.g. nvprof) of the PCRE third party
1043
+ component is subject to the following terms and
1044
+ conditions:
1045
+
1046
+ ------------
1047
+ PCRE LICENCE
1048
+ ------------
1049
+ PCRE is a library of functions to support regular expressions whose syntax
1050
+ and semantics are as close as possible to those of the Perl 5 language.
1051
+ Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
1052
+ specified below. The documentation for PCRE, supplied in the "doc"
1053
+ directory, is distributed under the same terms as the software itself. The
1054
+ basic library functions are written in C and are freestanding. Also
1055
+ included in the distribution is a set of C++ wrapper functions, and a just-
1056
+ in-time compiler that can be used to optimize pattern matching. These are
1057
+ both optional features that can be omitted when the library is built.
1058
+
1059
+ THE BASIC LIBRARY FUNCTIONS
1060
+ ---------------------------
1061
+ Written by: Philip Hazel
1062
+ Email local part: ph10
1063
+ Email domain: cam.ac.uk
1064
+ University of Cambridge Computing Service,
1065
+ Cambridge, England.
1066
+ Copyright (c) 1997-2012 University of Cambridge
1067
+ All rights reserved.
1068
+
1069
+ PCRE JUST-IN-TIME COMPILATION SUPPORT
1070
+ -------------------------------------
1071
+ Written by: Zoltan Herczeg
1072
+ Email local part: hzmester
1073
+ Emain domain: freemail.hu
1074
+ Copyright(c) 2010-2012 Zoltan Herczeg
1075
+ All rights reserved.
1076
+
1077
+ STACK-LESS JUST-IN-TIME COMPILER
1078
+ --------------------------------
1079
+ Written by: Zoltan Herczeg
1080
+ Email local part: hzmester
1081
+ Emain domain: freemail.hu
1082
+ Copyright(c) 2009-2012 Zoltan Herczeg
1083
+ All rights reserved.
1084
+
1085
+ THE C++ WRAPPER FUNCTIONS
1086
+ -------------------------
1087
+ Contributed by: Google Inc.
1088
+ Copyright (c) 2007-2012, Google Inc.
1089
+ All rights reserved.
1090
+
1091
+ THE "BSD" LICENCE
1092
+ -----------------
1093
+ Redistribution and use in source and binary forms, with or without
1094
+ modification, are permitted provided that the following conditions are met:
1095
+
1096
+ * Redistributions of source code must retain the above copyright notice,
1097
+ this list of conditions and the following disclaimer.
1098
+
1099
+ * Redistributions in binary form must reproduce the above copyright
1100
+ notice, this list of conditions and the following disclaimer in the
1101
+ documentation and/or other materials provided with the distribution.
1102
+
1103
+ * Neither the name of the University of Cambridge nor the name of Google
1104
+ Inc. nor the names of their contributors may be used to endorse or
1105
+ promote products derived from this software without specific prior
1106
+ written permission.
1107
+
1108
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1109
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1110
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1111
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
1112
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1113
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1114
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1115
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1116
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1117
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1118
+ POSSIBILITY OF SUCH DAMAGE.
1119
+
1120
+ 6. Some of the cuBLAS library routines were written by or
1121
+ derived from code written by Vasily Volkov and are subject
1122
+ to the Modified Berkeley Software Distribution License as
1123
+ follows:
1124
+
1125
+ Copyright (c) 2007-2009, Regents of the University of California
1126
+
1127
+ All rights reserved.
1128
+
1129
+ Redistribution and use in source and binary forms, with or without
1130
+ modification, are permitted provided that the following conditions are
1131
+ met:
1132
+ * Redistributions of source code must retain the above copyright
1133
+ notice, this list of conditions and the following disclaimer.
1134
+ * Redistributions in binary form must reproduce the above
1135
+ copyright notice, this list of conditions and the following
1136
+ disclaimer in the documentation and/or other materials provided
1137
+ with the distribution.
1138
+ * Neither the name of the University of California, Berkeley nor
1139
+ the names of its contributors may be used to endorse or promote
1140
+ products derived from this software without specific prior
1141
+ written permission.
1142
+
1143
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
1144
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1145
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1146
+ DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1147
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1148
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1149
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1150
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1151
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1152
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1153
+ POSSIBILITY OF SUCH DAMAGE.
1154
+
1155
+ 7. Some of the cuBLAS library routines were written by or
1156
+ derived from code written by Davide Barbieri and are
1157
+ subject to the Modified Berkeley Software Distribution
1158
+ License as follows:
1159
+
1160
+ Copyright (c) 2008-2009 Davide Barbieri @ University of Rome Tor Vergata.
1161
+
1162
+ All rights reserved.
1163
+
1164
+ Redistribution and use in source and binary forms, with or without
1165
+ modification, are permitted provided that the following conditions are
1166
+ met:
1167
+ * Redistributions of source code must retain the above copyright
1168
+ notice, this list of conditions and the following disclaimer.
1169
+ * Redistributions in binary form must reproduce the above
1170
+ copyright notice, this list of conditions and the following
1171
+ disclaimer in the documentation and/or other materials provided
1172
+ with the distribution.
1173
+ * The name of the author may not be used to endorse or promote
1174
+ products derived from this software without specific prior
1175
+ written permission.
1176
+
1177
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
1178
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1179
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1180
+ DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1181
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1182
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1183
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1184
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1185
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1186
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1187
+ POSSIBILITY OF SUCH DAMAGE.
1188
+
1189
+ 8. Some of the cuBLAS library routines were derived from
1190
+ code developed by the University of Tennessee and are
1191
+ subject to the Modified Berkeley Software Distribution
1192
+ License as follows:
1193
+
1194
+ Copyright (c) 2010 The University of Tennessee.
1195
+
1196
+ All rights reserved.
1197
+
1198
+ Redistribution and use in source and binary forms, with or without
1199
+ modification, are permitted provided that the following conditions are
1200
+ met:
1201
+ * Redistributions of source code must retain the above copyright
1202
+ notice, this list of conditions and the following disclaimer.
1203
+ * Redistributions in binary form must reproduce the above
1204
+ copyright notice, this list of conditions and the following
1205
+ disclaimer listed in this license in the documentation and/or
1206
+ other materials provided with the distribution.
1207
+ * Neither the name of the copyright holders nor the names of its
1208
+ contributors may be used to endorse or promote products derived
1209
+ from this software without specific prior written permission.
1210
+
1211
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1212
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1213
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1214
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1215
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1216
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1217
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1218
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1219
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1220
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1221
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1222
+
1223
+ 9. Some of the cuBLAS library routines were written by or
1224
+ derived from code written by Jonathan Hogg and are subject
1225
+ to the Modified Berkeley Software Distribution License as
1226
+ follows:
1227
+
1228
+ Copyright (c) 2012, The Science and Technology Facilities Council (STFC).
1229
+
1230
+ All rights reserved.
1231
+
1232
+ Redistribution and use in source and binary forms, with or without
1233
+ modification, are permitted provided that the following conditions are
1234
+ met:
1235
+ * Redistributions of source code must retain the above copyright
1236
+ notice, this list of conditions and the following disclaimer.
1237
+ * Redistributions in binary form must reproduce the above
1238
+ copyright notice, this list of conditions and the following
1239
+ disclaimer in the documentation and/or other materials provided
1240
+ with the distribution.
1241
+ * Neither the name of the STFC nor the names of its contributors
1242
+ may be used to endorse or promote products derived from this
1243
+ software without specific prior written permission.
1244
+
1245
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1246
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1247
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1248
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE STFC BE
1249
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1250
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1251
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
1252
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
1253
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
1254
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
1255
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1256
+
1257
+ 10. Some of the cuBLAS library routines were written by or
1258
+ derived from code written by Ahmad M. Abdelfattah, David
1259
+ Keyes, and Hatem Ltaief, and are subject to the Apache
1260
+ License, Version 2.0, as follows:
1261
+
1262
+ -- (C) Copyright 2013 King Abdullah University of Science and Technology
1263
+ Authors:
1264
+ Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa)
1265
+ David Keyes (david.keyes@kaust.edu.sa)
1266
+ Hatem Ltaief (hatem.ltaief@kaust.edu.sa)
1267
+
1268
+ Redistribution and use in source and binary forms, with or without
1269
+ modification, are permitted provided that the following conditions
1270
+ are met:
1271
+
1272
+ * Redistributions of source code must retain the above copyright
1273
+ notice, this list of conditions and the following disclaimer.
1274
+ * Redistributions in binary form must reproduce the above copyright
1275
+ notice, this list of conditions and the following disclaimer in the
1276
+ documentation and/or other materials provided with the distribution.
1277
+ * Neither the name of the King Abdullah University of Science and
1278
+ Technology nor the names of its contributors may be used to endorse
1279
+ or promote products derived from this software without specific prior
1280
+ written permission.
1281
+
1282
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1283
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1284
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1285
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1286
+ HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1287
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1288
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1289
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1290
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1291
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1292
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
1293
+
1294
+ 11. Some of the cuSPARSE library routines were written by or
1295
+ derived from code written by Li-Wen Chang and are subject
1296
+ to the NCSA Open Source License as follows:
1297
+
1298
+ Copyright (c) 2012, University of Illinois.
1299
+
1300
+ All rights reserved.
1301
+
1302
+ Developed by: IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu
1303
+
1304
+ Permission is hereby granted, free of charge, to any person obtaining
1305
+ a copy of this software and associated documentation files (the
1306
+ "Software"), to deal with the Software without restriction, including
1307
+ without limitation the rights to use, copy, modify, merge, publish,
1308
+ distribute, sublicense, and/or sell copies of the Software, and to
1309
+ permit persons to whom the Software is furnished to do so, subject to
1310
+ the following conditions:
1311
+ * Redistributions of source code must retain the above copyright
1312
+ notice, this list of conditions and the following disclaimer.
1313
+ * Redistributions in binary form must reproduce the above
1314
+ copyright notice, this list of conditions and the following
1315
+ disclaimers in the documentation and/or other materials provided
1316
+ with the distribution.
1317
+ * Neither the names of IMPACT Group, University of Illinois, nor
1318
+ the names of its contributors may be used to endorse or promote
1319
+ products derived from this Software without specific prior
1320
+ written permission.
1321
+
1322
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1323
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1324
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1325
+ NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
1326
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1327
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
1328
+ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
1329
+ SOFTWARE.
1330
+
1331
+ 12. Some of the cuRAND library routines were written by or
1332
+ derived from code written by Mutsuo Saito and Makoto
1333
+ Matsumoto and are subject to the following license:
1334
+
1335
+ Copyright (c) 2009, 2010 Mutsuo Saito, Makoto Matsumoto and Hiroshima
1336
+ University. All rights reserved.
1337
+
1338
+ Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
1339
+ University and University of Tokyo. All rights reserved.
1340
+
1341
+ Redistribution and use in source and binary forms, with or without
1342
+ modification, are permitted provided that the following conditions are
1343
+ met:
1344
+ * Redistributions of source code must retain the above copyright
1345
+ notice, this list of conditions and the following disclaimer.
1346
+ * Redistributions in binary form must reproduce the above
1347
+ copyright notice, this list of conditions and the following
1348
+ disclaimer in the documentation and/or other materials provided
1349
+ with the distribution.
1350
+ * Neither the name of the Hiroshima University nor the names of
1351
+ its contributors may be used to endorse or promote products
1352
+ derived from this software without specific prior written
1353
+ permission.
1354
+
1355
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1356
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1357
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1358
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1359
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1360
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1361
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1362
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1363
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1364
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1365
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1366
+
1367
+ 13. Some of the cuRAND library routines were derived from
1368
+ code developed by D. E. Shaw Research and are subject to
1369
+ the following license:
1370
+
1371
+ Copyright 2010-2011, D. E. Shaw Research.
1372
+
1373
+ All rights reserved.
1374
+
1375
+ Redistribution and use in source and binary forms, with or without
1376
+ modification, are permitted provided that the following conditions are
1377
+ met:
1378
+ * Redistributions of source code must retain the above copyright
1379
+ notice, this list of conditions, and the following disclaimer.
1380
+ * Redistributions in binary form must reproduce the above
1381
+ copyright notice, this list of conditions, and the following
1382
+ disclaimer in the documentation and/or other materials provided
1383
+ with the distribution.
1384
+ * Neither the name of D. E. Shaw Research nor the names of its
1385
+ contributors may be used to endorse or promote products derived
1386
+ from this software without specific prior written permission.
1387
+
1388
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1389
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1390
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1391
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1392
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1393
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1394
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1395
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1396
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1397
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1398
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1399
+
1400
+ 14. Some of the Math library routines were written by or
1401
+ derived from code developed by Norbert Juffa and are
1402
+ subject to the following license:
1403
+
1404
+ Copyright (c) 2015-2017, Norbert Juffa
1405
+ All rights reserved.
1406
+
1407
+ Redistribution and use in source and binary forms, with or without
1408
+ modification, are permitted provided that the following conditions
1409
+ are met:
1410
+
1411
+ 1. Redistributions of source code must retain the above copyright
1412
+ notice, this list of conditions and the following disclaimer.
1413
+
1414
+ 2. Redistributions in binary form must reproduce the above copyright
1415
+ notice, this list of conditions and the following disclaimer in the
1416
+ documentation and/or other materials provided with the distribution.
1417
+
1418
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1419
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1420
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1421
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1422
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1423
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1424
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1425
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1426
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1427
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1428
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1429
+
1430
+ 15. Licensee's use of the lz4 third party component is
1431
+ subject to the following terms and conditions:
1432
+
1433
+ Copyright (C) 2011-2013, Yann Collet.
1434
+ BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
1435
+
1436
+ Redistribution and use in source and binary forms, with or without
1437
+ modification, are permitted provided that the following conditions are
1438
+ met:
1439
+
1440
+ * Redistributions of source code must retain the above copyright
1441
+ notice, this list of conditions and the following disclaimer.
1442
+ * Redistributions in binary form must reproduce the above
1443
+ copyright notice, this list of conditions and the following disclaimer
1444
+ in the documentation and/or other materials provided with the
1445
+ distribution.
1446
+
1447
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1448
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1449
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1450
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1451
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1452
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1453
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1454
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1455
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1456
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1457
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1458
+
1459
+ 16. The NPP library uses code from the Boost Math Toolkit,
1460
+ and is subject to the following license:
1461
+
1462
+ Boost Software License - Version 1.0 - August 17th, 2003
1463
+ . . . .
1464
+
1465
+ Permission is hereby granted, free of charge, to any person or
1466
+ organization obtaining a copy of the software and accompanying
1467
+ documentation covered by this license (the "Software") to use,
1468
+ reproduce, display, distribute, execute, and transmit the Software,
1469
+ and to prepare derivative works of the Software, and to permit
1470
+ third-parties to whom the Software is furnished to do so, all
1471
+ subject to the following:
1472
+
1473
+ The copyright notices in the Software and this entire statement,
1474
+ including the above license grant, this restriction and the following
1475
+ disclaimer, must be included in all copies of the Software, in whole
1476
+ or in part, and all derivative works of the Software, unless such
1477
+ copies or derivative works are solely in the form of machine-executable
1478
+ object code generated by a source language processor.
1479
+
1480
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1481
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1482
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
1483
+ NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
1484
+ ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
1485
+ OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
1486
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1487
+ OTHER DEALINGS IN THE SOFTWARE.
1488
+
1489
+ 17. Portions of the Nsight Eclipse Edition is subject to the
1490
+ following license:
1491
+
1492
+ The Eclipse Foundation makes available all content in this plug-in
1493
+ ("Content"). Unless otherwise indicated below, the Content is provided
1494
+ to you under the terms and conditions of the Eclipse Public License
1495
+ Version 1.0 ("EPL"). A copy of the EPL is available at http://
1496
+ www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program"
1497
+ will mean the Content.
1498
+
1499
+ If you did not receive this Content directly from the Eclipse
1500
+ Foundation, the Content is being redistributed by another party
1501
+ ("Redistributor") and different terms and conditions may apply to your
1502
+ use of any object code in the Content. Check the Redistributor's
1503
+ license that was provided with the Content. If no such license exists,
1504
+ contact the Redistributor. Unless otherwise indicated below, the terms
1505
+ and conditions of the EPL still apply to any source code in the
1506
+ Content and such source code may be obtained at http://www.eclipse.org.
1507
+
1508
+ 18. Some of the cuBLAS library routines uses code from
1509
+ OpenAI, which is subject to the following license:
1510
+
1511
+ License URL
1512
+ https://github.com/openai/openai-gemm/blob/master/LICENSE
1513
+
1514
+ License Text
1515
+ The MIT License
1516
+
1517
+ Copyright (c) 2016 OpenAI (http://openai.com), 2016 Google Inc.
1518
+
1519
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1520
+ of this software and associated documentation files (the "Software"), to deal
1521
+ in the Software without restriction, including without limitation the rights
1522
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1523
+ copies of the Software, and to permit persons to whom the Software is
1524
+ furnished to do so, subject to the following conditions:
1525
+
1526
+ The above copyright notice and this permission notice shall be included in
1527
+ all copies or substantial portions of the Software.
1528
+
1529
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1530
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1531
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1532
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1533
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1534
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1535
+ THE SOFTWARE.
1536
+
1537
+ 19. Licensee's use of the Visual Studio Setup Configuration
1538
+ Samples is subject to the following license:
1539
+
1540
+ The MIT License (MIT)
1541
+ Copyright (C) Microsoft Corporation. All rights reserved.
1542
+
1543
+ Permission is hereby granted, free of charge, to any person
1544
+ obtaining a copy of this software and associated documentation
1545
+ files (the "Software"), to deal in the Software without restriction,
1546
+ including without limitation the rights to use, copy, modify, merge,
1547
+ publish, distribute, sublicense, and/or sell copies of the Software,
1548
+ and to permit persons to whom the Software is furnished to do so,
1549
+ subject to the following conditions:
1550
+
1551
+ The above copyright notice and this permission notice shall be included
1552
+ in all copies or substantial portions of the Software.
1553
+
1554
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1555
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1556
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1557
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1558
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1559
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1560
+
1561
+ 20. Licensee's use of linmath.h header for CPU functions for
1562
+ GL vector/matrix operations from lunarG is subject to the
1563
+ Apache License Version 2.0.
1564
+
1565
+ 21. The DX12-CUDA sample uses the d3dx12.h header, which is
1566
+ subject to the MIT license .
1567
+
1568
+ -----------------
.venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/METADATA ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: nvidia-nvtx-cu12
3
+ Version: 12.4.127
4
+ Summary: NVIDIA Tools Extension
5
+ Home-page: https://developer.nvidia.com/cuda-zone
6
+ Author: Nvidia CUDA Installer Team
7
+ Author-email: cuda_installer@nvidia.com
8
+ License: NVIDIA Proprietary Software
9
+ Keywords: cuda,nvidia,runtime,machine learning,deep learning
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Education
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: Other/Proprietary License
15
+ Classifier: Natural Language :: English
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.5
18
+ Classifier: Programming Language :: Python :: 3.6
19
+ Classifier: Programming Language :: Python :: 3.7
20
+ Classifier: Programming Language :: Python :: 3.8
21
+ Classifier: Programming Language :: Python :: 3.9
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3 :: Only
25
+ Classifier: Topic :: Scientific/Engineering
26
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
27
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
28
+ Classifier: Topic :: Software Development
29
+ Classifier: Topic :: Software Development :: Libraries
30
+ Classifier: Operating System :: Microsoft :: Windows
31
+ Classifier: Operating System :: POSIX :: Linux
32
+ Requires-Python: >=3
33
+ License-File: License.txt
34
+
35
+ A C-based API for annotating events, code ranges, and resources in your applications. Applications which integrate NVTX can use the Visual Profiler to capture and visualize these events and ranges.
.venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/RECORD ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ nvidia/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ nvidia/__pycache__/__init__.cpython-311.pyc,,
3
+ nvidia/nvtx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ nvidia/nvtx/__pycache__/__init__.cpython-311.pyc,,
5
+ nvidia/nvtx/include/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ nvidia/nvtx/include/__pycache__/__init__.cpython-311.pyc,,
7
+ nvidia/nvtx/include/nvToolsExt.h,sha256=OiT6v1G2-vlkYnpDQZjiGT1O-THDyk1gw2021qMRvQM,53680
8
+ nvidia/nvtx/include/nvToolsExtCuda.h,sha256=UDA1pbmvoRFmlJ11Et9tIMEztOtOVw-10mO27Q6K8jg,6009
9
+ nvidia/nvtx/include/nvToolsExtCudaRt.h,sha256=6IbgdRGObly53jzRqvsZ4FQoTrXJOJwSyCOLuXr9ncA,5192
10
+ nvidia/nvtx/include/nvToolsExtOpenCL.h,sha256=gETZH9ch_o6MYE_BYQ2pj9SSuxyAo1H4ptmRK-DMWSo,8360
11
+ nvidia/nvtx/include/nvToolsExtSync.h,sha256=wqONIiycUPaUUCzQBmCippilgKt8sOL9tpzG773u0nY,14562
12
+ nvidia/nvtx/include/nvtx3/nvToolsExt.h,sha256=TFEF3fx1043EwMdbS7FqvvavwK0koZeGrIOAsCrB12s,52247
13
+ nvidia/nvtx/include/nvtx3/nvToolsExtCuda.h,sha256=4ZbZHUMcmHRf4SdKB7nH0E3uHd_9ZhZBuwuWPItK-Vs,6204
14
+ nvidia/nvtx/include/nvtx3/nvToolsExtCudaRt.h,sha256=boW0zdYobNFFE9wwxCyzBGBLcSGtdbQ5osKjQGNC2E8,5393
15
+ nvidia/nvtx/include/nvtx3/nvToolsExtOpenCL.h,sha256=RPfsZl3lHAPIOCzTipmz07-vaiIO4cxelcx12EjB2L0,8563
16
+ nvidia/nvtx/include/nvtx3/nvToolsExtSync.h,sha256=C-HIVBaupxYom3BqMggQ_ePq1bxFhw8kXsOfYJKBWrI,14756
17
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImpl.h,sha256=jEnYF3MyLsD72euw2It3Bz0X0GK4Xv_htEd8BeIrPjY,23333
18
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplCore.h,sha256=sYpWqZfYrjsMddxtezPX3qSTIbAOn4dlEoLiYQ9M2nM,9756
19
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h,sha256=SoaiprvsI80yLmEAnlFX0iFufv6RtKjjMMrVwQZjjQI,4775
20
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h,sha256=IEor-ISqComCRGVDdIzKBLU3eWCuDI0Igqz-eRKKcvg,5550
21
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h,sha256=iPR2x74bJE3plFQBT9FWGBaTm4sC-Pll6WAjpKRnz7g,8275
22
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h,sha256=TqwQfEUVbwc58bpHioE13NMweFhOuHXNql65BnLzhvc,5022
23
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxInit.h,sha256=foajOFacvLGx3BN5ntw5v8o4J3OY4hqkVZE5ZC0x3e4,14716
24
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxInitDecls.h,sha256=-Qyxcy9CDXOBhEtYZ8L7iYd6daJ9aCeyQM48X0BafMM,9361
25
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxInitDefs.h,sha256=dLhOV4knhNrmT2DnUNzXreOt_Qc6GAa3yIlmqJFCeVI,35432
26
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxLinkOnce.h,sha256=Jp-z6LTz_p8fKRulcFfdcskIxzcZ6ybbHkGB9mpJa2M,3863
27
+ nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxTypes.h,sha256=jkbCwyvIP1G-Ef8SwYp4kDi69hjZbzaxKSk7ScgrNI8,17352
28
+ nvidia/nvtx/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ nvidia/nvtx/lib/__pycache__/__init__.cpython-311.pyc,,
30
+ nvidia/nvtx/lib/libnvToolsExt.so.1,sha256=hH148nXIzJdEKieAcyBL3BoACf_CVZv3JIxw2SEF39w,40136
31
+ nvidia_nvtx_cu12-12.4.127.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
32
+ nvidia_nvtx_cu12-12.4.127.dist-info/License.txt,sha256=rW9YU_ugyg0VnQ9Y1JrkmDDC-Mk_epJki5zpCttMbM0,59262
33
+ nvidia_nvtx_cu12-12.4.127.dist-info/METADATA,sha256=9RLXm3hRj_WuKLEP5eYxTAhsLGAeFt3LoHymjVqrI7I,1660
34
+ nvidia_nvtx_cu12-12.4.127.dist-info/RECORD,,
35
+ nvidia_nvtx_cu12-12.4.127.dist-info/WHEEL,sha256=XDTs3wIbcE-BcRO08VJlZpA6z9OaC1mOKPCGGGwuM2g,109
36
+ nvidia_nvtx_cu12-12.4.127.dist-info/top_level.txt,sha256=fTkAtiFuL16nUrB9ytDDtpytz2t0B4NvYTnRzwAhO14,7
.venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/WHEEL ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.42.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-manylinux2014_x86_64
5
+
.venv/lib/python3.11/site-packages/nvidia_nvtx_cu12-12.4.127.dist-info/top_level.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ nvidia
.venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/LICENSE ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Permission is hereby granted, free of charge, to any person obtaining
2
+ a copy of this software and associated documentation files (the
3
+ "Software"), to deal in the Software without restriction, including
4
+ without limitation the rights to use, copy, modify, merge, publish,
5
+ distribute, sublicense, and/or sell copies of the Software, and to
6
+ permit persons to whom the Software is furnished to do so, subject to
7
+ the following conditions:
8
+
9
+ The above copyright notice and this permission notice shall be
10
+ included in all copies or substantial portions of the Software.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
15
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
16
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
17
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
18
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/METADATA ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: pyparsing
3
+ Version: 3.2.1
4
+ Summary: pyparsing module - Classes and methods to define and execute parsing grammars
5
+ Author-email: Paul McGuire <ptmcg.gm+pyparsing@gmail.com>
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/x-rst
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Intended Audience :: Information Technology
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: Implementation :: CPython
22
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
23
+ Classifier: Topic :: Software Development :: Compilers
24
+ Classifier: Topic :: Text Processing
25
+ Classifier: Typing :: Typed
26
+ Requires-Dist: railroad-diagrams ; extra == "diagrams"
27
+ Requires-Dist: jinja2 ; extra == "diagrams"
28
+ Project-URL: Homepage, https://github.com/pyparsing/pyparsing/
29
+ Provides-Extra: diagrams
30
+
31
+ PyParsing -- A Python Parsing Module
32
+ ====================================
33
+
34
+ |Version| |Build Status| |Coverage| |License| |Python Versions| |Snyk Score|
35
+
36
+ Introduction
37
+ ============
38
+
39
+ The pyparsing module is an alternative approach to creating and
40
+ executing simple grammars, vs. the traditional lex/yacc approach, or the
41
+ use of regular expressions. The pyparsing module provides a library of
42
+ classes that client code uses to construct the grammar directly in
43
+ Python code.
44
+
45
+ *[Since first writing this description of pyparsing in late 2003, this
46
+ technique for developing parsers has become more widespread, under the
47
+ name Parsing Expression Grammars - PEGs. See more information on PEGs*
48
+ `here <https://en.wikipedia.org/wiki/Parsing_expression_grammar>`__
49
+ *.]*
50
+
51
+ Here is a program to parse ``"Hello, World!"`` (or any greeting of the form
52
+ ``"salutation, addressee!"``):
53
+
54
+ .. code:: python
55
+
56
+ from pyparsing import Word, alphas
57
+ greet = Word(alphas) + "," + Word(alphas) + "!"
58
+ hello = "Hello, World!"
59
+ print(hello, "->", greet.parseString(hello))
60
+
61
+ The program outputs the following::
62
+
63
+ Hello, World! -> ['Hello', ',', 'World', '!']
64
+
65
+ The Python representation of the grammar is quite readable, owing to the
66
+ self-explanatory class names, and the use of '+', '|' and '^' operator
67
+ definitions.
68
+
69
+ The parsed results returned from ``parseString()`` is a collection of type
70
+ ``ParseResults``, which can be accessed as a
71
+ nested list, a dictionary, or an object with named attributes.
72
+
73
+ The pyparsing module handles some of the problems that are typically
74
+ vexing when writing text parsers:
75
+
76
+ - extra or missing whitespace (the above program will also handle ``"Hello,World!"``, ``"Hello , World !"``, etc.)
77
+ - quoted strings
78
+ - embedded comments
79
+
80
+ The examples directory includes a simple SQL parser, simple CORBA IDL
81
+ parser, a config file parser, a chemical formula parser, and a four-
82
+ function algebraic notation parser, among many others.
83
+
84
+ Documentation
85
+ =============
86
+
87
+ There are many examples in the online docstrings of the classes
88
+ and methods in pyparsing. You can find them compiled into `online docs <https://pyparsing-docs.readthedocs.io/en/latest/>`__. Additional
89
+ documentation resources and project info are listed in the online
90
+ `GitHub wiki <https://github.com/pyparsing/pyparsing/wiki>`__. An
91
+ entire directory of examples can be found `here <https://github.com/pyparsing/pyparsing/tree/master/examples>`__.
92
+
93
+ License
94
+ =======
95
+
96
+ MIT License. See header of the `pyparsing __init__.py <https://github.com/pyparsing/pyparsing/blob/master/pyparsing/__init__.py#L1-L23>`__ file.
97
+
98
+ History
99
+ =======
100
+
101
+ See `CHANGES <https://github.com/pyparsing/pyparsing/blob/master/CHANGES>`__ file.
102
+
103
+ .. |Build Status| image:: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml/badge.svg
104
+ :target: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml
105
+
106
+ .. |Coverage| image:: https://codecov.io/gh/pyparsing/pyparsing/branch/master/graph/badge.svg
107
+ :target: https://codecov.io/gh/pyparsing/pyparsing
108
+
109
+ .. |Version| image:: https://img.shields.io/pypi/v/pyparsing?style=flat-square
110
+ :target: https://pypi.org/project/pyparsing/
111
+ :alt: Version
112
+
113
+ .. |License| image:: https://img.shields.io/pypi/l/pyparsing.svg?style=flat-square
114
+ :target: https://pypi.org/project/pyparsing/
115
+ :alt: License
116
+
117
+ .. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pyparsing.svg?style=flat-square
118
+ :target: https://pypi.org/project/python-liquid/
119
+ :alt: Python versions
120
+
121
+ .. |Snyk Score| image:: https://snyk.io//advisor/python/pyparsing/badge.svg
122
+ :target: https://snyk.io//advisor/python/pyparsing
123
+ :alt: pyparsing
124
+
.venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/RECORD ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ pyparsing-3.2.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ pyparsing-3.2.1.dist-info/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023
3
+ pyparsing-3.2.1.dist-info/METADATA,sha256=Cn5py_teLACvRMsW9ZrQgb7HGiy3ohpVn0xlg0YNG0k,4989
4
+ pyparsing-3.2.1.dist-info/RECORD,,
5
+ pyparsing-3.2.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
6
+ pyparsing/__init__.py,sha256=F1Bz3e2TP95q_i5nBz4_3HOgrp_UpxyAYnLtvs6MhIU,9038
7
+ pyparsing/__pycache__/__init__.cpython-311.pyc,,
8
+ pyparsing/__pycache__/actions.cpython-311.pyc,,
9
+ pyparsing/__pycache__/common.cpython-311.pyc,,
10
+ pyparsing/__pycache__/core.cpython-311.pyc,,
11
+ pyparsing/__pycache__/exceptions.cpython-311.pyc,,
12
+ pyparsing/__pycache__/helpers.cpython-311.pyc,,
13
+ pyparsing/__pycache__/results.cpython-311.pyc,,
14
+ pyparsing/__pycache__/testing.cpython-311.pyc,,
15
+ pyparsing/__pycache__/unicode.cpython-311.pyc,,
16
+ pyparsing/__pycache__/util.cpython-311.pyc,,
17
+ pyparsing/actions.py,sha256=ULt36RofyW2bDxa-z-5NpHDk46zcT5V5ibaYcqUTm30,7257
18
+ pyparsing/common.py,sha256=SyZAEQpwDAPOpUenOltIv-y1N-tzSN3nCEzNYcOpiDw,13673
19
+ pyparsing/core.py,sha256=N43lH6j1FJ7JBrKXAXapwGYjxPc7PqPi6inyv8CQN-I,231982
20
+ pyparsing/diagram/__init__.py,sha256=bEsqh-GrtLHQFnqtBoXGLZqrB8uqM38dUhgKdNByJwU,26563
21
+ pyparsing/diagram/__pycache__/__init__.cpython-311.pyc,,
22
+ pyparsing/exceptions.py,sha256=30rC4NZxcp0dHh5KiwbWkwRFG7viRlY0DsgzAupZFRE,9886
23
+ pyparsing/helpers.py,sha256=Xi6INfOY0lnqOk66vK_2KQQ_v913QzVNLg6yNuLGq-M,39527
24
+ pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ pyparsing/results.py,sha256=dyIT3HPwR1n_7klZ1Lbf3dQId5JiCn6ksM1Ktn9JGUo,26246
26
+ pyparsing/testing.py,sha256=r-kKXcv_8r1G-4vrprBkJeuQFpr94OSm0jlXdGwAYF0,14682
27
+ pyparsing/unicode.py,sha256=doanv7BYQB4EdQRfdXigaiV_SDhZyyaBSwgvVEz6eXc,10614
28
+ pyparsing/util.py,sha256=M9wzp560rlBaCuRv7smMvcLBIxMJstBNKweHIE91onU,12975
.venv/lib/python3.11/site-packages/pyparsing-3.2.1.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: flit 3.9.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
.venv/lib/python3.11/site-packages/pytest/__init__.py ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PYTHON_ARGCOMPLETE_OK
2
+ """pytest: unit and functional testing with Python."""
3
+
4
+ from __future__ import annotations
5
+
6
+ from _pytest import __version__
7
+ from _pytest import version_tuple
8
+ from _pytest._code import ExceptionInfo
9
+ from _pytest.assertion import register_assert_rewrite
10
+ from _pytest.cacheprovider import Cache
11
+ from _pytest.capture import CaptureFixture
12
+ from _pytest.config import cmdline
13
+ from _pytest.config import Config
14
+ from _pytest.config import console_main
15
+ from _pytest.config import ExitCode
16
+ from _pytest.config import hookimpl
17
+ from _pytest.config import hookspec
18
+ from _pytest.config import main
19
+ from _pytest.config import PytestPluginManager
20
+ from _pytest.config import UsageError
21
+ from _pytest.config.argparsing import OptionGroup
22
+ from _pytest.config.argparsing import Parser
23
+ from _pytest.debugging import pytestPDB as __pytestPDB
24
+ from _pytest.doctest import DoctestItem
25
+ from _pytest.fixtures import fixture
26
+ from _pytest.fixtures import FixtureDef
27
+ from _pytest.fixtures import FixtureLookupError
28
+ from _pytest.fixtures import FixtureRequest
29
+ from _pytest.fixtures import yield_fixture
30
+ from _pytest.freeze_support import freeze_includes
31
+ from _pytest.legacypath import TempdirFactory
32
+ from _pytest.legacypath import Testdir
33
+ from _pytest.logging import LogCaptureFixture
34
+ from _pytest.main import Dir
35
+ from _pytest.main import Session
36
+ from _pytest.mark import Mark
37
+ from _pytest.mark import MARK_GEN as mark
38
+ from _pytest.mark import MarkDecorator
39
+ from _pytest.mark import MarkGenerator
40
+ from _pytest.mark import param
41
+ from _pytest.monkeypatch import MonkeyPatch
42
+ from _pytest.nodes import Collector
43
+ from _pytest.nodes import Directory
44
+ from _pytest.nodes import File
45
+ from _pytest.nodes import Item
46
+ from _pytest.outcomes import exit
47
+ from _pytest.outcomes import fail
48
+ from _pytest.outcomes import importorskip
49
+ from _pytest.outcomes import skip
50
+ from _pytest.outcomes import xfail
51
+ from _pytest.pytester import HookRecorder
52
+ from _pytest.pytester import LineMatcher
53
+ from _pytest.pytester import Pytester
54
+ from _pytest.pytester import RecordedHookCall
55
+ from _pytest.pytester import RunResult
56
+ from _pytest.python import Class
57
+ from _pytest.python import Function
58
+ from _pytest.python import Metafunc
59
+ from _pytest.python import Module
60
+ from _pytest.python import Package
61
+ from _pytest.python_api import approx
62
+ from _pytest.python_api import raises
63
+ from _pytest.recwarn import deprecated_call
64
+ from _pytest.recwarn import WarningsRecorder
65
+ from _pytest.recwarn import warns
66
+ from _pytest.reports import CollectReport
67
+ from _pytest.reports import TestReport
68
+ from _pytest.runner import CallInfo
69
+ from _pytest.stash import Stash
70
+ from _pytest.stash import StashKey
71
+ from _pytest.terminal import TestShortLogReport
72
+ from _pytest.tmpdir import TempPathFactory
73
+ from _pytest.warning_types import PytestAssertRewriteWarning
74
+ from _pytest.warning_types import PytestCacheWarning
75
+ from _pytest.warning_types import PytestCollectionWarning
76
+ from _pytest.warning_types import PytestConfigWarning
77
+ from _pytest.warning_types import PytestDeprecationWarning
78
+ from _pytest.warning_types import PytestExperimentalApiWarning
79
+ from _pytest.warning_types import PytestRemovedIn9Warning
80
+ from _pytest.warning_types import PytestReturnNotNoneWarning
81
+ from _pytest.warning_types import PytestUnhandledCoroutineWarning
82
+ from _pytest.warning_types import PytestUnhandledThreadExceptionWarning
83
+ from _pytest.warning_types import PytestUnknownMarkWarning
84
+ from _pytest.warning_types import PytestUnraisableExceptionWarning
85
+ from _pytest.warning_types import PytestWarning
86
+
87
+
88
+ set_trace = __pytestPDB.set_trace
89
+
90
+
91
+ __all__ = [
92
+ "__version__",
93
+ "approx",
94
+ "Cache",
95
+ "CallInfo",
96
+ "CaptureFixture",
97
+ "Class",
98
+ "cmdline",
99
+ "Collector",
100
+ "CollectReport",
101
+ "Config",
102
+ "console_main",
103
+ "deprecated_call",
104
+ "Dir",
105
+ "Directory",
106
+ "DoctestItem",
107
+ "exit",
108
+ "ExceptionInfo",
109
+ "ExitCode",
110
+ "fail",
111
+ "File",
112
+ "fixture",
113
+ "FixtureDef",
114
+ "FixtureLookupError",
115
+ "FixtureRequest",
116
+ "freeze_includes",
117
+ "Function",
118
+ "hookimpl",
119
+ "HookRecorder",
120
+ "hookspec",
121
+ "importorskip",
122
+ "Item",
123
+ "LineMatcher",
124
+ "LogCaptureFixture",
125
+ "main",
126
+ "mark",
127
+ "Mark",
128
+ "MarkDecorator",
129
+ "MarkGenerator",
130
+ "Metafunc",
131
+ "Module",
132
+ "MonkeyPatch",
133
+ "OptionGroup",
134
+ "Package",
135
+ "param",
136
+ "Parser",
137
+ "PytestAssertRewriteWarning",
138
+ "PytestCacheWarning",
139
+ "PytestCollectionWarning",
140
+ "PytestConfigWarning",
141
+ "PytestDeprecationWarning",
142
+ "PytestExperimentalApiWarning",
143
+ "PytestRemovedIn9Warning",
144
+ "PytestReturnNotNoneWarning",
145
+ "Pytester",
146
+ "PytestPluginManager",
147
+ "PytestUnhandledCoroutineWarning",
148
+ "PytestUnhandledThreadExceptionWarning",
149
+ "PytestUnknownMarkWarning",
150
+ "PytestUnraisableExceptionWarning",
151
+ "PytestWarning",
152
+ "raises",
153
+ "RecordedHookCall",
154
+ "register_assert_rewrite",
155
+ "RunResult",
156
+ "Session",
157
+ "set_trace",
158
+ "skip",
159
+ "Stash",
160
+ "StashKey",
161
+ "version_tuple",
162
+ "TempdirFactory",
163
+ "TempPathFactory",
164
+ "Testdir",
165
+ "TestReport",
166
+ "TestShortLogReport",
167
+ "UsageError",
168
+ "WarningsRecorder",
169
+ "warns",
170
+ "xfail",
171
+ "yield_fixture",
172
+ ]
.venv/lib/python3.11/site-packages/pytest/__main__.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ """The pytest entry point."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import pytest
6
+
7
+
8
+ if __name__ == "__main__":
9
+ raise SystemExit(pytest.console_main())
.venv/lib/python3.11/site-packages/pytest/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (5.39 kB). View file
 
.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc ADDED
Binary file (457 Bytes). View file
 
.venv/lib/python3.11/site-packages/pytest/py.typed ADDED
File without changes
.venv/lib/python3.11/site-packages/torchaudio/_extension/__init__.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import os
3
+ import sys
4
+
5
+ from torchaudio._internal.module_utils import fail_with_message, is_module_available, no_op
6
+
7
+ from .utils import _check_cuda_version, _init_dll_path, _init_sox, _LazyImporter, _load_lib
8
+
9
+ _LG = logging.getLogger(__name__)
10
+
11
+
12
+ # Note:
13
+ # `_check_cuda_version` is not meant to be used by regular users.
14
+ # Builder uses it for debugging purpose, so we export it.
15
+ # https://github.com/pytorch/builder/blob/e2e4542b8eb0bdf491214451a1a4128bd606cce2/test/smoke_test/smoke_test.py#L80
16
+ __all__ = [
17
+ "_check_cuda_version",
18
+ "_IS_TORCHAUDIO_EXT_AVAILABLE",
19
+ "_IS_RIR_AVAILABLE",
20
+ "lazy_import_sox_ext",
21
+ ]
22
+
23
+
24
+ if os.name == "nt" and (3, 8) <= sys.version_info < (3, 9):
25
+ _init_dll_path()
26
+
27
+
28
+ # When the extension module is built, we initialize it.
29
+ # In case of an error, we do not catch the failure as it suggests there is something
30
+ # wrong with the installation.
31
+ _IS_TORCHAUDIO_EXT_AVAILABLE = is_module_available("torchaudio.lib._torchaudio")
32
+ # RIR features are implemented in _torchaudio extension, but they can be individually
33
+ # turned on/off at build time. Available means that _torchaudio is loaded properly, and
34
+ # RIR features are found there.
35
+ _IS_RIR_AVAILABLE = False
36
+ _IS_ALIGN_AVAILABLE = False
37
+ if _IS_TORCHAUDIO_EXT_AVAILABLE:
38
+ _load_lib("libtorchaudio")
39
+
40
+ import torchaudio.lib._torchaudio # noqa
41
+
42
+ _check_cuda_version()
43
+ _IS_RIR_AVAILABLE = torchaudio.lib._torchaudio.is_rir_available()
44
+ _IS_ALIGN_AVAILABLE = torchaudio.lib._torchaudio.is_align_available()
45
+
46
+
47
+ _SOX_EXT = None
48
+
49
+
50
+ def lazy_import_sox_ext():
51
+ """Load SoX integration based on availability in lazy manner"""
52
+
53
+ global _SOX_EXT
54
+ if _SOX_EXT is None:
55
+ _SOX_EXT = _LazyImporter("_torchaudio_sox", _init_sox)
56
+ return _SOX_EXT
57
+
58
+
59
+ fail_if_no_rir = (
60
+ no_op
61
+ if _IS_RIR_AVAILABLE
62
+ else fail_with_message(
63
+ "requires RIR extension, but TorchAudio is not compiled with it. Please build TorchAudio with RIR support."
64
+ )
65
+ )
66
+
67
+ fail_if_no_align = (
68
+ no_op
69
+ if _IS_ALIGN_AVAILABLE
70
+ else fail_with_message(
71
+ "Requires alignment extension, but TorchAudio is not compiled with it. \
72
+ Please build TorchAudio with alignment support."
73
+ )
74
+ )
.venv/lib/python3.11/site-packages/torchaudio/_extension/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (2.2 kB). View file
 
.venv/lib/python3.11/site-packages/torchaudio/_extension/__pycache__/utils.cpython-311.pyc ADDED
Binary file (8.84 kB). View file
 
.venv/lib/python3.11/site-packages/torchaudio/_extension/utils.py ADDED
@@ -0,0 +1,180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Module to implement logics used for initializing extensions.
2
+
3
+ The implementations here should be stateless.
4
+ They should not depend on external state.
5
+ Anything that depends on external state should happen in __init__.py
6
+ """
7
+ import importlib
8
+ import logging
9
+ import os
10
+ import types
11
+ from pathlib import Path
12
+
13
+ import torch
14
+ from torchaudio._internal.module_utils import eval_env
15
+
16
+ _LG = logging.getLogger(__name__)
17
+ _LIB_DIR = Path(__file__).parent.parent / "lib"
18
+
19
+
20
+ def _get_lib_path(lib: str):
21
+ suffix = "pyd" if os.name == "nt" else "so"
22
+ path = _LIB_DIR / f"{lib}.{suffix}"
23
+ return path
24
+
25
+
26
+ def _load_lib(lib: str) -> bool:
27
+ """Load extension module
28
+
29
+ Note:
30
+ In case `torchaudio` is deployed with `pex` format, the library file
31
+ is not in a standard location.
32
+ In this case, we expect that `libtorchaudio` is available somewhere
33
+ in the search path of dynamic loading mechanism, so that importing
34
+ `_torchaudio` will have library loader find and load `libtorchaudio`.
35
+ This is the reason why the function should not raising an error when the library
36
+ file is not found.
37
+
38
+ Returns:
39
+ bool:
40
+ True if the library file is found AND the library loaded without failure.
41
+ False if the library file is not found (like in the case where torchaudio
42
+ is deployed with pex format, thus the shared library file is
43
+ in a non-standard location.).
44
+ If the library file is found but there is an issue loading the library,
45
+ (such as missing dependency) then this function raises the exception as-is.
46
+
47
+ Raises:
48
+ Exception:
49
+ If the library file is found, but there is an issue loading the library file,
50
+ (when underlying `ctype.DLL` throws an exception), this function will pass
51
+ the exception as-is, instead of catching it and returning bool.
52
+ The expected case is `OSError` thrown by `ctype.DLL` when a dynamic dependency
53
+ is not found.
54
+ This behavior was chosen because the expected failure case is not recoverable.
55
+ If a dependency is missing, then users have to install it.
56
+ """
57
+ path = _get_lib_path(lib)
58
+ if not path.exists():
59
+ return False
60
+ torch.ops.load_library(path)
61
+ return True
62
+
63
+
64
+ def _import_sox_ext():
65
+ if os.name == "nt":
66
+ raise RuntimeError("sox extension is not supported on Windows")
67
+ if not eval_env("TORCHAUDIO_USE_SOX", True):
68
+ raise RuntimeError("sox extension is disabled. (TORCHAUDIO_USE_SOX=0)")
69
+
70
+ ext = "torchaudio.lib._torchaudio_sox"
71
+
72
+ if not importlib.util.find_spec(ext):
73
+ raise RuntimeError(
74
+ # fmt: off
75
+ "TorchAudio is not built with sox extension. "
76
+ "Please build TorchAudio with libsox support. (BUILD_SOX=1)"
77
+ # fmt: on
78
+ )
79
+
80
+ _load_lib("libtorchaudio_sox")
81
+ return importlib.import_module(ext)
82
+
83
+
84
+ def _init_sox():
85
+ ext = _import_sox_ext()
86
+ ext.set_verbosity(0)
87
+
88
+ import atexit
89
+
90
+ torch.ops.torchaudio_sox.initialize_sox_effects()
91
+ atexit.register(torch.ops.torchaudio_sox.shutdown_sox_effects)
92
+
93
+ # Bundle functions registered with TORCH_LIBRARY into extension
94
+ # so that they can also be accessed in the same (lazy) manner
95
+ # from the extension.
96
+ keys = [
97
+ "get_info",
98
+ "load_audio_file",
99
+ "save_audio_file",
100
+ "apply_effects_tensor",
101
+ "apply_effects_file",
102
+ ]
103
+ for key in keys:
104
+ setattr(ext, key, getattr(torch.ops.torchaudio_sox, key))
105
+
106
+ return ext
107
+
108
+
109
+ class _LazyImporter(types.ModuleType):
110
+ """Lazily import module/extension."""
111
+
112
+ def __init__(self, name, import_func):
113
+ super().__init__(name)
114
+ self.import_func = import_func
115
+ self.module = None
116
+
117
+ # Note:
118
+ # Python caches what was retrieved with `__getattr__`, so this method will not be
119
+ # called again for the same item.
120
+ def __getattr__(self, item):
121
+ self._import_once()
122
+ return getattr(self.module, item)
123
+
124
+ def __repr__(self):
125
+ if self.module is None:
126
+ return f"<module '{self.__module__}.{self.__class__.__name__}(\"{self.name}\")'>"
127
+ return repr(self.module)
128
+
129
+ def __dir__(self):
130
+ self._import_once()
131
+ return dir(self.module)
132
+
133
+ def _import_once(self):
134
+ if self.module is None:
135
+ self.module = self.import_func()
136
+ # Note:
137
+ # By attaching the module attributes to self,
138
+ # module attributes are directly accessible.
139
+ # This allows to avoid calling __getattr__ for every attribute access.
140
+ self.__dict__.update(self.module.__dict__)
141
+
142
+ def is_available(self):
143
+ try:
144
+ self._import_once()
145
+ except Exception:
146
+ return False
147
+ return True
148
+
149
+
150
+ def _init_dll_path():
151
+ # On Windows Python-3.8+ has `os.add_dll_directory` call,
152
+ # which is called to configure dll search path.
153
+ # To find cuda related dlls we need to make sure the
154
+ # conda environment/bin path is configured Please take a look:
155
+ # https://stackoverflow.com/questions/59330863/cant-import-dll-module-in-python
156
+ # Please note: if some path can't be added using add_dll_directory we simply ignore this path
157
+ for path in os.environ.get("PATH", "").split(";"):
158
+ if os.path.exists(path):
159
+ try:
160
+ os.add_dll_directory(path)
161
+ except Exception:
162
+ pass
163
+
164
+
165
+ def _check_cuda_version():
166
+ import torchaudio.lib._torchaudio
167
+
168
+ version = torchaudio.lib._torchaudio.cuda_version()
169
+ if version is not None and torch.version.cuda is not None:
170
+ version_str = str(version)
171
+ ta_version = f"{version_str[:-3]}.{version_str[-2]}"
172
+ t_version = torch.version.cuda.split(".")
173
+ t_version = f"{t_version[0]}.{t_version[1]}"
174
+ if ta_version != t_version:
175
+ raise RuntimeError(
176
+ "Detected that PyTorch and TorchAudio were compiled with different CUDA versions. "
177
+ f"PyTorch has CUDA version {t_version} whereas TorchAudio has CUDA version {ta_version}. "
178
+ "Please install the TorchAudio version that matches your PyTorch version."
179
+ )
180
+ return version
.venv/lib/python3.11/site-packages/torchaudio/datasets/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (1.64 kB). View file
 
.venv/lib/python3.11/site-packages/torchaudio/datasets/__pycache__/cmuarctic.cpython-311.pyc ADDED
Binary file (9.3 kB). View file
 
.venv/lib/python3.11/site-packages/torchaudio/datasets/__pycache__/cmudict.cpython-311.pyc ADDED
Binary file (7.72 kB). View file