Учитывая этот код в моем main.py:
def main():
greeter = type(
"Anon", (), {"greet": lambda self, name: print(f"Hello {name}") or self}
)()
(greeter
.greet("Anton")
.greet("Anabelle")
.greet("Aaron"))
if __name__ == "__main__":
main()
Я хочу сохранить цепочки вызовов, но ruff форматирует их как одну строку.
uv run ruff format
отформатирует мою строку приветствия как:
(greeter.greet("Anton").greet("Anabelle").greet("Aaron"))
Я наткнулся на эту проблему GitHub и соответствующий запрос на включение, поэтому предположил, что эта функция уже включена в предварительную версию, поэтому я подумал, что могу применить ее через свой pyproject.toml.
[tool.ruff]
preview = true
line-length = 88
[tool.ruff.lint]
# I = isort (imports), E/W = spacing, F = errors, UP = modern syntax
select = ["E", "W", "F", "I", "UP"]
Как разрешить многострочные вызовы с помощью ruff в Python?
Попытавшись создать упрощенный пример, он останется многострочным, как и должно быть:
def main():
greeter = type(
"Anon", (), {"greet": lambda self, name: print(f"Hello {name}") or self}
)()
(
greeter
# please keep it multiline please keep it multiline please keep it multiline
.greet("Anton")
.greet("Anabelle")
.greet("Aaron")
)
if __name__ == "__main__":
main()
однако другой код по-прежнему будет странно однострочным:
def _some_method_dealing_with_a_page(page: Page):
main_menu = MainMenu(page=page)
(
main_menu
# please keep it multiline please keep it multiline please keep it multiline
.click_on_main_menu("some entry")
.click_on_main_menu_item("some-other-entry")
)
не будет сохранен как есть, но будет отформатирован в:
main_menu = MainMenu(page=page)
(
main_menu
# please keep it multiline please keep it multiline please keep it multiline
.click_on_main_menu("some entry").click_on_main_menu_item("some-other-entry")
)
или в зависимости от длины аргументов я также вижу это:
main_menu = MainMenu(page=page)
(
main_menu
# please keep it multiline please keep it multiline please keep it multiline
.click_on_main_menu("ffffffffffffff").click_on_main_menu_item(
"ffffffffffffffffffffffff"
)
)
Подробнее здесь: https://stackoverflow.com/questions/798 ... n-and-ruff
Как заставить связанные вызовы методов оставаться многострочными, используя Python и ерш? ⇐ Python
Программы на Python
1767998838
Anonymous
Учитывая этот код в моем main.py:
def main():
greeter = type(
"Anon", (), {"greet": lambda self, name: print(f"Hello {name}") or self}
)()
(greeter
.greet("Anton")
.greet("Anabelle")
.greet("Aaron"))
if __name__ == "__main__":
main()
Я хочу сохранить цепочки вызовов, но ruff форматирует их как одну строку.
uv run ruff format
отформатирует мою строку приветствия как:
(greeter.greet("Anton").greet("Anabelle").greet("Aaron"))
Я наткнулся на эту проблему GitHub и соответствующий запрос на включение, поэтому предположил, что эта функция уже включена в предварительную версию, поэтому я подумал, что могу применить ее через свой pyproject.toml.
[tool.ruff]
preview = true
line-length = 88
[tool.ruff.lint]
# I = isort (imports), E/W = spacing, F = errors, UP = modern syntax
select = ["E", "W", "F", "I", "UP"]
Как разрешить многострочные вызовы с помощью ruff в Python?
Попытавшись создать упрощенный пример, он останется многострочным, как и должно быть:
def main():
greeter = type(
"Anon", (), {"greet": lambda self, name: print(f"Hello {name}") or self}
)()
(
greeter
# please keep it multiline please keep it multiline please keep it multiline
.greet("Anton")
.greet("Anabelle")
.greet("Aaron")
)
if __name__ == "__main__":
main()
однако другой код по-прежнему будет странно однострочным:
def _some_method_dealing_with_a_page(page: Page):
main_menu = MainMenu(page=page)
(
main_menu
# please keep it multiline please keep it multiline please keep it multiline
.click_on_main_menu("some entry")
.click_on_main_menu_item("some-other-entry")
)
не будет сохранен как есть, но будет отформатирован в:
main_menu = MainMenu(page=page)
(
main_menu
# please keep it multiline please keep it multiline please keep it multiline
.click_on_main_menu("some entry").click_on_main_menu_item("some-other-entry")
)
или в зависимости от длины аргументов я также вижу это:
main_menu = MainMenu(page=page)
(
main_menu
# please keep it multiline please keep it multiline please keep it multiline
.click_on_main_menu("ffffffffffffff").click_on_main_menu_item(
"ffffffffffffffffffffffff"
)
)
Подробнее здесь: [url]https://stackoverflow.com/questions/79864687/how-to-force-chained-method-calls-to-remain-multiline-using-python-and-ruff[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия