sitcod3 commited on
Commit
afb67d1
·
verified ·
1 Parent(s): 2374b97

Upload folder using huggingface_hub (part 7)

Browse files
venv/Lib/site-packages/ruff-0.16.9.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
venv/Lib/site-packages/ruff-0.16.9.dist-info/METADATA ADDED
@@ -0,0 +1,483 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.4
2
+ Name: ruff
3
+ Version: 0.16.9
4
+ Classifier: Development Status :: 5 - Production/Stable
5
+ Classifier: Environment :: Console
6
+ Classifier: Intended Audience :: Developers
7
+ Classifier: Operating System :: OS Independent
8
+ Classifier: Programming Language :: Python
9
+ Classifier: Programming Language :: Python :: 3.7
10
+ Classifier: Programming Language :: Python :: 3.8
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Rust
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Topic :: Software Development :: Quality Assurance
21
+ License-File: LICENSE
22
+ Summary: An extremely fast Python linter and code formatter, written in Rust.
23
+ Keywords: automation,flake8,pycodestyle,pyflakes,pylint,clippy
24
+ Home-Page: https://docs.astral.sh/ruff
25
+ Author-email: "Astral Software Inc." <hey@astral.sh>
26
+ License-Expression: MIT
27
+ Requires-Python: >=3.7
28
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
29
+ Project-URL: Changelog, https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md
30
+ Project-URL: Documentation, https://docs.astral.sh/ruff/
31
+ Project-URL: Repository, https://github.com/astral-sh/ruff
32
+
33
+ <!-- Begin section: Overview -->
34
+
35
+ # Ruff
36
+
37
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
38
+ [![image](https://img.shields.io/pypi/v/ruff.svg)](https://pypi.python.org/pypi/ruff)
39
+ [![image](https://img.shields.io/pypi/l/ruff.svg)](https://github.com/astral-sh/ruff/blob/main/LICENSE)
40
+ [![image](https://img.shields.io/pypi/pyversions/ruff.svg)](https://pypi.python.org/pypi/ruff)
41
+ [![Actions status](https://github.com/astral-sh/ruff/workflows/CI/badge.svg)](https://github.com/astral-sh/ruff/actions)
42
+ [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.com/invite/astral-sh)
43
+
44
+ [**Docs**](https://docs.astral.sh/ruff/) | [**Playground**](https://play.ruff.rs/)
45
+
46
+ An extremely fast Python linter and code formatter, written in Rust.
47
+
48
+ <p align="center">
49
+ <img alt="Shows a bar chart with benchmark results." src="https://user-images.githubusercontent.com/1309177/232603516-4fb4892d-585c-4b20-b810-3db9161831e4.svg">
50
+ </p>
51
+
52
+ <p align="center">
53
+ <i>Linting the CPython codebase from scratch.</i>
54
+ </p>
55
+
56
+ - ⚡️ 10-100x faster than existing linters (like Flake8) and formatters (like Black)
57
+ - 🐍 Installable via `pip`
58
+ - 🛠️ `pyproject.toml` support
59
+ - 🤝 Python 3.14 compatibility
60
+ - ⚖️ Drop-in parity with [Flake8](https://docs.astral.sh/ruff/faq/#how-does-ruffs-linter-compare-to-flake8), [isort](https://docs.astral.sh/ruff/faq/#how-does-ruffs-import-sorting-compare-to-isort), and [Black](https://docs.astral.sh/ruff/faq/#how-does-ruffs-formatter-compare-to-black)
61
+ - 📦 Built-in caching, to avoid re-analyzing unchanged files
62
+ - 🔧 Fix support, for automatic error correction (e.g., automatically remove unused imports)
63
+ - 📏 Over [900 built-in rules](https://docs.astral.sh/ruff/rules/), with native re-implementations
64
+ of popular Flake8 plugins, like flake8-bugbear
65
+ - ⌨️ First-party [editor integrations](https://docs.astral.sh/ruff/editors) for [VS Code](https://github.com/astral-sh/ruff-vscode) and [more](https://docs.astral.sh/ruff/editors/setup)
66
+ - 🌎 Monorepo-friendly, with [hierarchical and cascading configuration](https://docs.astral.sh/ruff/configuration/#config-file-discovery)
67
+
68
+ Ruff aims to be orders of magnitude faster than alternative tools while integrating more
69
+ functionality behind a single, common interface.
70
+
71
+ Ruff can be used to replace [Flake8](https://pypi.org/project/flake8/) (plus dozens of plugins),
72
+ [Black](https://github.com/psf/black), [isort](https://pypi.org/project/isort/),
73
+ [pydocstyle](https://pypi.org/project/pydocstyle/), [pyupgrade](https://pypi.org/project/pyupgrade/),
74
+ [autoflake](https://pypi.org/project/autoflake/), and more, all while executing tens or hundreds of
75
+ times faster than any individual tool.
76
+
77
+ Ruff is extremely actively developed and used in major open-source projects like:
78
+
79
+ - [Apache Airflow](https://github.com/apache/airflow)
80
+ - [Apache Superset](https://github.com/apache/superset)
81
+ - [FastAPI](https://github.com/tiangolo/fastapi)
82
+ - [Hugging Face](https://github.com/huggingface/transformers)
83
+ - [Pandas](https://github.com/pandas-dev/pandas)
84
+ - [SciPy](https://github.com/scipy/scipy)
85
+
86
+ Ruff is backed by [Astral](https://astral.sh), the creators of
87
+ [uv](https://github.com/astral-sh/uv) and [ty](https://github.com/astral-sh/ty).
88
+
89
+ Read the [launch
90
+ post](https://astral.sh/blog/announcing-astral-the-company-behind-ruff), or the
91
+ original [project
92
+ announcement](https://notes.crmarsh.com/python-tooling-could-be-much-much-faster).
93
+
94
+ ## Testimonials
95
+
96
+ [**Sebastián Ramírez**](https://twitter.com/tiangolo/status/1591912354882764802), creator
97
+ of [FastAPI](https://github.com/tiangolo/fastapi):
98
+
99
+ > Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually
100
+ > running and checking the code.
101
+
102
+ [**Nick Schrock**](https://twitter.com/schrockn/status/1612615862904827904), founder of [Elementl](https://www.elementl.com/),
103
+ co-creator of [GraphQL](https://graphql.org/):
104
+
105
+ > Why is Ruff a gamechanger? Primarily because it is nearly 1000x faster. Literally. Not a typo. On
106
+ > our largest module (dagster itself, 250k LOC) pylint takes about 2.5 minutes, parallelized across 4
107
+ > cores on my M1. Running ruff against our _entire_ codebase takes .4 seconds.
108
+
109
+ [**Bryan Van de Ven**](https://github.com/bokeh/bokeh/pull/12605), co-creator
110
+ of [Bokeh](https://github.com/bokeh/bokeh/), original author
111
+ of [Conda](https://docs.conda.io/en/latest/):
112
+
113
+ > Ruff is ~150-200x faster than flake8 on my machine, scanning the whole repo takes ~0.2s instead of
114
+ > ~20s. This is an enormous quality of life improvement for local dev. It's fast enough that I added
115
+ > it as an actual commit hook, which is terrific.
116
+
117
+ [**Timothy Crosley**](https://twitter.com/timothycrosley/status/1606420868514877440),
118
+ creator of [isort](https://github.com/PyCQA/isort):
119
+
120
+ > Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe
121
+ > it was working till I intentionally introduced some errors.
122
+
123
+ [**Tim Abbott**](https://github.com/zulip/zulip/pull/23431#issuecomment-1302557034), lead developer of [Zulip](https://github.com/zulip/zulip) (also [here](https://github.com/astral-sh/ruff/issues/465#issuecomment-1317400028)):
124
+
125
+ > This is just ridiculously fast... `ruff` is amazing.
126
+
127
+ <!-- End section: Overview -->
128
+
129
+ ## Table of Contents
130
+
131
+ For more, see the [documentation](https://docs.astral.sh/ruff/).
132
+
133
+ 1. [Getting Started](#getting-started)
134
+ 1. [Configuration](#configuration)
135
+ 1. [Rules](#rules)
136
+ 1. [Contributing](#contributing)
137
+ 1. [Support](#support)
138
+ 1. [Acknowledgements](#acknowledgements)
139
+ 1. [Show Your Support](#show-your-support)
140
+ 1. [License](#license)
141
+
142
+ ## Getting Started<a id="getting-started"></a>
143
+
144
+ For more, see the [documentation](https://docs.astral.sh/ruff/).
145
+
146
+ ### Installation
147
+
148
+ Ruff is available as [`ruff`](https://pypi.org/project/ruff/) on PyPI.
149
+
150
+ Invoke Ruff directly with [`uvx`](https://docs.astral.sh/uv/):
151
+
152
+ ```shell
153
+ uvx ruff@0.16.9 check # Lint all files in the current directory.
154
+ uvx ruff@0.16.9 format # Format all files in the current directory.
155
+ ```
156
+
157
+ Or install Ruff with `uv` (recommended), `pip`, or `pipx`:
158
+
159
+ ```shell
160
+ # With uv.
161
+ uv tool install ruff@latest # Install Ruff globally.
162
+ uv add --dev ruff # Or add Ruff to your project.
163
+
164
+ # With pip.
165
+ pip install ruff
166
+
167
+ # With pipx.
168
+ pipx install ruff
169
+ ```
170
+
171
+ Starting with version `0.5.0`, Ruff can be installed with our standalone installers:
172
+
173
+ ```shell
174
+ # On macOS and Linux.
175
+ curl -LsSf https://astral.sh/ruff/install.sh | sh
176
+
177
+ # On Windows.
178
+ powershell -c "irm https://astral.sh/ruff/install.ps1 | iex"
179
+
180
+ # For a specific version.
181
+ curl -LsSf https://astral.sh/ruff/0.16.9/install.sh | sh
182
+ powershell -c "irm https://astral.sh/ruff/0.16.9/install.ps1 | iex"
183
+ ```
184
+
185
+ You can also install Ruff via [Homebrew](https://formulae.brew.sh/formula/ruff), [Conda](https://anaconda.org/conda-forge/ruff),
186
+ and with [a variety of other package managers](https://docs.astral.sh/ruff/installation/).
187
+
188
+ ### Usage
189
+
190
+ To run Ruff as a linter, try any of the following:
191
+
192
+ ```shell
193
+ ruff check # Lint all files in the current directory (and any subdirectories).
194
+ ruff check path/to/code/ # Lint all files in `/path/to/code` (and any subdirectories).
195
+ ruff check path/to/code/*.py # Lint all `.py` files in `/path/to/code`.
196
+ ruff check path/to/code/to/file.py # Lint `file.py`.
197
+ ruff check @arguments.txt # Lint using an input file, treating its contents as newline-delimited command-line arguments.
198
+ ```
199
+
200
+ Or, to run Ruff as a formatter:
201
+
202
+ ```shell
203
+ ruff format # Format all files in the current directory (and any subdirectories).
204
+ ruff format path/to/code/ # Format all files in `/path/to/code` (and any subdirectories).
205
+ ruff format path/to/code/*.py # Format all `.py` files in `/path/to/code`.
206
+ ruff format path/to/code/to/file.py # Format `file.py`.
207
+ ruff format @arguments.txt # Format using an input file, treating its contents as newline-delimited command-line arguments.
208
+ ```
209
+
210
+ Ruff can also be used as a [pre-commit](https://pre-commit.com/) hook via [`ruff-pre-commit`](https://github.com/astral-sh/ruff-pre-commit):
211
+
212
+ ```yaml
213
+ - repo: https://github.com/astral-sh/ruff-pre-commit
214
+ # Ruff version.
215
+ rev: v0.16.9
216
+ hooks:
217
+ # Run the linter.
218
+ - id: ruff-check
219
+ args: [ --fix ]
220
+ # Run the formatter.
221
+ - id: ruff-format
222
+ ```
223
+
224
+ Ruff can also be used as a [VS Code extension](https://github.com/astral-sh/ruff-vscode) or with [various other editors](https://docs.astral.sh/ruff/editors/setup).
225
+
226
+ Ruff can also be used as a [GitHub Action](https://github.com/features/actions) via
227
+ [`ruff-action`](https://github.com/astral-sh/ruff-action):
228
+
229
+ ```yaml
230
+ name: Ruff
231
+ on: [ push, pull_request ]
232
+ jobs:
233
+ ruff:
234
+ runs-on: ubuntu-latest
235
+ steps:
236
+ - uses: actions/checkout@v4
237
+ - uses: astral-sh/ruff-action@v3
238
+ ```
239
+
240
+ ### Configuration<a id="configuration"></a>
241
+
242
+ Ruff can be configured through a `pyproject.toml`, `ruff.toml`, or `.ruff.toml` file (see:
243
+ [_Configuration_](https://docs.astral.sh/ruff/configuration/), or [_Settings_](https://docs.astral.sh/ruff/settings/)
244
+ for a complete list of all configuration options).
245
+
246
+ For the complete list of enabled rules, see [_Default Rules_](https://docs.astral.sh/ruff/default-rules/).
247
+
248
+ If left unspecified, Ruff's default configuration is equivalent to the following `ruff.toml` file:
249
+
250
+ ```toml
251
+ # Exclude a variety of commonly ignored directories.
252
+ exclude = [
253
+ ".bzr",
254
+ ".direnv",
255
+ ".eggs",
256
+ ".git",
257
+ ".git-rewrite",
258
+ ".hg",
259
+ ".ipynb_checkpoints",
260
+ ".mypy_cache",
261
+ ".nox",
262
+ ".pants.d",
263
+ ".pyenv",
264
+ ".pytest_cache",
265
+ ".pytype",
266
+ ".ruff_cache",
267
+ ".svn",
268
+ ".tox",
269
+ ".venv",
270
+ ".vscode",
271
+ "__pypackages__",
272
+ "_build",
273
+ "buck-out",
274
+ "build",
275
+ "dist",
276
+ "node_modules",
277
+ "site-packages",
278
+ "venv",
279
+ ]
280
+
281
+ # Same as Black.
282
+ line-length = 88
283
+ indent-width = 4
284
+
285
+ # Assume Python 3.10
286
+ target-version = "py310"
287
+
288
+ [lint]
289
+ # select = [...] # See the Default Rules page for the full listing.
290
+ ignore = []
291
+
292
+ # Allow fix for all enabled rules (when `--fix`) is provided.
293
+ fixable = ["ALL"]
294
+ unfixable = []
295
+
296
+ # Allow unused variables when underscore-prefixed.
297
+ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
298
+
299
+ [format]
300
+ # Like Black, use double quotes for strings.
301
+ quote-style = "double"
302
+
303
+ # Like Black, indent with spaces, rather than tabs.
304
+ indent-style = "space"
305
+
306
+ # Like Black, respect magic trailing commas.
307
+ skip-magic-trailing-comma = false
308
+
309
+ # Like Black, automatically detect the appropriate line ending.
310
+ line-ending = "auto"
311
+ ```
312
+
313
+ Note that, in a `pyproject.toml`, each section header should be prefixed with `tool.ruff`. For
314
+ example, `[lint]` should be replaced with `[tool.ruff.lint]`.
315
+
316
+ Some configuration options can be provided via dedicated command-line arguments, such as those
317
+ related to rule enablement and disablement, file discovery, and logging level:
318
+
319
+ ```shell
320
+ ruff check --select F401 --select F403 --quiet
321
+ ```
322
+
323
+ The remaining configuration options can be provided through a catch-all `--config` argument:
324
+
325
+ ```shell
326
+ ruff check --config "lint.per-file-ignores = {'some_file.py' = ['F841']}"
327
+ ```
328
+
329
+ To opt in to the latest lint rules, formatter style changes, interface updates, and more, enable
330
+ [preview mode](https://docs.astral.sh/ruff/preview/) by setting `preview = true` in your configuration
331
+ file or passing `--preview` on the command line. Preview mode enables a collection of unstable
332
+ features that may change prior to stabilization.
333
+
334
+ See `ruff help` for more on Ruff's top-level commands, or `ruff help check` and `ruff help format`
335
+ for more on the linting and formatting commands, respectively.
336
+
337
+ ## Rules<a id="rules"></a>
338
+
339
+ <!-- Begin section: Rules -->
340
+
341
+ **Ruff supports over 900 lint rules**, many of which are inspired by popular tools like Flake8,
342
+ isort, pyupgrade, and others. Regardless of the rule's origin, Ruff re-implements every rule in
343
+ Rust as a first-party feature.
344
+
345
+ By default, Ruff enables rules from the `F`, `E`, `B`, `UP`, and `RUF` categories,
346
+ as well as many more, omitting any stylistic rules that overlap with the use of a formatter, like
347
+ `ruff format` or [Black](https://github.com/psf/black).
348
+
349
+ If you're just getting started with Ruff, **the default rule set is a great place to start**: it
350
+ catches a wide variety of common errors (like unused imports) with zero configuration. See
351
+ [_Default Rules_](https://docs.astral.sh/ruff/default-rules/) for the complete list.
352
+
353
+ <!-- End section: Rules -->
354
+
355
+ Beyond the defaults, Ruff re-implements some of the most popular Flake8 plugins and related code
356
+ quality tools, including:
357
+
358
+ - [autoflake](https://pypi.org/project/autoflake/)
359
+ - [eradicate](https://pypi.org/project/eradicate/)
360
+ - [flake8-2020](https://pypi.org/project/flake8-2020/)
361
+ - [flake8-annotations](https://pypi.org/project/flake8-annotations/)
362
+ - [flake8-async](https://pypi.org/project/flake8-async)
363
+ - [flake8-bandit](https://pypi.org/project/flake8-bandit/) ([#1646](https://github.com/astral-sh/ruff/issues/1646))
364
+ - [flake8-blind-except](https://pypi.org/project/flake8-blind-except/)
365
+ - [flake8-boolean-trap](https://pypi.org/project/flake8-boolean-trap/)
366
+ - [flake8-bugbear](https://pypi.org/project/flake8-bugbear/)
367
+ - [flake8-builtins](https://pypi.org/project/flake8-builtins/)
368
+ - [flake8-commas](https://pypi.org/project/flake8-commas/)
369
+ - [flake8-comprehensions](https://pypi.org/project/flake8-comprehensions/)
370
+ - [flake8-copyright](https://pypi.org/project/flake8-copyright/)
371
+ - [flake8-datetimez](https://pypi.org/project/flake8-datetimez/)
372
+ - [flake8-debugger](https://pypi.org/project/flake8-debugger/)
373
+ - [flake8-django](https://pypi.org/project/flake8-django/)
374
+ - [flake8-docstrings](https://pypi.org/project/flake8-docstrings/)
375
+ - [flake8-eradicate](https://pypi.org/project/flake8-eradicate/)
376
+ - [flake8-errmsg](https://pypi.org/project/flake8-errmsg/)
377
+ - [flake8-executable](https://pypi.org/project/flake8-executable/)
378
+ - [flake8-future-annotations](https://pypi.org/project/flake8-future-annotations/)
379
+ - [flake8-gettext](https://pypi.org/project/flake8-gettext/)
380
+ - [flake8-implicit-str-concat](https://pypi.org/project/flake8-implicit-str-concat/)
381
+ - [flake8-import-conventions](https://github.com/joaopalmeiro/flake8-import-conventions)
382
+ - [flake8-logging](https://pypi.org/project/flake8-logging/)
383
+ - [flake8-logging-format](https://pypi.org/project/flake8-logging-format/)
384
+ - [flake8-no-pep420](https://pypi.org/project/flake8-no-pep420)
385
+ - [flake8-pie](https://pypi.org/project/flake8-pie/)
386
+ - [flake8-print](https://pypi.org/project/flake8-print/)
387
+ - [flake8-pyi](https://pypi.org/project/flake8-pyi/)
388
+ - [flake8-pytest-style](https://pypi.org/project/flake8-pytest-style/)
389
+ - [flake8-quotes](https://pypi.org/project/flake8-quotes/)
390
+ - [flake8-raise](https://pypi.org/project/flake8-raise/)
391
+ - [flake8-return](https://pypi.org/project/flake8-return/)
392
+ - [flake8-self](https://pypi.org/project/flake8-self/)
393
+ - [flake8-simplify](https://pypi.org/project/flake8-simplify/)
394
+ - [flake8-slots](https://pypi.org/project/flake8-slots/)
395
+ - [flake8-super](https://pypi.org/project/flake8-super/)
396
+ - [flake8-tidy-imports](https://pypi.org/project/flake8-tidy-imports/)
397
+ - [flake8-todos](https://pypi.org/project/flake8-todos/)
398
+ - [flake8-type-checking](https://pypi.org/project/flake8-type-checking/)
399
+ - [flake8-use-pathlib](https://pypi.org/project/flake8-use-pathlib/)
400
+ - [flynt](https://pypi.org/project/flynt/) ([#2102](https://github.com/astral-sh/ruff/issues/2102))
401
+ - [isort](https://pypi.org/project/isort/)
402
+ - [mccabe](https://pypi.org/project/mccabe/)
403
+ - [pandas-vet](https://pypi.org/project/pandas-vet/)
404
+ - [pep8-naming](https://pypi.org/project/pep8-naming/)
405
+ - [pydocstyle](https://pypi.org/project/pydocstyle/)
406
+ - [pygrep-hooks](https://github.com/pre-commit/pygrep-hooks)
407
+ - [pylint-airflow](https://pypi.org/project/pylint-airflow/)
408
+ - [pyupgrade](https://pypi.org/project/pyupgrade/)
409
+ - [tryceratops](https://pypi.org/project/tryceratops/)
410
+ - [yesqa](https://pypi.org/project/yesqa/)
411
+
412
+ For a complete enumeration of the supported rules, see [_Rules_](https://docs.astral.sh/ruff/rules/).
413
+
414
+ ## Contributing<a id="contributing"></a>
415
+
416
+ Contributions are welcome and highly appreciated. To get started, check out the
417
+ [**contributing guidelines**](https://docs.astral.sh/ruff/contributing/).
418
+
419
+ You can also join us on [**Discord**](https://discord.com/invite/astral-sh).
420
+
421
+ ## Support<a id="support"></a>
422
+
423
+ Having trouble? Check out the existing issues on [**GitHub**](https://github.com/astral-sh/ruff/issues),
424
+ or feel free to [**open a new one**](https://github.com/astral-sh/ruff/issues/new).
425
+
426
+ You can also ask for help on [**Discord**](https://discord.com/invite/astral-sh).
427
+
428
+ ## Acknowledgements<a id="acknowledgements"></a>
429
+
430
+ Ruff's linter draws on both the APIs and implementation details of many other
431
+ tools in the Python ecosystem, especially [Flake8](https://github.com/PyCQA/flake8), [Pyflakes](https://github.com/PyCQA/pyflakes),
432
+ [pycodestyle](https://github.com/PyCQA/pycodestyle), [pydocstyle](https://github.com/PyCQA/pydocstyle),
433
+ [pyupgrade](https://github.com/asottile/pyupgrade), and [isort](https://github.com/PyCQA/isort).
434
+
435
+ In some cases, Ruff includes a "direct" Rust port of the corresponding tool.
436
+ We're grateful to the maintainers of these tools for their work, and for all
437
+ the value they've provided to the Python community.
438
+
439
+ Ruff's formatter is built on a fork of Rome's [`rome_formatter`](https://github.com/rome/tools/tree/main/crates/rome_formatter),
440
+ and again draws on both API and implementation details from [Rome](https://github.com/rome/tools),
441
+ [Prettier](https://github.com/prettier/prettier), and [Black](https://github.com/psf/black).
442
+
443
+ Ruff's import resolver is based on the import resolution algorithm from [Pyright](https://github.com/microsoft/pyright).
444
+
445
+ Ruff is also influenced by a number of tools outside the Python ecosystem, like
446
+ [Clippy](https://github.com/rust-lang/rust-clippy) and [ESLint](https://github.com/eslint/eslint).
447
+
448
+ Ruff is the beneficiary of a large number of [contributors](https://github.com/astral-sh/ruff/graphs/contributors).
449
+
450
+ Ruff is released under the MIT license.
451
+
452
+ ## Show Your Support
453
+
454
+ If you're using Ruff, consider adding the Ruff badge to your project's `README.md`:
455
+
456
+ ```md
457
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
458
+ ```
459
+
460
+ ...or `README.rst`:
461
+
462
+ ```rst
463
+ .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
464
+ :target: https://github.com/astral-sh/ruff
465
+ :alt: Ruff
466
+ ```
467
+
468
+ ...or, as HTML:
469
+
470
+ ```html
471
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff" style="max-width:100%;"></a>
472
+ ```
473
+
474
+ ## License<a id="license"></a>
475
+
476
+ This repository is licensed under the [MIT License](https://github.com/astral-sh/ruff/blob/main/LICENSE)
477
+
478
+ <div align="center">
479
+ <a target="_blank" href="https://astral.sh" style="background:none">
480
+ <img src="https://raw.githubusercontent.com/astral-sh/ruff/main/assets/svg/Astral.svg" alt="Made by Astral">
481
+ </a>
482
+ </div>
483
+
venv/Lib/site-packages/ruff-0.16.9.dist-info/RECORD ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ../../Scripts/ruff.exe,sha256=h_EC-aS6CHz6qOyk9b4zUmPW3fQSAfn9qWy9Juo7dGc,26428928
2
+ ruff-0.16.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
3
+ ruff-0.16.9.dist-info/METADATA,sha256=lPWPAsbbHH8KWB10XDyGD_flI5GlupIkaV-kyioMlJs,21205
4
+ ruff-0.16.9.dist-info/RECORD,,
5
+ ruff-0.16.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ ruff-0.16.9.dist-info/WHEEL,sha256=2zDlIYIdD4m4N3p5DVEG3iJhGLdhsBQgdH-FqVkAur8,94
7
+ ruff-0.16.9.dist-info/licenses/LICENSE,sha256=JZfYVBIrd93HGXFWTKI1CjdghXXOMkrcVlCisgUcjxg,20731
8
+ ruff-0.16.9.dist-info/sboms/ruff.cyclonedx.json,sha256=WV8LxcydE9b4Jgw_2qmY6mgY7ejtyryRhVp0Bmx63rs,417420
9
+ ruff/__init__.py,sha256=66in9yDSCiYhREjuxLSvAc_g5xf2p3PYcEAeBswQhC0,103
10
+ ruff/__main__.py,sha256=8o3628yJs3FaKnMjNfPmlbWxYJcI155LOprC-A5Vd00,547
11
+ ruff/__pycache__/__init__.cpython-314.pyc,,
12
+ ruff/__pycache__/__main__.cpython-314.pyc,,
13
+ ruff/__pycache__/_find_ruff.cpython-314.pyc,,
14
+ ruff/_find_ruff.py,sha256=JNxoKJXkqiSkmVrTCJ_sv4Ol0SwMBcozEe3W67bb0io,3250
venv/Lib/site-packages/ruff-0.16.9.dist-info/REQUESTED ADDED
File without changes
venv/Lib/site-packages/ruff-0.16.9.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.14.1)
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64
venv/Lib/site-packages/ruff-0.16.9.dist-info/licenses/LICENSE ADDED
@@ -0,0 +1,430 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Charles Marsh
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ end of terms and conditions
24
+
25
+ The externally maintained libraries from which parts of the Software is derived
26
+ are:
27
+
28
+ - autoflake, licensed as follows:
29
+ """
30
+ Copyright (C) 2012-2018 Steven Myint
31
+
32
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
33
+ this software and associated documentation files (the "Software"), to deal in
34
+ the Software without restriction, including without limitation the rights to
35
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
36
+ of the Software, and to permit persons to whom the Software is furnished to do
37
+ so, subject to the following conditions:
38
+
39
+ The above copyright notice and this permission notice shall be included in all
40
+ copies or substantial portions of the Software.
41
+
42
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
44
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
45
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
46
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
47
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
48
+ SOFTWARE.
49
+ """
50
+
51
+ - autotyping, licensed as follows:
52
+ """
53
+ MIT License
54
+
55
+ Copyright (c) 2023 Jelle Zijlstra
56
+
57
+ Permission is hereby granted, free of charge, to any person obtaining a copy
58
+ of this software and associated documentation files (the "Software"), to deal
59
+ in the Software without restriction, including without limitation the rights
60
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
61
+ copies of the Software, and to permit persons to whom the Software is
62
+ furnished to do so, subject to the following conditions:
63
+
64
+ The above copyright notice and this permission notice shall be included in all
65
+ copies or substantial portions of the Software.
66
+
67
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
68
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
69
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
70
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
71
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
72
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
73
+ SOFTWARE.
74
+ """
75
+
76
+ - Flake8, licensed as follows:
77
+ """
78
+ == Flake8 License (MIT) ==
79
+
80
+ Copyright (C) 2011-2013 Tarek Ziade <tarek@ziade.org>
81
+ Copyright (C) 2012-2016 Ian Cordasco <graffatcolmingov@gmail.com>
82
+
83
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
84
+ this software and associated documentation files (the "Software"), to deal in
85
+ the Software without restriction, including without limitation the rights to
86
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
87
+ of the Software, and to permit persons to whom the Software is furnished to do
88
+ so, subject to the following conditions:
89
+
90
+ The above copyright notice and this permission notice shall be included in all
91
+ copies or substantial portions of the Software.
92
+
93
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
94
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
95
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
96
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
97
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
98
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
99
+ SOFTWARE.
100
+ """
101
+
102
+ - flake8-eradicate, licensed as follows:
103
+ """
104
+ MIT License
105
+
106
+ Copyright (c) 2018 Nikita Sobolev
107
+
108
+ Permission is hereby granted, free of charge, to any person obtaining a copy
109
+ of this software and associated documentation files (the "Software"), to deal
110
+ in the Software without restriction, including without limitation the rights
111
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
112
+ copies of the Software, and to permit persons to whom the Software is
113
+ furnished to do so, subject to the following conditions:
114
+
115
+ The above copyright notice and this permission notice shall be included in all
116
+ copies or substantial portions of the Software.
117
+
118
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
119
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
120
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
121
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
122
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
123
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
124
+ SOFTWARE.
125
+ """
126
+
127
+ - flake8-pyi, licensed as follows:
128
+ """
129
+ The MIT License (MIT)
130
+
131
+ Copyright (c) 2016 Łukasz Langa
132
+
133
+ Permission is hereby granted, free of charge, to any person obtaining a copy
134
+ of this software and associated documentation files (the "Software"), to deal
135
+ in the Software without restriction, including without limitation the rights
136
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
137
+ copies of the Software, and to permit persons to whom the Software is
138
+ furnished to do so, subject to the following conditions:
139
+
140
+ The above copyright notice and this permission notice shall be included in all
141
+ copies or substantial portions of the Software.
142
+
143
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
144
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
145
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
146
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
147
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
148
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
149
+ SOFTWARE.
150
+ """
151
+
152
+ - flake8-simplify, licensed as follows:
153
+ """
154
+ MIT License
155
+
156
+ Copyright (c) 2020 Martin Thoma
157
+
158
+ Permission is hereby granted, free of charge, to any person obtaining a copy
159
+ of this software and associated documentation files (the "Software"), to deal
160
+ in the Software without restriction, including without limitation the rights
161
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
162
+ copies of the Software, and to permit persons to whom the Software is
163
+ furnished to do so, subject to the following conditions:
164
+
165
+ The above copyright notice and this permission notice shall be included in all
166
+ copies or substantial portions of the Software.
167
+
168
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
169
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
170
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
171
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
172
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
173
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
174
+ SOFTWARE.
175
+ """
176
+
177
+ - isort, licensed as follows:
178
+ """
179
+ The MIT License (MIT)
180
+
181
+ Copyright (c) 2013 Timothy Edmund Crosley
182
+
183
+ Permission is hereby granted, free of charge, to any person obtaining a copy
184
+ of this software and associated documentation files (the "Software"), to deal
185
+ in the Software without restriction, including without limitation the rights
186
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
187
+ copies of the Software, and to permit persons to whom the Software is
188
+ furnished to do so, subject to the following conditions:
189
+
190
+ The above copyright notice and this permission notice shall be included in
191
+ all copies or substantial portions of the Software.
192
+
193
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
194
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
195
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
196
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
197
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
198
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
199
+ THE SOFTWARE.
200
+ """
201
+
202
+ - pygrep-hooks, licensed as follows:
203
+ """
204
+ Copyright (c) 2018 Anthony Sottile
205
+
206
+ Permission is hereby granted, free of charge, to any person obtaining a copy
207
+ of this software and associated documentation files (the "Software"), to deal
208
+ in the Software without restriction, including without limitation the rights
209
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
210
+ copies of the Software, and to permit persons to whom the Software is
211
+ furnished to do so, subject to the following conditions:
212
+
213
+ The above copyright notice and this permission notice shall be included in
214
+ all copies or substantial portions of the Software.
215
+
216
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
217
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
218
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
219
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
220
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
221
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
222
+ THE SOFTWARE.
223
+ """
224
+
225
+ - pycodestyle, licensed as follows:
226
+ """
227
+ Copyright © 2006-2009 Johann C. Rocholl <johann@rocholl.net>
228
+ Copyright © 2009-2014 Florent Xicluna <florent.xicluna@gmail.com>
229
+ Copyright © 2014-2020 Ian Lee <IanLee1521@gmail.com>
230
+
231
+ Licensed under the terms of the Expat License
232
+
233
+ Permission is hereby granted, free of charge, to any person
234
+ obtaining a copy of this software and associated documentation files
235
+ (the "Software"), to deal in the Software without restriction,
236
+ including without limitation the rights to use, copy, modify, merge,
237
+ publish, distribute, sublicense, and/or sell copies of the Software,
238
+ and to permit persons to whom the Software is furnished to do so,
239
+ subject to the following conditions:
240
+
241
+ The above copyright notice and this permission notice shall be
242
+ included in all copies or substantial portions of the Software.
243
+
244
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
245
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
246
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
247
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
248
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
249
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
250
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
251
+ SOFTWARE.
252
+ """
253
+
254
+ - pydocstyle, licensed as follows:
255
+ """
256
+ Copyright (c) 2012 GreenSteam, <http://greensteam.dk/>
257
+
258
+ Copyright (c) 2014-2020 Amir Rachum, <http://amir.rachum.com/>
259
+
260
+ Copyright (c) 2020 Sambhav Kothari, <https://github.com/samj1912>
261
+
262
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
263
+ this software and associated documentation files (the "Software"), to deal in
264
+ the Software without restriction, including without limitation the rights to
265
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
266
+ of the Software, and to permit persons to whom the Software is furnished to do
267
+ so, subject to the following conditions:
268
+
269
+ The above copyright notice and this permission notice shall be included in all
270
+ copies or substantial portions of the Software.
271
+
272
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
273
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
274
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
275
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
276
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
277
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
278
+ SOFTWARE.
279
+ """
280
+
281
+ - Pyflakes, licensed as follows:
282
+ """
283
+ Copyright 2005-2011 Divmod, Inc.
284
+ Copyright 2013-2014 Florent Xicluna
285
+
286
+ Permission is hereby granted, free of charge, to any person obtaining
287
+ a copy of this software and associated documentation files (the
288
+ "Software"), to deal in the Software without restriction, including
289
+ without limitation the rights to use, copy, modify, merge, publish,
290
+ distribute, sublicense, and/or sell copies of the Software, and to
291
+ permit persons to whom the Software is furnished to do so, subject to
292
+ the following conditions:
293
+
294
+ The above copyright notice and this permission notice shall be
295
+ included in all copies or substantial portions of the Software.
296
+
297
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
298
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
299
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
300
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
301
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
302
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
303
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
304
+ """
305
+
306
+ - Pyright, licensed as follows:
307
+ """
308
+ MIT License
309
+
310
+ Pyright - A static type checker for the Python language
311
+ Copyright (c) Microsoft Corporation. All rights reserved.
312
+
313
+ Permission is hereby granted, free of charge, to any person obtaining a copy
314
+ of this software and associated documentation files (the "Software"), to deal
315
+ in the Software without restriction, including without limitation the rights
316
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
317
+ copies of the Software, and to permit persons to whom the Software is
318
+ furnished to do so, subject to the following conditions:
319
+
320
+ The above copyright notice and this permission notice shall be included in all
321
+ copies or substantial portions of the Software.
322
+
323
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
324
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
325
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
326
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
327
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
328
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
329
+ SOFTWARE
330
+ """
331
+
332
+ - pyupgrade, licensed as follows:
333
+ """
334
+ Copyright (c) 2017 Anthony Sottile
335
+
336
+ Permission is hereby granted, free of charge, to any person obtaining a copy
337
+ of this software and associated documentation files (the "Software"), to deal
338
+ in the Software without restriction, including without limitation the rights
339
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
340
+ copies of the Software, and to permit persons to whom the Software is
341
+ furnished to do so, subject to the following conditions:
342
+
343
+ The above copyright notice and this permission notice shall be included in
344
+ all copies or substantial portions of the Software.
345
+
346
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
347
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
348
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
349
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
350
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
351
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
352
+ THE SOFTWARE.
353
+ """
354
+
355
+ - rome/tools, licensed under the MIT license:
356
+ """
357
+ MIT License
358
+
359
+ Copyright (c) Rome Tools, Inc. and its affiliates.
360
+
361
+ Permission is hereby granted, free of charge, to any person obtaining a copy
362
+ of this software and associated documentation files (the "Software"), to deal
363
+ in the Software without restriction, including without limitation the rights
364
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
365
+ copies of the Software, and to permit persons to whom the Software is
366
+ furnished to do so, subject to the following conditions:
367
+
368
+ The above copyright notice and this permission notice shall be included in all
369
+ copies or substantial portions of the Software.
370
+
371
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
372
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
373
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
374
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
375
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
376
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
377
+ SOFTWARE.
378
+ """
379
+
380
+ - RustPython, licensed as follows:
381
+ """
382
+ MIT License
383
+
384
+ Copyright (c) 2020 RustPython Team
385
+
386
+ Permission is hereby granted, free of charge, to any person obtaining a copy
387
+ of this software and associated documentation files (the "Software"), to deal
388
+ in the Software without restriction, including without limitation the rights
389
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
390
+ copies of the Software, and to permit persons to whom the Software is
391
+ furnished to do so, subject to the following conditions:
392
+
393
+ The above copyright notice and this permission notice shall be included in all
394
+ copies or substantial portions of the Software.
395
+
396
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
397
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
398
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
399
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
400
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
401
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
402
+ SOFTWARE.
403
+ """
404
+
405
+ - rust-analyzer/text-size, licensed under the MIT license:
406
+ """
407
+ Permission is hereby granted, free of charge, to any
408
+ person obtaining a copy of this software and associated
409
+ documentation files (the "Software"), to deal in the
410
+ Software without restriction, including without
411
+ limitation the rights to use, copy, modify, merge,
412
+ publish, distribute, sublicense, and/or sell copies of
413
+ the Software, and to permit persons to whom the Software
414
+ is furnished to do so, subject to the following
415
+ conditions:
416
+
417
+ The above copyright notice and this permission notice
418
+ shall be included in all copies or substantial portions
419
+ of the Software.
420
+
421
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
422
+ ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
423
+ TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
424
+ PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
425
+ SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
426
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
427
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
428
+ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
429
+ DEALINGS IN THE SOFTWARE.
430
+ """
venv/Lib/site-packages/ruff-0.16.9.dist-info/sboms/ruff.cyclonedx.json ADDED
The diff for this file is too large to render. See raw diff
 
venv/Lib/site-packages/ruff/__init__.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ from ._find_ruff import find_ruff_bin
4
+
5
+ __all__ = ["find_ruff_bin"]
venv/Lib/site-packages/ruff/__main__.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import sys
5
+
6
+ from ruff import find_ruff_bin
7
+
8
+
9
+ def _run() -> None:
10
+ ruff = find_ruff_bin()
11
+
12
+ if sys.platform == "win32":
13
+ import subprocess
14
+
15
+ # Avoid emitting a traceback on interrupt
16
+ try:
17
+ completed_process = subprocess.run([ruff, *sys.argv[1:]], check=False)
18
+ except KeyboardInterrupt:
19
+ sys.exit(2)
20
+
21
+ sys.exit(completed_process.returncode)
22
+ else:
23
+ os.execvp(ruff, [ruff, *sys.argv[1:]])
24
+
25
+
26
+ if __name__ == "__main__":
27
+ _run()
venv/Lib/site-packages/ruff/_find_ruff.py ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import sys
5
+ import sysconfig
6
+
7
+
8
+ class RuffNotFound(FileNotFoundError): ...
9
+
10
+
11
+ def find_ruff_bin() -> str:
12
+ """Return the ruff binary path."""
13
+
14
+ ruff_exe = "ruff" + sysconfig.get_config_var("EXE")
15
+
16
+ targets = [
17
+ # The scripts directory for the current Python
18
+ sysconfig.get_path("scripts"),
19
+ # The scripts directory for the base prefix
20
+ sysconfig.get_path("scripts", vars={"base": sys.base_prefix}),
21
+ # Above the package root, e.g., from `pip install --prefix` or `uv run --with`
22
+ (
23
+ # On Windows, with module path `<prefix>/Lib/site-packages/ruff`
24
+ _join(
25
+ _matching_parents(_module_path(), "Lib/site-packages/ruff"), "Scripts"
26
+ )
27
+ if sys.platform == "win32"
28
+ # On Unix, with module path `<prefix>/lib/python3.13/site-packages/ruff`
29
+ else _join(
30
+ _matching_parents(_module_path(), "lib/python*/site-packages/ruff"),
31
+ "bin",
32
+ )
33
+ ),
34
+ # Adjacent to the package root, e.g., from `pip install --target`
35
+ # with module path `<target>/ruff`
36
+ _join(_matching_parents(_module_path(), "ruff"), "bin"),
37
+ # The user scheme scripts directory, e.g., `~/.local/bin`
38
+ sysconfig.get_path("scripts", scheme=_user_scheme()),
39
+ ]
40
+
41
+ seen = []
42
+ for target in targets:
43
+ if not target:
44
+ continue
45
+ if target in seen:
46
+ continue
47
+ seen.append(target)
48
+ path = os.path.join(target, ruff_exe)
49
+ if os.path.isfile(path):
50
+ return path
51
+
52
+ locations = "\n".join(f" - {target}" for target in seen)
53
+ raise RuffNotFound(
54
+ f"Could not find the ruff binary in any of the following locations:\n{locations}\n"
55
+ )
56
+
57
+
58
+ def _module_path() -> str | None:
59
+ path = os.path.dirname(__file__)
60
+ return path
61
+
62
+
63
+ def _matching_parents(path: str | None, match: str) -> str | None:
64
+ """
65
+ Return the parent directory of `path` after trimming a `match` from the end.
66
+ The match is expected to contain `/` as a path separator, while the `path`
67
+ is expected to use the platform's path separator (e.g., `os.sep`). The path
68
+ components are compared case-insensitively and a `*` wildcard can be used
69
+ in the `match`.
70
+ """
71
+ from fnmatch import fnmatch
72
+
73
+ if not path:
74
+ return None
75
+ parts = path.split(os.sep)
76
+ match_parts = match.split("/")
77
+ if len(parts) < len(match_parts):
78
+ return None
79
+
80
+ if not all(
81
+ fnmatch(part, match_part)
82
+ for part, match_part in zip(reversed(parts), reversed(match_parts))
83
+ ):
84
+ return None
85
+
86
+ return os.sep.join(parts[: -len(match_parts)])
87
+
88
+
89
+ def _join(path: str | None, *parts: str) -> str | None:
90
+ if not path:
91
+ return None
92
+ return os.path.join(path, *parts)
93
+
94
+
95
+ def _user_scheme() -> str:
96
+ if sys.version_info >= (3, 10):
97
+ user_scheme = sysconfig.get_preferred_scheme("user")
98
+ elif os.name == "nt":
99
+ user_scheme = "nt_user"
100
+ elif sys.platform == "darwin" and sys._framework: # ty: ignore[unresolved-attribute]
101
+ user_scheme = "osx_framework_user"
102
+ else:
103
+ user_scheme = "posix_user"
104
+ return user_scheme