Skip to content

Commit

Permalink
Merge pull request #366 from vlkorsakov/lint_example_code
Browse files Browse the repository at this point in the history
Enable flake8 use for example code and fix lint warnings
  • Loading branch information
Tishka17 committed Feb 4, 2024
2 parents c938482 + 7668a29 commit 13e9a7d
Show file tree
Hide file tree
Showing 23 changed files with 120 additions and 126 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Run flake8
run: |
python -m flake8 src/aiogram_dialog tests
python -m flake8 src/aiogram_dialog tests example
- name: Run tests
run: |
Expand Down
16 changes: 8 additions & 8 deletions example/i18n/bot.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
This is example of i18n with aiogram-dialog
To use it you need to install `fluent.runtime` package
This is example of i18n with aiogram-dialog.
To use it you need to install `fluent.runtime` package
Translation files are located in `translations` directory
"""

Expand All @@ -11,16 +11,16 @@

from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.fsm.state import StatesGroup, State
from aiogram.fsm.state import State, StatesGroup
from aiogram.types import Message
from fluent.runtime import FluentResourceLoader, FluentLocalization
from fluent.runtime import FluentLocalization, FluentResourceLoader
from i18n_format import I18NFormat
from i18n_middleware import I18nMiddleware

from aiogram_dialog import (
Dialog, DialogManager, StartMode, setup_dialogs, Window,
Dialog, DialogManager, setup_dialogs, StartMode, Window,
)
from aiogram_dialog.widgets.kbd import Button, Cancel, Row
from i18n_format import I18NFormat
from i18n_middleware import I18nMiddleware


class DialogSG(StatesGroup):
Expand All @@ -43,7 +43,7 @@ async def get_data(dialog_manager: DialogManager, **kwargs):
),
getter=get_data,
state=DialogSG.greeting,
)
),
)

DEFAULT_LOCALE = "en"
Expand Down
3 changes: 1 addition & 2 deletions example/i18n/i18n_middleware.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
from typing import Dict, Callable, Any, Awaitable, Union
from typing import Any, Awaitable, Callable, Dict, Union

from aiogram.dispatcher.middlewares.base import BaseMiddleware
from aiogram.types import CallbackQuery, Message
from fluent.runtime import FluentLocalization

from i18n_format import I18N_FORMAT_KEY


Expand Down
11 changes: 5 additions & 6 deletions example/input_media_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,15 @@
from aiogram.filters import CommandStart
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.storage.memory import MemoryStorage, SimpleEventIsolation
from aiogram.types import Message, CallbackQuery
from aiogram.types import CallbackQuery, Message

from aiogram_dialog import (
Dialog, Window, DialogManager, StartMode, setup_dialogs,
Dialog, DialogManager, setup_dialogs, StartMode, Window,
)
from aiogram_dialog.api.entities import MediaAttachment, MediaId
from aiogram_dialog.widgets.common import ManagedScroll
from aiogram_dialog.widgets.input import MessageInput
from aiogram_dialog.widgets.kbd import StubScroll, NumberedPager, Group, Button
from aiogram_dialog.widgets.markup.reply_keyboard import ReplyKeyboardFactory
from aiogram_dialog.widgets.kbd import Button, Group, NumberedPager, StubScroll
from aiogram_dialog.widgets.media import DynamicMedia
from aiogram_dialog.widgets.text import Const, Format

Expand Down Expand Up @@ -55,7 +54,7 @@ async def getter(dialog_manager: DialogManager, **kwargs) -> dict:
)
else:
media = MediaAttachment(
url="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Image_not_available.png/800px-Image_not_available.png?20210219185637",
url="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Image_not_available.png/800px-Image_not_available.png?20210219185637", # noqa: E501
type=ContentType.PHOTO,
)
return {
Expand All @@ -71,7 +70,7 @@ async def getter(dialog_manager: DialogManager, **kwargs) -> dict:
StubScroll(id="pages", pages="media_count"),
Group(
NumberedPager(scroll="pages", when=F["pages"] > 1),
width=8
width=8,
),
Button(Format("🗑️ Delete photo #{media_number}"), id="del",
on_click=on_delete, when="media_count"),
Expand Down
10 changes: 5 additions & 5 deletions example/launch_modes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@

from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.filters.state import StatesGroup, State
from aiogram.filters.state import State, StatesGroup
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.types import Message

from aiogram_dialog import (
Dialog, DialogManager, LaunchMode, Window, setup_dialogs, StartMode,
Dialog, DialogManager, LaunchMode, setup_dialogs, StartMode, Window,
)
from aiogram_dialog.widgets.kbd import Cancel, Row, Start
from aiogram_dialog.widgets.text import Const, Format
Expand All @@ -34,7 +34,7 @@ class Product(StatesGroup):
Const("BANNER IS HERE"),
Start(Const("Try start"), id="start", state=MainSG.default),
Cancel(),
state=BannerSG.default
state=BannerSG.default,
),
launch_mode=LaunchMode.EXCLUSIVE,
)
Expand All @@ -43,7 +43,7 @@ class Product(StatesGroup):
Const("This is main menu"),
Start(Const("Product"), id="product", state=Product.show),
Cancel(),
state=MainSG.default
state=MainSG.default,
),
# we do not worry about resetting stack
# each time we start dialog with ROOT launch mode
Expand All @@ -67,7 +67,7 @@ async def product_getter(dialog_manager: DialogManager, **kwargs):
),
Cancel(),
getter=product_getter,
state=Product.show
state=Product.show,
),
# when this dialog is on top and tries to launch a copy
# it just replaces himself with it
Expand Down
28 changes: 13 additions & 15 deletions example/list_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,16 @@

from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.filters.state import StatesGroup, State
from aiogram.filters.state import State, StatesGroup
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.types import Message
from magic_filter import F

from aiogram_dialog import (
Dialog, LaunchMode, SubManager, Window, DialogManager, StartMode,
setup_dialogs,
Dialog, DialogManager, LaunchMode, setup_dialogs, StartMode, SubManager,
Window,
)
from aiogram_dialog.widgets.kbd import (
Row, Checkbox, Radio, ManagedCheckbox,
ListGroup,
Checkbox, ListGroup, ManagedCheckbox, Radio, Row,
)
from aiogram_dialog.widgets.text import Const, Format

Expand All @@ -38,14 +36,14 @@ def when_checked(data: Dict, widget, manager: SubManager) -> bool:
async def data_getter(*args, **kwargs):
return {
"fruits": ["mango", "papaya", "kiwi"],
"colors": ["blue", "pink"]
"colors": ["blue", "pink"],
}


dialog = Dialog(
Window(
Const(
"Hello, please check you options for each item:"
"Hello, please check you options for each item:",
),
ListGroup(
Checkbox(
Expand All @@ -61,22 +59,22 @@ async def data_getter(*args, **kwargs):
item_id_getter=str,
items=["black", "white"],
# Alternatives:
#items=F["data"]["colors"],
#items=lambda d: d["data"]["colors"],
# items=F["data"]["colors"], # noqa: E800
# items=lambda d: d["data"]["colors"], # noqa: E800
when=when_checked,
)
),
),
id="lg",
item_id_getter=str,
items=["apple", "orange", "pear"],
# Alternatives:
#items=F["fruits"],
#items=lambda d: d["fruits"],
# items=F["fruits"], # noqa: E800
# items=lambda d: d["fruits"], # noqa: E800
),
state=DialogSG.greeting,
getter=data_getter
getter=data_getter,
),
launch_mode=LaunchMode.SINGLE_TOP
launch_mode=LaunchMode.SINGLE_TOP,
)


Expand Down
8 changes: 4 additions & 4 deletions example/loading.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@

from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.fsm.state import StatesGroup, State
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.storage.memory import MemoryStorage, SimpleEventIsolation
from aiogram.types import Message, CallbackQuery
from aiogram.types import CallbackQuery, Message

from aiogram_dialog import (
BaseDialogManager, Dialog, DialogManager, StartMode, Window, setup_dialogs,
BaseDialogManager, Dialog, DialogManager, setup_dialogs, StartMode, Window,
)
from aiogram_dialog.widgets.kbd import Button
from aiogram_dialog.widgets.text import Const, Multi, Progress
Expand All @@ -25,7 +25,7 @@ class Bg(StatesGroup):

async def get_bg_data(dialog_manager: DialogManager, **kwargs):
return {
"progress": dialog_manager.dialog_data.get("progress", 0)
"progress": dialog_manager.dialog_data.get("progress", 0),
}


Expand Down
13 changes: 7 additions & 6 deletions example/mega/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
from aiogram.exceptions import TelegramBadRequest
from aiogram.filters import ExceptionTypeFilter
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.types import Message, ErrorEvent, ReplyKeyboardRemove

from aiogram_dialog import DialogManager, setup_dialogs, StartMode, ShowMode
from aiogram_dialog.api.exceptions import UnknownIntent
from aiogram.types import ErrorEvent, Message, ReplyKeyboardRemove
from bot_dialogs import states
from bot_dialogs.calendar import calendar_dialog
from bot_dialogs.counter import counter_dialog
from bot_dialogs.layouts import layouts_dialog
from bot_dialogs.main import main_dialog
from bot_dialogs.mutltiwidget import multiwidget_dialog
from bot_dialogs.reply_buttons import reply_kbd_dialog
from bot_dialogs.scrolls import scroll_dialog
from bot_dialogs.select import selects_dialog
from bot_dialogs.switch import switch_dialog
from bot_dialogs.reply_buttons import reply_kbd_dialog

from aiogram_dialog import DialogManager, setup_dialogs, ShowMode, StartMode
from aiogram_dialog.api.exceptions import UnknownIntent


async def start(message: Message, dialog_manager: DialogManager):
Expand All @@ -28,7 +28,7 @@ async def start(message: Message, dialog_manager: DialogManager):


async def on_unknown_intent(event: ErrorEvent, dialog_manager: DialogManager):
"""Example of handling UnknownIntent Error and starting new dialog."""
# Example of handling UnknownIntent Error and starting new dialog.
logging.error("Restarting dialog: %s", event.exception)
if event.update.callback_query:
await event.update.callback_query.answer(
Expand Down Expand Up @@ -66,6 +66,7 @@ async def on_unknown_intent(event: ErrorEvent, dialog_manager: DialogManager):
reply_kbd_dialog,
)


def setup_dp():
storage = MemoryStorage()
dp = Dispatcher(storage=storage)
Expand Down
17 changes: 7 additions & 10 deletions example/mega/bot_dialogs/calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,17 @@
from typing import Dict

from aiogram import F
from aiogram.types import CallbackQuery
from babel.dates import get_day_names, get_month_names

from aiogram_dialog import (
Dialog, Window, DialogManager, ChatEvent,
)
from aiogram_dialog import ChatEvent, Dialog, DialogManager, Window
from aiogram_dialog.widgets.kbd import (
Calendar, CalendarScope, ManagedCalendar, SwitchTo,
)
from aiogram_dialog.widgets.kbd.calendar_kbd import (
CalendarDaysView, CalendarMonthView, CalendarScopeView, CalendarYearsView,
DATE_TEXT, TODAY_TEXT,
)
from aiogram_dialog.widgets.text import Const, Text, Format
from aiogram_dialog.widgets.text import Const, Format, Text
from . import states
from .common import MAIN_MENU_BUTTON

Expand Down Expand Up @@ -82,15 +79,15 @@ def _init_views(self) -> Dict[CalendarScope, CalendarScopeView]:
async def on_date_clicked(
callback: ChatEvent, widget: ManagedCalendar,
manager: DialogManager,
selected_date: date, /
selected_date: date, /,
):
await callback.answer(str(selected_date))


async def on_date_selected(
callback: ChatEvent, widget: ManagedCalendar,
manager: DialogManager,
clicked_date: date, /
clicked_date: date, /,
):
selected = manager.dialog_data.setdefault(SELECTED_DAYS_KEY, [])
serial_date = clicked_date.isoformat()
Expand All @@ -103,7 +100,7 @@ async def on_date_selected(
async def selection_getter(dialog_manager, **_):
selected = dialog_manager.dialog_data.get(SELECTED_DAYS_KEY, [])
return {
"selected": ", ".join(sorted(selected))
"selected": ", ".join(sorted(selected)),
}


Expand All @@ -116,12 +113,12 @@ async def selection_getter(dialog_manager, **_):
SwitchTo(
Const("Default"),
id="default",
state=states.Calendar.DEFAULT
state=states.Calendar.DEFAULT,
),
SwitchTo(
Const("Customized"),
id="custom",
state=states.Calendar.CUSTOM
state=states.Calendar.CUSTOM,
),
MAIN_MENU_BUTTON,
state=states.Calendar.MAIN,
Expand Down
8 changes: 2 additions & 6 deletions example/mega/bot_dialogs/counter.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
from aiogram.types import CallbackQuery

from aiogram_dialog import (
Dialog, Window, DialogManager,
)
from aiogram_dialog.widgets.kbd import (
Counter, ManagedCounter,
)
from aiogram_dialog import Dialog, DialogManager, Window
from aiogram_dialog.widgets.kbd import Counter, ManagedCounter
from aiogram_dialog.widgets.text import Const, Progress
from . import states
from .common import MAIN_MENU_BUTTON
Expand Down
2 changes: 1 addition & 1 deletion example/mega/bot_dialogs/layouts.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Dialog, Window,
)
from aiogram_dialog.widgets.kbd import (
SwitchTo, Select, Button, Row, Column, Group,
Button, Column, Group, Row, Select, SwitchTo,
)
from aiogram_dialog.widgets.text import Const, Format
from . import states
Expand Down
9 changes: 2 additions & 7 deletions example/mega/bot_dialogs/main.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
from aiogram_dialog import (
Dialog, Window, LaunchMode,
)
from aiogram_dialog import Dialog, LaunchMode, Window
from aiogram_dialog.about import about_aiogram_dialog_button
from aiogram_dialog.widgets.kbd import (
Start, Row, RequestContact, RequestLocation,
)
from aiogram_dialog.widgets.markup.reply_keyboard import ReplyKeyboardFactory
from aiogram_dialog.widgets.kbd import Start
from aiogram_dialog.widgets.text import Const
from . import states

Expand Down
4 changes: 2 additions & 2 deletions example/mega/bot_dialogs/mutltiwidget.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from aiogram_dialog import (
Dialog, Window,
)
from aiogram_dialog.widgets.kbd import Checkbox, Radio, Counter, Multiselect
from aiogram_dialog.widgets.kbd import Checkbox, Counter, Multiselect, Radio
from aiogram_dialog.widgets.text import Const, Format
from . import states
from .common import MAIN_MENU_BUTTON
Expand Down Expand Up @@ -36,5 +36,5 @@
),
MAIN_MENU_BUTTON,
state=states.Multiwidget.MAIN,
)
),
)
Loading

0 comments on commit 13e9a7d

Please sign in to comment.