• Почему программа на Пайтон перезапускается каждые 2-3 секунды после сборки Pyinstaller на Mac OS на Arm?

    @DDV23
    Whnoy, Вы написали
    в коде оно есть
    . Где проверки на предотвращение повторного запуска, на тот случай о котором я написал. Я это и спрашиваю, потому что не вижу)
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany,
    Попробуйте добавить в
    class WEBPThumbnailImg(ImageFieldFile):
        def save(self, name, content, save=True, max_width=None, max_height=None):
    self.max_width = max_width
    self.max_height = max_height
    ......


    если не получится попробуйте напрямую передать , более просто й вариант:
    def save_form_data(self, instance, data):
            if data:
                data.save(data.name, data.file, save=True, max_width=self.max_width, max_height=self.max_height)
            else:
                super().save_form_data(instance, data)
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany, зачем вам это Django?))

    Попробуйте так:
    class WEBPThumbnailImg(ImageFieldFile):
        def save(self, name, content, save=True, max_width=None, max_height=None):
            content.file.seek(0)
            image = Image.open(content.file)
    
            if max_width and max_height:
                (w, h) = image.size
                if w > max_width:
                    img_ratio = float(w) / max_width
                    new_height = int(float(h) / img_ratio)
                    image = image.resize((max_width, new_height), Image.LANCZOS)
                if h > max_height:
                    img_ratio = float(h) / max_height
                    new_width = int(float(w) / img_ratio)
                    image = image.resize((new_width, max_height), Image.LANCZOS)
    
            # Сохраняем изображение
            image_bytes = io.BytesIO()
            image.save(fp=image_bytes, format="WEBP")
            image_content_file = ContentFile(content=image_bytes.getvalue())
            super().save(name, image_content_file, save)
    
    class WEBPThumbnail(models.ImageField):
        attr_class = WEBPThumbnailImg
    
        def __init__(self, *args, **kwargs):
            self.max_width = kwargs.pop('max_width', 200)
            self.max_height = kwargs.pop('max_height', 200)
            super().__init__(*args, **kwargs)
    
        def save_form_data(self, instance, data):
            # Передаем параметры max_width и max_height в метод save класса WEBPThumbnailImg
            if data:
                data.max_width = self.max_width
                data.max_height = self.max_height
            super().save_form_data(instance, data)
    
    class Category(models.Model):
        name = models.CharField("Категория", max_length=100, db_index=True)
        slug = models.SlugField("URL", max_length=44, unique=True, db_index=True)
        thumbnail = WEBPThumbnail(
            "Миниатюра", 
            upload_to=upload_cats_thumbnail, 
            blank=True, 
            max_width=400, 
            max_height=200
        )
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany,
    Старайтесь логи скидывать.
    1.
    new_heigh = int(float(image.size[1]) / img_ratio)
                image = image.resize((max_width, new_heigh), Image.LANCZOS)

    тут ошибка в слове height

    2. if h > max_height вместо elif используйте if
    3. pre_save не подойдет в текущем коде def pre_save(self, model_instance, add): pre_save используется перед сохранением. Если он вам не нужен, то попробуйте без него написать логику.
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany, напишите ошибки и текущий код
    WEBPThumbnail(models.ImageField)
    WEBPThumbnailImg(ImageFieldFile)
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany, зачем закомментировали
    max_width = self.max_width
    max_height = self.max_height
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany, class WEBPThumbnailImg(ImageFieldFile):

    1.нужно получать max_width max_height через self
    2.if float(w > max_width) будет ошибка исправьте if float(w) > max_width:
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    @DDV23
    mmailcompany, Да машинально как метод написал. Тут это атрибут класса, сорян.

    class WEBPThumbnail(models.ImageField):
        attr_class = WEBPThumbnailImg  # атрибут
    
        def __init__(self, *args, **kwargs):
            self.max_width = kwargs.pop('max_width', 200)
            self.max_height = kwargs.pop('max_height', 200)
            super().__init__(*args, **kwargs)
    
        def pre_save(self, model_instance, add):
            file = super().pre_save(model_instance, add)
            if file and not file._committed:
                file.max_width = self.max_width
                file.max_height = self.max_height
            return file
    Написано
  • Как исправить ошибку с установкой и запуском Torch?

    @DDV23
    Специально в винду установил все, проверить интересно стало. Работай на линуксе)
    Error loading "H:\Python\Lib\site-packages\torch\lib\fbgemm.dll"

    Дальше продолжать нет смысла:)
    Написано
  • Как узнать, что диапазон находится в пределах нормы отклонений?

    @DDV23
    1. Вычислить среднее, определяем границы совпадений, проверяем значение, все ли попадают в диапазон. True
    2. Если этого недостаточно (смещения и т.д.) - разница между первым 25 и третьи 75 квартилями. Вычисляйте первый и третий квартиль, определяйте разницу, проверьте, рассчитайте. Это будет более точно.
    Написано
  • Подойдет ли backend на python?

    @DDV23
    Подойдет ли backend на python? - странный вопрос.
    Хотите на Node.js пишите, отлично справляется с большим количеством параллельных I/O операций. Что лучше умеете, то лучше и делать:)

    Python подойдет в любом случае, вопрос кто на нем пишет.
    Фреймворки используйте FastAPI, asyncio в Python что бы обрабатывать большое количество I/O операций,
    multiprocessing есть, так же очереди задач Celery имеются.

    Cython так же, можно освободить тут GIL и позволить нескольким потокам выполняться параллельно.
    Написано
  • Ошибка "(" was not closed. Как решить?

    @DDV23
    Ну возможно автор хотел это?)
    self.ticket_mod = interaction.guild.get_role(id=1272562997054931095)
    Написано
  • Async с методами класса не работает?

    @DDV23
    Shimpanze,
    Shimpanze,
    Конструкторы не могут быть асинхронными функциями.
    Используй статический метод, который объединяет создание объекта и асинхронную инициализацию. Назови его как хочешь static async abracadabra() {} , async init() {} А тут будет snooze(milliseconds) {} :)))

    Сохрани скрипт hocusPocus.js запусти в терминале node hocusPocus.js и увидишь как работает:

    class Foo {
      constructor() {
        console.log('one');
      }
    
      static async abracadabra() {
        const instance = new Foo();
        await instance.init();
        return instance;
      }
    
      async init() {
        await this.snooze(2000);
        console.log('two');
        await this.snooze(2000);
        console.log('three');
      }
    
      snooze(milliseconds) {
        return new Promise(resolve => setTimeout(resolve, milliseconds));
      }
    }
    
    // Используем метод abracadabra
    (async () => {
      const bar = await Foo.abracadabra();
      console.log('Initialization complete');
    })();
    Написано
  • Почему не дополняются значения в return?

    @DDV23
    Nulltiton, операторы присваивания не могут использоваться в выражениях, которые должны возвращаться с помощью return
    Это можно
    return 22  # литерал
    return x  # переменная
    return x + y  # арифметическое выражение
    return some_function(x, y)  # вызов функции


    это нельзя
    return x += 1  # оператор присваивания
    return x = x + 1  # оператор присваивания
  • Почему не дополняются значения в return?

    @DDV23
    Nulltiton,
    def top_up_balance(self, amount):
    self._balance += amount # Первая операция: обновление значения
    return self._balance # Вторая операция: возврат обновленного значения

    чем вас нормальный возврат неустроил?
  • Почему не работает getpass in Pycharm?

    @DDV23
    Ну давайте повторю. консоль IDE не всегда корректно работает с этой библиотекой.
    Альтернативы
    1. В продакшн версии вы можете спокойно использовать getpass, пока кодите, то замените.
    2. вы можете написать свою функцию, где замените getpass на свою, например pyсharm_getpass что было понятно что это.
    def pycharm_getpass(prompt):
        print(prompt, end='', flush=True)  # выводим приглашение для ввода пароля
        password = ''  # инициализируем пустую строку для хранения пароля
        while True:  # начинаем бесконечный цикл
            key = ord(os.read(sys.stdin.fileno(), 1))  # читаем один символ из стандартного ввода и преобразуем его в ASCII-код
            if key == 13:  # если символ — это Enter (ASCII-код 13)
                break  # выходим из цикла
            if key == 127:  # если символ — это Backspace (ASCII-код 127)
                password = password[:-1]  # удаляем последний символ из пароля
                print('\b \b', end='', flush=True)  # перемещаем курсор назад, удаляем символ и снова перемещаем курсор назад
            else:
                password += chr(key)  # добавляем символ к паролю
                print('*', end='', flush=True)  # выводим звездочку вместо символа
        print()  # выводим пустую строку
        return password  # возвращаем собранный пароль


    Вот ваша функция, которая заменит ва getpass вместо пароля будут звездочки

    В коде для подключения к базе данных MySQL
    password=pycharm_getpass('Password: '),  # считываем пароль с помощью функции pycharm_getpass, вместо капризной getpass
  • Как сделать, чтобы контент был сзади шапки, если у контента position: absolute?

    @DDV23
    Без кода сложно.
    Пробуйте:
    position: fixed
    z-index: 999

    1. отступ я думаю уже пробовали margin-top
    2. Z - индекс не по поможет если элементы в разных стеках
    3. Пробуйте JS для динамического изменения стилей при прокрутке

    А вообще делайте по другому:)