tp钱包下载app|ruff
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:
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 移植指南发布日志FARUFF中文(简体)翻译:剑桥词典
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 移植指南发布日志FARuff.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:
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
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 帐号,请先登录后再操作。
立即登录
没有帐号,去注册