Size: a a a

2021 November 20

РС

Роман Соколов... in Python
не вижу того же чего. ты
источник

A

Akari in Python
Да
источник

VR

Vartan RedMan in Python
всем привет, вопрос по стилю в питоне, между методами/классами в питоне две строки же надо дистанцию держать? и после импортов сколько строк отступов надо?
источник

A

Alex in Python
что да?
источник

A

Alex in Python
PEP8 же ну
источник

A

Alex in Python
между методами — одна
между классами — две
после импортов — две.
источник

VR

Vartan RedMan in Python
понял, спасибо
источник

A

Akari in Python
а, сорян, читал для второго питона
источник

🐙

🐙 in Python
Ребят, вопрос про threading и pika.
Хочу спавнить треды для входящих сообщений, но что-то происходит с коннектом - вылетает с эксепшеном ConnectionWrongStateError: BlockingConnection.close(200, 'Normal shutdown') called on closed connection.
Код и трейсбек по ссылке:
https://pastebin.com/41gNp5G0
там нет модуля _queue, там только сам коннект и пара функций-обёрток
Делал примерно как https://github.com/pika/pika/blob/0.12.0/examples/basic_consumer_threaded.py
Если запускать без threading, то всё работает хорошо.
В чём может быть проблема и какие советы дадите?
источник

T

Tishka17 in Python
Примерно или так?
источник

🐙

🐙 in Python
Логика та же: колбек оборачивает в тред функцию. Потом .start_consuming(). Только я треды не сохраняю и не .join, мне их результаты не нужны - выполнятся да и ладно.

Добавлю, что в функции треда выполняется обработка, которая делает sleep, а ещё я там хожу в базу и спрашиваю у redis.
Мои параметры коннекта:
connection_parameters = pika.ConnectionParameters(
   host=settings.RABBITMQ_URI,
   credentials=credentials,
   heartbeat=200,
   blocked_connection_timeout=300,
   connection_attempts=5,
   retry_delay=3
)
источник

T

Tishka17 in Python
В треде ты что делаешь?
источник

🐙

🐙 in Python
Предполагаю делать запрос в постгрю (локальные сессии sqlalchemy), запрос в redis (вроде как клиент threadsafe), http запрос через urllib3, и собирался ещё делать publish в другую очередь, но пока закоментил, так как и просто получение нормально не отрабатывает.

Версии либ:
python = "^3.8"
redis = "^3.5.3"
urllib3 = "^1.26.7"
pika = "^1.2.0"
SQLAlchemy = "^1.4.26"
psycopg2 = "^2.9.2"
источник

р

рапузя in Python
 TypeError: an integer is required (got type str) 
чем может быть вызванна эта ошибка?
источник

h

helby in Python
Не пойму

У вас list_in создается, но он пуст
Вы его даже ничем не заполняете
И ещё какие то операции с его несуществующими элементами проводите в цикле
источник

р

рапузя in Python
 from tkinter import Message
from tkinter.constants import N
import telebot
from telebot import types
from os import open

token='TOKEN'
bot=telebot.TeleBot(token)

@bot.message_handler(content_types=['text'])

def get_text_messages(message):
   if message.text == "Start":
       markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
       item1=types.KeyboardButton("Играть")
       markup.add(item1)
       bot.send_message(message.chat.id,'Выберите что вам нужно:',reply_markup=markup)
   if message.text=="Играть":
       markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
       markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
       item1=types.KeyboardButton("Создать комнату")
       item2=types.KeyboardButton("Войти в уже существующую комнату")
       markup.add(item1)
       markup.add(item2)
       bot.send_message(message.chat.id,'Выберите что вам нужно:',reply_markup=markup)

   if message.text=="Создать комнату":
       bot.send_message(message.chat.id,"Введите название вашей комнаты:")
       room_name = str(message.text)
       r_n = open(room_name, "w+")

bot.polling(none_stop=True, interval=0)
вот фулл код
источник

T

Tishka17 in Python
ch.basic_ack(delivery_tag=method.delivery_tag)


Это разве потокобезопасно? Посмотри как в примере делают ack
источник

🐙

🐙 in Python
да, действительно забыл про это. Исправил и всё сработало как надо. Очень большое спасибо за помощь, уже в который раз выручаешь 😇
источник

Н

Николай in Python
Помогите написать. Мне нужно из 3000 действий, принтом выводить каждый 500 шаг.
т.е должно выводиться 500, 1000, 1500 и т.д
источник

AD

Aleksandr Danilov in Python
for x in range(500, 3000, 500):
   print(x)
источник