Задать вопрос
  • Насколько уникальная часть хеша (md5)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ну, общее количество вариантов в таком хэше 224. Значит с вероятностью 1/2 среди примерно 5000 наугад выбранных значений найдутся одинаковые. Парадокс дней рождения, однако.
    Ответ написан
    Комментировать
  • Как работать со строками в питоне?

    @Everything_is_bad
    1. С путями надо работать через модуль pathlib.
    2. Открой доки и прочитай про экранирование символов в строках, чтобы раз и навсегда разобраться в этом моменте, пока больше похоже на то что ты выдумал себе проблему.
    3. Зачем тут = после return, и почему file_name в кавычках?
    Ответ написан
    2 комментария
  • Как упростить мой торговый скрипт и избавиться от кучи функций?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как упростить это?

    Добавить в функцию соответствующие аргументы и указывать и при вызове.
    Ответ написан
    2 комментария
  • Не понимаю в чем ошибка, можете помочь?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не обработан случай, когда в конце строки нет даты.
    Ответ написан
    4 комментария
  • Как связать код Python и GUI на wxPython?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    6717cf333e689297739155.png
    Код
    import wx
    
    class MyFrame(wx.Frame):
        def __init__(self, *args, **kwds):
            kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
            wx.Frame.__init__(self, *args, **kwds)
            self.SetSize((250, 250))
            self.SetTitle("frame")
    
            sizer_1 = wx.WrapSizer(wx.VERTICAL)
    
            fields = [
                ("Ширина (м)", "a"),
                ("Длина (м)", "b"),
                ("Высота (м)", "h"),
                ("Окно ширина (м)", "o1"),
                ("Окно высота (м)", "o2"),
                ("Дверь ширина (м)", "d1"),
                ("Дверь высота (м)", "d2"),
            ]
    
            # Create grid sizers and controls dynamically
            for label_text, attr in fields:
                grid_sizer = wx.GridSizer(1, 2, 0, 0)
                sizer_1.Add(grid_sizer, 1, wx.EXPAND, 0)
    
                label = wx.StaticText(self, wx.ID_ANY, label_text)
                grid_sizer.Add(label, 0, wx.ALL, 1)
    
                text_ctrl = wx.TextCtrl(self, wx.ID_ANY, "")
                setattr(self, attr, text_ctrl)  # Store the text control in the instance
                grid_sizer.Add(text_ctrl, 0, 0, 0)
    
            # Create a horizontal sizer for the result and button
            h_sizer = wx.BoxSizer(wx.HORIZONTAL)
    
            # Result text control
            self.itogo = wx.TextCtrl(self, wx.ID_ANY, "")
            self.itogo.SetBackgroundColour((171, 171, 171))
            h_sizer.Add(self.itogo, 1, wx.EXPAND | wx.ALL, 5)
    
            # Calculate button
            self.button_1 = wx.Button(self, wx.ID_ANY, "Посчитать", size=(110, 21))
            h_sizer.Add(self.button_1, 0, wx.ALL, 5)
            self.button_1.Bind(wx.EVT_BUTTON, self.onclick)
    
            # Add the horizontal sizer to the main sizer
            sizer_1.Add(h_sizer, 0, wx.EXPAND, 0)
    
            self.SetSizer(sizer_1)
            self.Layout()
    
        def onclick(self, event):
            a = float(self.a.GetValue())
            b = float(self.b.GetValue())
            h = float(self.h.GetValue())
            o1 = float(self.o1.GetValue())
            o2 = float(self.o2.GetValue())
            d1 = float(self.d1.GetValue())
            d2 = float(self.d2.GetValue())
    
            result = round(a * 2 * h + b * 2 * h - o1 * o2 - d1 * d2, 2)
            self.itogo.SetValue(str(result))
    
    class MyApp(wx.App):
        def OnInit(self):
            self.frame = MyFrame(None, wx.ID_ANY, "")
            self.SetTopWindow(self.frame)
            self.frame.Show()
            return True
    
    
    if __name__ == "__main__":
        app = MyApp(0)
        app.MainLoop()
    Ответ написан
    1 комментарий
  • Инструмент для создания любого типа файла?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Hex-редактор позволит вам создать файл абсолютно любого формата, даже вашего собственного.
    Ответ написан
    Комментировать
  • Как преобразовать вложенные словари в объекты с типами для API-обёртки?

    Wispik
    @Wispik
    можно использовать pydantic
    и потом описать модели, согласно нужным типам данных
    Ответ написан
    Комментировать
  • PyOtp постоянно ошибка binanscii.Error: Non-base 32 digit found. Как исправить?

    @galaxy
    key = "letters1keydog963"
    totp = pyotp.TOTP(key)


    Конструктор ожидает ключ, закодированный в Base32, а там нет символов 0, 1, 8 и 9 (в документации это как-то очень вскользь прописано).

    Для произвольных, в т.ч. бинарных, ключей используйте base64.b32encode.

    Как я понял, так они сделали ради совместимости с Google Authentificator:

    Parameters
    Secret
    REQUIRED: The secret parameter is an arbitrary key value encoded in Base32 according to RFC 3548. The padding specified in RFC 3548 section 2.2 is not required and should be omitted.
    Ответ написан
    Комментировать
  • Python не выходит из цикла while, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется я понимаю в чем проблема автора. Socket - это не файл.
    Это просто стриминговый протокол по которому можно ждать данных
    бесконечно. Потому что никакого маркера конца нету.

    Тут нужно договориться что либо сервер закрывает соединение после отдачи файла.
    Либо клиент сам отваливается когда детектирует либо принятие числа байтов
    либо специальный байт маркер EOT (как договоритесь).
    Ответ написан
    Комментировать
  • Как обеспечить невозможность извлечения шрифтов с сайта?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Подсмотрите как грузятся шрифты то ли у adobe, то ли у похожего платного провайдера.

    Я это видел давно, но там JS, он тянет куски (видимо, шрифт, порезанный на небольшие наборы символов), эти куски, по-моему, встраиваются инлайном, т.е. идут в текстовой кодировке.

    Моё предположение, но не исключаю, что куски берутся только те, которые нужны для отображения страницы. Возможно, они меняются во времени, или генерятся на лету.
    Но это всё ЕМНИП, я посмотрел, удивился, и дальше не изучал.
    Ответ написан
    Комментировать
  • Как устранить дублирование кода?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Как вариант (>=Python3.10):
    from typing import Dict, Any
    
    def process(answer, result_json: Dict[str, Any]) -> None:
        tmp_json = parse_answer(answer)
        result_json['summary_text'] += tmp_json['result']
        result_json['tags'].extend(tmp_json['tags'])
        result_json['input_size'] += answer.input_size
        result_json['output_size'] += answer.output_size
    
    def handler(text: str, max_size: int) -> Dict[str, Any]:
        result_json = {'summary_text': '', 'tags': [], 'input_size': 0, 'output_size': 0}
    
        match len(text):
            case size if size > max_size:
                chunker = TextChunker(maxlen=max_size)
                for chunk in chunker.chunk(text):
                    answer = get_answer(chunk, tags_quantity=1)
                    process(answer, result_json)
            case _:
                answer = get_answer(text, tags_quantity=3)
                process(answer, result_json)
    
        return result_json
    Ответ написан
    2 комментария
  • HTML/CSS блог на джанго?

    @Everything_is_bad
    открывай гугл и забивай "django static site generator" или подобное
    Ответ написан
    Комментировать
  • Почему пропал интернет после отключения электричества?

    @default_route
    Настаивайте на выезде техника - если линка нет, то удалённо вопрос не решить, если только порт не схлопнулся по петле, или его принудительно не погасили
    Ответ написан
    8 комментариев
  • Как сделать грамотный счетчик в питоне?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    По феншую и правильно по хорошему бы реализовать класс, в котором будешь хранить состояние счётчиков

    import subprocess
    from time import sleep
    
    class CameraMonitor:
        def __init__(self):
            self.IP12 = '192.168.0.100'
            self.IP13 = '192.168.0.101'
            self.RODOS12 = '192.168.1.100'
            self.RODOS13 = '192.168.1.101'
            
            self.fail_count = {'Купол 12': 0, 'Купол 13': 0}
            self.reboot_count = {'Купол 12': 0, 'Купол 13': 0}
    
        def ping_camera(self, ip):
            cmd = f'ping {ip} -n 1 -w 100'
            response = subprocess.call(cmd, stdout=subprocess.DEVNULL)
            return response == 0
    
        def cameras_checker(self):
            r_dict = {'Купол 12': self.IP12, 'Купол 13': self.IP13}
            while True:
                for camera, ip in r_dict.items():
                    if self.ping_camera(ip):
                        print(f'Camera {camera} - OK')
                        self.fail_count[camera] = 0
                    else:
                        self.fail_count[camera] += 1
                        print(f'Camera {camera} - Died')
    
                        if self.fail_count[camera] >= 5:
                            self.cameras_reboot(camera)
    
                sleep(5)
    
        def cameras_reboot(self, camera):
            if camera == 'Купол 12':
                ip = self.RODOS12
            else:
                ip = self.RODOS13
            
            self.reboot_count[camera] += 1 
            print(f'Rebooting {camera} at IP {ip}')
    
        def info(self):
            for camera, count in self.reboot_count.items():
                print(f'Перезагрузок {camera}: {count}')
    
    
    if __name__ == "__main__":
        monitor = CameraMonitor()
        monitor.cameras_checker()
    Ответ написан
    3 комментария
  • Как у меня появились чужие данные в автозаполнении?

    @Akellacom
    CTO
    Возможно у вас просто раздвоение личности, и это ваша вторая личность о которой вы даже не подозреваете.
    https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D...
    Ответ написан
    Комментировать
  • Как в Linux пустить весь трафик через socks5 прокси?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Есть два вида странных людей:
    1. Желающие использовать VPN для определённых приложений.
    2. Желающие использовать прокси для всего трафика.

    В обоих случаях эти люди хотят использовать неподходящие инструменты, из-за чего и возникают сложности. Почему они так делают - вопрос риторический.
    Ответ написан
  • Полосы на экране. В чем причина?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Похоже на отвал какого-то чипа памяти на видеокарте либо отвал GPU. Так же может быть проблема в кабеле или в мониторе. Надо проверить с другим кабелем, разъемом, монитором и источником сигнала.
    Ответ написан
    3 комментария
  • Как сделать свой почтовый ящик на flask?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Flask
    Седой и строгий
    Flask - это web-фреймворк, а приём и отправка почты осуществляются по протоколам POP, IMAP и SMTP, так что никак. Можете разве что web-интерфейс для почтовых сервисов написать.
    Ответ написан
    Комментировать
  • Опасно ли не закрыть сокет сервера или клиента в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Хэндлеры, хоть сокетов, хоть файлов - это конечный ресурс, а ОС и интерпретатор не дают вам никаких гарантий его автоматического освобождения. Так что если у вас интенсивно работающее приложение, то оно может в какой-то момент поставить раком машину, на которой работает. Готовы ли вы принять этот риск ради возможности говнокодить - вопрос к вам.
    Ответ написан
    5 комментариев
  • Как записывать данные в массив в массиве?

    EPIDEMIASH
    @EPIDEMIASH
    Человек швейцарский нож
    Да просто снести 4 строчку вашего кода
    Ответ написан
    1 комментарий