LINUX.ORG.RU

История изменений

Исправление FishHook, (текущая версия) :

  1. PEP8

  2. Где main.py или хотя бы __init__.py? Почему у вас все модули исполняемые?

  3. Вы не знаете про ООП или вы из секты?

  4. Магическое всё - магические переменные, магические индексы, магические пути. Вы cделали все, чтобы программу захардкодить по максимуму

  5. Однострочники! Они всюду, в вашем коде они играют роль парадигмы, самый лучший код - код записанный в одну строку

  6. Тайп хинты? Что это и зачем?

  7. Локальные импорты. Вместо того, чтобы подумать над структурой пакета, мы сделаем импорты локальными, чтобы избежать циклических ссылок. Кажется, вы применили парадигму «всё есть однострочник» к структуре пакета.

  8. Нелогичности и детские баги, решаемые применением стандартных практик программирование вроде контекстных менеджеров, которые вы игнорируете абсолютно

         for k, v in bdB.items():
            b = fitz.open()
            if len(lst := v['l']) < 2:
                continue

здесь вы решили открыть на всякий случай? Прозапас? А закрывать вы его не собираетесь никогда? Причем в данном случае код не будет работать вообще. Ну потому что вы по какой-то причине не любите глобальный импорт, но в этой функции вы НЕ ИМПОРТИРОВАЛИ fitz. Вы тестировали ваш код?

  1. Ну да, тесты. Не слышал.

  2. За имена переменных вас надо лишить прав доступа к клавиатуре на два года

  3. Гениальный код

def getinfo():None 

Это новое в питоне? Или что это вообще?

  1. Порой ваш код можно читать как загадку
    def sw(doc, name):
        nonlocal i
        doc.save(name, garbage=2, deflate=True)
        print(timing.log(i := i+1, name))
        return fitz.open(), 0

При этом i нигде выше не определена. То есть вы определяете переменную нелокальную в этом скоупе в самом скоупе? Это кто вас так научил?

        out1.insert_pdf(
            fitz.open(Mp := f'{srcM}\\{pg}'), links=0, annots=0, show_progress=0)
        rm(Mp)

мозг сломался, спасибо. Если я правильно понял, в этом месте программы вы пишете в файл, который немедленно после записи удаляете.

Короче, ну это даже на джуниора не тянет. Это же ужас.

Исходная версия FishHook, :

  1. PEP8

  2. Где main.py или хотя бы init.py? Почему у вас все модули исполняемые?

  3. Вы не знаете про ООП или вы из секты?

  4. Магическое всё - магические переменные, магические индексы, магические пути. Вы зделали все, чтобы программу захардкодить по максимуму

  5. Однострочники! Они всюду, в вашем коде они играют роль парадигмы, самый лучший код - код записанный в одну строку

  6. Тайп хинты? Что это и зачем?

  7. Локальные импорты. Вместо того, чтобы подумать над структурой пакета, мы сделаем импорты локальными, чтобы избежать циклических ссылок. Кажется, вы применили парадигму «всё есть однострочник» к структуре пакета.

  8. Нелогичности и детские баги, решаемые применением стандартных практик программирование вроде контекстных менеджеров, которые вы игнорируете абсолютно

         for k, v in bdB.items():
            b = fitz.open()
            if len(lst := v['l']) < 2:
                continue

здесь вы решили открыть на всякий случай? Прозапас? А закрывать вы его не собираетесь никогда? Причем в данном случае код не будет работать вообще. Ну потому что вы по какой-то причине не любите глобальный импорт, но в этой функции вы НЕ ИМПОРТИРОВАЛИ fitz. Вы тестировали ваш код?

  1. Ну да, тесты. Не слышал.

  2. За имена переменных вас надо лишить прав доступа к клавиатуре на два года

  3. Гениальный код

def getinfo():None 

Это новое в питоне? Или что это вообще?

  1. Порой ваш код можно читать как загадку
    def sw(doc, name):
        nonlocal i
        doc.save(name, garbage=2, deflate=True)
        print(timing.log(i := i+1, name))
        return fitz.open(), 0

При этом i нигде выше не определена. То есть вы определяете переменную нелокальную в этом скоупе в самом скоупе? Это кто вас так научил?

        out1.insert_pdf(
            fitz.open(Mp := f'{srcM}\\{pg}'), links=0, annots=0, show_progress=0)
        rm(Mp)

мозг сломался, спасибо. Если я правильно понял, в этом месте программы вы пишете в файл, который немедленно после записи удаляете.

Короче, ну это даже на джуниора не тянет. Это же ужас.