# submodule_1.py - модуль, содержащий часть функций бота
def setup(bot):
# bot - объект бота. Можешь добавить и другие полезные параметры, такие как:
# - объект logging.Logger для журналирования
# - объект соединения с БД
# - ну и что там ещё тебе потребуется
# все обработчики событий объявляем ВНУТРИ setup()
# тогда они смогут ссылаться на переданные параметры
@bot.command('/start') # например, чтобы использовать декораторы
def on_start(message):
message.reply('foobar')
# мы описали функцию setup(), но здесь мы её не вызываем!
# main.py - основной файл бота
bot = ... # создаём объект бота
import submodule_1 # импортируем модуль с функциями
# при вызове setup() будут заданы обработчики событий, описанные в ней
submodule_1.setup(bot) # функции передаём объект бота (и другие объекты, если она их ожидает)
# функцию setup() нужно вызывать не более одного раза!
# так можно добавлять столько модулей, сколько требуется.
bot.run() # дальше бота запускаем как обычно
@dp.callback_query_handler(text='1')
async def id1(callback: CallbackQuery):
def do_stuff_nocache(*args, **kwargs):
...
@lru_cache
def do_stuff(*args, **kwargs):
return do_stuff_nocache(*args, **kwargs)
@lru_cache
def do_stuff(*args, **kwargs):
...
print(do_stuff.__wrapped__(*args, **kwargs))
do_stuff.clear_cache()
но это очистит кэш вообще, что, скорее всего, нежелательно. from confusable_homoglyphs.confusables import is_confusable
wtf = 'YOᑌ ᑎᗩᗰE 42'
is_good = []
result = []
for c in wtf:
data = is_confusable(c, preferred_aliases=[], greedy=True)
if data:
data = data[0]
alias = data['alias']
if alias in ('LATIN', 'COMMON'):
data = False
if data:
is_good.append('!')
print(data)
result.append(data['homoglyphs'][0]['c'])
else:
is_good.append(' ')
result.append(c)
print()
print(''.join(result))
print(''.join(is_good))
CREATE TABLE IF NOT EXISTS accounts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
users_name TEXT,
acc_id INTEGER
)
" "*(len(str(len(filenames)))-len(str(i+1)))
max_index_len = len(str(len(filenames)))
m = '\n'.join([
f"{i:>{max_index_len}}. {filename}"
for i, filename in enumerate(filenames, 1)
])
import nest_asyncio
nest_asyncio.apply()
print(json.dumps( {'foo': 'bar'} ))