tp钱包下载app|ruff

作者: tp钱包下载app
2024-03-07 20:56:15

GitHub - astral-sh/ruff: An extremely fast Python linter and code formatter, written in Rust.

GitHub - astral-sh/ruff: An extremely fast Python linter and code formatter, written in Rust.

Skip to content

Toggle navigation

Sign in

Product

Actions

Automate any workflow

Packages

Host and manage packages

Security

Find and fix vulnerabilities

Codespaces

Instant dev environments

Copilot

Write better code with AI

Code review

Manage code changes

Issues

Plan and track work

Discussions

Collaborate outside of code

Explore

All features

Documentation

GitHub Skills

Blog

Solutions

For

Enterprise

Teams

Startups

Education

By Solution

CI/CD & Automation

DevOps

DevSecOps

Resources

Learning Pathways

White papers, Ebooks, Webinars

Customer Stories

Partners

Open Source

GitHub Sponsors

Fund open source developers

The ReadME Project

GitHub community articles

Repositories

Topics

Trending

Collections

Pricing

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

Sign up

You signed in with another tab or window. Reload to refresh your session.

You signed out in another tab or window. Reload to refresh your session.

You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

astral-sh

/

ruff

Public

Notifications

Fork

789

Star

24.7k

An extremely fast Python linter and code formatter, written in Rust.

docs.astral.sh/ruff

License

MIT license

24.7k

stars

789

forks

Branches

Tags

Activity

Star

Notifications

Code

Issues

691

Pull requests

67

Discussions

Actions

Projects

0

Security

Insights

Additional navigation options

Code

Issues

Pull requests

Discussions

Actions

Projects

Security

Insights

astral-sh/ruff

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

 mainBranchesTagsGo to fileCodeFolders and filesNameNameLast commit messageLast commit dateLatest commit History6,426 Commits.cargo.cargo  .config.config  .devcontainer.devcontainer  .github.github  assetsassets  cratescrates  docsdocs  fuzzfuzz  playgroundplayground  pythonpython  scriptsscripts  .editorconfig.editorconfig  .gitattributes.gitattributes  .gitignore.gitignore  .markdownlint.yaml.markdownlint.yaml  .pre-commit-config.yaml.pre-commit-config.yaml  BREAKING_CHANGES.mdBREAKING_CHANGES.md  CHANGELOG.mdCHANGELOG.md  CODE_OF_CONDUCT.mdCODE_OF_CONDUCT.md  CONTRIBUTING.mdCONTRIBUTING.md  Cargo.lockCargo.lock  Cargo.tomlCargo.toml  DockerfileDockerfile  LICENSELICENSE  README.mdREADME.md  _typos.toml_typos.toml  clippy.tomlclippy.toml  mkdocs.insiders.ymlmkdocs.insiders.yml  mkdocs.public.ymlmkdocs.public.yml  mkdocs.template.ymlmkdocs.template.yml  pyproject.tomlpyproject.toml  ruff.schema.jsonruff.schema.json  rust-toolchain.tomlrust-toolchain.toml  View all filesRepository files navigationREADMECode of conductMIT license

Ruff

Docs | Playground

An extremely fast Python linter and code formatter, written in Rust.

Linting the CPython codebase from scratch.

⚡️ 10-100x faster than existing linters (like Flake8) and formatters (like Black)

Installable via pip

️ pyproject.toml support

Python 3.12 compatibility

⚖️ Drop-in parity with Flake8, isort, and Black

Built-in caching, to avoid re-analyzing unchanged files

Fix support, for automatic error correction (e.g., automatically remove unused imports)

Over 700 built-in rules, with native re-implementations

of popular Flake8 plugins, like flake8-bugbear

⌨️ First-party editor integrations for

VS Code and more

Monorepo-friendly, with hierarchical and cascading configuration

Ruff aims to be orders of magnitude faster than alternative tools while integrating more

functionality behind a single, common interface.

Ruff can be used to replace Flake8 (plus dozens of plugins),

Black, isort,

pydocstyle, pyupgrade,

autoflake, and more, all while executing tens or hundreds of

times faster than any individual tool.

Ruff is extremely actively developed and used in major open-source projects like:

Apache Airflow

FastAPI

Hugging Face

Pandas

SciPy

...and many more.

Ruff is backed by Astral. Read the launch post,

or the original project announcement.

Testimonials

Sebastián Ramírez, creator

of FastAPI:

Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually

running and checking the code.

Nick Schrock, founder of Elementl,

co-creator of GraphQL:

Why is Ruff a gamechanger? Primarily because it is nearly 1000x faster. Literally. Not a typo. On

our largest module (dagster itself, 250k LOC) pylint takes about 2.5 minutes, parallelized across 4

cores on my M1. Running ruff against our entire codebase takes .4 seconds.

Bryan Van de Ven, co-creator

of Bokeh, original author

of Conda:

Ruff is ~150-200x faster than flake8 on my machine, scanning the whole repo takes ~0.2s instead of

~20s. This is an enormous quality of life improvement for local dev. It's fast enough that I added

it as an actual commit hook, which is terrific.

Timothy Crosley,

creator of isort:

Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe

it was working till I intentionally introduced some errors.

Tim Abbott, lead

developer of Zulip:

This is just ridiculously fast... ruff is amazing.

Table of Contents

For more, see the documentation.

Getting Started

Configuration

Rules

Contributing

Support

Acknowledgements

Who's Using Ruff?

License

Getting Started

For more, see the documentation.

Installation

Ruff is available as ruff on PyPI:

pip install ruff

You can also install Ruff via Homebrew, Conda,

and with a variety of other package managers.

Usage

To run Ruff as a linter, try any of the following:

ruff check . # Lint all files in the current directory (and any subdirectories).

ruff check path/to/code/ # Lint all files in `/path/to/code` (and any subdirectories).

ruff check path/to/code/*.py # Lint all `.py` files in `/path/to/code`.

ruff check path/to/code/to/file.py # Lint `file.py`.

ruff check @arguments.txt # Lint using an input file, treating its contents as newline-delimited command-line arguments.

Or, to run Ruff as a formatter:

ruff format . # Format all files in the current directory (and any subdirectories).

ruff format path/to/code/ # Format all files in `/path/to/code` (and any subdirectories).

ruff format path/to/code/*.py # Format all `.py` files in `/path/to/code`.

ruff format path/to/code/to/file.py # Format `file.py`.

ruff format @arguments.txt # Format using an input file, treating its contents as newline-delimited command-line arguments.

Ruff can also be used as a pre-commit hook via ruff-pre-commit:

- repo: https://github.com/astral-sh/ruff-pre-commit

# Ruff version.

rev: v0.3.1

hooks:

# Run the linter.

- id: ruff

args: [ --fix ]

# Run the formatter.

- id: ruff-format

Ruff can also be used as a VS Code extension or

alongside any other editor through the Ruff LSP.

Ruff can also be used as a GitHub Action via

ruff-action:

name: Ruff

on: [ push, pull_request ]

jobs:

ruff:

runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v4

- uses: chartboost/ruff-action@v1

Configuration

Ruff can be configured through a pyproject.toml, ruff.toml, or .ruff.toml file (see:

Configuration, or Settings

for a complete list of all configuration options).

If left unspecified, Ruff's default configuration is equivalent to:

[tool.ruff]

# Exclude a variety of commonly ignored directories.

exclude = [

".bzr",

".direnv",

".eggs",

".git",

".git-rewrite",

".hg",

".ipynb_checkpoints",

".mypy_cache",

".nox",

".pants.d",

".pyenv",

".pytest_cache",

".pytype",

".ruff_cache",

".svn",

".tox",

".venv",

".vscode",

"__pypackages__",

"_build",

"buck-out",

"build",

"dist",

"node_modules",

"site-packages",

"venv",

]

# Same as Black.

line-length = 88

indent-width = 4

# Assume Python 3.8

target-version = "py38"

[tool.ruff.lint]

# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.

select = ["E4", "E7", "E9", "F"]

ignore = []

# Allow fix for all enabled rules (when `--fix`) is provided.

fixable = ["ALL"]

unfixable = []

# Allow unused variables when underscore-prefixed.

dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.format]

# Like Black, use double quotes for strings.

quote-style = "double"

# Like Black, indent with spaces, rather than tabs.

indent-style = "space"

# Like Black, respect magic trailing commas.

skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.

line-ending = "auto"

Some configuration options can be provided via the command-line, such as those related to

rule enablement and disablement, file discovery, and logging level:

ruff check path/to/code/ --select F401 --select F403 --quiet

See ruff help for more on Ruff's top-level commands, or ruff help check and ruff help format

for more on the linting and formatting commands, respectively.

Rules

Ruff supports over 700 lint rules, many of which are inspired by popular tools like Flake8,

isort, pyupgrade, and others. Regardless of the rule's origin, Ruff re-implements every rule in

Rust as a first-party feature.

By default, Ruff enables Flake8's F rules, along with a subset of the E rules, omitting any

stylistic rules that overlap with the use of a formatter, like ruff format or

Black.

If you're just getting started with Ruff, the default rule set is a great place to start: it

catches a wide variety of common errors (like unused imports) with zero configuration.

Beyond the defaults, Ruff re-implements some of the most popular Flake8 plugins and related code

quality tools, including:

autoflake

eradicate

flake8-2020

flake8-annotations

flake8-async

flake8-bandit (#1646)

flake8-blind-except

flake8-boolean-trap

flake8-bugbear

flake8-builtins

flake8-commas

flake8-comprehensions

flake8-copyright

flake8-datetimez

flake8-debugger

flake8-django

flake8-docstrings

flake8-eradicate

flake8-errmsg

flake8-executable

flake8-future-annotations

flake8-gettext

flake8-implicit-str-concat

flake8-import-conventions

flake8-logging

flake8-logging-format

flake8-no-pep420

flake8-pie

flake8-print

flake8-pyi

flake8-pytest-style

flake8-quotes

flake8-raise

flake8-return

flake8-self

flake8-simplify

flake8-slots

flake8-super

flake8-tidy-imports

flake8-todos

flake8-trio

flake8-type-checking

flake8-use-pathlib

flynt (#2102)

isort

mccabe

pandas-vet

pep8-naming

pydocstyle

pygrep-hooks

pylint-airflow

pyupgrade

tryceratops

yesqa

For a complete enumeration of the supported rules, see Rules.

Contributing

Contributions are welcome and highly appreciated. To get started, check out the

contributing guidelines.

You can also join us on Discord.

Support

Having trouble? Check out the existing issues on GitHub,

or feel free to open a new one.

You can also ask for help on Discord.

Acknowledgements

Ruff's linter draws on both the APIs and implementation details of many other

tools in the Python ecosystem, especially Flake8, Pyflakes,

pycodestyle, pydocstyle,

pyupgrade, and isort.

In some cases, Ruff includes a "direct" Rust port of the corresponding tool.

We're grateful to the maintainers of these tools for their work, and for all

the value they've provided to the Python community.

Ruff's formatter is built on a fork of Rome's rome_formatter,

and again draws on both API and implementation details from Rome,

Prettier, and Black.

Ruff's import resolver is based on the import resolution algorithm from Pyright.

Ruff is also influenced by a number of tools outside the Python ecosystem, like

Clippy and ESLint.

Ruff is the beneficiary of a large number of contributors.

Ruff is released under the MIT license.

Who's Using Ruff?

Ruff is used by a number of major open-source projects and companies, including:

Albumentations

Amazon (AWS SAM)

Anthropic (Python SDK)

Apache Airflow

AstraZeneca (Magnus)

Babel

Benchling (Refac)

Bokeh

Cryptography (PyCA)

CERN (Indico)

DVC

Dagger

Dagster

Databricks (MLflow)

FastAPI

Gradio

Great Expectations

HTTPX

Hatch

Home Assistant

Hugging Face (Transformers,

Datasets,

Diffusers)

ING Bank (popmon, probatus)

Ibis

ivy

Jupyter

Kraken Tech

LangChain

Litestar

LlamaIndex

Matrix (Synapse)

MegaLinter

Meltano (Meltano CLI, Singer SDK)

Microsoft (Semantic Kernel,

ONNX Runtime,

LightGBM)

Modern Treasury (Python SDK)

Mozilla (Firefox)

Mypy

Netflix (Dispatch)

Neon

NoneBot

NumPyro

ONNX

OpenBB

PDM

PaddlePaddle

Pandas

Pillow

Poetry

Polars

PostHog

Prefect (Python SDK, Marvin)

PyInstaller

PyMC

PyMC-Marketing

pytest

PyTorch

Pydantic

Pylint

PyVista

Reflex

River

Rippling

Robyn

Saleor

Scale AI (Launch SDK)

SciPy

Snowflake (SnowCLI)

Sphinx

Stable Baselines3

Starlette

The Algorithms

Vega-Altair

WordPress (Openverse)

ZenML

Zulip

build (PyPA)

cibuildwheel (PyPA)

delta-rs

featuretools

meson-python

nox

pip

Show Your Support

If you're using Ruff, consider adding the Ruff badge to your project's README.md:

[![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)

...or README.rst:

.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json

:target: https://github.com/astral-sh/ruff

:alt: Ruff

...or, as HTML:

Ruff

License

MIT

About

An extremely fast Python linter and code formatter, written in Rust.

docs.astral.sh/ruff

Topics

python

rust

styleguide

static-code-analysis

style-guide

linter

static-analysis

python3

pep8

ruff

rustpython

Resources

Readme

License

MIT license

Code of conduct

Code of conduct

Activity

Custom properties

Stars

24.7k

stars

Watchers

71

watching

Forks

789

forks

Report repository

Releases

293

v0.3.1

Latest

Mar 6, 2024

+ 292 releases

Used by 33.5k

+ 33,459

Contributors

393

+ 379 contributors

Languages

Rust

97.9%

Python

1.2%

TypeScript

0.7%

Shell

0.2%

JavaScript

0.0%

HTML

0.0%

Footer

© 2024 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

宇宙最强Python静态分析工具Ruff - 知乎

宇宙最强Python静态分析工具Ruff - 知乎切换模式写文章登录/注册宇宙最强Python静态分析工具Ruff何文祥专业吹牛皮的程序员Ruff是使用Rust编写的超快Python静态分析工具。我们看看它于市面上主流Python分析工具性能对比上面是针对CPython源码进行分析时间开销,我们可以很直观看出Ruff完全碾压其余竞品。当前Ruff开发活跃,在一些主流开源项目中使用:pandasFastAPITransformersApache AirflowScipy等等我们来看看如何在项目中集成Ruff入门架设我们项目结构如下:number

├── __init__.py

└── number.pynumber.py 包含如下代码:from typing import List

import os

def sum_even_numbers(numbers: List[int]) -> int:

"""Given a list of integers, return the sum of all even numbers in the list."""

return sum(num for num in numbers if num % 2 == 0)通过PyPI安装Ruff$ pip install ruff安装完后,我们使用如下执行ruff$ ruff check .

number.py:3:8: F401 [*] `os` imported but unused

Found 1 error.

[*] 1 potentially fixable with the --fix option.Ruff指示这里有未使用的导入,它是一个Python里的常见错误。Ruff还指示该错误是"fixable",即可以通过如下方式自动修复错误:$ ruff check --fix .

Found 1 error (1 fixed, 0 remaining).这里我们就发现import os给自动移除了。配置为给整个项目里的Python文件指定配置,Ruff会目录下寻找pyproject.toml或者ruff.toml文件。我们来在项目根目录下创建一个pyproject.toml文件。[project]

# Support Python 3.10+.

requires-python = ">=3.10"

[tool.ruff]

# Decrease the maximum line length to 79 characters.

line-length = 79

src = ["src"]规则Ruff支持超过500个lint规则,它们分布在超过40个内建插件中,根据项目所需进行选择:一些是非常严格规则,一些是框架特定的。默认Ruff设定E-和F-前缀的规则相应派生至pycodestyle和Pyflakes。如果你是一个linter新手,那么默认规则是一个非常好的开始,只专注公共错误。如果你是从其它工具迁移过来的linter,你可以开启和之前所使用的相同规则。例如,如果要配置pyupgrade规则,我们可以如下对pyproject.toml配置:[tool.ruff]

select = [

"E", # pycodestyle

"F", # pyflakes

"UP", # pyupgrade

]再次运行Ruff,现在强制遵循pyupgrade规则。$ ruff check .

number/number.py:5:31: UP006 [*] Use `list` instead of `List` for type annotations

number/number.py:6:80: E501 Line too long (83 > 79 characters)

Found 2 errors.

[*] 1 potentially fixable with the --fix option.或者我们还想强制所有的函数都必须编写docstings:[tool.ruff]

select = [

"E", # pycodestyle

"F", # pyflakes

"UP", # pyupgrade

"D", # pydocstyle

]

[tool.ruff.pydocstyle]

convention = "google"再次运行,我们将强制遵循pydocstyle规则:$ ruff check .

number/__init__.py:1:1: D104 Missing docstring in public package

number/number.py:1:1: D100 Missing docstring in public module

number/number.py:5:31: UP006 [*] Use `list` instead of `List` for type annotations

number/number.py:5:80: E501 Line too long (83 > 79 characters)

Found 3 errors.

[*] 1 potentially fixable with the --fix option.忽略错误通过使用#noqa注释来忽略行级检测。from typing import List

def sum_even_numbers(numbers: List[int]) -> int: # noqa: UP006

"""Given a list of integers, return the sum of all even numbers in the list."""

return sum(num for num in numbers if num % 2 == 0)再次执行就没有指示List导入问题了。如果想整个文件有效那么,在文件顶部加入 # ruff: noqa: UP006# ruff: noqa: UP006

from typing import List

def sum_even_numbers(numbers: List[int]) -> int:

"""Given a list of integers, return the sum of all even numbers in the list."""

return sum(num for num in numbers if num % 2 == 0)Ruff支持使用--add-noqa参数来为代码增加# noqa指令,我们可以组合--add-noqa和--select配置UP006规范忽律$ ruff check --select UP006 --add-noqa .

Added 1 noqa directive.持续集成pre-commit 钩子中使用:- repo: https://github.com/charliermarsh/ruff-pre-commit

# Ruff version.

rev: 'v0.0.261'

hooks:

- id: ruff编辑器集成VS Code 扩展或者使用Ruff LSP集成其它编辑器更多该工具由astral公司研发, 该公司的使命是为Python生态构建更加具有生产力和高性能的开发者工具,势头大好!编辑于 2023-04-21 11:27・IP 属地广东Python 入门PythonRuff​赞同 3​​添加评论​分享​喜欢​收藏​申请

新一代 Python Linter 工具 Ruff - 知乎

新一代 Python Linter 工具 Ruff - 知乎切换模式写文章登录/注册新一代 Python Linter 工具 RuffSetup学习中...最近几年Rust在前端工具链领域影响越来越大,甚至提出了《Rust 是 JavaScript 基建的未来》,凡是能用 Rust 重写的前端工具就用 Rust 重写,结果突出一个字 - 快。这股风气也被悄然带入到了其他解释性语言领域,Ruby 使用 Rust 实现 YJIT 编译器;在 Python 语言领域,出现了 Ruff 项目,官方简介: 一个用Rust编写的非常快速的Python linter:比现有的 linter 快 10-100 倍⚡️Ruff 利用 RustPython 的 AST 解析器,实现自己的 AST 遍历、visitor 抽象和 lint 规则逻辑。它目标是比其他工具快几个数量级,同时提供代码检查、autofix等一站式的解决方案。Ruff 可以用来替换flake8(加上各种插件),isort, pydocstyle, yesqa, eradicate, pyupgrade和 autoflake,所有这些都比任何单独的工具执行速度快几十或数百倍。Ruff 超越了传统 linter 的职责,而是作为一种高级代码转换工具,能够升级类型注释、重写类定义、对import导入进行排序等等。下面简单介绍下用法:安装和使用安装上非常简单,借助于maturin,Ruff 可以像其他第三方Python包一样通过pip安装:pip install ruff然后就可以使用 Ruff 了:ruff path/to/code/to/check.py

ruff path/to/code/

ruff path/to/code/*.py你还可以在watch模式下运行 Ruff,当文件改变时自动执行:ruff path/to/code/ --watch也可以和 pre-commit 一起工作:- repo: https://github.com/charliermarsh/ruff-pre-commit

# Ruff version.

rev: 'v0.0.198'

hooks:

- id: ruff

# Respect `exclude` and `extend-exclude` settings.

args: ["--force-exclude"]配置Ruff 可以通过pyproject.toml和命令行进行配置。有关可配置选项的完整列表,请参阅 API文档。 默认配置如下:[tool.ruff]

line-length = 88

# Enable Pyflakes `E` and `F` codes by default.

select = ["E", "F"]

ignore = []

# Exclude a variety of commonly ignored directories.

exclude = [

".bzr",

".direnv",

".eggs",

".git",

".hg",

".mypy_cache",

".nox",

".pants.d",

".ruff_cache",

".svn",

".tox",

".venv",

"__pypackages__",

"_build",

"buck-out",

"build",

"dist",

"node_modules",

"venv",

]

per-file-ignores = {}

# Allow unused variables when underscore-prefixed.

dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

# Assume Python 3.10.

target-version = "py310"

[tool.ruff.mccabe]

# Unlike Flake8, default to a complexity level of 10.

max-complexity = 10当然也可以自定义配置。例如,下面将配置Ruff 为:避免检查line-length问题(E501)不移除未使用的import(F401)忽略在文件__init__.py中的import-at-top-of-file错误(E402)[tool.ruff]

# Enable Pyflakes and pycodestyle rules.

select = ["E", "F"]

# Never enforce `E501` (line length violations).

ignore = ["E501"]

# Never try to fix `F401` (unused imports).

unfixable = ["F401"]

# Ignore `E402` (import violations) in all `__init__.py` files, and in `path/to/file.py`.

[tool.ruff.per-file-ignores]

"__init__.py" = ["E402"]

"path/to/file.py" = ["E402"]Ruff 模仿了 Flake8 的错误代码系统,其中每个错误代码由一个1-3个字母的前缀组成,后面跟着3个数字(例如F401)。前缀表示错误代码的“源”(例如,F表示Pyflakes, E表示pycodestyle, ANN表示flake8-annotations)。启用的错误集由select和ignore选项决定,它们既支持完整的错误代码(例如F401),也支持前缀(例如F)。 Ruff 也支持自己的配置文件ruff.toml(类似于 ESLint 的 .eslintrc),层级上少了 [tool.ruff],例如:# Enable Pyflakes and pycodestyle rules.

select = ["E", "F"]

# Never enforce `E501` (line length violations).

ignore = ["E501"]

# Always autofix, but never try to fix `F401` (unused imports).

fix = true

unfixable = ["F401"]

# Ignore `E402` (import violations) in all `__init__.py` files, and in `path/to/file.py`.

[per-file-ignores]

"__init__.py" = ["E402"]

"path/to/file.py" = ["E402"]也可以通过命令行提供一些常见的配置设置:ruff path/to/code/ --select F401 --select F403类似于 ESLint, Ruff 支持分层配置,Python文件以距离它“最近的”的pyproject.toml作为其配置。和 ESLint 不同的是 Ruff 不会跨配置文件合并设置;相反,使用“最近的”配置文件,并且忽略任何父配置文件。代替这种隐式级联,Ruff 支持一个扩展字段,它允许您从另一个pyproject.toml继承设置。像这样:# Extend the `pyproject.toml` file in the parent directory.

extend = "../pyproject.toml"

# But use a different line length.

line-length = 100上述规则同样适用于ruff.toml配置文件。 在代码中可以使用 # noqa: {code}注释忽略代码行/块的错误:# Ignore F841.

x = 1 # noqa: F841

# Ignore E741 and F841.

i = 1 # noqa: E741, F841

# Ignore _all_ errors.

x = 1 # noqa当前支持的规则参见:https://github.com/charliermarsh/ruff#supported-rules编辑器集成VS Codevscode提供了 Ruff VS Code extension,可以直接在插件管理中安装使用,它支持 autofix、import排序等功能。 PyCharm(外部工具)Ruff 可以在 PyCharm 中作为外部工具安装。打开首选项,然后导航到工具>外部工具。在那里,添加一个具有以下配置的新工具: Ruff可以作为一个可运行的action。PyCharm(插件)在 IntelliJ 插件市场也能找到非官方维护的 Ruff 插件,相比外部工具,操作上更方便一点。 其他Vim/Github Actions等配置方法可以查阅官方文档。其他Ruff 可以和Python另一个明星项目 - 格式化工具black 一起使用,只需要 line-length有相同配置既可。Ruff 第一个版本发布在2022年8月30日,可以说是一个非常新的项目,虽然作者迭代的非常积极(目前版本为 v0.0.198),但是规则实现上没有常用的 Pylint 规则多,并不能完全替代 Pylint。当前 Pylint 总共实现了409条规则,而Ruff实现了224条,其中有60条与 Pylint 规则集重叠。主观上,Pylint倾向于实现更多基于类型推断的规则(例如,验证函数调用中参数的数量)。关于 Pylint 规则替代实现官方也有跟踪,详见 #970。Ruff 目前还不支持第三方插件,仅仅在项目范围内有一个插件系统,详见 #283。相信不久的将来能看到功能更完善、支持更多的规则、更好用的 Ruff。发布于 2022-12-28 21:18・IP 属地中国香港Python​赞同 5​​添加评论​分享​喜欢​收藏​申请

新一代 Python 代码纠错工具Ruff,突出一个字“快”! - 知乎

新一代 Python 代码纠错工具Ruff,突出一个字“快”! - 知乎切换模式写文章登录/注册新一代 Python 代码纠错工具Ruff,突出一个字“快”!程序员梓羽同学​互联网行业 从业人员在软件开发中,代码质量是至关重要的。为了保证Python代码的质量,开发人员需要使用一些优秀的代码检查工具。下面是几个常用的Python代码检查工具:Pylint:是一个流行的Python代码检查工具,用于检查代码语法、风格和代码错误等问题Pylint提供了丰富的插件和配置选项,方便开发人员根据项目要求进行定制和管理。Flake8:是一个由Pint、Pyflakes和pep8三个库组成的Python代码检查工具,它可以检查语法错误、代码风格和各种代码错误等问题。Flake8具有高度的可配置性和易用性,是很多Python开发人员的首选。Pyflakes: 是Python代码静态分析工具,用于检测Python代码中的语法错误和中未使用的变量和模块的问题,它也可以检查Python模块的导入语句的正确性。mypy:一个类型注释检查器,用于检查Python代码的类型注释,以保代码中的注释与实际使用的变量和函数相匹配。以上是几个常用的Python代码检查工具,它们帮助开发人员快速发现和复代码中的错误和漏洞,提高代码质量和可靠性。但是最近又发现了一款开源的Python代码检查工具,相比 Pylint、Flake8 检查更迅速,兼容性更强。它名为 Ruff,GitHub Star 已达 21K。Ruff 简介Ruff 是一个基于 Python 的代码检查工具,它可以帮助我们在编写Python代码时发现潜在的问题并提供修复建议。GitHub: https://github.com/astral-sh/ruff该项目采用 Rust 编写,比 Python 的 Flake8 和 Black 快 10-100 倍,支持通过 pip 安装、内置 700+ 规则、兼容 Python 3.12、自动纠错等功能。凡是能用 Rust 重写开发的工具,结果就突出一个字“快”。这也是它为什么快的主要原因。Ruff 利用 Rust Python 的 AST 解析器,实现自己的 AST 遍历、visitor 抽象和 lint 规则逻辑。它目标是比其他工具快几个数量级,同时提供代码检查、autofix等一站式的解决方案。Ruff 可以用来替换flake8(加上各种插件)、isort、pydocstyle、yesqa、eradicate、pyupgrade和 autoflake,所有这些都比任何单独的工具执行速度快几十或数百倍。Ruff 超越了传统 linter 的职责,而是作为一种高级代码转换工具,能够升级类型注释、重写类定义、对import导入进行排序等等。主要功能特点从Ruff官方介绍,可以看到目前有以下特点:支持 pyproject.toml兼容 Python 3.11超过 500 条内置规则,与 Flake8 内置的规则集近乎对等重新实现了数十个 Flake8 插件,如 flake8-bugbear、flake8-comprehensions 等支持自动修复,可自动纠正错误(例如,删除未使用的导入)内置缓存,可避免重复分析未更改的文件支持 VS Code、Pycharm、Neovim、Sublime Text、Emacs 等编辑器对 monorepo 友好,具有分层和级联配置其中着重的一点是对规则的支持。Ruff 借鉴了流行的工具如 Flake8、autoflake、isort、pyupgrade、yesqa 等等,然后用 Rust 重新实现了超过 500 条规则。它本身不支持插件,但是吸收了数十个常用的 Flake8 插件的设计,使得已囊括的规则范围比其它任何工具都大。例如实现了部分flake8的插件。安装和使用Ruff在安装上也是非常简单,可以像其他第三方Python包一样通过pip安装,只需按照以下步骤进行操作:pip install ruff安装完成后,Windows会在Python版本Scripts目录下生成一个ruff.exe的可执行文件;MacOS会在Python版本bin目录下生成一个ruff的可执行文件。执行检查命令1、针对指定文件扫描ruff check path/file.py2、使用通配符进行扫描ruff check path/*.py3、还可以在watch监控模式下运行 Ruff,当文件改变时自动执行:ruff path/ --watch4、按照不同的目录和文件执行检查ruff check . # 分析当前及子目录内的所有文件

ruff check path/to/code/ # 分析指定目录及子目录内的所有文件

ruff check path/to/code/*.py # 分析指定目录内的所有py文件

ruff check path/to/code/to/file.py # 分析 file.py5、还可以和 pre-commit 一起工作:- repo: https://github.com/charliermarsh/ruff-pre-commit

# Ruff version.

rev: 'v0.0.261'

hooks:

- id: ruff最终,Ruff将生成一个报告文件,其中包含了检查结果和问题的详细信息。我们可以根据报告中的建议来修复代码中的问题。总结Ruff 可以在代码质量、代码规范、团队协作、持续集成等多种场景下应用。而且还有官方提供的VS Code的插件,非常方便实用。但是目前还没有发布Pycharm的插件。发布于 2023-12-11 08:15・IP 属地湖北PythonRuff代码质量​赞同 4​​添加评论​分享​喜欢​收藏​申请

性能最快的代码分析工具,Ruff 正在席卷 Python 圈! - 豌豆花下猫 - 博客园

性能最快的代码分析工具,Ruff 正在席卷 Python 圈! - 豌豆花下猫 - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

豌豆花下猫

博客园

首页

新随笔

联系

订阅

管理

性能最快的代码分析工具,Ruff 正在席卷 Python 圈!

几天前,Python 开源社区又出了一个不小的新闻:HTTPX 和 Starlette 在同一天将在用的代码分析工具(flake8、autoflake 和 isort)统一替换成了 Ruff。

HTTPX 是一个支持异步的 HTTP 客户端,Starlette 是一个轻量级的 ASGI 框架,它们都是 Python 社区里的明星项目,目前加起来有近 20K star。它们都选择了使用 Ruff,再次扩大了 Ruff 的应用版图。

Ruff 是个诞生仅仅 8 个月的新兴项目,但已呈现出一种席卷 Python 社区的趋势!很多知名的开源项目已采纳 Ruff,比如 Transformers、Pandas、FastAPI、Airflow、SciPy、Bokeh、Jupyter、LangChain、PaddlePaddle、Sphinx、Pydantic、LlamaIndex……

Ruff 是什么?为什么它能吸引大量的开源项目使用?相比于其它代码分析工具,它有哪些突出之处,是否还有一些局限性?现在是否值得将项目在用的工具都替换成它呢?

带着这些问题,本文将带你全方位了解这个火爆的项目。

Ruff 加速 Rust 与 Python 的融合

Ruff 诞生于 2022 年 8 月,它是一个用 Rust 语言编写的高性能的 Python 静态代码分析工具,比其它分析工具快几个数量级(10-100 倍),而且功能也很全面。

代码分析工具 即 Linter,用于检查代码中的语法错误、编码规范问题、潜在的逻辑问题和代码质量问题等,可以提供实时反馈和自动修复建议。

在 Ruff 出现之前,社区里的代码分析工具呈现出百花齐放之势,比如有 Pylint、Flake8、Autoflake、Pyflakes、Pycodestyle 等等,它们的共同点是都使用 Python 编写而成。

Ruff 异军突起,在性能方面立于不败之地,主要得益于 Rust 天然的速度优势。Ruff 的出现,就像基于大语言模型的 ChatGPT 横空出世,所有竞争对手瞬间就黯淡失色了。

两个月前,我翻译了一篇《Python 2023 年的 3 个趋势》,它预测的第一个趋势就是 Rust 将加快融入到 Python 相关的项目和工具中,举出的例子就有 Ruff。

我现在可以补充一个观察了:用 Rust 开发的新工具将淘汰用其它语言开发的工具,而且新工具的普及速度可能比你的预想快得多!

Ruff 项目的成功,将刺激出更多 Python+Rust 的项目。它的作者 Charlie Marsh 立志于给 Python 构建高性能的开发工具,巧合的是我曾翻译过他写的《Using Mypy in production at Spring》,这篇文章恰好发布于 Ruff 诞生的 2022 年 8 月!

因此,我有理由推测:在 Ruff 项目成熟后,他将用 Rust 开发高性能的 Python 类型检查工具,到时候,目前流行的 Mypy、Pytype、Pyright 和 Pyre 等工具将迎来一大劲敌。(题外话:Python 社区纷乱繁多的虚拟环境管理工具和依赖包管理工具,也有望迎来变革了吧!)

这里还必须介绍两个 Rust 项目,因为 Ruff 的成功离不开它们:

RustPython :用 Rust 写成的 Python 解释器。Ruff 利用了它高性能的 AST 解析器,以此实现了自己的 AST 遍历、访问器抽象和代码质量检测逻辑

Maturin :用 Rust 写成的打包工具,可以将 Rust 项目打包成 Python 可用的包,从而可以被我们“pip install”后使用,且不需要配置 Rust 环境

Ruff 的优点与局限性

介绍完最关键的特性后(速度极快、支持 pip),我们接下来看看 Ruff 的其它方面。

总体而言,它具有这些特点:

支持 pyproject.toml

兼容 Python 3.11

超过 500 条内置规则,与 Flake8 内置的规则集近乎对等

重新实现了数十个 Flake8 插件,如 flake8-bugbear、flake8-comprehensions 等

支持自动修复,可自动纠正错误(例如,删除未使用的导入)

内置缓存,可避免重复分析未更改的文件

支持 VS Code、Pycharm、Neovim、Sublime Text、Emacs 等编辑器

对 monorepo 友好,具有分层和级联配置

首先最值得介绍的是它支持的规则。Ruff 借鉴了流行的工具如 Flake8、autoflake、isort、pyupgrade、yesqa 等等,然后用 Rust 重新实现了超过 500 条规则。它本身不支持插件,但是吸收了数十个常用的 Flake8 插件的设计,使得已囊括的规则范围比其它任何工具都大。

Ruff 的作者还非常熟悉其它语言的分析工具,比如 Rust 的 Clippy 和 JavaScript 的 ESLint,并从这些项目上得到了设计上的启发。

Ruff 站在了多个工具/插件的肩膀上,重新实现了它们验证过的规则,也借鉴了它们的 API 和实现细节,这使得它扮演了一种“集大成”的角色,很方便使用者们作工具的顺滑迁移。

Ruff 第二个值得介绍的特点是,它没有局限于 Linter 的定位,而是借鉴 Rome、Prettier 和 Black 这些代码格式化工具(Formatter),也实现了代码格式化的功能。借鉴了 Autoflake、ESLint、Fixit 等工具,实现了代码自动纠错的功能。另外,它还借鉴了使用很广泛的 isort,支持对 import 作快速排序。

这些表明作者的目标并不只是开发一款优秀的代码分析工具,而是在静态代码分析的核心功能外,要创造出更多的可能性。此举是开发者的福音啊,以后一个工具就能满足多种诉求,再也不必纠结于不同工具的选型、协作与维护了!

Ruff 还有其它的优点,例如支持 pyproject.toml 、支持 Python 3.11、支持只分析变更的文件,等等。另外,它也有着一些局限性:

支持的 lint 规则还有不够

不支持使用插件,扩展性不强

用 Rust 开发的,因此不便于在出错时 debug,也不便于 Python 开发者给它贡献代码

关于第一点,毕竟 Ruff 只是 8 个月大的新生项目,支持更多的规则,只是时间问题。至于插件带来的扩展性和编程语言的开发者生态,原因也是 Rust,属于“有得必有失”了。

Ruff 的使用

介绍完 Ruff 的整体情况后,我们接着看看该如何使用它吧。

首先是安装,可以用 Conda 和其它包管理工具,也可以直接用 pip:

pip install ruff

可以通过以下命令运行:

ruff check . # 分析当前及子目录内的所有文件

ruff check path/to/code/ # 分析指定目录及子目录内的所有文件

ruff check path/to/code/*.py # 分析指定目录内的所有py文件

ruff check path/to/code/to/file.py # 分析 file.py

可以用作预提交的钩子:

- repo: https://github.com/charliermarsh/ruff-pre-commit

# Ruff version.

rev: 'v0.0.261'

hooks:

- id: ruff

可以通过 pyproject.toml ,ruff.toml 或 .ruff.toml 文件进行配置,默认配置已能满足基本使用,详细配置可以参见文档的 Configuration 。

Ruff 提供了官方的 VS Code 插件,可以快速上手:

Ruff 官方没有提供 Pycharm 的插件,社区中有人发布了一个 Ruff 插件。

另外,它还提供了ruff-lsp ,可以被集成到任何支持 Language Server Protocol 的编辑器中,例如 Neovim、Sublime Text、Emacs 等等。

小结

本文从 HTTPX 和 Starlette 采纳 Ruff 的新闻开始,向读者介绍了这个仅诞生 8 个月却俘获了一大批知名开源项目。它最突出的特点是使用 Rust 开发,因此在性能方面远远超越同类工具,此外,它借鉴了众多工具和插件的设计,不仅静态代码分析的规则全面,而且还具备代码格式化、代码自动纠错和 import 排序等非其它 linter 所拥有的功能。

Ruff 的成功为 Python 社区提供了一个鲜活的榜样,可以预见,我们将迎来一波用 Rust 开发的高性能工具。Ruff 的成功,与最近火爆的 ChatGPT 一样,它们传递出了一个“这事儿能成”的信号,从而会引爆一场使用新技术的变革!(非常巧合的是:Rust 1.0 在 2015 年 5 月发布,而 OpenAI 在 2015 年 12 月成立。)

总体而言,Ruff 非常强大,凭实力而风靡 Python 社区,绝对推荐使用!它的使用文档很友好,如果你想了解更多细节,可以去翻查。

posted @

2023-04-09 18:03 

豌豆花下猫 

阅读(221) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 豌豆花下猫

Powered by .NET 8.0 on Kubernetes

Ruff.io

.io首页文档API下载EN设备宝Ruff 简介Ruff 是什么?Ruff 是一个支持 JavaScript 开发应用的物联网操作系统,为软件开发者提供开放、高效、敏捷的物联网应用开发平台,让 IoT 应用开发更简单。整个 Ruff 开发体系包括 Ruff OS、Ruff SDK、Ruff 软件仓库、Ruff Kit 开发套件。 只要您有软件开发经验,就可以用 Ruff 开发硬件应用。Ruff OS 运行在硬件板卡上,为 Ruff 应用提供运行环境。Ruff SDK 安装在开发机电脑上,包含开发相关的所有工具。Ruff 软件仓库是云端的在线软件包管理平台,提供软件包下载和分享服务。Ruff Kit 开发套件由 Ruff 开发板 (ruff-mbd-v1) 和多个外设模块组成,帮助快速上手。Ruff 怎么用?阅读 Ruff 文档,从入门到精通。起步走 > 三分钟点亮第一盏灯,帮助新手快速上手 观看视频 >应用开发 > 正式开始使用 Ruff,进行物联网应用开发进阶教程 > 学习 Ruff 高级开发技巧,开始驱动开发、板卡开发。学会基本的应用开发步骤之后,可以开始尝试如下案例教程:官方案例教程爱好者贡献:Stunning applications on RuffAwesome RuffRuff 能做什么?用 Ruff 做什么,完全取决于你的想象力。在实际的场景中,我们已经在很多领域开始尝试:创意设计 (无人机、平衡车、挖掘机、太鼓达人、自动浇花等)工业 (生产数据采集、告警通知等)农业 (收集环境信息、自动灌溉等)能源管理 (电力数据采集、24小时远程监控、故障预防等)智慧办公 (智能门禁、一键关灯、设施共享等)智能家居 (遥控家电、智慧夜灯、远程监控等)… …更多支持Q&A 常见问题、疑难杂症汇总开发套件 在售 Ruff Kit 开发套件详细说明书官方模块 官方硬件外设模块、驱动、软件包模块社区 更多问题交流,请进入社区论坛软件仓库 寻找驱动、软件模块,请进入 Ruff 软件仓库关于如何将产品原型转化成商业产品,或更多其他问题,请发送邮件至: `support@nanchao.org 关注微信公众号:Ruff_official,或加入 QQ 群:198194304`,获取更多的支持。微信公众号QQ群上次更新:2020-01-09 下一页目录Ruff 是什么?Ruff 怎么用?Ruff 能做什么?更多支持回到顶部开始使用起步走起步走 - 添加外设起步走 - 配置网络SDK 安装软件包下载官方外设模块应用开发应用开发步骤应用编程模型扩展外设对象应用测试交互通道驱动开发驱动开发起步走驱动编程模型驱动测试Ruff 仓库设备添加指南GPIO 接口指南I2C 接口指南UART 接口指南PWM 接口指南ADC 接口指南QEI 接口指南板卡开发板卡开发起步走板卡模型详解Ruff Lite准备开发环境开发环境 - TM4C1294开发环境 - ESP32Ruff Lite 起步走Ruff Lite 常见问题杂项Rap 命令行指南Rap 控制台固件升级官方开发套件说明书Raspberry Pi 起步走RuffOS 移植指南发布日志FAQ© 2021 Nanchao沪ICP备16002278号 沪公网安备 31011502005873号首页文档API下载开始使用起步走起步走 - 添加外设起步走 - 配置网络SDK 安装软件包下载官方外设模块应用开发应用开发步骤应用编程模型扩展外设对象应用测试交互通道驱动开发驱动开发起步走驱动编程模型驱动测试Ruff 仓库设备添加指南GPIO 接口指南I2C 接口指南UART 接口指南PWM 接口指南ADC 接口指南QEI 接口指南板卡开发板卡开发起步走板卡模型详解Ruff Lite准备开发环境开发环境 - TM4C1294开发环境 - ESP32Ruff Lite 起步走Ruff Lite 常见问题杂项Rap 命令行指南Rap 控制台固件升级官方开发套件说明书Raspberry Pi 起步走RuffOS 移植指南发布日志FA

RUFF中文(简体)翻译:剑桥词典

RUFF中文(简体)翻译:剑桥词典

词典

翻译

语法

同义词词典

+Plus

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录

/

注册

中文 (简体)

查找

查找

英语-中文(简体)

ruff 在英语-中文(简体)词典中的翻译

ruffnoun [ C ] uk

Your browser doesn't support HTML5 audio

/rʌf/ us

Your browser doesn't support HTML5 audio

/rʌf/

Add to word list

Add to word list

a large, stiff collar with many folds, worn in Europe in the 16th and 17th centuries, or a circle of hair or feathers growing round the neck of a bird or animal

(16及17世纪欧洲人衣服上的)轮状皱领;(野兽或鸟的)翎颌

(ruff在剑桥英语-中文(简体)词典的翻译 © Cambridge University Press)

ruff的例句

ruff

How do we know that there may not be economy from the centre which will ruff right through the education authorities?

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

Ruff is known for uncovering links between traditional black gospel music, and unaccompanied psalm singing.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

Ruffs were popular in the sixteenth century, and remained so till the late 1640s, alongside the more fashionable standing and falling bands.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

The ruff and reeve are rather scarce.

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

It is easy to mistake for some of the sandpipers, the ruff, reeve or for a greenshank and a number of other shore birds.

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

The same applies to the ruff and reeve.

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

The ruff and reeve are beautiful birds which once nested in this country, and may do so again.

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

Fine linen shirts, chemises, ruffs, collars, coifs and caps were embroidered in monochrome silks and edged in lace.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

示例中的观点不代表剑桥词典编辑、剑桥大学出版社和其许可证颁发者的观点。

C1

ruff的翻译

中文(繁体)

(16及17世紀歐洲人衣服上的)輪狀皺領, (野獸或鳥的)翎頜…

查看更多内容

西班牙语

cuello, lechuguilla, gorguera…

查看更多内容

葡萄牙语

tufo de penas, colar…

查看更多内容

需要一个翻译器吗?

获得快速、免费的翻译!

翻译器工具

ruff的发音是什么?

在英语词典中查看 ruff 的释义

浏览

rue

rue the day idiom

rueful

ruefully

ruff

ruffian

ruffle

ruffle someone's feathers idiom

rug

“每日一词”

veggie burger

UK

Your browser doesn't support HTML5 audio

/ˈvedʒ.i ˌbɜː.ɡər/

US

Your browser doesn't support HTML5 audio

/ˈvedʒ.i ˌbɝː.ɡɚ/

a type of food similar to a hamburger but made without meat, by pressing together small pieces of vegetables, seeds, etc. into a flat, round shape

关于这个

博客

Forget doing it or forget to do it? Avoiding common mistakes with verb patterns (2)

March 06, 2024

查看更多

新词

stochastic parrot

March 04, 2024

查看更多

已添加至 list

回到页面顶端

内容

英语-中文(简体)例句翻译

©剑桥大学出版社与评估2024

学习

学习

学习

新词

帮助

纸质书出版

Word of the Year 2021

Word of the Year 2022

Word of the Year 2023

开发

开发

开发

词典API

双击查看

搜索Widgets

执照数据

关于

关于

关于

无障碍阅读

剑桥英语教学

剑桥大学出版社与评估

授权管理

Cookies与隐私保护

语料库

使用条款

京ICP备14002226号-2

©剑桥大学出版社与评估2024

剑桥词典+Plus

我的主页

+Plus 帮助

退出

词典

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

翻译

语法

同义词词典

Pronunciation

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录 /

注册

中文 (简体)  

Change

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

中文 (简体)

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

关注我们

选择一本词典

最近的词和建议

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

语法与同义词词典

对自然书面和口头英语用法的解释

英语语法

同义词词典

Pronunciation

British and American pronunciations with audio

English Pronunciation

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

词典+Plus

词汇表

选择语言

中文 (简体)  

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

内容

英语-中文(简体) 

 Noun

例句

Translations

语法

所有翻译

我的词汇表

把ruff添加到下面的一个词汇表中,或者创建一个新词汇表。

更多词汇表

前往词汇表

对该例句有想法吗?

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

Ruff.io

.io首页文档API下载EN设备宝软件包下载请根据你的平台,下载对应的 Ruff 版本,立刻开启你的 Ruff 之旅。Ruff SDKRuff SDK 1.11.13 (Mac): dmg 安装包/ Homebrew安装/ 压缩包Ruff SDK 1.11.13 (Windows-64bit): msi 安装包/ 压缩包Ruff SDK 1.11.13 (Linux-64bit): deb 安装包/ rpm 安装包/ 压缩包RuffRuff 1.11.13 (ruff-mbd-v1)Ruff 1.11.13 (树莓派)Ruff 1.11.13 (MIPS32 big-endian)Ruff 1.11.13 (MIPS32)Ruff 1.11.13 (龙芯)Ruff LiteRuff Lite 0.7.2 (TM4C1294)Ruff Lite 0.1.1 (ESP32)查看发布日志了解相关修改。查看SDK安装了解 SDK 的安装方式。查看固件升级了解固件升级的方式。查看历史下载了解旧版本。上次更新:2020-01-09 上一页下一页目录 回到顶部开始使用起步走起步走 - 添加外设起步走 - 配置网络SDK 安装软件包下载官方外设模块应用开发应用开发步骤应用编程模型扩展外设对象应用测试交互通道驱动开发驱动开发起步走驱动编程模型驱动测试Ruff 仓库设备添加指南GPIO 接口指南I2C 接口指南UART 接口指南PWM 接口指南ADC 接口指南QEI 接口指南板卡开发板卡开发起步走板卡模型详解Ruff Lite准备开发环境开发环境 - TM4C1294开发环境 - ESP32Ruff Lite 起步走Ruff Lite 常见问题杂项Rap 命令行指南Rap 控制台固件升级官方开发套件说明书Raspberry Pi 起步走RuffOS 移植指南发布日志FAQ© 2021 Nanchao沪ICP备16002278号 沪公网安备 31011502005873号首页文档API下载开始使用起步走起步走 - 添加外设起步走 - 配置网络SDK 安装软件包下载官方外设模块应用开发应用开发步骤应用编程模型扩展外设对象应用测试交互通道驱动开发驱动开发起步走驱动编程模型驱动测试Ruff 仓库设备添加指南GPIO 接口指南I2C 接口指南UART 接口指南PWM 接口指南ADC 接口指南QEI 接口指南板卡开发板卡开发起步走板卡模型详解Ruff Lite准备开发环境开发环境 - TM4C1294开发环境 - ESP32Ruff Lite 起步走Ruff Lite 常见问题杂项Rap 命令行指南Rap 控制台固件升级官方开发套件说明书Raspberry Pi 起步走RuffOS 移植指南发布日志FA

Ruff.io

.io首页文档API下载EN设备宝软件定义硬件支持 JavaScript 开发应用的物联网操作系统  起步走三分钟点亮物联网世界的第一盏灯更简单的物联网应用开发JavaScript 编程采用开发者众多的唯一全栈语言作为编程语言硬件抽象调用程序库即可操作硬件,降低开发入门门槛跨平台忽略板卡差异,同一份应用代码可以运行在不同板卡上高效便捷开发告别交叉编译、烧写板卡,PC 上完成测试,一键部署完善的物联网应用开发体系SDK软件工具开发包下载 >软件仓库软件包共享平台前往 >开发套件物联网开发套件购买 >完善的物联网应用开发体系丰富的物联网应用场景创意模型平衡车抓娃娃机挖掘机工业生产电力监控设备运维太阳能智能家居电子监控光温控制空气检测准备好了吗?开启物联网应用开发之旅 起步走软件定义硬件产品概览下载购买开发者开发文档API开发社区软件仓库公司关于 Ruff新闻动态加入我们更多产品SluffBridge联系方式support@nanchao.org+86 12334444寻求商务合作© 2021 Nanchao沪ICP备16002278号 沪公网安备 31011502005873号首页文档API下

Ruff: Ruff 是基于 Rust 编写的高性能 Python 代码分析工具,宣称比现有的同类工具快 10~100 倍

Ruff: Ruff 是基于 Rust 编写的高性能 Python 代码分析工具,宣称比现有的同类工具快 10~100 倍

登录

注册

开源

企业版

高校版

搜索

帮助中心

使用条款

关于我们

开源

企业版

高校版

私有云

Gitee AI

NEW

我知道了

查看详情

登录

注册

代码拉取完成,页面将自动刷新

捐赠

捐赠前请先登录

取消

前往登录

扫描微信二维码支付

取消

支付完成

支付提示

将跳转至支付宝完成支付

确定

取消

Watch

不关注

关注所有动态

仅关注版本发行动态

关注但不提醒动态

4

Star

6

Fork

1

Gitee 极速下载 / Ruff

代码

Wiki

统计

流水线

服务

Gitee Pages

质量分析

Jenkins for Gitee

腾讯云托管

腾讯云 Serverless

悬镜安全

阿里云 SAE

Codeblitz

我知道了,不再自动展开

加入 Gitee

与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)

免费加入

已有帐号?

立即登录

返回

此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。

原始仓库:

https://github.com/charliermarsh/ruff

main

管理

管理

分支 (757)

标签 (293)

main

ruff-action-example

ag/switch-to-qualified-name

qualified-name-lifetimes

charlie/path

blank-lines-isort

token-kinds

perf-indexer-from-tokens

blank-lines-typing-stub

jane/lsp/server-mvp

sort-json-schema-pre-commit

ruff-0.3

rc-extension-ruf015

jane/formatter/useless-noqa

charlie/build

com812-formatter-compat

formatter-inline

simple-tokenizer-reorder-tokens

perf-string-normalization

release-upload-download-artifact

v0.3.0

v0.2.2

v0.2.1

v0.2.0

v0.1.15

v0.1.14

v0.1.13

v0.1.12

v0.1.11

v0.1.10

v0.1.9

v0.1.8

v0.1.7

v0.1.6

v0.1.5

v0.1.4

v0.1.3

v0.1.2

v0.1.1

v0.1.0

克隆/下载

克隆/下载

HTTPS

SSH

SVN

SVN+SSH

下载ZIP

登录提示

该操作需登录 Gitee 帐号,请先登录后再操作。

立即登录

没有帐号,去注册

提示

下载代码请复制以下命令到终端执行

为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置

git config --global user.name userName

git config --global user.email userEmail

初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置

1

生成 RSA 密钥

2

获取 RSA 公钥内容,并配置到 SSH公钥 中

在 Gitee 上使用 SVN,请访问 使用指南

使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作

Username for 'https://gitee.com': userName

Password for 'https://userName@gitee.com':

#

私人令牌

新建文件

新建子模块

上传文件

分支 757

标签 293

贡献代码

同步代码

创建 Pull Request

了解更多

对比差异

通过 Pull Request 同步

同步更新到分支

通过 Pull Request 同步

将会在向当前分支创建一个 Pull Request,合入后将完成同步

Eero Vaher

Make rule PT012 example clearer (#10248)

cbd927f

6421 次提交

提交

取消

提示:

由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件

.cargo

保存

取消

.config

保存

取消

.devcontainer

保存

取消

.github

保存

取消

assets

保存

取消

crates

保存

取消

docs

保存

取消

fuzz

保存

取消

playground

保存

取消

python

保存

取消

scripts

保存

取消

.editorconfig

保存

取消

.gitattributes

保存

取消

.gitignore

保存

取消

.markdownlint.yaml

保存

取消

.pre-commit-config.yaml

保存

取消

BREAKING_CHANGES.md

保存

取消

CHANGELOG.md

保存

取消

CODE_OF_CONDUCT.md

保存

取消

CONTRIBUTING.md

保存

取消

Cargo.lock

保存

取消

Cargo.toml

保存

取消

Dockerfile

保存

取消

LICENSE

保存

取消

README.md

保存

取消

_typos.toml

保存

取消

clippy.toml

保存

取消

mkdocs.insiders.yml

保存

取消

mkdocs.public.yml

保存

取消

mkdocs.template.yml

保存

取消

pyproject.toml

保存

取消

ruff.schema.json

保存

取消

rust-toolchain.toml

保存

取消

Loading...

README

MIT

Ruff

Docs | Playground

An extremely fast Python linter and code formatter, written in Rust.

Linting the CPython codebase from scratch.

⚡️ 10-100x faster than existing linters (like Flake8) and formatters (like Black)

Installable via pip

️ pyproject.toml support

Python 3.12 compatibility

⚖️ Drop-in parity with Flake8, isort, and Black

Built-in caching, to avoid re-analyzing unchanged files

Fix support, for automatic error correction (e.g., automatically remove unused imports)

Over 700 built-in rules, with native re-implementations

of popular Flake8 plugins, like flake8-bugbear

⌨️ First-party editor integrations for

VS Code and more

Monorepo-friendly, with hierarchical and cascading configuration

Ruff aims to be orders of magnitude faster than alternative tools while integrating more

functionality behind a single, common interface.

Ruff can be used to replace Flake8 (plus dozens of plugins),

Black, isort,

pydocstyle, pyupgrade,

autoflake, and more, all while executing tens or hundreds of

times faster than any individual tool.

Ruff is extremely actively developed and used in major open-source projects like:

Apache Airflow

FastAPI

Hugging Face

Pandas

SciPy

...and many more.

Ruff is backed by Astral. Read the launch post,

or the original project announcement.

Testimonials

Sebastián Ramírez, creator

of FastAPI:

Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually

running and checking the code.

Nick Schrock, founder of Elementl,

co-creator of GraphQL:

Why is Ruff a gamechanger? Primarily because it is nearly 1000x faster. Literally. Not a typo. On

our largest module (dagster itself, 250k LOC) pylint takes about 2.5 minutes, parallelized across 4

cores on my M1. Running ruff against our entire codebase takes .4 seconds.

Bryan Van de Ven, co-creator

of Bokeh, original author

of Conda:

Ruff is ~150-200x faster than flake8 on my machine, scanning the whole repo takes ~0.2s instead of

~20s. This is an enormous quality of life improvement for local dev. It's fast enough that I added

it as an actual commit hook, which is terrific.

Timothy Crosley,

creator of isort:

Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe

it was working till I intentionally introduced some errors.

Tim Abbott, lead

developer of Zulip:

This is just ridiculously fast... ruff is amazing.

Table of Contents

For more, see the documentation.

Getting Started

Configuration

Rules

Contributing

Support

Acknowledgements

Who's Using Ruff?

License

Getting Started

For more, see the documentation.

Installation

Ruff is available as ruff on PyPI:

pip install ruff

You can also install Ruff via Homebrew, Conda,

and with a variety of other package managers.

Usage

To run Ruff as a linter, try any of the following:

ruff check . # Lint all files in the current directory (and any subdirectories).

ruff check path/to/code/ # Lint all files in `/path/to/code` (and any subdirectories).

ruff check path/to/code/*.py # Lint all `.py` files in `/path/to/code`.

ruff check path/to/code/to/file.py # Lint `file.py`.

ruff check @arguments.txt # Lint using an input file, treating its contents as newline-delimited command-line arguments.

Or, to run Ruff as a formatter:

ruff format . # Format all files in the current directory (and any subdirectories).

ruff format path/to/code/ # Format all files in `/path/to/code` (and any subdirectories).

ruff format path/to/code/*.py # Format all `.py` files in `/path/to/code`.

ruff format path/to/code/to/file.py # Format `file.py`.

ruff format @arguments.txt # Format using an input file, treating its contents as newline-delimited command-line arguments.

Ruff can also be used as a pre-commit hook via ruff-pre-commit:

- repo: https://github.com/astral-sh/ruff-pre-commit

# Ruff version.

rev: v0.3.0

hooks:

# Run the linter.

- id: ruff

args: [ --fix ]

# Run the formatter.

- id: ruff-format

Ruff can also be used as a VS Code extension or

alongside any other editor through the Ruff LSP.

Ruff can also be used as a GitHub Action via

ruff-action:

name: Ruff

on: [ push, pull_request ]

jobs:

ruff:

runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v4

- uses: chartboost/ruff-action@v1

Configuration

Ruff can be configured through a pyproject.toml, ruff.toml, or .ruff.toml file (see:

Configuration, or Settings

for a complete list of all configuration options).

If left unspecified, Ruff's default configuration is equivalent to:

[tool.ruff]

# Exclude a variety of commonly ignored directories.

exclude = [

".bzr",

".direnv",

".eggs",

".git",

".git-rewrite",

".hg",

".ipynb_checkpoints",

".mypy_cache",

".nox",

".pants.d",

".pyenv",

".pytest_cache",

".pytype",

".ruff_cache",

".svn",

".tox",

".venv",

".vscode",

"__pypackages__",

"_build",

"buck-out",

"build",

"dist",

"node_modules",

"site-packages",

"venv",

]

# Same as Black.

line-length = 88

indent-width = 4

# Assume Python 3.8

target-version = "py38"

[tool.ruff.lint]

# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.

select = ["E4", "E7", "E9", "F"]

ignore = []

# Allow fix for all enabled rules (when `--fix`) is provided.

fixable = ["ALL"]

unfixable = []

# Allow unused variables when underscore-prefixed.

dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.format]

# Like Black, use double quotes for strings.

quote-style = "double"

# Like Black, indent with spaces, rather than tabs.

indent-style = "space"

# Like Black, respect magic trailing commas.

skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.

line-ending = "auto"

Some configuration options can be provided via the command-line, such as those related to

rule enablement and disablement, file discovery, and logging level:

ruff check path/to/code/ --select F401 --select F403 --quiet

See ruff help for more on Ruff's top-level commands, or ruff help check and ruff help format

for more on the linting and formatting commands, respectively.

Rules

Ruff supports over 700 lint rules, many of which are inspired by popular tools like Flake8,

isort, pyupgrade, and others. Regardless of the rule's origin, Ruff re-implements every rule in

Rust as a first-party feature.

By default, Ruff enables Flake8's F rules, along with a subset of the E rules, omitting any

stylistic rules that overlap with the use of a formatter, like ruff format or

Black.

If you're just getting started with Ruff, the default rule set is a great place to start: it

catches a wide variety of common errors (like unused imports) with zero configuration.

Beyond the defaults, Ruff re-implements some of the most popular Flake8 plugins and related code

quality tools, including:

autoflake

eradicate

flake8-2020

flake8-annotations

flake8-async

flake8-bandit (#1646)

flake8-blind-except

flake8-boolean-trap

flake8-bugbear

flake8-builtins

flake8-commas

flake8-comprehensions

flake8-copyright

flake8-datetimez

flake8-debugger

flake8-django

flake8-docstrings

flake8-eradicate

flake8-errmsg

flake8-executable

flake8-future-annotations

flake8-gettext

flake8-implicit-str-concat

flake8-import-conventions

flake8-logging

flake8-logging-format

flake8-no-pep420

flake8-pie

flake8-print

flake8-pyi

flake8-pytest-style

flake8-quotes

flake8-raise

flake8-return

flake8-self

flake8-simplify

flake8-slots

flake8-super

flake8-tidy-imports

flake8-todos

flake8-trio

flake8-type-checking

flake8-use-pathlib

flynt (#2102)

isort

mccabe

pandas-vet

pep8-naming

pydocstyle

pygrep-hooks

pylint-airflow

pyupgrade

tryceratops

yesqa

For a complete enumeration of the supported rules, see Rules.

Contributing

Contributions are welcome and highly appreciated. To get started, check out the

contributing guidelines.

You can also join us on Discord.

Support

Having trouble? Check out the existing issues on GitHub,

or feel free to open a new one.

You can also ask for help on Discord.

Acknowledgements

Ruff's linter draws on both the APIs and implementation details of many other

tools in the Python ecosystem, especially Flake8, Pyflakes,

pycodestyle, pydocstyle,

pyupgrade, and isort.

In some cases, Ruff includes a "direct" Rust port of the corresponding tool.

We're grateful to the maintainers of these tools for their work, and for all

the value they've provided to the Python community.

Ruff's formatter is built on a fork of Rome's rome_formatter,

and again draws on both API and implementation details from Rome,

Prettier, and Black.

Ruff's import resolver is based on the import resolution algorithm from Pyright.

Ruff is also influenced by a number of tools outside the Python ecosystem, like

Clippy and ESLint.

Ruff is the beneficiary of a large number of contributors.

Ruff is released under the MIT license.

Who's Using Ruff?

Ruff is used by a number of major open-source projects and companies, including:

Albumentations

Amazon (AWS SAM)

Anthropic (Python SDK)

Apache Airflow

AstraZeneca (Magnus)

Babel

Benchling (Refac)

Bokeh

Cryptography (PyCA)

CERN (Indico)

DVC

Dagger

Dagster

Databricks (MLflow)

FastAPI

Gradio

Great Expectations

HTTPX

Hatch

Home Assistant

Hugging Face (Transformers,

Datasets,

Diffusers)

ING Bank (popmon, probatus)

Ibis

ivy

Jupyter

Kraken Tech

LangChain

Litestar

LlamaIndex

Matrix (Synapse)

MegaLinter

Meltano (Meltano CLI, Singer SDK)

Microsoft (Semantic Kernel,

ONNX Runtime,

LightGBM)

Modern Treasury (Python SDK)

Mozilla (Firefox)

Mypy

Netflix (Dispatch)

Neon

NoneBot

NumPyro

ONNX

OpenBB

PDM

PaddlePaddle

Pandas

Pillow

Poetry

Polars

PostHog

Prefect (Python SDK, Marvin)

PyInstaller

PyMC

PyMC-Marketing

pytest

PyTorch

Pydantic

Pylint

PyVista

Reflex

River

Rippling

Robyn

Saleor

Scale AI (Launch SDK)

SciPy

Snowflake (SnowCLI)

Sphinx

Stable Baselines3

Starlette

The Algorithms

Vega-Altair

WordPress (Openverse)

ZenML

Zulip

build (PyPA)

cibuildwheel (PyPA)

delta-rs

featuretools

meson-python

nox

pip

Show Your Support

If you're using Ruff, consider adding the Ruff badge to your project's README.md:

[![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)

...or README.rst:

.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json

:target: https://github.com/astral-sh/ruff

:alt: Ruff

...or, as HTML:

Ruff

License

MIT

MIT License

Copyright (c) 2022 Charles Marsh

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

end of terms and conditions

The externally maintained libraries from which parts of the Software is derived

are:

- flake8-comprehensions, licensed as follows:

"""

MIT License

Copyright (c) 2017 Adam Johnson

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-no-pep420, licensed as follows:

"""

MIT License

Copyright (c) 2020 Adam Johnson

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-tidy-imports, licensed as follows:

"""

MIT License

Copyright (c) 2017 Adam Johnson

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-return, licensed as follows:

"""

MIT License

Copyright (c) 2019 Afonasev Evgeniy

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-2020, licensed as follows:

"""

Copyright (c) 2019 Anthony Sottile

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- pyupgrade, licensed as follows:

"""

Copyright (c) 2017 Anthony Sottile

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- flake8-blind-except, licensed as follows:

"""

The MIT License (MIT)

Copyright (c) 2014 Elijah Andrews

Permission is hereby granted, free of charge, to any person obtaining a copy of

this software and associated documentation files (the "Software"), to deal in

the Software without restriction, including without limitation the rights to

use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of

the Software, and to permit persons to whom the Software is furnished to do so,

subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR

COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER

IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN

CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

"""

- flake8-gettext, licensed as follows:

"""

BSD Zero Clause License

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

"""

- flake8-implicit-str-concat, licensed as follows:

"""

The MIT License (MIT)

Copyright (c) 2019 Dylan Turner

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- flake8-debugger, licensed as follows:

"""

MIT License

Copyright (c) 2016 Joseph Kahn

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-pyi, licensed as follows:

"""

The MIT License (MIT)

Copyright (c) 2016 Łukasz Langa

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-print, licensed as follows:

"""

MIT License

Copyright (c) 2016 Joseph Kahn

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-import-conventions, licensed as follows:

"""

MIT License

Copyright (c) 2021 João Palmeiro

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-simplify, licensed as follows:

"""

MIT License

Copyright (c) 2020 Martin Thoma

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-slots, licensed as follows:

"""

Copyright (c) 2021 Dominic Davis-Foster

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,

DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR

OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE

OR OTHER DEALINGS IN THE SOFTWARE.

"""

- flake8-todos, licensed as follows:

"""

Copyright (c) 2019 EclecticIQ. All rights reserved.

Copyright (c) 2020 Gram . All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,

this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its

contributors may be used to endorse or promote products derived from this

software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE

FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR

SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER

CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""

- flake8-unused-arguments, licensed as follows:

"""

MIT License

Copyright (c) 2019 Nathan Hoad

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- pygrep-hooks, licensed as follows:

"""

Copyright (c) 2018 Anthony Sottile

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- autoflake, licensed as follows:

"""

Copyright (C) 2012-2018 Steven Myint

Permission is hereby granted, free of charge, to any person obtaining a copy of

this software and associated documentation files (the "Software"), to deal in

the Software without restriction, including without limitation the rights to

use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies

of the Software, and to permit persons to whom the Software is furnished to do

so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- autotyping, licensed as follows:

"""

MIT License

Copyright (c) 2023 Jelle Zijlstra

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- Flake8, licensed as follows:

"""

== Flake8 License (MIT) ==

Copyright (C) 2011-2013 Tarek Ziade

Copyright (C) 2012-2016 Ian Cordasco

Permission is hereby granted, free of charge, to any person obtaining a copy of

this software and associated documentation files (the "Software"), to deal in

the Software without restriction, including without limitation the rights to

use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies

of the Software, and to permit persons to whom the Software is furnished to do

so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-bugbear, licensed as follows:

"""

The MIT License (MIT)

Copyright (c) 2016 Łukasz Langa

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-commas, licensed as follows:

"""

The MIT License (MIT)

Copyright (c) 2017 Thomas Grainger.

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

Portions of this flake8-commas Software may utilize the following

copyrighted material, the use of which is hereby acknowledged.

Original flake8-commas: https://github.com/trevorcreech/flake8-commas/commit/e8563b71b1d5442e102c8734c11cb5202284293d

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- flynt, licensed as follows:

"""

MIT License

Copyright (c) 2019-2022 Ilya Kamenshchikov

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- isort, licensed as follows:

"""

The MIT License (MIT)

Copyright (c) 2013 Timothy Edmund Crosley

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- pep8-naming, licensed as follows:

"""

Copyright © 2013 Florent Xicluna

Licensed under the terms of the Expat License

Permission is hereby granted, free of charge, to any person

obtaining a copy of this software and associated documentation files

(the "Software"), to deal in the Software without restriction,

including without limitation the rights to use, copy, modify, merge,

publish, distribute, sublicense, and/or sell copies of the Software,

and to permit persons to whom the Software is furnished to do so,

subject to the following conditions:

The above copyright notice and this permission notice shall be

included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS

BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN

ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN

CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- pycodestyle, licensed as follows:

"""

Copyright © 2006-2009 Johann C. Rocholl

Copyright © 2009-2014 Florent Xicluna

Copyright © 2014-2020 Ian Lee

Licensed under the terms of the Expat License

Permission is hereby granted, free of charge, to any person

obtaining a copy of this software and associated documentation files

(the "Software"), to deal in the Software without restriction,

including without limitation the rights to use, copy, modify, merge,

publish, distribute, sublicense, and/or sell copies of the Software,

and to permit persons to whom the Software is furnished to do so,

subject to the following conditions:

The above copyright notice and this permission notice shall be

included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS

BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN

ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN

CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- pydocstyle, licensed as follows:

"""

Copyright (c) 2012 GreenSteam,

Copyright (c) 2014-2020 Amir Rachum,

Copyright (c) 2020 Sambhav Kothari,

Permission is hereby granted, free of charge, to any person obtaining a copy of

this software and associated documentation files (the "Software"), to deal in

the Software without restriction, including without limitation the rights to

use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies

of the Software, and to permit persons to whom the Software is furnished to do

so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- Pyflakes, licensed as follows:

"""

Copyright 2005-2011 Divmod, Inc.

Copyright 2013-2014 Florent Xicluna

Permission is hereby granted, free of charge, to any person obtaining

a copy of this software and associated documentation files (the

"Software"), to deal in the Software without restriction, including

without limitation the rights to use, copy, modify, merge, publish,

distribute, sublicense, and/or sell copies of the Software, and to

permit persons to whom the Software is furnished to do so, subject to

the following conditions:

The above copyright notice and this permission notice shall be

included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE

LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION

OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION

WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

"""

- flake8-use-pathlib, licensed as follows:

"""

MIT License

Copyright (c) 2021 Rodolphe Pelloux-Prayer

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- RustPython, licensed as follows:

"""

MIT License

Copyright (c) 2020 RustPython Team

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-annotations, licensed as follows:

"""

MIT License

Copyright (c) 2019 - Present S. Co1

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-async, licensed as follows:

"""

MIT License

Copyright (c) 2022 Cooper Lees

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-type-checking, licensed as follows:

"""

Copyright (c) 2021, Sondre Lillebø Gundersen

All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this

list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,

this list of conditions and the following disclaimer in the documentation

and/or other materials provided with the distribution.

* Neither the name of pytest-{{ cookiecutter.plugin_name }} nor the names of its

contributors may be used to endorse or promote products derived from

this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE

FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR

SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER

CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""

- flake8-bandit, licensed as follows:

"""

Copyright (c) 2017 Tyler Wince

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- flake8-eradicate, licensed as follows:

"""

MIT License

Copyright (c) 2018 Nikita Sobolev

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-quotes, licensed as follows:

"""

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

"""

- flake8-logging-format, licensed as follows:

"""

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,

and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by

the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all

other entities that control, are controlled by, or are under common

control with that entity. For the purposes of this definition,

"control" means (i) the power, direct or indirect, to cause the

direction or management of such entity, whether by contract or

otherwise, or (ii) ownership of fifty percent (50%) or more of the

outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity

exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,

including but not limited to software source code, documentation

source, and configuration files.

"Object" form shall mean any form resulting from mechanical

transformation or translation of a Source form, including but

not limited to compiled object code, generated documentation,

and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or

Object form, made available under the License, as indicated by a

copyright notice that is included in or attached to the work

(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object

form, that is based on (or derived from) the Work and for which the

editorial revisions, annotations, elaborations, or other modifications

represent, as a whole, an original work of authorship. For the purposes

of this License, Derivative Works shall not include works that remain

separable from, or merely link (or bind by name) to the interfaces of,

the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including

the original version of the Work and any modifications or additions

to that Work or Derivative Works thereof, that is intentionally

submitted to Licensor for inclusion in the Work by the copyright owner

or by an individual or Legal Entity authorized to submit on behalf of

the copyright owner. For the purposes of this definition, "submitted"

means any form of electronic, verbal, or written communication sent

to the Licensor or its representatives, including but not limited to

communication on electronic mailing lists, source code control systems,

and issue tracking systems that are managed by, or on behalf of, the

Licensor for the purpose of discussing and improving the Work, but

excluding communication that is conspicuously marked or otherwise

designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity

on behalf of whom a Contribution has been received by Licensor and

subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

copyright license to reproduce, prepare Derivative Works of,

publicly display, publicly perform, sublicense, and distribute the

Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

(except as stated in this section) patent license to make, have made,

use, offer to sell, sell, import, and otherwise transfer the Work,

where such license applies only to those patent claims licensable

by such Contributor that are necessarily infringed by their

Contribution(s) alone or by combination of their Contribution(s)

with the Work to which such Contribution(s) was submitted. If You

institute patent litigation against any entity (including a

cross-claim or counterclaim in a lawsuit) alleging that the Work

or a Contribution incorporated within the Work constitutes direct

or contributory patent infringement, then any patent licenses

granted to You under this License for that Work shall terminate

as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the

Work or Derivative Works thereof in any medium, with or without

modifications, and in Source or Object form, provided that You

meet the following conditions:

(a) You must give any other recipients of the Work or

Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices

stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works

that You distribute, all copyright, patent, trademark, and

attribution notices from the Source form of the Work,

excluding those notices that do not pertain to any part of

the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its

distribution, then any Derivative Works that You distribute must

include a readable copy of the attribution notices contained

within such NOTICE file, excluding those notices that do not

pertain to any part of the Derivative Works, in at least one

of the following places: within a NOTICE text file distributed

as part of the Derivative Works; within the Source form or

documentation, if provided along with the Derivative Works; or,

within a display generated by the Derivative Works, if and

wherever such third-party notices normally appear. The contents

of the NOTICE file are for informational purposes only and

do not modify the License. You may add Your own attribution

notices within Derivative Works that You distribute, alongside

or as an addendum to the NOTICE text from the Work, provided

that such additional attribution notices cannot be construed

as modifying the License.

You may add Your own copyright statement to Your modifications and

may provide additional or different license terms and conditions

for use, reproduction, or distribution of Your modifications, or

for any such Derivative Works as a whole, provided Your use,

reproduction, and distribution of the Work otherwise complies with

the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,

any Contribution intentionally submitted for inclusion in the Work

by You to the Licensor shall be under the terms and conditions of

this License, without any additional terms or conditions.

Notwithstanding the above, nothing herein shall supersede or modify

the terms of any separate license agreement you may have executed

with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade

names, trademarks, service marks, or product names of the Licensor,

except as required for reasonable and customary use in describing the

origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or

agreed to in writing, Licensor provides the Work (and each

Contributor provides its Contributions) on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

implied, including, without limitation, any warranties or conditions

of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

PARTICULAR PURPOSE. You are solely responsible for determining the

appropriateness of using or redistributing the Work and assume any

risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,

whether in tort (including negligence), contract, or otherwise,

unless required by applicable law (such as deliberate and grossly

negligent acts) or agreed to in writing, shall any Contributor be

liable to You for damages, including any direct, indirect, special,

incidental, or consequential damages of any character arising as a

result of this License or out of the use or inability to use the

Work (including but not limited to damages for loss of goodwill,

work stoppage, computer failure or malfunction, or any and all

other commercial damages or losses), even if such Contributor

has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing

the Work or Derivative Works thereof, You may choose to offer,

and charge a fee for, acceptance of support, warranty, indemnity,

or other liability obligations and/or rights consistent with this

License. However, in accepting such obligations, You may act only

on Your own behalf and on Your sole responsibility, not on behalf

of any other Contributor, and only if You agree to indemnify,

defend, and hold each Contributor harmless for any liability

incurred by, or claims asserted against, such Contributor by reason

of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following

boilerplate notice, with the fields enclosed by brackets "{}"

replaced with your own identifying information. (Don't include

the brackets!) The text should be enclosed in the appropriate

comment syntax for the file format. We also recommend that a

file or class name and description of purpose be included on the

same "printed page" as the copyright notice for easier

identification within third-party archives.

Copyright {yyyy} {name of copyright owner}

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

"""

- flake8-raise, licensed as follows:

"""

MIT License

Copyright (c) 2020 Jon Dufresne

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-self, licensed as follows:

"""

MIT License

Copyright (c) 2023 Korijn van Golen

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-django, licensed under the GPL license.

- perflint, licensed as follows:

"""

MIT License

Copyright (c) 2022 Anthony Shaw

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-logging, licensed as follows:

"""

MIT License

Copyright (c) 2023 Adam Johnson

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- flake8-trio, licensed as follows:

"""

MIT License

Copyright (c) 2022 Zac Hatfield-Dodds

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

- Pyright, licensed as follows:

"""

MIT License

Pyright - A static type checker for the Python language

Copyright (c) Microsoft Corporation. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE

"""

- rust-analyzer/text-size, licensed under the MIT license:

"""

Permission is hereby granted, free of charge, to any

person obtaining a copy of this software and associated

documentation files (the "Software"), to deal in the

Software without restriction, including without

limitation the rights to use, copy, modify, merge,

publish, distribute, sublicense, and/or sell copies of

the Software, and to permit persons to whom the Software

is furnished to do so, subject to the following

conditions:

The above copyright notice and this permission notice

shall be included in all copies or substantial portions

of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF

ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED

TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A

PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT

SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY

CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION

OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR

IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER

DEALINGS IN THE SOFTWARE.

"""

- rome/tools, licensed under the MIT license:

"""

MIT License

Copyright (c) Rome Tools, Inc. and its affiliates.

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

"""

Starred

6

Star

6

Fork

1

捐赠

0 人次

举报

举报成功

我们将于2个工作日内通过站内信反馈结果给你!

请认真填写举报原因,尽可能描述详细。

举报类型

请选择举报类型

举报原因

取消

发送

误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消

提交

简介

Ruff 是基于 Rust 编写的高性能 Python 代码分析工具,宣称比现有的同类工具快 10~100 倍

展开

收起

暂无标签

https://www.oschina.net/p/ruff

Rust

等 4 种语言

Rust

97.4%

TypeScript

1.3%

Python

1.1%

Shell

0.2%

MIT

使用 MIT 开源许可协议

Code of conduct

保存更改

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多

不能加载更多了

编辑仓库简介

简介内容

Ruff 是基于 Rust 编写的高性能 Python 代码分析工具,宣称比现有的同类工具快 10~100 倍

主页

取消

保存更改

Rust

1

https://gitee.com/mirrors/Ruff.git

git@gitee.com:mirrors/Ruff.git

mirrors

Ruff

Ruff

main

深圳市奥思网络科技有限公司版权所有

Git 大全

Git 命令学习

CopyCat 代码克隆检测

APP与插件下载

Gitee Reward

Gitee 封面人物

GVP 项目

Gitee 博客

Gitee 公益计划

Gitee 持续集成

OpenAPI

帮助文档

在线自助服务

更新日志

关于我们

加入我们

使用条款

意见建议

合作伙伴

售前咨询客服

技术交流QQ群

微信服务号

client#oschina.cn

企业版在线使用:400-606-0201

专业版私有部署:

13670252304

13352947997

开放原子开源基金会

合作代码托管平台

违法和不良信息举报中心

粤ICP备12009483号

简 体

/

繁 體

/

English

点此查找更多帮助

搜索帮助

Git 命令在线学习

如何在 Gitee 导入 GitHub 仓库

Git 仓库基础操作

企业版和社区版功能对比

SSH 公钥设置

如何处理代码冲突

仓库体积过大,如何减小?

如何找回被删除的仓库数据

Gitee 产品配额说明

GitHub仓库快速导入Gitee及同步更新

什么是 Release(发行版)

将 PHP 项目自动发布到 packagist.org

评论

仓库举报

回到顶部

登录提示

该操作需登录 Gitee 帐号,请先登录后再操作。

立即登录

没有帐号,去注册