BryanW commited on
Commit
b1f1791
·
verified ·
1 Parent(s): 4e7fdc6

Add files using upload-large-folder tool

Browse files
Files changed (50) hide show
  1. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/__init__.py +5 -0
  2. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/_punycode.py +67 -0
  3. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/main.py +355 -0
  4. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/py.typed +1 -0
  5. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/ruler.py +276 -0
  6. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/utils.py +176 -0
  7. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/__init__.py +15 -0
  8. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_elffile.py +108 -0
  9. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_manylinux.py +252 -0
  10. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_musllinux.py +83 -0
  11. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_parser.py +359 -0
  12. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_structures.py +61 -0
  13. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py +192 -0
  14. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/markers.py +252 -0
  15. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/metadata.py +822 -0
  16. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/py.typed +0 -0
  17. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/requirements.py +90 -0
  18. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/specifiers.py +1008 -0
  19. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/tags.py +553 -0
  20. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/utils.py +172 -0
  21. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/version.py +563 -0
  22. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/AUTHORS.txt +806 -0
  23. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/INSTALLER +1 -0
  24. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/LICENSE.txt +20 -0
  25. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/RECORD +854 -0
  26. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/REQUESTED +0 -0
  27. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/WHEEL +5 -0
  28. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/entry_points.txt +3 -0
  29. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/top_level.txt +1 -0
  30. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/__init__.py +32 -0
  31. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/_helpers.py +39 -0
  32. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/_helpers_c.pyx +84 -0
  33. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/_helpers_py.py +56 -0
  34. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/api.py +8 -0
  35. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/py.typed +1 -0
  36. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/INSTALLER +1 -0
  37. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/LICENSE.txt +0 -0
  38. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/METADATA +86 -0
  39. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/NOTICE.txt +84 -0
  40. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/RECORD +876 -0
  41. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/WHEEL +5 -0
  42. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/top_level.txt +2 -0
  43. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/INSTALLER +1 -0
  44. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE +3 -0
  45. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 +202 -0
  46. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT +20 -0
  47. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/METADATA +104 -0
  48. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/RECORD +19 -0
  49. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/WHEEL +5 -0
  50. Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/top_level.txt +1 -0
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/__init__.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ """A Python port of Markdown-It"""
2
+ __all__ = ("MarkdownIt",)
3
+ __version__ = "3.0.0"
4
+
5
+ from .main import MarkdownIt
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/_punycode.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright 2014 Mathias Bynens <https://mathiasbynens.be/>
2
+ # Copyright 2021 Taneli Hukkinen
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+
23
+ import codecs
24
+ import re
25
+ from typing import Callable
26
+
27
+ REGEX_SEPARATORS = re.compile(r"[\x2E\u3002\uFF0E\uFF61]")
28
+ REGEX_NON_ASCII = re.compile(r"[^\0-\x7E]")
29
+
30
+
31
+ def encode(uni: str) -> str:
32
+ return codecs.encode(uni, encoding="punycode").decode()
33
+
34
+
35
+ def decode(ascii: str) -> str:
36
+ return codecs.decode(ascii, encoding="punycode") # type: ignore
37
+
38
+
39
+ def map_domain(string: str, fn: Callable[[str], str]) -> str:
40
+ parts = string.split("@")
41
+ result = ""
42
+ if len(parts) > 1:
43
+ # In email addresses, only the domain name should be punycoded. Leave
44
+ # the local part (i.e. everything up to `@`) intact.
45
+ result = parts[0] + "@"
46
+ string = parts[1]
47
+ labels = REGEX_SEPARATORS.split(string)
48
+ encoded = ".".join(fn(label) for label in labels)
49
+ return result + encoded
50
+
51
+
52
+ def to_unicode(obj: str) -> str:
53
+ def mapping(obj: str) -> str:
54
+ if obj.startswith("xn--"):
55
+ return decode(obj[4:].lower())
56
+ return obj
57
+
58
+ return map_domain(obj, mapping)
59
+
60
+
61
+ def to_ascii(obj: str) -> str:
62
+ def mapping(obj: str) -> str:
63
+ if REGEX_NON_ASCII.search(obj):
64
+ return "xn--" + encode(obj)
65
+ return obj
66
+
67
+ return map_domain(obj, mapping)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/main.py ADDED
@@ -0,0 +1,355 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Callable, Generator, Iterable, Mapping, MutableMapping
4
+ from contextlib import contextmanager
5
+ from typing import Any, Literal, overload
6
+
7
+ from . import helpers, presets
8
+ from .common import normalize_url, utils
9
+ from .parser_block import ParserBlock
10
+ from .parser_core import ParserCore
11
+ from .parser_inline import ParserInline
12
+ from .renderer import RendererHTML, RendererProtocol
13
+ from .rules_core.state_core import StateCore
14
+ from .token import Token
15
+ from .utils import EnvType, OptionsDict, OptionsType, PresetType
16
+
17
+ try:
18
+ import linkify_it
19
+ except ModuleNotFoundError:
20
+ linkify_it = None
21
+
22
+
23
+ _PRESETS: dict[str, PresetType] = {
24
+ "default": presets.default.make(),
25
+ "js-default": presets.js_default.make(),
26
+ "zero": presets.zero.make(),
27
+ "commonmark": presets.commonmark.make(),
28
+ "gfm-like": presets.gfm_like.make(),
29
+ }
30
+
31
+
32
+ class MarkdownIt:
33
+ def __init__(
34
+ self,
35
+ config: str | PresetType = "commonmark",
36
+ options_update: Mapping[str, Any] | None = None,
37
+ *,
38
+ renderer_cls: Callable[[MarkdownIt], RendererProtocol] = RendererHTML,
39
+ ):
40
+ """Main parser class
41
+
42
+ :param config: name of configuration to load or a pre-defined dictionary
43
+ :param options_update: dictionary that will be merged into ``config["options"]``
44
+ :param renderer_cls: the class to load as the renderer:
45
+ ``self.renderer = renderer_cls(self)
46
+ """
47
+ # add modules
48
+ self.utils = utils
49
+ self.helpers = helpers
50
+
51
+ # initialise classes
52
+ self.inline = ParserInline()
53
+ self.block = ParserBlock()
54
+ self.core = ParserCore()
55
+ self.renderer = renderer_cls(self)
56
+ self.linkify = linkify_it.LinkifyIt() if linkify_it else None
57
+
58
+ # set the configuration
59
+ if options_update and not isinstance(options_update, Mapping):
60
+ # catch signature change where renderer_cls was not used as a key-word
61
+ raise TypeError(
62
+ f"options_update should be a mapping: {options_update}"
63
+ "\n(Perhaps you intended this to be the renderer_cls?)"
64
+ )
65
+ self.configure(config, options_update=options_update)
66
+
67
+ def __repr__(self) -> str:
68
+ return f"{self.__class__.__module__}.{self.__class__.__name__}()"
69
+
70
+ @overload
71
+ def __getitem__(self, name: Literal["inline"]) -> ParserInline:
72
+ ...
73
+
74
+ @overload
75
+ def __getitem__(self, name: Literal["block"]) -> ParserBlock:
76
+ ...
77
+
78
+ @overload
79
+ def __getitem__(self, name: Literal["core"]) -> ParserCore:
80
+ ...
81
+
82
+ @overload
83
+ def __getitem__(self, name: Literal["renderer"]) -> RendererProtocol:
84
+ ...
85
+
86
+ @overload
87
+ def __getitem__(self, name: str) -> Any:
88
+ ...
89
+
90
+ def __getitem__(self, name: str) -> Any:
91
+ return {
92
+ "inline": self.inline,
93
+ "block": self.block,
94
+ "core": self.core,
95
+ "renderer": self.renderer,
96
+ }[name]
97
+
98
+ def set(self, options: OptionsType) -> None:
99
+ """Set parser options (in the same format as in constructor).
100
+ Probably, you will never need it, but you can change options after constructor call.
101
+
102
+ __Note:__ To achieve the best possible performance, don't modify a
103
+ `markdown-it` instance options on the fly. If you need multiple configurations
104
+ it's best to create multiple instances and initialize each with separate config.
105
+ """
106
+ self.options = OptionsDict(options)
107
+
108
+ def configure(
109
+ self, presets: str | PresetType, options_update: Mapping[str, Any] | None = None
110
+ ) -> MarkdownIt:
111
+ """Batch load of all options and component settings.
112
+ This is an internal method, and you probably will not need it.
113
+ But if you will - see available presets and data structure
114
+ [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)
115
+
116
+ We strongly recommend to use presets instead of direct config loads.
117
+ That will give better compatibility with next versions.
118
+ """
119
+ if isinstance(presets, str):
120
+ if presets not in _PRESETS:
121
+ raise KeyError(f"Wrong `markdown-it` preset '{presets}', check name")
122
+ config = _PRESETS[presets]
123
+ else:
124
+ config = presets
125
+
126
+ if not config:
127
+ raise ValueError("Wrong `markdown-it` config, can't be empty")
128
+
129
+ options = config.get("options", {}) or {}
130
+ if options_update:
131
+ options = {**options, **options_update} # type: ignore
132
+
133
+ self.set(options) # type: ignore
134
+
135
+ if "components" in config:
136
+ for name, component in config["components"].items():
137
+ rules = component.get("rules", None)
138
+ if rules:
139
+ self[name].ruler.enableOnly(rules)
140
+ rules2 = component.get("rules2", None)
141
+ if rules2:
142
+ self[name].ruler2.enableOnly(rules2)
143
+
144
+ return self
145
+
146
+ def get_all_rules(self) -> dict[str, list[str]]:
147
+ """Return the names of all active rules."""
148
+ rules = {
149
+ chain: self[chain].ruler.get_all_rules()
150
+ for chain in ["core", "block", "inline"]
151
+ }
152
+ rules["inline2"] = self.inline.ruler2.get_all_rules()
153
+ return rules
154
+
155
+ def get_active_rules(self) -> dict[str, list[str]]:
156
+ """Return the names of all active rules."""
157
+ rules = {
158
+ chain: self[chain].ruler.get_active_rules()
159
+ for chain in ["core", "block", "inline"]
160
+ }
161
+ rules["inline2"] = self.inline.ruler2.get_active_rules()
162
+ return rules
163
+
164
+ def enable(
165
+ self, names: str | Iterable[str], ignoreInvalid: bool = False
166
+ ) -> MarkdownIt:
167
+ """Enable list or rules. (chainable)
168
+
169
+ :param names: rule name or list of rule names to enable.
170
+ :param ignoreInvalid: set `true` to ignore errors when rule not found.
171
+
172
+ It will automatically find appropriate components,
173
+ containing rules with given names. If rule not found, and `ignoreInvalid`
174
+ not set - throws exception.
175
+
176
+ Example::
177
+
178
+ md = MarkdownIt().enable(['sub', 'sup']).disable('smartquotes')
179
+
180
+ """
181
+ result = []
182
+
183
+ if isinstance(names, str):
184
+ names = [names]
185
+
186
+ for chain in ["core", "block", "inline"]:
187
+ result.extend(self[chain].ruler.enable(names, True))
188
+ result.extend(self.inline.ruler2.enable(names, True))
189
+
190
+ missed = [name for name in names if name not in result]
191
+ if missed and not ignoreInvalid:
192
+ raise ValueError(f"MarkdownIt. Failed to enable unknown rule(s): {missed}")
193
+
194
+ return self
195
+
196
+ def disable(
197
+ self, names: str | Iterable[str], ignoreInvalid: bool = False
198
+ ) -> MarkdownIt:
199
+ """The same as [[MarkdownIt.enable]], but turn specified rules off. (chainable)
200
+
201
+ :param names: rule name or list of rule names to disable.
202
+ :param ignoreInvalid: set `true` to ignore errors when rule not found.
203
+
204
+ """
205
+ result = []
206
+
207
+ if isinstance(names, str):
208
+ names = [names]
209
+
210
+ for chain in ["core", "block", "inline"]:
211
+ result.extend(self[chain].ruler.disable(names, True))
212
+ result.extend(self.inline.ruler2.disable(names, True))
213
+
214
+ missed = [name for name in names if name not in result]
215
+ if missed and not ignoreInvalid:
216
+ raise ValueError(f"MarkdownIt. Failed to disable unknown rule(s): {missed}")
217
+ return self
218
+
219
+ @contextmanager
220
+ def reset_rules(self) -> Generator[None, None, None]:
221
+ """A context manager, that will reset the current enabled rules on exit."""
222
+ chain_rules = self.get_active_rules()
223
+ yield
224
+ for chain, rules in chain_rules.items():
225
+ if chain != "inline2":
226
+ self[chain].ruler.enableOnly(rules)
227
+ self.inline.ruler2.enableOnly(chain_rules["inline2"])
228
+
229
+ def add_render_rule(
230
+ self, name: str, function: Callable[..., Any], fmt: str = "html"
231
+ ) -> None:
232
+ """Add a rule for rendering a particular Token type.
233
+
234
+ Only applied when ``renderer.__output__ == fmt``
235
+ """
236
+ if self.renderer.__output__ == fmt:
237
+ self.renderer.rules[name] = function.__get__(self.renderer) # type: ignore
238
+
239
+ def use(
240
+ self, plugin: Callable[..., None], *params: Any, **options: Any
241
+ ) -> MarkdownIt:
242
+ """Load specified plugin with given params into current parser instance. (chainable)
243
+
244
+ It's just a sugar to call `plugin(md, params)` with curring.
245
+
246
+ Example::
247
+
248
+ def func(tokens, idx):
249
+ tokens[idx].content = tokens[idx].content.replace('foo', 'bar')
250
+ md = MarkdownIt().use(plugin, 'foo_replace', 'text', func)
251
+
252
+ """
253
+ plugin(self, *params, **options)
254
+ return self
255
+
256
+ def parse(self, src: str, env: EnvType | None = None) -> list[Token]:
257
+ """Parse the source string to a token stream
258
+
259
+ :param src: source string
260
+ :param env: environment sandbox
261
+
262
+ Parse input string and return list of block tokens (special token type
263
+ "inline" will contain list of inline tokens).
264
+
265
+ `env` is used to pass data between "distributed" rules and return additional
266
+ metadata like reference info, needed for the renderer. It also can be used to
267
+ inject data in specific cases. Usually, you will be ok to pass `{}`,
268
+ and then pass updated object to renderer.
269
+ """
270
+ env = {} if env is None else env
271
+ if not isinstance(env, MutableMapping):
272
+ raise TypeError(f"Input data should be a MutableMapping, not {type(env)}")
273
+ if not isinstance(src, str):
274
+ raise TypeError(f"Input data should be a string, not {type(src)}")
275
+ state = StateCore(src, self, env)
276
+ self.core.process(state)
277
+ return state.tokens
278
+
279
+ def render(self, src: str, env: EnvType | None = None) -> Any:
280
+ """Render markdown string into html. It does all magic for you :).
281
+
282
+ :param src: source string
283
+ :param env: environment sandbox
284
+ :returns: The output of the loaded renderer
285
+
286
+ `env` can be used to inject additional metadata (`{}` by default).
287
+ But you will not need it with high probability. See also comment
288
+ in [[MarkdownIt.parse]].
289
+ """
290
+ env = {} if env is None else env
291
+ return self.renderer.render(self.parse(src, env), self.options, env)
292
+
293
+ def parseInline(self, src: str, env: EnvType | None = None) -> list[Token]:
294
+ """The same as [[MarkdownIt.parse]] but skip all block rules.
295
+
296
+ :param src: source string
297
+ :param env: environment sandbox
298
+
299
+ It returns the
300
+ block tokens list with the single `inline` element, containing parsed inline
301
+ tokens in `children` property. Also updates `env` object.
302
+ """
303
+ env = {} if env is None else env
304
+ if not isinstance(env, MutableMapping):
305
+ raise TypeError(f"Input data should be an MutableMapping, not {type(env)}")
306
+ if not isinstance(src, str):
307
+ raise TypeError(f"Input data should be a string, not {type(src)}")
308
+ state = StateCore(src, self, env)
309
+ state.inlineMode = True
310
+ self.core.process(state)
311
+ return state.tokens
312
+
313
+ def renderInline(self, src: str, env: EnvType | None = None) -> Any:
314
+ """Similar to [[MarkdownIt.render]] but for single paragraph content.
315
+
316
+ :param src: source string
317
+ :param env: environment sandbox
318
+
319
+ Similar to [[MarkdownIt.render]] but for single paragraph content. Result
320
+ will NOT be wrapped into `<p>` tags.
321
+ """
322
+ env = {} if env is None else env
323
+ return self.renderer.render(self.parseInline(src, env), self.options, env)
324
+
325
+ # link methods
326
+
327
+ def validateLink(self, url: str) -> bool:
328
+ """Validate if the URL link is allowed in output.
329
+
330
+ This validator can prohibit more than really needed to prevent XSS.
331
+ It's a tradeoff to keep code simple and to be secure by default.
332
+
333
+ Note: the url should be normalized at this point, and existing entities decoded.
334
+ """
335
+ return normalize_url.validateLink(url)
336
+
337
+ def normalizeLink(self, url: str) -> str:
338
+ """Normalize destination URLs in links
339
+
340
+ ::
341
+
342
+ [label]: destination 'title'
343
+ ^^^^^^^^^^^
344
+ """
345
+ return normalize_url.normalizeLink(url)
346
+
347
+ def normalizeLinkText(self, link: str) -> str:
348
+ """Normalize autolink content
349
+
350
+ ::
351
+
352
+ <destination>
353
+ ~~~~~~~~~~~
354
+ """
355
+ return normalize_url.normalizeLinkText(link)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/py.typed ADDED
@@ -0,0 +1 @@
 
 
1
+ # Marker file for PEP 561
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/ruler.py ADDED
@@ -0,0 +1,276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ class Ruler
3
+
4
+ Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and
5
+ [[MarkdownIt#inline]] to manage sequences of functions (rules):
6
+
7
+ - keep rules in defined order
8
+ - assign the name to each rule
9
+ - enable/disable rules
10
+ - add/replace rules
11
+ - allow assign rules to additional named chains (in the same)
12
+ - caching lists of active rules
13
+
14
+ You will not need use this class directly until write plugins. For simple
15
+ rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and
16
+ [[MarkdownIt.use]].
17
+ """
18
+ from __future__ import annotations
19
+
20
+ from collections.abc import Iterable
21
+ from dataclasses import dataclass, field
22
+ from typing import TYPE_CHECKING, Generic, TypedDict, TypeVar
23
+ import warnings
24
+
25
+ from markdown_it._compat import DATACLASS_KWARGS
26
+
27
+ from .utils import EnvType
28
+
29
+ if TYPE_CHECKING:
30
+ from markdown_it import MarkdownIt
31
+
32
+
33
+ class StateBase:
34
+ def __init__(self, src: str, md: MarkdownIt, env: EnvType):
35
+ self.src = src
36
+ self.env = env
37
+ self.md = md
38
+
39
+ @property
40
+ def src(self) -> str:
41
+ return self._src
42
+
43
+ @src.setter
44
+ def src(self, value: str) -> None:
45
+ self._src = value
46
+ self._srcCharCode: tuple[int, ...] | None = None
47
+
48
+ @property
49
+ def srcCharCode(self) -> tuple[int, ...]:
50
+ warnings.warn(
51
+ "StateBase.srcCharCode is deprecated. Use StateBase.src instead.",
52
+ DeprecationWarning,
53
+ stacklevel=2,
54
+ )
55
+ if self._srcCharCode is None:
56
+ self._srcCharCode = tuple(ord(c) for c in self._src)
57
+ return self._srcCharCode
58
+
59
+
60
+ class RuleOptionsType(TypedDict, total=False):
61
+ alt: list[str]
62
+
63
+
64
+ RuleFuncTv = TypeVar("RuleFuncTv")
65
+ """A rule function, whose signature is dependent on the state type."""
66
+
67
+
68
+ @dataclass(**DATACLASS_KWARGS)
69
+ class Rule(Generic[RuleFuncTv]):
70
+ name: str
71
+ enabled: bool
72
+ fn: RuleFuncTv = field(repr=False)
73
+ alt: list[str]
74
+
75
+
76
+ class Ruler(Generic[RuleFuncTv]):
77
+ def __init__(self) -> None:
78
+ # List of added rules.
79
+ self.__rules__: list[Rule[RuleFuncTv]] = []
80
+ # Cached rule chains.
81
+ # First level - chain name, '' for default.
82
+ # Second level - diginal anchor for fast filtering by charcodes.
83
+ self.__cache__: dict[str, list[RuleFuncTv]] | None = None
84
+
85
+ def __find__(self, name: str) -> int:
86
+ """Find rule index by name"""
87
+ for i, rule in enumerate(self.__rules__):
88
+ if rule.name == name:
89
+ return i
90
+ return -1
91
+
92
+ def __compile__(self) -> None:
93
+ """Build rules lookup cache"""
94
+ chains = {""}
95
+ # collect unique names
96
+ for rule in self.__rules__:
97
+ if not rule.enabled:
98
+ continue
99
+ for name in rule.alt:
100
+ chains.add(name)
101
+ self.__cache__ = {}
102
+ for chain in chains:
103
+ self.__cache__[chain] = []
104
+ for rule in self.__rules__:
105
+ if not rule.enabled:
106
+ continue
107
+ if chain and (chain not in rule.alt):
108
+ continue
109
+ self.__cache__[chain].append(rule.fn)
110
+
111
+ def at(
112
+ self, ruleName: str, fn: RuleFuncTv, options: RuleOptionsType | None = None
113
+ ) -> None:
114
+ """Replace rule by name with new function & options.
115
+
116
+ :param ruleName: rule name to replace.
117
+ :param fn: new rule function.
118
+ :param options: new rule options (not mandatory).
119
+ :raises: KeyError if name not found
120
+ """
121
+ index = self.__find__(ruleName)
122
+ options = options or {}
123
+ if index == -1:
124
+ raise KeyError(f"Parser rule not found: {ruleName}")
125
+ self.__rules__[index].fn = fn
126
+ self.__rules__[index].alt = options.get("alt", [])
127
+ self.__cache__ = None
128
+
129
+ def before(
130
+ self,
131
+ beforeName: str,
132
+ ruleName: str,
133
+ fn: RuleFuncTv,
134
+ options: RuleOptionsType | None = None,
135
+ ) -> None:
136
+ """Add new rule to chain before one with given name.
137
+
138
+ :param beforeName: new rule will be added before this one.
139
+ :param ruleName: new rule will be added before this one.
140
+ :param fn: new rule function.
141
+ :param options: new rule options (not mandatory).
142
+ :raises: KeyError if name not found
143
+ """
144
+ index = self.__find__(beforeName)
145
+ options = options or {}
146
+ if index == -1:
147
+ raise KeyError(f"Parser rule not found: {beforeName}")
148
+ self.__rules__.insert(
149
+ index, Rule[RuleFuncTv](ruleName, True, fn, options.get("alt", []))
150
+ )
151
+ self.__cache__ = None
152
+
153
+ def after(
154
+ self,
155
+ afterName: str,
156
+ ruleName: str,
157
+ fn: RuleFuncTv,
158
+ options: RuleOptionsType | None = None,
159
+ ) -> None:
160
+ """Add new rule to chain after one with given name.
161
+
162
+ :param afterName: new rule will be added after this one.
163
+ :param ruleName: new rule will be added after this one.
164
+ :param fn: new rule function.
165
+ :param options: new rule options (not mandatory).
166
+ :raises: KeyError if name not found
167
+ """
168
+ index = self.__find__(afterName)
169
+ options = options or {}
170
+ if index == -1:
171
+ raise KeyError(f"Parser rule not found: {afterName}")
172
+ self.__rules__.insert(
173
+ index + 1, Rule[RuleFuncTv](ruleName, True, fn, options.get("alt", []))
174
+ )
175
+ self.__cache__ = None
176
+
177
+ def push(
178
+ self, ruleName: str, fn: RuleFuncTv, options: RuleOptionsType | None = None
179
+ ) -> None:
180
+ """Push new rule to the end of chain.
181
+
182
+ :param ruleName: new rule will be added to the end of chain.
183
+ :param fn: new rule function.
184
+ :param options: new rule options (not mandatory).
185
+
186
+ """
187
+ self.__rules__.append(
188
+ Rule[RuleFuncTv](ruleName, True, fn, (options or {}).get("alt", []))
189
+ )
190
+ self.__cache__ = None
191
+
192
+ def enable(
193
+ self, names: str | Iterable[str], ignoreInvalid: bool = False
194
+ ) -> list[str]:
195
+ """Enable rules with given names.
196
+
197
+ :param names: name or list of rule names to enable.
198
+ :param ignoreInvalid: ignore errors when rule not found
199
+ :raises: KeyError if name not found and not ignoreInvalid
200
+ :return: list of found rule names
201
+ """
202
+ if isinstance(names, str):
203
+ names = [names]
204
+ result: list[str] = []
205
+ for name in names:
206
+ idx = self.__find__(name)
207
+ if (idx < 0) and ignoreInvalid:
208
+ continue
209
+ if (idx < 0) and not ignoreInvalid:
210
+ raise KeyError(f"Rules manager: invalid rule name {name}")
211
+ self.__rules__[idx].enabled = True
212
+ result.append(name)
213
+ self.__cache__ = None
214
+ return result
215
+
216
+ def enableOnly(
217
+ self, names: str | Iterable[str], ignoreInvalid: bool = False
218
+ ) -> list[str]:
219
+ """Enable rules with given names, and disable everything else.
220
+
221
+ :param names: name or list of rule names to enable.
222
+ :param ignoreInvalid: ignore errors when rule not found
223
+ :raises: KeyError if name not found and not ignoreInvalid
224
+ :return: list of found rule names
225
+ """
226
+ if isinstance(names, str):
227
+ names = [names]
228
+ for rule in self.__rules__:
229
+ rule.enabled = False
230
+ return self.enable(names, ignoreInvalid)
231
+
232
+ def disable(
233
+ self, names: str | Iterable[str], ignoreInvalid: bool = False
234
+ ) -> list[str]:
235
+ """Disable rules with given names.
236
+
237
+ :param names: name or list of rule names to enable.
238
+ :param ignoreInvalid: ignore errors when rule not found
239
+ :raises: KeyError if name not found and not ignoreInvalid
240
+ :return: list of found rule names
241
+ """
242
+ if isinstance(names, str):
243
+ names = [names]
244
+ result = []
245
+ for name in names:
246
+ idx = self.__find__(name)
247
+ if (idx < 0) and ignoreInvalid:
248
+ continue
249
+ if (idx < 0) and not ignoreInvalid:
250
+ raise KeyError(f"Rules manager: invalid rule name {name}")
251
+ self.__rules__[idx].enabled = False
252
+ result.append(name)
253
+ self.__cache__ = None
254
+ return result
255
+
256
+ def getRules(self, chainName: str = "") -> list[RuleFuncTv]:
257
+ """Return array of active functions (rules) for given chain name.
258
+ It analyzes rules configuration, compiles caches if not exists and returns result.
259
+
260
+ Default chain name is `''` (empty string). It can't be skipped.
261
+ That's done intentionally, to keep signature monomorphic for high speed.
262
+
263
+ """
264
+ if self.__cache__ is None:
265
+ self.__compile__()
266
+ assert self.__cache__ is not None
267
+ # Chain can be empty, if rules disabled. But we still have to return Array.
268
+ return self.__cache__.get(chainName, []) or []
269
+
270
+ def get_all_rules(self) -> list[str]:
271
+ """Return all available rule names."""
272
+ return [r.name for r in self.__rules__]
273
+
274
+ def get_active_rules(self) -> list[str]:
275
+ """Return the active rule names."""
276
+ return [r.name for r in self.__rules__ if r.enabled]
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markdown_it/utils.py ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import MutableMapping as MutableMappingABC
4
+ from pathlib import Path
5
+ from typing import Any, Callable, Iterable, MutableMapping, TypedDict, cast
6
+
7
+ EnvType = MutableMapping[str, Any] # note: could use TypeAlias in python 3.10
8
+ """Type for the environment sandbox used in parsing and rendering,
9
+ which stores mutable variables for use by plugins and rules.
10
+ """
11
+
12
+
13
+ class OptionsType(TypedDict):
14
+ """Options for parsing."""
15
+
16
+ maxNesting: int
17
+ """Internal protection, recursion limit."""
18
+ html: bool
19
+ """Enable HTML tags in source."""
20
+ linkify: bool
21
+ """Enable autoconversion of URL-like texts to links."""
22
+ typographer: bool
23
+ """Enable smartquotes and replacements."""
24
+ quotes: str
25
+ """Quote characters."""
26
+ xhtmlOut: bool
27
+ """Use '/' to close single tags (<br />)."""
28
+ breaks: bool
29
+ """Convert newlines in paragraphs into <br>."""
30
+ langPrefix: str
31
+ """CSS language prefix for fenced blocks."""
32
+ highlight: Callable[[str, str, str], str] | None
33
+ """Highlighter function: (content, lang, attrs) -> str."""
34
+
35
+
36
+ class PresetType(TypedDict):
37
+ """Preset configuration for markdown-it."""
38
+
39
+ options: OptionsType
40
+ """Options for parsing."""
41
+ components: MutableMapping[str, MutableMapping[str, list[str]]]
42
+ """Components for parsing and rendering."""
43
+
44
+
45
+ class OptionsDict(MutableMappingABC): # type: ignore
46
+ """A dictionary, with attribute access to core markdownit configuration options."""
47
+
48
+ # Note: ideally we would probably just remove attribute access entirely,
49
+ # but we keep it for backwards compatibility.
50
+
51
+ def __init__(self, options: OptionsType) -> None:
52
+ self._options = cast(OptionsType, dict(options))
53
+
54
+ def __getitem__(self, key: str) -> Any:
55
+ return self._options[key] # type: ignore[literal-required]
56
+
57
+ def __setitem__(self, key: str, value: Any) -> None:
58
+ self._options[key] = value # type: ignore[literal-required]
59
+
60
+ def __delitem__(self, key: str) -> None:
61
+ del self._options[key] # type: ignore
62
+
63
+ def __iter__(self) -> Iterable[str]: # type: ignore
64
+ return iter(self._options)
65
+
66
+ def __len__(self) -> int:
67
+ return len(self._options)
68
+
69
+ def __repr__(self) -> str:
70
+ return repr(self._options)
71
+
72
+ def __str__(self) -> str:
73
+ return str(self._options)
74
+
75
+ @property
76
+ def maxNesting(self) -> int:
77
+ """Internal protection, recursion limit."""
78
+ return self._options["maxNesting"]
79
+
80
+ @maxNesting.setter
81
+ def maxNesting(self, value: int) -> None:
82
+ self._options["maxNesting"] = value
83
+
84
+ @property
85
+ def html(self) -> bool:
86
+ """Enable HTML tags in source."""
87
+ return self._options["html"]
88
+
89
+ @html.setter
90
+ def html(self, value: bool) -> None:
91
+ self._options["html"] = value
92
+
93
+ @property
94
+ def linkify(self) -> bool:
95
+ """Enable autoconversion of URL-like texts to links."""
96
+ return self._options["linkify"]
97
+
98
+ @linkify.setter
99
+ def linkify(self, value: bool) -> None:
100
+ self._options["linkify"] = value
101
+
102
+ @property
103
+ def typographer(self) -> bool:
104
+ """Enable smartquotes and replacements."""
105
+ return self._options["typographer"]
106
+
107
+ @typographer.setter
108
+ def typographer(self, value: bool) -> None:
109
+ self._options["typographer"] = value
110
+
111
+ @property
112
+ def quotes(self) -> str:
113
+ """Quote characters."""
114
+ return self._options["quotes"]
115
+
116
+ @quotes.setter
117
+ def quotes(self, value: str) -> None:
118
+ self._options["quotes"] = value
119
+
120
+ @property
121
+ def xhtmlOut(self) -> bool:
122
+ """Use '/' to close single tags (<br />)."""
123
+ return self._options["xhtmlOut"]
124
+
125
+ @xhtmlOut.setter
126
+ def xhtmlOut(self, value: bool) -> None:
127
+ self._options["xhtmlOut"] = value
128
+
129
+ @property
130
+ def breaks(self) -> bool:
131
+ """Convert newlines in paragraphs into <br>."""
132
+ return self._options["breaks"]
133
+
134
+ @breaks.setter
135
+ def breaks(self, value: bool) -> None:
136
+ self._options["breaks"] = value
137
+
138
+ @property
139
+ def langPrefix(self) -> str:
140
+ """CSS language prefix for fenced blocks."""
141
+ return self._options["langPrefix"]
142
+
143
+ @langPrefix.setter
144
+ def langPrefix(self, value: str) -> None:
145
+ self._options["langPrefix"] = value
146
+
147
+ @property
148
+ def highlight(self) -> Callable[[str, str, str], str] | None:
149
+ """Highlighter function: (content, langName, langAttrs) -> escaped HTML."""
150
+ return self._options["highlight"]
151
+
152
+ @highlight.setter
153
+ def highlight(self, value: Callable[[str, str, str], str] | None) -> None:
154
+ self._options["highlight"] = value
155
+
156
+
157
+ def read_fixture_file(path: str | Path) -> list[list[Any]]:
158
+ text = Path(path).read_text(encoding="utf-8")
159
+ tests = []
160
+ section = 0
161
+ last_pos = 0
162
+ lines = text.splitlines(keepends=True)
163
+ for i in range(len(lines)):
164
+ if lines[i].rstrip() == ".":
165
+ if section == 0:
166
+ tests.append([i, lines[i - 1].strip()])
167
+ section = 1
168
+ elif section == 1:
169
+ tests[-1].append("".join(lines[last_pos + 1 : i]))
170
+ section = 2
171
+ elif section == 2:
172
+ tests[-1].append("".join(lines[last_pos + 1 : i]))
173
+ section = 0
174
+
175
+ last_pos = i
176
+ return tests
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/__init__.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ __title__ = "packaging"
6
+ __summary__ = "Core utilities for Python packages"
7
+ __uri__ = "https://github.com/pypa/packaging"
8
+
9
+ __version__ = "23.2"
10
+
11
+ __author__ = "Donald Stufft and individual contributors"
12
+ __email__ = "donald@stufft.io"
13
+
14
+ __license__ = "BSD-2-Clause or Apache-2.0"
15
+ __copyright__ = "2014 %s" % __author__
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_elffile.py ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ ELF file parser.
3
+
4
+ This provides a class ``ELFFile`` that parses an ELF executable in a similar
5
+ interface to ``ZipFile``. Only the read interface is implemented.
6
+
7
+ Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
8
+ ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
9
+ """
10
+
11
+ import enum
12
+ import os
13
+ import struct
14
+ from typing import IO, Optional, Tuple
15
+
16
+
17
+ class ELFInvalid(ValueError):
18
+ pass
19
+
20
+
21
+ class EIClass(enum.IntEnum):
22
+ C32 = 1
23
+ C64 = 2
24
+
25
+
26
+ class EIData(enum.IntEnum):
27
+ Lsb = 1
28
+ Msb = 2
29
+
30
+
31
+ class EMachine(enum.IntEnum):
32
+ I386 = 3
33
+ S390 = 22
34
+ Arm = 40
35
+ X8664 = 62
36
+ AArc64 = 183
37
+
38
+
39
+ class ELFFile:
40
+ """
41
+ Representation of an ELF executable.
42
+ """
43
+
44
+ def __init__(self, f: IO[bytes]) -> None:
45
+ self._f = f
46
+
47
+ try:
48
+ ident = self._read("16B")
49
+ except struct.error:
50
+ raise ELFInvalid("unable to parse identification")
51
+ magic = bytes(ident[:4])
52
+ if magic != b"\x7fELF":
53
+ raise ELFInvalid(f"invalid magic: {magic!r}")
54
+
55
+ self.capacity = ident[4] # Format for program header (bitness).
56
+ self.encoding = ident[5] # Data structure encoding (endianness).
57
+
58
+ try:
59
+ # e_fmt: Format for program header.
60
+ # p_fmt: Format for section header.
61
+ # p_idx: Indexes to find p_type, p_offset, and p_filesz.
62
+ e_fmt, self._p_fmt, self._p_idx = {
63
+ (1, 1): ("<HHIIIIIHHH", "<IIIIIIII", (0, 1, 4)), # 32-bit LSB.
64
+ (1, 2): (">HHIIIIIHHH", ">IIIIIIII", (0, 1, 4)), # 32-bit MSB.
65
+ (2, 1): ("<HHIQQQIHHH", "<IIQQQQQQ", (0, 2, 5)), # 64-bit LSB.
66
+ (2, 2): (">HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB.
67
+ }[(self.capacity, self.encoding)]
68
+ except KeyError:
69
+ raise ELFInvalid(
70
+ f"unrecognized capacity ({self.capacity}) or "
71
+ f"encoding ({self.encoding})"
72
+ )
73
+
74
+ try:
75
+ (
76
+ _,
77
+ self.machine, # Architecture type.
78
+ _,
79
+ _,
80
+ self._e_phoff, # Offset of program header.
81
+ _,
82
+ self.flags, # Processor-specific flags.
83
+ _,
84
+ self._e_phentsize, # Size of section.
85
+ self._e_phnum, # Number of sections.
86
+ ) = self._read(e_fmt)
87
+ except struct.error as e:
88
+ raise ELFInvalid("unable to parse machine and section information") from e
89
+
90
+ def _read(self, fmt: str) -> Tuple[int, ...]:
91
+ return struct.unpack(fmt, self._f.read(struct.calcsize(fmt)))
92
+
93
+ @property
94
+ def interpreter(self) -> Optional[str]:
95
+ """
96
+ The path recorded in the ``PT_INTERP`` section header.
97
+ """
98
+ for index in range(self._e_phnum):
99
+ self._f.seek(self._e_phoff + self._e_phentsize * index)
100
+ try:
101
+ data = self._read(self._p_fmt)
102
+ except struct.error:
103
+ continue
104
+ if data[self._p_idx[0]] != 3: # Not PT_INTERP.
105
+ continue
106
+ self._f.seek(data[self._p_idx[1]])
107
+ return os.fsdecode(self._f.read(data[self._p_idx[2]])).strip("\0")
108
+ return None
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_manylinux.py ADDED
@@ -0,0 +1,252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import collections
2
+ import contextlib
3
+ import functools
4
+ import os
5
+ import re
6
+ import sys
7
+ import warnings
8
+ from typing import Dict, Generator, Iterator, NamedTuple, Optional, Sequence, Tuple
9
+
10
+ from ._elffile import EIClass, EIData, ELFFile, EMachine
11
+
12
+ EF_ARM_ABIMASK = 0xFF000000
13
+ EF_ARM_ABI_VER5 = 0x05000000
14
+ EF_ARM_ABI_FLOAT_HARD = 0x00000400
15
+
16
+
17
+ # `os.PathLike` not a generic type until Python 3.9, so sticking with `str`
18
+ # as the type for `path` until then.
19
+ @contextlib.contextmanager
20
+ def _parse_elf(path: str) -> Generator[Optional[ELFFile], None, None]:
21
+ try:
22
+ with open(path, "rb") as f:
23
+ yield ELFFile(f)
24
+ except (OSError, TypeError, ValueError):
25
+ yield None
26
+
27
+
28
+ def _is_linux_armhf(executable: str) -> bool:
29
+ # hard-float ABI can be detected from the ELF header of the running
30
+ # process
31
+ # https://static.docs.arm.com/ihi0044/g/aaelf32.pdf
32
+ with _parse_elf(executable) as f:
33
+ return (
34
+ f is not None
35
+ and f.capacity == EIClass.C32
36
+ and f.encoding == EIData.Lsb
37
+ and f.machine == EMachine.Arm
38
+ and f.flags & EF_ARM_ABIMASK == EF_ARM_ABI_VER5
39
+ and f.flags & EF_ARM_ABI_FLOAT_HARD == EF_ARM_ABI_FLOAT_HARD
40
+ )
41
+
42
+
43
+ def _is_linux_i686(executable: str) -> bool:
44
+ with _parse_elf(executable) as f:
45
+ return (
46
+ f is not None
47
+ and f.capacity == EIClass.C32
48
+ and f.encoding == EIData.Lsb
49
+ and f.machine == EMachine.I386
50
+ )
51
+
52
+
53
+ def _have_compatible_abi(executable: str, archs: Sequence[str]) -> bool:
54
+ if "armv7l" in archs:
55
+ return _is_linux_armhf(executable)
56
+ if "i686" in archs:
57
+ return _is_linux_i686(executable)
58
+ allowed_archs = {"x86_64", "aarch64", "ppc64", "ppc64le", "s390x", "loongarch64"}
59
+ return any(arch in allowed_archs for arch in archs)
60
+
61
+
62
+ # If glibc ever changes its major version, we need to know what the last
63
+ # minor version was, so we can build the complete list of all versions.
64
+ # For now, guess what the highest minor version might be, assume it will
65
+ # be 50 for testing. Once this actually happens, update the dictionary
66
+ # with the actual value.
67
+ _LAST_GLIBC_MINOR: Dict[int, int] = collections.defaultdict(lambda: 50)
68
+
69
+
70
+ class _GLibCVersion(NamedTuple):
71
+ major: int
72
+ minor: int
73
+
74
+
75
+ def _glibc_version_string_confstr() -> Optional[str]:
76
+ """
77
+ Primary implementation of glibc_version_string using os.confstr.
78
+ """
79
+ # os.confstr is quite a bit faster than ctypes.DLL. It's also less likely
80
+ # to be broken or missing. This strategy is used in the standard library
81
+ # platform module.
82
+ # https://github.com/python/cpython/blob/fcf1d003bf4f0100c/Lib/platform.py#L175-L183
83
+ try:
84
+ # Should be a string like "glibc 2.17".
85
+ version_string: str = getattr(os, "confstr")("CS_GNU_LIBC_VERSION")
86
+ assert version_string is not None
87
+ _, version = version_string.rsplit()
88
+ except (AssertionError, AttributeError, OSError, ValueError):
89
+ # os.confstr() or CS_GNU_LIBC_VERSION not available (or a bad value)...
90
+ return None
91
+ return version
92
+
93
+
94
+ def _glibc_version_string_ctypes() -> Optional[str]:
95
+ """
96
+ Fallback implementation of glibc_version_string using ctypes.
97
+ """
98
+ try:
99
+ import ctypes
100
+ except ImportError:
101
+ return None
102
+
103
+ # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
104
+ # manpage says, "If filename is NULL, then the returned handle is for the
105
+ # main program". This way we can let the linker do the work to figure out
106
+ # which libc our process is actually using.
107
+ #
108
+ # We must also handle the special case where the executable is not a
109
+ # dynamically linked executable. This can occur when using musl libc,
110
+ # for example. In this situation, dlopen() will error, leading to an
111
+ # OSError. Interestingly, at least in the case of musl, there is no
112
+ # errno set on the OSError. The single string argument used to construct
113
+ # OSError comes from libc itself and is therefore not portable to
114
+ # hard code here. In any case, failure to call dlopen() means we
115
+ # can proceed, so we bail on our attempt.
116
+ try:
117
+ process_namespace = ctypes.CDLL(None)
118
+ except OSError:
119
+ return None
120
+
121
+ try:
122
+ gnu_get_libc_version = process_namespace.gnu_get_libc_version
123
+ except AttributeError:
124
+ # Symbol doesn't exist -> therefore, we are not linked to
125
+ # glibc.
126
+ return None
127
+
128
+ # Call gnu_get_libc_version, which returns a string like "2.5"
129
+ gnu_get_libc_version.restype = ctypes.c_char_p
130
+ version_str: str = gnu_get_libc_version()
131
+ # py2 / py3 compatibility:
132
+ if not isinstance(version_str, str):
133
+ version_str = version_str.decode("ascii")
134
+
135
+ return version_str
136
+
137
+
138
+ def _glibc_version_string() -> Optional[str]:
139
+ """Returns glibc version string, or None if not using glibc."""
140
+ return _glibc_version_string_confstr() or _glibc_version_string_ctypes()
141
+
142
+
143
+ def _parse_glibc_version(version_str: str) -> Tuple[int, int]:
144
+ """Parse glibc version.
145
+
146
+ We use a regexp instead of str.split because we want to discard any
147
+ random junk that might come after the minor version -- this might happen
148
+ in patched/forked versions of glibc (e.g. Linaro's version of glibc
149
+ uses version strings like "2.20-2014.11"). See gh-3588.
150
+ """
151
+ m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
152
+ if not m:
153
+ warnings.warn(
154
+ f"Expected glibc version with 2 components major.minor,"
155
+ f" got: {version_str}",
156
+ RuntimeWarning,
157
+ )
158
+ return -1, -1
159
+ return int(m.group("major")), int(m.group("minor"))
160
+
161
+
162
+ @functools.lru_cache()
163
+ def _get_glibc_version() -> Tuple[int, int]:
164
+ version_str = _glibc_version_string()
165
+ if version_str is None:
166
+ return (-1, -1)
167
+ return _parse_glibc_version(version_str)
168
+
169
+
170
+ # From PEP 513, PEP 600
171
+ def _is_compatible(arch: str, version: _GLibCVersion) -> bool:
172
+ sys_glibc = _get_glibc_version()
173
+ if sys_glibc < version:
174
+ return False
175
+ # Check for presence of _manylinux module.
176
+ try:
177
+ import _manylinux # noqa
178
+ except ImportError:
179
+ return True
180
+ if hasattr(_manylinux, "manylinux_compatible"):
181
+ result = _manylinux.manylinux_compatible(version[0], version[1], arch)
182
+ if result is not None:
183
+ return bool(result)
184
+ return True
185
+ if version == _GLibCVersion(2, 5):
186
+ if hasattr(_manylinux, "manylinux1_compatible"):
187
+ return bool(_manylinux.manylinux1_compatible)
188
+ if version == _GLibCVersion(2, 12):
189
+ if hasattr(_manylinux, "manylinux2010_compatible"):
190
+ return bool(_manylinux.manylinux2010_compatible)
191
+ if version == _GLibCVersion(2, 17):
192
+ if hasattr(_manylinux, "manylinux2014_compatible"):
193
+ return bool(_manylinux.manylinux2014_compatible)
194
+ return True
195
+
196
+
197
+ _LEGACY_MANYLINUX_MAP = {
198
+ # CentOS 7 w/ glibc 2.17 (PEP 599)
199
+ (2, 17): "manylinux2014",
200
+ # CentOS 6 w/ glibc 2.12 (PEP 571)
201
+ (2, 12): "manylinux2010",
202
+ # CentOS 5 w/ glibc 2.5 (PEP 513)
203
+ (2, 5): "manylinux1",
204
+ }
205
+
206
+
207
+ def platform_tags(archs: Sequence[str]) -> Iterator[str]:
208
+ """Generate manylinux tags compatible to the current platform.
209
+
210
+ :param archs: Sequence of compatible architectures.
211
+ The first one shall be the closest to the actual architecture and be the part of
212
+ platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
213
+ The ``linux_`` prefix is assumed as a prerequisite for the current platform to
214
+ be manylinux-compatible.
215
+
216
+ :returns: An iterator of compatible manylinux tags.
217
+ """
218
+ if not _have_compatible_abi(sys.executable, archs):
219
+ return
220
+ # Oldest glibc to be supported regardless of architecture is (2, 17).
221
+ too_old_glibc2 = _GLibCVersion(2, 16)
222
+ if set(archs) & {"x86_64", "i686"}:
223
+ # On x86/i686 also oldest glibc to be supported is (2, 5).
224
+ too_old_glibc2 = _GLibCVersion(2, 4)
225
+ current_glibc = _GLibCVersion(*_get_glibc_version())
226
+ glibc_max_list = [current_glibc]
227
+ # We can assume compatibility across glibc major versions.
228
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24636
229
+ #
230
+ # Build a list of maximum glibc versions so that we can
231
+ # output the canonical list of all glibc from current_glibc
232
+ # down to too_old_glibc2, including all intermediary versions.
233
+ for glibc_major in range(current_glibc.major - 1, 1, -1):
234
+ glibc_minor = _LAST_GLIBC_MINOR[glibc_major]
235
+ glibc_max_list.append(_GLibCVersion(glibc_major, glibc_minor))
236
+ for arch in archs:
237
+ for glibc_max in glibc_max_list:
238
+ if glibc_max.major == too_old_glibc2.major:
239
+ min_minor = too_old_glibc2.minor
240
+ else:
241
+ # For other glibc major versions oldest supported is (x, 0).
242
+ min_minor = -1
243
+ for glibc_minor in range(glibc_max.minor, min_minor, -1):
244
+ glibc_version = _GLibCVersion(glibc_max.major, glibc_minor)
245
+ tag = "manylinux_{}_{}".format(*glibc_version)
246
+ if _is_compatible(arch, glibc_version):
247
+ yield f"{tag}_{arch}"
248
+ # Handle the legacy manylinux1, manylinux2010, manylinux2014 tags.
249
+ if glibc_version in _LEGACY_MANYLINUX_MAP:
250
+ legacy_tag = _LEGACY_MANYLINUX_MAP[glibc_version]
251
+ if _is_compatible(arch, glibc_version):
252
+ yield f"{legacy_tag}_{arch}"
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_musllinux.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """PEP 656 support.
2
+
3
+ This module implements logic to detect if the currently running Python is
4
+ linked against musl, and what musl version is used.
5
+ """
6
+
7
+ import functools
8
+ import re
9
+ import subprocess
10
+ import sys
11
+ from typing import Iterator, NamedTuple, Optional, Sequence
12
+
13
+ from ._elffile import ELFFile
14
+
15
+
16
+ class _MuslVersion(NamedTuple):
17
+ major: int
18
+ minor: int
19
+
20
+
21
+ def _parse_musl_version(output: str) -> Optional[_MuslVersion]:
22
+ lines = [n for n in (n.strip() for n in output.splitlines()) if n]
23
+ if len(lines) < 2 or lines[0][:4] != "musl":
24
+ return None
25
+ m = re.match(r"Version (\d+)\.(\d+)", lines[1])
26
+ if not m:
27
+ return None
28
+ return _MuslVersion(major=int(m.group(1)), minor=int(m.group(2)))
29
+
30
+
31
+ @functools.lru_cache()
32
+ def _get_musl_version(executable: str) -> Optional[_MuslVersion]:
33
+ """Detect currently-running musl runtime version.
34
+
35
+ This is done by checking the specified executable's dynamic linking
36
+ information, and invoking the loader to parse its output for a version
37
+ string. If the loader is musl, the output would be something like::
38
+
39
+ musl libc (x86_64)
40
+ Version 1.2.2
41
+ Dynamic Program Loader
42
+ """
43
+ try:
44
+ with open(executable, "rb") as f:
45
+ ld = ELFFile(f).interpreter
46
+ except (OSError, TypeError, ValueError):
47
+ return None
48
+ if ld is None or "musl" not in ld:
49
+ return None
50
+ proc = subprocess.run([ld], stderr=subprocess.PIPE, text=True)
51
+ return _parse_musl_version(proc.stderr)
52
+
53
+
54
+ def platform_tags(archs: Sequence[str]) -> Iterator[str]:
55
+ """Generate musllinux tags compatible to the current platform.
56
+
57
+ :param archs: Sequence of compatible architectures.
58
+ The first one shall be the closest to the actual architecture and be the part of
59
+ platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
60
+ The ``linux_`` prefix is assumed as a prerequisite for the current platform to
61
+ be musllinux-compatible.
62
+
63
+ :returns: An iterator of compatible musllinux tags.
64
+ """
65
+ sys_musl = _get_musl_version(sys.executable)
66
+ if sys_musl is None: # Python not dynamically linked against musl.
67
+ return
68
+ for arch in archs:
69
+ for minor in range(sys_musl.minor, -1, -1):
70
+ yield f"musllinux_{sys_musl.major}_{minor}_{arch}"
71
+
72
+
73
+ if __name__ == "__main__": # pragma: no cover
74
+ import sysconfig
75
+
76
+ plat = sysconfig.get_platform()
77
+ assert plat.startswith("linux-"), "not linux"
78
+
79
+ print("plat:", plat)
80
+ print("musl:", _get_musl_version(sys.executable))
81
+ print("tags:", end=" ")
82
+ for t in platform_tags(re.sub(r"[.-]", "_", plat.split("-", 1)[-1])):
83
+ print(t, end="\n ")
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_parser.py ADDED
@@ -0,0 +1,359 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Handwritten parser of dependency specifiers.
2
+
3
+ The docstring for each __parse_* function contains ENBF-inspired grammar representing
4
+ the implementation.
5
+ """
6
+
7
+ import ast
8
+ from typing import Any, List, NamedTuple, Optional, Tuple, Union
9
+
10
+ from ._tokenizer import DEFAULT_RULES, Tokenizer
11
+
12
+
13
+ class Node:
14
+ def __init__(self, value: str) -> None:
15
+ self.value = value
16
+
17
+ def __str__(self) -> str:
18
+ return self.value
19
+
20
+ def __repr__(self) -> str:
21
+ return f"<{self.__class__.__name__}('{self}')>"
22
+
23
+ def serialize(self) -> str:
24
+ raise NotImplementedError
25
+
26
+
27
+ class Variable(Node):
28
+ def serialize(self) -> str:
29
+ return str(self)
30
+
31
+
32
+ class Value(Node):
33
+ def serialize(self) -> str:
34
+ return f'"{self}"'
35
+
36
+
37
+ class Op(Node):
38
+ def serialize(self) -> str:
39
+ return str(self)
40
+
41
+
42
+ MarkerVar = Union[Variable, Value]
43
+ MarkerItem = Tuple[MarkerVar, Op, MarkerVar]
44
+ # MarkerAtom = Union[MarkerItem, List["MarkerAtom"]]
45
+ # MarkerList = List[Union["MarkerList", MarkerAtom, str]]
46
+ # mypy does not support recursive type definition
47
+ # https://github.com/python/mypy/issues/731
48
+ MarkerAtom = Any
49
+ MarkerList = List[Any]
50
+
51
+
52
+ class ParsedRequirement(NamedTuple):
53
+ name: str
54
+ url: str
55
+ extras: List[str]
56
+ specifier: str
57
+ marker: Optional[MarkerList]
58
+
59
+
60
+ # --------------------------------------------------------------------------------------
61
+ # Recursive descent parser for dependency specifier
62
+ # --------------------------------------------------------------------------------------
63
+ def parse_requirement(source: str) -> ParsedRequirement:
64
+ return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
65
+
66
+
67
+ def _parse_requirement(tokenizer: Tokenizer) -> ParsedRequirement:
68
+ """
69
+ requirement = WS? IDENTIFIER WS? extras WS? requirement_details
70
+ """
71
+ tokenizer.consume("WS")
72
+
73
+ name_token = tokenizer.expect(
74
+ "IDENTIFIER", expected="package name at the start of dependency specifier"
75
+ )
76
+ name = name_token.text
77
+ tokenizer.consume("WS")
78
+
79
+ extras = _parse_extras(tokenizer)
80
+ tokenizer.consume("WS")
81
+
82
+ url, specifier, marker = _parse_requirement_details(tokenizer)
83
+ tokenizer.expect("END", expected="end of dependency specifier")
84
+
85
+ return ParsedRequirement(name, url, extras, specifier, marker)
86
+
87
+
88
+ def _parse_requirement_details(
89
+ tokenizer: Tokenizer,
90
+ ) -> Tuple[str, str, Optional[MarkerList]]:
91
+ """
92
+ requirement_details = AT URL (WS requirement_marker?)?
93
+ | specifier WS? (requirement_marker)?
94
+ """
95
+
96
+ specifier = ""
97
+ url = ""
98
+ marker = None
99
+
100
+ if tokenizer.check("AT"):
101
+ tokenizer.read()
102
+ tokenizer.consume("WS")
103
+
104
+ url_start = tokenizer.position
105
+ url = tokenizer.expect("URL", expected="URL after @").text
106
+ if tokenizer.check("END", peek=True):
107
+ return (url, specifier, marker)
108
+
109
+ tokenizer.expect("WS", expected="whitespace after URL")
110
+
111
+ # The input might end after whitespace.
112
+ if tokenizer.check("END", peek=True):
113
+ return (url, specifier, marker)
114
+
115
+ marker = _parse_requirement_marker(
116
+ tokenizer, span_start=url_start, after="URL and whitespace"
117
+ )
118
+ else:
119
+ specifier_start = tokenizer.position
120
+ specifier = _parse_specifier(tokenizer)
121
+ tokenizer.consume("WS")
122
+
123
+ if tokenizer.check("END", peek=True):
124
+ return (url, specifier, marker)
125
+
126
+ marker = _parse_requirement_marker(
127
+ tokenizer,
128
+ span_start=specifier_start,
129
+ after=(
130
+ "version specifier"
131
+ if specifier
132
+ else "name and no valid version specifier"
133
+ ),
134
+ )
135
+
136
+ return (url, specifier, marker)
137
+
138
+
139
+ def _parse_requirement_marker(
140
+ tokenizer: Tokenizer, *, span_start: int, after: str
141
+ ) -> MarkerList:
142
+ """
143
+ requirement_marker = SEMICOLON marker WS?
144
+ """
145
+
146
+ if not tokenizer.check("SEMICOLON"):
147
+ tokenizer.raise_syntax_error(
148
+ f"Expected end or semicolon (after {after})",
149
+ span_start=span_start,
150
+ )
151
+ tokenizer.read()
152
+
153
+ marker = _parse_marker(tokenizer)
154
+ tokenizer.consume("WS")
155
+
156
+ return marker
157
+
158
+
159
+ def _parse_extras(tokenizer: Tokenizer) -> List[str]:
160
+ """
161
+ extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
162
+ """
163
+ if not tokenizer.check("LEFT_BRACKET", peek=True):
164
+ return []
165
+
166
+ with tokenizer.enclosing_tokens(
167
+ "LEFT_BRACKET",
168
+ "RIGHT_BRACKET",
169
+ around="extras",
170
+ ):
171
+ tokenizer.consume("WS")
172
+ extras = _parse_extras_list(tokenizer)
173
+ tokenizer.consume("WS")
174
+
175
+ return extras
176
+
177
+
178
+ def _parse_extras_list(tokenizer: Tokenizer) -> List[str]:
179
+ """
180
+ extras_list = identifier (wsp* ',' wsp* identifier)*
181
+ """
182
+ extras: List[str] = []
183
+
184
+ if not tokenizer.check("IDENTIFIER"):
185
+ return extras
186
+
187
+ extras.append(tokenizer.read().text)
188
+
189
+ while True:
190
+ tokenizer.consume("WS")
191
+ if tokenizer.check("IDENTIFIER", peek=True):
192
+ tokenizer.raise_syntax_error("Expected comma between extra names")
193
+ elif not tokenizer.check("COMMA"):
194
+ break
195
+
196
+ tokenizer.read()
197
+ tokenizer.consume("WS")
198
+
199
+ extra_token = tokenizer.expect("IDENTIFIER", expected="extra name after comma")
200
+ extras.append(extra_token.text)
201
+
202
+ return extras
203
+
204
+
205
+ def _parse_specifier(tokenizer: Tokenizer) -> str:
206
+ """
207
+ specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
208
+ | WS? version_many WS?
209
+ """
210
+ with tokenizer.enclosing_tokens(
211
+ "LEFT_PARENTHESIS",
212
+ "RIGHT_PARENTHESIS",
213
+ around="version specifier",
214
+ ):
215
+ tokenizer.consume("WS")
216
+ parsed_specifiers = _parse_version_many(tokenizer)
217
+ tokenizer.consume("WS")
218
+
219
+ return parsed_specifiers
220
+
221
+
222
+ def _parse_version_many(tokenizer: Tokenizer) -> str:
223
+ """
224
+ version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
225
+ """
226
+ parsed_specifiers = ""
227
+ while tokenizer.check("SPECIFIER"):
228
+ span_start = tokenizer.position
229
+ parsed_specifiers += tokenizer.read().text
230
+ if tokenizer.check("VERSION_PREFIX_TRAIL", peek=True):
231
+ tokenizer.raise_syntax_error(
232
+ ".* suffix can only be used with `==` or `!=` operators",
233
+ span_start=span_start,
234
+ span_end=tokenizer.position + 1,
235
+ )
236
+ if tokenizer.check("VERSION_LOCAL_LABEL_TRAIL", peek=True):
237
+ tokenizer.raise_syntax_error(
238
+ "Local version label can only be used with `==` or `!=` operators",
239
+ span_start=span_start,
240
+ span_end=tokenizer.position,
241
+ )
242
+ tokenizer.consume("WS")
243
+ if not tokenizer.check("COMMA"):
244
+ break
245
+ parsed_specifiers += tokenizer.read().text
246
+ tokenizer.consume("WS")
247
+
248
+ return parsed_specifiers
249
+
250
+
251
+ # --------------------------------------------------------------------------------------
252
+ # Recursive descent parser for marker expression
253
+ # --------------------------------------------------------------------------------------
254
+ def parse_marker(source: str) -> MarkerList:
255
+ return _parse_full_marker(Tokenizer(source, rules=DEFAULT_RULES))
256
+
257
+
258
+ def _parse_full_marker(tokenizer: Tokenizer) -> MarkerList:
259
+ retval = _parse_marker(tokenizer)
260
+ tokenizer.expect("END", expected="end of marker expression")
261
+ return retval
262
+
263
+
264
+ def _parse_marker(tokenizer: Tokenizer) -> MarkerList:
265
+ """
266
+ marker = marker_atom (BOOLOP marker_atom)+
267
+ """
268
+ expression = [_parse_marker_atom(tokenizer)]
269
+ while tokenizer.check("BOOLOP"):
270
+ token = tokenizer.read()
271
+ expr_right = _parse_marker_atom(tokenizer)
272
+ expression.extend((token.text, expr_right))
273
+ return expression
274
+
275
+
276
+ def _parse_marker_atom(tokenizer: Tokenizer) -> MarkerAtom:
277
+ """
278
+ marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
279
+ | WS? marker_item WS?
280
+ """
281
+
282
+ tokenizer.consume("WS")
283
+ if tokenizer.check("LEFT_PARENTHESIS", peek=True):
284
+ with tokenizer.enclosing_tokens(
285
+ "LEFT_PARENTHESIS",
286
+ "RIGHT_PARENTHESIS",
287
+ around="marker expression",
288
+ ):
289
+ tokenizer.consume("WS")
290
+ marker: MarkerAtom = _parse_marker(tokenizer)
291
+ tokenizer.consume("WS")
292
+ else:
293
+ marker = _parse_marker_item(tokenizer)
294
+ tokenizer.consume("WS")
295
+ return marker
296
+
297
+
298
+ def _parse_marker_item(tokenizer: Tokenizer) -> MarkerItem:
299
+ """
300
+ marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
301
+ """
302
+ tokenizer.consume("WS")
303
+ marker_var_left = _parse_marker_var(tokenizer)
304
+ tokenizer.consume("WS")
305
+ marker_op = _parse_marker_op(tokenizer)
306
+ tokenizer.consume("WS")
307
+ marker_var_right = _parse_marker_var(tokenizer)
308
+ tokenizer.consume("WS")
309
+ return (marker_var_left, marker_op, marker_var_right)
310
+
311
+
312
+ def _parse_marker_var(tokenizer: Tokenizer) -> MarkerVar:
313
+ """
314
+ marker_var = VARIABLE | QUOTED_STRING
315
+ """
316
+ if tokenizer.check("VARIABLE"):
317
+ return process_env_var(tokenizer.read().text.replace(".", "_"))
318
+ elif tokenizer.check("QUOTED_STRING"):
319
+ return process_python_str(tokenizer.read().text)
320
+ else:
321
+ tokenizer.raise_syntax_error(
322
+ message="Expected a marker variable or quoted string"
323
+ )
324
+
325
+
326
+ def process_env_var(env_var: str) -> Variable:
327
+ if (
328
+ env_var == "platform_python_implementation"
329
+ or env_var == "python_implementation"
330
+ ):
331
+ return Variable("platform_python_implementation")
332
+ else:
333
+ return Variable(env_var)
334
+
335
+
336
+ def process_python_str(python_str: str) -> Value:
337
+ value = ast.literal_eval(python_str)
338
+ return Value(str(value))
339
+
340
+
341
+ def _parse_marker_op(tokenizer: Tokenizer) -> Op:
342
+ """
343
+ marker_op = IN | NOT IN | OP
344
+ """
345
+ if tokenizer.check("IN"):
346
+ tokenizer.read()
347
+ return Op("in")
348
+ elif tokenizer.check("NOT"):
349
+ tokenizer.read()
350
+ tokenizer.expect("WS", expected="whitespace after 'not'")
351
+ tokenizer.expect("IN", expected="'in' after 'not'")
352
+ return Op("not in")
353
+ elif tokenizer.check("OP"):
354
+ return Op(tokenizer.read().text)
355
+ else:
356
+ return tokenizer.raise_syntax_error(
357
+ "Expected marker operator, one of "
358
+ "<=, <, !=, ==, >=, >, ~=, ===, in, not in"
359
+ )
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_structures.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+
6
+ class InfinityType:
7
+ def __repr__(self) -> str:
8
+ return "Infinity"
9
+
10
+ def __hash__(self) -> int:
11
+ return hash(repr(self))
12
+
13
+ def __lt__(self, other: object) -> bool:
14
+ return False
15
+
16
+ def __le__(self, other: object) -> bool:
17
+ return False
18
+
19
+ def __eq__(self, other: object) -> bool:
20
+ return isinstance(other, self.__class__)
21
+
22
+ def __gt__(self, other: object) -> bool:
23
+ return True
24
+
25
+ def __ge__(self, other: object) -> bool:
26
+ return True
27
+
28
+ def __neg__(self: object) -> "NegativeInfinityType":
29
+ return NegativeInfinity
30
+
31
+
32
+ Infinity = InfinityType()
33
+
34
+
35
+ class NegativeInfinityType:
36
+ def __repr__(self) -> str:
37
+ return "-Infinity"
38
+
39
+ def __hash__(self) -> int:
40
+ return hash(repr(self))
41
+
42
+ def __lt__(self, other: object) -> bool:
43
+ return True
44
+
45
+ def __le__(self, other: object) -> bool:
46
+ return True
47
+
48
+ def __eq__(self, other: object) -> bool:
49
+ return isinstance(other, self.__class__)
50
+
51
+ def __gt__(self, other: object) -> bool:
52
+ return False
53
+
54
+ def __ge__(self, other: object) -> bool:
55
+ return False
56
+
57
+ def __neg__(self: object) -> InfinityType:
58
+ return Infinity
59
+
60
+
61
+ NegativeInfinity = NegativeInfinityType()
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import contextlib
2
+ import re
3
+ from dataclasses import dataclass
4
+ from typing import Dict, Iterator, NoReturn, Optional, Tuple, Union
5
+
6
+ from .specifiers import Specifier
7
+
8
+
9
+ @dataclass
10
+ class Token:
11
+ name: str
12
+ text: str
13
+ position: int
14
+
15
+
16
+ class ParserSyntaxError(Exception):
17
+ """The provided source text could not be parsed correctly."""
18
+
19
+ def __init__(
20
+ self,
21
+ message: str,
22
+ *,
23
+ source: str,
24
+ span: Tuple[int, int],
25
+ ) -> None:
26
+ self.span = span
27
+ self.message = message
28
+ self.source = source
29
+
30
+ super().__init__()
31
+
32
+ def __str__(self) -> str:
33
+ marker = " " * self.span[0] + "~" * (self.span[1] - self.span[0]) + "^"
34
+ return "\n ".join([self.message, self.source, marker])
35
+
36
+
37
+ DEFAULT_RULES: "Dict[str, Union[str, re.Pattern[str]]]" = {
38
+ "LEFT_PARENTHESIS": r"\(",
39
+ "RIGHT_PARENTHESIS": r"\)",
40
+ "LEFT_BRACKET": r"\[",
41
+ "RIGHT_BRACKET": r"\]",
42
+ "SEMICOLON": r";",
43
+ "COMMA": r",",
44
+ "QUOTED_STRING": re.compile(
45
+ r"""
46
+ (
47
+ ('[^']*')
48
+ |
49
+ ("[^"]*")
50
+ )
51
+ """,
52
+ re.VERBOSE,
53
+ ),
54
+ "OP": r"(===|==|~=|!=|<=|>=|<|>)",
55
+ "BOOLOP": r"\b(or|and)\b",
56
+ "IN": r"\bin\b",
57
+ "NOT": r"\bnot\b",
58
+ "VARIABLE": re.compile(
59
+ r"""
60
+ \b(
61
+ python_version
62
+ |python_full_version
63
+ |os[._]name
64
+ |sys[._]platform
65
+ |platform_(release|system)
66
+ |platform[._](version|machine|python_implementation)
67
+ |python_implementation
68
+ |implementation_(name|version)
69
+ |extra
70
+ )\b
71
+ """,
72
+ re.VERBOSE,
73
+ ),
74
+ "SPECIFIER": re.compile(
75
+ Specifier._operator_regex_str + Specifier._version_regex_str,
76
+ re.VERBOSE | re.IGNORECASE,
77
+ ),
78
+ "AT": r"\@",
79
+ "URL": r"[^ \t]+",
80
+ "IDENTIFIER": r"\b[a-zA-Z0-9][a-zA-Z0-9._-]*\b",
81
+ "VERSION_PREFIX_TRAIL": r"\.\*",
82
+ "VERSION_LOCAL_LABEL_TRAIL": r"\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*",
83
+ "WS": r"[ \t]+",
84
+ "END": r"$",
85
+ }
86
+
87
+
88
+ class Tokenizer:
89
+ """Context-sensitive token parsing.
90
+
91
+ Provides methods to examine the input stream to check whether the next token
92
+ matches.
93
+ """
94
+
95
+ def __init__(
96
+ self,
97
+ source: str,
98
+ *,
99
+ rules: "Dict[str, Union[str, re.Pattern[str]]]",
100
+ ) -> None:
101
+ self.source = source
102
+ self.rules: Dict[str, re.Pattern[str]] = {
103
+ name: re.compile(pattern) for name, pattern in rules.items()
104
+ }
105
+ self.next_token: Optional[Token] = None
106
+ self.position = 0
107
+
108
+ def consume(self, name: str) -> None:
109
+ """Move beyond provided token name, if at current position."""
110
+ if self.check(name):
111
+ self.read()
112
+
113
+ def check(self, name: str, *, peek: bool = False) -> bool:
114
+ """Check whether the next token has the provided name.
115
+
116
+ By default, if the check succeeds, the token *must* be read before
117
+ another check. If `peek` is set to `True`, the token is not loaded and
118
+ would need to be checked again.
119
+ """
120
+ assert (
121
+ self.next_token is None
122
+ ), f"Cannot check for {name!r}, already have {self.next_token!r}"
123
+ assert name in self.rules, f"Unknown token name: {name!r}"
124
+
125
+ expression = self.rules[name]
126
+
127
+ match = expression.match(self.source, self.position)
128
+ if match is None:
129
+ return False
130
+ if not peek:
131
+ self.next_token = Token(name, match[0], self.position)
132
+ return True
133
+
134
+ def expect(self, name: str, *, expected: str) -> Token:
135
+ """Expect a certain token name next, failing with a syntax error otherwise.
136
+
137
+ The token is *not* read.
138
+ """
139
+ if not self.check(name):
140
+ raise self.raise_syntax_error(f"Expected {expected}")
141
+ return self.read()
142
+
143
+ def read(self) -> Token:
144
+ """Consume the next token and return it."""
145
+ token = self.next_token
146
+ assert token is not None
147
+
148
+ self.position += len(token.text)
149
+ self.next_token = None
150
+
151
+ return token
152
+
153
+ def raise_syntax_error(
154
+ self,
155
+ message: str,
156
+ *,
157
+ span_start: Optional[int] = None,
158
+ span_end: Optional[int] = None,
159
+ ) -> NoReturn:
160
+ """Raise ParserSyntaxError at the given position."""
161
+ span = (
162
+ self.position if span_start is None else span_start,
163
+ self.position if span_end is None else span_end,
164
+ )
165
+ raise ParserSyntaxError(
166
+ message,
167
+ source=self.source,
168
+ span=span,
169
+ )
170
+
171
+ @contextlib.contextmanager
172
+ def enclosing_tokens(
173
+ self, open_token: str, close_token: str, *, around: str
174
+ ) -> Iterator[None]:
175
+ if self.check(open_token):
176
+ open_position = self.position
177
+ self.read()
178
+ else:
179
+ open_position = None
180
+
181
+ yield
182
+
183
+ if open_position is None:
184
+ return
185
+
186
+ if not self.check(close_token):
187
+ self.raise_syntax_error(
188
+ f"Expected matching {close_token} for {open_token}, after {around}",
189
+ span_start=open_position,
190
+ )
191
+
192
+ self.read()
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/markers.py ADDED
@@ -0,0 +1,252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ import operator
6
+ import os
7
+ import platform
8
+ import sys
9
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
10
+
11
+ from ._parser import (
12
+ MarkerAtom,
13
+ MarkerList,
14
+ Op,
15
+ Value,
16
+ Variable,
17
+ parse_marker as _parse_marker,
18
+ )
19
+ from ._tokenizer import ParserSyntaxError
20
+ from .specifiers import InvalidSpecifier, Specifier
21
+ from .utils import canonicalize_name
22
+
23
+ __all__ = [
24
+ "InvalidMarker",
25
+ "UndefinedComparison",
26
+ "UndefinedEnvironmentName",
27
+ "Marker",
28
+ "default_environment",
29
+ ]
30
+
31
+ Operator = Callable[[str, str], bool]
32
+
33
+
34
+ class InvalidMarker(ValueError):
35
+ """
36
+ An invalid marker was found, users should refer to PEP 508.
37
+ """
38
+
39
+
40
+ class UndefinedComparison(ValueError):
41
+ """
42
+ An invalid operation was attempted on a value that doesn't support it.
43
+ """
44
+
45
+
46
+ class UndefinedEnvironmentName(ValueError):
47
+ """
48
+ A name was attempted to be used that does not exist inside of the
49
+ environment.
50
+ """
51
+
52
+
53
+ def _normalize_extra_values(results: Any) -> Any:
54
+ """
55
+ Normalize extra values.
56
+ """
57
+ if isinstance(results[0], tuple):
58
+ lhs, op, rhs = results[0]
59
+ if isinstance(lhs, Variable) and lhs.value == "extra":
60
+ normalized_extra = canonicalize_name(rhs.value)
61
+ rhs = Value(normalized_extra)
62
+ elif isinstance(rhs, Variable) and rhs.value == "extra":
63
+ normalized_extra = canonicalize_name(lhs.value)
64
+ lhs = Value(normalized_extra)
65
+ results[0] = lhs, op, rhs
66
+ return results
67
+
68
+
69
+ def _format_marker(
70
+ marker: Union[List[str], MarkerAtom, str], first: Optional[bool] = True
71
+ ) -> str:
72
+
73
+ assert isinstance(marker, (list, tuple, str))
74
+
75
+ # Sometimes we have a structure like [[...]] which is a single item list
76
+ # where the single item is itself it's own list. In that case we want skip
77
+ # the rest of this function so that we don't get extraneous () on the
78
+ # outside.
79
+ if (
80
+ isinstance(marker, list)
81
+ and len(marker) == 1
82
+ and isinstance(marker[0], (list, tuple))
83
+ ):
84
+ return _format_marker(marker[0])
85
+
86
+ if isinstance(marker, list):
87
+ inner = (_format_marker(m, first=False) for m in marker)
88
+ if first:
89
+ return " ".join(inner)
90
+ else:
91
+ return "(" + " ".join(inner) + ")"
92
+ elif isinstance(marker, tuple):
93
+ return " ".join([m.serialize() for m in marker])
94
+ else:
95
+ return marker
96
+
97
+
98
+ _operators: Dict[str, Operator] = {
99
+ "in": lambda lhs, rhs: lhs in rhs,
100
+ "not in": lambda lhs, rhs: lhs not in rhs,
101
+ "<": operator.lt,
102
+ "<=": operator.le,
103
+ "==": operator.eq,
104
+ "!=": operator.ne,
105
+ ">=": operator.ge,
106
+ ">": operator.gt,
107
+ }
108
+
109
+
110
+ def _eval_op(lhs: str, op: Op, rhs: str) -> bool:
111
+ try:
112
+ spec = Specifier("".join([op.serialize(), rhs]))
113
+ except InvalidSpecifier:
114
+ pass
115
+ else:
116
+ return spec.contains(lhs, prereleases=True)
117
+
118
+ oper: Optional[Operator] = _operators.get(op.serialize())
119
+ if oper is None:
120
+ raise UndefinedComparison(f"Undefined {op!r} on {lhs!r} and {rhs!r}.")
121
+
122
+ return oper(lhs, rhs)
123
+
124
+
125
+ def _normalize(*values: str, key: str) -> Tuple[str, ...]:
126
+ # PEP 685 – Comparison of extra names for optional distribution dependencies
127
+ # https://peps.python.org/pep-0685/
128
+ # > When comparing extra names, tools MUST normalize the names being
129
+ # > compared using the semantics outlined in PEP 503 for names
130
+ if key == "extra":
131
+ return tuple(canonicalize_name(v) for v in values)
132
+
133
+ # other environment markers don't have such standards
134
+ return values
135
+
136
+
137
+ def _evaluate_markers(markers: MarkerList, environment: Dict[str, str]) -> bool:
138
+ groups: List[List[bool]] = [[]]
139
+
140
+ for marker in markers:
141
+ assert isinstance(marker, (list, tuple, str))
142
+
143
+ if isinstance(marker, list):
144
+ groups[-1].append(_evaluate_markers(marker, environment))
145
+ elif isinstance(marker, tuple):
146
+ lhs, op, rhs = marker
147
+
148
+ if isinstance(lhs, Variable):
149
+ environment_key = lhs.value
150
+ lhs_value = environment[environment_key]
151
+ rhs_value = rhs.value
152
+ else:
153
+ lhs_value = lhs.value
154
+ environment_key = rhs.value
155
+ rhs_value = environment[environment_key]
156
+
157
+ lhs_value, rhs_value = _normalize(lhs_value, rhs_value, key=environment_key)
158
+ groups[-1].append(_eval_op(lhs_value, op, rhs_value))
159
+ else:
160
+ assert marker in ["and", "or"]
161
+ if marker == "or":
162
+ groups.append([])
163
+
164
+ return any(all(item) for item in groups)
165
+
166
+
167
+ def format_full_version(info: "sys._version_info") -> str:
168
+ version = "{0.major}.{0.minor}.{0.micro}".format(info)
169
+ kind = info.releaselevel
170
+ if kind != "final":
171
+ version += kind[0] + str(info.serial)
172
+ return version
173
+
174
+
175
+ def default_environment() -> Dict[str, str]:
176
+ iver = format_full_version(sys.implementation.version)
177
+ implementation_name = sys.implementation.name
178
+ return {
179
+ "implementation_name": implementation_name,
180
+ "implementation_version": iver,
181
+ "os_name": os.name,
182
+ "platform_machine": platform.machine(),
183
+ "platform_release": platform.release(),
184
+ "platform_system": platform.system(),
185
+ "platform_version": platform.version(),
186
+ "python_full_version": platform.python_version(),
187
+ "platform_python_implementation": platform.python_implementation(),
188
+ "python_version": ".".join(platform.python_version_tuple()[:2]),
189
+ "sys_platform": sys.platform,
190
+ }
191
+
192
+
193
+ class Marker:
194
+ def __init__(self, marker: str) -> None:
195
+ # Note: We create a Marker object without calling this constructor in
196
+ # packaging.requirements.Requirement. If any additional logic is
197
+ # added here, make sure to mirror/adapt Requirement.
198
+ try:
199
+ self._markers = _normalize_extra_values(_parse_marker(marker))
200
+ # The attribute `_markers` can be described in terms of a recursive type:
201
+ # MarkerList = List[Union[Tuple[Node, ...], str, MarkerList]]
202
+ #
203
+ # For example, the following expression:
204
+ # python_version > "3.6" or (python_version == "3.6" and os_name == "unix")
205
+ #
206
+ # is parsed into:
207
+ # [
208
+ # (<Variable('python_version')>, <Op('>')>, <Value('3.6')>),
209
+ # 'and',
210
+ # [
211
+ # (<Variable('python_version')>, <Op('==')>, <Value('3.6')>),
212
+ # 'or',
213
+ # (<Variable('os_name')>, <Op('==')>, <Value('unix')>)
214
+ # ]
215
+ # ]
216
+ except ParserSyntaxError as e:
217
+ raise InvalidMarker(str(e)) from e
218
+
219
+ def __str__(self) -> str:
220
+ return _format_marker(self._markers)
221
+
222
+ def __repr__(self) -> str:
223
+ return f"<Marker('{self}')>"
224
+
225
+ def __hash__(self) -> int:
226
+ return hash((self.__class__.__name__, str(self)))
227
+
228
+ def __eq__(self, other: Any) -> bool:
229
+ if not isinstance(other, Marker):
230
+ return NotImplemented
231
+
232
+ return str(self) == str(other)
233
+
234
+ def evaluate(self, environment: Optional[Dict[str, str]] = None) -> bool:
235
+ """Evaluate a marker.
236
+
237
+ Return the boolean from evaluating the given marker against the
238
+ environment. environment is an optional argument to override all or
239
+ part of the determined environment.
240
+
241
+ The environment is determined from the current Python process.
242
+ """
243
+ current_environment = default_environment()
244
+ current_environment["extra"] = ""
245
+ if environment is not None:
246
+ current_environment.update(environment)
247
+ # The API used to allow setting extra to None. We need to handle this
248
+ # case for backwards compatibility.
249
+ if current_environment["extra"] is None:
250
+ current_environment["extra"] = ""
251
+
252
+ return _evaluate_markers(self._markers, current_environment)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/metadata.py ADDED
@@ -0,0 +1,822 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import email.feedparser
2
+ import email.header
3
+ import email.message
4
+ import email.parser
5
+ import email.policy
6
+ import sys
7
+ import typing
8
+ from typing import (
9
+ Any,
10
+ Callable,
11
+ Dict,
12
+ Generic,
13
+ List,
14
+ Optional,
15
+ Tuple,
16
+ Type,
17
+ Union,
18
+ cast,
19
+ )
20
+
21
+ from . import requirements, specifiers, utils, version as version_module
22
+
23
+ T = typing.TypeVar("T")
24
+ if sys.version_info[:2] >= (3, 8): # pragma: no cover
25
+ from typing import Literal, TypedDict
26
+ else: # pragma: no cover
27
+ if typing.TYPE_CHECKING:
28
+ from typing_extensions import Literal, TypedDict
29
+ else:
30
+ try:
31
+ from typing_extensions import Literal, TypedDict
32
+ except ImportError:
33
+
34
+ class Literal:
35
+ def __init_subclass__(*_args, **_kwargs):
36
+ pass
37
+
38
+ class TypedDict:
39
+ def __init_subclass__(*_args, **_kwargs):
40
+ pass
41
+
42
+
43
+ try:
44
+ ExceptionGroup = __builtins__.ExceptionGroup # type: ignore[attr-defined]
45
+ except AttributeError:
46
+
47
+ class ExceptionGroup(Exception): # type: ignore[no-redef] # noqa: N818
48
+ """A minimal implementation of :external:exc:`ExceptionGroup` from Python 3.11.
49
+
50
+ If :external:exc:`ExceptionGroup` is already defined by Python itself,
51
+ that version is used instead.
52
+ """
53
+
54
+ message: str
55
+ exceptions: List[Exception]
56
+
57
+ def __init__(self, message: str, exceptions: List[Exception]) -> None:
58
+ self.message = message
59
+ self.exceptions = exceptions
60
+
61
+ def __repr__(self) -> str:
62
+ return f"{self.__class__.__name__}({self.message!r}, {self.exceptions!r})"
63
+
64
+
65
+ class InvalidMetadata(ValueError):
66
+ """A metadata field contains invalid data."""
67
+
68
+ field: str
69
+ """The name of the field that contains invalid data."""
70
+
71
+ def __init__(self, field: str, message: str) -> None:
72
+ self.field = field
73
+ super().__init__(message)
74
+
75
+
76
+ # The RawMetadata class attempts to make as few assumptions about the underlying
77
+ # serialization formats as possible. The idea is that as long as a serialization
78
+ # formats offer some very basic primitives in *some* way then we can support
79
+ # serializing to and from that format.
80
+ class RawMetadata(TypedDict, total=False):
81
+ """A dictionary of raw core metadata.
82
+
83
+ Each field in core metadata maps to a key of this dictionary (when data is
84
+ provided). The key is lower-case and underscores are used instead of dashes
85
+ compared to the equivalent core metadata field. Any core metadata field that
86
+ can be specified multiple times or can hold multiple values in a single
87
+ field have a key with a plural name. See :class:`Metadata` whose attributes
88
+ match the keys of this dictionary.
89
+
90
+ Core metadata fields that can be specified multiple times are stored as a
91
+ list or dict depending on which is appropriate for the field. Any fields
92
+ which hold multiple values in a single field are stored as a list.
93
+
94
+ """
95
+
96
+ # Metadata 1.0 - PEP 241
97
+ metadata_version: str
98
+ name: str
99
+ version: str
100
+ platforms: List[str]
101
+ summary: str
102
+ description: str
103
+ keywords: List[str]
104
+ home_page: str
105
+ author: str
106
+ author_email: str
107
+ license: str
108
+
109
+ # Metadata 1.1 - PEP 314
110
+ supported_platforms: List[str]
111
+ download_url: str
112
+ classifiers: List[str]
113
+ requires: List[str]
114
+ provides: List[str]
115
+ obsoletes: List[str]
116
+
117
+ # Metadata 1.2 - PEP 345
118
+ maintainer: str
119
+ maintainer_email: str
120
+ requires_dist: List[str]
121
+ provides_dist: List[str]
122
+ obsoletes_dist: List[str]
123
+ requires_python: str
124
+ requires_external: List[str]
125
+ project_urls: Dict[str, str]
126
+
127
+ # Metadata 2.0
128
+ # PEP 426 attempted to completely revamp the metadata format
129
+ # but got stuck without ever being able to build consensus on
130
+ # it and ultimately ended up withdrawn.
131
+ #
132
+ # However, a number of tools had started emitting METADATA with
133
+ # `2.0` Metadata-Version, so for historical reasons, this version
134
+ # was skipped.
135
+
136
+ # Metadata 2.1 - PEP 566
137
+ description_content_type: str
138
+ provides_extra: List[str]
139
+
140
+ # Metadata 2.2 - PEP 643
141
+ dynamic: List[str]
142
+
143
+ # Metadata 2.3 - PEP 685
144
+ # No new fields were added in PEP 685, just some edge case were
145
+ # tightened up to provide better interoptability.
146
+
147
+
148
+ _STRING_FIELDS = {
149
+ "author",
150
+ "author_email",
151
+ "description",
152
+ "description_content_type",
153
+ "download_url",
154
+ "home_page",
155
+ "license",
156
+ "maintainer",
157
+ "maintainer_email",
158
+ "metadata_version",
159
+ "name",
160
+ "requires_python",
161
+ "summary",
162
+ "version",
163
+ }
164
+
165
+ _LIST_FIELDS = {
166
+ "classifiers",
167
+ "dynamic",
168
+ "obsoletes",
169
+ "obsoletes_dist",
170
+ "platforms",
171
+ "provides",
172
+ "provides_dist",
173
+ "provides_extra",
174
+ "requires",
175
+ "requires_dist",
176
+ "requires_external",
177
+ "supported_platforms",
178
+ }
179
+
180
+ _DICT_FIELDS = {
181
+ "project_urls",
182
+ }
183
+
184
+
185
+ def _parse_keywords(data: str) -> List[str]:
186
+ """Split a string of comma-separate keyboards into a list of keywords."""
187
+ return [k.strip() for k in data.split(",")]
188
+
189
+
190
+ def _parse_project_urls(data: List[str]) -> Dict[str, str]:
191
+ """Parse a list of label/URL string pairings separated by a comma."""
192
+ urls = {}
193
+ for pair in data:
194
+ # Our logic is slightly tricky here as we want to try and do
195
+ # *something* reasonable with malformed data.
196
+ #
197
+ # The main thing that we have to worry about, is data that does
198
+ # not have a ',' at all to split the label from the Value. There
199
+ # isn't a singular right answer here, and we will fail validation
200
+ # later on (if the caller is validating) so it doesn't *really*
201
+ # matter, but since the missing value has to be an empty str
202
+ # and our return value is dict[str, str], if we let the key
203
+ # be the missing value, then they'd have multiple '' values that
204
+ # overwrite each other in a accumulating dict.
205
+ #
206
+ # The other potentional issue is that it's possible to have the
207
+ # same label multiple times in the metadata, with no solid "right"
208
+ # answer with what to do in that case. As such, we'll do the only
209
+ # thing we can, which is treat the field as unparseable and add it
210
+ # to our list of unparsed fields.
211
+ parts = [p.strip() for p in pair.split(",", 1)]
212
+ parts.extend([""] * (max(0, 2 - len(parts)))) # Ensure 2 items
213
+
214
+ # TODO: The spec doesn't say anything about if the keys should be
215
+ # considered case sensitive or not... logically they should
216
+ # be case-preserving and case-insensitive, but doing that
217
+ # would open up more cases where we might have duplicate
218
+ # entries.
219
+ label, url = parts
220
+ if label in urls:
221
+ # The label already exists in our set of urls, so this field
222
+ # is unparseable, and we can just add the whole thing to our
223
+ # unparseable data and stop processing it.
224
+ raise KeyError("duplicate labels in project urls")
225
+ urls[label] = url
226
+
227
+ return urls
228
+
229
+
230
+ def _get_payload(msg: email.message.Message, source: Union[bytes, str]) -> str:
231
+ """Get the body of the message."""
232
+ # If our source is a str, then our caller has managed encodings for us,
233
+ # and we don't need to deal with it.
234
+ if isinstance(source, str):
235
+ payload: str = msg.get_payload()
236
+ return payload
237
+ # If our source is a bytes, then we're managing the encoding and we need
238
+ # to deal with it.
239
+ else:
240
+ bpayload: bytes = msg.get_payload(decode=True)
241
+ try:
242
+ return bpayload.decode("utf8", "strict")
243
+ except UnicodeDecodeError:
244
+ raise ValueError("payload in an invalid encoding")
245
+
246
+
247
+ # The various parse_FORMAT functions here are intended to be as lenient as
248
+ # possible in their parsing, while still returning a correctly typed
249
+ # RawMetadata.
250
+ #
251
+ # To aid in this, we also generally want to do as little touching of the
252
+ # data as possible, except where there are possibly some historic holdovers
253
+ # that make valid data awkward to work with.
254
+ #
255
+ # While this is a lower level, intermediate format than our ``Metadata``
256
+ # class, some light touch ups can make a massive difference in usability.
257
+
258
+ # Map METADATA fields to RawMetadata.
259
+ _EMAIL_TO_RAW_MAPPING = {
260
+ "author": "author",
261
+ "author-email": "author_email",
262
+ "classifier": "classifiers",
263
+ "description": "description",
264
+ "description-content-type": "description_content_type",
265
+ "download-url": "download_url",
266
+ "dynamic": "dynamic",
267
+ "home-page": "home_page",
268
+ "keywords": "keywords",
269
+ "license": "license",
270
+ "maintainer": "maintainer",
271
+ "maintainer-email": "maintainer_email",
272
+ "metadata-version": "metadata_version",
273
+ "name": "name",
274
+ "obsoletes": "obsoletes",
275
+ "obsoletes-dist": "obsoletes_dist",
276
+ "platform": "platforms",
277
+ "project-url": "project_urls",
278
+ "provides": "provides",
279
+ "provides-dist": "provides_dist",
280
+ "provides-extra": "provides_extra",
281
+ "requires": "requires",
282
+ "requires-dist": "requires_dist",
283
+ "requires-external": "requires_external",
284
+ "requires-python": "requires_python",
285
+ "summary": "summary",
286
+ "supported-platform": "supported_platforms",
287
+ "version": "version",
288
+ }
289
+ _RAW_TO_EMAIL_MAPPING = {raw: email for email, raw in _EMAIL_TO_RAW_MAPPING.items()}
290
+
291
+
292
+ def parse_email(data: Union[bytes, str]) -> Tuple[RawMetadata, Dict[str, List[str]]]:
293
+ """Parse a distribution's metadata stored as email headers (e.g. from ``METADATA``).
294
+
295
+ This function returns a two-item tuple of dicts. The first dict is of
296
+ recognized fields from the core metadata specification. Fields that can be
297
+ parsed and translated into Python's built-in types are converted
298
+ appropriately. All other fields are left as-is. Fields that are allowed to
299
+ appear multiple times are stored as lists.
300
+
301
+ The second dict contains all other fields from the metadata. This includes
302
+ any unrecognized fields. It also includes any fields which are expected to
303
+ be parsed into a built-in type but were not formatted appropriately. Finally,
304
+ any fields that are expected to appear only once but are repeated are
305
+ included in this dict.
306
+
307
+ """
308
+ raw: Dict[str, Union[str, List[str], Dict[str, str]]] = {}
309
+ unparsed: Dict[str, List[str]] = {}
310
+
311
+ if isinstance(data, str):
312
+ parsed = email.parser.Parser(policy=email.policy.compat32).parsestr(data)
313
+ else:
314
+ parsed = email.parser.BytesParser(policy=email.policy.compat32).parsebytes(data)
315
+
316
+ # We have to wrap parsed.keys() in a set, because in the case of multiple
317
+ # values for a key (a list), the key will appear multiple times in the
318
+ # list of keys, but we're avoiding that by using get_all().
319
+ for name in frozenset(parsed.keys()):
320
+ # Header names in RFC are case insensitive, so we'll normalize to all
321
+ # lower case to make comparisons easier.
322
+ name = name.lower()
323
+
324
+ # We use get_all() here, even for fields that aren't multiple use,
325
+ # because otherwise someone could have e.g. two Name fields, and we
326
+ # would just silently ignore it rather than doing something about it.
327
+ headers = parsed.get_all(name) or []
328
+
329
+ # The way the email module works when parsing bytes is that it
330
+ # unconditionally decodes the bytes as ascii using the surrogateescape
331
+ # handler. When you pull that data back out (such as with get_all() ),
332
+ # it looks to see if the str has any surrogate escapes, and if it does
333
+ # it wraps it in a Header object instead of returning the string.
334
+ #
335
+ # As such, we'll look for those Header objects, and fix up the encoding.
336
+ value = []
337
+ # Flag if we have run into any issues processing the headers, thus
338
+ # signalling that the data belongs in 'unparsed'.
339
+ valid_encoding = True
340
+ for h in headers:
341
+ # It's unclear if this can return more types than just a Header or
342
+ # a str, so we'll just assert here to make sure.
343
+ assert isinstance(h, (email.header.Header, str))
344
+
345
+ # If it's a header object, we need to do our little dance to get
346
+ # the real data out of it. In cases where there is invalid data
347
+ # we're going to end up with mojibake, but there's no obvious, good
348
+ # way around that without reimplementing parts of the Header object
349
+ # ourselves.
350
+ #
351
+ # That should be fine since, if mojibacked happens, this key is
352
+ # going into the unparsed dict anyways.
353
+ if isinstance(h, email.header.Header):
354
+ # The Header object stores it's data as chunks, and each chunk
355
+ # can be independently encoded, so we'll need to check each
356
+ # of them.
357
+ chunks: List[Tuple[bytes, Optional[str]]] = []
358
+ for bin, encoding in email.header.decode_header(h):
359
+ try:
360
+ bin.decode("utf8", "strict")
361
+ except UnicodeDecodeError:
362
+ # Enable mojibake.
363
+ encoding = "latin1"
364
+ valid_encoding = False
365
+ else:
366
+ encoding = "utf8"
367
+ chunks.append((bin, encoding))
368
+
369
+ # Turn our chunks back into a Header object, then let that
370
+ # Header object do the right thing to turn them into a
371
+ # string for us.
372
+ value.append(str(email.header.make_header(chunks)))
373
+ # This is already a string, so just add it.
374
+ else:
375
+ value.append(h)
376
+
377
+ # We've processed all of our values to get them into a list of str,
378
+ # but we may have mojibake data, in which case this is an unparsed
379
+ # field.
380
+ if not valid_encoding:
381
+ unparsed[name] = value
382
+ continue
383
+
384
+ raw_name = _EMAIL_TO_RAW_MAPPING.get(name)
385
+ if raw_name is None:
386
+ # This is a bit of a weird situation, we've encountered a key that
387
+ # we don't know what it means, so we don't know whether it's meant
388
+ # to be a list or not.
389
+ #
390
+ # Since we can't really tell one way or another, we'll just leave it
391
+ # as a list, even though it may be a single item list, because that's
392
+ # what makes the most sense for email headers.
393
+ unparsed[name] = value
394
+ continue
395
+
396
+ # If this is one of our string fields, then we'll check to see if our
397
+ # value is a list of a single item. If it is then we'll assume that
398
+ # it was emitted as a single string, and unwrap the str from inside
399
+ # the list.
400
+ #
401
+ # If it's any other kind of data, then we haven't the faintest clue
402
+ # what we should parse it as, and we have to just add it to our list
403
+ # of unparsed stuff.
404
+ if raw_name in _STRING_FIELDS and len(value) == 1:
405
+ raw[raw_name] = value[0]
406
+ # If this is one of our list of string fields, then we can just assign
407
+ # the value, since email *only* has strings, and our get_all() call
408
+ # above ensures that this is a list.
409
+ elif raw_name in _LIST_FIELDS:
410
+ raw[raw_name] = value
411
+ # Special Case: Keywords
412
+ # The keywords field is implemented in the metadata spec as a str,
413
+ # but it conceptually is a list of strings, and is serialized using
414
+ # ", ".join(keywords), so we'll do some light data massaging to turn
415
+ # this into what it logically is.
416
+ elif raw_name == "keywords" and len(value) == 1:
417
+ raw[raw_name] = _parse_keywords(value[0])
418
+ # Special Case: Project-URL
419
+ # The project urls is implemented in the metadata spec as a list of
420
+ # specially-formatted strings that represent a key and a value, which
421
+ # is fundamentally a mapping, however the email format doesn't support
422
+ # mappings in a sane way, so it was crammed into a list of strings
423
+ # instead.
424
+ #
425
+ # We will do a little light data massaging to turn this into a map as
426
+ # it logically should be.
427
+ elif raw_name == "project_urls":
428
+ try:
429
+ raw[raw_name] = _parse_project_urls(value)
430
+ except KeyError:
431
+ unparsed[name] = value
432
+ # Nothing that we've done has managed to parse this, so it'll just
433
+ # throw it in our unparseable data and move on.
434
+ else:
435
+ unparsed[name] = value
436
+
437
+ # We need to support getting the Description from the message payload in
438
+ # addition to getting it from the the headers. This does mean, though, there
439
+ # is the possibility of it being set both ways, in which case we put both
440
+ # in 'unparsed' since we don't know which is right.
441
+ try:
442
+ payload = _get_payload(parsed, data)
443
+ except ValueError:
444
+ unparsed.setdefault("description", []).append(
445
+ parsed.get_payload(decode=isinstance(data, bytes))
446
+ )
447
+ else:
448
+ if payload:
449
+ # Check to see if we've already got a description, if so then both
450
+ # it, and this body move to unparseable.
451
+ if "description" in raw:
452
+ description_header = cast(str, raw.pop("description"))
453
+ unparsed.setdefault("description", []).extend(
454
+ [description_header, payload]
455
+ )
456
+ elif "description" in unparsed:
457
+ unparsed["description"].append(payload)
458
+ else:
459
+ raw["description"] = payload
460
+
461
+ # We need to cast our `raw` to a metadata, because a TypedDict only support
462
+ # literal key names, but we're computing our key names on purpose, but the
463
+ # way this function is implemented, our `TypedDict` can only have valid key
464
+ # names.
465
+ return cast(RawMetadata, raw), unparsed
466
+
467
+
468
+ _NOT_FOUND = object()
469
+
470
+
471
+ # Keep the two values in sync.
472
+ _VALID_METADATA_VERSIONS = ["1.0", "1.1", "1.2", "2.1", "2.2", "2.3"]
473
+ _MetadataVersion = Literal["1.0", "1.1", "1.2", "2.1", "2.2", "2.3"]
474
+
475
+ _REQUIRED_ATTRS = frozenset(["metadata_version", "name", "version"])
476
+
477
+
478
+ class _Validator(Generic[T]):
479
+ """Validate a metadata field.
480
+
481
+ All _process_*() methods correspond to a core metadata field. The method is
482
+ called with the field's raw value. If the raw value is valid it is returned
483
+ in its "enriched" form (e.g. ``version.Version`` for the ``Version`` field).
484
+ If the raw value is invalid, :exc:`InvalidMetadata` is raised (with a cause
485
+ as appropriate).
486
+ """
487
+
488
+ name: str
489
+ raw_name: str
490
+ added: _MetadataVersion
491
+
492
+ def __init__(
493
+ self,
494
+ *,
495
+ added: _MetadataVersion = "1.0",
496
+ ) -> None:
497
+ self.added = added
498
+
499
+ def __set_name__(self, _owner: "Metadata", name: str) -> None:
500
+ self.name = name
501
+ self.raw_name = _RAW_TO_EMAIL_MAPPING[name]
502
+
503
+ def __get__(self, instance: "Metadata", _owner: Type["Metadata"]) -> T:
504
+ # With Python 3.8, the caching can be replaced with functools.cached_property().
505
+ # No need to check the cache as attribute lookup will resolve into the
506
+ # instance's __dict__ before __get__ is called.
507
+ cache = instance.__dict__
508
+ try:
509
+ value = instance._raw[self.name] # type: ignore[literal-required]
510
+ except KeyError:
511
+ if self.name in _STRING_FIELDS:
512
+ value = ""
513
+ elif self.name in _LIST_FIELDS:
514
+ value = []
515
+ elif self.name in _DICT_FIELDS:
516
+ value = {}
517
+ else: # pragma: no cover
518
+ assert False
519
+
520
+ try:
521
+ converter: Callable[[Any], T] = getattr(self, f"_process_{self.name}")
522
+ except AttributeError:
523
+ pass
524
+ else:
525
+ value = converter(value)
526
+
527
+ cache[self.name] = value
528
+ try:
529
+ del instance._raw[self.name] # type: ignore[misc]
530
+ except KeyError:
531
+ pass
532
+
533
+ return cast(T, value)
534
+
535
+ def _invalid_metadata(
536
+ self, msg: str, cause: Optional[Exception] = None
537
+ ) -> InvalidMetadata:
538
+ exc = InvalidMetadata(
539
+ self.raw_name, msg.format_map({"field": repr(self.raw_name)})
540
+ )
541
+ exc.__cause__ = cause
542
+ return exc
543
+
544
+ def _process_metadata_version(self, value: str) -> _MetadataVersion:
545
+ # Implicitly makes Metadata-Version required.
546
+ if value not in _VALID_METADATA_VERSIONS:
547
+ raise self._invalid_metadata(f"{value!r} is not a valid metadata version")
548
+ return cast(_MetadataVersion, value)
549
+
550
+ def _process_name(self, value: str) -> str:
551
+ if not value:
552
+ raise self._invalid_metadata("{field} is a required field")
553
+ # Validate the name as a side-effect.
554
+ try:
555
+ utils.canonicalize_name(value, validate=True)
556
+ except utils.InvalidName as exc:
557
+ raise self._invalid_metadata(
558
+ f"{value!r} is invalid for {{field}}", cause=exc
559
+ )
560
+ else:
561
+ return value
562
+
563
+ def _process_version(self, value: str) -> version_module.Version:
564
+ if not value:
565
+ raise self._invalid_metadata("{field} is a required field")
566
+ try:
567
+ return version_module.parse(value)
568
+ except version_module.InvalidVersion as exc:
569
+ raise self._invalid_metadata(
570
+ f"{value!r} is invalid for {{field}}", cause=exc
571
+ )
572
+
573
+ def _process_summary(self, value: str) -> str:
574
+ """Check the field contains no newlines."""
575
+ if "\n" in value:
576
+ raise self._invalid_metadata("{field} must be a single line")
577
+ return value
578
+
579
+ def _process_description_content_type(self, value: str) -> str:
580
+ content_types = {"text/plain", "text/x-rst", "text/markdown"}
581
+ message = email.message.EmailMessage()
582
+ message["content-type"] = value
583
+
584
+ content_type, parameters = (
585
+ # Defaults to `text/plain` if parsing failed.
586
+ message.get_content_type().lower(),
587
+ message["content-type"].params,
588
+ )
589
+ # Check if content-type is valid or defaulted to `text/plain` and thus was
590
+ # not parseable.
591
+ if content_type not in content_types or content_type not in value.lower():
592
+ raise self._invalid_metadata(
593
+ f"{{field}} must be one of {list(content_types)}, not {value!r}"
594
+ )
595
+
596
+ charset = parameters.get("charset", "UTF-8")
597
+ if charset != "UTF-8":
598
+ raise self._invalid_metadata(
599
+ f"{{field}} can only specify the UTF-8 charset, not {list(charset)}"
600
+ )
601
+
602
+ markdown_variants = {"GFM", "CommonMark"}
603
+ variant = parameters.get("variant", "GFM") # Use an acceptable default.
604
+ if content_type == "text/markdown" and variant not in markdown_variants:
605
+ raise self._invalid_metadata(
606
+ f"valid Markdown variants for {{field}} are {list(markdown_variants)}, "
607
+ f"not {variant!r}",
608
+ )
609
+ return value
610
+
611
+ def _process_dynamic(self, value: List[str]) -> List[str]:
612
+ for dynamic_field in map(str.lower, value):
613
+ if dynamic_field in {"name", "version", "metadata-version"}:
614
+ raise self._invalid_metadata(
615
+ f"{value!r} is not allowed as a dynamic field"
616
+ )
617
+ elif dynamic_field not in _EMAIL_TO_RAW_MAPPING:
618
+ raise self._invalid_metadata(f"{value!r} is not a valid dynamic field")
619
+ return list(map(str.lower, value))
620
+
621
+ def _process_provides_extra(
622
+ self,
623
+ value: List[str],
624
+ ) -> List[utils.NormalizedName]:
625
+ normalized_names = []
626
+ try:
627
+ for name in value:
628
+ normalized_names.append(utils.canonicalize_name(name, validate=True))
629
+ except utils.InvalidName as exc:
630
+ raise self._invalid_metadata(
631
+ f"{name!r} is invalid for {{field}}", cause=exc
632
+ )
633
+ else:
634
+ return normalized_names
635
+
636
+ def _process_requires_python(self, value: str) -> specifiers.SpecifierSet:
637
+ try:
638
+ return specifiers.SpecifierSet(value)
639
+ except specifiers.InvalidSpecifier as exc:
640
+ raise self._invalid_metadata(
641
+ f"{value!r} is invalid for {{field}}", cause=exc
642
+ )
643
+
644
+ def _process_requires_dist(
645
+ self,
646
+ value: List[str],
647
+ ) -> List[requirements.Requirement]:
648
+ reqs = []
649
+ try:
650
+ for req in value:
651
+ reqs.append(requirements.Requirement(req))
652
+ except requirements.InvalidRequirement as exc:
653
+ raise self._invalid_metadata(f"{req!r} is invalid for {{field}}", cause=exc)
654
+ else:
655
+ return reqs
656
+
657
+
658
+ class Metadata:
659
+ """Representation of distribution metadata.
660
+
661
+ Compared to :class:`RawMetadata`, this class provides objects representing
662
+ metadata fields instead of only using built-in types. Any invalid metadata
663
+ will cause :exc:`InvalidMetadata` to be raised (with a
664
+ :py:attr:`~BaseException.__cause__` attribute as appropriate).
665
+ """
666
+
667
+ _raw: RawMetadata
668
+
669
+ @classmethod
670
+ def from_raw(cls, data: RawMetadata, *, validate: bool = True) -> "Metadata":
671
+ """Create an instance from :class:`RawMetadata`.
672
+
673
+ If *validate* is true, all metadata will be validated. All exceptions
674
+ related to validation will be gathered and raised as an :class:`ExceptionGroup`.
675
+ """
676
+ ins = cls()
677
+ ins._raw = data.copy() # Mutations occur due to caching enriched values.
678
+
679
+ if validate:
680
+ exceptions: List[InvalidMetadata] = []
681
+ try:
682
+ metadata_version = ins.metadata_version
683
+ metadata_age = _VALID_METADATA_VERSIONS.index(metadata_version)
684
+ except InvalidMetadata as metadata_version_exc:
685
+ exceptions.append(metadata_version_exc)
686
+ metadata_version = None
687
+
688
+ # Make sure to check for the fields that are present, the required
689
+ # fields (so their absence can be reported).
690
+ fields_to_check = frozenset(ins._raw) | _REQUIRED_ATTRS
691
+ # Remove fields that have already been checked.
692
+ fields_to_check -= {"metadata_version"}
693
+
694
+ for key in fields_to_check:
695
+ try:
696
+ if metadata_version:
697
+ # Can't use getattr() as that triggers descriptor protocol which
698
+ # will fail due to no value for the instance argument.
699
+ try:
700
+ field_metadata_version = cls.__dict__[key].added
701
+ except KeyError:
702
+ exc = InvalidMetadata(key, f"unrecognized field: {key!r}")
703
+ exceptions.append(exc)
704
+ continue
705
+ field_age = _VALID_METADATA_VERSIONS.index(
706
+ field_metadata_version
707
+ )
708
+ if field_age > metadata_age:
709
+ field = _RAW_TO_EMAIL_MAPPING[key]
710
+ exc = InvalidMetadata(
711
+ field,
712
+ "{field} introduced in metadata version "
713
+ "{field_metadata_version}, not {metadata_version}",
714
+ )
715
+ exceptions.append(exc)
716
+ continue
717
+ getattr(ins, key)
718
+ except InvalidMetadata as exc:
719
+ exceptions.append(exc)
720
+
721
+ if exceptions:
722
+ raise ExceptionGroup("invalid metadata", exceptions)
723
+
724
+ return ins
725
+
726
+ @classmethod
727
+ def from_email(
728
+ cls, data: Union[bytes, str], *, validate: bool = True
729
+ ) -> "Metadata":
730
+ """Parse metadata from email headers.
731
+
732
+ If *validate* is true, the metadata will be validated. All exceptions
733
+ related to validation will be gathered and raised as an :class:`ExceptionGroup`.
734
+ """
735
+ exceptions: list[InvalidMetadata] = []
736
+ raw, unparsed = parse_email(data)
737
+
738
+ if validate:
739
+ for unparsed_key in unparsed:
740
+ if unparsed_key in _EMAIL_TO_RAW_MAPPING:
741
+ message = f"{unparsed_key!r} has invalid data"
742
+ else:
743
+ message = f"unrecognized field: {unparsed_key!r}"
744
+ exceptions.append(InvalidMetadata(unparsed_key, message))
745
+
746
+ if exceptions:
747
+ raise ExceptionGroup("unparsed", exceptions)
748
+
749
+ try:
750
+ return cls.from_raw(raw, validate=validate)
751
+ except ExceptionGroup as exc_group:
752
+ exceptions.extend(exc_group.exceptions)
753
+ raise ExceptionGroup("invalid or unparsed metadata", exceptions) from None
754
+
755
+ metadata_version: _Validator[_MetadataVersion] = _Validator()
756
+ """:external:ref:`core-metadata-metadata-version`
757
+ (required; validated to be a valid metadata version)"""
758
+ name: _Validator[str] = _Validator()
759
+ """:external:ref:`core-metadata-name`
760
+ (required; validated using :func:`~packaging.utils.canonicalize_name` and its
761
+ *validate* parameter)"""
762
+ version: _Validator[version_module.Version] = _Validator()
763
+ """:external:ref:`core-metadata-version` (required)"""
764
+ dynamic: _Validator[List[str]] = _Validator(
765
+ added="2.2",
766
+ )
767
+ """:external:ref:`core-metadata-dynamic`
768
+ (validated against core metadata field names and lowercased)"""
769
+ platforms: _Validator[List[str]] = _Validator()
770
+ """:external:ref:`core-metadata-platform`"""
771
+ supported_platforms: _Validator[List[str]] = _Validator(added="1.1")
772
+ """:external:ref:`core-metadata-supported-platform`"""
773
+ summary: _Validator[str] = _Validator()
774
+ """:external:ref:`core-metadata-summary` (validated to contain no newlines)"""
775
+ description: _Validator[str] = _Validator() # TODO 2.1: can be in body
776
+ """:external:ref:`core-metadata-description`"""
777
+ description_content_type: _Validator[str] = _Validator(added="2.1")
778
+ """:external:ref:`core-metadata-description-content-type` (validated)"""
779
+ keywords: _Validator[List[str]] = _Validator()
780
+ """:external:ref:`core-metadata-keywords`"""
781
+ home_page: _Validator[str] = _Validator()
782
+ """:external:ref:`core-metadata-home-page`"""
783
+ download_url: _Validator[str] = _Validator(added="1.1")
784
+ """:external:ref:`core-metadata-download-url`"""
785
+ author: _Validator[str] = _Validator()
786
+ """:external:ref:`core-metadata-author`"""
787
+ author_email: _Validator[str] = _Validator()
788
+ """:external:ref:`core-metadata-author-email`"""
789
+ maintainer: _Validator[str] = _Validator(added="1.2")
790
+ """:external:ref:`core-metadata-maintainer`"""
791
+ maintainer_email: _Validator[str] = _Validator(added="1.2")
792
+ """:external:ref:`core-metadata-maintainer-email`"""
793
+ license: _Validator[str] = _Validator()
794
+ """:external:ref:`core-metadata-license`"""
795
+ classifiers: _Validator[List[str]] = _Validator(added="1.1")
796
+ """:external:ref:`core-metadata-classifier`"""
797
+ requires_dist: _Validator[List[requirements.Requirement]] = _Validator(added="1.2")
798
+ """:external:ref:`core-metadata-requires-dist`"""
799
+ requires_python: _Validator[specifiers.SpecifierSet] = _Validator(added="1.2")
800
+ """:external:ref:`core-metadata-requires-python`"""
801
+ # Because `Requires-External` allows for non-PEP 440 version specifiers, we
802
+ # don't do any processing on the values.
803
+ requires_external: _Validator[List[str]] = _Validator(added="1.2")
804
+ """:external:ref:`core-metadata-requires-external`"""
805
+ project_urls: _Validator[Dict[str, str]] = _Validator(added="1.2")
806
+ """:external:ref:`core-metadata-project-url`"""
807
+ # PEP 685 lets us raise an error if an extra doesn't pass `Name` validation
808
+ # regardless of metadata version.
809
+ provides_extra: _Validator[List[utils.NormalizedName]] = _Validator(
810
+ added="2.1",
811
+ )
812
+ """:external:ref:`core-metadata-provides-extra`"""
813
+ provides_dist: _Validator[List[str]] = _Validator(added="1.2")
814
+ """:external:ref:`core-metadata-provides-dist`"""
815
+ obsoletes_dist: _Validator[List[str]] = _Validator(added="1.2")
816
+ """:external:ref:`core-metadata-obsoletes-dist`"""
817
+ requires: _Validator[List[str]] = _Validator(added="1.1")
818
+ """``Requires`` (deprecated)"""
819
+ provides: _Validator[List[str]] = _Validator(added="1.1")
820
+ """``Provides`` (deprecated)"""
821
+ obsoletes: _Validator[List[str]] = _Validator(added="1.1")
822
+ """``Obsoletes`` (deprecated)"""
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/py.typed ADDED
File without changes
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/requirements.py ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ from typing import Any, Iterator, Optional, Set
6
+
7
+ from ._parser import parse_requirement as _parse_requirement
8
+ from ._tokenizer import ParserSyntaxError
9
+ from .markers import Marker, _normalize_extra_values
10
+ from .specifiers import SpecifierSet
11
+ from .utils import canonicalize_name
12
+
13
+
14
+ class InvalidRequirement(ValueError):
15
+ """
16
+ An invalid requirement was found, users should refer to PEP 508.
17
+ """
18
+
19
+
20
+ class Requirement:
21
+ """Parse a requirement.
22
+
23
+ Parse a given requirement string into its parts, such as name, specifier,
24
+ URL, and extras. Raises InvalidRequirement on a badly-formed requirement
25
+ string.
26
+ """
27
+
28
+ # TODO: Can we test whether something is contained within a requirement?
29
+ # If so how do we do that? Do we need to test against the _name_ of
30
+ # the thing as well as the version? What about the markers?
31
+ # TODO: Can we normalize the name and extra name?
32
+
33
+ def __init__(self, requirement_string: str) -> None:
34
+ try:
35
+ parsed = _parse_requirement(requirement_string)
36
+ except ParserSyntaxError as e:
37
+ raise InvalidRequirement(str(e)) from e
38
+
39
+ self.name: str = parsed.name
40
+ self.url: Optional[str] = parsed.url or None
41
+ self.extras: Set[str] = set(parsed.extras if parsed.extras else [])
42
+ self.specifier: SpecifierSet = SpecifierSet(parsed.specifier)
43
+ self.marker: Optional[Marker] = None
44
+ if parsed.marker is not None:
45
+ self.marker = Marker.__new__(Marker)
46
+ self.marker._markers = _normalize_extra_values(parsed.marker)
47
+
48
+ def _iter_parts(self, name: str) -> Iterator[str]:
49
+ yield name
50
+
51
+ if self.extras:
52
+ formatted_extras = ",".join(sorted(self.extras))
53
+ yield f"[{formatted_extras}]"
54
+
55
+ if self.specifier:
56
+ yield str(self.specifier)
57
+
58
+ if self.url:
59
+ yield f"@ {self.url}"
60
+ if self.marker:
61
+ yield " "
62
+
63
+ if self.marker:
64
+ yield f"; {self.marker}"
65
+
66
+ def __str__(self) -> str:
67
+ return "".join(self._iter_parts(self.name))
68
+
69
+ def __repr__(self) -> str:
70
+ return f"<Requirement('{self}')>"
71
+
72
+ def __hash__(self) -> int:
73
+ return hash(
74
+ (
75
+ self.__class__.__name__,
76
+ *self._iter_parts(canonicalize_name(self.name)),
77
+ )
78
+ )
79
+
80
+ def __eq__(self, other: Any) -> bool:
81
+ if not isinstance(other, Requirement):
82
+ return NotImplemented
83
+
84
+ return (
85
+ canonicalize_name(self.name) == canonicalize_name(other.name)
86
+ and self.extras == other.extras
87
+ and self.specifier == other.specifier
88
+ and self.url == other.url
89
+ and self.marker == other.marker
90
+ )
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/specifiers.py ADDED
@@ -0,0 +1,1008 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+ """
5
+ .. testsetup::
6
+
7
+ from packaging.specifiers import Specifier, SpecifierSet, InvalidSpecifier
8
+ from packaging.version import Version
9
+ """
10
+
11
+ import abc
12
+ import itertools
13
+ import re
14
+ from typing import (
15
+ Callable,
16
+ Iterable,
17
+ Iterator,
18
+ List,
19
+ Optional,
20
+ Set,
21
+ Tuple,
22
+ TypeVar,
23
+ Union,
24
+ )
25
+
26
+ from .utils import canonicalize_version
27
+ from .version import Version
28
+
29
+ UnparsedVersion = Union[Version, str]
30
+ UnparsedVersionVar = TypeVar("UnparsedVersionVar", bound=UnparsedVersion)
31
+ CallableOperator = Callable[[Version, str], bool]
32
+
33
+
34
+ def _coerce_version(version: UnparsedVersion) -> Version:
35
+ if not isinstance(version, Version):
36
+ version = Version(version)
37
+ return version
38
+
39
+
40
+ class InvalidSpecifier(ValueError):
41
+ """
42
+ Raised when attempting to create a :class:`Specifier` with a specifier
43
+ string that is invalid.
44
+
45
+ >>> Specifier("lolwat")
46
+ Traceback (most recent call last):
47
+ ...
48
+ packaging.specifiers.InvalidSpecifier: Invalid specifier: 'lolwat'
49
+ """
50
+
51
+
52
+ class BaseSpecifier(metaclass=abc.ABCMeta):
53
+ @abc.abstractmethod
54
+ def __str__(self) -> str:
55
+ """
56
+ Returns the str representation of this Specifier-like object. This
57
+ should be representative of the Specifier itself.
58
+ """
59
+
60
+ @abc.abstractmethod
61
+ def __hash__(self) -> int:
62
+ """
63
+ Returns a hash value for this Specifier-like object.
64
+ """
65
+
66
+ @abc.abstractmethod
67
+ def __eq__(self, other: object) -> bool:
68
+ """
69
+ Returns a boolean representing whether or not the two Specifier-like
70
+ objects are equal.
71
+
72
+ :param other: The other object to check against.
73
+ """
74
+
75
+ @property
76
+ @abc.abstractmethod
77
+ def prereleases(self) -> Optional[bool]:
78
+ """Whether or not pre-releases as a whole are allowed.
79
+
80
+ This can be set to either ``True`` or ``False`` to explicitly enable or disable
81
+ prereleases or it can be set to ``None`` (the default) to use default semantics.
82
+ """
83
+
84
+ @prereleases.setter
85
+ def prereleases(self, value: bool) -> None:
86
+ """Setter for :attr:`prereleases`.
87
+
88
+ :param value: The value to set.
89
+ """
90
+
91
+ @abc.abstractmethod
92
+ def contains(self, item: str, prereleases: Optional[bool] = None) -> bool:
93
+ """
94
+ Determines if the given item is contained within this specifier.
95
+ """
96
+
97
+ @abc.abstractmethod
98
+ def filter(
99
+ self, iterable: Iterable[UnparsedVersionVar], prereleases: Optional[bool] = None
100
+ ) -> Iterator[UnparsedVersionVar]:
101
+ """
102
+ Takes an iterable of items and filters them so that only items which
103
+ are contained within this specifier are allowed in it.
104
+ """
105
+
106
+
107
+ class Specifier(BaseSpecifier):
108
+ """This class abstracts handling of version specifiers.
109
+
110
+ .. tip::
111
+
112
+ It is generally not required to instantiate this manually. You should instead
113
+ prefer to work with :class:`SpecifierSet` instead, which can parse
114
+ comma-separated version specifiers (which is what package metadata contains).
115
+ """
116
+
117
+ _operator_regex_str = r"""
118
+ (?P<operator>(~=|==|!=|<=|>=|<|>|===))
119
+ """
120
+ _version_regex_str = r"""
121
+ (?P<version>
122
+ (?:
123
+ # The identity operators allow for an escape hatch that will
124
+ # do an exact string match of the version you wish to install.
125
+ # This will not be parsed by PEP 440 and we cannot determine
126
+ # any semantic meaning from it. This operator is discouraged
127
+ # but included entirely as an escape hatch.
128
+ (?<====) # Only match for the identity operator
129
+ \s*
130
+ [^\s;)]* # The arbitrary version can be just about anything,
131
+ # we match everything except for whitespace, a
132
+ # semi-colon for marker support, and a closing paren
133
+ # since versions can be enclosed in them.
134
+ )
135
+ |
136
+ (?:
137
+ # The (non)equality operators allow for wild card and local
138
+ # versions to be specified so we have to define these two
139
+ # operators separately to enable that.
140
+ (?<===|!=) # Only match for equals and not equals
141
+
142
+ \s*
143
+ v?
144
+ (?:[0-9]+!)? # epoch
145
+ [0-9]+(?:\.[0-9]+)* # release
146
+
147
+ # You cannot use a wild card and a pre-release, post-release, a dev or
148
+ # local version together so group them with a | and make them optional.
149
+ (?:
150
+ \.\* # Wild card syntax of .*
151
+ |
152
+ (?: # pre release
153
+ [-_\.]?
154
+ (alpha|beta|preview|pre|a|b|c|rc)
155
+ [-_\.]?
156
+ [0-9]*
157
+ )?
158
+ (?: # post release
159
+ (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
160
+ )?
161
+ (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release
162
+ (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local
163
+ )?
164
+ )
165
+ |
166
+ (?:
167
+ # The compatible operator requires at least two digits in the
168
+ # release segment.
169
+ (?<=~=) # Only match for the compatible operator
170
+
171
+ \s*
172
+ v?
173
+ (?:[0-9]+!)? # epoch
174
+ [0-9]+(?:\.[0-9]+)+ # release (We have a + instead of a *)
175
+ (?: # pre release
176
+ [-_\.]?
177
+ (alpha|beta|preview|pre|a|b|c|rc)
178
+ [-_\.]?
179
+ [0-9]*
180
+ )?
181
+ (?: # post release
182
+ (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
183
+ )?
184
+ (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release
185
+ )
186
+ |
187
+ (?:
188
+ # All other operators only allow a sub set of what the
189
+ # (non)equality operators do. Specifically they do not allow
190
+ # local versions to be specified nor do they allow the prefix
191
+ # matching wild cards.
192
+ (?<!==|!=|~=) # We have special cases for these
193
+ # operators so we want to make sure they
194
+ # don't match here.
195
+
196
+ \s*
197
+ v?
198
+ (?:[0-9]+!)? # epoch
199
+ [0-9]+(?:\.[0-9]+)* # release
200
+ (?: # pre release
201
+ [-_\.]?
202
+ (alpha|beta|preview|pre|a|b|c|rc)
203
+ [-_\.]?
204
+ [0-9]*
205
+ )?
206
+ (?: # post release
207
+ (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
208
+ )?
209
+ (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release
210
+ )
211
+ )
212
+ """
213
+
214
+ _regex = re.compile(
215
+ r"^\s*" + _operator_regex_str + _version_regex_str + r"\s*$",
216
+ re.VERBOSE | re.IGNORECASE,
217
+ )
218
+
219
+ _operators = {
220
+ "~=": "compatible",
221
+ "==": "equal",
222
+ "!=": "not_equal",
223
+ "<=": "less_than_equal",
224
+ ">=": "greater_than_equal",
225
+ "<": "less_than",
226
+ ">": "greater_than",
227
+ "===": "arbitrary",
228
+ }
229
+
230
+ def __init__(self, spec: str = "", prereleases: Optional[bool] = None) -> None:
231
+ """Initialize a Specifier instance.
232
+
233
+ :param spec:
234
+ The string representation of a specifier which will be parsed and
235
+ normalized before use.
236
+ :param prereleases:
237
+ This tells the specifier if it should accept prerelease versions if
238
+ applicable or not. The default of ``None`` will autodetect it from the
239
+ given specifiers.
240
+ :raises InvalidSpecifier:
241
+ If the given specifier is invalid (i.e. bad syntax).
242
+ """
243
+ match = self._regex.search(spec)
244
+ if not match:
245
+ raise InvalidSpecifier(f"Invalid specifier: '{spec}'")
246
+
247
+ self._spec: Tuple[str, str] = (
248
+ match.group("operator").strip(),
249
+ match.group("version").strip(),
250
+ )
251
+
252
+ # Store whether or not this Specifier should accept prereleases
253
+ self._prereleases = prereleases
254
+
255
+ # https://github.com/python/mypy/pull/13475#pullrequestreview-1079784515
256
+ @property # type: ignore[override]
257
+ def prereleases(self) -> bool:
258
+ # If there is an explicit prereleases set for this, then we'll just
259
+ # blindly use that.
260
+ if self._prereleases is not None:
261
+ return self._prereleases
262
+
263
+ # Look at all of our specifiers and determine if they are inclusive
264
+ # operators, and if they are if they are including an explicit
265
+ # prerelease.
266
+ operator, version = self._spec
267
+ if operator in ["==", ">=", "<=", "~=", "==="]:
268
+ # The == specifier can include a trailing .*, if it does we
269
+ # want to remove before parsing.
270
+ if operator == "==" and version.endswith(".*"):
271
+ version = version[:-2]
272
+
273
+ # Parse the version, and if it is a pre-release than this
274
+ # specifier allows pre-releases.
275
+ if Version(version).is_prerelease:
276
+ return True
277
+
278
+ return False
279
+
280
+ @prereleases.setter
281
+ def prereleases(self, value: bool) -> None:
282
+ self._prereleases = value
283
+
284
+ @property
285
+ def operator(self) -> str:
286
+ """The operator of this specifier.
287
+
288
+ >>> Specifier("==1.2.3").operator
289
+ '=='
290
+ """
291
+ return self._spec[0]
292
+
293
+ @property
294
+ def version(self) -> str:
295
+ """The version of this specifier.
296
+
297
+ >>> Specifier("==1.2.3").version
298
+ '1.2.3'
299
+ """
300
+ return self._spec[1]
301
+
302
+ def __repr__(self) -> str:
303
+ """A representation of the Specifier that shows all internal state.
304
+
305
+ >>> Specifier('>=1.0.0')
306
+ <Specifier('>=1.0.0')>
307
+ >>> Specifier('>=1.0.0', prereleases=False)
308
+ <Specifier('>=1.0.0', prereleases=False)>
309
+ >>> Specifier('>=1.0.0', prereleases=True)
310
+ <Specifier('>=1.0.0', prereleases=True)>
311
+ """
312
+ pre = (
313
+ f", prereleases={self.prereleases!r}"
314
+ if self._prereleases is not None
315
+ else ""
316
+ )
317
+
318
+ return f"<{self.__class__.__name__}({str(self)!r}{pre})>"
319
+
320
+ def __str__(self) -> str:
321
+ """A string representation of the Specifier that can be round-tripped.
322
+
323
+ >>> str(Specifier('>=1.0.0'))
324
+ '>=1.0.0'
325
+ >>> str(Specifier('>=1.0.0', prereleases=False))
326
+ '>=1.0.0'
327
+ """
328
+ return "{}{}".format(*self._spec)
329
+
330
+ @property
331
+ def _canonical_spec(self) -> Tuple[str, str]:
332
+ canonical_version = canonicalize_version(
333
+ self._spec[1],
334
+ strip_trailing_zero=(self._spec[0] != "~="),
335
+ )
336
+ return self._spec[0], canonical_version
337
+
338
+ def __hash__(self) -> int:
339
+ return hash(self._canonical_spec)
340
+
341
+ def __eq__(self, other: object) -> bool:
342
+ """Whether or not the two Specifier-like objects are equal.
343
+
344
+ :param other: The other object to check against.
345
+
346
+ The value of :attr:`prereleases` is ignored.
347
+
348
+ >>> Specifier("==1.2.3") == Specifier("== 1.2.3.0")
349
+ True
350
+ >>> (Specifier("==1.2.3", prereleases=False) ==
351
+ ... Specifier("==1.2.3", prereleases=True))
352
+ True
353
+ >>> Specifier("==1.2.3") == "==1.2.3"
354
+ True
355
+ >>> Specifier("==1.2.3") == Specifier("==1.2.4")
356
+ False
357
+ >>> Specifier("==1.2.3") == Specifier("~=1.2.3")
358
+ False
359
+ """
360
+ if isinstance(other, str):
361
+ try:
362
+ other = self.__class__(str(other))
363
+ except InvalidSpecifier:
364
+ return NotImplemented
365
+ elif not isinstance(other, self.__class__):
366
+ return NotImplemented
367
+
368
+ return self._canonical_spec == other._canonical_spec
369
+
370
+ def _get_operator(self, op: str) -> CallableOperator:
371
+ operator_callable: CallableOperator = getattr(
372
+ self, f"_compare_{self._operators[op]}"
373
+ )
374
+ return operator_callable
375
+
376
+ def _compare_compatible(self, prospective: Version, spec: str) -> bool:
377
+
378
+ # Compatible releases have an equivalent combination of >= and ==. That
379
+ # is that ~=2.2 is equivalent to >=2.2,==2.*. This allows us to
380
+ # implement this in terms of the other specifiers instead of
381
+ # implementing it ourselves. The only thing we need to do is construct
382
+ # the other specifiers.
383
+
384
+ # We want everything but the last item in the version, but we want to
385
+ # ignore suffix segments.
386
+ prefix = ".".join(
387
+ list(itertools.takewhile(_is_not_suffix, _version_split(spec)))[:-1]
388
+ )
389
+
390
+ # Add the prefix notation to the end of our string
391
+ prefix += ".*"
392
+
393
+ return self._get_operator(">=")(prospective, spec) and self._get_operator("==")(
394
+ prospective, prefix
395
+ )
396
+
397
+ def _compare_equal(self, prospective: Version, spec: str) -> bool:
398
+
399
+ # We need special logic to handle prefix matching
400
+ if spec.endswith(".*"):
401
+ # In the case of prefix matching we want to ignore local segment.
402
+ normalized_prospective = canonicalize_version(
403
+ prospective.public, strip_trailing_zero=False
404
+ )
405
+ # Get the normalized version string ignoring the trailing .*
406
+ normalized_spec = canonicalize_version(spec[:-2], strip_trailing_zero=False)
407
+ # Split the spec out by dots, and pretend that there is an implicit
408
+ # dot in between a release segment and a pre-release segment.
409
+ split_spec = _version_split(normalized_spec)
410
+
411
+ # Split the prospective version out by dots, and pretend that there
412
+ # is an implicit dot in between a release segment and a pre-release
413
+ # segment.
414
+ split_prospective = _version_split(normalized_prospective)
415
+
416
+ # 0-pad the prospective version before shortening it to get the correct
417
+ # shortened version.
418
+ padded_prospective, _ = _pad_version(split_prospective, split_spec)
419
+
420
+ # Shorten the prospective version to be the same length as the spec
421
+ # so that we can determine if the specifier is a prefix of the
422
+ # prospective version or not.
423
+ shortened_prospective = padded_prospective[: len(split_spec)]
424
+
425
+ return shortened_prospective == split_spec
426
+ else:
427
+ # Convert our spec string into a Version
428
+ spec_version = Version(spec)
429
+
430
+ # If the specifier does not have a local segment, then we want to
431
+ # act as if the prospective version also does not have a local
432
+ # segment.
433
+ if not spec_version.local:
434
+ prospective = Version(prospective.public)
435
+
436
+ return prospective == spec_version
437
+
438
+ def _compare_not_equal(self, prospective: Version, spec: str) -> bool:
439
+ return not self._compare_equal(prospective, spec)
440
+
441
+ def _compare_less_than_equal(self, prospective: Version, spec: str) -> bool:
442
+
443
+ # NB: Local version identifiers are NOT permitted in the version
444
+ # specifier, so local version labels can be universally removed from
445
+ # the prospective version.
446
+ return Version(prospective.public) <= Version(spec)
447
+
448
+ def _compare_greater_than_equal(self, prospective: Version, spec: str) -> bool:
449
+
450
+ # NB: Local version identifiers are NOT permitted in the version
451
+ # specifier, so local version labels can be universally removed from
452
+ # the prospective version.
453
+ return Version(prospective.public) >= Version(spec)
454
+
455
+ def _compare_less_than(self, prospective: Version, spec_str: str) -> bool:
456
+
457
+ # Convert our spec to a Version instance, since we'll want to work with
458
+ # it as a version.
459
+ spec = Version(spec_str)
460
+
461
+ # Check to see if the prospective version is less than the spec
462
+ # version. If it's not we can short circuit and just return False now
463
+ # instead of doing extra unneeded work.
464
+ if not prospective < spec:
465
+ return False
466
+
467
+ # This special case is here so that, unless the specifier itself
468
+ # includes is a pre-release version, that we do not accept pre-release
469
+ # versions for the version mentioned in the specifier (e.g. <3.1 should
470
+ # not match 3.1.dev0, but should match 3.0.dev0).
471
+ if not spec.is_prerelease and prospective.is_prerelease:
472
+ if Version(prospective.base_version) == Version(spec.base_version):
473
+ return False
474
+
475
+ # If we've gotten to here, it means that prospective version is both
476
+ # less than the spec version *and* it's not a pre-release of the same
477
+ # version in the spec.
478
+ return True
479
+
480
+ def _compare_greater_than(self, prospective: Version, spec_str: str) -> bool:
481
+
482
+ # Convert our spec to a Version instance, since we'll want to work with
483
+ # it as a version.
484
+ spec = Version(spec_str)
485
+
486
+ # Check to see if the prospective version is greater than the spec
487
+ # version. If it's not we can short circuit and just return False now
488
+ # instead of doing extra unneeded work.
489
+ if not prospective > spec:
490
+ return False
491
+
492
+ # This special case is here so that, unless the specifier itself
493
+ # includes is a post-release version, that we do not accept
494
+ # post-release versions for the version mentioned in the specifier
495
+ # (e.g. >3.1 should not match 3.0.post0, but should match 3.2.post0).
496
+ if not spec.is_postrelease and prospective.is_postrelease:
497
+ if Version(prospective.base_version) == Version(spec.base_version):
498
+ return False
499
+
500
+ # Ensure that we do not allow a local version of the version mentioned
501
+ # in the specifier, which is technically greater than, to match.
502
+ if prospective.local is not None:
503
+ if Version(prospective.base_version) == Version(spec.base_version):
504
+ return False
505
+
506
+ # If we've gotten to here, it means that prospective version is both
507
+ # greater than the spec version *and* it's not a pre-release of the
508
+ # same version in the spec.
509
+ return True
510
+
511
+ def _compare_arbitrary(self, prospective: Version, spec: str) -> bool:
512
+ return str(prospective).lower() == str(spec).lower()
513
+
514
+ def __contains__(self, item: Union[str, Version]) -> bool:
515
+ """Return whether or not the item is contained in this specifier.
516
+
517
+ :param item: The item to check for.
518
+
519
+ This is used for the ``in`` operator and behaves the same as
520
+ :meth:`contains` with no ``prereleases`` argument passed.
521
+
522
+ >>> "1.2.3" in Specifier(">=1.2.3")
523
+ True
524
+ >>> Version("1.2.3") in Specifier(">=1.2.3")
525
+ True
526
+ >>> "1.0.0" in Specifier(">=1.2.3")
527
+ False
528
+ >>> "1.3.0a1" in Specifier(">=1.2.3")
529
+ False
530
+ >>> "1.3.0a1" in Specifier(">=1.2.3", prereleases=True)
531
+ True
532
+ """
533
+ return self.contains(item)
534
+
535
+ def contains(
536
+ self, item: UnparsedVersion, prereleases: Optional[bool] = None
537
+ ) -> bool:
538
+ """Return whether or not the item is contained in this specifier.
539
+
540
+ :param item:
541
+ The item to check for, which can be a version string or a
542
+ :class:`Version` instance.
543
+ :param prereleases:
544
+ Whether or not to match prereleases with this Specifier. If set to
545
+ ``None`` (the default), it uses :attr:`prereleases` to determine
546
+ whether or not prereleases are allowed.
547
+
548
+ >>> Specifier(">=1.2.3").contains("1.2.3")
549
+ True
550
+ >>> Specifier(">=1.2.3").contains(Version("1.2.3"))
551
+ True
552
+ >>> Specifier(">=1.2.3").contains("1.0.0")
553
+ False
554
+ >>> Specifier(">=1.2.3").contains("1.3.0a1")
555
+ False
556
+ >>> Specifier(">=1.2.3", prereleases=True).contains("1.3.0a1")
557
+ True
558
+ >>> Specifier(">=1.2.3").contains("1.3.0a1", prereleases=True)
559
+ True
560
+ """
561
+
562
+ # Determine if prereleases are to be allowed or not.
563
+ if prereleases is None:
564
+ prereleases = self.prereleases
565
+
566
+ # Normalize item to a Version, this allows us to have a shortcut for
567
+ # "2.0" in Specifier(">=2")
568
+ normalized_item = _coerce_version(item)
569
+
570
+ # Determine if we should be supporting prereleases in this specifier
571
+ # or not, if we do not support prereleases than we can short circuit
572
+ # logic if this version is a prereleases.
573
+ if normalized_item.is_prerelease and not prereleases:
574
+ return False
575
+
576
+ # Actually do the comparison to determine if this item is contained
577
+ # within this Specifier or not.
578
+ operator_callable: CallableOperator = self._get_operator(self.operator)
579
+ return operator_callable(normalized_item, self.version)
580
+
581
+ def filter(
582
+ self, iterable: Iterable[UnparsedVersionVar], prereleases: Optional[bool] = None
583
+ ) -> Iterator[UnparsedVersionVar]:
584
+ """Filter items in the given iterable, that match the specifier.
585
+
586
+ :param iterable:
587
+ An iterable that can contain version strings and :class:`Version` instances.
588
+ The items in the iterable will be filtered according to the specifier.
589
+ :param prereleases:
590
+ Whether or not to allow prereleases in the returned iterator. If set to
591
+ ``None`` (the default), it will be intelligently decide whether to allow
592
+ prereleases or not (based on the :attr:`prereleases` attribute, and
593
+ whether the only versions matching are prereleases).
594
+
595
+ This method is smarter than just ``filter(Specifier().contains, [...])``
596
+ because it implements the rule from :pep:`440` that a prerelease item
597
+ SHOULD be accepted if no other versions match the given specifier.
598
+
599
+ >>> list(Specifier(">=1.2.3").filter(["1.2", "1.3", "1.5a1"]))
600
+ ['1.3']
601
+ >>> list(Specifier(">=1.2.3").filter(["1.2", "1.2.3", "1.3", Version("1.4")]))
602
+ ['1.2.3', '1.3', <Version('1.4')>]
603
+ >>> list(Specifier(">=1.2.3").filter(["1.2", "1.5a1"]))
604
+ ['1.5a1']
605
+ >>> list(Specifier(">=1.2.3").filter(["1.3", "1.5a1"], prereleases=True))
606
+ ['1.3', '1.5a1']
607
+ >>> list(Specifier(">=1.2.3", prereleases=True).filter(["1.3", "1.5a1"]))
608
+ ['1.3', '1.5a1']
609
+ """
610
+
611
+ yielded = False
612
+ found_prereleases = []
613
+
614
+ kw = {"prereleases": prereleases if prereleases is not None else True}
615
+
616
+ # Attempt to iterate over all the values in the iterable and if any of
617
+ # them match, yield them.
618
+ for version in iterable:
619
+ parsed_version = _coerce_version(version)
620
+
621
+ if self.contains(parsed_version, **kw):
622
+ # If our version is a prerelease, and we were not set to allow
623
+ # prereleases, then we'll store it for later in case nothing
624
+ # else matches this specifier.
625
+ if parsed_version.is_prerelease and not (
626
+ prereleases or self.prereleases
627
+ ):
628
+ found_prereleases.append(version)
629
+ # Either this is not a prerelease, or we should have been
630
+ # accepting prereleases from the beginning.
631
+ else:
632
+ yielded = True
633
+ yield version
634
+
635
+ # Now that we've iterated over everything, determine if we've yielded
636
+ # any values, and if we have not and we have any prereleases stored up
637
+ # then we will go ahead and yield the prereleases.
638
+ if not yielded and found_prereleases:
639
+ for version in found_prereleases:
640
+ yield version
641
+
642
+
643
+ _prefix_regex = re.compile(r"^([0-9]+)((?:a|b|c|rc)[0-9]+)$")
644
+
645
+
646
+ def _version_split(version: str) -> List[str]:
647
+ result: List[str] = []
648
+ for item in version.split("."):
649
+ match = _prefix_regex.search(item)
650
+ if match:
651
+ result.extend(match.groups())
652
+ else:
653
+ result.append(item)
654
+ return result
655
+
656
+
657
+ def _is_not_suffix(segment: str) -> bool:
658
+ return not any(
659
+ segment.startswith(prefix) for prefix in ("dev", "a", "b", "rc", "post")
660
+ )
661
+
662
+
663
+ def _pad_version(left: List[str], right: List[str]) -> Tuple[List[str], List[str]]:
664
+ left_split, right_split = [], []
665
+
666
+ # Get the release segment of our versions
667
+ left_split.append(list(itertools.takewhile(lambda x: x.isdigit(), left)))
668
+ right_split.append(list(itertools.takewhile(lambda x: x.isdigit(), right)))
669
+
670
+ # Get the rest of our versions
671
+ left_split.append(left[len(left_split[0]) :])
672
+ right_split.append(right[len(right_split[0]) :])
673
+
674
+ # Insert our padding
675
+ left_split.insert(1, ["0"] * max(0, len(right_split[0]) - len(left_split[0])))
676
+ right_split.insert(1, ["0"] * max(0, len(left_split[0]) - len(right_split[0])))
677
+
678
+ return (list(itertools.chain(*left_split)), list(itertools.chain(*right_split)))
679
+
680
+
681
+ class SpecifierSet(BaseSpecifier):
682
+ """This class abstracts handling of a set of version specifiers.
683
+
684
+ It can be passed a single specifier (``>=3.0``), a comma-separated list of
685
+ specifiers (``>=3.0,!=3.1``), or no specifier at all.
686
+ """
687
+
688
+ def __init__(
689
+ self, specifiers: str = "", prereleases: Optional[bool] = None
690
+ ) -> None:
691
+ """Initialize a SpecifierSet instance.
692
+
693
+ :param specifiers:
694
+ The string representation of a specifier or a comma-separated list of
695
+ specifiers which will be parsed and normalized before use.
696
+ :param prereleases:
697
+ This tells the SpecifierSet if it should accept prerelease versions if
698
+ applicable or not. The default of ``None`` will autodetect it from the
699
+ given specifiers.
700
+
701
+ :raises InvalidSpecifier:
702
+ If the given ``specifiers`` are not parseable than this exception will be
703
+ raised.
704
+ """
705
+
706
+ # Split on `,` to break each individual specifier into it's own item, and
707
+ # strip each item to remove leading/trailing whitespace.
708
+ split_specifiers = [s.strip() for s in specifiers.split(",") if s.strip()]
709
+
710
+ # Parsed each individual specifier, attempting first to make it a
711
+ # Specifier.
712
+ parsed: Set[Specifier] = set()
713
+ for specifier in split_specifiers:
714
+ parsed.add(Specifier(specifier))
715
+
716
+ # Turn our parsed specifiers into a frozen set and save them for later.
717
+ self._specs = frozenset(parsed)
718
+
719
+ # Store our prereleases value so we can use it later to determine if
720
+ # we accept prereleases or not.
721
+ self._prereleases = prereleases
722
+
723
+ @property
724
+ def prereleases(self) -> Optional[bool]:
725
+ # If we have been given an explicit prerelease modifier, then we'll
726
+ # pass that through here.
727
+ if self._prereleases is not None:
728
+ return self._prereleases
729
+
730
+ # If we don't have any specifiers, and we don't have a forced value,
731
+ # then we'll just return None since we don't know if this should have
732
+ # pre-releases or not.
733
+ if not self._specs:
734
+ return None
735
+
736
+ # Otherwise we'll see if any of the given specifiers accept
737
+ # prereleases, if any of them do we'll return True, otherwise False.
738
+ return any(s.prereleases for s in self._specs)
739
+
740
+ @prereleases.setter
741
+ def prereleases(self, value: bool) -> None:
742
+ self._prereleases = value
743
+
744
+ def __repr__(self) -> str:
745
+ """A representation of the specifier set that shows all internal state.
746
+
747
+ Note that the ordering of the individual specifiers within the set may not
748
+ match the input string.
749
+
750
+ >>> SpecifierSet('>=1.0.0,!=2.0.0')
751
+ <SpecifierSet('!=2.0.0,>=1.0.0')>
752
+ >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=False)
753
+ <SpecifierSet('!=2.0.0,>=1.0.0', prereleases=False)>
754
+ >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=True)
755
+ <SpecifierSet('!=2.0.0,>=1.0.0', prereleases=True)>
756
+ """
757
+ pre = (
758
+ f", prereleases={self.prereleases!r}"
759
+ if self._prereleases is not None
760
+ else ""
761
+ )
762
+
763
+ return f"<SpecifierSet({str(self)!r}{pre})>"
764
+
765
+ def __str__(self) -> str:
766
+ """A string representation of the specifier set that can be round-tripped.
767
+
768
+ Note that the ordering of the individual specifiers within the set may not
769
+ match the input string.
770
+
771
+ >>> str(SpecifierSet(">=1.0.0,!=1.0.1"))
772
+ '!=1.0.1,>=1.0.0'
773
+ >>> str(SpecifierSet(">=1.0.0,!=1.0.1", prereleases=False))
774
+ '!=1.0.1,>=1.0.0'
775
+ """
776
+ return ",".join(sorted(str(s) for s in self._specs))
777
+
778
+ def __hash__(self) -> int:
779
+ return hash(self._specs)
780
+
781
+ def __and__(self, other: Union["SpecifierSet", str]) -> "SpecifierSet":
782
+ """Return a SpecifierSet which is a combination of the two sets.
783
+
784
+ :param other: The other object to combine with.
785
+
786
+ >>> SpecifierSet(">=1.0.0,!=1.0.1") & '<=2.0.0,!=2.0.1'
787
+ <SpecifierSet('!=1.0.1,!=2.0.1,<=2.0.0,>=1.0.0')>
788
+ >>> SpecifierSet(">=1.0.0,!=1.0.1") & SpecifierSet('<=2.0.0,!=2.0.1')
789
+ <SpecifierSet('!=1.0.1,!=2.0.1,<=2.0.0,>=1.0.0')>
790
+ """
791
+ if isinstance(other, str):
792
+ other = SpecifierSet(other)
793
+ elif not isinstance(other, SpecifierSet):
794
+ return NotImplemented
795
+
796
+ specifier = SpecifierSet()
797
+ specifier._specs = frozenset(self._specs | other._specs)
798
+
799
+ if self._prereleases is None and other._prereleases is not None:
800
+ specifier._prereleases = other._prereleases
801
+ elif self._prereleases is not None and other._prereleases is None:
802
+ specifier._prereleases = self._prereleases
803
+ elif self._prereleases == other._prereleases:
804
+ specifier._prereleases = self._prereleases
805
+ else:
806
+ raise ValueError(
807
+ "Cannot combine SpecifierSets with True and False prerelease "
808
+ "overrides."
809
+ )
810
+
811
+ return specifier
812
+
813
+ def __eq__(self, other: object) -> bool:
814
+ """Whether or not the two SpecifierSet-like objects are equal.
815
+
816
+ :param other: The other object to check against.
817
+
818
+ The value of :attr:`prereleases` is ignored.
819
+
820
+ >>> SpecifierSet(">=1.0.0,!=1.0.1") == SpecifierSet(">=1.0.0,!=1.0.1")
821
+ True
822
+ >>> (SpecifierSet(">=1.0.0,!=1.0.1", prereleases=False) ==
823
+ ... SpecifierSet(">=1.0.0,!=1.0.1", prereleases=True))
824
+ True
825
+ >>> SpecifierSet(">=1.0.0,!=1.0.1") == ">=1.0.0,!=1.0.1"
826
+ True
827
+ >>> SpecifierSet(">=1.0.0,!=1.0.1") == SpecifierSet(">=1.0.0")
828
+ False
829
+ >>> SpecifierSet(">=1.0.0,!=1.0.1") == SpecifierSet(">=1.0.0,!=1.0.2")
830
+ False
831
+ """
832
+ if isinstance(other, (str, Specifier)):
833
+ other = SpecifierSet(str(other))
834
+ elif not isinstance(other, SpecifierSet):
835
+ return NotImplemented
836
+
837
+ return self._specs == other._specs
838
+
839
+ def __len__(self) -> int:
840
+ """Returns the number of specifiers in this specifier set."""
841
+ return len(self._specs)
842
+
843
+ def __iter__(self) -> Iterator[Specifier]:
844
+ """
845
+ Returns an iterator over all the underlying :class:`Specifier` instances
846
+ in this specifier set.
847
+
848
+ >>> sorted(SpecifierSet(">=1.0.0,!=1.0.1"), key=str)
849
+ [<Specifier('!=1.0.1')>, <Specifier('>=1.0.0')>]
850
+ """
851
+ return iter(self._specs)
852
+
853
+ def __contains__(self, item: UnparsedVersion) -> bool:
854
+ """Return whether or not the item is contained in this specifier.
855
+
856
+ :param item: The item to check for.
857
+
858
+ This is used for the ``in`` operator and behaves the same as
859
+ :meth:`contains` with no ``prereleases`` argument passed.
860
+
861
+ >>> "1.2.3" in SpecifierSet(">=1.0.0,!=1.0.1")
862
+ True
863
+ >>> Version("1.2.3") in SpecifierSet(">=1.0.0,!=1.0.1")
864
+ True
865
+ >>> "1.0.1" in SpecifierSet(">=1.0.0,!=1.0.1")
866
+ False
867
+ >>> "1.3.0a1" in SpecifierSet(">=1.0.0,!=1.0.1")
868
+ False
869
+ >>> "1.3.0a1" in SpecifierSet(">=1.0.0,!=1.0.1", prereleases=True)
870
+ True
871
+ """
872
+ return self.contains(item)
873
+
874
+ def contains(
875
+ self,
876
+ item: UnparsedVersion,
877
+ prereleases: Optional[bool] = None,
878
+ installed: Optional[bool] = None,
879
+ ) -> bool:
880
+ """Return whether or not the item is contained in this SpecifierSet.
881
+
882
+ :param item:
883
+ The item to check for, which can be a version string or a
884
+ :class:`Version` instance.
885
+ :param prereleases:
886
+ Whether or not to match prereleases with this SpecifierSet. If set to
887
+ ``None`` (the default), it uses :attr:`prereleases` to determine
888
+ whether or not prereleases are allowed.
889
+
890
+ >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.2.3")
891
+ True
892
+ >>> SpecifierSet(">=1.0.0,!=1.0.1").contains(Version("1.2.3"))
893
+ True
894
+ >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.0.1")
895
+ False
896
+ >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.3.0a1")
897
+ False
898
+ >>> SpecifierSet(">=1.0.0,!=1.0.1", prereleases=True).contains("1.3.0a1")
899
+ True
900
+ >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.3.0a1", prereleases=True)
901
+ True
902
+ """
903
+ # Ensure that our item is a Version instance.
904
+ if not isinstance(item, Version):
905
+ item = Version(item)
906
+
907
+ # Determine if we're forcing a prerelease or not, if we're not forcing
908
+ # one for this particular filter call, then we'll use whatever the
909
+ # SpecifierSet thinks for whether or not we should support prereleases.
910
+ if prereleases is None:
911
+ prereleases = self.prereleases
912
+
913
+ # We can determine if we're going to allow pre-releases by looking to
914
+ # see if any of the underlying items supports them. If none of them do
915
+ # and this item is a pre-release then we do not allow it and we can
916
+ # short circuit that here.
917
+ # Note: This means that 1.0.dev1 would not be contained in something
918
+ # like >=1.0.devabc however it would be in >=1.0.debabc,>0.0.dev0
919
+ if not prereleases and item.is_prerelease:
920
+ return False
921
+
922
+ if installed and item.is_prerelease:
923
+ item = Version(item.base_version)
924
+
925
+ # We simply dispatch to the underlying specs here to make sure that the
926
+ # given version is contained within all of them.
927
+ # Note: This use of all() here means that an empty set of specifiers
928
+ # will always return True, this is an explicit design decision.
929
+ return all(s.contains(item, prereleases=prereleases) for s in self._specs)
930
+
931
+ def filter(
932
+ self, iterable: Iterable[UnparsedVersionVar], prereleases: Optional[bool] = None
933
+ ) -> Iterator[UnparsedVersionVar]:
934
+ """Filter items in the given iterable, that match the specifiers in this set.
935
+
936
+ :param iterable:
937
+ An iterable that can contain version strings and :class:`Version` instances.
938
+ The items in the iterable will be filtered according to the specifier.
939
+ :param prereleases:
940
+ Whether or not to allow prereleases in the returned iterator. If set to
941
+ ``None`` (the default), it will be intelligently decide whether to allow
942
+ prereleases or not (based on the :attr:`prereleases` attribute, and
943
+ whether the only versions matching are prereleases).
944
+
945
+ This method is smarter than just ``filter(SpecifierSet(...).contains, [...])``
946
+ because it implements the rule from :pep:`440` that a prerelease item
947
+ SHOULD be accepted if no other versions match the given specifier.
948
+
949
+ >>> list(SpecifierSet(">=1.2.3").filter(["1.2", "1.3", "1.5a1"]))
950
+ ['1.3']
951
+ >>> list(SpecifierSet(">=1.2.3").filter(["1.2", "1.3", Version("1.4")]))
952
+ ['1.3', <Version('1.4')>]
953
+ >>> list(SpecifierSet(">=1.2.3").filter(["1.2", "1.5a1"]))
954
+ []
955
+ >>> list(SpecifierSet(">=1.2.3").filter(["1.3", "1.5a1"], prereleases=True))
956
+ ['1.3', '1.5a1']
957
+ >>> list(SpecifierSet(">=1.2.3", prereleases=True).filter(["1.3", "1.5a1"]))
958
+ ['1.3', '1.5a1']
959
+
960
+ An "empty" SpecifierSet will filter items based on the presence of prerelease
961
+ versions in the set.
962
+
963
+ >>> list(SpecifierSet("").filter(["1.3", "1.5a1"]))
964
+ ['1.3']
965
+ >>> list(SpecifierSet("").filter(["1.5a1"]))
966
+ ['1.5a1']
967
+ >>> list(SpecifierSet("", prereleases=True).filter(["1.3", "1.5a1"]))
968
+ ['1.3', '1.5a1']
969
+ >>> list(SpecifierSet("").filter(["1.3", "1.5a1"], prereleases=True))
970
+ ['1.3', '1.5a1']
971
+ """
972
+ # Determine if we're forcing a prerelease or not, if we're not forcing
973
+ # one for this particular filter call, then we'll use whatever the
974
+ # SpecifierSet thinks for whether or not we should support prereleases.
975
+ if prereleases is None:
976
+ prereleases = self.prereleases
977
+
978
+ # If we have any specifiers, then we want to wrap our iterable in the
979
+ # filter method for each one, this will act as a logical AND amongst
980
+ # each specifier.
981
+ if self._specs:
982
+ for spec in self._specs:
983
+ iterable = spec.filter(iterable, prereleases=bool(prereleases))
984
+ return iter(iterable)
985
+ # If we do not have any specifiers, then we need to have a rough filter
986
+ # which will filter out any pre-releases, unless there are no final
987
+ # releases.
988
+ else:
989
+ filtered: List[UnparsedVersionVar] = []
990
+ found_prereleases: List[UnparsedVersionVar] = []
991
+
992
+ for item in iterable:
993
+ parsed_version = _coerce_version(item)
994
+
995
+ # Store any item which is a pre-release for later unless we've
996
+ # already found a final version or we are accepting prereleases
997
+ if parsed_version.is_prerelease and not prereleases:
998
+ if not filtered:
999
+ found_prereleases.append(item)
1000
+ else:
1001
+ filtered.append(item)
1002
+
1003
+ # If we've found no items except for pre-releases, then we'll go
1004
+ # ahead and use the pre-releases
1005
+ if not filtered and found_prereleases and prereleases is None:
1006
+ return iter(found_prereleases)
1007
+
1008
+ return iter(filtered)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/tags.py ADDED
@@ -0,0 +1,553 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ import logging
6
+ import platform
7
+ import struct
8
+ import subprocess
9
+ import sys
10
+ import sysconfig
11
+ from importlib.machinery import EXTENSION_SUFFIXES
12
+ from typing import (
13
+ Dict,
14
+ FrozenSet,
15
+ Iterable,
16
+ Iterator,
17
+ List,
18
+ Optional,
19
+ Sequence,
20
+ Tuple,
21
+ Union,
22
+ cast,
23
+ )
24
+
25
+ from . import _manylinux, _musllinux
26
+
27
+ logger = logging.getLogger(__name__)
28
+
29
+ PythonVersion = Sequence[int]
30
+ MacVersion = Tuple[int, int]
31
+
32
+ INTERPRETER_SHORT_NAMES: Dict[str, str] = {
33
+ "python": "py", # Generic.
34
+ "cpython": "cp",
35
+ "pypy": "pp",
36
+ "ironpython": "ip",
37
+ "jython": "jy",
38
+ }
39
+
40
+
41
+ _32_BIT_INTERPRETER = struct.calcsize("P") == 4
42
+
43
+
44
+ class Tag:
45
+ """
46
+ A representation of the tag triple for a wheel.
47
+
48
+ Instances are considered immutable and thus are hashable. Equality checking
49
+ is also supported.
50
+ """
51
+
52
+ __slots__ = ["_interpreter", "_abi", "_platform", "_hash"]
53
+
54
+ def __init__(self, interpreter: str, abi: str, platform: str) -> None:
55
+ self._interpreter = interpreter.lower()
56
+ self._abi = abi.lower()
57
+ self._platform = platform.lower()
58
+ # The __hash__ of every single element in a Set[Tag] will be evaluated each time
59
+ # that a set calls its `.disjoint()` method, which may be called hundreds of
60
+ # times when scanning a page of links for packages with tags matching that
61
+ # Set[Tag]. Pre-computing the value here produces significant speedups for
62
+ # downstream consumers.
63
+ self._hash = hash((self._interpreter, self._abi, self._platform))
64
+
65
+ @property
66
+ def interpreter(self) -> str:
67
+ return self._interpreter
68
+
69
+ @property
70
+ def abi(self) -> str:
71
+ return self._abi
72
+
73
+ @property
74
+ def platform(self) -> str:
75
+ return self._platform
76
+
77
+ def __eq__(self, other: object) -> bool:
78
+ if not isinstance(other, Tag):
79
+ return NotImplemented
80
+
81
+ return (
82
+ (self._hash == other._hash) # Short-circuit ASAP for perf reasons.
83
+ and (self._platform == other._platform)
84
+ and (self._abi == other._abi)
85
+ and (self._interpreter == other._interpreter)
86
+ )
87
+
88
+ def __hash__(self) -> int:
89
+ return self._hash
90
+
91
+ def __str__(self) -> str:
92
+ return f"{self._interpreter}-{self._abi}-{self._platform}"
93
+
94
+ def __repr__(self) -> str:
95
+ return f"<{self} @ {id(self)}>"
96
+
97
+
98
+ def parse_tag(tag: str) -> FrozenSet[Tag]:
99
+ """
100
+ Parses the provided tag (e.g. `py3-none-any`) into a frozenset of Tag instances.
101
+
102
+ Returning a set is required due to the possibility that the tag is a
103
+ compressed tag set.
104
+ """
105
+ tags = set()
106
+ interpreters, abis, platforms = tag.split("-")
107
+ for interpreter in interpreters.split("."):
108
+ for abi in abis.split("."):
109
+ for platform_ in platforms.split("."):
110
+ tags.add(Tag(interpreter, abi, platform_))
111
+ return frozenset(tags)
112
+
113
+
114
+ def _get_config_var(name: str, warn: bool = False) -> Union[int, str, None]:
115
+ value: Union[int, str, None] = sysconfig.get_config_var(name)
116
+ if value is None and warn:
117
+ logger.debug(
118
+ "Config variable '%s' is unset, Python ABI tag may be incorrect", name
119
+ )
120
+ return value
121
+
122
+
123
+ def _normalize_string(string: str) -> str:
124
+ return string.replace(".", "_").replace("-", "_").replace(" ", "_")
125
+
126
+
127
+ def _abi3_applies(python_version: PythonVersion) -> bool:
128
+ """
129
+ Determine if the Python version supports abi3.
130
+
131
+ PEP 384 was first implemented in Python 3.2.
132
+ """
133
+ return len(python_version) > 1 and tuple(python_version) >= (3, 2)
134
+
135
+
136
+ def _cpython_abis(py_version: PythonVersion, warn: bool = False) -> List[str]:
137
+ py_version = tuple(py_version) # To allow for version comparison.
138
+ abis = []
139
+ version = _version_nodot(py_version[:2])
140
+ debug = pymalloc = ucs4 = ""
141
+ with_debug = _get_config_var("Py_DEBUG", warn)
142
+ has_refcount = hasattr(sys, "gettotalrefcount")
143
+ # Windows doesn't set Py_DEBUG, so checking for support of debug-compiled
144
+ # extension modules is the best option.
145
+ # https://github.com/pypa/pip/issues/3383#issuecomment-173267692
146
+ has_ext = "_d.pyd" in EXTENSION_SUFFIXES
147
+ if with_debug or (with_debug is None and (has_refcount or has_ext)):
148
+ debug = "d"
149
+ if py_version < (3, 8):
150
+ with_pymalloc = _get_config_var("WITH_PYMALLOC", warn)
151
+ if with_pymalloc or with_pymalloc is None:
152
+ pymalloc = "m"
153
+ if py_version < (3, 3):
154
+ unicode_size = _get_config_var("Py_UNICODE_SIZE", warn)
155
+ if unicode_size == 4 or (
156
+ unicode_size is None and sys.maxunicode == 0x10FFFF
157
+ ):
158
+ ucs4 = "u"
159
+ elif debug:
160
+ # Debug builds can also load "normal" extension modules.
161
+ # We can also assume no UCS-4 or pymalloc requirement.
162
+ abis.append(f"cp{version}")
163
+ abis.insert(
164
+ 0,
165
+ "cp{version}{debug}{pymalloc}{ucs4}".format(
166
+ version=version, debug=debug, pymalloc=pymalloc, ucs4=ucs4
167
+ ),
168
+ )
169
+ return abis
170
+
171
+
172
+ def cpython_tags(
173
+ python_version: Optional[PythonVersion] = None,
174
+ abis: Optional[Iterable[str]] = None,
175
+ platforms: Optional[Iterable[str]] = None,
176
+ *,
177
+ warn: bool = False,
178
+ ) -> Iterator[Tag]:
179
+ """
180
+ Yields the tags for a CPython interpreter.
181
+
182
+ The tags consist of:
183
+ - cp<python_version>-<abi>-<platform>
184
+ - cp<python_version>-abi3-<platform>
185
+ - cp<python_version>-none-<platform>
186
+ - cp<less than python_version>-abi3-<platform> # Older Python versions down to 3.2.
187
+
188
+ If python_version only specifies a major version then user-provided ABIs and
189
+ the 'none' ABItag will be used.
190
+
191
+ If 'abi3' or 'none' are specified in 'abis' then they will be yielded at
192
+ their normal position and not at the beginning.
193
+ """
194
+ if not python_version:
195
+ python_version = sys.version_info[:2]
196
+
197
+ interpreter = f"cp{_version_nodot(python_version[:2])}"
198
+
199
+ if abis is None:
200
+ if len(python_version) > 1:
201
+ abis = _cpython_abis(python_version, warn)
202
+ else:
203
+ abis = []
204
+ abis = list(abis)
205
+ # 'abi3' and 'none' are explicitly handled later.
206
+ for explicit_abi in ("abi3", "none"):
207
+ try:
208
+ abis.remove(explicit_abi)
209
+ except ValueError:
210
+ pass
211
+
212
+ platforms = list(platforms or platform_tags())
213
+ for abi in abis:
214
+ for platform_ in platforms:
215
+ yield Tag(interpreter, abi, platform_)
216
+ if _abi3_applies(python_version):
217
+ yield from (Tag(interpreter, "abi3", platform_) for platform_ in platforms)
218
+ yield from (Tag(interpreter, "none", platform_) for platform_ in platforms)
219
+
220
+ if _abi3_applies(python_version):
221
+ for minor_version in range(python_version[1] - 1, 1, -1):
222
+ for platform_ in platforms:
223
+ interpreter = "cp{version}".format(
224
+ version=_version_nodot((python_version[0], minor_version))
225
+ )
226
+ yield Tag(interpreter, "abi3", platform_)
227
+
228
+
229
+ def _generic_abi() -> List[str]:
230
+ """
231
+ Return the ABI tag based on EXT_SUFFIX.
232
+ """
233
+ # The following are examples of `EXT_SUFFIX`.
234
+ # We want to keep the parts which are related to the ABI and remove the
235
+ # parts which are related to the platform:
236
+ # - linux: '.cpython-310-x86_64-linux-gnu.so' => cp310
237
+ # - mac: '.cpython-310-darwin.so' => cp310
238
+ # - win: '.cp310-win_amd64.pyd' => cp310
239
+ # - win: '.pyd' => cp37 (uses _cpython_abis())
240
+ # - pypy: '.pypy38-pp73-x86_64-linux-gnu.so' => pypy38_pp73
241
+ # - graalpy: '.graalpy-38-native-x86_64-darwin.dylib'
242
+ # => graalpy_38_native
243
+
244
+ ext_suffix = _get_config_var("EXT_SUFFIX", warn=True)
245
+ if not isinstance(ext_suffix, str) or ext_suffix[0] != ".":
246
+ raise SystemError("invalid sysconfig.get_config_var('EXT_SUFFIX')")
247
+ parts = ext_suffix.split(".")
248
+ if len(parts) < 3:
249
+ # CPython3.7 and earlier uses ".pyd" on Windows.
250
+ return _cpython_abis(sys.version_info[:2])
251
+ soabi = parts[1]
252
+ if soabi.startswith("cpython"):
253
+ # non-windows
254
+ abi = "cp" + soabi.split("-")[1]
255
+ elif soabi.startswith("cp"):
256
+ # windows
257
+ abi = soabi.split("-")[0]
258
+ elif soabi.startswith("pypy"):
259
+ abi = "-".join(soabi.split("-")[:2])
260
+ elif soabi.startswith("graalpy"):
261
+ abi = "-".join(soabi.split("-")[:3])
262
+ elif soabi:
263
+ # pyston, ironpython, others?
264
+ abi = soabi
265
+ else:
266
+ return []
267
+ return [_normalize_string(abi)]
268
+
269
+
270
+ def generic_tags(
271
+ interpreter: Optional[str] = None,
272
+ abis: Optional[Iterable[str]] = None,
273
+ platforms: Optional[Iterable[str]] = None,
274
+ *,
275
+ warn: bool = False,
276
+ ) -> Iterator[Tag]:
277
+ """
278
+ Yields the tags for a generic interpreter.
279
+
280
+ The tags consist of:
281
+ - <interpreter>-<abi>-<platform>
282
+
283
+ The "none" ABI will be added if it was not explicitly provided.
284
+ """
285
+ if not interpreter:
286
+ interp_name = interpreter_name()
287
+ interp_version = interpreter_version(warn=warn)
288
+ interpreter = "".join([interp_name, interp_version])
289
+ if abis is None:
290
+ abis = _generic_abi()
291
+ else:
292
+ abis = list(abis)
293
+ platforms = list(platforms or platform_tags())
294
+ if "none" not in abis:
295
+ abis.append("none")
296
+ for abi in abis:
297
+ for platform_ in platforms:
298
+ yield Tag(interpreter, abi, platform_)
299
+
300
+
301
+ def _py_interpreter_range(py_version: PythonVersion) -> Iterator[str]:
302
+ """
303
+ Yields Python versions in descending order.
304
+
305
+ After the latest version, the major-only version will be yielded, and then
306
+ all previous versions of that major version.
307
+ """
308
+ if len(py_version) > 1:
309
+ yield f"py{_version_nodot(py_version[:2])}"
310
+ yield f"py{py_version[0]}"
311
+ if len(py_version) > 1:
312
+ for minor in range(py_version[1] - 1, -1, -1):
313
+ yield f"py{_version_nodot((py_version[0], minor))}"
314
+
315
+
316
+ def compatible_tags(
317
+ python_version: Optional[PythonVersion] = None,
318
+ interpreter: Optional[str] = None,
319
+ platforms: Optional[Iterable[str]] = None,
320
+ ) -> Iterator[Tag]:
321
+ """
322
+ Yields the sequence of tags that are compatible with a specific version of Python.
323
+
324
+ The tags consist of:
325
+ - py*-none-<platform>
326
+ - <interpreter>-none-any # ... if `interpreter` is provided.
327
+ - py*-none-any
328
+ """
329
+ if not python_version:
330
+ python_version = sys.version_info[:2]
331
+ platforms = list(platforms or platform_tags())
332
+ for version in _py_interpreter_range(python_version):
333
+ for platform_ in platforms:
334
+ yield Tag(version, "none", platform_)
335
+ if interpreter:
336
+ yield Tag(interpreter, "none", "any")
337
+ for version in _py_interpreter_range(python_version):
338
+ yield Tag(version, "none", "any")
339
+
340
+
341
+ def _mac_arch(arch: str, is_32bit: bool = _32_BIT_INTERPRETER) -> str:
342
+ if not is_32bit:
343
+ return arch
344
+
345
+ if arch.startswith("ppc"):
346
+ return "ppc"
347
+
348
+ return "i386"
349
+
350
+
351
+ def _mac_binary_formats(version: MacVersion, cpu_arch: str) -> List[str]:
352
+ formats = [cpu_arch]
353
+ if cpu_arch == "x86_64":
354
+ if version < (10, 4):
355
+ return []
356
+ formats.extend(["intel", "fat64", "fat32"])
357
+
358
+ elif cpu_arch == "i386":
359
+ if version < (10, 4):
360
+ return []
361
+ formats.extend(["intel", "fat32", "fat"])
362
+
363
+ elif cpu_arch == "ppc64":
364
+ # TODO: Need to care about 32-bit PPC for ppc64 through 10.2?
365
+ if version > (10, 5) or version < (10, 4):
366
+ return []
367
+ formats.append("fat64")
368
+
369
+ elif cpu_arch == "ppc":
370
+ if version > (10, 6):
371
+ return []
372
+ formats.extend(["fat32", "fat"])
373
+
374
+ if cpu_arch in {"arm64", "x86_64"}:
375
+ formats.append("universal2")
376
+
377
+ if cpu_arch in {"x86_64", "i386", "ppc64", "ppc", "intel"}:
378
+ formats.append("universal")
379
+
380
+ return formats
381
+
382
+
383
+ def mac_platforms(
384
+ version: Optional[MacVersion] = None, arch: Optional[str] = None
385
+ ) -> Iterator[str]:
386
+ """
387
+ Yields the platform tags for a macOS system.
388
+
389
+ The `version` parameter is a two-item tuple specifying the macOS version to
390
+ generate platform tags for. The `arch` parameter is the CPU architecture to
391
+ generate platform tags for. Both parameters default to the appropriate value
392
+ for the current system.
393
+ """
394
+ version_str, _, cpu_arch = platform.mac_ver()
395
+ if version is None:
396
+ version = cast("MacVersion", tuple(map(int, version_str.split(".")[:2])))
397
+ if version == (10, 16):
398
+ # When built against an older macOS SDK, Python will report macOS 10.16
399
+ # instead of the real version.
400
+ version_str = subprocess.run(
401
+ [
402
+ sys.executable,
403
+ "-sS",
404
+ "-c",
405
+ "import platform; print(platform.mac_ver()[0])",
406
+ ],
407
+ check=True,
408
+ env={"SYSTEM_VERSION_COMPAT": "0"},
409
+ stdout=subprocess.PIPE,
410
+ text=True,
411
+ ).stdout
412
+ version = cast("MacVersion", tuple(map(int, version_str.split(".")[:2])))
413
+ else:
414
+ version = version
415
+ if arch is None:
416
+ arch = _mac_arch(cpu_arch)
417
+ else:
418
+ arch = arch
419
+
420
+ if (10, 0) <= version and version < (11, 0):
421
+ # Prior to Mac OS 11, each yearly release of Mac OS bumped the
422
+ # "minor" version number. The major version was always 10.
423
+ for minor_version in range(version[1], -1, -1):
424
+ compat_version = 10, minor_version
425
+ binary_formats = _mac_binary_formats(compat_version, arch)
426
+ for binary_format in binary_formats:
427
+ yield "macosx_{major}_{minor}_{binary_format}".format(
428
+ major=10, minor=minor_version, binary_format=binary_format
429
+ )
430
+
431
+ if version >= (11, 0):
432
+ # Starting with Mac OS 11, each yearly release bumps the major version
433
+ # number. The minor versions are now the midyear updates.
434
+ for major_version in range(version[0], 10, -1):
435
+ compat_version = major_version, 0
436
+ binary_formats = _mac_binary_formats(compat_version, arch)
437
+ for binary_format in binary_formats:
438
+ yield "macosx_{major}_{minor}_{binary_format}".format(
439
+ major=major_version, minor=0, binary_format=binary_format
440
+ )
441
+
442
+ if version >= (11, 0):
443
+ # Mac OS 11 on x86_64 is compatible with binaries from previous releases.
444
+ # Arm64 support was introduced in 11.0, so no Arm binaries from previous
445
+ # releases exist.
446
+ #
447
+ # However, the "universal2" binary format can have a
448
+ # macOS version earlier than 11.0 when the x86_64 part of the binary supports
449
+ # that version of macOS.
450
+ if arch == "x86_64":
451
+ for minor_version in range(16, 3, -1):
452
+ compat_version = 10, minor_version
453
+ binary_formats = _mac_binary_formats(compat_version, arch)
454
+ for binary_format in binary_formats:
455
+ yield "macosx_{major}_{minor}_{binary_format}".format(
456
+ major=compat_version[0],
457
+ minor=compat_version[1],
458
+ binary_format=binary_format,
459
+ )
460
+ else:
461
+ for minor_version in range(16, 3, -1):
462
+ compat_version = 10, minor_version
463
+ binary_format = "universal2"
464
+ yield "macosx_{major}_{minor}_{binary_format}".format(
465
+ major=compat_version[0],
466
+ minor=compat_version[1],
467
+ binary_format=binary_format,
468
+ )
469
+
470
+
471
+ def _linux_platforms(is_32bit: bool = _32_BIT_INTERPRETER) -> Iterator[str]:
472
+ linux = _normalize_string(sysconfig.get_platform())
473
+ if not linux.startswith("linux_"):
474
+ # we should never be here, just yield the sysconfig one and return
475
+ yield linux
476
+ return
477
+ if is_32bit:
478
+ if linux == "linux_x86_64":
479
+ linux = "linux_i686"
480
+ elif linux == "linux_aarch64":
481
+ linux = "linux_armv8l"
482
+ _, arch = linux.split("_", 1)
483
+ archs = {"armv8l": ["armv8l", "armv7l"]}.get(arch, [arch])
484
+ yield from _manylinux.platform_tags(archs)
485
+ yield from _musllinux.platform_tags(archs)
486
+ for arch in archs:
487
+ yield f"linux_{arch}"
488
+
489
+
490
+ def _generic_platforms() -> Iterator[str]:
491
+ yield _normalize_string(sysconfig.get_platform())
492
+
493
+
494
+ def platform_tags() -> Iterator[str]:
495
+ """
496
+ Provides the platform tags for this installation.
497
+ """
498
+ if platform.system() == "Darwin":
499
+ return mac_platforms()
500
+ elif platform.system() == "Linux":
501
+ return _linux_platforms()
502
+ else:
503
+ return _generic_platforms()
504
+
505
+
506
+ def interpreter_name() -> str:
507
+ """
508
+ Returns the name of the running interpreter.
509
+
510
+ Some implementations have a reserved, two-letter abbreviation which will
511
+ be returned when appropriate.
512
+ """
513
+ name = sys.implementation.name
514
+ return INTERPRETER_SHORT_NAMES.get(name) or name
515
+
516
+
517
+ def interpreter_version(*, warn: bool = False) -> str:
518
+ """
519
+ Returns the version of the running interpreter.
520
+ """
521
+ version = _get_config_var("py_version_nodot", warn=warn)
522
+ if version:
523
+ version = str(version)
524
+ else:
525
+ version = _version_nodot(sys.version_info[:2])
526
+ return version
527
+
528
+
529
+ def _version_nodot(version: PythonVersion) -> str:
530
+ return "".join(map(str, version))
531
+
532
+
533
+ def sys_tags(*, warn: bool = False) -> Iterator[Tag]:
534
+ """
535
+ Returns the sequence of tag triples for the running interpreter.
536
+
537
+ The order of the sequence corresponds to priority order for the
538
+ interpreter, from most to least important.
539
+ """
540
+
541
+ interp_name = interpreter_name()
542
+ if interp_name == "cp":
543
+ yield from cpython_tags(warn=warn)
544
+ else:
545
+ yield from generic_tags()
546
+
547
+ if interp_name == "pp":
548
+ interp = "pp3"
549
+ elif interp_name == "cp":
550
+ interp = "cp" + interpreter_version(warn=warn)
551
+ else:
552
+ interp = None
553
+ yield from compatible_tags(interpreter=interp)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/utils.py ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+
5
+ import re
6
+ from typing import FrozenSet, NewType, Tuple, Union, cast
7
+
8
+ from .tags import Tag, parse_tag
9
+ from .version import InvalidVersion, Version
10
+
11
+ BuildTag = Union[Tuple[()], Tuple[int, str]]
12
+ NormalizedName = NewType("NormalizedName", str)
13
+
14
+
15
+ class InvalidName(ValueError):
16
+ """
17
+ An invalid distribution name; users should refer to the packaging user guide.
18
+ """
19
+
20
+
21
+ class InvalidWheelFilename(ValueError):
22
+ """
23
+ An invalid wheel filename was found, users should refer to PEP 427.
24
+ """
25
+
26
+
27
+ class InvalidSdistFilename(ValueError):
28
+ """
29
+ An invalid sdist filename was found, users should refer to the packaging user guide.
30
+ """
31
+
32
+
33
+ # Core metadata spec for `Name`
34
+ _validate_regex = re.compile(
35
+ r"^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$", re.IGNORECASE
36
+ )
37
+ _canonicalize_regex = re.compile(r"[-_.]+")
38
+ _normalized_regex = re.compile(r"^([a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9])$")
39
+ # PEP 427: The build number must start with a digit.
40
+ _build_tag_regex = re.compile(r"(\d+)(.*)")
41
+
42
+
43
+ def canonicalize_name(name: str, *, validate: bool = False) -> NormalizedName:
44
+ if validate and not _validate_regex.match(name):
45
+ raise InvalidName(f"name is invalid: {name!r}")
46
+ # This is taken from PEP 503.
47
+ value = _canonicalize_regex.sub("-", name).lower()
48
+ return cast(NormalizedName, value)
49
+
50
+
51
+ def is_normalized_name(name: str) -> bool:
52
+ return _normalized_regex.match(name) is not None
53
+
54
+
55
+ def canonicalize_version(
56
+ version: Union[Version, str], *, strip_trailing_zero: bool = True
57
+ ) -> str:
58
+ """
59
+ This is very similar to Version.__str__, but has one subtle difference
60
+ with the way it handles the release segment.
61
+ """
62
+ if isinstance(version, str):
63
+ try:
64
+ parsed = Version(version)
65
+ except InvalidVersion:
66
+ # Legacy versions cannot be normalized
67
+ return version
68
+ else:
69
+ parsed = version
70
+
71
+ parts = []
72
+
73
+ # Epoch
74
+ if parsed.epoch != 0:
75
+ parts.append(f"{parsed.epoch}!")
76
+
77
+ # Release segment
78
+ release_segment = ".".join(str(x) for x in parsed.release)
79
+ if strip_trailing_zero:
80
+ # NB: This strips trailing '.0's to normalize
81
+ release_segment = re.sub(r"(\.0)+$", "", release_segment)
82
+ parts.append(release_segment)
83
+
84
+ # Pre-release
85
+ if parsed.pre is not None:
86
+ parts.append("".join(str(x) for x in parsed.pre))
87
+
88
+ # Post-release
89
+ if parsed.post is not None:
90
+ parts.append(f".post{parsed.post}")
91
+
92
+ # Development release
93
+ if parsed.dev is not None:
94
+ parts.append(f".dev{parsed.dev}")
95
+
96
+ # Local version segment
97
+ if parsed.local is not None:
98
+ parts.append(f"+{parsed.local}")
99
+
100
+ return "".join(parts)
101
+
102
+
103
+ def parse_wheel_filename(
104
+ filename: str,
105
+ ) -> Tuple[NormalizedName, Version, BuildTag, FrozenSet[Tag]]:
106
+ if not filename.endswith(".whl"):
107
+ raise InvalidWheelFilename(
108
+ f"Invalid wheel filename (extension must be '.whl'): {filename}"
109
+ )
110
+
111
+ filename = filename[:-4]
112
+ dashes = filename.count("-")
113
+ if dashes not in (4, 5):
114
+ raise InvalidWheelFilename(
115
+ f"Invalid wheel filename (wrong number of parts): {filename}"
116
+ )
117
+
118
+ parts = filename.split("-", dashes - 2)
119
+ name_part = parts[0]
120
+ # See PEP 427 for the rules on escaping the project name.
121
+ if "__" in name_part or re.match(r"^[\w\d._]*$", name_part, re.UNICODE) is None:
122
+ raise InvalidWheelFilename(f"Invalid project name: {filename}")
123
+ name = canonicalize_name(name_part)
124
+
125
+ try:
126
+ version = Version(parts[1])
127
+ except InvalidVersion as e:
128
+ raise InvalidWheelFilename(
129
+ f"Invalid wheel filename (invalid version): {filename}"
130
+ ) from e
131
+
132
+ if dashes == 5:
133
+ build_part = parts[2]
134
+ build_match = _build_tag_regex.match(build_part)
135
+ if build_match is None:
136
+ raise InvalidWheelFilename(
137
+ f"Invalid build number: {build_part} in '{filename}'"
138
+ )
139
+ build = cast(BuildTag, (int(build_match.group(1)), build_match.group(2)))
140
+ else:
141
+ build = ()
142
+ tags = parse_tag(parts[-1])
143
+ return (name, version, build, tags)
144
+
145
+
146
+ def parse_sdist_filename(filename: str) -> Tuple[NormalizedName, Version]:
147
+ if filename.endswith(".tar.gz"):
148
+ file_stem = filename[: -len(".tar.gz")]
149
+ elif filename.endswith(".zip"):
150
+ file_stem = filename[: -len(".zip")]
151
+ else:
152
+ raise InvalidSdistFilename(
153
+ f"Invalid sdist filename (extension must be '.tar.gz' or '.zip'):"
154
+ f" {filename}"
155
+ )
156
+
157
+ # We are requiring a PEP 440 version, which cannot contain dashes,
158
+ # so we split on the last dash.
159
+ name_part, sep, version_part = file_stem.rpartition("-")
160
+ if not sep:
161
+ raise InvalidSdistFilename(f"Invalid sdist filename: {filename}")
162
+
163
+ name = canonicalize_name(name_part)
164
+
165
+ try:
166
+ version = Version(version_part)
167
+ except InvalidVersion as e:
168
+ raise InvalidSdistFilename(
169
+ f"Invalid sdist filename (invalid version): {filename}"
170
+ ) from e
171
+
172
+ return (name, version)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/packaging/version.py ADDED
@@ -0,0 +1,563 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+ """
5
+ .. testsetup::
6
+
7
+ from packaging.version import parse, Version
8
+ """
9
+
10
+ import itertools
11
+ import re
12
+ from typing import Any, Callable, NamedTuple, Optional, SupportsInt, Tuple, Union
13
+
14
+ from ._structures import Infinity, InfinityType, NegativeInfinity, NegativeInfinityType
15
+
16
+ __all__ = ["VERSION_PATTERN", "parse", "Version", "InvalidVersion"]
17
+
18
+ LocalType = Tuple[Union[int, str], ...]
19
+
20
+ CmpPrePostDevType = Union[InfinityType, NegativeInfinityType, Tuple[str, int]]
21
+ CmpLocalType = Union[
22
+ NegativeInfinityType,
23
+ Tuple[Union[Tuple[int, str], Tuple[NegativeInfinityType, Union[int, str]]], ...],
24
+ ]
25
+ CmpKey = Tuple[
26
+ int,
27
+ Tuple[int, ...],
28
+ CmpPrePostDevType,
29
+ CmpPrePostDevType,
30
+ CmpPrePostDevType,
31
+ CmpLocalType,
32
+ ]
33
+ VersionComparisonMethod = Callable[[CmpKey, CmpKey], bool]
34
+
35
+
36
+ class _Version(NamedTuple):
37
+ epoch: int
38
+ release: Tuple[int, ...]
39
+ dev: Optional[Tuple[str, int]]
40
+ pre: Optional[Tuple[str, int]]
41
+ post: Optional[Tuple[str, int]]
42
+ local: Optional[LocalType]
43
+
44
+
45
+ def parse(version: str) -> "Version":
46
+ """Parse the given version string.
47
+
48
+ >>> parse('1.0.dev1')
49
+ <Version('1.0.dev1')>
50
+
51
+ :param version: The version string to parse.
52
+ :raises InvalidVersion: When the version string is not a valid version.
53
+ """
54
+ return Version(version)
55
+
56
+
57
+ class InvalidVersion(ValueError):
58
+ """Raised when a version string is not a valid version.
59
+
60
+ >>> Version("invalid")
61
+ Traceback (most recent call last):
62
+ ...
63
+ packaging.version.InvalidVersion: Invalid version: 'invalid'
64
+ """
65
+
66
+
67
+ class _BaseVersion:
68
+ _key: Tuple[Any, ...]
69
+
70
+ def __hash__(self) -> int:
71
+ return hash(self._key)
72
+
73
+ # Please keep the duplicated `isinstance` check
74
+ # in the six comparisons hereunder
75
+ # unless you find a way to avoid adding overhead function calls.
76
+ def __lt__(self, other: "_BaseVersion") -> bool:
77
+ if not isinstance(other, _BaseVersion):
78
+ return NotImplemented
79
+
80
+ return self._key < other._key
81
+
82
+ def __le__(self, other: "_BaseVersion") -> bool:
83
+ if not isinstance(other, _BaseVersion):
84
+ return NotImplemented
85
+
86
+ return self._key <= other._key
87
+
88
+ def __eq__(self, other: object) -> bool:
89
+ if not isinstance(other, _BaseVersion):
90
+ return NotImplemented
91
+
92
+ return self._key == other._key
93
+
94
+ def __ge__(self, other: "_BaseVersion") -> bool:
95
+ if not isinstance(other, _BaseVersion):
96
+ return NotImplemented
97
+
98
+ return self._key >= other._key
99
+
100
+ def __gt__(self, other: "_BaseVersion") -> bool:
101
+ if not isinstance(other, _BaseVersion):
102
+ return NotImplemented
103
+
104
+ return self._key > other._key
105
+
106
+ def __ne__(self, other: object) -> bool:
107
+ if not isinstance(other, _BaseVersion):
108
+ return NotImplemented
109
+
110
+ return self._key != other._key
111
+
112
+
113
+ # Deliberately not anchored to the start and end of the string, to make it
114
+ # easier for 3rd party code to reuse
115
+ _VERSION_PATTERN = r"""
116
+ v?
117
+ (?:
118
+ (?:(?P<epoch>[0-9]+)!)? # epoch
119
+ (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
120
+ (?P<pre> # pre-release
121
+ [-_\.]?
122
+ (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
123
+ [-_\.]?
124
+ (?P<pre_n>[0-9]+)?
125
+ )?
126
+ (?P<post> # post release
127
+ (?:-(?P<post_n1>[0-9]+))
128
+ |
129
+ (?:
130
+ [-_\.]?
131
+ (?P<post_l>post|rev|r)
132
+ [-_\.]?
133
+ (?P<post_n2>[0-9]+)?
134
+ )
135
+ )?
136
+ (?P<dev> # dev release
137
+ [-_\.]?
138
+ (?P<dev_l>dev)
139
+ [-_\.]?
140
+ (?P<dev_n>[0-9]+)?
141
+ )?
142
+ )
143
+ (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
144
+ """
145
+
146
+ VERSION_PATTERN = _VERSION_PATTERN
147
+ """
148
+ A string containing the regular expression used to match a valid version.
149
+
150
+ The pattern is not anchored at either end, and is intended for embedding in larger
151
+ expressions (for example, matching a version number as part of a file name). The
152
+ regular expression should be compiled with the ``re.VERBOSE`` and ``re.IGNORECASE``
153
+ flags set.
154
+
155
+ :meta hide-value:
156
+ """
157
+
158
+
159
+ class Version(_BaseVersion):
160
+ """This class abstracts handling of a project's versions.
161
+
162
+ A :class:`Version` instance is comparison aware and can be compared and
163
+ sorted using the standard Python interfaces.
164
+
165
+ >>> v1 = Version("1.0a5")
166
+ >>> v2 = Version("1.0")
167
+ >>> v1
168
+ <Version('1.0a5')>
169
+ >>> v2
170
+ <Version('1.0')>
171
+ >>> v1 < v2
172
+ True
173
+ >>> v1 == v2
174
+ False
175
+ >>> v1 > v2
176
+ False
177
+ >>> v1 >= v2
178
+ False
179
+ >>> v1 <= v2
180
+ True
181
+ """
182
+
183
+ _regex = re.compile(r"^\s*" + VERSION_PATTERN + r"\s*$", re.VERBOSE | re.IGNORECASE)
184
+ _key: CmpKey
185
+
186
+ def __init__(self, version: str) -> None:
187
+ """Initialize a Version object.
188
+
189
+ :param version:
190
+ The string representation of a version which will be parsed and normalized
191
+ before use.
192
+ :raises InvalidVersion:
193
+ If the ``version`` does not conform to PEP 440 in any way then this
194
+ exception will be raised.
195
+ """
196
+
197
+ # Validate the version and parse it into pieces
198
+ match = self._regex.search(version)
199
+ if not match:
200
+ raise InvalidVersion(f"Invalid version: '{version}'")
201
+
202
+ # Store the parsed out pieces of the version
203
+ self._version = _Version(
204
+ epoch=int(match.group("epoch")) if match.group("epoch") else 0,
205
+ release=tuple(int(i) for i in match.group("release").split(".")),
206
+ pre=_parse_letter_version(match.group("pre_l"), match.group("pre_n")),
207
+ post=_parse_letter_version(
208
+ match.group("post_l"), match.group("post_n1") or match.group("post_n2")
209
+ ),
210
+ dev=_parse_letter_version(match.group("dev_l"), match.group("dev_n")),
211
+ local=_parse_local_version(match.group("local")),
212
+ )
213
+
214
+ # Generate a key which will be used for sorting
215
+ self._key = _cmpkey(
216
+ self._version.epoch,
217
+ self._version.release,
218
+ self._version.pre,
219
+ self._version.post,
220
+ self._version.dev,
221
+ self._version.local,
222
+ )
223
+
224
+ def __repr__(self) -> str:
225
+ """A representation of the Version that shows all internal state.
226
+
227
+ >>> Version('1.0.0')
228
+ <Version('1.0.0')>
229
+ """
230
+ return f"<Version('{self}')>"
231
+
232
+ def __str__(self) -> str:
233
+ """A string representation of the version that can be rounded-tripped.
234
+
235
+ >>> str(Version("1.0a5"))
236
+ '1.0a5'
237
+ """
238
+ parts = []
239
+
240
+ # Epoch
241
+ if self.epoch != 0:
242
+ parts.append(f"{self.epoch}!")
243
+
244
+ # Release segment
245
+ parts.append(".".join(str(x) for x in self.release))
246
+
247
+ # Pre-release
248
+ if self.pre is not None:
249
+ parts.append("".join(str(x) for x in self.pre))
250
+
251
+ # Post-release
252
+ if self.post is not None:
253
+ parts.append(f".post{self.post}")
254
+
255
+ # Development release
256
+ if self.dev is not None:
257
+ parts.append(f".dev{self.dev}")
258
+
259
+ # Local version segment
260
+ if self.local is not None:
261
+ parts.append(f"+{self.local}")
262
+
263
+ return "".join(parts)
264
+
265
+ @property
266
+ def epoch(self) -> int:
267
+ """The epoch of the version.
268
+
269
+ >>> Version("2.0.0").epoch
270
+ 0
271
+ >>> Version("1!2.0.0").epoch
272
+ 1
273
+ """
274
+ return self._version.epoch
275
+
276
+ @property
277
+ def release(self) -> Tuple[int, ...]:
278
+ """The components of the "release" segment of the version.
279
+
280
+ >>> Version("1.2.3").release
281
+ (1, 2, 3)
282
+ >>> Version("2.0.0").release
283
+ (2, 0, 0)
284
+ >>> Version("1!2.0.0.post0").release
285
+ (2, 0, 0)
286
+
287
+ Includes trailing zeroes but not the epoch or any pre-release / development /
288
+ post-release suffixes.
289
+ """
290
+ return self._version.release
291
+
292
+ @property
293
+ def pre(self) -> Optional[Tuple[str, int]]:
294
+ """The pre-release segment of the version.
295
+
296
+ >>> print(Version("1.2.3").pre)
297
+ None
298
+ >>> Version("1.2.3a1").pre
299
+ ('a', 1)
300
+ >>> Version("1.2.3b1").pre
301
+ ('b', 1)
302
+ >>> Version("1.2.3rc1").pre
303
+ ('rc', 1)
304
+ """
305
+ return self._version.pre
306
+
307
+ @property
308
+ def post(self) -> Optional[int]:
309
+ """The post-release number of the version.
310
+
311
+ >>> print(Version("1.2.3").post)
312
+ None
313
+ >>> Version("1.2.3.post1").post
314
+ 1
315
+ """
316
+ return self._version.post[1] if self._version.post else None
317
+
318
+ @property
319
+ def dev(self) -> Optional[int]:
320
+ """The development number of the version.
321
+
322
+ >>> print(Version("1.2.3").dev)
323
+ None
324
+ >>> Version("1.2.3.dev1").dev
325
+ 1
326
+ """
327
+ return self._version.dev[1] if self._version.dev else None
328
+
329
+ @property
330
+ def local(self) -> Optional[str]:
331
+ """The local version segment of the version.
332
+
333
+ >>> print(Version("1.2.3").local)
334
+ None
335
+ >>> Version("1.2.3+abc").local
336
+ 'abc'
337
+ """
338
+ if self._version.local:
339
+ return ".".join(str(x) for x in self._version.local)
340
+ else:
341
+ return None
342
+
343
+ @property
344
+ def public(self) -> str:
345
+ """The public portion of the version.
346
+
347
+ >>> Version("1.2.3").public
348
+ '1.2.3'
349
+ >>> Version("1.2.3+abc").public
350
+ '1.2.3'
351
+ >>> Version("1.2.3+abc.dev1").public
352
+ '1.2.3'
353
+ """
354
+ return str(self).split("+", 1)[0]
355
+
356
+ @property
357
+ def base_version(self) -> str:
358
+ """The "base version" of the version.
359
+
360
+ >>> Version("1.2.3").base_version
361
+ '1.2.3'
362
+ >>> Version("1.2.3+abc").base_version
363
+ '1.2.3'
364
+ >>> Version("1!1.2.3+abc.dev1").base_version
365
+ '1!1.2.3'
366
+
367
+ The "base version" is the public version of the project without any pre or post
368
+ release markers.
369
+ """
370
+ parts = []
371
+
372
+ # Epoch
373
+ if self.epoch != 0:
374
+ parts.append(f"{self.epoch}!")
375
+
376
+ # Release segment
377
+ parts.append(".".join(str(x) for x in self.release))
378
+
379
+ return "".join(parts)
380
+
381
+ @property
382
+ def is_prerelease(self) -> bool:
383
+ """Whether this version is a pre-release.
384
+
385
+ >>> Version("1.2.3").is_prerelease
386
+ False
387
+ >>> Version("1.2.3a1").is_prerelease
388
+ True
389
+ >>> Version("1.2.3b1").is_prerelease
390
+ True
391
+ >>> Version("1.2.3rc1").is_prerelease
392
+ True
393
+ >>> Version("1.2.3dev1").is_prerelease
394
+ True
395
+ """
396
+ return self.dev is not None or self.pre is not None
397
+
398
+ @property
399
+ def is_postrelease(self) -> bool:
400
+ """Whether this version is a post-release.
401
+
402
+ >>> Version("1.2.3").is_postrelease
403
+ False
404
+ >>> Version("1.2.3.post1").is_postrelease
405
+ True
406
+ """
407
+ return self.post is not None
408
+
409
+ @property
410
+ def is_devrelease(self) -> bool:
411
+ """Whether this version is a development release.
412
+
413
+ >>> Version("1.2.3").is_devrelease
414
+ False
415
+ >>> Version("1.2.3.dev1").is_devrelease
416
+ True
417
+ """
418
+ return self.dev is not None
419
+
420
+ @property
421
+ def major(self) -> int:
422
+ """The first item of :attr:`release` or ``0`` if unavailable.
423
+
424
+ >>> Version("1.2.3").major
425
+ 1
426
+ """
427
+ return self.release[0] if len(self.release) >= 1 else 0
428
+
429
+ @property
430
+ def minor(self) -> int:
431
+ """The second item of :attr:`release` or ``0`` if unavailable.
432
+
433
+ >>> Version("1.2.3").minor
434
+ 2
435
+ >>> Version("1").minor
436
+ 0
437
+ """
438
+ return self.release[1] if len(self.release) >= 2 else 0
439
+
440
+ @property
441
+ def micro(self) -> int:
442
+ """The third item of :attr:`release` or ``0`` if unavailable.
443
+
444
+ >>> Version("1.2.3").micro
445
+ 3
446
+ >>> Version("1").micro
447
+ 0
448
+ """
449
+ return self.release[2] if len(self.release) >= 3 else 0
450
+
451
+
452
+ def _parse_letter_version(
453
+ letter: Optional[str], number: Union[str, bytes, SupportsInt, None]
454
+ ) -> Optional[Tuple[str, int]]:
455
+
456
+ if letter:
457
+ # We consider there to be an implicit 0 in a pre-release if there is
458
+ # not a numeral associated with it.
459
+ if number is None:
460
+ number = 0
461
+
462
+ # We normalize any letters to their lower case form
463
+ letter = letter.lower()
464
+
465
+ # We consider some words to be alternate spellings of other words and
466
+ # in those cases we want to normalize the spellings to our preferred
467
+ # spelling.
468
+ if letter == "alpha":
469
+ letter = "a"
470
+ elif letter == "beta":
471
+ letter = "b"
472
+ elif letter in ["c", "pre", "preview"]:
473
+ letter = "rc"
474
+ elif letter in ["rev", "r"]:
475
+ letter = "post"
476
+
477
+ return letter, int(number)
478
+ if not letter and number:
479
+ # We assume if we are given a number, but we are not given a letter
480
+ # then this is using the implicit post release syntax (e.g. 1.0-1)
481
+ letter = "post"
482
+
483
+ return letter, int(number)
484
+
485
+ return None
486
+
487
+
488
+ _local_version_separators = re.compile(r"[\._-]")
489
+
490
+
491
+ def _parse_local_version(local: Optional[str]) -> Optional[LocalType]:
492
+ """
493
+ Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
494
+ """
495
+ if local is not None:
496
+ return tuple(
497
+ part.lower() if not part.isdigit() else int(part)
498
+ for part in _local_version_separators.split(local)
499
+ )
500
+ return None
501
+
502
+
503
+ def _cmpkey(
504
+ epoch: int,
505
+ release: Tuple[int, ...],
506
+ pre: Optional[Tuple[str, int]],
507
+ post: Optional[Tuple[str, int]],
508
+ dev: Optional[Tuple[str, int]],
509
+ local: Optional[LocalType],
510
+ ) -> CmpKey:
511
+
512
+ # When we compare a release version, we want to compare it with all of the
513
+ # trailing zeros removed. So we'll use a reverse the list, drop all the now
514
+ # leading zeros until we come to something non zero, then take the rest
515
+ # re-reverse it back into the correct order and make it a tuple and use
516
+ # that for our sorting key.
517
+ _release = tuple(
518
+ reversed(list(itertools.dropwhile(lambda x: x == 0, reversed(release))))
519
+ )
520
+
521
+ # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.
522
+ # We'll do this by abusing the pre segment, but we _only_ want to do this
523
+ # if there is not a pre or a post segment. If we have one of those then
524
+ # the normal sorting rules will handle this case correctly.
525
+ if pre is None and post is None and dev is not None:
526
+ _pre: CmpPrePostDevType = NegativeInfinity
527
+ # Versions without a pre-release (except as noted above) should sort after
528
+ # those with one.
529
+ elif pre is None:
530
+ _pre = Infinity
531
+ else:
532
+ _pre = pre
533
+
534
+ # Versions without a post segment should sort before those with one.
535
+ if post is None:
536
+ _post: CmpPrePostDevType = NegativeInfinity
537
+
538
+ else:
539
+ _post = post
540
+
541
+ # Versions without a development segment should sort after those with one.
542
+ if dev is None:
543
+ _dev: CmpPrePostDevType = Infinity
544
+
545
+ else:
546
+ _dev = dev
547
+
548
+ if local is None:
549
+ # Versions without a local segment should sort before those with one.
550
+ _local: CmpLocalType = NegativeInfinity
551
+ else:
552
+ # Versions with a local segment need that segment parsed to implement
553
+ # the sorting rules in PEP440.
554
+ # - Alpha numeric segments sort before numeric segments
555
+ # - Alpha numeric segments sort lexicographically
556
+ # - Numeric segments sort numerically
557
+ # - Shorter versions sort before longer versions when the prefixes
558
+ # match exactly
559
+ _local = tuple(
560
+ (i, "") if isinstance(i, int) else (NegativeInfinity, i) for i in local
561
+ )
562
+
563
+ return epoch, _release, _pre, _post, _dev, _local
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/AUTHORS.txt ADDED
@@ -0,0 +1,806 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @Switch01
2
+ A_Rog
3
+ Aakanksha Agrawal
4
+ Abhinav Sagar
5
+ ABHYUDAY PRATAP SINGH
6
+ abs51295
7
+ AceGentile
8
+ Adam Chainz
9
+ Adam Tse
10
+ Adam Wentz
11
+ admin
12
+ Adolfo Ochagavía
13
+ Adrien Morison
14
+ Agus
15
+ ahayrapetyan
16
+ Ahilya
17
+ AinsworthK
18
+ Akash Srivastava
19
+ Alan Yee
20
+ Albert Tugushev
21
+ Albert-Guan
22
+ albertg
23
+ Alberto Sottile
24
+ Aleks Bunin
25
+ Ales Erjavec
26
+ Alethea Flowers
27
+ Alex Gaynor
28
+ Alex Grönholm
29
+ Alex Hedges
30
+ Alex Loosley
31
+ Alex Morega
32
+ Alex Stachowiak
33
+ Alexander Shtyrov
34
+ Alexandre Conrad
35
+ Alexey Popravka
36
+ Aleš Erjavec
37
+ Alli
38
+ Ami Fischman
39
+ Ananya Maiti
40
+ Anatoly Techtonik
41
+ Anders Kaseorg
42
+ Andre Aguiar
43
+ Andreas Lutro
44
+ Andrei Geacar
45
+ Andrew Gaul
46
+ Andrew Shymanel
47
+ Andrey Bienkowski
48
+ Andrey Bulgakov
49
+ Andrés Delfino
50
+ Andy Freeland
51
+ Andy Kluger
52
+ Ani Hayrapetyan
53
+ Aniruddha Basak
54
+ Anish Tambe
55
+ Anrs Hu
56
+ Anthony Sottile
57
+ Antoine Musso
58
+ Anton Ovchinnikov
59
+ Anton Patrushev
60
+ Anton Zelenov
61
+ Antonio Alvarado Hernandez
62
+ Antony Lee
63
+ Antti Kaihola
64
+ Anubhav Patel
65
+ Anudit Nagar
66
+ Anuj Godase
67
+ AQNOUCH Mohammed
68
+ AraHaan
69
+ arena
70
+ arenasys
71
+ Arindam Choudhury
72
+ Armin Ronacher
73
+ Arnon Yaari
74
+ Artem
75
+ Arun Babu Neelicattu
76
+ Ashley Manton
77
+ Ashwin Ramaswami
78
+ atse
79
+ Atsushi Odagiri
80
+ Avinash Karhana
81
+ Avner Cohen
82
+ Awit (Ah-Wit) Ghirmai
83
+ Baptiste Mispelon
84
+ Barney Gale
85
+ barneygale
86
+ Bartek Ogryczak
87
+ Bastian Venthur
88
+ Ben Bodenmiller
89
+ Ben Darnell
90
+ Ben Hoyt
91
+ Ben Mares
92
+ Ben Rosser
93
+ Bence Nagy
94
+ Benjamin Peterson
95
+ Benjamin VanEvery
96
+ Benoit Pierre
97
+ Berker Peksag
98
+ Bernard
99
+ Bernard Tyers
100
+ Bernardo B. Marques
101
+ Bernhard M. Wiedemann
102
+ Bertil Hatt
103
+ Bhavam Vidyarthi
104
+ Blazej Michalik
105
+ Bogdan Opanchuk
106
+ BorisZZZ
107
+ Brad Erickson
108
+ Bradley Ayers
109
+ Branch Vincent
110
+ Brandon L. Reiss
111
+ Brandt Bucher
112
+ Brannon Dorsey
113
+ Brett Randall
114
+ Brett Rosen
115
+ Brian Cristante
116
+ Brian Rosner
117
+ briantracy
118
+ BrownTruck
119
+ Bruno Oliveira
120
+ Bruno Renié
121
+ Bruno S
122
+ Bstrdsmkr
123
+ Buck Golemon
124
+ burrows
125
+ Bussonnier Matthias
126
+ bwoodsend
127
+ c22
128
+ Caleb Brown
129
+ Caleb Martinez
130
+ Calvin Smith
131
+ Carl Meyer
132
+ Carlos Liam
133
+ Carol Willing
134
+ Carter Thayer
135
+ Cass
136
+ Chandrasekhar Atina
137
+ Charlie Marsh
138
+ charwick
139
+ Chih-Hsuan Yen
140
+ Chris Brinker
141
+ Chris Hunt
142
+ Chris Jerdonek
143
+ Chris Kuehl
144
+ Chris Markiewicz
145
+ Chris McDonough
146
+ Chris Pawley
147
+ Chris Pryer
148
+ Chris Wolfe
149
+ Christian Clauss
150
+ Christian Heimes
151
+ Christian Oudard
152
+ Christoph Reiter
153
+ Christopher Hunt
154
+ Christopher Snyder
155
+ chrysle
156
+ cjc7373
157
+ Clark Boylan
158
+ Claudio Jolowicz
159
+ Clay McClure
160
+ Cody
161
+ Cody Soyland
162
+ Colin Watson
163
+ Collin Anderson
164
+ Connor Osborn
165
+ Cooper Lees
166
+ Cooper Ry Lees
167
+ Cory Benfield
168
+ Cory Wright
169
+ Craig Kerstiens
170
+ Cristian Sorinel
171
+ Cristina
172
+ Cristina Muñoz
173
+ ctg123
174
+ Curtis Doty
175
+ cytolentino
176
+ Daan De Meyer
177
+ Dale
178
+ Damian
179
+ Damian Quiroga
180
+ Damian Shaw
181
+ Dan Black
182
+ Dan Savilonis
183
+ Dan Sully
184
+ Dane Hillard
185
+ daniel
186
+ Daniel Collins
187
+ Daniel Hahler
188
+ Daniel Holth
189
+ Daniel Jost
190
+ Daniel Katz
191
+ Daniel Shaulov
192
+ Daniele Esposti
193
+ Daniele Nicolodi
194
+ Daniele Procida
195
+ Daniil Konovalenko
196
+ Danny Hermes
197
+ Danny McClanahan
198
+ Darren Kavanagh
199
+ Dav Clark
200
+ Dave Abrahams
201
+ Dave Jones
202
+ David Aguilar
203
+ David Black
204
+ David Bordeynik
205
+ David Caro
206
+ David D Lowe
207
+ David Evans
208
+ David Hewitt
209
+ David Linke
210
+ David Poggi
211
+ David Poznik
212
+ David Pursehouse
213
+ David Runge
214
+ David Tucker
215
+ David Wales
216
+ Davidovich
217
+ ddelange
218
+ Deepak Sharma
219
+ Deepyaman Datta
220
+ Denise Yu
221
+ dependabot[bot]
222
+ derwolfe
223
+ Desetude
224
+ Devesh Kumar Singh
225
+ devsagul
226
+ Diego Caraballo
227
+ Diego Ramirez
228
+ DiegoCaraballo
229
+ Dimitri Merejkowsky
230
+ Dimitri Papadopoulos
231
+ Dimitri Papadopoulos Orfanos
232
+ Dirk Stolle
233
+ Dmitry Gladkov
234
+ Dmitry Volodin
235
+ Domen Kožar
236
+ Dominic Davis-Foster
237
+ Donald Stufft
238
+ Dongweiming
239
+ doron zarhi
240
+ Dos Moonen
241
+ Douglas Thor
242
+ DrFeathers
243
+ Dustin Ingram
244
+ Dustin Rodrigues
245
+ Dwayne Bailey
246
+ Ed Morley
247
+ Edgar Ramírez
248
+ Edgar Ramírez Mondragón
249
+ Ee Durbin
250
+ Efflam Lemaillet
251
+ efflamlemaillet
252
+ Eitan Adler
253
+ ekristina
254
+ elainechan
255
+ Eli Schwartz
256
+ Elisha Hollander
257
+ Ellen Marie Dash
258
+ Emil Burzo
259
+ Emil Styrke
260
+ Emmanuel Arias
261
+ Endoh Takanao
262
+ enoch
263
+ Erdinc Mutlu
264
+ Eric Cousineau
265
+ Eric Gillingham
266
+ Eric Hanchrow
267
+ Eric Hopper
268
+ Erik M. Bray
269
+ Erik Rose
270
+ Erwin Janssen
271
+ Eugene Vereshchagin
272
+ everdimension
273
+ Federico
274
+ Felipe Peter
275
+ Felix Yan
276
+ fiber-space
277
+ Filip Kokosiński
278
+ Filipe Laíns
279
+ Finn Womack
280
+ finnagin
281
+ Flavio Amurrio
282
+ Florian Briand
283
+ Florian Rathgeber
284
+ Francesco
285
+ Francesco Montesano
286
+ Fredrik Orderud
287
+ Frost Ming
288
+ Gabriel Curio
289
+ Gabriel de Perthuis
290
+ Garry Polley
291
+ gavin
292
+ gdanielson
293
+ Geoffrey Sneddon
294
+ George Song
295
+ Georgi Valkov
296
+ Georgy Pchelkin
297
+ ghost
298
+ Giftlin Rajaiah
299
+ gizmoguy1
300
+ gkdoc
301
+ Godefroid Chapelle
302
+ Gopinath M
303
+ GOTO Hayato
304
+ gousaiyang
305
+ gpiks
306
+ Greg Roodt
307
+ Greg Ward
308
+ Guilherme Espada
309
+ Guillaume Seguin
310
+ gutsytechster
311
+ Guy Rozendorn
312
+ Guy Tuval
313
+ gzpan123
314
+ Hanjun Kim
315
+ Hari Charan
316
+ Harsh Vardhan
317
+ harupy
318
+ Harutaka Kawamura
319
+ hauntsaninja
320
+ Henrich Hartzer
321
+ Henry Schreiner
322
+ Herbert Pfennig
323
+ Holly Stotelmyer
324
+ Honnix
325
+ Hsiaoming Yang
326
+ Hugo Lopes Tavares
327
+ Hugo van Kemenade
328
+ Hugues Bruant
329
+ Hynek Schlawack
330
+ Ian Bicking
331
+ Ian Cordasco
332
+ Ian Lee
333
+ Ian Stapleton Cordasco
334
+ Ian Wienand
335
+ Igor Kuzmitshov
336
+ Igor Sobreira
337
+ Ikko Ashimine
338
+ Ilan Schnell
339
+ Illia Volochii
340
+ Ilya Baryshev
341
+ Inada Naoki
342
+ Ionel Cristian Mărieș
343
+ Ionel Maries Cristian
344
+ Itamar Turner-Trauring
345
+ Ivan Pozdeev
346
+ J. Nick Koston
347
+ Jacob Kim
348
+ Jacob Walls
349
+ Jaime Sanz
350
+ jakirkham
351
+ Jakub Kuczys
352
+ Jakub Stasiak
353
+ Jakub Vysoky
354
+ Jakub Wilk
355
+ James Cleveland
356
+ James Curtin
357
+ James Firth
358
+ James Gerity
359
+ James Polley
360
+ Jan Pokorný
361
+ Jannis Leidel
362
+ Jarek Potiuk
363
+ jarondl
364
+ Jason Curtis
365
+ Jason R. Coombs
366
+ JasonMo
367
+ JasonMo1
368
+ Jay Graves
369
+ Jean Abou Samra
370
+ Jean-Christophe Fillion-Robin
371
+ Jeff Barber
372
+ Jeff Dairiki
373
+ Jeff Widman
374
+ Jelmer Vernooij
375
+ jenix21
376
+ Jeremy Fleischman
377
+ Jeremy Stanley
378
+ Jeremy Zafran
379
+ Jesse Rittner
380
+ Jiashuo Li
381
+ Jim Fisher
382
+ Jim Garrison
383
+ Jinzhe Zeng
384
+ Jiun Bae
385
+ Jivan Amara
386
+ Joe Bylund
387
+ Joe Michelini
388
+ John Paton
389
+ John Sirois
390
+ John T. Wodder II
391
+ John-Scott Atlakson
392
+ johnthagen
393
+ Jon Banafato
394
+ Jon Dufresne
395
+ Jon Parise
396
+ Jonas Nockert
397
+ Jonathan Herbert
398
+ Joonatan Partanen
399
+ Joost Molenaar
400
+ Jorge Niedbalski
401
+ Joseph Bylund
402
+ Joseph Long
403
+ Josh Bronson
404
+ Josh Cannon
405
+ Josh Hansen
406
+ Josh Schneier
407
+ Joshua
408
+ JoshuaPerdue
409
+ Juan Luis Cano Rodríguez
410
+ Juanjo Bazán
411
+ Judah Rand
412
+ Julian Berman
413
+ Julian Gethmann
414
+ Julien Demoor
415
+ July Tikhonov
416
+ Jussi Kukkonen
417
+ Justin van Heek
418
+ jwg4
419
+ Jyrki Pulliainen
420
+ Kai Chen
421
+ Kai Mueller
422
+ Kamal Bin Mustafa
423
+ Karolina Surma
424
+ kasium
425
+ kaustav haldar
426
+ keanemind
427
+ Keith Maxwell
428
+ Kelsey Hightower
429
+ Kenneth Belitzky
430
+ Kenneth Reitz
431
+ Kevin Burke
432
+ Kevin Carter
433
+ Kevin Frommelt
434
+ Kevin R Patterson
435
+ Kexuan Sun
436
+ Kit Randel
437
+ Klaas van Schelven
438
+ KOLANICH
439
+ konstin
440
+ kpinc
441
+ Krishna Oza
442
+ Kumar McMillan
443
+ Kuntal Majumder
444
+ Kurt McKee
445
+ Kyle Persohn
446
+ lakshmanaram
447
+ Laszlo Kiss-Kollar
448
+ Laurent Bristiel
449
+ Laurent LAPORTE
450
+ Laurie O
451
+ Laurie Opperman
452
+ layday
453
+ Leon Sasson
454
+ Lev Givon
455
+ Lincoln de Sousa
456
+ Lipis
457
+ lorddavidiii
458
+ Loren Carvalho
459
+ Lucas Cimon
460
+ Ludovic Gasc
461
+ Luis Medel
462
+ Lukas Geiger
463
+ Lukas Juhrich
464
+ Luke Macken
465
+ Luo Jiebin
466
+ luojiebin
467
+ luz.paz
468
+ László Kiss Kollár
469
+ M00nL1ght
470
+ Marc Abramowitz
471
+ Marc Tamlyn
472
+ Marcus Smith
473
+ Mariatta
474
+ Mark Kohler
475
+ Mark McLoughlin
476
+ Mark Williams
477
+ Markus Hametner
478
+ Martey Dodoo
479
+ Martin Fischer
480
+ Martin Häcker
481
+ Martin Pavlasek
482
+ Masaki
483
+ Masklinn
484
+ Matej Stuchlik
485
+ Mathew Jennings
486
+ Mathieu Bridon
487
+ Mathieu Kniewallner
488
+ Matt Bacchi
489
+ Matt Good
490
+ Matt Maker
491
+ Matt Robenolt
492
+ Matt Wozniski
493
+ matthew
494
+ Matthew Einhorn
495
+ Matthew Feickert
496
+ Matthew Gilliard
497
+ Matthew Hughes
498
+ Matthew Iversen
499
+ Matthew Treinish
500
+ Matthew Trumbell
501
+ Matthew Willson
502
+ Matthias Bussonnier
503
+ mattip
504
+ Maurits van Rees
505
+ Max W Chase
506
+ Maxim Kurnikov
507
+ Maxime Rouyrre
508
+ mayeut
509
+ mbaluna
510
+ mdebi
511
+ memoselyk
512
+ meowmeowcat
513
+ Michael
514
+ Michael Aquilina
515
+ Michael E. Karpeles
516
+ Michael Klich
517
+ Michael Mintz
518
+ Michael Williamson
519
+ michaelpacer
520
+ Michał Górny
521
+ Mickaël Schoentgen
522
+ Miguel Araujo Perez
523
+ Mihir Singh
524
+ Mike
525
+ Mike Hendricks
526
+ Min RK
527
+ MinRK
528
+ Miro Hrončok
529
+ Monica Baluna
530
+ montefra
531
+ Monty Taylor
532
+ morotti
533
+ mrKazzila
534
+ Muha Ajjan
535
+ Nadav Wexler
536
+ Nahuel Ambrosini
537
+ Nate Coraor
538
+ Nate Prewitt
539
+ Nathan Houghton
540
+ Nathaniel J. Smith
541
+ Nehal J Wani
542
+ Neil Botelho
543
+ Nguyễn Gia Phong
544
+ Nicholas Serra
545
+ Nick Coghlan
546
+ Nick Stenning
547
+ Nick Timkovich
548
+ Nicolas Bock
549
+ Nicole Harris
550
+ Nikhil Benesch
551
+ Nikhil Ladha
552
+ Nikita Chepanov
553
+ Nikolay Korolev
554
+ Nipunn Koorapati
555
+ Nitesh Sharma
556
+ Niyas Sait
557
+ Noah
558
+ Noah Gorny
559
+ Nowell Strite
560
+ NtaleGrey
561
+ nvdv
562
+ OBITORASU
563
+ Ofek Lev
564
+ ofrinevo
565
+ Oliver Freund
566
+ Oliver Jeeves
567
+ Oliver Mannion
568
+ Oliver Tonnhofer
569
+ Olivier Girardot
570
+ Olivier Grisel
571
+ Ollie Rutherfurd
572
+ OMOTO Kenji
573
+ Omry Yadan
574
+ onlinejudge95
575
+ Oren Held
576
+ Oscar Benjamin
577
+ Oz N Tiram
578
+ Pachwenko
579
+ Patrick Dubroy
580
+ Patrick Jenkins
581
+ Patrick Lawson
582
+ patricktokeeffe
583
+ Patrik Kopkan
584
+ Paul Ganssle
585
+ Paul Kehrer
586
+ Paul Moore
587
+ Paul Nasrat
588
+ Paul Oswald
589
+ Paul van der Linden
590
+ Paulus Schoutsen
591
+ Pavel Safronov
592
+ Pavithra Eswaramoorthy
593
+ Pawel Jasinski
594
+ Paweł Szramowski
595
+ Pekka Klärck
596
+ Peter Gessler
597
+ Peter Lisák
598
+ Peter Shen
599
+ Peter Waller
600
+ Petr Viktorin
601
+ petr-tik
602
+ Phaneendra Chiruvella
603
+ Phil Elson
604
+ Phil Freo
605
+ Phil Pennock
606
+ Phil Whelan
607
+ Philip Jägenstedt
608
+ Philip Molloy
609
+ Philippe Ombredanne
610
+ Pi Delport
611
+ Pierre-Yves Rofes
612
+ Pieter Degroote
613
+ pip
614
+ Prabakaran Kumaresshan
615
+ Prabhjyotsing Surjit Singh Sodhi
616
+ Prabhu Marappan
617
+ Pradyun Gedam
618
+ Prashant Sharma
619
+ Pratik Mallya
620
+ pre-commit-ci[bot]
621
+ Preet Thakkar
622
+ Preston Holmes
623
+ Przemek Wrzos
624
+ Pulkit Goyal
625
+ q0w
626
+ Qiangning Hong
627
+ Qiming Xu
628
+ Quentin Lee
629
+ Quentin Pradet
630
+ R. David Murray
631
+ Rafael Caricio
632
+ Ralf Schmitt
633
+ Ran Benita
634
+ Randy Döring
635
+ Razzi Abuissa
636
+ rdb
637
+ Reece Dunham
638
+ Remi Rampin
639
+ Rene Dudfield
640
+ Riccardo Magliocchetti
641
+ Riccardo Schirone
642
+ Richard Jones
643
+ Richard Si
644
+ Ricky Ng-Adam
645
+ Rishi
646
+ rmorotti
647
+ RobberPhex
648
+ Robert Collins
649
+ Robert McGibbon
650
+ Robert Pollak
651
+ Robert T. McGibbon
652
+ robin elisha robinson
653
+ Roey Berman
654
+ Rohan Jain
655
+ Roman Bogorodskiy
656
+ Roman Donchenko
657
+ Romuald Brunet
658
+ ronaudinho
659
+ Ronny Pfannschmidt
660
+ Rory McCann
661
+ Ross Brattain
662
+ Roy Wellington Ⅳ
663
+ Ruairidh MacLeod
664
+ Russell Keith-Magee
665
+ Ryan Shepherd
666
+ Ryan Wooden
667
+ ryneeverett
668
+ S. Guliaev
669
+ Sachi King
670
+ Salvatore Rinchiera
671
+ sandeepkiran-js
672
+ Sander Van Balen
673
+ Savio Jomton
674
+ schlamar
675
+ Scott Kitterman
676
+ Sean
677
+ seanj
678
+ Sebastian Jordan
679
+ Sebastian Schaetz
680
+ Segev Finer
681
+ SeongSoo Cho
682
+ Sergey Vasilyev
683
+ Seth Michael Larson
684
+ Seth Woodworth
685
+ Shahar Epstein
686
+ Shantanu
687
+ shenxianpeng
688
+ shireenrao
689
+ Shivansh-007
690
+ Shixian Sheng
691
+ Shlomi Fish
692
+ Shovan Maity
693
+ Simeon Visser
694
+ Simon Cross
695
+ Simon Pichugin
696
+ sinoroc
697
+ sinscary
698
+ snook92
699
+ socketubs
700
+ Sorin Sbarnea
701
+ Srinivas Nyayapati
702
+ Srishti Hegde
703
+ Stavros Korokithakis
704
+ Stefan Scherfke
705
+ Stefano Rivera
706
+ Stephan Erb
707
+ Stephen Rosen
708
+ stepshal
709
+ Steve (Gadget) Barnes
710
+ Steve Barnes
711
+ Steve Dower
712
+ Steve Kowalik
713
+ Steven Myint
714
+ Steven Silvester
715
+ stonebig
716
+ studioj
717
+ Stéphane Bidoul
718
+ Stéphane Bidoul (ACSONE)
719
+ Stéphane Klein
720
+ Sumana Harihareswara
721
+ Surbhi Sharma
722
+ Sviatoslav Sydorenko
723
+ Sviatoslav Sydorenko (Святослав Сидоренко)
724
+ Swat009
725
+ Sylvain
726
+ Takayuki SHIMIZUKAWA
727
+ Taneli Hukkinen
728
+ tbeswick
729
+ Thiago
730
+ Thijs Triemstra
731
+ Thomas Fenzl
732
+ Thomas Grainger
733
+ Thomas Guettler
734
+ Thomas Johansson
735
+ Thomas Kluyver
736
+ Thomas Smith
737
+ Thomas VINCENT
738
+ Tim D. Smith
739
+ Tim Gates
740
+ Tim Harder
741
+ Tim Heap
742
+ tim smith
743
+ tinruufu
744
+ Tobias Hermann
745
+ Tom Forbes
746
+ Tom Freudenheim
747
+ Tom V
748
+ Tomas Hrnciar
749
+ Tomas Orsava
750
+ Tomer Chachamu
751
+ Tommi Enenkel | AnB
752
+ Tomáš Hrnčiar
753
+ Tony Beswick
754
+ Tony Narlock
755
+ Tony Zhaocheng Tan
756
+ TonyBeswick
757
+ toonarmycaptain
758
+ Toshio Kuratomi
759
+ toxinu
760
+ Travis Swicegood
761
+ Tushar Sadhwani
762
+ Tzu-ping Chung
763
+ Valentin Haenel
764
+ Victor Stinner
765
+ victorvpaulo
766
+ Vikram - Google
767
+ Viktor Szépe
768
+ Ville Skyttä
769
+ Vinay Sajip
770
+ Vincent Philippon
771
+ Vinicyus Macedo
772
+ Vipul Kumar
773
+ Vitaly Babiy
774
+ Vladimir Fokow
775
+ Vladimir Rutsky
776
+ W. Trevor King
777
+ Wil Tan
778
+ Wilfred Hughes
779
+ William Edwards
780
+ William ML Leslie
781
+ William T Olson
782
+ William Woodruff
783
+ Wilson Mo
784
+ wim glenn
785
+ Winson Luk
786
+ Wolfgang Maier
787
+ Wu Zhenyu
788
+ XAMES3
789
+ Xavier Fernandez
790
+ Xianpeng Shen
791
+ xoviat
792
+ xtreak
793
+ YAMAMOTO Takashi
794
+ Yen Chi Hsuan
795
+ Yeray Diaz Diaz
796
+ Yoval P
797
+ Yu Jian
798
+ Yuan Jing Vincent Yan
799
+ Yusuke Hayashi
800
+ Zearin
801
+ Zhiping Deng
802
+ ziebam
803
+ Zvezdan Petkovic
804
+ Łukasz Langa
805
+ Роман Донченко
806
+ Семён Марьясин
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2008-present The pip developers (see AUTHORS.txt file)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/RECORD ADDED
@@ -0,0 +1,854 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ../../../bin/pip,sha256=mLo0k16EHS7nB57szaQaugYC11vI_xoLGTUArZuUaz0,283
2
+ ../../../bin/pip3,sha256=mLo0k16EHS7nB57szaQaugYC11vI_xoLGTUArZuUaz0,283
3
+ ../../../bin/pip3.12,sha256=mLo0k16EHS7nB57szaQaugYC11vI_xoLGTUArZuUaz0,283
4
+ pip-25.0.1.dist-info/AUTHORS.txt,sha256=HqzpBVLfT1lBthqQfiDlVeFkg65hJ7ZQvvWhoq-BAsA,11018
5
+ pip-25.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
6
+ pip-25.0.1.dist-info/LICENSE.txt,sha256=Y0MApmnUmurmWxLGxIySTFGkzfPR_whtw0VtyLyqIQQ,1093
7
+ pip-25.0.1.dist-info/METADATA,sha256=T6cxjPMPl523zsRcEsu8K0-IoV8S7vv1mmKR0KA6-SY,3677
8
+ pip-25.0.1.dist-info/RECORD,,
9
+ pip-25.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ pip-25.0.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
11
+ pip-25.0.1.dist-info/entry_points.txt,sha256=eeIjuzfnfR2PrhbjnbzFU6MnSS70kZLxwaHHq6M-bD0,87
12
+ pip-25.0.1.dist-info/top_level.txt,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
13
+ pip/__init__.py,sha256=aKiv_sTe7UbE7qmtCinJutFjqN0MndZQZ1fKLNwFFLE,357
14
+ pip/__main__.py,sha256=WzbhHXTbSE6gBY19mNN9m4s5o_365LOvTYSgqgbdBhE,854
15
+ pip/__pip-runner__.py,sha256=cPPWuJ6NK_k-GzfvlejLFgwzmYUROmpAR6QC3Q-vkXQ,1450
16
+ pip/__pycache__/__init__.cpython-312.pyc,,
17
+ pip/__pycache__/__main__.cpython-312.pyc,,
18
+ pip/__pycache__/__pip-runner__.cpython-312.pyc,,
19
+ pip/_internal/__init__.py,sha256=MfcoOluDZ8QMCFYal04IqOJ9q6m2V7a0aOsnI-WOxUo,513
20
+ pip/_internal/__pycache__/__init__.cpython-312.pyc,,
21
+ pip/_internal/__pycache__/build_env.cpython-312.pyc,,
22
+ pip/_internal/__pycache__/cache.cpython-312.pyc,,
23
+ pip/_internal/__pycache__/configuration.cpython-312.pyc,,
24
+ pip/_internal/__pycache__/exceptions.cpython-312.pyc,,
25
+ pip/_internal/__pycache__/main.cpython-312.pyc,,
26
+ pip/_internal/__pycache__/pyproject.cpython-312.pyc,,
27
+ pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc,,
28
+ pip/_internal/__pycache__/wheel_builder.cpython-312.pyc,,
29
+ pip/_internal/build_env.py,sha256=Dv4UCClSg4uNaal_hL-trg5-zl3Is9CuIDxkChCkXF4,10700
30
+ pip/_internal/cache.py,sha256=Jb698p5PNigRtpW5o26wQNkkUv4MnQ94mc471wL63A0,10369
31
+ pip/_internal/cli/__init__.py,sha256=FkHBgpxxb-_gd6r1FjnNhfMOzAUYyXoXKJ6abijfcFU,132
32
+ pip/_internal/cli/__pycache__/__init__.cpython-312.pyc,,
33
+ pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc,,
34
+ pip/_internal/cli/__pycache__/base_command.cpython-312.pyc,,
35
+ pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc,,
36
+ pip/_internal/cli/__pycache__/command_context.cpython-312.pyc,,
37
+ pip/_internal/cli/__pycache__/index_command.cpython-312.pyc,,
38
+ pip/_internal/cli/__pycache__/main.cpython-312.pyc,,
39
+ pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc,,
40
+ pip/_internal/cli/__pycache__/parser.cpython-312.pyc,,
41
+ pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc,,
42
+ pip/_internal/cli/__pycache__/req_command.cpython-312.pyc,,
43
+ pip/_internal/cli/__pycache__/spinners.cpython-312.pyc,,
44
+ pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc,,
45
+ pip/_internal/cli/autocompletion.py,sha256=Lli3Mr6aDNu7ZkJJFFvwD2-hFxNI6Avz8OwMyS5TVrs,6865
46
+ pip/_internal/cli/base_command.py,sha256=NZin6KMzW9NSYzKk4Tc8isb_TQYKR4CKd5j9mSm46PI,8625
47
+ pip/_internal/cli/cmdoptions.py,sha256=V3BB22F4_v_RkHaZ5onWnszhbBtjYZvNhbn9M0NO0HI,30116
48
+ pip/_internal/cli/command_context.py,sha256=RHgIPwtObh5KhMrd3YZTkl8zbVG-6Okml7YbFX4Ehg0,774
49
+ pip/_internal/cli/index_command.py,sha256=i_sgNlPmXC5iHUaY-dmmrHKKTgc5O4hWzisr5Al1rr0,5677
50
+ pip/_internal/cli/main.py,sha256=BDZef-bWe9g9Jpr4OVs4dDf-845HJsKw835T7AqEnAc,2817
51
+ pip/_internal/cli/main_parser.py,sha256=laDpsuBDl6kyfywp9eMMA9s84jfH2TJJn-vmL0GG90w,4338
52
+ pip/_internal/cli/parser.py,sha256=VCMtduzECUV87KaHNu-xJ-wLNL82yT3x16V4XBxOAqI,10825
53
+ pip/_internal/cli/progress_bars.py,sha256=9GcgusWtwfqou2zhAQp1XNbQHIDslqyyz9UwLzw7Jgc,2717
54
+ pip/_internal/cli/req_command.py,sha256=DqeFhmUMs6o6Ev8qawAcOoYNdAZsfyKS0MZI5jsJYwQ,12250
55
+ pip/_internal/cli/spinners.py,sha256=hIJ83GerdFgFCdobIA23Jggetegl_uC4Sp586nzFbPE,5118
56
+ pip/_internal/cli/status_codes.py,sha256=sEFHUaUJbqv8iArL3HAtcztWZmGOFX01hTesSytDEh0,116
57
+ pip/_internal/commands/__init__.py,sha256=5oRO9O3dM2vGuh0bFw4HOVletryrz5HHMmmPWwJrH9U,3882
58
+ pip/_internal/commands/__pycache__/__init__.cpython-312.pyc,,
59
+ pip/_internal/commands/__pycache__/cache.cpython-312.pyc,,
60
+ pip/_internal/commands/__pycache__/check.cpython-312.pyc,,
61
+ pip/_internal/commands/__pycache__/completion.cpython-312.pyc,,
62
+ pip/_internal/commands/__pycache__/configuration.cpython-312.pyc,,
63
+ pip/_internal/commands/__pycache__/debug.cpython-312.pyc,,
64
+ pip/_internal/commands/__pycache__/download.cpython-312.pyc,,
65
+ pip/_internal/commands/__pycache__/freeze.cpython-312.pyc,,
66
+ pip/_internal/commands/__pycache__/hash.cpython-312.pyc,,
67
+ pip/_internal/commands/__pycache__/help.cpython-312.pyc,,
68
+ pip/_internal/commands/__pycache__/index.cpython-312.pyc,,
69
+ pip/_internal/commands/__pycache__/inspect.cpython-312.pyc,,
70
+ pip/_internal/commands/__pycache__/install.cpython-312.pyc,,
71
+ pip/_internal/commands/__pycache__/list.cpython-312.pyc,,
72
+ pip/_internal/commands/__pycache__/search.cpython-312.pyc,,
73
+ pip/_internal/commands/__pycache__/show.cpython-312.pyc,,
74
+ pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc,,
75
+ pip/_internal/commands/__pycache__/wheel.cpython-312.pyc,,
76
+ pip/_internal/commands/cache.py,sha256=IOezTicHjGE5sWdBx2nwPVgbjuJHM3s-BZEkpZLemuY,8107
77
+ pip/_internal/commands/check.py,sha256=Hr_4eiMd9cgVDgEvjtIdw915NmL7ROIWW8enkr8slPQ,2268
78
+ pip/_internal/commands/completion.py,sha256=HT4lD0bgsflHq2IDgYfiEdp7IGGtE7s6MgI3xn0VQEw,4287
79
+ pip/_internal/commands/configuration.py,sha256=n98enwp6y0b5G6fiRQjaZo43FlJKYve_daMhN-4BRNc,9766
80
+ pip/_internal/commands/debug.py,sha256=DNDRgE9YsKrbYzU0s3VKi8rHtKF4X13CJ_br_8PUXO0,6797
81
+ pip/_internal/commands/download.py,sha256=0qB0nys6ZEPsog451lDsjL5Bx7Z97t-B80oFZKhpzKM,5273
82
+ pip/_internal/commands/freeze.py,sha256=2Vt72BYTSm9rzue6d8dNzt8idxWK4Db6Hd-anq7GQ80,3203
83
+ pip/_internal/commands/hash.py,sha256=EVVOuvGtoPEdFi8SNnmdqlCQrhCxV-kJsdwtdcCnXGQ,1703
84
+ pip/_internal/commands/help.py,sha256=gcc6QDkcgHMOuAn5UxaZwAStsRBrnGSn_yxjS57JIoM,1132
85
+ pip/_internal/commands/index.py,sha256=RAXxmJwFhVb5S1BYzb5ifX3sn9Na8v2CCVYwSMP8pao,4731
86
+ pip/_internal/commands/inspect.py,sha256=PGrY9TRTRCM3y5Ml8Bdk8DEOXquWRfscr4DRo1LOTPc,3189
87
+ pip/_internal/commands/install.py,sha256=r3yHQUxvxt7gD5j9n6zRDslAvtx9CT_whLuQJcktp6M,29390
88
+ pip/_internal/commands/list.py,sha256=oiIzSjLP6__d7dIS3q0Xb5ywsaOThBWRqMyjjKzkPdM,12769
89
+ pip/_internal/commands/search.py,sha256=fWkUQVx_gm8ebbFAlCgqtxKXT9rNahpJ-BI__3HNZpg,5626
90
+ pip/_internal/commands/show.py,sha256=0YBhCga3PAd81vT3l7UWflktSpB5-aYqQcJxBVPazVM,7857
91
+ pip/_internal/commands/uninstall.py,sha256=7pOR7enK76gimyxQbzxcG1OsyLXL3DvX939xmM8Fvtg,3892
92
+ pip/_internal/commands/wheel.py,sha256=eJRhr_qoNNxWAkkdJCNiQM7CXd4E1_YyQhsqJnBPGGg,6414
93
+ pip/_internal/configuration.py,sha256=-KOok6jh3hFzXMPQFPJ1_EFjBpAsge-RSreQuLHLmzo,14005
94
+ pip/_internal/distributions/__init__.py,sha256=Hq6kt6gXBgjNit5hTTWLAzeCNOKoB-N0pGYSqehrli8,858
95
+ pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc,,
96
+ pip/_internal/distributions/__pycache__/base.cpython-312.pyc,,
97
+ pip/_internal/distributions/__pycache__/installed.cpython-312.pyc,,
98
+ pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc,,
99
+ pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc,,
100
+ pip/_internal/distributions/base.py,sha256=QeB9qvKXDIjLdPBDE5fMgpfGqMMCr-govnuoQnGuiF8,1783
101
+ pip/_internal/distributions/installed.py,sha256=QinHFbWAQ8oE0pbD8MFZWkwlnfU1QYTccA1vnhrlYOU,842
102
+ pip/_internal/distributions/sdist.py,sha256=PlcP4a6-R6c98XnOM-b6Lkb3rsvh9iG4ok8shaanrzs,6751
103
+ pip/_internal/distributions/wheel.py,sha256=THBYfnv7VVt8mYhMYUtH13S1E7FDwtDyDfmUcl8ai0E,1317
104
+ pip/_internal/exceptions.py,sha256=2_byISIv3kSnI_9T-Esfxrt0LnTRgcUHyxu0twsHjQY,26481
105
+ pip/_internal/index/__init__.py,sha256=vpt-JeTZefh8a-FC22ZeBSXFVbuBcXSGiILhQZJaNpQ,30
106
+ pip/_internal/index/__pycache__/__init__.cpython-312.pyc,,
107
+ pip/_internal/index/__pycache__/collector.cpython-312.pyc,,
108
+ pip/_internal/index/__pycache__/package_finder.cpython-312.pyc,,
109
+ pip/_internal/index/__pycache__/sources.cpython-312.pyc,,
110
+ pip/_internal/index/collector.py,sha256=RdPO0JLAlmyBWPAWYHPyRoGjz3GNAeTngCNkbGey_mE,16265
111
+ pip/_internal/index/package_finder.py,sha256=mJHAljlHeHuclyuxtjvBZO6DtovKjsZjF_tCh_wux5E,38076
112
+ pip/_internal/index/sources.py,sha256=lPBLK5Xiy8Q6IQMio26Wl7ocfZOKkgGklIBNyUJ23fI,8632
113
+ pip/_internal/locations/__init__.py,sha256=UaAxeZ_f93FyouuFf4p7SXYF-4WstXuEvd3LbmPCAno,14925
114
+ pip/_internal/locations/__pycache__/__init__.cpython-312.pyc,,
115
+ pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc,,
116
+ pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc,,
117
+ pip/_internal/locations/__pycache__/base.cpython-312.pyc,,
118
+ pip/_internal/locations/_distutils.py,sha256=x6nyVLj7X11Y4khIdf-mFlxMl2FWadtVEgeb8upc_WI,6013
119
+ pip/_internal/locations/_sysconfig.py,sha256=IGzds60qsFneRogC-oeBaY7bEh3lPt_v47kMJChQXsU,7724
120
+ pip/_internal/locations/base.py,sha256=RQiPi1d4FVM2Bxk04dQhXZ2PqkeljEL2fZZ9SYqIQ78,2556
121
+ pip/_internal/main.py,sha256=r-UnUe8HLo5XFJz8inTcOOTiu_sxNhgHb6VwlGUllOI,340
122
+ pip/_internal/metadata/__init__.py,sha256=CU8jK1TZso7jOLdr0sX9xDjrcs5iy8d7IRK-hvaIO5Y,4337
123
+ pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc,,
124
+ pip/_internal/metadata/__pycache__/_json.cpython-312.pyc,,
125
+ pip/_internal/metadata/__pycache__/base.cpython-312.pyc,,
126
+ pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc,,
127
+ pip/_internal/metadata/_json.py,sha256=ezrIYazHCINM2QUk1eA9wEAMj3aeGWeDVgGalgUzKpc,2707
128
+ pip/_internal/metadata/base.py,sha256=ft0K5XNgI4ETqZnRv2-CtvgYiMOMAeGMAzxT-f6VLJA,25298
129
+ pip/_internal/metadata/importlib/__init__.py,sha256=jUUidoxnHcfITHHaAWG1G2i5fdBYklv_uJcjo2x7VYE,135
130
+ pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc,,
131
+ pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc,,
132
+ pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc,,
133
+ pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc,,
134
+ pip/_internal/metadata/importlib/_compat.py,sha256=c6av8sP8BBjAZuFSJow1iWfygUXNM3xRTCn5nqw6B9M,2796
135
+ pip/_internal/metadata/importlib/_dists.py,sha256=ftmYiyfUGUIjnVwt6W-Ijsimy5c28KgmXly5Q5IQ2P4,8279
136
+ pip/_internal/metadata/importlib/_envs.py,sha256=UUB980XSrDWrMpQ1_G45i0r8Hqlg_tg3IPQ63mEqbNc,7431
137
+ pip/_internal/metadata/pkg_resources.py,sha256=U07ETAINSGeSRBfWUG93E4tZZbaW_f7PGzEqZN0hulc,10542
138
+ pip/_internal/models/__init__.py,sha256=3DHUd_qxpPozfzouoqa9g9ts1Czr5qaHfFxbnxriepM,63
139
+ pip/_internal/models/__pycache__/__init__.cpython-312.pyc,,
140
+ pip/_internal/models/__pycache__/candidate.cpython-312.pyc,,
141
+ pip/_internal/models/__pycache__/direct_url.cpython-312.pyc,,
142
+ pip/_internal/models/__pycache__/format_control.cpython-312.pyc,,
143
+ pip/_internal/models/__pycache__/index.cpython-312.pyc,,
144
+ pip/_internal/models/__pycache__/installation_report.cpython-312.pyc,,
145
+ pip/_internal/models/__pycache__/link.cpython-312.pyc,,
146
+ pip/_internal/models/__pycache__/scheme.cpython-312.pyc,,
147
+ pip/_internal/models/__pycache__/search_scope.cpython-312.pyc,,
148
+ pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc,,
149
+ pip/_internal/models/__pycache__/target_python.cpython-312.pyc,,
150
+ pip/_internal/models/__pycache__/wheel.cpython-312.pyc,,
151
+ pip/_internal/models/candidate.py,sha256=zzgFRuw_kWPjKpGw7LC0ZUMD2CQ2EberUIYs8izjdCA,753
152
+ pip/_internal/models/direct_url.py,sha256=uBtY2HHd3TO9cKQJWh0ThvE5FRr-MWRYChRU4IG9HZE,6578
153
+ pip/_internal/models/format_control.py,sha256=wtsQqSK9HaUiNxQEuB-C62eVimw6G4_VQFxV9-_KDBE,2486
154
+ pip/_internal/models/index.py,sha256=tYnL8oxGi4aSNWur0mG8DAP7rC6yuha_MwJO8xw0crI,1030
155
+ pip/_internal/models/installation_report.py,sha256=zRVZoaz-2vsrezj_H3hLOhMZCK9c7TbzWgC-jOalD00,2818
156
+ pip/_internal/models/link.py,sha256=GQ8hq7x-FDFPv25Nbn2veIM-MlBrGZDGLd7aZeF4Xrg,21448
157
+ pip/_internal/models/scheme.py,sha256=PakmHJM3e8OOWSZFtfz1Az7f1meONJnkGuQxFlt3wBE,575
158
+ pip/_internal/models/search_scope.py,sha256=67NEnsYY84784S-MM7ekQuo9KXLH-7MzFntXjapvAo0,4531
159
+ pip/_internal/models/selection_prefs.py,sha256=qaFfDs3ciqoXPg6xx45N1jPLqccLJw4N0s4P0PyHTQ8,2015
160
+ pip/_internal/models/target_python.py,sha256=2XaH2rZ5ZF-K5wcJbEMGEl7SqrTToDDNkrtQ2v_v_-Q,4271
161
+ pip/_internal/models/wheel.py,sha256=G7dND_s4ebPkEL7RJ1qCY0QhUUWIIK6AnjWgRATF5no,4539
162
+ pip/_internal/network/__init__.py,sha256=jf6Tt5nV_7zkARBrKojIXItgejvoegVJVKUbhAa5Ioc,50
163
+ pip/_internal/network/__pycache__/__init__.cpython-312.pyc,,
164
+ pip/_internal/network/__pycache__/auth.cpython-312.pyc,,
165
+ pip/_internal/network/__pycache__/cache.cpython-312.pyc,,
166
+ pip/_internal/network/__pycache__/download.cpython-312.pyc,,
167
+ pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc,,
168
+ pip/_internal/network/__pycache__/session.cpython-312.pyc,,
169
+ pip/_internal/network/__pycache__/utils.cpython-312.pyc,,
170
+ pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc,,
171
+ pip/_internal/network/auth.py,sha256=D4gASjUrqoDFlSt6gQ767KAAjv6PUyJU0puDlhXNVRE,20809
172
+ pip/_internal/network/cache.py,sha256=0yGMA3Eet59xBSLtbPAenvI53dl29oUOeqZ2c0QL2Ss,4614
173
+ pip/_internal/network/download.py,sha256=FLOP29dPYECBiAi7eEjvAbNkyzaKNqbyjOT2m8HPW8U,6048
174
+ pip/_internal/network/lazy_wheel.py,sha256=PBdoMoNQQIA84Fhgne38jWF52W4x_KtsHjxgv4dkRKA,7622
175
+ pip/_internal/network/session.py,sha256=msM4es16LmmNEYNkrYyg8fTc7gAHbKFltawfKP27LOI,18771
176
+ pip/_internal/network/utils.py,sha256=Inaxel-NxBu4PQWkjyErdnfewsFCcgHph7dzR1-FboY,4088
177
+ pip/_internal/network/xmlrpc.py,sha256=sAxzOacJ-N1NXGPvap9jC3zuYWSnnv3GXtgR2-E2APA,1838
178
+ pip/_internal/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
+ pip/_internal/operations/__pycache__/__init__.cpython-312.pyc,,
180
+ pip/_internal/operations/__pycache__/check.cpython-312.pyc,,
181
+ pip/_internal/operations/__pycache__/freeze.cpython-312.pyc,,
182
+ pip/_internal/operations/__pycache__/prepare.cpython-312.pyc,,
183
+ pip/_internal/operations/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc,,
185
+ pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc,,
186
+ pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc,,
187
+ pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc,,
188
+ pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc,,
189
+ pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc,,
190
+ pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc,,
191
+ pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc,,
192
+ pip/_internal/operations/build/build_tracker.py,sha256=-ARW_TcjHCOX7D2NUOGntB4Fgc6b4aolsXkAK6BWL7w,4774
193
+ pip/_internal/operations/build/metadata.py,sha256=9S0CUD8U3QqZeXp-Zyt8HxwU90lE4QrnYDgrqZDzBnc,1422
194
+ pip/_internal/operations/build/metadata_editable.py,sha256=xlAwcP9q_8_fmv_3I39w9EZ7SQV9hnJZr9VuTsq2Y68,1510
195
+ pip/_internal/operations/build/metadata_legacy.py,sha256=8i6i1QZX9m_lKPStEFsHKM0MT4a-CD408JOw99daLmo,2190
196
+ pip/_internal/operations/build/wheel.py,sha256=sT12FBLAxDC6wyrDorh8kvcZ1jG5qInCRWzzP-UkJiQ,1075
197
+ pip/_internal/operations/build/wheel_editable.py,sha256=yOtoH6zpAkoKYEUtr8FhzrYnkNHQaQBjWQ2HYae1MQg,1417
198
+ pip/_internal/operations/build/wheel_legacy.py,sha256=K-6kNhmj-1xDF45ny1yheMerF0ui4EoQCLzEoHh6-tc,3045
199
+ pip/_internal/operations/check.py,sha256=L24vRL8VWbyywdoeAhM89WCd8zLTnjIbULlKelUgIec,5912
200
+ pip/_internal/operations/freeze.py,sha256=1_M79jAQKnCxWr-KCCmHuVXOVFGaUJHmoWLfFzgh7K4,9843
201
+ pip/_internal/operations/install/__init__.py,sha256=mX7hyD2GNBO2mFGokDQ30r_GXv7Y_PLdtxcUv144e-s,51
202
+ pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc,,
203
+ pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc,,
204
+ pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc,,
205
+ pip/_internal/operations/install/editable_legacy.py,sha256=PoEsNEPGbIZ2yQphPsmYTKLOCMs4gv5OcCdzW124NcA,1283
206
+ pip/_internal/operations/install/wheel.py,sha256=X5Iz9yUg5LlK5VNQ9g2ikc6dcRu8EPi_SUi5iuEDRgo,27615
207
+ pip/_internal/operations/prepare.py,sha256=joWJwPkuqGscQgVNImLK71e9hRapwKvRCM8HclysmvU,28118
208
+ pip/_internal/pyproject.py,sha256=GLJ6rWRS5_2noKdajohoLyDty57Z7QXhcUAYghmTnWc,7286
209
+ pip/_internal/req/__init__.py,sha256=HxBFtZy_BbCclLgr26waMtpzYdO5T3vxePvpGAXSt5s,2653
210
+ pip/_internal/req/__pycache__/__init__.cpython-312.pyc,,
211
+ pip/_internal/req/__pycache__/constructors.cpython-312.pyc,,
212
+ pip/_internal/req/__pycache__/req_file.cpython-312.pyc,,
213
+ pip/_internal/req/__pycache__/req_install.cpython-312.pyc,,
214
+ pip/_internal/req/__pycache__/req_set.cpython-312.pyc,,
215
+ pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc,,
216
+ pip/_internal/req/constructors.py,sha256=v1qzCN1mIldwx-nCrPc8JO4lxkm3Fv8M5RWvt8LISjc,18430
217
+ pip/_internal/req/req_file.py,sha256=eys82McgaICOGic2UZRHjD720piKJPwmeSYdXlWwl6w,20234
218
+ pip/_internal/req/req_install.py,sha256=BMptxHYg2uG_b-7HFEULPb3nuw0FMAbuea8zTq2rE7w,35786
219
+ pip/_internal/req/req_set.py,sha256=j3esG0s6SzoVReX9rWn4rpYNtyET_fwxbwJPRimvRxo,2858
220
+ pip/_internal/req/req_uninstall.py,sha256=qzDIxJo-OETWqGais7tSMCDcWbATYABT-Tid3ityF0s,23853
221
+ pip/_internal/resolution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
+ pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc,,
223
+ pip/_internal/resolution/__pycache__/base.cpython-312.pyc,,
224
+ pip/_internal/resolution/base.py,sha256=qlmh325SBVfvG6Me9gc5Nsh5sdwHBwzHBq6aEXtKsLA,583
225
+ pip/_internal/resolution/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
+ pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc,,
227
+ pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc,,
228
+ pip/_internal/resolution/legacy/resolver.py,sha256=3HZiJBRd1FTN6jQpI4qRO8-TbLYeIbUTS6PFvXnXs2w,24068
229
+ pip/_internal/resolution/resolvelib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
+ pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc,,
231
+ pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc,,
232
+ pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc,,
233
+ pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc,,
234
+ pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc,,
235
+ pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc,,
236
+ pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc,,
237
+ pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc,,
238
+ pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc,,
239
+ pip/_internal/resolution/resolvelib/base.py,sha256=DCf669FsqyQY5uqXeePDHQY1e4QO-pBzWH8O0s9-K94,5023
240
+ pip/_internal/resolution/resolvelib/candidates.py,sha256=5UZ1upNnmqsP-nmEZaDYxaBgCoejw_e2WVGmmAvBxXc,20001
241
+ pip/_internal/resolution/resolvelib/factory.py,sha256=MJOLSZJY8_28PPdcutoQ6gjJ_1eBDt6Z1edtfTJyR4E,32659
242
+ pip/_internal/resolution/resolvelib/found_candidates.py,sha256=9hrTyQqFvl9I7Tji79F1AxHv39Qh1rkJ_7deSHSMfQc,6383
243
+ pip/_internal/resolution/resolvelib/provider.py,sha256=bcsFnYvlmtB80cwVdW1fIwgol8ZNr1f1VHyRTkz47SM,9935
244
+ pip/_internal/resolution/resolvelib/reporter.py,sha256=00JtoXEkTlw0-rl_sl54d71avwOsJHt9GGHcrj5Sza0,3168
245
+ pip/_internal/resolution/resolvelib/requirements.py,sha256=7JG4Z72e5Yk4vU0S5ulGvbqTy4FMQGYhY5zQhX9zTtY,8065
246
+ pip/_internal/resolution/resolvelib/resolver.py,sha256=nLJOsVMEVi2gQUVJoUFKMZAeu2f7GRMjGMvNSWyz0Bc,12592
247
+ pip/_internal/self_outdated_check.py,sha256=1PFtttvLAeyCVR3tPoBq2sOlPD0IJ-KSqU6bc1HUk9c,8318
248
+ pip/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
+ pip/_internal/utils/__pycache__/__init__.cpython-312.pyc,,
250
+ pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc,,
251
+ pip/_internal/utils/__pycache__/_log.cpython-312.pyc,,
252
+ pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc,,
253
+ pip/_internal/utils/__pycache__/compat.cpython-312.pyc,,
254
+ pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc,,
255
+ pip/_internal/utils/__pycache__/datetime.cpython-312.pyc,,
256
+ pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc,,
257
+ pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc,,
258
+ pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc,,
259
+ pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc,,
260
+ pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc,,
261
+ pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc,,
262
+ pip/_internal/utils/__pycache__/glibc.cpython-312.pyc,,
263
+ pip/_internal/utils/__pycache__/hashes.cpython-312.pyc,,
264
+ pip/_internal/utils/__pycache__/logging.cpython-312.pyc,,
265
+ pip/_internal/utils/__pycache__/misc.cpython-312.pyc,,
266
+ pip/_internal/utils/__pycache__/packaging.cpython-312.pyc,,
267
+ pip/_internal/utils/__pycache__/retry.cpython-312.pyc,,
268
+ pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc,,
269
+ pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc,,
270
+ pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc,,
271
+ pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc,,
272
+ pip/_internal/utils/__pycache__/urls.cpython-312.pyc,,
273
+ pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc,,
274
+ pip/_internal/utils/__pycache__/wheel.cpython-312.pyc,,
275
+ pip/_internal/utils/_jaraco_text.py,sha256=M15uUPIh5NpP1tdUGBxRau6q1ZAEtI8-XyLEETscFfE,3350
276
+ pip/_internal/utils/_log.py,sha256=-jHLOE_THaZz5BFcCnoSL9EYAtJ0nXem49s9of4jvKw,1015
277
+ pip/_internal/utils/appdirs.py,sha256=swgcTKOm3daLeXTW6v5BUS2Ti2RvEnGRQYH_yDXklAo,1665
278
+ pip/_internal/utils/compat.py,sha256=ckkFveBiYQjRWjkNsajt_oWPS57tJvE8XxoC4OIYgCY,2399
279
+ pip/_internal/utils/compatibility_tags.py,sha256=OWq5axHpW-MEEPztGdvgADrgJPAcV9a88Rxm4Z8VBs8,6272
280
+ pip/_internal/utils/datetime.py,sha256=m21Y3wAtQc-ji6Veb6k_M5g6A0ZyFI4egchTdnwh-pQ,242
281
+ pip/_internal/utils/deprecation.py,sha256=k7Qg_UBAaaTdyq82YVARA6D7RmcGTXGv7fnfcgigj4Q,3707
282
+ pip/_internal/utils/direct_url_helpers.py,sha256=r2MRtkVDACv9AGqYODBUC9CjwgtsUU1s68hmgfCJMtA,3196
283
+ pip/_internal/utils/egg_link.py,sha256=0FePZoUYKv4RGQ2t6x7w5Z427wbA_Uo3WZnAkrgsuqo,2463
284
+ pip/_internal/utils/entrypoints.py,sha256=YlhLTRl2oHBAuqhc-zmL7USS67TPWVHImjeAQHreZTQ,3064
285
+ pip/_internal/utils/filesystem.py,sha256=ajvA-q4ocliW9kPp8Yquh-4vssXbu-UKbo5FV9V4X64,4950
286
+ pip/_internal/utils/filetypes.py,sha256=i8XAQ0eFCog26Fw9yV0Yb1ygAqKYB1w9Cz9n0fj8gZU,716
287
+ pip/_internal/utils/glibc.py,sha256=vUkWq_1pJuzcYNcGKLlQmABoUiisK8noYY1yc8Wq4w4,3734
288
+ pip/_internal/utils/hashes.py,sha256=XGGLL0AG8-RhWnyz87xF6MFZ--BKadHU35D47eApCKI,4972
289
+ pip/_internal/utils/logging.py,sha256=ONfbrhaD248akkosK79if97n20EABxwjOxp5dE5RCRY,11845
290
+ pip/_internal/utils/misc.py,sha256=DWnYxBUItjRp7hhxEg4ih6P6YpKrykM86dbi_EcU8SQ,23450
291
+ pip/_internal/utils/packaging.py,sha256=cm-X_0HVHV_jRwUVZh6AuEWqSitzf8EpaJ7Uv2UGu6A,2142
292
+ pip/_internal/utils/retry.py,sha256=mhFbykXjhTnZfgzeuy-vl9c8nECnYn_CMtwNJX2tYzQ,1392
293
+ pip/_internal/utils/setuptools_build.py,sha256=ouXpud-jeS8xPyTPsXJ-m34NPvK5os45otAzdSV_IJE,4435
294
+ pip/_internal/utils/subprocess.py,sha256=EsvqSRiSMHF98T8Txmu6NLU3U--MpTTQjtNgKP0P--M,8988
295
+ pip/_internal/utils/temp_dir.py,sha256=5qOXe8M4JeY6vaFQM867d5zkp1bSwMZ-KT5jymmP0Zg,9310
296
+ pip/_internal/utils/unpacking.py,sha256=_gVdyzTRDMYktpnYljn4OoxrZTtMCf4xknSm4rK0WaA,11967
297
+ pip/_internal/utils/urls.py,sha256=qceSOZb5lbNDrHNsv7_S4L4Ytszja5NwPKUMnZHbYnM,1599
298
+ pip/_internal/utils/virtualenv.py,sha256=S6f7csYorRpiD6cvn3jISZYc3I8PJC43H5iMFpRAEDU,3456
299
+ pip/_internal/utils/wheel.py,sha256=b442jkydFHjXzDy6cMR7MpzWBJ1Q82hR5F33cmcHV3g,4494
300
+ pip/_internal/vcs/__init__.py,sha256=UAqvzpbi0VbZo3Ub6skEeZAw-ooIZR-zX_WpCbxyCoU,596
301
+ pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc,,
302
+ pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc,,
303
+ pip/_internal/vcs/__pycache__/git.cpython-312.pyc,,
304
+ pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc,,
305
+ pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc,,
306
+ pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc,,
307
+ pip/_internal/vcs/bazaar.py,sha256=EKStcQaKpNu0NK4p5Q10Oc4xb3DUxFw024XrJy40bFQ,3528
308
+ pip/_internal/vcs/git.py,sha256=3tpc9LQA_J4IVW5r5NvWaaSeDzcmJOrSFZN0J8vIKfU,18177
309
+ pip/_internal/vcs/mercurial.py,sha256=oULOhzJ2Uie-06d1omkL-_Gc6meGaUkyogvqG9ZCyPs,5249
310
+ pip/_internal/vcs/subversion.py,sha256=ddTugHBqHzV3ebKlU5QXHPN4gUqlyXbOx8q8NgXKvs8,11735
311
+ pip/_internal/vcs/versioncontrol.py,sha256=cvf_-hnTAjQLXJ3d17FMNhQfcO1AcKWUF10tfrYyP-c,22440
312
+ pip/_internal/wheel_builder.py,sha256=DL3A8LKeRj_ACp11WS5wSgASgPFqeyAeXJKdXfmaWXU,11799
313
+ pip/_vendor/__init__.py,sha256=JYuAXvClhInxIrA2FTp5p-uuWVL7WV6-vEpTs46-Qh4,4873
314
+ pip/_vendor/__pycache__/__init__.cpython-312.pyc,,
315
+ pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc,,
316
+ pip/_vendor/cachecontrol/__init__.py,sha256=LMC5CBe94ZRL5xhlzwyPDmHXvBD0p7lT4R3Z73D6a_I,677
317
+ pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc,,
318
+ pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc,,
319
+ pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc,,
320
+ pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc,,
321
+ pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc,,
322
+ pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc,,
323
+ pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc,,
324
+ pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc,,
325
+ pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc,,
326
+ pip/_vendor/cachecontrol/_cmd.py,sha256=iist2EpzJvDVIhMAxXq8iFnTBsiZAd6iplxfmNboNyk,1737
327
+ pip/_vendor/cachecontrol/adapter.py,sha256=febjY4LV87iiCIK3jcl8iH58iaSA7b9WkovsByIDK0Y,6348
328
+ pip/_vendor/cachecontrol/cache.py,sha256=OXwv7Fn2AwnKNiahJHnjtvaKLndvVLv_-zO-ltlV9qI,1953
329
+ pip/_vendor/cachecontrol/caches/__init__.py,sha256=dtrrroK5BnADR1GWjCZ19aZ0tFsMfvFBtLQQU1sp_ag,303
330
+ pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc,,
331
+ pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc,,
332
+ pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc,,
333
+ pip/_vendor/cachecontrol/caches/file_cache.py,sha256=b7oMgsRSqPmEsonVJw6uFEYUlFgD6GF8TyacOGG1x3M,5399
334
+ pip/_vendor/cachecontrol/caches/redis_cache.py,sha256=9rmqwtYu_ljVkW6_oLqbC7EaX_a8YT_yLuna-eS0dgo,1386
335
+ pip/_vendor/cachecontrol/controller.py,sha256=glbPj2iZlGqdBg8z09D2DtQOzoOGXnWvy7K2LEyBsEQ,18576
336
+ pip/_vendor/cachecontrol/filewrapper.py,sha256=2ktXNPE0KqnyzF24aOsKCA58HQq1xeC6l2g6_zwjghc,4291
337
+ pip/_vendor/cachecontrol/heuristics.py,sha256=gqMXU8w0gQuEQiSdu3Yg-0vd9kW7nrWKbLca75rheGE,4881
338
+ pip/_vendor/cachecontrol/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
+ pip/_vendor/cachecontrol/serialize.py,sha256=HQd2IllQ05HzPkVLMXTF2uX5mjEQjDBkxCqUJUODpZk,5163
340
+ pip/_vendor/cachecontrol/wrapper.py,sha256=hsGc7g8QGQTT-4f8tgz3AM5qwScg6FO0BSdLSRdEvpU,1417
341
+ pip/_vendor/certifi/__init__.py,sha256=p_GYZrjUwPBUhpLlCZoGb0miKBKSqDAyZC5DvIuqbHQ,94
342
+ pip/_vendor/certifi/__main__.py,sha256=1k3Cr95vCxxGRGDljrW3wMdpZdL3Nhf0u1n-k2qdsCY,255
343
+ pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc,,
344
+ pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc,,
345
+ pip/_vendor/certifi/__pycache__/core.cpython-312.pyc,,
346
+ pip/_vendor/certifi/cacert.pem,sha256=lO3rZukXdPyuk6BWUJFOKQliWaXH6HGh9l1GGrUgG0c,299427
347
+ pip/_vendor/certifi/core.py,sha256=2SRT5rIcQChFDbe37BQa-kULxAgJ8qN6l1jfqTp4HIs,4486
348
+ pip/_vendor/certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
349
+ pip/_vendor/distlib/__init__.py,sha256=dcwgYGYGQqAEawBXPDtIx80DO_3cOmFv8HTc8JMzknQ,625
350
+ pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc,,
351
+ pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc,,
352
+ pip/_vendor/distlib/__pycache__/database.cpython-312.pyc,,
353
+ pip/_vendor/distlib/__pycache__/index.cpython-312.pyc,,
354
+ pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc,,
355
+ pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc,,
356
+ pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc,,
357
+ pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc,,
358
+ pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc,,
359
+ pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc,,
360
+ pip/_vendor/distlib/__pycache__/util.cpython-312.pyc,,
361
+ pip/_vendor/distlib/__pycache__/version.cpython-312.pyc,,
362
+ pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc,,
363
+ pip/_vendor/distlib/compat.py,sha256=2jRSjRI4o-vlXeTK2BCGIUhkc6e9ZGhSsacRM5oseTw,41467
364
+ pip/_vendor/distlib/database.py,sha256=mHy_LxiXIsIVRb-T0-idBrVLw3Ffij5teHCpbjmJ9YU,51160
365
+ pip/_vendor/distlib/index.py,sha256=lTbw268rRhj8dw1sib3VZ_0EhSGgoJO3FKJzSFMOaeA,20797
366
+ pip/_vendor/distlib/locators.py,sha256=oBeAZpFuPQSY09MgNnLfQGGAXXvVO96BFpZyKMuK4tM,51026
367
+ pip/_vendor/distlib/manifest.py,sha256=3qfmAmVwxRqU1o23AlfXrQGZzh6g_GGzTAP_Hb9C5zQ,14168
368
+ pip/_vendor/distlib/markers.py,sha256=X6sDvkFGcYS8gUW8hfsWuKEKAqhQZAJ7iXOMLxRYjYk,5164
369
+ pip/_vendor/distlib/metadata.py,sha256=zil3sg2EUfLXVigljY2d_03IJt-JSs7nX-73fECMX2s,38724
370
+ pip/_vendor/distlib/resources.py,sha256=LwbPksc0A1JMbi6XnuPdMBUn83X7BPuFNWqPGEKI698,10820
371
+ pip/_vendor/distlib/scripts.py,sha256=BJliaDAZaVB7WAkwokgC3HXwLD2iWiHaVI50H7C6eG8,18608
372
+ pip/_vendor/distlib/t32.exe,sha256=a0GV5kCoWsMutvliiCKmIgV98eRZ33wXoS-XrqvJQVs,97792
373
+ pip/_vendor/distlib/t64-arm.exe,sha256=68TAa32V504xVBnufojh0PcenpR3U4wAqTqf-MZqbPw,182784
374
+ pip/_vendor/distlib/t64.exe,sha256=gaYY8hy4fbkHYTTnA4i26ct8IQZzkBG2pRdy0iyuBrc,108032
375
+ pip/_vendor/distlib/util.py,sha256=vMPGvsS4j9hF6Y9k3Tyom1aaHLb0rFmZAEyzeAdel9w,66682
376
+ pip/_vendor/distlib/version.py,sha256=s5VIs8wBn0fxzGxWM_aA2ZZyx525HcZbMvcTlTyZ3Rg,23727
377
+ pip/_vendor/distlib/w32.exe,sha256=R4csx3-OGM9kL4aPIzQKRo5TfmRSHZo6QWyLhDhNBks,91648
378
+ pip/_vendor/distlib/w64-arm.exe,sha256=xdyYhKj0WDcVUOCb05blQYvzdYIKMbmJn2SZvzkcey4,168448
379
+ pip/_vendor/distlib/w64.exe,sha256=ejGf-rojoBfXseGLpya6bFTFPWRG21X5KvU8J5iU-K0,101888
380
+ pip/_vendor/distlib/wheel.py,sha256=DFIVguEQHCdxnSdAO0dfFsgMcvVZitg7bCOuLwZ7A_s,43979
381
+ pip/_vendor/distro/__init__.py,sha256=2fHjF-SfgPvjyNZ1iHh_wjqWdR_Yo5ODHwZC0jLBPhc,981
382
+ pip/_vendor/distro/__main__.py,sha256=bu9d3TifoKciZFcqRBuygV3GSuThnVD_m2IK4cz96Vs,64
383
+ pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc,,
384
+ pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc,,
385
+ pip/_vendor/distro/__pycache__/distro.cpython-312.pyc,,
386
+ pip/_vendor/distro/distro.py,sha256=XqbefacAhDT4zr_trnbA15eY8vdK4GTghgmvUGrEM_4,49430
387
+ pip/_vendor/distro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
388
+ pip/_vendor/idna/__init__.py,sha256=MPqNDLZbXqGaNdXxAFhiqFPKEQXju2jNQhCey6-5eJM,868
389
+ pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc,,
390
+ pip/_vendor/idna/__pycache__/codec.cpython-312.pyc,,
391
+ pip/_vendor/idna/__pycache__/compat.cpython-312.pyc,,
392
+ pip/_vendor/idna/__pycache__/core.cpython-312.pyc,,
393
+ pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc,,
394
+ pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc,,
395
+ pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc,,
396
+ pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc,,
397
+ pip/_vendor/idna/codec.py,sha256=PEew3ItwzjW4hymbasnty2N2OXvNcgHB-JjrBuxHPYY,3422
398
+ pip/_vendor/idna/compat.py,sha256=RzLy6QQCdl9784aFhb2EX9EKGCJjg0P3PilGdeXXcx8,316
399
+ pip/_vendor/idna/core.py,sha256=YJYyAMnwiQEPjVC4-Fqu_p4CJ6yKKuDGmppBNQNQpFs,13239
400
+ pip/_vendor/idna/idnadata.py,sha256=W30GcIGvtOWYwAjZj4ZjuouUutC6ffgNuyjJy7fZ-lo,78306
401
+ pip/_vendor/idna/intranges.py,sha256=amUtkdhYcQG8Zr-CoMM_kVRacxkivC1WgxN1b63KKdU,1898
402
+ pip/_vendor/idna/package_data.py,sha256=q59S3OXsc5VI8j6vSD0sGBMyk6zZ4vWFREE88yCJYKs,21
403
+ pip/_vendor/idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
404
+ pip/_vendor/idna/uts46data.py,sha256=rt90K9J40gUSwppDPCrhjgi5AA6pWM65dEGRSf6rIhM,239289
405
+ pip/_vendor/msgpack/__init__.py,sha256=reRaiOtEzSjPnr7TpxjgIvbfln5pV66FhricAs2eC-g,1109
406
+ pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc,,
407
+ pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc,,
408
+ pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc,,
409
+ pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc,,
410
+ pip/_vendor/msgpack/exceptions.py,sha256=dCTWei8dpkrMsQDcjQk74ATl9HsIBH0ybt8zOPNqMYc,1081
411
+ pip/_vendor/msgpack/ext.py,sha256=kteJv03n9tYzd5oo3xYopVTo4vRaAxonBQQJhXohZZo,5726
412
+ pip/_vendor/msgpack/fallback.py,sha256=0g1Pzp0vtmBEmJ5w9F3s_-JMVURP8RS4G1cc5TRaAsI,32390
413
+ pip/_vendor/packaging/__init__.py,sha256=dk4Ta_vmdVJxYHDcfyhvQNw8V3PgSBomKNXqg-D2JDY,494
414
+ pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc,,
415
+ pip/_vendor/packaging/__pycache__/_elffile.cpython-312.pyc,,
416
+ pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc,,
417
+ pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc,,
418
+ pip/_vendor/packaging/__pycache__/_parser.cpython-312.pyc,,
419
+ pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc,,
420
+ pip/_vendor/packaging/__pycache__/_tokenizer.cpython-312.pyc,,
421
+ pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc,,
422
+ pip/_vendor/packaging/__pycache__/metadata.cpython-312.pyc,,
423
+ pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc,,
424
+ pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc,,
425
+ pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc,,
426
+ pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc,,
427
+ pip/_vendor/packaging/__pycache__/version.cpython-312.pyc,,
428
+ pip/_vendor/packaging/_elffile.py,sha256=cflAQAkE25tzhYmq_aCi72QfbT_tn891tPzfpbeHOwE,3306
429
+ pip/_vendor/packaging/_manylinux.py,sha256=vl5OCoz4kx80H5rwXKeXWjl9WNISGmr4ZgTpTP9lU9c,9612
430
+ pip/_vendor/packaging/_musllinux.py,sha256=p9ZqNYiOItGee8KcZFeHF_YcdhVwGHdK6r-8lgixvGQ,2694
431
+ pip/_vendor/packaging/_parser.py,sha256=s_TvTvDNK0NrM2QB3VKThdWFM4Nc0P6JnkObkl3MjpM,10236
432
+ pip/_vendor/packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431
433
+ pip/_vendor/packaging/_tokenizer.py,sha256=J6v5H7Jzvb-g81xp_2QACKwO7LxHQA6ikryMU7zXwN8,5273
434
+ pip/_vendor/packaging/licenses/__init__.py,sha256=A116-FU49_Dz4162M4y1uAiZN4Rgdc83FxNd8EjlfqI,5727
435
+ pip/_vendor/packaging/licenses/__pycache__/__init__.cpython-312.pyc,,
436
+ pip/_vendor/packaging/licenses/__pycache__/_spdx.cpython-312.pyc,,
437
+ pip/_vendor/packaging/licenses/_spdx.py,sha256=oAm1ztPFwlsmCKe7lAAsv_OIOfS1cWDu9bNBkeu-2ns,48398
438
+ pip/_vendor/packaging/markers.py,sha256=c89TNzB7ZdGYhkovm6PYmqGyHxXlYVaLW591PHUNKD8,10561
439
+ pip/_vendor/packaging/metadata.py,sha256=YJibM7GYe4re8-0a3OlXmGS-XDgTEoO4tlBt2q25Bng,34762
440
+ pip/_vendor/packaging/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
441
+ pip/_vendor/packaging/requirements.py,sha256=gYyRSAdbrIyKDY66ugIDUQjRMvxkH2ALioTmX3tnL6o,2947
442
+ pip/_vendor/packaging/specifiers.py,sha256=hGU6kuCd77bL-msIL6yLCp6MNT75RSMUKZDuju26c8U,40098
443
+ pip/_vendor/packaging/tags.py,sha256=CFqrJzAzc2XNGexerH__T-Y5Iwq7WbsYXsiLERLWxY0,21014
444
+ pip/_vendor/packaging/utils.py,sha256=0F3Hh9OFuRgrhTgGZUl5K22Fv1YP2tZl1z_2gO6kJiA,5050
445
+ pip/_vendor/packaging/version.py,sha256=oiHqzTUv_p12hpjgsLDVcaF5hT7pDaSOViUNMD4GTW0,16688
446
+ pip/_vendor/pkg_resources/__init__.py,sha256=jrhDRbOubP74QuPXxd7U7Po42PH2l-LZ2XfcO7llpZ4,124463
447
+ pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc,,
448
+ pip/_vendor/platformdirs/__init__.py,sha256=JueR2cRLkxY7iwik-qNWJCwKOrAlBgVgcZ_IHQzqGLE,22344
449
+ pip/_vendor/platformdirs/__main__.py,sha256=jBJ8zb7Mpx5ebcqF83xrpO94MaeCpNGHVf9cvDN2JLg,1505
450
+ pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc,,
451
+ pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc,,
452
+ pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc,,
453
+ pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc,,
454
+ pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc,,
455
+ pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc,,
456
+ pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc,,
457
+ pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc,,
458
+ pip/_vendor/platformdirs/android.py,sha256=kV5oL3V3DZ6WZKu9yFiQupv18yp_jlSV2ChH1TmPcds,9007
459
+ pip/_vendor/platformdirs/api.py,sha256=2dfUDNbEXeDhDKarqtR5NY7oUikUZ4RZhs3ozstmhBQ,9246
460
+ pip/_vendor/platformdirs/macos.py,sha256=UlbyFZ8Rzu3xndCqQEHrfsYTeHwYdFap1Ioz-yxveT4,6154
461
+ pip/_vendor/platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
462
+ pip/_vendor/platformdirs/unix.py,sha256=uRPJWRyQEtv7yOSvU94rUmsblo5XKDLA1SzFg55kbK0,10393
463
+ pip/_vendor/platformdirs/version.py,sha256=oH4KgTfK4AklbTYVcV_yynvJ9JLI3pyvDVay0hRsLCs,411
464
+ pip/_vendor/platformdirs/windows.py,sha256=IFpiohUBwxPtCzlyKwNtxyW4Jk8haa6W8o59mfrDXVo,10125
465
+ pip/_vendor/pygments/__init__.py,sha256=7N1oiaWulw_nCsTY4EEixYLz15pWY5u4uPAFFi-ielU,2983
466
+ pip/_vendor/pygments/__main__.py,sha256=isIhBxLg65nLlXukG4VkMuPfNdd7gFzTZ_R_z3Q8diY,353
467
+ pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc,,
468
+ pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc,,
469
+ pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc,,
470
+ pip/_vendor/pygments/__pycache__/console.cpython-312.pyc,,
471
+ pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc,,
472
+ pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc,,
473
+ pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc,,
474
+ pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc,,
475
+ pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc,,
476
+ pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc,,
477
+ pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc,,
478
+ pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc,,
479
+ pip/_vendor/pygments/__pycache__/style.cpython-312.pyc,,
480
+ pip/_vendor/pygments/__pycache__/token.cpython-312.pyc,,
481
+ pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc,,
482
+ pip/_vendor/pygments/__pycache__/util.cpython-312.pyc,,
483
+ pip/_vendor/pygments/cmdline.py,sha256=LIVzmAunlk9sRJJp54O4KRy9GDIN4Wu13v9p9QzfGPM,23656
484
+ pip/_vendor/pygments/console.py,sha256=yhP9UsLAVmWKVQf2446JJewkA7AiXeeTf4Ieg3Oi2fU,1718
485
+ pip/_vendor/pygments/filter.py,sha256=_ADNPCskD8_GmodHi6_LoVgPU3Zh336aBCT5cOeTMs0,1910
486
+ pip/_vendor/pygments/filters/__init__.py,sha256=RdedK2KWKXlKwR7cvkfr3NUj9YiZQgMgilRMFUg2jPA,40392
487
+ pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc,,
488
+ pip/_vendor/pygments/formatter.py,sha256=jDWBTndlBH2Z5IYZFVDnP0qn1CaTQjTWt7iAGtCnJEg,4390
489
+ pip/_vendor/pygments/formatters/__init__.py,sha256=8No-NUs8rBTSSBJIv4hSEQt2M0cFB4hwAT0snVc2QGE,5385
490
+ pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc,,
491
+ pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc,,
492
+ pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc,,
493
+ pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc,,
494
+ pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc,,
495
+ pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc,,
496
+ pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc,,
497
+ pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc,,
498
+ pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc,,
499
+ pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc,,
500
+ pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc,,
501
+ pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc,,
502
+ pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc,,
503
+ pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc,,
504
+ pip/_vendor/pygments/formatters/_mapping.py,sha256=1Cw37FuQlNacnxRKmtlPX4nyLoX9_ttko5ZwscNUZZ4,4176
505
+ pip/_vendor/pygments/formatters/bbcode.py,sha256=3JQLI45tcrQ_kRUMjuab6C7Hb0XUsbVWqqbSn9cMjkI,3320
506
+ pip/_vendor/pygments/formatters/groff.py,sha256=M39k0PaSSZRnxWjqBSVPkF0mu1-Vr7bm6RsFvs-CNN4,5106
507
+ pip/_vendor/pygments/formatters/html.py,sha256=SE2jc3YCqbMS3rZW9EAmDlAUhdVxJ52gA4dileEvCGU,35669
508
+ pip/_vendor/pygments/formatters/img.py,sha256=MwA4xWPLOwh6j7Yc6oHzjuqSPt0M1fh5r-5BTIIUfsU,23287
509
+ pip/_vendor/pygments/formatters/irc.py,sha256=dp1Z0l_ObJ5NFh9MhqLGg5ptG5hgJqedT2Vkutt9v0M,4981
510
+ pip/_vendor/pygments/formatters/latex.py,sha256=XMmhOCqUKDBQtG5mGJNAFYxApqaC5puo5cMmPfK3944,19306
511
+ pip/_vendor/pygments/formatters/other.py,sha256=56PMJOliin-rAUdnRM0i1wsV1GdUPd_dvQq0_UPfF9c,5034
512
+ pip/_vendor/pygments/formatters/pangomarkup.py,sha256=y16U00aVYYEFpeCfGXlYBSMacG425CbfoG8oKbKegIg,2218
513
+ pip/_vendor/pygments/formatters/rtf.py,sha256=ZT90dmcKyJboIB0mArhL7IhE467GXRN0G7QAUgG03To,11957
514
+ pip/_vendor/pygments/formatters/svg.py,sha256=KKsiophPupHuxm0So-MsbQEWOT54IAiSF7hZPmxtKXE,7174
515
+ pip/_vendor/pygments/formatters/terminal.py,sha256=AojNG4MlKq2L6IsC_VnXHu4AbHCBn9Otog6u45XvxeI,4674
516
+ pip/_vendor/pygments/formatters/terminal256.py,sha256=kGkNUVo3FpwjytIDS0if79EuUoroAprcWt3igrcIqT0,11753
517
+ pip/_vendor/pygments/lexer.py,sha256=TYHDt___gNW4axTl2zvPZff-VQi8fPaIh5OKRcVSjUM,35349
518
+ pip/_vendor/pygments/lexers/__init__.py,sha256=pIlxyQJuu_syh9lE080cq8ceVbEVcKp0osAFU5fawJU,12115
519
+ pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc,,
520
+ pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc,,
521
+ pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc,,
522
+ pip/_vendor/pygments/lexers/_mapping.py,sha256=61-h3zr103m01OS5BUq_AfUiL9YI06Ves9ipQ7k4vr4,76097
523
+ pip/_vendor/pygments/lexers/python.py,sha256=2J_YJrPTr_A6fJY_qKiKv0GpgPwHMrlMSeo59qN3fe4,53687
524
+ pip/_vendor/pygments/modeline.py,sha256=gtRYZBS-CKOCDXHhGZqApboHBaZwGH8gznN3O6nuxj4,1005
525
+ pip/_vendor/pygments/plugin.py,sha256=ioeJ3QeoJ-UQhZpY9JL7vbxsTVuwwM7BCu-Jb8nN0AU,1891
526
+ pip/_vendor/pygments/regexopt.py,sha256=Hky4EB13rIXEHQUNkwmCrYqtIlnXDehNR3MztafZ43w,3072
527
+ pip/_vendor/pygments/scanner.py,sha256=NDy3ofK_fHRFK4hIDvxpamG871aewqcsIb6sgTi7Fhk,3092
528
+ pip/_vendor/pygments/sphinxext.py,sha256=iOptJBcqOGPwMEJ2p70PvwpZPIGdvdZ8dxvq6kzxDgA,7981
529
+ pip/_vendor/pygments/style.py,sha256=rSCZWFpg1_DwFMXDU0nEVmAcBHpuQGf9RxvOPPQvKLQ,6420
530
+ pip/_vendor/pygments/styles/__init__.py,sha256=qUk6_1z5KmT8EdJFZYgESmG6P_HJF_2vVrDD7HSCGYY,2042
531
+ pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc,,
532
+ pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-312.pyc,,
533
+ pip/_vendor/pygments/styles/_mapping.py,sha256=6lovFUE29tz6EsV3XYY4hgozJ7q1JL7cfO3UOlgnS8w,3312
534
+ pip/_vendor/pygments/token.py,sha256=qZwT7LSPy5YBY3JgDjut642CCy7JdQzAfmqD9NmT5j0,6226
535
+ pip/_vendor/pygments/unistring.py,sha256=p5c1i-HhoIhWemy9CUsaN9o39oomYHNxXll0Xfw6tEA,63208
536
+ pip/_vendor/pygments/util.py,sha256=2tj2nS1X9_OpcuSjf8dOET2bDVZhs8cEKd_uT6-Fgg8,10031
537
+ pip/_vendor/pyproject_hooks/__init__.py,sha256=cPB_a9LXz5xvsRbX1o2qyAdjLatZJdQ_Lc5McNX-X7Y,691
538
+ pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc,,
539
+ pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc,,
540
+ pip/_vendor/pyproject_hooks/_impl.py,sha256=jY-raxnmyRyB57ruAitrJRUzEexuAhGTpgMygqx67Z4,14936
541
+ pip/_vendor/pyproject_hooks/_in_process/__init__.py,sha256=MJNPpfIxcO-FghxpBbxkG1rFiQf6HOUbV4U5mq0HFns,557
542
+ pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc,,
543
+ pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc,,
544
+ pip/_vendor/pyproject_hooks/_in_process/_in_process.py,sha256=qcXMhmx__MIJq10gGHW3mA4Tl8dy8YzHMccwnNoKlw0,12216
545
+ pip/_vendor/pyproject_hooks/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
546
+ pip/_vendor/requests/__init__.py,sha256=HlB_HzhrzGtfD_aaYUwUh1zWXLZ75_YCLyit75d0Vz8,5057
547
+ pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc,,
548
+ pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc,,
549
+ pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc,,
550
+ pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc,,
551
+ pip/_vendor/requests/__pycache__/api.cpython-312.pyc,,
552
+ pip/_vendor/requests/__pycache__/auth.cpython-312.pyc,,
553
+ pip/_vendor/requests/__pycache__/certs.cpython-312.pyc,,
554
+ pip/_vendor/requests/__pycache__/compat.cpython-312.pyc,,
555
+ pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc,,
556
+ pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc,,
557
+ pip/_vendor/requests/__pycache__/help.cpython-312.pyc,,
558
+ pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc,,
559
+ pip/_vendor/requests/__pycache__/models.cpython-312.pyc,,
560
+ pip/_vendor/requests/__pycache__/packages.cpython-312.pyc,,
561
+ pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc,,
562
+ pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc,,
563
+ pip/_vendor/requests/__pycache__/structures.cpython-312.pyc,,
564
+ pip/_vendor/requests/__pycache__/utils.cpython-312.pyc,,
565
+ pip/_vendor/requests/__version__.py,sha256=FVfglgZmNQnmYPXpOohDU58F5EUb_-VnSTaAesS187g,435
566
+ pip/_vendor/requests/_internal_utils.py,sha256=nMQymr4hs32TqVo5AbCrmcJEhvPUh7xXlluyqwslLiQ,1495
567
+ pip/_vendor/requests/adapters.py,sha256=J7VeVxKBvawbtlX2DERVo05J9BXTcWYLMHNd1Baa-bk,27607
568
+ pip/_vendor/requests/api.py,sha256=_Zb9Oa7tzVIizTKwFrPjDEY9ejtm_OnSRERnADxGsQs,6449
569
+ pip/_vendor/requests/auth.py,sha256=kF75tqnLctZ9Mf_hm9TZIj4cQWnN5uxRz8oWsx5wmR0,10186
570
+ pip/_vendor/requests/certs.py,sha256=kHDlkK_beuHXeMPc5jta2wgl8gdKeUWt5f2nTDVrvt8,441
571
+ pip/_vendor/requests/compat.py,sha256=Mo9f9xZpefod8Zm-n9_StJcVTmwSukXR2p3IQyyVXvU,1485
572
+ pip/_vendor/requests/cookies.py,sha256=bNi-iqEj4NPZ00-ob-rHvzkvObzN3lEpgw3g6paS3Xw,18590
573
+ pip/_vendor/requests/exceptions.py,sha256=D1wqzYWne1mS2rU43tP9CeN1G7QAy7eqL9o1god6Ejw,4272
574
+ pip/_vendor/requests/help.py,sha256=hRKaf9u0G7fdwrqMHtF3oG16RKktRf6KiwtSq2Fo1_0,3813
575
+ pip/_vendor/requests/hooks.py,sha256=CiuysiHA39V5UfcCBXFIx83IrDpuwfN9RcTUgv28ftQ,733
576
+ pip/_vendor/requests/models.py,sha256=x4K4CmH-lC0l2Kb-iPfMN4dRXxHEcbOaEWBL_i09AwI,35483
577
+ pip/_vendor/requests/packages.py,sha256=_ZQDCJTJ8SP3kVWunSqBsRZNPzj2c1WFVqbdr08pz3U,1057
578
+ pip/_vendor/requests/sessions.py,sha256=ykTI8UWGSltOfH07HKollH7kTBGw4WhiBVaQGmckTw4,30495
579
+ pip/_vendor/requests/status_codes.py,sha256=iJUAeA25baTdw-6PfD0eF4qhpINDJRJI-yaMqxs4LEI,4322
580
+ pip/_vendor/requests/structures.py,sha256=-IbmhVz06S-5aPSZuUthZ6-6D9XOjRuTXHOabY041XM,2912
581
+ pip/_vendor/requests/utils.py,sha256=L79vnFbzJ3SFLKtJwpoWe41Tozi3RlZv94pY1TFIyow,33631
582
+ pip/_vendor/resolvelib/__init__.py,sha256=h509TdEcpb5-44JonaU3ex2TM15GVBLjM9CNCPwnTTs,537
583
+ pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc,,
584
+ pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc,,
585
+ pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc,,
586
+ pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc,,
587
+ pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc,,
588
+ pip/_vendor/resolvelib/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
589
+ pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc,,
590
+ pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc,,
591
+ pip/_vendor/resolvelib/compat/collections_abc.py,sha256=uy8xUZ-NDEw916tugUXm8HgwCGiMO0f-RcdnpkfXfOs,156
592
+ pip/_vendor/resolvelib/providers.py,sha256=fuuvVrCetu5gsxPB43ERyjfO8aReS3rFQHpDgiItbs4,5871
593
+ pip/_vendor/resolvelib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
594
+ pip/_vendor/resolvelib/reporters.py,sha256=TSbRmWzTc26w0ggsV1bxVpeWDB8QNIre6twYl7GIZBE,1601
595
+ pip/_vendor/resolvelib/resolvers.py,sha256=G8rsLZSq64g5VmIq-lB7UcIJ1gjAxIQJmTF4REZleQ0,20511
596
+ pip/_vendor/resolvelib/structs.py,sha256=0_1_XO8z_CLhegP3Vpf9VJ3zJcfLm0NOHRM-i0Ykz3o,4963
597
+ pip/_vendor/rich/__init__.py,sha256=dRxjIL-SbFVY0q3IjSMrfgBTHrm1LZDgLOygVBwiYZc,6090
598
+ pip/_vendor/rich/__main__.py,sha256=eO7Cq8JnrgG8zVoeImiAs92q3hXNMIfp0w5lMsO7Q2Y,8477
599
+ pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc,,
600
+ pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc,,
601
+ pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc,,
602
+ pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc,,
603
+ pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc,,
604
+ pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc,,
605
+ pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc,,
606
+ pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc,,
607
+ pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc,,
608
+ pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc,,
609
+ pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc,,
610
+ pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc,,
611
+ pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc,,
612
+ pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc,,
613
+ pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc,,
614
+ pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc,,
615
+ pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc,,
616
+ pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc,,
617
+ pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc,,
618
+ pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc,,
619
+ pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc,,
620
+ pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc,,
621
+ pip/_vendor/rich/__pycache__/abc.cpython-312.pyc,,
622
+ pip/_vendor/rich/__pycache__/align.cpython-312.pyc,,
623
+ pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc,,
624
+ pip/_vendor/rich/__pycache__/bar.cpython-312.pyc,,
625
+ pip/_vendor/rich/__pycache__/box.cpython-312.pyc,,
626
+ pip/_vendor/rich/__pycache__/cells.cpython-312.pyc,,
627
+ pip/_vendor/rich/__pycache__/color.cpython-312.pyc,,
628
+ pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc,,
629
+ pip/_vendor/rich/__pycache__/columns.cpython-312.pyc,,
630
+ pip/_vendor/rich/__pycache__/console.cpython-312.pyc,,
631
+ pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc,,
632
+ pip/_vendor/rich/__pycache__/containers.cpython-312.pyc,,
633
+ pip/_vendor/rich/__pycache__/control.cpython-312.pyc,,
634
+ pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc,,
635
+ pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc,,
636
+ pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc,,
637
+ pip/_vendor/rich/__pycache__/errors.cpython-312.pyc,,
638
+ pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc,,
639
+ pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc,,
640
+ pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc,,
641
+ pip/_vendor/rich/__pycache__/json.cpython-312.pyc,,
642
+ pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc,,
643
+ pip/_vendor/rich/__pycache__/layout.cpython-312.pyc,,
644
+ pip/_vendor/rich/__pycache__/live.cpython-312.pyc,,
645
+ pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc,,
646
+ pip/_vendor/rich/__pycache__/logging.cpython-312.pyc,,
647
+ pip/_vendor/rich/__pycache__/markup.cpython-312.pyc,,
648
+ pip/_vendor/rich/__pycache__/measure.cpython-312.pyc,,
649
+ pip/_vendor/rich/__pycache__/padding.cpython-312.pyc,,
650
+ pip/_vendor/rich/__pycache__/pager.cpython-312.pyc,,
651
+ pip/_vendor/rich/__pycache__/palette.cpython-312.pyc,,
652
+ pip/_vendor/rich/__pycache__/panel.cpython-312.pyc,,
653
+ pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc,,
654
+ pip/_vendor/rich/__pycache__/progress.cpython-312.pyc,,
655
+ pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc,,
656
+ pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc,,
657
+ pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc,,
658
+ pip/_vendor/rich/__pycache__/region.cpython-312.pyc,,
659
+ pip/_vendor/rich/__pycache__/repr.cpython-312.pyc,,
660
+ pip/_vendor/rich/__pycache__/rule.cpython-312.pyc,,
661
+ pip/_vendor/rich/__pycache__/scope.cpython-312.pyc,,
662
+ pip/_vendor/rich/__pycache__/screen.cpython-312.pyc,,
663
+ pip/_vendor/rich/__pycache__/segment.cpython-312.pyc,,
664
+ pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc,,
665
+ pip/_vendor/rich/__pycache__/status.cpython-312.pyc,,
666
+ pip/_vendor/rich/__pycache__/style.cpython-312.pyc,,
667
+ pip/_vendor/rich/__pycache__/styled.cpython-312.pyc,,
668
+ pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc,,
669
+ pip/_vendor/rich/__pycache__/table.cpython-312.pyc,,
670
+ pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc,,
671
+ pip/_vendor/rich/__pycache__/text.cpython-312.pyc,,
672
+ pip/_vendor/rich/__pycache__/theme.cpython-312.pyc,,
673
+ pip/_vendor/rich/__pycache__/themes.cpython-312.pyc,,
674
+ pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc,,
675
+ pip/_vendor/rich/__pycache__/tree.cpython-312.pyc,,
676
+ pip/_vendor/rich/_cell_widths.py,sha256=fbmeyetEdHjzE_Vx2l1uK7tnPOhMs2X1lJfO3vsKDpA,10209
677
+ pip/_vendor/rich/_emoji_codes.py,sha256=hu1VL9nbVdppJrVoijVshRlcRRe_v3dju3Mmd2sKZdY,140235
678
+ pip/_vendor/rich/_emoji_replace.py,sha256=n-kcetsEUx2ZUmhQrfeMNc-teeGhpuSQ5F8VPBsyvDo,1064
679
+ pip/_vendor/rich/_export_format.py,sha256=RI08pSrm5tBSzPMvnbTqbD9WIalaOoN5d4M1RTmLq1Y,2128
680
+ pip/_vendor/rich/_extension.py,sha256=Xt47QacCKwYruzjDi-gOBq724JReDj9Cm9xUi5fr-34,265
681
+ pip/_vendor/rich/_fileno.py,sha256=HWZxP5C2ajMbHryvAQZseflVfQoGzsKOHzKGsLD8ynQ,799
682
+ pip/_vendor/rich/_inspect.py,sha256=QM05lEFnFoTaFqpnbx-zBEI6k8oIKrD3cvjEOQNhKig,9655
683
+ pip/_vendor/rich/_log_render.py,sha256=1ByI0PA1ZpxZY3CGJOK54hjlq4X-Bz_boIjIqCd8Kns,3225
684
+ pip/_vendor/rich/_loop.py,sha256=hV_6CLdoPm0va22Wpw4zKqM0RYsz3TZxXj0PoS-9eDQ,1236
685
+ pip/_vendor/rich/_null_file.py,sha256=ADGKp1yt-k70FMKV6tnqCqecB-rSJzp-WQsD7LPL-kg,1394
686
+ pip/_vendor/rich/_palettes.py,sha256=cdev1JQKZ0JvlguV9ipHgznTdnvlIzUFDBb0It2PzjI,7063
687
+ pip/_vendor/rich/_pick.py,sha256=evDt8QN4lF5CiwrUIXlOJCntitBCOsI3ZLPEIAVRLJU,423
688
+ pip/_vendor/rich/_ratio.py,sha256=Zt58apszI6hAAcXPpgdWKpu3c31UBWebOeR4mbyptvU,5471
689
+ pip/_vendor/rich/_spinners.py,sha256=U2r1_g_1zSjsjiUdAESc2iAMc3i4ri_S8PYP6kQ5z1I,19919
690
+ pip/_vendor/rich/_stack.py,sha256=-C8OK7rxn3sIUdVwxZBBpeHhIzX0eI-VM3MemYfaXm0,351
691
+ pip/_vendor/rich/_timer.py,sha256=zelxbT6oPFZnNrwWPpc1ktUeAT-Vc4fuFcRZLQGLtMI,417
692
+ pip/_vendor/rich/_win32_console.py,sha256=BSaDRIMwBLITn_m0mTRLPqME5q-quGdSMuYMpYeYJwc,22755
693
+ pip/_vendor/rich/_windows.py,sha256=aBwaD_S56SbgopIvayVmpk0Y28uwY2C5Bab1wl3Bp-I,1925
694
+ pip/_vendor/rich/_windows_renderer.py,sha256=t74ZL3xuDCP3nmTp9pH1L5LiI2cakJuQRQleHCJerlk,2783
695
+ pip/_vendor/rich/_wrap.py,sha256=FlSsom5EX0LVkA3KWy34yHnCfLtqX-ZIepXKh-70rpc,3404
696
+ pip/_vendor/rich/abc.py,sha256=ON-E-ZqSSheZ88VrKX2M3PXpFbGEUUZPMa_Af0l-4f0,890
697
+ pip/_vendor/rich/align.py,sha256=Rh-3adnDaN1Ao07EjR2PhgE62PGLPgO8SMwJBku1urQ,10469
698
+ pip/_vendor/rich/ansi.py,sha256=Avs1LHbSdcyOvDOdpELZUoULcBiYewY76eNBp6uFBhs,6921
699
+ pip/_vendor/rich/bar.py,sha256=ldbVHOzKJOnflVNuv1xS7g6dLX2E3wMnXkdPbpzJTcs,3263
700
+ pip/_vendor/rich/box.py,sha256=nr5fYIUghB_iUCEq6y0Z3LlCT8gFPDrzN9u2kn7tJl4,10831
701
+ pip/_vendor/rich/cells.py,sha256=KrQkj5-LghCCpJLSNQIyAZjndc4bnEqOEmi5YuZ9UCY,5130
702
+ pip/_vendor/rich/color.py,sha256=3HSULVDj7qQkXUdFWv78JOiSZzfy5y1nkcYhna296V0,18211
703
+ pip/_vendor/rich/color_triplet.py,sha256=3lhQkdJbvWPoLDO-AnYImAWmJvV5dlgYNCVZ97ORaN4,1054
704
+ pip/_vendor/rich/columns.py,sha256=HUX0KcMm9dsKNi11fTbiM_h2iDtl8ySCaVcxlalEzq8,7131
705
+ pip/_vendor/rich/console.py,sha256=nKjrEx_7xy8KGmDVT-BgNII0R5hm1cexhAHDwdwNVqg,100156
706
+ pip/_vendor/rich/constrain.py,sha256=1VIPuC8AgtKWrcncQrjBdYqA3JVWysu6jZo1rrh7c7Q,1288
707
+ pip/_vendor/rich/containers.py,sha256=c_56TxcedGYqDepHBMTuZdUIijitAQgnox-Qde0Z1qo,5502
708
+ pip/_vendor/rich/control.py,sha256=DSkHTUQLorfSERAKE_oTAEUFefZnZp4bQb4q8rHbKws,6630
709
+ pip/_vendor/rich/default_styles.py,sha256=dZxgaSD9VUy7SXQShO33aLYiAWspCr2sCQZFX_JK1j4,8159
710
+ pip/_vendor/rich/diagnose.py,sha256=an6uouwhKPAlvQhYpNNpGq9EJysfMIOvvCbO3oSoR24,972
711
+ pip/_vendor/rich/emoji.py,sha256=omTF9asaAnsM4yLY94eR_9dgRRSm1lHUszX20D1yYCQ,2501
712
+ pip/_vendor/rich/errors.py,sha256=5pP3Kc5d4QJ_c0KFsxrfyhjiPVe7J1zOqSFbFAzcV-Y,642
713
+ pip/_vendor/rich/file_proxy.py,sha256=Tl9THMDZ-Pk5Wm8sI1gGg_U5DhusmxD-FZ0fUbcU0W0,1683
714
+ pip/_vendor/rich/filesize.py,sha256=_iz9lIpRgvW7MNSeCZnLg-HwzbP4GETg543WqD8SFs0,2484
715
+ pip/_vendor/rich/highlighter.py,sha256=G_sn-8DKjM1sEjLG_oc4ovkWmiUpWvj8bXi0yed2LnY,9586
716
+ pip/_vendor/rich/json.py,sha256=vVEoKdawoJRjAFayPwXkMBPLy7RSTs-f44wSQDR2nJ0,5031
717
+ pip/_vendor/rich/jupyter.py,sha256=QyoKoE_8IdCbrtiSHp9TsTSNyTHY0FO5whE7jOTd9UE,3252
718
+ pip/_vendor/rich/layout.py,sha256=ajkSFAtEVv9EFTcFs-w4uZfft7nEXhNzL7ZVdgrT5rI,14004
719
+ pip/_vendor/rich/live.py,sha256=DhzAPEnjTxQuq9_0Y2xh2MUwQcP_aGPkenLfKETslwM,14270
720
+ pip/_vendor/rich/live_render.py,sha256=zJtB471jGziBtEwxc54x12wEQtH4BuQr1SA8v9kU82w,3666
721
+ pip/_vendor/rich/logging.py,sha256=ZgpKMMBY_BuMAI_BYzo-UtXak6t5oH9VK8m9Q2Lm0f4,12458
722
+ pip/_vendor/rich/markup.py,sha256=3euGKP5s41NCQwaSjTnJxus5iZMHjxpIM0W6fCxra38,8451
723
+ pip/_vendor/rich/measure.py,sha256=HmrIJX8sWRTHbgh8MxEay_83VkqNW_70s8aKP5ZcYI8,5305
724
+ pip/_vendor/rich/padding.py,sha256=KVEI3tOwo9sgK1YNSuH__M1_jUWmLZwRVV_KmOtVzyM,4908
725
+ pip/_vendor/rich/pager.py,sha256=SO_ETBFKbg3n_AgOzXm41Sv36YxXAyI3_R-KOY2_uSc,828
726
+ pip/_vendor/rich/palette.py,sha256=lInvR1ODDT2f3UZMfL1grq7dY_pDdKHw4bdUgOGaM4Y,3396
727
+ pip/_vendor/rich/panel.py,sha256=fFRHcviXvWhk3V3zx5Zwmsb_RL9KJ3esD-sU0NYEVyw,11235
728
+ pip/_vendor/rich/pretty.py,sha256=gy3S72u4FRg2ytoo7N1ZDWDIvB4unbzd5iUGdgm-8fc,36391
729
+ pip/_vendor/rich/progress.py,sha256=MtmCjTk5zYU_XtRHxRHTAEHG6hF9PeF7EMWbEPleIC0,60357
730
+ pip/_vendor/rich/progress_bar.py,sha256=mZTPpJUwcfcdgQCTTz3kyY-fc79ddLwtx6Ghhxfo064,8162
731
+ pip/_vendor/rich/prompt.py,sha256=l0RhQU-0UVTV9e08xW1BbIj0Jq2IXyChX4lC0lFNzt4,12447
732
+ pip/_vendor/rich/protocol.py,sha256=5hHHDDNHckdk8iWH5zEbi-zuIVSF5hbU2jIo47R7lTE,1391
733
+ pip/_vendor/rich/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
734
+ pip/_vendor/rich/region.py,sha256=rNT9xZrVZTYIXZC0NYn41CJQwYNbR-KecPOxTgQvB8Y,166
735
+ pip/_vendor/rich/repr.py,sha256=5MZJZmONgC6kud-QW-_m1okXwL2aR6u6y-pUcUCJz28,4431
736
+ pip/_vendor/rich/rule.py,sha256=0fNaS_aERa3UMRc3T5WMpN_sumtDxfaor2y3of1ftBk,4602
737
+ pip/_vendor/rich/scope.py,sha256=TMUU8qo17thyqQCPqjDLYpg_UU1k5qVd-WwiJvnJVas,2843
738
+ pip/_vendor/rich/screen.py,sha256=YoeReESUhx74grqb0mSSb9lghhysWmFHYhsbMVQjXO8,1591
739
+ pip/_vendor/rich/segment.py,sha256=otnKeKGEV-WRlQVosfJVeFDcDxAKHpvJ_hLzSu5lumM,24743
740
+ pip/_vendor/rich/spinner.py,sha256=PT5qgXPG3ZpqRj7n3EZQ6NW56mx3ldZqZCU7gEMyZk4,4364
741
+ pip/_vendor/rich/status.py,sha256=kkPph3YeAZBo-X-4wPp8gTqZyU466NLwZBA4PZTTewo,4424
742
+ pip/_vendor/rich/style.py,sha256=aSoUNbVgfP1PAnduAqgbbl4AMQy668qs2S1FEwr3Oqs,27067
743
+ pip/_vendor/rich/styled.py,sha256=eZNnzGrI4ki_54pgY3Oj0T-x3lxdXTYh4_ryDB24wBU,1258
744
+ pip/_vendor/rich/syntax.py,sha256=qqAnEUZ4K57Po81_5RBxnsuU4KRzSdvDPAhKw8ma_3E,35763
745
+ pip/_vendor/rich/table.py,sha256=yXYUr0YsPpG466N50HCAw2bpb5ZUuuzdc-G66Zk-oTc,40103
746
+ pip/_vendor/rich/terminal_theme.py,sha256=1j5-ufJfnvlAo5Qsi_ACZiXDmwMXzqgmFByObT9-yJY,3370
747
+ pip/_vendor/rich/text.py,sha256=AO7JPCz6-gaN1thVLXMBntEmDPVYFgFNG1oM61_sanU,47552
748
+ pip/_vendor/rich/theme.py,sha256=oNyhXhGagtDlbDye3tVu3esWOWk0vNkuxFw-_unlaK0,3771
749
+ pip/_vendor/rich/themes.py,sha256=0xgTLozfabebYtcJtDdC5QkX5IVUEaviqDUJJh4YVFk,102
750
+ pip/_vendor/rich/traceback.py,sha256=z8UoN7NbTQKW6YDDUVwOh7F8snZf6gYnUWtOrKsLE1w,31797
751
+ pip/_vendor/rich/tree.py,sha256=yWnQ6rAvRGJ3qZGqBrxS2SW2TKBTNrP0SdY8QxOFPuw,9451
752
+ pip/_vendor/tomli/__init__.py,sha256=PhNw_eyLgdn7McJ6nrAN8yIm3dXC75vr1sVGVVwDSpA,314
753
+ pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc,,
754
+ pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc,,
755
+ pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc,,
756
+ pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc,,
757
+ pip/_vendor/tomli/_parser.py,sha256=9w8LG0jB7fwmZZWB0vVXbeejDHcl4ANIJxB2scEnDlA,25591
758
+ pip/_vendor/tomli/_re.py,sha256=sh4sBDRgO94KJZwNIrgdcyV_qQast50YvzOAUGpRDKA,3171
759
+ pip/_vendor/tomli/_types.py,sha256=-GTG2VUqkpxwMqzmVO4F7ybKddIbAnuAHXfmWQcTi3Q,254
760
+ pip/_vendor/tomli/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26
761
+ pip/_vendor/truststore/__init__.py,sha256=WIDeyzWm7EVX44g354M25vpRXbeY1lsPH6EmUJUcq4o,1264
762
+ pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc,,
763
+ pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc,,
764
+ pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc,,
765
+ pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc,,
766
+ pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc,,
767
+ pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc,,
768
+ pip/_vendor/truststore/_api.py,sha256=GeXRNTlxPZ3kif4kNoh6JY0oE4QRzTGcgXr6l_X_Gk0,10555
769
+ pip/_vendor/truststore/_macos.py,sha256=nZlLkOmszUE0g6ryRwBVGY5COzPyudcsiJtDWarM5LQ,20503
770
+ pip/_vendor/truststore/_openssl.py,sha256=LLUZ7ZGaio-i5dpKKjKCSeSufmn6T8pi9lDcFnvSyq0,2324
771
+ pip/_vendor/truststore/_ssl_constants.py,sha256=NUD4fVKdSD02ri7-db0tnO0VqLP9aHuzmStcW7tAl08,1130
772
+ pip/_vendor/truststore/_windows.py,sha256=rAHyKYD8M7t-bXfG8VgOVa3TpfhVhbt4rZQlO45YuP8,17993
773
+ pip/_vendor/truststore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
774
+ pip/_vendor/typing_extensions.py,sha256=78hFl0HpDY-ylHUVCnWdU5nTHxUP2-S-3wEZk6CQmLk,134499
775
+ pip/_vendor/urllib3/__init__.py,sha256=iXLcYiJySn0GNbWOOZDDApgBL1JgP44EZ8i1760S8Mc,3333
776
+ pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc,,
777
+ pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc,,
778
+ pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc,,
779
+ pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc,,
780
+ pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc,,
781
+ pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc,,
782
+ pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc,,
783
+ pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc,,
784
+ pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc,,
785
+ pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc,,
786
+ pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc,,
787
+ pip/_vendor/urllib3/_collections.py,sha256=pyASJJhW7wdOpqJj9QJA8FyGRfr8E8uUUhqUvhF0728,11372
788
+ pip/_vendor/urllib3/_version.py,sha256=t9wGB6ooOTXXgiY66K1m6BZS1CJyXHAU8EoWDTe6Shk,64
789
+ pip/_vendor/urllib3/connection.py,sha256=ttIA909BrbTUzwkqEe_TzZVh4JOOj7g61Ysei2mrwGg,20314
790
+ pip/_vendor/urllib3/connectionpool.py,sha256=e2eiAwNbFNCKxj4bwDKNK-w7HIdSz3OmMxU_TIt-evQ,40408
791
+ pip/_vendor/urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
792
+ pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc,,
793
+ pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc,,
794
+ pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc,,
795
+ pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc,,
796
+ pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc,,
797
+ pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc,,
798
+ pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc,,
799
+ pip/_vendor/urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957
800
+ pip/_vendor/urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
801
+ pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc,,
802
+ pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc,,
803
+ pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc,,
804
+ pip/_vendor/urllib3/contrib/_securetransport/bindings.py,sha256=4Xk64qIkPBt09A5q-RIFUuDhNc9mXilVapm7WnYnzRw,17632
805
+ pip/_vendor/urllib3/contrib/_securetransport/low_level.py,sha256=B2JBB2_NRP02xK6DCa1Pa9IuxrPwxzDzZbixQkb7U9M,13922
806
+ pip/_vendor/urllib3/contrib/appengine.py,sha256=VR68eAVE137lxTgjBDwCna5UiBZTOKa01Aj_-5BaCz4,11036
807
+ pip/_vendor/urllib3/contrib/ntlmpool.py,sha256=NlfkW7WMdW8ziqudopjHoW299og1BTWi0IeIibquFwk,4528
808
+ pip/_vendor/urllib3/contrib/pyopenssl.py,sha256=hDJh4MhyY_p-oKlFcYcQaVQRDv6GMmBGuW9yjxyeejM,17081
809
+ pip/_vendor/urllib3/contrib/securetransport.py,sha256=Fef1IIUUFHqpevzXiDPbIGkDKchY2FVKeVeLGR1Qq3g,34446
810
+ pip/_vendor/urllib3/contrib/socks.py,sha256=aRi9eWXo9ZEb95XUxef4Z21CFlnnjbEiAo9HOseoMt4,7097
811
+ pip/_vendor/urllib3/exceptions.py,sha256=0Mnno3KHTNfXRfY7638NufOPkUb6mXOm-Lqj-4x2w8A,8217
812
+ pip/_vendor/urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579
813
+ pip/_vendor/urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440
814
+ pip/_vendor/urllib3/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
815
+ pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc,,
816
+ pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc,,
817
+ pip/_vendor/urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
818
+ pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc,,
819
+ pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc,,
820
+ pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc,,
821
+ pip/_vendor/urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417
822
+ pip/_vendor/urllib3/packages/backports/weakref_finalize.py,sha256=tRCal5OAhNSRyb0DhHp-38AtIlCsRP8BxF3NX-6rqIA,5343
823
+ pip/_vendor/urllib3/packages/six.py,sha256=b9LM0wBXv7E7SrbCjAm4wwN-hrH-iNxv18LgWNMMKPo,34665
824
+ pip/_vendor/urllib3/poolmanager.py,sha256=aWyhXRtNO4JUnCSVVqKTKQd8EXTvUm1VN9pgs2bcONo,19990
825
+ pip/_vendor/urllib3/request.py,sha256=YTWFNr7QIwh7E1W9dde9LM77v2VWTJ5V78XuTTw7D1A,6691
826
+ pip/_vendor/urllib3/response.py,sha256=fmDJAFkG71uFTn-sVSTh2Iw0WmcXQYqkbRjihvwBjU8,30641
827
+ pip/_vendor/urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155
828
+ pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc,,
829
+ pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc,,
830
+ pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc,,
831
+ pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc,,
832
+ pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc,,
833
+ pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc,,
834
+ pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc,,
835
+ pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc,,
836
+ pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc,,
837
+ pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc,,
838
+ pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc,,
839
+ pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc,,
840
+ pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc,,
841
+ pip/_vendor/urllib3/util/connection.py,sha256=5Lx2B1PW29KxBn2T0xkN1CBgRBa3gGVJBKoQoRogEVk,4901
842
+ pip/_vendor/urllib3/util/proxy.py,sha256=zUvPPCJrp6dOF0N4GAVbOcl6o-4uXKSrGiTkkr5vUS4,1605
843
+ pip/_vendor/urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498
844
+ pip/_vendor/urllib3/util/request.py,sha256=C0OUt2tcU6LRiQJ7YYNP9GvPrSvl7ziIBekQ-5nlBZk,3997
845
+ pip/_vendor/urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510
846
+ pip/_vendor/urllib3/util/retry.py,sha256=6ENvOZ8PBDzh8kgixpql9lIrb2dxH-k7ZmBanJF2Ng4,22050
847
+ pip/_vendor/urllib3/util/ssl_.py,sha256=QDuuTxPSCj1rYtZ4xpD7Ux-r20TD50aHyqKyhQ7Bq4A,17460
848
+ pip/_vendor/urllib3/util/ssl_match_hostname.py,sha256=Ir4cZVEjmAk8gUAIHWSi7wtOO83UCYABY2xFD1Ql_WA,5758
849
+ pip/_vendor/urllib3/util/ssltransport.py,sha256=NA-u5rMTrDFDFC8QzRKUEKMG0561hOD4qBTr3Z4pv6E,6895
850
+ pip/_vendor/urllib3/util/timeout.py,sha256=cwq4dMk87mJHSBktK1miYJ-85G-3T3RmT20v7SFCpno,10168
851
+ pip/_vendor/urllib3/util/url.py,sha256=lCAE7M5myA8EDdW0sJuyyZhVB9K_j38ljWhHAnFaWoE,14296
852
+ pip/_vendor/urllib3/util/wait.py,sha256=fOX0_faozG2P7iVojQoE1mbydweNyTcm-hXEfFrTtLI,5403
853
+ pip/_vendor/vendor.txt,sha256=EW-E3cE5XEAtVFzGInikArOMDxGP0DLUWzXpY4RZfFY,333
854
+ pip/py.typed,sha256=EBVvvPRTn_eIpz5e5QztSCdrMX7Qwd7VP93RSoIlZ2I,286
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/REQUESTED ADDED
File without changes
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/WHEEL ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/entry_points.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [console_scripts]
2
+ pip = pip._internal.cli.main:main
3
+ pip3 = pip._internal.cli.main:main
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pip-25.0.1.dist-info/top_level.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/__init__.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """propcache: An accelerated property cache for Python classes."""
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ _PUBLIC_API = ("cached_property", "under_cached_property")
6
+
7
+ __version__ = "0.3.0"
8
+ __all__ = ()
9
+
10
+ # Imports have moved to `propcache.api` in 0.2.0+.
11
+ # This module is now a facade for the API.
12
+ if TYPE_CHECKING:
13
+ from .api import cached_property as cached_property # noqa: F401
14
+ from .api import under_cached_property as under_cached_property # noqa: F401
15
+
16
+
17
+ def _import_facade(attr: str) -> object:
18
+ """Import the public API from the `api` module."""
19
+ if attr in _PUBLIC_API:
20
+ from . import api # pylint: disable=import-outside-toplevel
21
+
22
+ return getattr(api, attr)
23
+ raise AttributeError(f"module '{__package__}' has no attribute '{attr}'")
24
+
25
+
26
+ def _dir_facade() -> list[str]:
27
+ """Include the public API in the module's dir() output."""
28
+ return [*_PUBLIC_API, *globals().keys()]
29
+
30
+
31
+ __getattr__ = _import_facade
32
+ __dir__ = _dir_facade
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/_helpers.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ from typing import TYPE_CHECKING
4
+
5
+ __all__ = ("cached_property", "under_cached_property")
6
+
7
+
8
+ NO_EXTENSIONS = bool(os.environ.get("PROPCACHE_NO_EXTENSIONS")) # type: bool
9
+ if sys.implementation.name != "cpython":
10
+ NO_EXTENSIONS = True
11
+
12
+
13
+ # isort: off
14
+ if TYPE_CHECKING:
15
+ from ._helpers_py import cached_property as cached_property_py
16
+ from ._helpers_py import under_cached_property as under_cached_property_py
17
+
18
+ cached_property = cached_property_py
19
+ under_cached_property = under_cached_property_py
20
+ elif not NO_EXTENSIONS: # pragma: no branch
21
+ try:
22
+ from ._helpers_c import cached_property as cached_property_c # type: ignore[attr-defined, unused-ignore] # noqa: E501
23
+ from ._helpers_c import under_cached_property as under_cached_property_c # type: ignore[attr-defined, unused-ignore] # noqa: E501
24
+
25
+ cached_property = cached_property_c
26
+ under_cached_property = under_cached_property_c
27
+ except ImportError: # pragma: no cover
28
+ from ._helpers_py import cached_property as cached_property_py
29
+ from ._helpers_py import under_cached_property as under_cached_property_py
30
+
31
+ cached_property = cached_property_py # type: ignore[assignment, misc]
32
+ under_cached_property = under_cached_property_py
33
+ else:
34
+ from ._helpers_py import cached_property as cached_property_py
35
+ from ._helpers_py import under_cached_property as under_cached_property_py
36
+
37
+ cached_property = cached_property_py # type: ignore[assignment, misc]
38
+ under_cached_property = under_cached_property_py
39
+ # isort: on
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/_helpers_c.pyx ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # cython: language_level=3, freethreading_compatible=True
2
+ from types import GenericAlias
3
+
4
+
5
+ cdef _sentinel = object()
6
+
7
+ cdef class under_cached_property:
8
+ """Use as a class method decorator. It operates almost exactly like
9
+ the Python `@property` decorator, but it puts the result of the
10
+ method it decorates into the instance dict after the first call,
11
+ effectively replacing the function it decorates with an instance
12
+ variable. It is, in Python parlance, a data descriptor.
13
+
14
+ """
15
+
16
+ cdef readonly object wrapped
17
+ cdef object name
18
+
19
+ def __init__(self, wrapped):
20
+ self.wrapped = wrapped
21
+ self.name = wrapped.__name__
22
+
23
+ @property
24
+ def __doc__(self):
25
+ return self.wrapped.__doc__
26
+
27
+ def __get__(self, inst, owner):
28
+ if inst is None:
29
+ return self
30
+ cdef dict cache = inst._cache
31
+ val = cache.get(self.name, _sentinel)
32
+ if val is _sentinel:
33
+ val = self.wrapped(inst)
34
+ cache[self.name] = val
35
+ return val
36
+
37
+ def __set__(self, inst, value):
38
+ raise AttributeError("cached property is read-only")
39
+
40
+
41
+ cdef class cached_property:
42
+ """Use as a class method decorator. It operates almost exactly like
43
+ the Python `@property` decorator, but it puts the result of the
44
+ method it decorates into the instance dict after the first call,
45
+ effectively replacing the function it decorates with an instance
46
+ variable. It is, in Python parlance, a data descriptor.
47
+
48
+ """
49
+
50
+ cdef readonly object func
51
+ cdef object name
52
+
53
+ def __init__(self, func):
54
+ self.func = func
55
+ self.name = None
56
+
57
+ @property
58
+ def __doc__(self):
59
+ return self.func.__doc__
60
+
61
+ def __set_name__(self, owner, name):
62
+ if self.name is None:
63
+ self.name = name
64
+ elif name != self.name:
65
+ raise TypeError(
66
+ "Cannot assign the same cached_property to two different names "
67
+ f"({self.name!r} and {name!r})."
68
+ )
69
+
70
+ def __get__(self, inst, owner):
71
+ if inst is None:
72
+ return self
73
+ if self.name is None:
74
+ raise TypeError(
75
+ "Cannot use cached_property instance"
76
+ " without calling __set_name__ on it.")
77
+ cdef dict cache = inst.__dict__
78
+ val = cache.get(self.name, _sentinel)
79
+ if val is _sentinel:
80
+ val = self.func(inst)
81
+ cache[self.name] = val
82
+ return val
83
+
84
+ __class_getitem__ = classmethod(GenericAlias)
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/_helpers_py.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Various helper functions."""
2
+
3
+ import sys
4
+ from functools import cached_property
5
+ from typing import Any, Callable, Generic, Optional, Protocol, TypeVar, Union, overload
6
+
7
+ __all__ = ("under_cached_property", "cached_property")
8
+
9
+
10
+ if sys.version_info >= (3, 11):
11
+ from typing import Self
12
+ else:
13
+ Self = Any
14
+
15
+ _T = TypeVar("_T")
16
+
17
+
18
+ class _TSelf(Protocol, Generic[_T]):
19
+ _cache: dict[str, _T]
20
+
21
+
22
+ class under_cached_property(Generic[_T]):
23
+ """Use as a class method decorator.
24
+
25
+ It operates almost exactly like
26
+ the Python `@property` decorator, but it puts the result of the
27
+ method it decorates into the instance dict after the first call,
28
+ effectively replacing the function it decorates with an instance
29
+ variable. It is, in Python parlance, a data descriptor.
30
+ """
31
+
32
+ def __init__(self, wrapped: Callable[..., _T]) -> None:
33
+ self.wrapped = wrapped
34
+ self.__doc__ = wrapped.__doc__
35
+ self.name = wrapped.__name__
36
+
37
+ @overload
38
+ def __get__(self, inst: None, owner: Optional[type[object]] = None) -> Self: ...
39
+
40
+ @overload
41
+ def __get__(self, inst: _TSelf[_T], owner: Optional[type[object]] = None) -> _T: ...
42
+
43
+ def __get__(
44
+ self, inst: Optional[_TSelf[_T]], owner: Optional[type[object]] = None
45
+ ) -> Union[_T, Self]:
46
+ if inst is None:
47
+ return self
48
+ try:
49
+ return inst._cache[self.name]
50
+ except KeyError:
51
+ val = self.wrapped(inst)
52
+ inst._cache[self.name] = val
53
+ return val
54
+
55
+ def __set__(self, inst: _TSelf[_T], value: _T) -> None:
56
+ raise AttributeError("cached property is read-only")
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/api.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ """Public API of the property caching library."""
2
+
3
+ from ._helpers import cached_property, under_cached_property
4
+
5
+ __all__ = (
6
+ "cached_property",
7
+ "under_cached_property",
8
+ )
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/propcache/py.typed ADDED
@@ -0,0 +1 @@
 
 
1
+ # Placeholder
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/LICENSE.txt ADDED
The diff for this file is too large to render. See raw diff
 
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/METADATA ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: pyarrow
3
+ Version: 19.0.1
4
+ Summary: Python library for Apache Arrow
5
+ Maintainer-email: Apache Arrow Developers <dev@arrow.apache.org>
6
+ License: Apache Software License
7
+ Project-URL: Homepage, https://arrow.apache.org/
8
+ Project-URL: Documentation, https://arrow.apache.org/docs/python
9
+ Project-URL: Repository, https://github.com/apache/arrow
10
+ Project-URL: Issues, https://github.com/apache/arrow/issues
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+ License-File: ../LICENSE.txt
20
+ License-File: ../NOTICE.txt
21
+ Provides-Extra: test
22
+ Requires-Dist: pytest ; extra == 'test'
23
+ Requires-Dist: hypothesis ; extra == 'test'
24
+ Requires-Dist: cffi ; extra == 'test'
25
+ Requires-Dist: pytz ; extra == 'test'
26
+ Requires-Dist: pandas ; extra == 'test'
27
+
28
+ <!---
29
+ Licensed to the Apache Software Foundation (ASF) under one
30
+ or more contributor license agreements. See the NOTICE file
31
+ distributed with this work for additional information
32
+ regarding copyright ownership. The ASF licenses this file
33
+ to you under the Apache License, Version 2.0 (the
34
+ "License"); you may not use this file except in compliance
35
+ with the License. You may obtain a copy of the License at
36
+
37
+ http://www.apache.org/licenses/LICENSE-2.0
38
+
39
+ Unless required by applicable law or agreed to in writing,
40
+ software distributed under the License is distributed on an
41
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
42
+ KIND, either express or implied. See the License for the
43
+ specific language governing permissions and limitations
44
+ under the License.
45
+ -->
46
+
47
+ ## Python library for Apache Arrow
48
+
49
+ [![pypi](https://img.shields.io/pypi/v/pyarrow.svg)](https://pypi.org/project/pyarrow/) [![conda-forge](https://img.shields.io/conda/vn/conda-forge/pyarrow.svg)](https://anaconda.org/conda-forge/pyarrow)
50
+
51
+ This library provides a Python API for functionality provided by the Arrow C++
52
+ libraries, along with tools for Arrow integration and interoperability with
53
+ pandas, NumPy, and other software in the Python ecosystem.
54
+
55
+ ## Installing
56
+
57
+ Across platforms, you can install a recent version of pyarrow with the conda
58
+ package manager:
59
+
60
+ ```shell
61
+ conda install pyarrow -c conda-forge
62
+ ```
63
+
64
+ On Linux, macOS, and Windows, you can also install binary wheels from PyPI with
65
+ pip:
66
+
67
+ ```shell
68
+ pip install pyarrow
69
+ ```
70
+
71
+ If you encounter any issues importing the pip wheels on Windows, you may need
72
+ to install the [Visual C++ Redistributable for Visual Studio 2015][6].
73
+
74
+ ## Development
75
+
76
+ See [Python Development][2] in the documentation subproject.
77
+
78
+ ### Building the documentation
79
+
80
+ See [documentation build instructions][1] in the documentation subproject.
81
+
82
+ [1]: https://github.com/apache/arrow/blob/main/docs/source/developers/documentation.rst
83
+ [2]: https://github.com/apache/arrow/blob/main/docs/source/developers/python.rst
84
+ [3]: https://github.com/pandas-dev/pandas
85
+ [5]: https://arrow.apache.org/docs/latest/python/benchmarks.html
86
+ [6]: https://www.microsoft.com/en-us/download/details.aspx?id=48145
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/NOTICE.txt ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache Arrow
2
+ Copyright 2016-2024 The Apache Software Foundation
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).
6
+
7
+ This product includes software from the SFrame project (BSD, 3-clause).
8
+ * Copyright (C) 2015 Dato, Inc.
9
+ * Copyright (c) 2009 Carnegie Mellon University.
10
+
11
+ This product includes software from the Feather project (Apache 2.0)
12
+ https://github.com/wesm/feather
13
+
14
+ This product includes software from the DyND project (BSD 2-clause)
15
+ https://github.com/libdynd
16
+
17
+ This product includes software from the LLVM project
18
+ * distributed under the University of Illinois Open Source
19
+
20
+ This product includes software from the google-lint project
21
+ * Copyright (c) 2009 Google Inc. All rights reserved.
22
+
23
+ This product includes software from the mman-win32 project
24
+ * Copyright https://code.google.com/p/mman-win32/
25
+ * Licensed under the MIT License;
26
+
27
+ This product includes software from the LevelDB project
28
+ * Copyright (c) 2011 The LevelDB Authors. All rights reserved.
29
+ * Use of this source code is governed by a BSD-style license that can be
30
+ * Moved from Kudu http://github.com/cloudera/kudu
31
+
32
+ This product includes software from the CMake project
33
+ * Copyright 2001-2009 Kitware, Inc.
34
+ * Copyright 2012-2014 Continuum Analytics, Inc.
35
+ * All rights reserved.
36
+
37
+ This product includes software from https://github.com/matthew-brett/multibuild (BSD 2-clause)
38
+ * Copyright (c) 2013-2016, Matt Terry and Matthew Brett; all rights reserved.
39
+
40
+ This product includes software from the Ibis project (Apache 2.0)
41
+ * Copyright (c) 2015 Cloudera, Inc.
42
+ * https://github.com/cloudera/ibis
43
+
44
+ This product includes software from Dremio (Apache 2.0)
45
+ * Copyright (C) 2017-2018 Dremio Corporation
46
+ * https://github.com/dremio/dremio-oss
47
+
48
+ This product includes software from Google Guava (Apache 2.0)
49
+ * Copyright (C) 2007 The Guava Authors
50
+ * https://github.com/google/guava
51
+
52
+ This product include software from CMake (BSD 3-Clause)
53
+ * CMake - Cross Platform Makefile Generator
54
+ * Copyright 2000-2019 Kitware, Inc. and Contributors
55
+
56
+ The web site includes files generated by Jekyll.
57
+
58
+ --------------------------------------------------------------------------------
59
+
60
+ This product includes code from Apache Kudu, which includes the following in
61
+ its NOTICE file:
62
+
63
+ Apache Kudu
64
+ Copyright 2016 The Apache Software Foundation
65
+
66
+ This product includes software developed at
67
+ The Apache Software Foundation (http://www.apache.org/).
68
+
69
+ Portions of this software were developed at
70
+ Cloudera, Inc (http://www.cloudera.com/).
71
+
72
+ --------------------------------------------------------------------------------
73
+
74
+ This product includes code from Apache ORC, which includes the following in
75
+ its NOTICE file:
76
+
77
+ Apache ORC
78
+ Copyright 2013-2019 The Apache Software Foundation
79
+
80
+ This product includes software developed by The Apache Software
81
+ Foundation (http://www.apache.org/).
82
+
83
+ This product includes software developed by Hewlett-Packard:
84
+ (c) Copyright [2014-2015] Hewlett-Packard Development Company, L.P
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/RECORD ADDED
@@ -0,0 +1,876 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ pyarrow-19.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ pyarrow-19.0.1.dist-info/LICENSE.txt,sha256=Ip2-KeThNE6VFy9vOkJ37A2lx4UMsDiXxH86JLevzgg,110423
3
+ pyarrow-19.0.1.dist-info/METADATA,sha256=EgoXyOAG0uHz9AcThf0LXwm5wXtgAEPdKLAGB_sCJlw,3292
4
+ pyarrow-19.0.1.dist-info/NOTICE.txt,sha256=ti6iQmQtOhjx4psMH-CCQVppQ_4VjuIrSM_zdi81QAk,3032
5
+ pyarrow-19.0.1.dist-info/RECORD,,
6
+ pyarrow-19.0.1.dist-info/WHEEL,sha256=GAEhkxm77H2WVEyE70oaJna7cr1z-ZyZC29APwfwcpg,113
7
+ pyarrow-19.0.1.dist-info/top_level.txt,sha256=Zuk_c1WeinXdMz20fXlEtGC67zfKOWuwU8adpEEU_nI,18
8
+ pyarrow/__init__.pxd,sha256=Wnar1phFqM_ZHnZmtbuqm6wJHsXlBoYKhV7Qmo2jUHA,2195
9
+ pyarrow/__init__.py,sha256=8eizEp9avDHVfocI_YGNiI0uHpD2trTr-HnGzQYPP0I,18343
10
+ pyarrow/__pycache__/__init__.cpython-312.pyc,,
11
+ pyarrow/__pycache__/_compute_docstrings.cpython-312.pyc,,
12
+ pyarrow/__pycache__/_generated_version.cpython-312.pyc,,
13
+ pyarrow/__pycache__/acero.cpython-312.pyc,,
14
+ pyarrow/__pycache__/benchmark.cpython-312.pyc,,
15
+ pyarrow/__pycache__/cffi.cpython-312.pyc,,
16
+ pyarrow/__pycache__/compute.cpython-312.pyc,,
17
+ pyarrow/__pycache__/conftest.cpython-312.pyc,,
18
+ pyarrow/__pycache__/csv.cpython-312.pyc,,
19
+ pyarrow/__pycache__/cuda.cpython-312.pyc,,
20
+ pyarrow/__pycache__/dataset.cpython-312.pyc,,
21
+ pyarrow/__pycache__/feather.cpython-312.pyc,,
22
+ pyarrow/__pycache__/flight.cpython-312.pyc,,
23
+ pyarrow/__pycache__/fs.cpython-312.pyc,,
24
+ pyarrow/__pycache__/ipc.cpython-312.pyc,,
25
+ pyarrow/__pycache__/json.cpython-312.pyc,,
26
+ pyarrow/__pycache__/jvm.cpython-312.pyc,,
27
+ pyarrow/__pycache__/orc.cpython-312.pyc,,
28
+ pyarrow/__pycache__/pandas_compat.cpython-312.pyc,,
29
+ pyarrow/__pycache__/substrait.cpython-312.pyc,,
30
+ pyarrow/__pycache__/types.cpython-312.pyc,,
31
+ pyarrow/__pycache__/util.cpython-312.pyc,,
32
+ pyarrow/_acero.cpython-312-x86_64-linux-gnu.so,sha256=dgUvqcZcc4dZZwgDf1S9bLBDH6JF5FgsASKD12vCJrM,327040
33
+ pyarrow/_acero.pxd,sha256=5ish_GgGWvit4ebhzoZil7b-m0r2RuG5JwYoxsH34FI,1440
34
+ pyarrow/_acero.pyx,sha256=56orFsG2ksoP4C0DPIa-ruQxQRCC489lYlHkGJIh1zY,21301
35
+ pyarrow/_azurefs.cpython-312-x86_64-linux-gnu.so,sha256=B7UYYtwkbt8ImgAVp3VMLFYhSQThvtK3cam4TWoykxw,102248
36
+ pyarrow/_azurefs.pyx,sha256=ezGU_z3kIw2r14YAB4yogaxMssJXikcxajz4dZSez1k,5909
37
+ pyarrow/_compute.cpython-312-x86_64-linux-gnu.so,sha256=qNU6IKyxdgbgMCR8FpCSDZyaW49uGSQTtYSbA7V4TRg,1372464
38
+ pyarrow/_compute.pxd,sha256=nmjgwV2KCGFfxZj5ruDwM4oH1ITqF0rDQS0yDvcaXBA,1949
39
+ pyarrow/_compute.pyx,sha256=x02Wd7ZJE91I2O3bT--t0eITZkLZLrr9hIkHSiCD6do,107266
40
+ pyarrow/_compute_docstrings.py,sha256=7Vg8jt1aCsWrpTxsdqR7gY6M0faxXNX31c1RZdq9CFw,1707
41
+ pyarrow/_csv.cpython-312-x86_64-linux-gnu.so,sha256=lrrJ8cJY1AqIka-yOjWqiiCd93J1bxhavNPK4hpywVU,371368
42
+ pyarrow/_csv.pxd,sha256=1Zk3Zpvvhy-Tb7c79Aqd4e7bBM21kc1JxWJkl02Y4DE,1638
43
+ pyarrow/_csv.pyx,sha256=aqWLHgfZ-nrqKHfVVVXeGbtY2ZChE6Oi9qIa5jP4m1M,54705
44
+ pyarrow/_cuda.pxd,sha256=VzhM6j9dpNgrABlvFJKoMpRC0As55im-M3tgPTOuwEk,1922
45
+ pyarrow/_cuda.pyx,sha256=YSlswn4Tj1H24SL_iPIGqT3v3JmofE7NwCunuOLMNwY,35136
46
+ pyarrow/_dataset.cpython-312-x86_64-linux-gnu.so,sha256=8ZWCVZBDBqbrRs-nyYonrW9793jg9GBLo5ih8o7L2Pk,1066128
47
+ pyarrow/_dataset.pxd,sha256=Ag9rUhoBySU6ba3wFLeuZyWMJnz9VkAf9TQEzWG4hUU,4944
48
+ pyarrow/_dataset.pyx,sha256=0s49JhLHOgYYc5z8cXdwcMrJpOPclfcd4dh9DgbRYpc,158842
49
+ pyarrow/_dataset_orc.cpython-312-x86_64-linux-gnu.so,sha256=dZOjZfAGiA8mQ2HdP0XRFr6L0xzfZMHKqYb8RGjNTdE,80032
50
+ pyarrow/_dataset_orc.pyx,sha256=JSFoRI0pfHtL2jeIuPg5TJHodcfuCNYmj_iEZ4xY87w,1499
51
+ pyarrow/_dataset_parquet.cpython-312-x86_64-linux-gnu.so,sha256=pkYuPRuKd0FYRKNvZtZ8YIokfhkdGFqzWbHh9xxNKt4,368456
52
+ pyarrow/_dataset_parquet.pxd,sha256=y-3iKehyB_eB_oeqjtt4aQRbUpVGVN1oUMFGIY13brE,1572
53
+ pyarrow/_dataset_parquet.pyx,sha256=x_VvTpuF9vxfAAUGkLZrr0N_TCxYWlqMahlkg0201gQ,38916
54
+ pyarrow/_dataset_parquet_encryption.cpython-312-x86_64-linux-gnu.so,sha256=_4l4x5WoYObyPieO6xFMdiNp2PewcbmtcTQsJadqQ30,122296
55
+ pyarrow/_dataset_parquet_encryption.pyx,sha256=p7LDNUsp3jMVcWDcbOFp8a3CYJjASVPI_tfATpY-ePg,7229
56
+ pyarrow/_dlpack.pxi,sha256=clw0FkGoyZMEtUU8zPpO_DMtl2X-27kb2UtyhQuIc1s,1832
57
+ pyarrow/_feather.cpython-312-x86_64-linux-gnu.so,sha256=_DJC6Lce6jucqLI1VgHDFgjLTCftTNSeZN3eLg9wOv4,115504
58
+ pyarrow/_feather.pyx,sha256=DWQI4U0uAWE1ZYUwPreBPJg1TGLEGmF3wPEIRL-PhPw,3773
59
+ pyarrow/_flight.cpython-312-x86_64-linux-gnu.so,sha256=8meNM2y5-TKYooEi_P13xc4ey3BzEimTGxJJ2LT6kNg,1315616
60
+ pyarrow/_flight.pyx,sha256=YEHQPtbvYUlq1gWbpq9ijd-j5DHjWFJ3GFnacmdFyNM,114136
61
+ pyarrow/_fs.cpython-312-x86_64-linux-gnu.so,sha256=ssmiLDNUys1ps0T9CP2rpwFYFSrf4uIsZUNqGogMPq0,499088
62
+ pyarrow/_fs.pxd,sha256=SmHS31eyYU7VUZlVuP613HKgpd7bENnQGApvX_g2Lfw,2439
63
+ pyarrow/_fs.pyx,sha256=MjDANZDAaHHz1nryL-rxSaKtuPoe_qRWEfbaAlOE0PY,52479
64
+ pyarrow/_gcsfs.cpython-312-x86_64-linux-gnu.so,sha256=1H1VVyK727uc4azeppppp0T3b1qEmhvxGZig8KkMjAE,135344
65
+ pyarrow/_gcsfs.pyx,sha256=fa1QmTQII9sFKtjtfeZPQfTEntAh3IGyJJ1w116OCA4,9121
66
+ pyarrow/_generated_version.py,sha256=DaPWDx9zwJv8Im89QSff5-giHF9ZO7FOjjkbN73ULwI,413
67
+ pyarrow/_hdfs.cpython-312-x86_64-linux-gnu.so,sha256=ezwOQz9zqfO_C4j7xBzaw8DpzUen6wJc0KCuV8AIXuo,131976
68
+ pyarrow/_hdfs.pyx,sha256=HA0KkZa6aVRmwg3ku3U7lZo_8COn1cLwylfc6nEJUlg,5885
69
+ pyarrow/_json.cpython-312-x86_64-linux-gnu.so,sha256=cmZGZxeifXM3jSnz_s9qfKlEr0XBTKzvasbgTb942OI,117792
70
+ pyarrow/_json.pxd,sha256=tECTP14M12-b_ja5QI3snQbd0uWPWmmC9FwkWq23Vg0,1206
71
+ pyarrow/_json.pyx,sha256=RmaWaSTG61u2Qcmc_fLsTns_awLJDls3_SdlaCAg53Y,9860
72
+ pyarrow/_orc.cpython-312-x86_64-linux-gnu.so,sha256=rKNCNNydQuPzR9mMx_8k8rVxMEh9eGgKGx18YPByyvI,211016
73
+ pyarrow/_orc.pxd,sha256=6hL0cq1RufqQD-B_bV3ne1rhu2g-h4rDOFNQsSb6qps,5689
74
+ pyarrow/_orc.pyx,sha256=Pn7r4dzagWaqMf8rymbXBIWisxonBaStZgXCi7pfrZI,15556
75
+ pyarrow/_parquet.cpython-312-x86_64-linux-gnu.so,sha256=W_tWczWNY_q9Yj0bxN1Zkqy6TDraDjWy7IO4_zP8zt8,613776
76
+ pyarrow/_parquet.pxd,sha256=bLdSgSZg1bn-ZsQbAKOWH44esooFHQOiO9wqmrQuvn4,26805
77
+ pyarrow/_parquet.pyx,sha256=2nis3nkR7N-t-sTR7LaQrKo20EmRJzDDO8yZ9TUFXOA,74392
78
+ pyarrow/_parquet_encryption.cpython-312-x86_64-linux-gnu.so,sha256=OxgxV_dLe7bx1d6_gw0pcHl_bkh_5PmuEIfrGIiXLWI,280040
79
+ pyarrow/_parquet_encryption.pxd,sha256=1vQnkyS1rLrSNMlmuW62PxkOmCsYpzC60L9mqD0_LYc,2586
80
+ pyarrow/_parquet_encryption.pyx,sha256=CaTiq5EjTVGYQnxDEmpYcItSBiEencV-pNEu-lBAiOk,18625
81
+ pyarrow/_pyarrow_cpp_tests.cpython-312-x86_64-linux-gnu.so,sha256=hlhN_T_6R4qu81fCTnYhwm4aKmEwcO0h3PHjx5p6eCE,89520
82
+ pyarrow/_pyarrow_cpp_tests.pxd,sha256=nPyRmNtFbOUvSXCwegAApQFfh8UI_K9Hq5dN4oPAxdo,1199
83
+ pyarrow/_pyarrow_cpp_tests.pyx,sha256=gLeMzB9RWodZgXEpipX65_0aqWu12SjMld0JZmZVRP0,1753
84
+ pyarrow/_s3fs.cpython-312-x86_64-linux-gnu.so,sha256=Re4zS-ZthYFgFZRf7I0kfoehvF-ylQgIPjJzQBps7gM,224712
85
+ pyarrow/_s3fs.pyx,sha256=5FysopSDVe8OmTObvTtSm8AVcGOB7zFE0LRKreHoDoE,19706
86
+ pyarrow/_substrait.cpython-312-x86_64-linux-gnu.so,sha256=dmaH8Zu6sWsIfVi7KZW62mJpRcZdZTdkJzvyoFbxgNw,219056
87
+ pyarrow/_substrait.pyx,sha256=fZT496mzp1ssSKIzqtmPeGBKeYq5f0vm8cWlWqaC408,15666
88
+ pyarrow/acero.py,sha256=dUbxRMvwscdyGJqK_RNDRwcEndgn_RjvsI4hyC5Hvzs,15332
89
+ pyarrow/array.pxi,sha256=haWfEg86jGKrbZEPiK0dDTKcYBqnI7SHFDYudsMgiRg,152394
90
+ pyarrow/benchmark.pxi,sha256=DYXdu-jMSH7XcTohbc8x8NiKRLtpX9IULfY20ohkffA,869
91
+ pyarrow/benchmark.py,sha256=k9Z3yQyoojpYz4lTA6DkCfqT6fPG3N2fJtsHKjpbYFo,856
92
+ pyarrow/builder.pxi,sha256=9QE4KAiA4JpA7-2JLgX3xo32jRtuWZ3YqC-T9GzUVDc,4634
93
+ pyarrow/cffi.py,sha256=hEcrPH9KeG6NES3ZCpSbOVYhOgDOuBB_2LgMMucgw-8,2396
94
+ pyarrow/compat.pxi,sha256=Sq5c3CKq0uj5aDyOoHHkPEO_VsSpZ90JRaL2rAKHk5I,1920
95
+ pyarrow/compute.py,sha256=53CkbhbAbZhM4NgxitaXjkY8O8idNMclhhmbUbAxgus,23540
96
+ pyarrow/config.pxi,sha256=E6QOFjdlw3H1a5BOAevYNJJEmmm6FblfaaeyspnWBWw,3092
97
+ pyarrow/conftest.py,sha256=afosSyVsVRsJdDXRXOFQEyj4qVO39OtZYVb_wbvvadU,9811
98
+ pyarrow/csv.py,sha256=S6tm31Bra9HPf9IsYwBLltZBLMvNzypWfeCLySsjmds,974
99
+ pyarrow/cuda.py,sha256=j--8HcBAm5Ib-kbhK4d2M6SVQmDWkr7Mt5fnwU2LzdQ,1087
100
+ pyarrow/dataset.py,sha256=q5wx2c8CJYaAvdJyfSO2h2SzfALqN4XMz-4uGoV31qk,40303
101
+ pyarrow/device.pxi,sha256=CtVBXp68zNXrrPwehh56igfLsMSlYRo5rWFcKkEP_gY,5569
102
+ pyarrow/error.pxi,sha256=Wj7-NGUfdvlEwAwd8Ta_JqRC8IUOUpm_PmpvizCFvfY,8909
103
+ pyarrow/feather.py,sha256=9rWL-TYK_qc0FW3vIyYyd6Xt86ApJWLqo-2cK3F5vGQ,9959
104
+ pyarrow/flight.py,sha256=HLB04A0SZ35MZJumPIuBu5I2dpetjEc-CGMEdjQeQRQ,2177
105
+ pyarrow/fs.py,sha256=M-cSbS2bBR4MwbJqpz9Q7VxHY8fa89StEw2J0XMMF7E,14899
106
+ pyarrow/gandiva.pyx,sha256=bF23rkq6e45i-CePDZeTy9iFwoeg8ElrNjz9VK97QRs,24503
107
+ pyarrow/include/arrow/acero/accumulation_queue.h,sha256=SolyqgTMANZ87SSNpgGFnnsj5raGjay0wjRcwbnCbB0,5892
108
+ pyarrow/include/arrow/acero/aggregate_node.h,sha256=9HdFxR6tzSfx_UaUHZtS1I2FCbm3PvfF8FdekVpBO34,2155
109
+ pyarrow/include/arrow/acero/api.h,sha256=fRuKEHbKDYWRCwSHLc7vSD-6mQavyOsztluCR7evFCk,1151
110
+ pyarrow/include/arrow/acero/asof_join_node.h,sha256=Ko6r1wDjxg01FE9-xKkttx7WzCAzf43GxbpvGHgKZp8,1490
111
+ pyarrow/include/arrow/acero/backpressure_handler.h,sha256=CsSWRenrtbZYiNnf-cdYCgMLmu5KUAPUKNKMDWttoD4,2810
112
+ pyarrow/include/arrow/acero/benchmark_util.h,sha256=T5bNabF1TDAp28S7V_vt_VIDn6l5Be0zOVCHhcTcFf8,1943
113
+ pyarrow/include/arrow/acero/bloom_filter.h,sha256=bFzzAzQrs9ePp2tCPQIuk1Oa9gG_Nyp72M_HM0dhakM,11978
114
+ pyarrow/include/arrow/acero/exec_plan.h,sha256=U0KA3tnNvVb75G0XQFLVbGzXCGdddGyRhW3zMa8oWJc,35909
115
+ pyarrow/include/arrow/acero/hash_join.h,sha256=Ji0k5z778QtNQ0MwU6xBP6z7ajLk79Va-vgCqrlApso,3003
116
+ pyarrow/include/arrow/acero/hash_join_dict.h,sha256=_BKJmK3Z_KdJuYHh4KQCuT_1rXlUohrtEgGLtEJ4fgQ,15360
117
+ pyarrow/include/arrow/acero/hash_join_node.h,sha256=FXT-aeXL7nNTuV75f9oXgdGyqMK_72GnqGUm9cmBnko,4378
118
+ pyarrow/include/arrow/acero/map_node.h,sha256=Bd1HcW0N5azoIVth2ATeHxgTKd9XmmEkz42YBNw5eK0,2628
119
+ pyarrow/include/arrow/acero/options.h,sha256=w1cAGvRtp1qrK_9g9NbvzQLC26MAg_uFgakvl5d6LWU,37418
120
+ pyarrow/include/arrow/acero/order_by_impl.h,sha256=dQqplP-AZWPZRKio8LmTjYWlCYz9VmW-usUrtaLpd_w,1691
121
+ pyarrow/include/arrow/acero/partition_util.h,sha256=Q-YoDSOt5iDoRxg7ZQ81d44RBYfbNgO1kIg6CsE0tAc,7438
122
+ pyarrow/include/arrow/acero/pch.h,sha256=8VXXI10rUHzlQiAthx-yjHMQCpGL3dgAiVaGzTubPPE,1094
123
+ pyarrow/include/arrow/acero/query_context.h,sha256=D364aGRS3uWe8lgYqCNRjVvs5sKetLOOXzACdp5GZeg,6212
124
+ pyarrow/include/arrow/acero/schema_util.h,sha256=KA_hV2xy2TRccMyksSzQrdH9_rdGo3tQyHOIvrWWYBQ,7961
125
+ pyarrow/include/arrow/acero/task_util.h,sha256=6pqILuYfcVwt9HqVhRfXFVJoOC-Q_dtk8mQ5SxjgwbY,3706
126
+ pyarrow/include/arrow/acero/test_nodes.h,sha256=xKeLWZZC8iokveVXPjseO1MOvWMcby-0xiMISy0qw8E,2877
127
+ pyarrow/include/arrow/acero/time_series_util.h,sha256=W9yzoaTGkB2jtYm8w2CYknSw1EjMbsdTfmEuuL2zMtk,1210
128
+ pyarrow/include/arrow/acero/tpch_node.h,sha256=l3zocxHTfGmXTjywJxwoXCIk9tjzURgWdYKSgSk8DAQ,2671
129
+ pyarrow/include/arrow/acero/type_fwd.h,sha256=4zLhtLJf_7MSXgrhQIZVGeLxjT7JrEDAn9yW75DTFlc,1103
130
+ pyarrow/include/arrow/acero/util.h,sha256=byhMEj5XoAUy-93AjLrx_p9_iUZdYn5uJ_cDkCJQt5Q,6121
131
+ pyarrow/include/arrow/acero/visibility.h,sha256=E-4G2O4F2YabXnFNJYnsI2VbVoKBtO7AXqh_SPuJi6k,1616
132
+ pyarrow/include/arrow/adapters/orc/adapter.h,sha256=G5SSGGYMSREILC43kqL5fqo94c4tKgukitO15m217tY,11031
133
+ pyarrow/include/arrow/adapters/orc/options.h,sha256=FMxda5YSskRrB6h9FvcAuMxl5qdavWrNYHPlanjtk48,3696
134
+ pyarrow/include/arrow/adapters/tensorflow/convert.h,sha256=ZGFAodnwTJK0ZoXfgYJdjgi_F4vfEhI9E87zejxVb6E,3465
135
+ pyarrow/include/arrow/api.h,sha256=Gs6HiRBYU5N7-a79hjTl9WMSda551XdUKpWthFY2v1s,2491
136
+ pyarrow/include/arrow/array.h,sha256=P5oW6hvD2j97bLaSTE4_UHuV6Y38DTwJVww3Eb3xdTQ,1981
137
+ pyarrow/include/arrow/array/array_base.h,sha256=czxtw9UEgH8UldkhezR2am9K7GRZjWTrXMkX8TL5dwU,12147
138
+ pyarrow/include/arrow/array/array_binary.h,sha256=JvtB8DoR0_tqfSFS_9nMRrJ39lt1cTm5yXh-DLkhqjU,11247
139
+ pyarrow/include/arrow/array/array_decimal.h,sha256=xRfrZ1IFO09EmkHEolCwrJ4lsXjLo5DXdfH5_v2gSyw,3105
140
+ pyarrow/include/arrow/array/array_dict.h,sha256=6AMbSnZoMj-nhQhZhG4RNnxy9VVPk2DvZjVblwIUhgY,7611
141
+ pyarrow/include/arrow/array/array_nested.h,sha256=xySiF5b1ab97GifKMx6FuYZWb2_6e3YvSMfOORGe3J4,37605
142
+ pyarrow/include/arrow/array/array_primitive.h,sha256=_U8_pTHg-aHY5jaSFjHZ4hqRPXdYiyKTpr2y3OcJcdg,8184
143
+ pyarrow/include/arrow/array/array_run_end.h,sha256=4zs3tcUrIgDOhSEOywJ1vGY2lsH-5QuEBn87mxnDbi8,5101
144
+ pyarrow/include/arrow/array/builder_adaptive.h,sha256=92DpiIZDXSI_yOrMftj7P60zlCLjNmwfGM5ubdbXWM4,6861
145
+ pyarrow/include/arrow/array/builder_base.h,sha256=CP9kS8pDFd4XyJQdgIlBp3pTIX9mND1Lvh85re4IC8w,13723
146
+ pyarrow/include/arrow/array/builder_binary.h,sha256=01BrSwkFQNAEy4FVYi8Esbd2CaeyxN04GDUoXsQUFhU,32718
147
+ pyarrow/include/arrow/array/builder_decimal.h,sha256=DFxyFlpzWRZS9zdBhsjII5fFUOMY9bXHn3EIrIvmOMo,5051
148
+ pyarrow/include/arrow/array/builder_dict.h,sha256=FZjvCRIDmVuwmzx_HCcDK6ZjNoZKCEsSV-fGI0K974Y,27899
149
+ pyarrow/include/arrow/array/builder_nested.h,sha256=1In_M8pjkaqTuvNZlbGXWGID33CW2eBhy4in0oZsavA,31231
150
+ pyarrow/include/arrow/array/builder_primitive.h,sha256=2cXeRS4yY04CzAPCNobFYIrkQErlKy6v01v6VepHNsk,20926
151
+ pyarrow/include/arrow/array/builder_run_end.h,sha256=SZIdsUKK1qAc9pdonPGf0A_aikZHcxxzicezRGR5hLs,11416
152
+ pyarrow/include/arrow/array/builder_time.h,sha256=8M2ifZnDgujSItXKsevyBdtM6Iky3ImyeIdAqZV3fec,2548
153
+ pyarrow/include/arrow/array/builder_union.h,sha256=8BF532sAMc7JxWIbSN-yX6Z9fqY9jmmsIa054DPvbWE,10144
154
+ pyarrow/include/arrow/array/concatenate.h,sha256=wBy-CBTz9MeRCmcnfXGvkXnvSRApvPOcfCf64A42ys8,2059
155
+ pyarrow/include/arrow/array/data.h,sha256=lAkZych3ue1xy542ZWSGP6ZS_iB6z8W4qBw-IzrPJ6E,25160
156
+ pyarrow/include/arrow/array/diff.h,sha256=bYNKy2oLAxtt6VYDWvCfq2bnJTVNjG5KMTsGl-gT_kM,3344
157
+ pyarrow/include/arrow/array/statistics.h,sha256=7iNUdm9vOdoN2gDor-AUdAwYcAzTuhZjs-fOpBnaTIQ,5325
158
+ pyarrow/include/arrow/array/util.h,sha256=qVHvCaVlALz8WJwAjyMwsBm5J2iN89CSgj7NpmmqlkI,3652
159
+ pyarrow/include/arrow/array/validate.h,sha256=JdDb3XJg4TmAfpv_zgu2ITfL2H9no10TQit-HPj9Myw,1710
160
+ pyarrow/include/arrow/buffer.h,sha256=EfXDyFegRdva4rv4nf0jtErnIrt9_FWoXSHk6OPk_G8,23092
161
+ pyarrow/include/arrow/buffer_builder.h,sha256=tXWILwHW0MKpve7NIU2ElElPY0y0ooISa82Dq6UdhVU,17371
162
+ pyarrow/include/arrow/builder.h,sha256=mBxMko271lJ7Xbku0hCixj943Yx-d2i4Q5Hm2WfwiGM,1546
163
+ pyarrow/include/arrow/c/abi.h,sha256=GCjxzmA2jNWQ0ZWVkQ-hnbCbMHKPikO1-JkzYj96cnY,20318
164
+ pyarrow/include/arrow/c/bridge.h,sha256=6e6ZoIsG-pE8FQ5aU4nRJ71vVL3U9k697g7PYKDsVz4,21789
165
+ pyarrow/include/arrow/c/dlpack.h,sha256=_HIa9AKR2mwbhf1aChIpMF_XDpFrPaf58Lt3fVxWRWc,1817
166
+ pyarrow/include/arrow/c/dlpack_abi.h,sha256=mjp9WWq8qv6gkGirT4y0o3BL_ZI9VyHQpJ5aEpPFetI,9920
167
+ pyarrow/include/arrow/c/helpers.h,sha256=f0Q519PwoliFHpxsHp-QvbP6fpVMN2Ha35Tk-RBK6Ws,6279
168
+ pyarrow/include/arrow/chunk_resolver.h,sha256=oVm7DpbWRmjJhexj_h6BtispCBxFZPIHK1kl9goBGG8,12841
169
+ pyarrow/include/arrow/chunked_array.h,sha256=z6LA9OB3uhtmn7ZZe5wfi3Am3icVQ-L_e8s3KEMuq18,10647
170
+ pyarrow/include/arrow/compare.h,sha256=U5craXnXACCUzQ8HmGYyhTehNrOezcVUP1ABAlxI62E,5555
171
+ pyarrow/include/arrow/compute/api.h,sha256=IQKXz_6YBBfHKOkuqkXIh9ZTZYyVgq7aEBTIzMkZEiI,2071
172
+ pyarrow/include/arrow/compute/api_aggregate.h,sha256=cgXomjDDHoAK_ddzyH1NSqWAewzEYPD7qJBj4x5Rkhk,17173
173
+ pyarrow/include/arrow/compute/api_scalar.h,sha256=18S7h2X0e1UasI3Z0E6IXd91jghwassd_QNXKubkmFY,69411
174
+ pyarrow/include/arrow/compute/api_vector.h,sha256=6jxDvg_Zz14_63SfVlWnfUff135kls1aGGK_d9h3bj8,29122
175
+ pyarrow/include/arrow/compute/cast.h,sha256=Xw9j03AIAMU_hZiqk9d2ZD4xTmESkfXaDsuZkiTypLs,4245
176
+ pyarrow/include/arrow/compute/exec.h,sha256=0ZAA9_tzcQEr364sjJ3SwgTtURTwtCjRLzo_LOdn960,17969
177
+ pyarrow/include/arrow/compute/expression.h,sha256=llX_81uUIyJ8vPmP8-2mAippyw4cVNhCGfqHRY37FOM,11184
178
+ pyarrow/include/arrow/compute/function.h,sha256=krTXaLowvT1cKhecs70urPQcx74vQCJ4jswtBE4Xs5A,16345
179
+ pyarrow/include/arrow/compute/function_options.h,sha256=Q9rjkXPrU9-Xi64_fMLPbBbW_byhjJFsvHppP1CumdA,3088
180
+ pyarrow/include/arrow/compute/kernel.h,sha256=ywsxF87w2eI4li8be7Wiua5bXp0NYhMb7LS8IzPFO3U,31406
181
+ pyarrow/include/arrow/compute/ordering.h,sha256=8Vw3VzDi1mGgVwKGQZakz9TVj0A40wxcL13EvuqNVjU,4129
182
+ pyarrow/include/arrow/compute/registry.h,sha256=x7LHiaNEVvZ0VUssZFsasB52Z1AxRflkdI5tR1hhzqc,4837
183
+ pyarrow/include/arrow/compute/row/grouper.h,sha256=m-XUADUbpC2wSYmea8rFMbooh0gJQtdTBoF81ywhhjY,7319
184
+ pyarrow/include/arrow/compute/type_fwd.h,sha256=-O63QUbsxWws8TBi55x6u9FweUSSOOfizhE4pTczLd4,1537
185
+ pyarrow/include/arrow/compute/util.h,sha256=eF_BX2aftTa3qUJwaZA3QGTajrDv4nf6HKXs6dOmjug,8863
186
+ pyarrow/include/arrow/config.h,sha256=8liyKI0CJO0G-Fz5I--QjIAwh0m4hosfyAOwvVVs0sU,3044
187
+ pyarrow/include/arrow/csv/api.h,sha256=LbwWhPyIsi_73hvsSr77RNR9uUxrVyXM__hp7QcSom0,907
188
+ pyarrow/include/arrow/csv/chunker.h,sha256=nTs8hdy4D3Nz3oZWm2JMuA02noY_0pWRYWq_RptqzHY,1171
189
+ pyarrow/include/arrow/csv/column_builder.h,sha256=7oa9YCg2Uc2mB7ExHIyYIvbdt555qLXiU0y4FepkISU,2890
190
+ pyarrow/include/arrow/csv/column_decoder.h,sha256=10idcPJE2V_TbvgjzPqmFy1dd_qSGWvu9eDkenTuCz0,2358
191
+ pyarrow/include/arrow/csv/converter.h,sha256=cjtnz_hZFxm_dWjAMjr1iqqk1egXI2Yb8Bd0xC8md5E,2789
192
+ pyarrow/include/arrow/csv/invalid_row.h,sha256=gTHjEbjkpee6syLGA8hFY7spx1ROMJmtMcwhXv21x5Q,1889
193
+ pyarrow/include/arrow/csv/options.h,sha256=_HkjSoiAPW77z5AHVVnTa452y1KfJgnXWXz2NoPPAYw,7980
194
+ pyarrow/include/arrow/csv/parser.h,sha256=8PplRh3Qxckk8VPyM70P_f1MBb4WMGnNVpoeJ9kOdHU,8616
195
+ pyarrow/include/arrow/csv/reader.h,sha256=416pt3yNQsgn4RhIyRMsmSJmvv1sw3ouQotubXG91gQ,4606
196
+ pyarrow/include/arrow/csv/test_common.h,sha256=uEYzw8EROvd1QMBQ98d4MaZ7BqMlw2e0flAyz-du0Z4,1972
197
+ pyarrow/include/arrow/csv/type_fwd.h,sha256=ptVbengmY_a7Yz1w0SKmKL16yyw9yEeym0Q0cnRCSV4,984
198
+ pyarrow/include/arrow/csv/writer.h,sha256=Y1zErZ5H1r2QzjAta3TXpFrdl2btoardCF8USCAGtGg,3549
199
+ pyarrow/include/arrow/dataset/api.h,sha256=p7i-bncJLhmfBkfjJWS7684vD9Lke1m6tb7HQq7Tpn4,1322
200
+ pyarrow/include/arrow/dataset/dataset.h,sha256=sDkJg42vSE05FwRmYi9pes3jD9932X3J8cyYZ3SY2jI,19830
201
+ pyarrow/include/arrow/dataset/dataset_writer.h,sha256=TQV75b_UigfGjIpBnPk8teOncM5WroKfKV15oicBRRY,4589
202
+ pyarrow/include/arrow/dataset/discovery.h,sha256=x7-5NBAyEeQWGlWanJDLZAoWksKiMwM96tlDx_M6n5c,11236
203
+ pyarrow/include/arrow/dataset/file_base.h,sha256=2oe5v8Qy6v_UthJavg9rjU_WuQvwXcJengWwc3sWLqk,20203
204
+ pyarrow/include/arrow/dataset/file_csv.h,sha256=7PlvQW_2FJ5RRN-VH4-OBw5cZ6nkd0KE0sj1TQvCZeo,5016
205
+ pyarrow/include/arrow/dataset/file_ipc.h,sha256=6-btvXhflZsAH90T3wMkwzZkte6T4ixzeCEUn_5uYW8,4083
206
+ pyarrow/include/arrow/dataset/file_json.h,sha256=sPjOeMOtbZZbvOivnOdb4MvYKHltpTnY8fONkhB9PZs,3523
207
+ pyarrow/include/arrow/dataset/file_orc.h,sha256=P7nAD9nacVngDEjH8ChQRt0AQmDg4Z1wBx360LDOoSg,2452
208
+ pyarrow/include/arrow/dataset/file_parquet.h,sha256=bzArl0XrmtTNvWhs6YTkLFxtD8TLbTIJwYmWz3YRm38,16708
209
+ pyarrow/include/arrow/dataset/parquet_encryption_config.h,sha256=Upo0k5MijZaMaRZjPp5Xg8TRt1p8Zwh2c2tdimjVe1A,3425
210
+ pyarrow/include/arrow/dataset/partition.h,sha256=3wrNekD_-fPO1YW91Za-T4muCfQeAX7SZRIcsCN_czI,16815
211
+ pyarrow/include/arrow/dataset/pch.h,sha256=iAE_PbVtKHfhygz7Ox9Z2nlhsIrfageGixGKjlzNRvg,1194
212
+ pyarrow/include/arrow/dataset/plan.h,sha256=IjuR9K2sWD85_2HpVVoJ-3YUCq--UPblHU46exX5qRg,1181
213
+ pyarrow/include/arrow/dataset/projector.h,sha256=KfZijq09Ht0Z2cJHsrjg-sE3SiZ4TKainflReK-39cg,1135
214
+ pyarrow/include/arrow/dataset/scanner.h,sha256=9Ats-ejc6exp3alGUhq0Sw8fww3kJj4ssi8FOKK7SDk,24598
215
+ pyarrow/include/arrow/dataset/type_fwd.h,sha256=YOUSRwdNAlXJ7meFLolpAFQ_mSlObs2F81zcOy0DoI4,3170
216
+ pyarrow/include/arrow/dataset/visibility.h,sha256=ckmf_sEI0WBo4W7DIgH1QrOq82skOHtoksl9B3yYvzU,1586
217
+ pyarrow/include/arrow/datum.h,sha256=XYaZ_URrAtVqHMq-_2YtXk_ETeQ4yZWLVAnsi-k2Mac,11511
218
+ pyarrow/include/arrow/device.h,sha256=mLz99tb74VdjxXtKt6RZCYKJQ8TYz93uaCFJ1ZiItMw,15344
219
+ pyarrow/include/arrow/device_allocation_type_set.h,sha256=ynoZ-XyFlOAjh01PU-R11mE_EOxuw3xzc94v5OXa0u4,3306
220
+ pyarrow/include/arrow/engine/api.h,sha256=ORM0M5KQeurjEG8Eoa5IeV_ZgKBRPlWyicyv3ORWkAY,886
221
+ pyarrow/include/arrow/engine/pch.h,sha256=8VXXI10rUHzlQiAthx-yjHMQCpGL3dgAiVaGzTubPPE,1094
222
+ pyarrow/include/arrow/engine/substrait/api.h,sha256=W9NB1RAm0ZVxztRXYA-GD7H8XLQNXFoYT7TdGFHoNTE,1079
223
+ pyarrow/include/arrow/engine/substrait/extension_set.h,sha256=FE6cceycuQv7CCe_Fl4t6tIMRyfoJfWClUhSvHgcm90,21552
224
+ pyarrow/include/arrow/engine/substrait/extension_types.h,sha256=x5ZIuynNh6WFt3wRjW--zUsuC3SeDLk1qRg9_xhswWM,3075
225
+ pyarrow/include/arrow/engine/substrait/options.h,sha256=dtvUty_zoDmcFwVflppiDzelYkeOhCO74uRF6izQSzk,5820
226
+ pyarrow/include/arrow/engine/substrait/relation.h,sha256=V3VKFlDdE61e1OS8LbJiwvm5w0uq5bzBLhKqmgmKaws,2385
227
+ pyarrow/include/arrow/engine/substrait/serde.h,sha256=mjxfuFo4aPhCiwefpKAJMIlknF4UOHSr6gWU__1SwCc,16528
228
+ pyarrow/include/arrow/engine/substrait/test_plan_builder.h,sha256=REFa79D1AOIIjp2Iez73iw5gEnzG9Rac9t8WwiGLsuI,3003
229
+ pyarrow/include/arrow/engine/substrait/test_util.h,sha256=IHZeYrk50Sx9anJfC25DWP6XesItKEywDWUqvUJcjEQ,1517
230
+ pyarrow/include/arrow/engine/substrait/type_fwd.h,sha256=P9YRjAQpSgoIjDC0siYyxoQzcPVo3r9y85qjiMtudBs,1028
231
+ pyarrow/include/arrow/engine/substrait/util.h,sha256=_dRiQBaIMWNbsYG7kuXhs3dMk4dI63-pM0uSxYPOvgE,3570
232
+ pyarrow/include/arrow/engine/substrait/visibility.h,sha256=GRzH6U-UCPT8d60cywOkFfcanPSgiZKCDP6X2rIpbMs,1740
233
+ pyarrow/include/arrow/extension/bool8.h,sha256=VsHTtVyrqk6UKgvifad7LouuieoAZuZs_uVvegdGq4Q,2145
234
+ pyarrow/include/arrow/extension/fixed_shape_tensor.h,sha256=VOqvTSnwDIvnhbstYX5nnqWfhtZ7MaD-lSF89BEqlhE,5610
235
+ pyarrow/include/arrow/extension/json.h,sha256=gnJSzCVni_oJKxKMoSNBwsuBg1BJzk_goGIE_uTSMJY,2109
236
+ pyarrow/include/arrow/extension/opaque.h,sha256=uMVqSScey_13Ho6V86vfkuoByZni9ufh5BGKgX4bTZk,2920
237
+ pyarrow/include/arrow/extension/uuid.h,sha256=E_Bnp5KNKSxVuvdhQHjYT-0HKa9mzVPbSAQjuZ9N3Pc,2278
238
+ pyarrow/include/arrow/extension_type.h,sha256=YUvUzPz-0QiG-jOjs__TfyPEpsHWGkGO5PMVG1vMjkY,6639
239
+ pyarrow/include/arrow/filesystem/api.h,sha256=Xgy2GOZtBVwDjTaXPDyPPlS9Bwt9gjWXm5I_QbyRbFo,1383
240
+ pyarrow/include/arrow/filesystem/azurefs.h,sha256=M-7jR8AqyPu8uTXbw4INLb9RsZKrPmZlPO7T7MskQ_8,15299
241
+ pyarrow/include/arrow/filesystem/filesystem.h,sha256=H7MEX1259aVrWMsgsWX26tuCEPSJF-iI51J3sKsYec0,29585
242
+ pyarrow/include/arrow/filesystem/filesystem_library.h,sha256=axaof-G9GxBjzXhRIt4azB7HB8VJ49MtGYsL7pSO0A0,1725
243
+ pyarrow/include/arrow/filesystem/gcsfs.h,sha256=AKMBJlhYg7dlFdyWvGFRUmfA7QdQ8X_6gA6RqPKn6RU,10477
244
+ pyarrow/include/arrow/filesystem/hdfs.h,sha256=Jn91pjfk6RMx-MuAWsEAKLTyKQ7bDPNA5jMEVzafSgc,4133
245
+ pyarrow/include/arrow/filesystem/localfs.h,sha256=eIhPrpABheQz21WE845ULleTk83e4EtJnES4jALW6mM,4972
246
+ pyarrow/include/arrow/filesystem/mockfs.h,sha256=kohu7s9s9xtd75sGTE2K_rsHW89swDOtSSSFxBixMcc,4768
247
+ pyarrow/include/arrow/filesystem/path_util.h,sha256=hrDVHk4F9M7oGABB4x2wKfQMjSlSAIS0IaLVv2jHrl4,5698
248
+ pyarrow/include/arrow/filesystem/s3_test_util.h,sha256=22B600fr84Gq4rGALdidIP0IzDs9G3aOqkLN4y-6xrI,2962
249
+ pyarrow/include/arrow/filesystem/s3fs.h,sha256=V-Sx7dW2THttjOcxTPAiD-5C-VkSAgp18GnOcHv1890,17923
250
+ pyarrow/include/arrow/filesystem/test_util.h,sha256=kgT3WgKvG2acNpiXWQqVL1c6Uhfmzg1m9h6o1nh3dKg,11729
251
+ pyarrow/include/arrow/filesystem/type_fwd.h,sha256=zztDER55Wbt4rVnkd-ReeDO-YnrpemftFeFtZ7ZGidY,1462
252
+ pyarrow/include/arrow/flight/api.h,sha256=YotLTQn-KCl6y5BIg8coEFZ9n7PMtJ02ly7Pc5gmX7U,1257
253
+ pyarrow/include/arrow/flight/client.h,sha256=NtFquWOaafBcmdIB4en9ua5xSEJaCBkC1ZHhAU_Gg60,17798
254
+ pyarrow/include/arrow/flight/client_auth.h,sha256=a3Dkm_jPOuqzNsDA4eejuMUwCEBMavM8uS7w81ihbRY,2216
255
+ pyarrow/include/arrow/flight/client_cookie_middleware.h,sha256=5zkCP2SxMFQuTX8N9NHxOve5J_ef2rFO6-xY4Tfnygk,1204
256
+ pyarrow/include/arrow/flight/client_middleware.h,sha256=aAZwCahuiBhP85iMPe7xNWvidBR9KeHGto2YAqJioI4,2948
257
+ pyarrow/include/arrow/flight/client_tracing_middleware.h,sha256=d0sTmUOfq5M9FMliIKK-flJkR6-7r69NjU2TpxhfqWo,1217
258
+ pyarrow/include/arrow/flight/middleware.h,sha256=JPQd8JnIVcwjTH6yOBck4BWR-WV95fpnAdhHyEYvfKE,2254
259
+ pyarrow/include/arrow/flight/otel_logging.h,sha256=riS9sZM2C3mH6VMbESizJ6lGmudqdJhfdCY9_cJJqMA,1139
260
+ pyarrow/include/arrow/flight/pch.h,sha256=Dp2nrZ3t_KPjm0cIMyu913BbCorJG5rmbtpfyDN09bo,1192
261
+ pyarrow/include/arrow/flight/platform.h,sha256=1ZfzVaollAZosGyH_1JvzEA8iNR0hi9cUGz5eyLT1zc,1209
262
+ pyarrow/include/arrow/flight/server.h,sha256=GAcV0-THuBuj-bXfwqYrZ1P2bwZgKQSJLbu8ToltRvU,13185
263
+ pyarrow/include/arrow/flight/server_auth.h,sha256=zKQ8lvkMBuMYiIfT1sU0MPXqVPQikaOS3npBgytcaKk,5429
264
+ pyarrow/include/arrow/flight/server_middleware.h,sha256=ITKjCNTT2qnX7JeqWdaweC_QpCX_ytW9PFucQYmPkFo,4317
265
+ pyarrow/include/arrow/flight/server_tracing_middleware.h,sha256=zR0FFZYGwAAqhzVhPVDjyXfZda9zmLteqauwA5dgR_w,2186
266
+ pyarrow/include/arrow/flight/test_auth_handlers.h,sha256=XkvMWucv9GQjlt2ttvYxshym4kUubUdMh-timlQIt1I,3315
267
+ pyarrow/include/arrow/flight/test_definitions.h,sha256=U_HhBnNdNZmojraYzICBmBvuef0bTT5eYzFXp8iGFzc,13110
268
+ pyarrow/include/arrow/flight/test_flight_server.h,sha256=SbRhZP0U4ILnbg7lYQvGeXmvPM_B6bai12FTM_HD4RQ,3930
269
+ pyarrow/include/arrow/flight/test_util.h,sha256=E0OlDLwcknevKf4LzzqdU3jfxUMV_mcIJxy4U_up77Q,6860
270
+ pyarrow/include/arrow/flight/transport.h,sha256=ZDXc-f8o00TFWESwsGU1My7rR9OfM3X7OZjDcGXTwIA,12181
271
+ pyarrow/include/arrow/flight/transport_server.h,sha256=iVdXmrb2pemh4o6BxwvB7OZAV4UeoWrbhe4ePZ5Pi4s,5268
272
+ pyarrow/include/arrow/flight/type_fwd.h,sha256=tQFAM3QNKPdzB4VqUGdEUFjNPYXVZLApwGnSus2GQx8,1797
273
+ pyarrow/include/arrow/flight/types.h,sha256=E0HxptiVr1UBZ1XcKJVZitzMTCCyvM2sCGPrpq6xQBI,46681
274
+ pyarrow/include/arrow/flight/types_async.h,sha256=3nIQqwCYO4Ir3Mt2bG7BNntXxuNHYQNNpz-Yl3EaFTQ,2599
275
+ pyarrow/include/arrow/flight/visibility.h,sha256=N1k74cwyRvOaYFa_tCjdgUjiSdPBhmy20UuVGu0wTg0,1596
276
+ pyarrow/include/arrow/io/api.h,sha256=Pn4jZSTsLW8MAlMyXUokmJdupX54u154GYI5AvD5ByA,996
277
+ pyarrow/include/arrow/io/buffered.h,sha256=PHaMwCMaXu3vAjhDpZMC2xt5hKooJXVeMffhoDzTxNc,5912
278
+ pyarrow/include/arrow/io/caching.h,sha256=AAjoyKwQ06m2XiglFS6Ch_cdg2p4-wkA7GakGI_eX1E,6708
279
+ pyarrow/include/arrow/io/compressed.h,sha256=3JxIOo1q8VhjIErfwVM5ZLVkwwQKXd-FT5517j58etA,3774
280
+ pyarrow/include/arrow/io/concurrency.h,sha256=SmIr0OWCgMUR3j9ngVbjMJhWOUrU15jQf_jz2rUw7r4,7934
281
+ pyarrow/include/arrow/io/file.h,sha256=-ZEklW1Q0sj3pYCQLQ1ebirKd3s2GI3vUEIszFr8mVU,7625
282
+ pyarrow/include/arrow/io/hdfs.h,sha256=2s3f49ggAYgSCsX5SoqnomwsXd24_IZhW-VSBJclqTg,8559
283
+ pyarrow/include/arrow/io/interfaces.h,sha256=QIBHTJUobEkwcqnKMT_GEKu5ArzpeGmK-8v7z4qGHIQ,13428
284
+ pyarrow/include/arrow/io/memory.h,sha256=htc3MmEbEvwc28bLjCtTtt9QcYp-10WKLmX0V9TnwRM,7048
285
+ pyarrow/include/arrow/io/mman.h,sha256=qoLBAGFcvpYTy96Ga7FNWDJKT3uhxpFAF3hbXIaDSiY,4111
286
+ pyarrow/include/arrow/io/slow.h,sha256=8-ZjQJq49EQJ4esQ6qHHjlKCeZNg4BSND7ire-ZtLYQ,3942
287
+ pyarrow/include/arrow/io/stdio.h,sha256=dqMTHoJbmiXcyNa2fN60tSWQsx0GPphZVCLdGiZNt8I,2095
288
+ pyarrow/include/arrow/io/test_common.h,sha256=Rj8mwgcUkzksrlBALiAldtr_6JGHJFLh2SztGVkRiSA,2112
289
+ pyarrow/include/arrow/io/transform.h,sha256=W9XWonw69VymQAaQptfW7jD-6ry7VCpfPXlkB7aZzOE,1890
290
+ pyarrow/include/arrow/io/type_fwd.h,sha256=Pi7EFpFvBXsFN1xKOyZjTSP95xNDs6W5hxb5GucoVVE,2315
291
+ pyarrow/include/arrow/ipc/api.h,sha256=olkdu82mTS8hmwD53DBJJL6QQ0YBplhs-s-m4uOInSQ,1007
292
+ pyarrow/include/arrow/ipc/dictionary.h,sha256=UTjZPIG8mLZOk9IW2QnR9RZGr1npexZOp103fv-O70E,6104
293
+ pyarrow/include/arrow/ipc/feather.h,sha256=uCnxwO7eUH18kJ-lWz9IWwSj6AjfejqqLdoifJ-UBDo,4918
294
+ pyarrow/include/arrow/ipc/json_simple.h,sha256=IjFjx6Z7h_WLXt1paVIJboUOTR5GFBhWUhCbm_m9lNk,2455
295
+ pyarrow/include/arrow/ipc/message.h,sha256=KtMCbIC2J4-5iyPG5Sijqu_MALxiuKWBYZhGnw0jxOQ,20011
296
+ pyarrow/include/arrow/ipc/options.h,sha256=X2BbCaQ03S1uqedgLRbvLyfb1PHZ7WGRBjDLLCbQMGE,6888
297
+ pyarrow/include/arrow/ipc/reader.h,sha256=NqdrqqAEItO1ecYUINRO7-qhKlYy-CHSJKGI2hdXlRQ,24106
298
+ pyarrow/include/arrow/ipc/test_common.h,sha256=_kWOR_-YKtilcCIWK6I4WYo8fcRt6eBMfxEM4kDtY20,6351
299
+ pyarrow/include/arrow/ipc/type_fwd.h,sha256=Ty8ET7nLI4JJeTqDMyP0pEH9QVj9xs7BpJkZrnrpaPY,1440
300
+ pyarrow/include/arrow/ipc/util.h,sha256=wTkfC9YFKZlAAjyzlmQVZcW90oOj_JatjDN4qz0IxHg,1414
301
+ pyarrow/include/arrow/ipc/writer.h,sha256=hum8E_orkG_X38vgyfyKhGbyvcLJ3AkXEykyBjAXIYg,18870
302
+ pyarrow/include/arrow/json/api.h,sha256=XRW1fP43zVqwy1yabaKctNK9MDZqnxkoHDH1fx5B3Y4,879
303
+ pyarrow/include/arrow/json/chunked_builder.h,sha256=DDuMwrImMECw6Mhfncn2xMOjkFcKUV1O1597_fSFSAs,2365
304
+ pyarrow/include/arrow/json/chunker.h,sha256=dkZOcxsF1Q3ek58P7IoA8f3lQyBQpFvGSFeynNV2Olc,1119
305
+ pyarrow/include/arrow/json/converter.h,sha256=3lXsP3BSdpLPIkFAJnYW9vP8BbX3neVYR_W0zFKClQ0,3134
306
+ pyarrow/include/arrow/json/object_parser.h,sha256=Y_6Oceya06aUyeo-1k047dm2-JUMJa2_w9iyZ-goIRQ,1627
307
+ pyarrow/include/arrow/json/object_writer.h,sha256=UrIrjCkIz7Q5n_FpV5NNPD96gHHdTkvTJaekuGBHwTo,1428
308
+ pyarrow/include/arrow/json/options.h,sha256=EypQgDwLZQbrPnAh45nSPfpGGYrxvLgfp1eAG_l0p3Q,2227
309
+ pyarrow/include/arrow/json/parser.h,sha256=3oIzO5kUs2Takc7t_d5mH7bp1uIcc1M-qbuHmPoSI34,3383
310
+ pyarrow/include/arrow/json/rapidjson_defs.h,sha256=lBJlfuYWIeQQ8awPd3bk4jJc81efr_KzKwG8Klw7t1s,1474
311
+ pyarrow/include/arrow/json/reader.h,sha256=KNO9dCyc2RZs7WxUSEW7bpCYBh_h1C3U52YHYxBnP0M,5212
312
+ pyarrow/include/arrow/json/test_common.h,sha256=YiiY_jswpp7Nu6IW1Y2lBhqWSFRoNaNEy1jHd5qkYHQ,10874
313
+ pyarrow/include/arrow/json/type_fwd.h,sha256=o9aigB5losknJFFei1k25pDVYZgkC2elmRMX1C6aTjo,942
314
+ pyarrow/include/arrow/memory_pool.h,sha256=SjPtWz1tx6Lotr2WeOKCCIw9NQc50Zjez3yzgfr7SDw,11064
315
+ pyarrow/include/arrow/memory_pool_test.h,sha256=qv7csk6hZiO2ELFF-1yukpppjETDDX0nuBFBbPFHtMU,3350
316
+ pyarrow/include/arrow/pch.h,sha256=MaR9bqy2cFZDbjq8Aekq9Gh1vzLTlWZOSHu-GhWP1g8,1286
317
+ pyarrow/include/arrow/pretty_print.h,sha256=ZDlroPRr9_ryCk7h_rjA8pL7BNgaJQ9HnRb2PZU63lg,5529
318
+ pyarrow/include/arrow/python/api.h,sha256=W76VAxYqOxi9BHJddji1B62CmaWDFuBhqI65YOhUnGQ,1222
319
+ pyarrow/include/arrow/python/arrow_to_pandas.h,sha256=jUBEUMKXw70oJdMlgkSf6HitaNweQcc7hxI75_C9WSI,5561
320
+ pyarrow/include/arrow/python/async.h,sha256=C0f8YYmgwBGgDau4xEFsdjukiZB4YvpylETHEZryHOo,2352
321
+ pyarrow/include/arrow/python/benchmark.h,sha256=f-kzyMOlPKDse2bcLWhyMrDEMZrG_JHAPpDJgGW0bXU,1192
322
+ pyarrow/include/arrow/python/common.h,sha256=yjljfJK1f7slZ7DBQ4LTo_pob70zioswJNWazy0p-uM,14412
323
+ pyarrow/include/arrow/python/csv.h,sha256=QxU3B-Hv_RsoEcMGS9-1434ugouL2ygC64Lq6FgviNM,1397
324
+ pyarrow/include/arrow/python/datetime.h,sha256=Bny_THGi2tyUeHxcOuw01O7hNE8B_gave5ABAZQtwTQ,7931
325
+ pyarrow/include/arrow/python/decimal.h,sha256=K9ScmzSa7XCuuwpXKnq0GPbRDTuRU5yXfWr9zGtOchc,6362
326
+ pyarrow/include/arrow/python/deserialize.h,sha256=Q4L1qPCra8-Wzl6oLm44cPOUMVuK1FX01LeGzwNUtK4,4260
327
+ pyarrow/include/arrow/python/extension_type.h,sha256=0gzb42y_mbw4fsYs3u8cwPFLBRlG-kkHQLgbvGtrY0U,3181
328
+ pyarrow/include/arrow/python/filesystem.h,sha256=FG0AcLekqaDf9IQPqKixAfIcY_ZLgIKP5NvvXdtBVUM,5126
329
+ pyarrow/include/arrow/python/flight.h,sha256=PzZhVa9DiT8GUB5_s5gXRBoYR9RLPq4Uy6QA7RRWOpo,14382
330
+ pyarrow/include/arrow/python/gdb.h,sha256=H-qvM-nU8a_3Z5tk8PvppTwQtBMSZhQKQIVgRAsRfFg,972
331
+ pyarrow/include/arrow/python/helpers.h,sha256=jVNFEbvJXmCceJti3J3-MnZkNlJoynQNq334tt29bbs,5489
332
+ pyarrow/include/arrow/python/inference.h,sha256=FUFvB4Zy7V-tueXdmbDcqTeLK4xj5GZEeRW5yhiJlsU,2038
333
+ pyarrow/include/arrow/python/io.h,sha256=4jGnodpSUlnVqAVh9fWId7H4WldlLPkXyroABpdaW6w,3858
334
+ pyarrow/include/arrow/python/ipc.h,sha256=SZbw6jCCqLiLNCY3k632GmwHeD_r_xrDS0dhqV49VhY,2259
335
+ pyarrow/include/arrow/python/iterators.h,sha256=Ugfm3JvetAH0l-oAjjpZfhrUBqRimVMaw4-xusvqLSg,7327
336
+ pyarrow/include/arrow/python/lib.h,sha256=aWAOSlSScduvc3gGO6aSAWcNBl2QECWEdQAZb6mIl_U,4631
337
+ pyarrow/include/arrow/python/lib_api.h,sha256=4oiKWmdhyjn5OxDSBamrukHpWwQbUioDR7X82dhgdXs,19487
338
+ pyarrow/include/arrow/python/numpy_convert.h,sha256=y13eHwfe1lJKzadoTr2-GyX6xPsE6Z7FN31s7PN-2Rk,4870
339
+ pyarrow/include/arrow/python/numpy_init.h,sha256=FniVHP7W2YBlenoMYhQrODvoqqvDMSls2JANGtNPQts,999
340
+ pyarrow/include/arrow/python/numpy_interop.h,sha256=rI6ek8JTOYtjo7gEADSDBS6QuAOHa2A0YQPZ2GeypFw,3418
341
+ pyarrow/include/arrow/python/numpy_to_arrow.h,sha256=z9KapsuoOSpWILPt9bea7GR4BL6AQ28T6DUO0mSkh3k,2760
342
+ pyarrow/include/arrow/python/parquet_encryption.h,sha256=Mc8tZ8gIfkH0AckNiIOt6hesP_MVKeKhcytT24ZOLdQ,4861
343
+ pyarrow/include/arrow/python/pch.h,sha256=vkbgStQjq820YeHlXBPdzQ-W9LyzJrTGfMBpnMMqahk,1129
344
+ pyarrow/include/arrow/python/platform.h,sha256=XYS5IqiMUejxN2COzu60Zs8b_wAaGTBw4M-zKVqqs5U,1422
345
+ pyarrow/include/arrow/python/pyarrow.h,sha256=TK3BtD9n3QKOQ9dX3LXbQc0hu9alWcufV0O93iQW7B0,2761
346
+ pyarrow/include/arrow/python/pyarrow_api.h,sha256=7l0G4-_m9yALYoifsY8Z6qh3HHD0PgkpVSgCn_JaGU4,867
347
+ pyarrow/include/arrow/python/pyarrow_lib.h,sha256=-70_Ckj3_0ImlzaXSJOE_d3w9pGM66lXiGPyln9c96Y,863
348
+ pyarrow/include/arrow/python/python_test.h,sha256=ea32mM20uHySlygi9MtVxr26O-ydTZHCUQIlxaIMjT4,1195
349
+ pyarrow/include/arrow/python/python_to_arrow.h,sha256=BoVytf6P7PBYXyznchElKZSFvEsFyimB-tLFdw0AUNo,2521
350
+ pyarrow/include/arrow/python/serialize.h,sha256=HVBhIKgc7A4YOmwYfjE2Hqj1Yxl9suCJb940KxrVcrs,4630
351
+ pyarrow/include/arrow/python/type_traits.h,sha256=B_NsRT_hZG8D91sTcihJyKF5SrslPcFmj12QfbpHuLI,10093
352
+ pyarrow/include/arrow/python/udf.h,sha256=de3R8PhNJO5lT9oCqRxe8e2_SE3jBpHOkwbNqCrlgjQ,3104
353
+ pyarrow/include/arrow/python/vendored/pythoncapi_compat.h,sha256=bzMnlHTCfjk5DQRIxwytunYh5aQxU3iSElaaDyNnAY8,40900
354
+ pyarrow/include/arrow/python/visibility.h,sha256=hwJw5sGrWJckQkNaAuLe4Tf-VDjQbXknyzNOVgZI3FI,1381
355
+ pyarrow/include/arrow/record_batch.h,sha256=_ApzCQ4CTMRGUBM2IFd6bM08SqxDUySlPwL1NB87tyg,18541
356
+ pyarrow/include/arrow/result.h,sha256=8V2_O8iqZBxi0b4B9fc9pDH4-YqXvrdQi10ryIsY3yM,18185
357
+ pyarrow/include/arrow/scalar.h,sha256=7SguSvJ4wohjqV-FSKboC1pgaFVB09dNfkMz36JjcM8,36543
358
+ pyarrow/include/arrow/sparse_tensor.h,sha256=dd6eQmCjfCmmI76hgsC37R-qPJ11IMhafVaxSo2XJFs,25205
359
+ pyarrow/include/arrow/status.h,sha256=BY0B-zFu83czvc0bvBFkJ96bWjZ1DxJFK1nYrgBg2kQ,16401
360
+ pyarrow/include/arrow/stl.h,sha256=MtEWXG3x1YYNi7xPdDOGVRqpnLVvNQFiE_ZJAsPFJ1g,19343
361
+ pyarrow/include/arrow/stl_allocator.h,sha256=TBbvjbuQIH9y88FI2SaqAL7pOIt3wZ1xMKwXqeKNiJE,4956
362
+ pyarrow/include/arrow/stl_iterator.h,sha256=RelNQrADHupKWTuFBCCkqVlyuGHXU3yB6gcsDpQpra8,9953
363
+ pyarrow/include/arrow/table.h,sha256=UoixXGk5S1ckV35utXjbA-KUBQrSeqvfrhSmk22k760,14647
364
+ pyarrow/include/arrow/table_builder.h,sha256=LRcLCL2iUrj6vF4f9AjPswVjqtqlMw7z_8VBAfUJeCo,3763
365
+ pyarrow/include/arrow/tensor.h,sha256=mgPkJ5f5ngl0qDkeYf-uk-BtX7Gyr-0DUuX1qB6YadE,9093
366
+ pyarrow/include/arrow/tensor/converter.h,sha256=RZq0Try_kiZ085_d_CvhewMsd57InGb2TCeiveaf-Oo,2891
367
+ pyarrow/include/arrow/testing/async_test_util.h,sha256=IrHWfPeIyhrgeTGHUPLt92LdsofmFX6khjngWsZv3dY,2262
368
+ pyarrow/include/arrow/testing/builder.h,sha256=4x0bWOedaVomWU0m7dF99irOv3flR-_p-IMofTDZtwo,8556
369
+ pyarrow/include/arrow/testing/executor_util.h,sha256=38_rF-V_9zF1ttJMspkPiI-34VU1RDjg1ADBS8lUFHk,1885
370
+ pyarrow/include/arrow/testing/extension_type.h,sha256=5l_28-SdoO0r6r-nVqkXsfSRFWTLTPgOFEpXzZiqh6U,7430
371
+ pyarrow/include/arrow/testing/fixed_width_test_util.h,sha256=g6yB7RkziU7HEhNJnxOhkn2nE5HeXaFX3tbBX3q9_sE,3091
372
+ pyarrow/include/arrow/testing/future_util.h,sha256=qIhi417OGMWSMUSDHjkGTYd-ihZbqw8ZSIRwJ01vbKg,6246
373
+ pyarrow/include/arrow/testing/generator.h,sha256=h9Kw9GfDnCHDLl7IsEgaLCi8UDu7R6MHL7Au2TWfMVc,12024
374
+ pyarrow/include/arrow/testing/gtest_compat.h,sha256=0NqH39my7m1FMpsrQYnxQx4bdEE10SCXZaysN6yjQFA,1311
375
+ pyarrow/include/arrow/testing/gtest_util.h,sha256=jnVGbM53nnXO433aUNmZHlMyiQ1ftENITLbtqRF6R08,24496
376
+ pyarrow/include/arrow/testing/matchers.h,sha256=3ys7UI6YpFeMvFCgjmF_VWn1w7Hzhqbr2c-_EuJBpnU,16852
377
+ pyarrow/include/arrow/testing/math.h,sha256=YRoNVZVreF1j8G1G8oaaFzeK7VGYA2Q25j10gFN_hTA,1210
378
+ pyarrow/include/arrow/testing/pch.h,sha256=wKPN4rZnVcQbmpn02Sx5tSa7-MEhpUR1w-YJ6drtyRM,1164
379
+ pyarrow/include/arrow/testing/process.h,sha256=AzPW3Lh2R4sTm-RUUi4Od3aSba9zoLcS_zHBxztv4zI,1372
380
+ pyarrow/include/arrow/testing/random.h,sha256=UMxioQORvoZOsodZM6T-ujza5WuYKwAndbvnOImDsqQ,37046
381
+ pyarrow/include/arrow/testing/uniform_real.h,sha256=-G_2J9cvevoCtB55vsCsWtJkMUHLIMyOwdT6G8ZW45Y,2970
382
+ pyarrow/include/arrow/testing/util.h,sha256=xECPSXF8LbS9FWDLIivrJMXpjMU0Tf-vZ6YMpto3mYQ,5582
383
+ pyarrow/include/arrow/testing/visibility.h,sha256=-wjc00QIhygXJa7tknbIL685AQ1wnyCPr-EtVzkzmq0,1606
384
+ pyarrow/include/arrow/type.h,sha256=yxS8FpeY8eK4cjiSc0nBPdKAF8CRnu7cpR0VX_BCY74,96772
385
+ pyarrow/include/arrow/type_fwd.h,sha256=X-drEwMCZXh5xt83ilfNvRK7f5nyEXZnd2ST4NUAffs,23504
386
+ pyarrow/include/arrow/type_traits.h,sha256=zaZta7_fhYMUOlPGt267_8uArMw56OVeXdEhqvqo9ek,55028
387
+ pyarrow/include/arrow/util/algorithm.h,sha256=045EVzsC9rThlRVFaCoBmmtWZmFy5y28PR9yapn9sXY,1229
388
+ pyarrow/include/arrow/util/align_util.h,sha256=DG2L24KReTiU8nFpXLigbflkKouKWTPUf6osQs6mxiY,10669
389
+ pyarrow/include/arrow/util/aligned_storage.h,sha256=e0pCTBZ9hn9VAVTnENubbEii_witF73xUeBZNIQd73I,4254
390
+ pyarrow/include/arrow/util/async_generator.h,sha256=dMfy3t58k9zQ82LeD002LZT0uEce_QWoDRfwjIapwKk,77704
391
+ pyarrow/include/arrow/util/async_generator_fwd.h,sha256=Y7EZ4VXdvqp7DnzG5I6rTt123_8kQhAgYIOhNcLvBdA,1737
392
+ pyarrow/include/arrow/util/async_util.h,sha256=1nnAJZ22iK7wSzmvZDo3PMhuWqJIt2qKdlXzTyhoCK4,19759
393
+ pyarrow/include/arrow/util/base64.h,sha256=qzcBE98cg8Tx5iPJAvQ4Pdf2yc6R2r-4yGJS1_DEIeY,1095
394
+ pyarrow/include/arrow/util/basic_decimal.h,sha256=Q2zfksUdYc92TL8po81I_aQOmwHTwZGPjqXvJM7cgek,33569
395
+ pyarrow/include/arrow/util/benchmark_util.h,sha256=SG3gfwE-wGNZAwpL3TvffnSiZGM2cztV5xRBnbqy2Mw,7641
396
+ pyarrow/include/arrow/util/binary_view_util.h,sha256=-sFAQX9cnfWmmZJo8stFX5vkJki7T2UloAvDzYO0MN8,4625
397
+ pyarrow/include/arrow/util/bit_block_counter.h,sha256=iSIemzizxVokwC0Ze6SjSi-al_nrP2ViXF6JPoIVUWc,20162
398
+ pyarrow/include/arrow/util/bit_run_reader.h,sha256=IWDww6Dm8OFsCRlJ0hEpJKiHMK3nUM3pqbd09mZhcIQ,16616
399
+ pyarrow/include/arrow/util/bit_util.h,sha256=S0TbReZet8MpPFZk9wjfYzfKpkBquthkkFk2QtxzB7U,12108
400
+ pyarrow/include/arrow/util/bitmap.h,sha256=qDoNl-S8QFoZ220HsAtAN-s-Xm5JcnjOXNOGdaIssL0,17462
401
+ pyarrow/include/arrow/util/bitmap_builders.h,sha256=28rjB9AGwG-VMzuen9FARssdMul0RJx2ZmPFQL9SV1E,1596
402
+ pyarrow/include/arrow/util/bitmap_generate.h,sha256=m6ZsNwx1GhsEktQr63NxXHQkX2B7Nti011XYsPg2xfo,3661
403
+ pyarrow/include/arrow/util/bitmap_ops.h,sha256=87_SXoqmVPRC6umXFitektDCIeI8yOalYWUonzdWjt8,10750
404
+ pyarrow/include/arrow/util/bitmap_reader.h,sha256=pLrMDWhVo-Qb3V1mLASAz_aI6QZxDHRr37EtqxqGd9E,8353
405
+ pyarrow/include/arrow/util/bitmap_visit.h,sha256=myn8k66VrvZnL6R6VW6IDPTfO68VxjbJ8Up5IuSjFL4,3470
406
+ pyarrow/include/arrow/util/bitmap_writer.h,sha256=a4goXhLlY0qcfvYxbfbGD_HZ8Au1wFcbV1tVF3BPaXs,9383
407
+ pyarrow/include/arrow/util/bitset_stack.h,sha256=D49IZZSzZOM2hqh6b-fT0vgRISf1mQnl4oG5nnLBZ4A,2776
408
+ pyarrow/include/arrow/util/bpacking.h,sha256=qiiYXgZLWZcYX6sm75_vBQ6qpHtS1AwasL59YQL2Ptk,1175
409
+ pyarrow/include/arrow/util/bpacking64_default.h,sha256=q7kf_BW62k45v1qMtnJtLIPk8VtJIALc5nXkYmISy3w,196990
410
+ pyarrow/include/arrow/util/bpacking_avx2.h,sha256=ymQJGQc54W3zbrSoktjbAcBnWwbq_SphiXLLI-G6fHg,1009
411
+ pyarrow/include/arrow/util/bpacking_avx512.h,sha256=Z_rAQpiKJEH-9QSHUXpbDmZiAgIm7CPCHfPnwlIZDAE,1011
412
+ pyarrow/include/arrow/util/bpacking_default.h,sha256=nDi4g5JdyWwXa_J3EqE22bG9R4G7Czd6W75F9spRU5U,103760
413
+ pyarrow/include/arrow/util/bpacking_neon.h,sha256=vE-V4E8dpqSjk7dq8kagD07-nhRQKGvcYMhc_dE4nqg,1009
414
+ pyarrow/include/arrow/util/byte_size.h,sha256=Pd2c_3a0IeSOUevhPIlXNkDmgoB06g4c9YCsuRwwSKM,3997
415
+ pyarrow/include/arrow/util/cancel.h,sha256=SgAy5S0TBISnCypp4R_OI-jPUQ997qtsLOSdXo8l5bM,3659
416
+ pyarrow/include/arrow/util/checked_cast.h,sha256=SR9Qg8NuLSBJw2w1UfgeGvCfT8k7wrbN7BzADQOZfAU,2076
417
+ pyarrow/include/arrow/util/compare.h,sha256=OLrSSyllkY4Sv00IK-37A2d68gr4OwnWJsxn1aF9xTU,1982
418
+ pyarrow/include/arrow/util/compression.h,sha256=fvlURoWJsgO8Hr6Xs_VNaqiOatmIGn9ktVUkYv7pIu4,8427
419
+ pyarrow/include/arrow/util/concurrent_map.h,sha256=wMi9WDHfRuJ_aSFgcJPpsVwGJ9vIJ5agaZ3rVUlwGe4,1775
420
+ pyarrow/include/arrow/util/config.h,sha256=GrUtAhdzwMzsPKIKCbJnaz9VKb6rGjgiAnTiBtTEgg8,2269
421
+ pyarrow/include/arrow/util/converter.h,sha256=PILfos6VlnLK6fOFMfLIUhiKl3o1dJo9T4HJXeR7V5E,14637
422
+ pyarrow/include/arrow/util/counting_semaphore.h,sha256=iXHYagqi_-ay73T1uPmv7pG334SY34DUQLSdtD_4_tA,2251
423
+ pyarrow/include/arrow/util/cpu_info.h,sha256=MqLdJabBZkzDjiScaQ7if9dmoAGvXT2QavGoGkho3lU,3964
424
+ pyarrow/include/arrow/util/crc32.h,sha256=4gN0M-SRnxaGKci2ATPbMWZG2TG3YULXjaTpadV0Udk,1337
425
+ pyarrow/include/arrow/util/debug.h,sha256=CPB_oDOuZ_u89e9wM8bGn88mGvClgfa7UDxDph6v9sY,971
426
+ pyarrow/include/arrow/util/decimal.h,sha256=ozY_pRsBgftG73qz0KKEPchFQ5HRTb5oxCcTIdWEL7g,20831
427
+ pyarrow/include/arrow/util/delimiting.h,sha256=JYe9YcWMeFT_ISuojx_VgVqOYLvZ2TiiR2sNn-WdeBQ,7317
428
+ pyarrow/include/arrow/util/dict_util.h,sha256=HipvAVlQ1Q6zNneu9tYOwVUv6NLklBu2IfZ1eoeSpVg,986
429
+ pyarrow/include/arrow/util/dispatch.h,sha256=g6R9w8asCTRyDTFoxUipvdOeh6Ye_FvZBGP6Zwg2t3M,3235
430
+ pyarrow/include/arrow/util/double_conversion.h,sha256=23QU2TFX4hpBZnoqMDyTKxZoH7mU9qkY2vkF1KL8bW4,1243
431
+ pyarrow/include/arrow/util/endian.h,sha256=jp4QoQ9r2vb-oigrlb9AhQW7Lxgxjj7desQjzkEre7g,8176
432
+ pyarrow/include/arrow/util/float16.h,sha256=V6OYyvMTybRWJWhNfjP-NsrrxBMPiDkA-7RWkfBVZSA,7230
433
+ pyarrow/include/arrow/util/formatting.h,sha256=782wKN6ZKlHO7cQLC8CKCF9STixvLGjXrp_CwRqXyVs,22554
434
+ pyarrow/include/arrow/util/functional.h,sha256=4ljKXSWX3G_lBT2BfLXuG44pzZwVKeaojpLWCniqKyc,5612
435
+ pyarrow/include/arrow/util/future.h,sha256=tsSVDEH2dhXKyvIKl6R9BVBolpPdZXoRRf2-YRbtdxg,32296
436
+ pyarrow/include/arrow/util/hash_util.h,sha256=CjiNVPUJPxXvVJy7ys79aIb7YB6Bm-5nTJAR4DHsxcs,1918
437
+ pyarrow/include/arrow/util/hashing.h,sha256=S88jTTQ5k23L7NOSqESp-_KFvHS_fg0GyfiF9NAwvV8,33214
438
+ pyarrow/include/arrow/util/int_util.h,sha256=zTOAq57M4pUe469WpnW6I5hNtxe3vGRHlZWhngA1DzM,4859
439
+ pyarrow/include/arrow/util/int_util_overflow.h,sha256=AtvkG7v3-1gVzW5SrFrdVkYuXFtT76_nxrKtzIbz_9U,4895
440
+ pyarrow/include/arrow/util/io_util.h,sha256=U6VTCh0yKUmYPaw2oG-CllJd4J02Gce6b0qTfqFi9E4,13709
441
+ pyarrow/include/arrow/util/iterator.h,sha256=osTT6Fc063yUfHC260uHmPhBcPjfncMwiCObdtYsaAg,18098
442
+ pyarrow/include/arrow/util/key_value_metadata.h,sha256=wjU6uQGcSmy-YFqMs6rwLP7E4X-0IFBjPrWZstistzQ,3590
443
+ pyarrow/include/arrow/util/launder.h,sha256=C3rNBRh4reuUp8YuRdGQU95WPc8vl4bAY-z5LXgDiuA,1046
444
+ pyarrow/include/arrow/util/list_util.h,sha256=_OmtsDqe-mnZ_7tVWxB2yHdgCJhpiME_RP3nXHzKbdI,2028
445
+ pyarrow/include/arrow/util/logger.h,sha256=p9i4dNgne36LWpFmNSYBYgTQ4kFSao20dJ40LgRRZKQ,6693
446
+ pyarrow/include/arrow/util/logging.h,sha256=eY1sZ1QCcvy5lpJwfOCL2rtRgLjc8V8yDf9usSa9-d4,9694
447
+ pyarrow/include/arrow/util/macros.h,sha256=dqnFiDUrFUyqHyNP4xEr54WgaAEXX8gE4ZG7-i3nfZQ,9336
448
+ pyarrow/include/arrow/util/map.h,sha256=KbKB3QNc3aWR_0YU1S7aF9fdI0VCABGxEF1VES2oOqU,2476
449
+ pyarrow/include/arrow/util/math_constants.h,sha256=2sfWoVc8syHz8X26XgBmejzXStl7hmvKiOh9622oUZA,1112
450
+ pyarrow/include/arrow/util/memory.h,sha256=qsxFgvj_wozO5OxIs6fHdcam7aifpozqc1aE81P91Yo,1566
451
+ pyarrow/include/arrow/util/mutex.h,sha256=n4bsrHK2Q8zbYsQEyNaFqNu__vvqgwo1AfrLLCxfkpU,2554
452
+ pyarrow/include/arrow/util/parallel.h,sha256=_43wTVSrtJwOkRt3KJcJF1DyYHwhoWbWPsrAswftP-Q,3817
453
+ pyarrow/include/arrow/util/pcg_random.h,sha256=nbXowfCJFiy4GjVfF9I8VvB6fxkyR5zNB1FKdnFsYTQ,1252
454
+ pyarrow/include/arrow/util/prefetch.h,sha256=vaE4FPdscbtO0cPbzl8F1PzB1NDO18ytYlEmZCHDjHs,1251
455
+ pyarrow/include/arrow/util/print.h,sha256=X0CfuWzDkq8CNHaEUH3I27Yi4v_zdoOo7sdrTad8Wr0,2444
456
+ pyarrow/include/arrow/util/queue.h,sha256=X9vRZQX3YL_a2Lzwe-zcNNHguR7FoGYmD-Q0THqsCBM,1017
457
+ pyarrow/include/arrow/util/range.h,sha256=yhe5pJiZIiLUO8tYr408Y9yEsFrFd7FrBMeTL2hAOKY,8526
458
+ pyarrow/include/arrow/util/ree_util.h,sha256=waTBOQfwWGHhoAYHTyyhUnM2BSwOqsof_H_akHvUgno,22395
459
+ pyarrow/include/arrow/util/regex.h,sha256=Tj92CttOh2HxS0EKQ_9-sxMBAsQrDOUKNP0ngIJFdP8,1742
460
+ pyarrow/include/arrow/util/rows_to_batches.h,sha256=PZNoLeMCfJJdeHVvUny0UHc5AtS0hctUCi7zUztJpeE,7120
461
+ pyarrow/include/arrow/util/simd.h,sha256=PpKm-aWpZYIYP0NnyGrQceOO9m3_7JbN4uro0IhIT9w,1679
462
+ pyarrow/include/arrow/util/small_vector.h,sha256=dDNNMFpNdtIbxLP3L-h_bv3A8raYv4IVuyLEzUVMgck,14421
463
+ pyarrow/include/arrow/util/sort.h,sha256=cXZvBN_EcXkN5j0xhX2oNisbChT2QKXP9KzDgjXW2_M,2466
464
+ pyarrow/include/arrow/util/spaced.h,sha256=790FFCTdZA-z6qKuEJM5_wG24SqTTVtyj7PKnLBe7_Q,3567
465
+ pyarrow/include/arrow/util/span.h,sha256=1edvehJ567sQfZn4gGvn4kcVpLAJU9raXHbqE_dDpZQ,4298
466
+ pyarrow/include/arrow/util/stopwatch.h,sha256=ADGbEEU1x-fvp_NsIdTHH5BW0b9jDB8rTAj1WOgkClc,1401
467
+ pyarrow/include/arrow/util/string.h,sha256=hYtg4d3kGQBHdd0vGuKJTlVeueCCgfyD3iq-feMA3p8,5756
468
+ pyarrow/include/arrow/util/string_builder.h,sha256=EGT0azRF4dB1cQowm2fruwSRjPbuHt5h0jna8JWyTwk,2653
469
+ pyarrow/include/arrow/util/task_group.h,sha256=fI330NoJT8u84AEUA6pSxWrE7UBKn2LaM4DfPFoalqA,4362
470
+ pyarrow/include/arrow/util/tdigest.h,sha256=L6nSj-FVlYLtwKJ94WX9qps9YU6Yg-e3xwP6C0qE7pw,3058
471
+ pyarrow/include/arrow/util/test_common.h,sha256=ZniLT8TvAUdCE2T2YrtlDKdwDNPBpT5e9V1EiPHH9LU,2837
472
+ pyarrow/include/arrow/util/thread_pool.h,sha256=4ztLwkJHQJQmTmqwy8IGDmAo8X4N-o3qi6f91agzkkQ,24426
473
+ pyarrow/include/arrow/util/time.h,sha256=4Xi8JzaYlWFxVaenmCJ7orMgu4cuKELvbtMiszuJHUA,2988
474
+ pyarrow/include/arrow/util/tracing.h,sha256=sVfC_Rj2gwkWKVSKT0l0FOO5c2EGsfYwlkZX4d9ncxA,1286
475
+ pyarrow/include/arrow/util/trie.h,sha256=WBvryYO2sNdoPc-UB-XmQ3WzSed79qIsSg7YWCrvwNY,7121
476
+ pyarrow/include/arrow/util/type_fwd.h,sha256=aC3ZZR2FniFUR3InlZDXH8dknZKvmM0RBocHwFKU_Us,1521
477
+ pyarrow/include/arrow/util/type_traits.h,sha256=F0Gdg_3faM0MmZBOXOspRzUwuxnjKbFaVpJiTEaOXGU,1731
478
+ pyarrow/include/arrow/util/ubsan.h,sha256=m18PxnY-B0x4twewjyNt2UUy5qHntiolMnWC0JkkTmM,2817
479
+ pyarrow/include/arrow/util/union_util.h,sha256=PSssBiw-v-PDen_q75c6OkNO5PwyIPhGbf9PMJj7P2M,1211
480
+ pyarrow/include/arrow/util/unreachable.h,sha256=O1TG4ozCYT3_xvDpJouKWrlFADIEpIemQ28y4DqIwu4,1070
481
+ pyarrow/include/arrow/util/uri.h,sha256=D24zebazFcrKGt7iGpkcGQ87DuF-2AbjPKVkDlq9Nuk,3886
482
+ pyarrow/include/arrow/util/utf8.h,sha256=flGZ786kHo33Xg_zw0zVA9GAT8jYdPUHTVhIPHGjOj8,2031
483
+ pyarrow/include/arrow/util/value_parsing.h,sha256=ypbnIIxfFDfDmELinEiS2RYSkeabYDAfuKPW5YsmfRw,29995
484
+ pyarrow/include/arrow/util/vector.h,sha256=w1lxZG3CU0gq2ZrByeU8QX2A0JeTtooGdaZONUsVlfs,5697
485
+ pyarrow/include/arrow/util/visibility.h,sha256=DFEdl8TCr30r3b7vlpgzJIiA5NsK7eW9UmeL47PgcLk,2835
486
+ pyarrow/include/arrow/util/windows_compatibility.h,sha256=Chme9fWRqYRzfIbLw7V_yeiIWd3F4dFeG6ImHHr4Xqw,1255
487
+ pyarrow/include/arrow/util/windows_fixup.h,sha256=hjoh6zvB8u8OVUQqLtdcrmohMzoAoLy6XJFLxcfFhK0,1435
488
+ pyarrow/include/arrow/vendored/ProducerConsumerQueue.h,sha256=Bz1ks3NDgXXLfT8TMUkE38RpMOSwKRRtwU1e37Y1CUw,6101
489
+ pyarrow/include/arrow/vendored/datetime.h,sha256=tsFbz8LKBFzRzTEOAKZyWRbdFLfnCnZRCK9Tyi1PANs,1103
490
+ pyarrow/include/arrow/vendored/datetime/date.h,sha256=WNhAT0LIHIl-5t27CT4NjHZxQFl9TANLlGTjlUfHPaE,237812
491
+ pyarrow/include/arrow/vendored/datetime/ios.h,sha256=Qnu0iuy2-ein9KkVoSL1t71_W_VFZkdjDVsOnYTnP38,1641
492
+ pyarrow/include/arrow/vendored/datetime/tz.h,sha256=m5JJv7LE7Vukp8h50r90sCfbOSAD2bMVIVQUUxNZeDQ,85347
493
+ pyarrow/include/arrow/vendored/datetime/tz_private.h,sha256=pDkKXYdzfzQ5uh-jcUhURBLqHo00t0UnlimUdiM53Cs,10706
494
+ pyarrow/include/arrow/vendored/datetime/visibility.h,sha256=VCGKzhQOgL1zwGXKl_7lLULfSy0OsPt8FLWHwA4sOtU,1002
495
+ pyarrow/include/arrow/vendored/double-conversion/bignum-dtoa.h,sha256=imGhcg0RywMsFNMYTqp6rlXw2HZCIAla8SC_n92gCqE,4358
496
+ pyarrow/include/arrow/vendored/double-conversion/bignum.h,sha256=RnQ2CPL8Pt6fVCGh_8VDF11e_GyrrwO0IH0uMnTcsEs,5949
497
+ pyarrow/include/arrow/vendored/double-conversion/cached-powers.h,sha256=jjwfR3bue7mNlE5lbTrFR2KlgjRew2OkmjBa7oQO0Qg,3079
498
+ pyarrow/include/arrow/vendored/double-conversion/diy-fp.h,sha256=J-RgqH27jspT5Ubth9pTA9NAZH6e7n1OVhxModgi8Sc,5088
499
+ pyarrow/include/arrow/vendored/double-conversion/double-conversion.h,sha256=J1Tl5-8aFY0A9SnaA9z5Q90jnMxw55illPIuE-jdD5Q,1804
500
+ pyarrow/include/arrow/vendored/double-conversion/double-to-string.h,sha256=C-tKRi0IuLycXgS6CC1oiFkCroOo_-AO0VOjmfe0tlE,23925
501
+ pyarrow/include/arrow/vendored/double-conversion/fast-dtoa.h,sha256=ZAho25fqeP3t2RM0XgqfhTBXQIIicACLpdyHHMRX3JU,4122
502
+ pyarrow/include/arrow/vendored/double-conversion/fixed-dtoa.h,sha256=HLnpxkHjKldm-FBiDRbADYljJBSYbQGP4Gz-sVbiSJU,2828
503
+ pyarrow/include/arrow/vendored/double-conversion/ieee.h,sha256=CVKA9RXSjv4ZygqDHMiF-H2hUh3QHQvp1GZYC3MAhkE,15281
504
+ pyarrow/include/arrow/vendored/double-conversion/string-to-double.h,sha256=Ul6b-2R0pjUaAWNM3Ki4kH933LqrW6_XfPz4BSiE2v8,10906
505
+ pyarrow/include/arrow/vendored/double-conversion/strtod.h,sha256=6xCRm47vmcghYJug5mhhTVbsZ3m3Y6tQfMehEyVZNx0,3096
506
+ pyarrow/include/arrow/vendored/double-conversion/utils.h,sha256=wFRb5cGABiNoUSCnvKmdv_KIMcBtX1PX89tPFfvgbQI,15614
507
+ pyarrow/include/arrow/vendored/pcg/pcg_extras.hpp,sha256=FEYzq8NFxPfdJyLs4kVtTBLkaD6iO71INz9EJnaxTdc,19784
508
+ pyarrow/include/arrow/vendored/pcg/pcg_random.hpp,sha256=7TaV3nZhcwpf6XxlZ6cod1GaW5gm-iUn67t2fiMPNbA,73501
509
+ pyarrow/include/arrow/vendored/pcg/pcg_uint128.hpp,sha256=r8exMtH21S8pjizyZZvP8Q8lAdxkKF22ZEiurSTFtzM,28411
510
+ pyarrow/include/arrow/vendored/portable-snippets/debug-trap.h,sha256=9KphJ9gRtDT9DXR9iZ7aS23xa2T8tLmLsFEJMg0pLDQ,3081
511
+ pyarrow/include/arrow/vendored/portable-snippets/safe-math.h,sha256=q9yWh34bsFu1vSqLTuI3n_cIU4TlY98Lk1elxKHvZP0,48167
512
+ pyarrow/include/arrow/vendored/strptime.h,sha256=q1IZi5CvyUp_PNzbQ4_XLroAV24VEovBEz2TkpwUJ9c,1212
513
+ pyarrow/include/arrow/vendored/xxhash.h,sha256=MUwtyzu7xjkx9mBcS65SaDcCK7tgeqQgj-KYEMxcHWc,844
514
+ pyarrow/include/arrow/vendored/xxhash/xxhash.h,sha256=videnbIaUDw38kaDzbSQjyNwo-NauW4CxOpz3I45nEM,253096
515
+ pyarrow/include/arrow/visit_array_inline.h,sha256=XuQjuME8XZeJp7W86YuCsuoVVgmG1NulXAA0KJkmmB0,2446
516
+ pyarrow/include/arrow/visit_data_inline.h,sha256=4MkdFVsrjhMyTDNrScQtOYV_nwzqR2ddSS2yYnbyLt0,12460
517
+ pyarrow/include/arrow/visit_scalar_inline.h,sha256=KvNY0j8nE9gs_805LXMV3ATgvxvUqW4UeKpXUxR3rMA,2419
518
+ pyarrow/include/arrow/visit_type_inline.h,sha256=45aoF8APn8hm909nLBngls669o2yKCn24WlL5XdDpa4,4397
519
+ pyarrow/include/arrow/visitor.h,sha256=NKos98j54uY9tdXzctI_n_nwFRrXNOwanxLDqDZONw4,8690
520
+ pyarrow/include/arrow/visitor_generate.h,sha256=n2YKZW-5hY7ICQSwEUBZIYh2eg9ZoTfD54XRd9OlNDo,3324
521
+ pyarrow/include/parquet/api/io.h,sha256=Ricq0d2R4QXHiGZCbjxZ_0F_QmKq0IrfTidNu5NoXPI,847
522
+ pyarrow/include/parquet/api/reader.h,sha256=vnM5XDPn1TVsDJk4SDgb3ZU2Ta4vdrRzCpDWO90rYHk,1204
523
+ pyarrow/include/parquet/api/schema.h,sha256=KsNJ529pEh7bGUa0rLUCcfanI9rW2uSTirgpvKq0hdc,855
524
+ pyarrow/include/parquet/api/writer.h,sha256=UJZbY8QGVRMtAmozzjoM9TnI4gssqlNFUKCXBw2IfuI,1007
525
+ pyarrow/include/parquet/arrow/reader.h,sha256=9euD9hYg2xk7awQJDoKoDMNg2NhZOMc6OR3pu9XPYIw,17411
526
+ pyarrow/include/parquet/arrow/schema.h,sha256=Mi56ul7itNS6NDbMpKOJCufjHVqaSY5_rbsNRNLE560,6204
527
+ pyarrow/include/parquet/arrow/test_util.h,sha256=oyaIkVk3Js9_LL5jEbXbzKIaCiXMtcBaeQkmtEMt37Q,20573
528
+ pyarrow/include/parquet/arrow/writer.h,sha256=XicHPFeGb92AcsNRDblJ7V4Hmst2qSPGYYT9MTSNNmI,7095
529
+ pyarrow/include/parquet/benchmark_util.h,sha256=RhFvoDBVyfd5Sv0fm9JO4JrXWJRGYYmIIrHXi0cSJP0,1756
530
+ pyarrow/include/parquet/bloom_filter.h,sha256=TC3OxK0J2v6tHxT_Bbw7mlYtM0603KXgBoHRvmzM9aA,14999
531
+ pyarrow/include/parquet/bloom_filter_reader.h,sha256=63kpHYKs5TPrbRamkBLZsDYbD-I9UeVhF-R8d7JHeLg,2892
532
+ pyarrow/include/parquet/column_page.h,sha256=7w2hQDqkIhqpHLRh2LHk0ujnuknSPHVtuvJ21LS--n0,6942
533
+ pyarrow/include/parquet/column_reader.h,sha256=3QwlHlpiS5e5jtWmI_kRmD4jrrC8ljfpqF0ilf5JgNI,19299
534
+ pyarrow/include/parquet/column_scanner.h,sha256=HecBvh-z0n_1HJsD-GIdcGHQAvDOHKlLzppB9RBsD9s,8863
535
+ pyarrow/include/parquet/column_writer.h,sha256=Y9VN1eJtsYmQVhpL9UPiWGrHbgSDbDds19Z1nv_yfOA,12294
536
+ pyarrow/include/parquet/encoding.h,sha256=PYEOY6eK6n4Jh7UH63GvnkcVTwaEmua2kPCADmGliAU,16607
537
+ pyarrow/include/parquet/encryption/crypto_factory.h,sha256=RT4iznr6uvSIPbUzh_7s6Cexe8uMbQkzgrjCTGYBC6I,7057
538
+ pyarrow/include/parquet/encryption/encryption.h,sha256=bHJ7USckzezXfydqjJstljcjuR15r8U6zh8z3IoINCo,19842
539
+ pyarrow/include/parquet/encryption/file_key_material_store.h,sha256=YzAVO3M2H5v5Fz2b_WlmB3GE5wVbMEnFTL3S9XPH6k0,2200
540
+ pyarrow/include/parquet/encryption/file_key_unwrapper.h,sha256=pB30St8lGEaEAxNcwnDnlGtATTvc1muMzNOusfgqzT8,4635
541
+ pyarrow/include/parquet/encryption/file_key_wrapper.h,sha256=d2W4xICbSRAy7aPe5RKahhPhiJDfvxHY_v_lifq7wqY,3762
542
+ pyarrow/include/parquet/encryption/file_system_key_material_store.h,sha256=9H1ey0O3LL4dg9VVeFLNxlZ7Vr263JVaZHKVSu4s8MI,3573
543
+ pyarrow/include/parquet/encryption/key_encryption_key.h,sha256=0c3ZrRud2vrCu5z513ocyPYxlsP2kg1fQ8m0Jqr701g,2232
544
+ pyarrow/include/parquet/encryption/key_material.h,sha256=kPTSIuRFYOnH4BCPIB33zG9hp5D2Ba-5kZVlq3rFnRI,6221
545
+ pyarrow/include/parquet/encryption/key_metadata.h,sha256=Pc0nA9LW3Fc9NLMMxz7osbw8si2jSiOVTES-J-9R0y0,4003
546
+ pyarrow/include/parquet/encryption/key_toolkit.h,sha256=HPabI8qFnIMgxZYhHgXCzYV0LU1c5yJ16xjUx21I9b0,4577
547
+ pyarrow/include/parquet/encryption/kms_client.h,sha256=D34pVHzkCbWqKnPIBYfs6cONxmuYzyLSS9-C52ZFhz0,3151
548
+ pyarrow/include/parquet/encryption/kms_client_factory.h,sha256=VZ97CMgDQxx5oZWFGprjXsaM1hZ0wNudPmFU1_lniAc,1293
549
+ pyarrow/include/parquet/encryption/local_wrap_kms_client.h,sha256=XZxkEct0-Tv93VDpda9sDou1kp9qkTKMxr36bpVcI8s,3954
550
+ pyarrow/include/parquet/encryption/test_encryption_util.h,sha256=zIGeULeTOCU1N-XYHdvIppth5wnnTYEwf2h-OuTcQZQ,5209
551
+ pyarrow/include/parquet/encryption/test_in_memory_kms.h,sha256=jYc5WPsrh_wcaaaWcjf23Gbiye3a_bdg2royUfukWEs,3521
552
+ pyarrow/include/parquet/encryption/two_level_cache_with_expiration.h,sha256=cuHbX9gBWWyd0IPXNVjMmHxjPw7omYTns4If4YhBgSM,5075
553
+ pyarrow/include/parquet/encryption/type_fwd.h,sha256=dL8snyUwNjhTQE2FQ2dXAUjTboEXhH2JOehQovHfixc,955
554
+ pyarrow/include/parquet/exception.h,sha256=yc5A3iMqM9P59hnjuY8VXUIoF_JvbZVPHM6_wPtg4cI,5599
555
+ pyarrow/include/parquet/file_reader.h,sha256=Z1RiOP74Y9tMv7kZ7FWX05IR05qzgSOTRKrY71pLOJE,11185
556
+ pyarrow/include/parquet/file_writer.h,sha256=6fK6Mn-MdiQ-J4oo8BTi_eVVVshlffoQiJzFaLRrqco,9343
557
+ pyarrow/include/parquet/hasher.h,sha256=HSY1EjPD2xx_dB9HtAg-lXL7hB4j9MDE0cAlR7u0NOc,5227
558
+ pyarrow/include/parquet/level_comparison.h,sha256=5z4fUJJPWq9W60l2CsAI7T7E2auGYD7m0fpR5rfLmsw,1306
559
+ pyarrow/include/parquet/level_comparison_inc.h,sha256=r20_6Rv5L7UmFGJ68f-JaZ5hLXb87wvZa80hZNQoF-I,2494
560
+ pyarrow/include/parquet/level_conversion.h,sha256=OsuqK1xiUnEnOLPKwfm9X-pXTaXRMlDIkj3lwGb2ggI,9432
561
+ pyarrow/include/parquet/level_conversion_inc.h,sha256=0r2Gfd_FMidLGFC_a8kgpC9bnUt2-IBbAn9QbQFTrTo,14161
562
+ pyarrow/include/parquet/metadata.h,sha256=WR3ZDqJM21Jn1fk9k8B4lrxmn2aqXLWpZO9w5tyTKpo,20634
563
+ pyarrow/include/parquet/page_index.h,sha256=AqvLT6M81jY13YbpX-s-hOzCVz0AGNkZJ9om3_tp4Vk,17307
564
+ pyarrow/include/parquet/parquet_version.h,sha256=TVv89r2MMqGNwa9bPNUOUN0kHs5Gb7n9EMm579nZkE4,1164
565
+ pyarrow/include/parquet/pch.h,sha256=zIdkjZS4kuFYra3woGMjmvYXCwB4IaXdpm_nR5Nz8hk,1249
566
+ pyarrow/include/parquet/platform.h,sha256=VS0zEUC4d37LQmlQLQZ5aHNaiwRf8QrxixXdWf73m5Q,3898
567
+ pyarrow/include/parquet/printer.h,sha256=hXqzwuj5p1oKY2awZkVOq7qXx-Rsoo6QPH1oTE94AHU,1548
568
+ pyarrow/include/parquet/properties.h,sha256=B1l5hn6THai15MSmw1ZtSKTEWXsRrEDqYyiYwX9sXM8,48632
569
+ pyarrow/include/parquet/schema.h,sha256=CjZh2i9WN5VeoDbLqy7M1AZtopZ43_C9blWG3OT2IfU,18222
570
+ pyarrow/include/parquet/size_statistics.h,sha256=Ahr8qyIVre8U_JVRLHL0BbSoYpdJjo2OUeE1UD4I1tw,4327
571
+ pyarrow/include/parquet/statistics.h,sha256=0sk7koXslu-KuVC6CsTiFVD1Fu_ZWPD_FLhcXALas_g,15176
572
+ pyarrow/include/parquet/stream_reader.h,sha256=1WmN0vYCqTz1Lwb_Di4xPWTE-VbCQQuzZralSpWQm3U,8791
573
+ pyarrow/include/parquet/stream_writer.h,sha256=nw_v3nhrL682ozZ2KZKVkHnOsjwexbmBXTV2CKcq4YQ,7505
574
+ pyarrow/include/parquet/test_util.h,sha256=gkJoOl_N4cG3L56uXVJi1RLiDVBl73yX01Dkx2Plt9g,31180
575
+ pyarrow/include/parquet/type_fwd.h,sha256=NYplsPswBbYq5n-UjXc2kArnmFtJrRj5d1TIVnn6I5I,3267
576
+ pyarrow/include/parquet/types.h,sha256=IFbKlP0aZzW8Cn4U0QCIGboVb8hOnD6UvSGi6EqpvvE,25482
577
+ pyarrow/include/parquet/windows_compatibility.h,sha256=xIEGHW354URgdIP9A4V303TJL8A1IkCEvp08bMKsHTU,897
578
+ pyarrow/include/parquet/windows_fixup.h,sha256=DpyWCywx8YIqouun6BJcgMrHFMTCBgowWdJ1mnJnQ2s,1052
579
+ pyarrow/include/parquet/xxhasher.h,sha256=QAa7ZE7S3UFtU_Voz3oi3YclIYhbhviJkafLOYgiuWg,2074
580
+ pyarrow/includes/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
581
+ pyarrow/includes/common.pxd,sha256=8v66QsHwEIfW6cMZA8Mv4E5dq-_ycXCUJ_u6UXbg9Ds,5689
582
+ pyarrow/includes/libarrow.pxd,sha256=pq8fAPP354E6tW6-qHEeL-7ECIm1X9sPt7N6GCQsT4A,116315
583
+ pyarrow/includes/libarrow_acero.pxd,sha256=c84RdYfIuFWW_36-1RELJsowfQwXhgUxbdC_xKQyFCI,5298
584
+ pyarrow/includes/libarrow_cuda.pxd,sha256=0fRcHbCZY_gFdwIXIElnpGvTxeA5xVxZH1-vwZh16SM,4942
585
+ pyarrow/includes/libarrow_dataset.pxd,sha256=WssZKf33Gn6dXAxtE5-TVcIqPtJGCb0uFETn3WYWDB8,17024
586
+ pyarrow/includes/libarrow_dataset_parquet.pxd,sha256=4me_u82JiInHNRvoazLXUTOO5sxVnyCk-BdfsYQZyWQ,4536
587
+ pyarrow/includes/libarrow_feather.pxd,sha256=MTJUDQbfKP8Ir700Fobl7xcbjX7WcrsUV4mxFXlfwn0,2140
588
+ pyarrow/includes/libarrow_flight.pxd,sha256=HNhM1PcKcFk1hmlbqIm1ocyv_EUb2B6jG9QwiGD1HF8,25111
589
+ pyarrow/includes/libarrow_fs.pxd,sha256=jG1sBGyTkU3X_XZKBMC-n3YsY8Po_2dIQdXyK9vXtHY,14973
590
+ pyarrow/includes/libarrow_python.pxd,sha256=Fs9hNJZ-_fdVmqkNu3zGRUXy8Azt6_zniX_p1SKqM64,12387
591
+ pyarrow/includes/libarrow_substrait.pxd,sha256=PtgwVFqsCQBzCHzK-VqhQOdTyU9J4SziQ_lnxRwChfs,4061
592
+ pyarrow/includes/libgandiva.pxd,sha256=FLBd99IeU67Db9SnHS7oe6FgBZ1aIHuRc0pOiDv7hQc,11538
593
+ pyarrow/includes/libparquet_encryption.pxd,sha256=fi3QrLpHN1_IaYRXvVMJdIgp7F_6aaLu1owP0I3BD5g,5898
594
+ pyarrow/interchange/__init__.py,sha256=DH0bwbKpdjD1WCW1VinnXEuVLY098uHKkirv7DFc9JM,845
595
+ pyarrow/interchange/__pycache__/__init__.cpython-312.pyc,,
596
+ pyarrow/interchange/__pycache__/buffer.cpython-312.pyc,,
597
+ pyarrow/interchange/__pycache__/column.cpython-312.pyc,,
598
+ pyarrow/interchange/__pycache__/dataframe.cpython-312.pyc,,
599
+ pyarrow/interchange/__pycache__/from_dataframe.cpython-312.pyc,,
600
+ pyarrow/interchange/buffer.py,sha256=NF_GU1uQ6INqHqCwzY6XQQqRxKDh6znEeDHiRqaEIQ0,3359
601
+ pyarrow/interchange/column.py,sha256=afU794n3H7yf4gDQDuFLbtyDlgVnLk9iZ6sugb0h8_4,19370
602
+ pyarrow/interchange/dataframe.py,sha256=tmSMmBvBAc-ZSUzE8tBNbvQLHuuxLuBkMkK6KYwtS8M,8405
603
+ pyarrow/interchange/from_dataframe.py,sha256=JfkP4wuY_9x76H6RDtmsOzs6B6qe-1WS7zxpKeD481s,19709
604
+ pyarrow/io.pxi,sha256=JJbw69rqeJ6Hj0s_HZeGuhO4lAbmJ6AcB3s8KywOa0I,86617
605
+ pyarrow/ipc.pxi,sha256=Reakb_rHbBipOr9QPEC0D2jBvQ87ORpVb5kasDdeY_4,41081
606
+ pyarrow/ipc.py,sha256=Hb3qCPKRr_wth5u4WrkZHJyAZmIK5SoVSezfBOI97Ww,10107
607
+ pyarrow/json.py,sha256=N9Y7_3TSrOEDy2OrmgQ8UKqUPMx1Bm9dYgot-brJ8Xw,858
608
+ pyarrow/jvm.py,sha256=tzAsIrMSCIeNAtSC8lZWjQS0rq7kjaQDPlePDmvpqDw,9593
609
+ pyarrow/lib.cpython-312-x86_64-linux-gnu.so,sha256=XgOUvSaAfGzzT5PJawvL8dYylMPLVvg89RM1eHIOr20,4916720
610
+ pyarrow/lib.h,sha256=aWAOSlSScduvc3gGO6aSAWcNBl2QECWEdQAZb6mIl_U,4631
611
+ pyarrow/lib.pxd,sha256=yeAGPAh5ydW-mgb8Ijaj_MJ0dzxhAuy4RF7gwVcYsBM,18383
612
+ pyarrow/lib.pyx,sha256=sObLt9zELSeQZkyL373L9yHo2quhly_uAhNIXzaS9fA,6080
613
+ pyarrow/lib_api.h,sha256=4oiKWmdhyjn5OxDSBamrukHpWwQbUioDR7X82dhgdXs,19487
614
+ pyarrow/libarrow.so.1900,sha256=_l0_Z0616aIG128DyxAbASe5gZ8Gdq6GnqULbMinrrQ,64745512
615
+ pyarrow/libarrow_acero.so.1900,sha256=aYN7gHqMT-tzpI_-RfeeYLlmXX4QLUAWT9oQ_j5KnTc,2113216
616
+ pyarrow/libarrow_dataset.so.1900,sha256=RKLP2312jQjn1L1y1qA1IQdBIno2mEk8jlJoUQIJHKM,2763416
617
+ pyarrow/libarrow_flight.so.1900,sha256=5qZGdzsArCxZH2wfABPXlbffm4_ghchb9xgJpdEVjWE,20274688
618
+ pyarrow/libarrow_python.so,sha256=2fYxXypU4z0tkerf0YA2df338IB-unTsqIi-xnFyHlA,2890824
619
+ pyarrow/libarrow_python.so.1900,sha256=2fYxXypU4z0tkerf0YA2df338IB-unTsqIi-xnFyHlA,2890824
620
+ pyarrow/libarrow_python.so.1900.1.0,sha256=2fYxXypU4z0tkerf0YA2df338IB-unTsqIi-xnFyHlA,2890824
621
+ pyarrow/libarrow_python_flight.so,sha256=Nd6p56-YzjfCaJaBWRyEBFt-nxGUFxTaGBxYTyPK1J0,118208
622
+ pyarrow/libarrow_python_flight.so.1900,sha256=Nd6p56-YzjfCaJaBWRyEBFt-nxGUFxTaGBxYTyPK1J0,118208
623
+ pyarrow/libarrow_python_flight.so.1900.1.0,sha256=Nd6p56-YzjfCaJaBWRyEBFt-nxGUFxTaGBxYTyPK1J0,118208
624
+ pyarrow/libarrow_python_parquet_encryption.so,sha256=IIYy08rsx__IxkUz6NPFFHkc1CH5EebGtMjlbnCQFFg,37432
625
+ pyarrow/libarrow_python_parquet_encryption.so.1900,sha256=IIYy08rsx__IxkUz6NPFFHkc1CH5EebGtMjlbnCQFFg,37432
626
+ pyarrow/libarrow_python_parquet_encryption.so.1900.1.0,sha256=IIYy08rsx__IxkUz6NPFFHkc1CH5EebGtMjlbnCQFFg,37432
627
+ pyarrow/libarrow_substrait.so.1900,sha256=iY-zFnKClxrS7Sle2LJDuxY5WBeRATj2w28-vIhRIVU,5346184
628
+ pyarrow/libparquet.so.1900,sha256=MkmXrEQlZK91cOIICmnBxDppwS2IHd_pMWfk0D2JRMo,11104016
629
+ pyarrow/memory.pxi,sha256=9AVMENxqaV0Ndf9tYSiakunEpMRRCZNT9d-PnrY8r14,8229
630
+ pyarrow/orc.py,sha256=IjjeGAEZl0KhHvwy3YsSGfTWlx7Ilb54P0tFKPvwcfk,12618
631
+ pyarrow/pandas-shim.pxi,sha256=LtVztf56Fhy7VzWwBuEBQbWUphezlby7AoSnPU9QSX8,8796
632
+ pyarrow/pandas_compat.py,sha256=rET2AFVwh90BjQAh4D0wgA0a8UJ6JluH7JPir2Z2_Go,45740
633
+ pyarrow/parquet/__init__.py,sha256=4W64CbvwvO60tG58nfNtyCwMVCfuPumtu82p-kiGPaE,822
634
+ pyarrow/parquet/__pycache__/__init__.cpython-312.pyc,,
635
+ pyarrow/parquet/__pycache__/core.cpython-312.pyc,,
636
+ pyarrow/parquet/__pycache__/encryption.cpython-312.pyc,,
637
+ pyarrow/parquet/core.py,sha256=SA1zMIm-0cnTPMCjgWe_Bu6bFbjBbTWBpfYauGcHpW8,90440
638
+ pyarrow/parquet/encryption.py,sha256=-XW7Qcbl-jQhpZsR610uQ8-z9ZVE_NL045Jdnp1TZ9M,1153
639
+ pyarrow/public-api.pxi,sha256=G6tk0gOWMBoQaQGo4lyp0OLSkqEZqMhB0z27MoQR3rU,14064
640
+ pyarrow/scalar.pxi,sha256=h0aq_Q1mJN7gCynehZfnt1maz5hmAyCPqCV857L_n-4,36603
641
+ pyarrow/src/arrow/python/CMakeLists.txt,sha256=D4Ypror_508aAd_juYkrS9Qu2maeirK4QXzwGEZEj0M,855
642
+ pyarrow/src/arrow/python/api.h,sha256=W76VAxYqOxi9BHJddji1B62CmaWDFuBhqI65YOhUnGQ,1222
643
+ pyarrow/src/arrow/python/arrow_to_pandas.cc,sha256=Ba4TDYQdWVSpeeZ_IY3-b6ZWOcnQmn3cvBeTDe9n7Y0,95354
644
+ pyarrow/src/arrow/python/arrow_to_pandas.h,sha256=jUBEUMKXw70oJdMlgkSf6HitaNweQcc7hxI75_C9WSI,5561
645
+ pyarrow/src/arrow/python/arrow_to_python_internal.h,sha256=nQXPZTL3xa4Sm-a-Gv-8bpFs-qAOZHkqWmA_m-dSLVw,1740
646
+ pyarrow/src/arrow/python/async.h,sha256=C0f8YYmgwBGgDau4xEFsdjukiZB4YvpylETHEZryHOo,2352
647
+ pyarrow/src/arrow/python/benchmark.cc,sha256=z6qYRx4qMuNXPaC8fuPJlQd92aosMN85u1aD50R1-UU,1293
648
+ pyarrow/src/arrow/python/benchmark.h,sha256=f-kzyMOlPKDse2bcLWhyMrDEMZrG_JHAPpDJgGW0bXU,1192
649
+ pyarrow/src/arrow/python/common.cc,sha256=_9ozIRo_WTDWovBKqOVyX28d0IttHvwW9MG-PkTzmKc,7591
650
+ pyarrow/src/arrow/python/common.h,sha256=yjljfJK1f7slZ7DBQ4LTo_pob70zioswJNWazy0p-uM,14412
651
+ pyarrow/src/arrow/python/csv.cc,sha256=ql5AY76AqiFksWsrmzSl551k5s9vS8YcmypM2A9rhw8,1803
652
+ pyarrow/src/arrow/python/csv.h,sha256=QxU3B-Hv_RsoEcMGS9-1434ugouL2ygC64Lq6FgviNM,1397
653
+ pyarrow/src/arrow/python/datetime.cc,sha256=_VKRKeyFqR7Xzay2wazcveb7mgOv8K37ebMomNY__lQ,23001
654
+ pyarrow/src/arrow/python/datetime.h,sha256=Bny_THGi2tyUeHxcOuw01O7hNE8B_gave5ABAZQtwTQ,7931
655
+ pyarrow/src/arrow/python/decimal.cc,sha256=Raz7kMa9N5y2gmSIM0XDkIUl6TTvWvKZquksawv0LN0,9592
656
+ pyarrow/src/arrow/python/decimal.h,sha256=K9ScmzSa7XCuuwpXKnq0GPbRDTuRU5yXfWr9zGtOchc,6362
657
+ pyarrow/src/arrow/python/deserialize.cc,sha256=ogtBX7OzGuDvyj_LepFkaG7m53-wenf3duG0WF8Ooa0,19185
658
+ pyarrow/src/arrow/python/deserialize.h,sha256=Q4L1qPCra8-Wzl6oLm44cPOUMVuK1FX01LeGzwNUtK4,4260
659
+ pyarrow/src/arrow/python/extension_type.cc,sha256=eU5P7pufWjcEcmVeOyu1jtEZ08AWd9tkTSMfx8ph0rQ,6860
660
+ pyarrow/src/arrow/python/extension_type.h,sha256=0gzb42y_mbw4fsYs3u8cwPFLBRlG-kkHQLgbvGtrY0U,3181
661
+ pyarrow/src/arrow/python/filesystem.cc,sha256=0twavI91TE20Otq5kkVUwnN5sindU_mBWoVAvz1ZMgI,6152
662
+ pyarrow/src/arrow/python/filesystem.h,sha256=FG0AcLekqaDf9IQPqKixAfIcY_ZLgIKP5NvvXdtBVUM,5126
663
+ pyarrow/src/arrow/python/flight.cc,sha256=j3tbzVopONkqHTg-gZ1q_-Wv8_l2AbrdNF5c9lvoESg,14092
664
+ pyarrow/src/arrow/python/flight.h,sha256=PzZhVa9DiT8GUB5_s5gXRBoYR9RLPq4Uy6QA7RRWOpo,14382
665
+ pyarrow/src/arrow/python/gdb.cc,sha256=Z0WLBYHWBzc4uExNG7nWJeRnUBAVSqo_DFpKYry0aAE,22667
666
+ pyarrow/src/arrow/python/gdb.h,sha256=H-qvM-nU8a_3Z5tk8PvppTwQtBMSZhQKQIVgRAsRfFg,972
667
+ pyarrow/src/arrow/python/helpers.cc,sha256=zrrUI56RGrZ8VBzR2dJFJoRq7L6chlX7289HK7tjoOA,16627
668
+ pyarrow/src/arrow/python/helpers.h,sha256=jVNFEbvJXmCceJti3J3-MnZkNlJoynQNq334tt29bbs,5489
669
+ pyarrow/src/arrow/python/inference.cc,sha256=Gm-lOXDzqcbef6gdgCQa5eXPuh8uvYqz9iUjKS2_yO4,24350
670
+ pyarrow/src/arrow/python/inference.h,sha256=FUFvB4Zy7V-tueXdmbDcqTeLK4xj5GZEeRW5yhiJlsU,2038
671
+ pyarrow/src/arrow/python/io.cc,sha256=ZARQCv4WQmHDQrA1dlNZt6mJuPhyK8wNuGm7zoL6V78,11936
672
+ pyarrow/src/arrow/python/io.h,sha256=4jGnodpSUlnVqAVh9fWId7H4WldlLPkXyroABpdaW6w,3858
673
+ pyarrow/src/arrow/python/ipc.cc,sha256=3D9iMbOFHlhNXX4432wsfbfjWvDryZWgdA0Ak19V_8Q,4472
674
+ pyarrow/src/arrow/python/ipc.h,sha256=SZbw6jCCqLiLNCY3k632GmwHeD_r_xrDS0dhqV49VhY,2259
675
+ pyarrow/src/arrow/python/iterators.h,sha256=Ugfm3JvetAH0l-oAjjpZfhrUBqRimVMaw4-xusvqLSg,7327
676
+ pyarrow/src/arrow/python/numpy_convert.cc,sha256=166BIW7zVTRMKogxLUuhV4e5jOevmonvRtXDydNujgc,21194
677
+ pyarrow/src/arrow/python/numpy_convert.h,sha256=y13eHwfe1lJKzadoTr2-GyX6xPsE6Z7FN31s7PN-2Rk,4870
678
+ pyarrow/src/arrow/python/numpy_init.cc,sha256=cJKOH946T7VCcB-gVIoGgfbWTrbj3FPkI4TgnsLTf7s,1178
679
+ pyarrow/src/arrow/python/numpy_init.h,sha256=FniVHP7W2YBlenoMYhQrODvoqqvDMSls2JANGtNPQts,999
680
+ pyarrow/src/arrow/python/numpy_internal.h,sha256=F9p-hzTKCIhRqgtZbsoyPox7RR85YcEw6FYkFF8KqfM,5314
681
+ pyarrow/src/arrow/python/numpy_interop.h,sha256=rI6ek8JTOYtjo7gEADSDBS6QuAOHa2A0YQPZ2GeypFw,3418
682
+ pyarrow/src/arrow/python/numpy_to_arrow.cc,sha256=55-VSQlg10MAZTR0G3I7maErexO8-FDk_27SYdvVlk8,30238
683
+ pyarrow/src/arrow/python/numpy_to_arrow.h,sha256=z9KapsuoOSpWILPt9bea7GR4BL6AQ28T6DUO0mSkh3k,2760
684
+ pyarrow/src/arrow/python/parquet_encryption.cc,sha256=RNupwaySaVHKX_iCYOPK0yJWkTUpqbrpbCW2duWJ3kU,3567
685
+ pyarrow/src/arrow/python/parquet_encryption.h,sha256=Mc8tZ8gIfkH0AckNiIOt6hesP_MVKeKhcytT24ZOLdQ,4861
686
+ pyarrow/src/arrow/python/pch.h,sha256=vkbgStQjq820YeHlXBPdzQ-W9LyzJrTGfMBpnMMqahk,1129
687
+ pyarrow/src/arrow/python/platform.h,sha256=XYS5IqiMUejxN2COzu60Zs8b_wAaGTBw4M-zKVqqs5U,1422
688
+ pyarrow/src/arrow/python/pyarrow.cc,sha256=Pul4lmF7n5Q9cSzgBSvPArWfZY_qDyAq1a_tyMIQGRA,3677
689
+ pyarrow/src/arrow/python/pyarrow.h,sha256=TK3BtD9n3QKOQ9dX3LXbQc0hu9alWcufV0O93iQW7B0,2761
690
+ pyarrow/src/arrow/python/pyarrow_api.h,sha256=7l0G4-_m9yALYoifsY8Z6qh3HHD0PgkpVSgCn_JaGU4,867
691
+ pyarrow/src/arrow/python/pyarrow_lib.h,sha256=-70_Ckj3_0ImlzaXSJOE_d3w9pGM66lXiGPyln9c96Y,863
692
+ pyarrow/src/arrow/python/python_test.cc,sha256=Jg35rRR7BtXOS1012RFOdLViFlVC3zlXV--w8aEzf8I,32397
693
+ pyarrow/src/arrow/python/python_test.h,sha256=ea32mM20uHySlygi9MtVxr26O-ydTZHCUQIlxaIMjT4,1195
694
+ pyarrow/src/arrow/python/python_to_arrow.cc,sha256=Ia4vNdbiZ7v5okvBKHmKmrXba7m5jWqkoakNVLSjJeA,47535
695
+ pyarrow/src/arrow/python/python_to_arrow.h,sha256=BoVytf6P7PBYXyznchElKZSFvEsFyimB-tLFdw0AUNo,2521
696
+ pyarrow/src/arrow/python/serialize.cc,sha256=FOAsdyfRETe_bCSxC1vc3-oq9Rs9SsU4kDQFTwrdvQM,32667
697
+ pyarrow/src/arrow/python/serialize.h,sha256=HVBhIKgc7A4YOmwYfjE2Hqj1Yxl9suCJb940KxrVcrs,4630
698
+ pyarrow/src/arrow/python/type_traits.h,sha256=B_NsRT_hZG8D91sTcihJyKF5SrslPcFmj12QfbpHuLI,10093
699
+ pyarrow/src/arrow/python/udf.cc,sha256=69DuHRjV6rUAbZqkWEKEUG3ODuHg9ym52lnH7A_lM5Y,29814
700
+ pyarrow/src/arrow/python/udf.h,sha256=de3R8PhNJO5lT9oCqRxe8e2_SE3jBpHOkwbNqCrlgjQ,3104
701
+ pyarrow/src/arrow/python/vendored/CMakeLists.txt,sha256=02XvDJAdKiajCEBOmnMKBpmzbRU7FPkNdlNXtw0-A24,837
702
+ pyarrow/src/arrow/python/vendored/pythoncapi_compat.h,sha256=bzMnlHTCfjk5DQRIxwytunYh5aQxU3iSElaaDyNnAY8,40900
703
+ pyarrow/src/arrow/python/visibility.h,sha256=hwJw5sGrWJckQkNaAuLe4Tf-VDjQbXknyzNOVgZI3FI,1381
704
+ pyarrow/substrait.py,sha256=yOMgCb-A5XW9t2DKgutRydDHpFvQkiNNq6ZIu0hIUB8,1230
705
+ pyarrow/table.pxi,sha256=TaThZeSXhoO_hAqGpxEFBVXfkeuea-ULMfdaVzzC7aU,205518
706
+ pyarrow/tensor.pxi,sha256=CXlMcTRWh_n_FTzIIx8SpHCmYlV0IBA69toQ-3Evs5o,42071
707
+ pyarrow/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
708
+ pyarrow/tests/__pycache__/__init__.cpython-312.pyc,,
709
+ pyarrow/tests/__pycache__/arrow_16597.cpython-312.pyc,,
710
+ pyarrow/tests/__pycache__/arrow_39313.cpython-312.pyc,,
711
+ pyarrow/tests/__pycache__/arrow_7980.cpython-312.pyc,,
712
+ pyarrow/tests/__pycache__/conftest.cpython-312.pyc,,
713
+ pyarrow/tests/__pycache__/pandas_examples.cpython-312.pyc,,
714
+ pyarrow/tests/__pycache__/pandas_threaded_import.cpython-312.pyc,,
715
+ pyarrow/tests/__pycache__/read_record_batch.cpython-312.pyc,,
716
+ pyarrow/tests/__pycache__/strategies.cpython-312.pyc,,
717
+ pyarrow/tests/__pycache__/test_acero.cpython-312.pyc,,
718
+ pyarrow/tests/__pycache__/test_adhoc_memory_leak.cpython-312.pyc,,
719
+ pyarrow/tests/__pycache__/test_array.cpython-312.pyc,,
720
+ pyarrow/tests/__pycache__/test_builder.cpython-312.pyc,,
721
+ pyarrow/tests/__pycache__/test_cffi.cpython-312.pyc,,
722
+ pyarrow/tests/__pycache__/test_compute.cpython-312.pyc,,
723
+ pyarrow/tests/__pycache__/test_convert_builtin.cpython-312.pyc,,
724
+ pyarrow/tests/__pycache__/test_cpp_internals.cpython-312.pyc,,
725
+ pyarrow/tests/__pycache__/test_csv.cpython-312.pyc,,
726
+ pyarrow/tests/__pycache__/test_cuda.cpython-312.pyc,,
727
+ pyarrow/tests/__pycache__/test_cuda_numba_interop.cpython-312.pyc,,
728
+ pyarrow/tests/__pycache__/test_cython.cpython-312.pyc,,
729
+ pyarrow/tests/__pycache__/test_dataset.cpython-312.pyc,,
730
+ pyarrow/tests/__pycache__/test_dataset_encryption.cpython-312.pyc,,
731
+ pyarrow/tests/__pycache__/test_deprecations.cpython-312.pyc,,
732
+ pyarrow/tests/__pycache__/test_device.cpython-312.pyc,,
733
+ pyarrow/tests/__pycache__/test_dlpack.cpython-312.pyc,,
734
+ pyarrow/tests/__pycache__/test_exec_plan.cpython-312.pyc,,
735
+ pyarrow/tests/__pycache__/test_extension_type.cpython-312.pyc,,
736
+ pyarrow/tests/__pycache__/test_feather.cpython-312.pyc,,
737
+ pyarrow/tests/__pycache__/test_flight.cpython-312.pyc,,
738
+ pyarrow/tests/__pycache__/test_flight_async.cpython-312.pyc,,
739
+ pyarrow/tests/__pycache__/test_fs.cpython-312.pyc,,
740
+ pyarrow/tests/__pycache__/test_gandiva.cpython-312.pyc,,
741
+ pyarrow/tests/__pycache__/test_gdb.cpython-312.pyc,,
742
+ pyarrow/tests/__pycache__/test_io.cpython-312.pyc,,
743
+ pyarrow/tests/__pycache__/test_ipc.cpython-312.pyc,,
744
+ pyarrow/tests/__pycache__/test_json.cpython-312.pyc,,
745
+ pyarrow/tests/__pycache__/test_jvm.cpython-312.pyc,,
746
+ pyarrow/tests/__pycache__/test_memory.cpython-312.pyc,,
747
+ pyarrow/tests/__pycache__/test_misc.cpython-312.pyc,,
748
+ pyarrow/tests/__pycache__/test_orc.cpython-312.pyc,,
749
+ pyarrow/tests/__pycache__/test_pandas.cpython-312.pyc,,
750
+ pyarrow/tests/__pycache__/test_scalars.cpython-312.pyc,,
751
+ pyarrow/tests/__pycache__/test_schema.cpython-312.pyc,,
752
+ pyarrow/tests/__pycache__/test_sparse_tensor.cpython-312.pyc,,
753
+ pyarrow/tests/__pycache__/test_strategies.cpython-312.pyc,,
754
+ pyarrow/tests/__pycache__/test_substrait.cpython-312.pyc,,
755
+ pyarrow/tests/__pycache__/test_table.cpython-312.pyc,,
756
+ pyarrow/tests/__pycache__/test_tensor.cpython-312.pyc,,
757
+ pyarrow/tests/__pycache__/test_types.cpython-312.pyc,,
758
+ pyarrow/tests/__pycache__/test_udf.cpython-312.pyc,,
759
+ pyarrow/tests/__pycache__/test_util.cpython-312.pyc,,
760
+ pyarrow/tests/__pycache__/test_without_numpy.cpython-312.pyc,,
761
+ pyarrow/tests/__pycache__/util.cpython-312.pyc,,
762
+ pyarrow/tests/__pycache__/wsgi_examples.cpython-312.pyc,,
763
+ pyarrow/tests/arrow_16597.py,sha256=DNb41h9E3ITGvAJJu86i5SfsKrwstQJ0E5gT_bpTS_k,1354
764
+ pyarrow/tests/arrow_39313.py,sha256=0pyBixoX38fldTPO1Vwshi_H0XBACrz8esYoL4o71KI,1431
765
+ pyarrow/tests/arrow_7980.py,sha256=tZKb_tRLfxHaosDk9Yu2GLEsJjMaruXD5CKhbK_6Hq8,1094
766
+ pyarrow/tests/bound_function_visit_strings.pyx,sha256=vDEFoNYR8BWNkCntKDuBUT8sXNRBex_5G2bFKogr1Bs,2026
767
+ pyarrow/tests/conftest.py,sha256=JvdZgiYNJNeE6yLVyRFOoGjVbfrl4c-kAlEPzBIiGM8,10500
768
+ pyarrow/tests/data/feather/v0.17.0.version.2-compression.lz4.feather,sha256=qzcc7Bo4OWBXYsyyKdDJwdTRstMqB1Zz0GiGYtndBnE,594
769
+ pyarrow/tests/data/orc/README.md,sha256=_4X5XszZqQtWAVEz5N1Va4VyyayGQgNDKrcdMX2Ib4s,932
770
+ pyarrow/tests/data/orc/TestOrcFile.emptyFile.jsn.gz,sha256=xLjAXd-3scx3DCyeAsmxTO3dv1cj9KRvYopKe5rQNiI,50
771
+ pyarrow/tests/data/orc/TestOrcFile.emptyFile.orc,sha256=zj0579dQBXhF7JuB-ZphkmQ81ybLo6Ca4zPV4HXoImY,523
772
+ pyarrow/tests/data/orc/TestOrcFile.test1.jsn.gz,sha256=kLxmwMVHtfzpHqBztFjfY_PTCloaXpfHq9DDDszb8Wk,323
773
+ pyarrow/tests/data/orc/TestOrcFile.test1.orc,sha256=A4JxgMCffTkz9-XT1QT1tg2TlYZRRz1g7iIMmqzovqA,1711
774
+ pyarrow/tests/data/orc/TestOrcFile.testDate1900.jsn.gz,sha256=oWf7eBR3ZtOA91OTvdeQJYos1an56msGsJwhGOan3lo,182453
775
+ pyarrow/tests/data/orc/TestOrcFile.testDate1900.orc,sha256=nYsVYhUGGOL80gHj37si_vX0dh8QhIMSeU4sHjNideM,30941
776
+ pyarrow/tests/data/orc/decimal.jsn.gz,sha256=kTEyYdPDAASFUX8Niyry5mRDF-Y-LsrhSAjbu453mvA,19313
777
+ pyarrow/tests/data/orc/decimal.orc,sha256=W5cV2WdLy4OrSTnd_Qv5ntphG4TcB-MyG4UpRFwSxJY,16337
778
+ pyarrow/tests/data/parquet/v0.7.1.all-named-index.parquet,sha256=YPGUXtw-TsOPbiNDieZHobNp3or7nHhAxJGjmIDAyqE,3948
779
+ pyarrow/tests/data/parquet/v0.7.1.column-metadata-handling.parquet,sha256=7sebZgpfdcP37QksT3FhDL6vOA9gR6GBaq44NCVtOYw,2012
780
+ pyarrow/tests/data/parquet/v0.7.1.parquet,sha256=vmdzhIzpBbmRkq3Gjww7KqurfSFNtQuSpSIDeQVmqys,4372
781
+ pyarrow/tests/data/parquet/v0.7.1.some-named-index.parquet,sha256=VGgSjqihCRtdBxlUcfP5s3BSR7aUQKukW-bGgJLf_HY,4008
782
+ pyarrow/tests/extensions.pyx,sha256=05S652zNGxwMFwuyMbP0RP4VNJLSMlzvoxH8iYIvSNk,3054
783
+ pyarrow/tests/interchange/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
784
+ pyarrow/tests/interchange/__pycache__/__init__.cpython-312.pyc,,
785
+ pyarrow/tests/interchange/__pycache__/test_conversion.cpython-312.pyc,,
786
+ pyarrow/tests/interchange/__pycache__/test_interchange_spec.cpython-312.pyc,,
787
+ pyarrow/tests/interchange/test_conversion.py,sha256=23e5tpKBL-ekA5uWpM6-f6HVPF937Hnzfune0Ty9moo,18609
788
+ pyarrow/tests/interchange/test_interchange_spec.py,sha256=5hwwCG6f7yf72PfUG0iLIk2bARsZU5EJeRjDxSQrkKI,9320
789
+ pyarrow/tests/pandas_examples.py,sha256=RFKCW-Rn0Qz-ncd4pZWWSeUoPq63kemE3lFiVdv2dBs,5115
790
+ pyarrow/tests/pandas_threaded_import.py,sha256=b_ubLr5dj4dWJht9552qc3S3Yt3fQQgaUH6208oZvHg,1429
791
+ pyarrow/tests/parquet/__init__.py,sha256=dKsXU9M-sJyz2wYIuqwsKM9meOlK_qY6qhmQzIvEpCE,931
792
+ pyarrow/tests/parquet/__pycache__/__init__.cpython-312.pyc,,
793
+ pyarrow/tests/parquet/__pycache__/common.cpython-312.pyc,,
794
+ pyarrow/tests/parquet/__pycache__/conftest.cpython-312.pyc,,
795
+ pyarrow/tests/parquet/__pycache__/encryption.cpython-312.pyc,,
796
+ pyarrow/tests/parquet/__pycache__/test_basic.cpython-312.pyc,,
797
+ pyarrow/tests/parquet/__pycache__/test_compliant_nested_type.cpython-312.pyc,,
798
+ pyarrow/tests/parquet/__pycache__/test_data_types.cpython-312.pyc,,
799
+ pyarrow/tests/parquet/__pycache__/test_dataset.cpython-312.pyc,,
800
+ pyarrow/tests/parquet/__pycache__/test_datetime.cpython-312.pyc,,
801
+ pyarrow/tests/parquet/__pycache__/test_encryption.cpython-312.pyc,,
802
+ pyarrow/tests/parquet/__pycache__/test_metadata.cpython-312.pyc,,
803
+ pyarrow/tests/parquet/__pycache__/test_pandas.cpython-312.pyc,,
804
+ pyarrow/tests/parquet/__pycache__/test_parquet_file.cpython-312.pyc,,
805
+ pyarrow/tests/parquet/__pycache__/test_parquet_writer.cpython-312.pyc,,
806
+ pyarrow/tests/parquet/common.py,sha256=-kckaOVj9P9BvL1vlvyHlsPUtysBoAYVL98Nwc9wmGo,5894
807
+ pyarrow/tests/parquet/conftest.py,sha256=mJNQal0VYsGFhHglhSt-F9CYHy_i8hB8MXaq3SxFBvk,3082
808
+ pyarrow/tests/parquet/encryption.py,sha256=Oi3QbixApvWGoGImiW7PAjR28cTQqlRXZKMI3O7E4UY,2521
809
+ pyarrow/tests/parquet/test_basic.py,sha256=SdLPuZ02NaBUEtpr18SzA90I7pK-WRMM1r3ApbQI5ps,36492
810
+ pyarrow/tests/parquet/test_compliant_nested_type.py,sha256=Lz7tCPrSpv9GrKPMS-eu1LehsCTwz7KdUdCYJ8tF8dE,3901
811
+ pyarrow/tests/parquet/test_data_types.py,sha256=YIHx23xY5GLuJ2BhVb4OarHs1K29oRbQE-igfzMESoc,16080
812
+ pyarrow/tests/parquet/test_dataset.py,sha256=UhjjQGO2kki9Q50zush0VGU3OMXHZncL_3uEQse4Lx8,42218
813
+ pyarrow/tests/parquet/test_datetime.py,sha256=A3ZaRj88u0IrlhCNp2KY_A8txrb7y2pKPgEVvI7e7bU,16398
814
+ pyarrow/tests/parquet/test_encryption.py,sha256=XMVlIcEurlzcPN2rlaNqbdZbGhF9hjz5ZhWY5Bz4Fxo,22099
815
+ pyarrow/tests/parquet/test_metadata.py,sha256=0sbEUEEal4dEczJHk77KzCk3q9P_1JD61Ayw6HBXFzo,27158
816
+ pyarrow/tests/parquet/test_pandas.py,sha256=dXXcaRBZXIt2HervJLC1gCxDLlhxu6MM_M3gxcaV1Rw,22821
817
+ pyarrow/tests/parquet/test_parquet_file.py,sha256=xm5ZUCf5xmpKh7s5nTIrEiis53mfv2NqZWVRiYOTfAg,9909
818
+ pyarrow/tests/parquet/test_parquet_writer.py,sha256=xwedRwRYtw5n_OMhLPGnJurcvlo4ooROsSalYL-ZVCM,11733
819
+ pyarrow/tests/pyarrow_cython_example.pyx,sha256=fx6zT1bUb2-cDnwKoG71K3ozpmrNJ53kKQHHJTExGz8,2115
820
+ pyarrow/tests/read_record_batch.py,sha256=9Y0X0h03hUXwOKZz7jBBZSwgIrjxT-FkWIw6pu38Frc,953
821
+ pyarrow/tests/strategies.py,sha256=ksEfxpT9Bn89V5pj9Xt2WgIAdDhqTMAqfrONozhBXSs,14226
822
+ pyarrow/tests/test_acero.py,sha256=jgSkIAGhrVffShaD0ZAm50sY-f4u9jfjCimK8ezUbbA,15003
823
+ pyarrow/tests/test_adhoc_memory_leak.py,sha256=Pn4PcIbOBRtSJuz9Ar_ocubco0QOMZ-eAE9Bs7Wp4mA,1453
824
+ pyarrow/tests/test_array.py,sha256=rBp6X77MyM1H7RZjSqqANMqfdV_JoeVOH24g6tI0dF8,140539
825
+ pyarrow/tests/test_builder.py,sha256=zNEcslLwyb40oYbG7lInQcI81QHMKDOzi1zthw1Je7c,2803
826
+ pyarrow/tests/test_cffi.py,sha256=Fbs1dFCxdnvXYLgO5oaxm_h8KV3vefE9jc3nI1JZNxw,26385
827
+ pyarrow/tests/test_compute.py,sha256=F8E03IdPEhGBMseLb2OsRt_zb90DFeIBj-6OQ4-9Wq8,143316
828
+ pyarrow/tests/test_convert_builtin.py,sha256=Hh1Ti08oBBPXfEQ-196rH_LjHYGvuzyxVDu54lKsGm0,80992
829
+ pyarrow/tests/test_cpp_internals.py,sha256=Xg4CUB6zohQkcYG64Lj_Uf2BscI27Vv0JC_CqNkDQuE,2006
830
+ pyarrow/tests/test_csv.py,sha256=GKNYAGis5TsiDJMIu0L6bH2_cIOpWDviRwxCfPN9Pv8,77313
831
+ pyarrow/tests/test_cuda.py,sha256=qCbVbYOokzpEef-e0_Fus36xQR9Y---9MLCYquI3shE,36163
832
+ pyarrow/tests/test_cuda_numba_interop.py,sha256=iHP_FE4sWbsKwNNXRcYnVozp3Wd1o0Mg6BDymx710G4,8794
833
+ pyarrow/tests/test_cython.py,sha256=IJVELKXBD89xoCcxscMfUpwvkk9SL_kNT4cccLjDww4,7115
834
+ pyarrow/tests/test_dataset.py,sha256=hvVGYRUpqk42DQvpJ4AHrNwkH-zgw4Gzj-npd1TqtkU,212891
835
+ pyarrow/tests/test_dataset_encryption.py,sha256=mA8ipIlOBSA4eKc6xnRz-IFyM7fu_kIQ5FV2r4vE2rs,7593
836
+ pyarrow/tests/test_deprecations.py,sha256=W_rneq4jC6zqCNoGhBDf1F28Q-0LHI7YKLgtsbV6LHM,891
837
+ pyarrow/tests/test_device.py,sha256=qe9Wiwo-XVazt9pdxyqQJUz6fNR0jTs9CHiyaoppNA4,2550
838
+ pyarrow/tests/test_dlpack.py,sha256=kknsGN0BsmfALJeb8F9Wr4--3rZOaqkZKQwLTjCwgpE,4968
839
+ pyarrow/tests/test_exec_plan.py,sha256=pjOkSaWeqjN6celKxUEH3tBGXLh8kKbmSSsvKOWsbQQ,10096
840
+ pyarrow/tests/test_extension_type.py,sha256=DnlYadsbh0LniL9szlrWIXR-OOTQKCp3f-v2iyBRWlc,67422
841
+ pyarrow/tests/test_feather.py,sha256=UciZ-CHwiQcXZkJDNfHElEzcDjv10yRzLAg8kar35Xs,25235
842
+ pyarrow/tests/test_flight.py,sha256=IY513fq087F27zUVVV5flCYRangN7N_tQp8VRpu3X80,92326
843
+ pyarrow/tests/test_flight_async.py,sha256=kP2wIrUz1HIbrr4CE0SxSg4Zc56ta3xX6EdibAI2yVM,2848
844
+ pyarrow/tests/test_fs.py,sha256=n-RuiqvfK9zWkmmuhHLSZp3v5pRR1f258YKB6R5DsdI,65418
845
+ pyarrow/tests/test_gandiva.py,sha256=AEf9ln-j5MmIMQ0JTQPhnZwbNh82ynSURsWPaKaNing,15623
846
+ pyarrow/tests/test_gdb.py,sha256=OJzMfZtev3YOKJBm2QxnE-q-9-exy2JLhxpiVhY3T_0,44938
847
+ pyarrow/tests/test_io.py,sha256=T9Vdg1rPGjdAp7nd5U9TAc3mN0N4oWvlG-F8TKmMVS4,63768
848
+ pyarrow/tests/test_ipc.py,sha256=JPW2Q3pXKi8Y4adbCkpGZeNjdP8C6Ot1TqapinKeO_Q,42746
849
+ pyarrow/tests/test_json.py,sha256=DwLaNDKlr_HosnT_hDJW2lB3pBhctkVzJ25EezPa23A,13236
850
+ pyarrow/tests/test_jvm.py,sha256=pIrHUgnDdmwDoLgM2TFvdgfcEJTGtBGsPgzYIRU6jYY,15507
851
+ pyarrow/tests/test_memory.py,sha256=3ZJrdf2t9joaozoXolwY4425H80x1smR3LXLbKpFUCY,8866
852
+ pyarrow/tests/test_misc.py,sha256=A4_0gQ7VisziNelWa78loDsWQ79Y6_Z5XSM7R1IzJA8,7325
853
+ pyarrow/tests/test_orc.py,sha256=tihT87eP8MF24CDH3FMCH7vFd1Iq8i8kr7H8_UjRgQA,21184
854
+ pyarrow/tests/test_pandas.py,sha256=nCM-F3Kp_2RZjREq76tQSYQJcUZDmo5O7e84odoTEjs,192049
855
+ pyarrow/tests/test_scalars.py,sha256=cKsl6QSB68aKTcHRI_sVXXonA-OgIOrkGjW3iAEIDT4,27654
856
+ pyarrow/tests/test_schema.py,sha256=MiwSK5EOY5UKAydoGqjAbZQNFlv5oRI4givLYHV52EI,21871
857
+ pyarrow/tests/test_sparse_tensor.py,sha256=6Hp-X6PLqcUzTZCRSB-TyaAWR7ZyWf5YsWuZgixmd64,17500
858
+ pyarrow/tests/test_strategies.py,sha256=HEL8T94h8VyukGKNRVAW_RyQ3m36REc2P4q2BQZ_PfY,1811
859
+ pyarrow/tests/test_substrait.py,sha256=rsLPNlDPDAxZ1OIu-LAINSD4q_UZJhOvtTzPfXjrWM8,32223
860
+ pyarrow/tests/test_table.py,sha256=RObVx2lqIFd36GwAyPenXXUxVwUagGPmImij9-cYFqU,121752
861
+ pyarrow/tests/test_tensor.py,sha256=LYSEYGUjtdnsbL0WAir9jFindo-r0bLySiDA1uAXL8E,6643
862
+ pyarrow/tests/test_types.py,sha256=Vc8vp_9xG-o1PFLpALrZTi6HcU6eDqWd7CYmTOElpAA,43838
863
+ pyarrow/tests/test_udf.py,sha256=WA9E5skUqh7uMr_zH3rQ11LRx0SK2G3WO8HjVHGWyQY,29792
864
+ pyarrow/tests/test_util.py,sha256=ozTlooHBMOP3nbX5b3dG2aanrXwxXHx1giicm0QQyPM,5030
865
+ pyarrow/tests/test_without_numpy.py,sha256=ysbB-jML318I04ViQT4Ok7iMg1cI-NU8kguPu-FTSl4,1855
866
+ pyarrow/tests/util.py,sha256=YeH8RovBtKY4L1SJqcOOObEZx0Yf6HSpkkq4xJdKL5U,13275
867
+ pyarrow/tests/wsgi_examples.py,sha256=vQIDb5989sRVLsELw-fRHhfX-dE96sTl5J2lEuEKup8,1348
868
+ pyarrow/types.pxi,sha256=JnuyyzuJbxOuu1DFpxm9_wFoRZIYN19AmmKNb1sBoMM,166489
869
+ pyarrow/types.py,sha256=M-fGpHFc-OyTDT_IiG_9l5PO2H7A2iynbiSxk6Zv8bM,7492
870
+ pyarrow/util.py,sha256=ARlwfZFK6sMKGNG2V9HcG0EC0LGHHImB9AMhoWUI4nI,8640
871
+ pyarrow/vendored/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
872
+ pyarrow/vendored/__pycache__/__init__.cpython-312.pyc,,
873
+ pyarrow/vendored/__pycache__/docscrape.cpython-312.pyc,,
874
+ pyarrow/vendored/__pycache__/version.cpython-312.pyc,,
875
+ pyarrow/vendored/docscrape.py,sha256=phTjwuzoO5hB88QerZk3uGu9c5OrZwjFzI7vEIIbCUQ,22975
876
+ pyarrow/vendored/version.py,sha256=5-Vo4Q3kPJrm1DSGusnMlTxuA8ynI4hAryApBd6MnpQ,14345
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/WHEEL ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (72.1.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-manylinux_2_28_x86_64
5
+
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pyarrow-19.0.1.dist-info/top_level.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ __dummy__
2
+ pyarrow
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ This software is made available under the terms of *either* of the
2
+ licenses found in LICENSE.APACHE2 or LICENSE.MIT. Contributions to are
3
+ made under the terms of *both* these licenses.
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ The MIT License (MIT)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/METADATA ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: sniffio
3
+ Version: 1.3.1
4
+ Summary: Sniff out which async library your code is running under
5
+ Author-email: "Nathaniel J. Smith" <njs@pobox.com>
6
+ License: MIT OR Apache-2.0
7
+ Project-URL: Homepage, https://github.com/python-trio/sniffio
8
+ Project-URL: Documentation, https://sniffio.readthedocs.io/
9
+ Project-URL: Changelog, https://sniffio.readthedocs.io/en/latest/history.html
10
+ Keywords: async,trio,asyncio
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: License :: OSI Approved :: Apache Software License
13
+ Classifier: Framework :: Trio
14
+ Classifier: Framework :: AsyncIO
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Operating System :: MacOS :: MacOS X
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: Implementation :: CPython
20
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
21
+ Classifier: Intended Audience :: Developers
22
+ Classifier: Development Status :: 5 - Production/Stable
23
+ Requires-Python: >=3.7
24
+ Description-Content-Type: text/x-rst
25
+ License-File: LICENSE
26
+ License-File: LICENSE.APACHE2
27
+ License-File: LICENSE.MIT
28
+
29
+ .. image:: https://img.shields.io/badge/chat-join%20now-blue.svg
30
+ :target: https://gitter.im/python-trio/general
31
+ :alt: Join chatroom
32
+
33
+ .. image:: https://img.shields.io/badge/docs-read%20now-blue.svg
34
+ :target: https://sniffio.readthedocs.io/en/latest/?badge=latest
35
+ :alt: Documentation Status
36
+
37
+ .. image:: https://img.shields.io/pypi/v/sniffio.svg
38
+ :target: https://pypi.org/project/sniffio
39
+ :alt: Latest PyPi version
40
+
41
+ .. image:: https://img.shields.io/conda/vn/conda-forge/sniffio.svg
42
+ :target: https://anaconda.org/conda-forge/sniffio
43
+ :alt: Latest conda-forge version
44
+
45
+ .. image:: https://travis-ci.org/python-trio/sniffio.svg?branch=master
46
+ :target: https://travis-ci.org/python-trio/sniffio
47
+ :alt: Automated test status
48
+
49
+ .. image:: https://codecov.io/gh/python-trio/sniffio/branch/master/graph/badge.svg
50
+ :target: https://codecov.io/gh/python-trio/sniffio
51
+ :alt: Test coverage
52
+
53
+ =================================================================
54
+ sniffio: Sniff out which async library your code is running under
55
+ =================================================================
56
+
57
+ You're writing a library. You've decided to be ambitious, and support
58
+ multiple async I/O packages, like `Trio
59
+ <https://trio.readthedocs.io>`__, and `asyncio
60
+ <https://docs.python.org/3/library/asyncio.html>`__, and ... You've
61
+ written a bunch of clever code to handle all the differences. But...
62
+ how do you know *which* piece of clever code to run?
63
+
64
+ This is a tiny package whose only purpose is to let you detect which
65
+ async library your code is running under.
66
+
67
+ * Documentation: https://sniffio.readthedocs.io
68
+
69
+ * Bug tracker and source code: https://github.com/python-trio/sniffio
70
+
71
+ * License: MIT or Apache License 2.0, your choice
72
+
73
+ * Contributor guide: https://trio.readthedocs.io/en/latest/contributing.html
74
+
75
+ * Code of conduct: Contributors are requested to follow our `code of
76
+ conduct
77
+ <https://trio.readthedocs.io/en/latest/code-of-conduct.html>`_
78
+ in all project spaces.
79
+
80
+ This library is maintained by the Trio project, as a service to the
81
+ async Python community as a whole.
82
+
83
+
84
+ Quickstart
85
+ ----------
86
+
87
+ .. code-block:: python3
88
+
89
+ from sniffio import current_async_library
90
+ import trio
91
+ import asyncio
92
+
93
+ async def print_library():
94
+ library = current_async_library()
95
+ print("This is:", library)
96
+
97
+ # Prints "This is trio"
98
+ trio.run(print_library)
99
+
100
+ # Prints "This is asyncio"
101
+ asyncio.run(print_library())
102
+
103
+ For more details, including how to add support to new async libraries,
104
+ `please peruse our fine manual <https://sniffio.readthedocs.io>`__.
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/RECORD ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ sniffio-1.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ sniffio-1.3.1.dist-info/LICENSE,sha256=ZSyHhIjRRWNh4Iw_hgf9e6WYkqFBA9Fczk_5PIW1zIs,185
3
+ sniffio-1.3.1.dist-info/LICENSE.APACHE2,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
4
+ sniffio-1.3.1.dist-info/LICENSE.MIT,sha256=Pm2uVV65J4f8gtHUg1Vnf0VMf2Wus40_nnK_mj2vA0s,1046
5
+ sniffio-1.3.1.dist-info/METADATA,sha256=CzGLVwmO3sz1heYKiJprantcQIbzqapi7_dqHTzuEtk,3875
6
+ sniffio-1.3.1.dist-info/RECORD,,
7
+ sniffio-1.3.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
8
+ sniffio-1.3.1.dist-info/top_level.txt,sha256=v9UJXGs5CyddCVeAqXkQiWOrpp6Wtx6GeRrPt9-jjHg,8
9
+ sniffio/__init__.py,sha256=9WJEJlXu7yluP0YtI5SQ9M9OTQfbNHkadarK1vXGDPM,335
10
+ sniffio/__pycache__/__init__.cpython-312.pyc,,
11
+ sniffio/__pycache__/_impl.cpython-312.pyc,,
12
+ sniffio/__pycache__/_version.cpython-312.pyc,,
13
+ sniffio/_impl.py,sha256=UmUFMZpiuOrcjnuHhuYiYMxeCNWfqu9kBlaPf0xk6X8,2843
14
+ sniffio/_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ sniffio/_tests/__pycache__/__init__.cpython-312.pyc,,
16
+ sniffio/_tests/__pycache__/test_sniffio.cpython-312.pyc,,
17
+ sniffio/_tests/test_sniffio.py,sha256=MMJZZJjQrUi95RANNM-a_55BZquA_gv4rHU1pevcTCM,2058
18
+ sniffio/_version.py,sha256=iVes5xwsHeRzQDexBaAhyx_taNt2ucfA7CWAo4QDt6Q,89
19
+ sniffio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.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-any
5
+
Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/top_level.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ sniffio