LINUX.ORG.RU

накидайте .... критики(ага) - в python pet-проект

 , , , ,


0

2

https://github.com/press-magvoda-ru/a1

для лучшей шелковистости и ридибилити прошу содействия в части чё поправить

благодарю за конструктив

upd: ruff 2(оказалось не все были от'ruff'ено форматером)

upd2: +readme.md - для большего фидбека по косякам во всём остальном - сам md файл ща - чисто для продолжения сбора грабель в остальном проекте - подлежит как и остальной проект тотальному ре фа кт ор ин гу

upd3: докстринги из жабы из ? из clu ? (Лисков Б., Гатэг Дж. - Использование абстракций и спецификаций при разработке программ (1989, Мир) )

Лискова 2002 али 2008?

★☆

Последнее исправление: qulinxao3 (всего исправлений: 3)
Ответ на: комментарий от anonymous

Ну он тут регулярно постит не очень читаемые, но прикольные/элегантные фрагменты кода. Возможно, это не означает, что этот же человек может хорошо написать что-то более практичное, не знаю.

anonymous
()
Ответ на: комментарий от anonymous

c указанием файл:строка будет реальней поправить

код был/есть «некогда_думать»

в чём безуважительность system? - когда место исполнения без cygwin'а(и прочих аналогов - а докер образ как то не сподобился - возможно проще контейнер тогда pyinst не нужен будет) - раньше было wsl ... чётотам - было замено на cmd почтитожесамоечётотам

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от anonymous

80% юниск вэя

ну и 95% всего из принципа Старджона

код этого пета- шобы совмещало - остальные критерии большего порядка малости - не в защиту полученного продукта жизнедеятельности

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от anonymous

https://github.com/press-magvoda-ru/a1/blob/mainOfdyt/distribforzip.py#L63

0. добавил в тудушки

1. На тот момент не знал (ха ха во как быстрое самооправдание включается) - судя по ключу /y - не успел(мгновенно)(не искал ваще) найти как в os.rename затирать подобно move /y - «руки помнят» вот и лишняя привязка в офтопику - которая не изменила sign привязок к

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от grem

0.добавленно в тудушки

1.(лень было readme'ить) на входе 2 дерева файлов с готовыми на печать пачками квитанций в pdf виде

пачки и структура окаменевшее унаследованное

на выходе - совмещение квитанций относящихся(«по возможности») к одному получателю на один лист(на обе стороны) (входные квитанции на страницах - если потребуется можно сжать(отдельные новые приседания) что бы совмещать от большего количества источников на один лист(upd: в одну «связку» одного-пары-тройки-листов)

переупорядочивание(основанное на порядке в пачках одного из деревьев) пачек для группировки и уменьшения «трения» осуществляемого физическими доставщиками (в пока «это не особо нужно» - переставить дома что бы порядок их обхода совпадал бы с их коротким физ обходом - коммивоеджер на минималках)- ща просто дома по возрастанию(цифр) их адреса на улице и квартир в домах - привычный доставщикам

ну и недостатистика - за всю эту экономию кто типо несёт издержки

как то так

зы:пет-проект актуализивался по мере перехода на безбумажные(электронные) квитанции - ибо стали рубить издержки на доставщиков имхо

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от rupert

как исправить ( моими силами)

нужно больше конструктива - понятному и ....

т.е. база но конкретная - без общего вакуума абстракций

сам в курсе что код продукт жизнедеятельности

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от anonymous

есть привязка полного пути для файла хинтов - к рабочему столу текущего пользователя - ибо пользователи таковы - использование ключей в командой строке оказалось «малополезно» для одномышех пастухов

остальные полные пути - это отладочное окружение - когда de_ug = 0 + #1 обезрешёченно

относительные пути - привязанны к «корню» результата

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 1)

Я конечно от питона далёк, но зачем код какой-то обратнокитайский? Я про то что пробелов жалеешь и переводов строк зачем то. Читабельность сильно падает от этого. write-only какой-то получается. Да и комментарии по коду не помешали бы хоть немного. И данные\константы выделить хотя бы визуально.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

Ну окей. Но вот это (и подобное, если такое ещё есть): https://github.com/press-magvoda-ru/a1/blob/67f688929a0e269a5dad59fcb9e6bcc0825efdf8/exceptlst.py#L2 лучше бы убрать в отдельный файл с построчной разбивкой. И исключить из git.

anonymous
()
Ответ на: комментарий от anonymous

0. в тудушки

1. сорян за прохладную историю - этот список был автогенерирован из другого места - ща это недоотсохшая весчь отключённая через явное маскирование где эта функция вызывается - не убрано(прибранно) ибо не было очевидно что пройдут «многие разы использование» а эта фича была нужна тока тогда - по факту это ваще не нужный теперь участок - неубранный ибо git не флюент - а привычки оставлять старый код что бы лучше понимать историю ( благо любая современная система контроля версий позволяет видеть эволюцию кода) изменений пока есть

2. так как возможности влиять на входа от окаменелых продуцентов(sic!) малы - всяко приходится транслировать индивидуальные особенности именнования в полунормативный вид - недонейронормализация почтовых адресов с купированием ошибочек и попытками угадать - и так пока «код не научиться»

3. конкретно этот кусок - это отделение некоторого набора адресов по «забавной» маске для разового мумба юмба

qulinxao3 ★☆
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от Loki13

ща чаще предпочту

(a,b)=(exp1,exp2)

чем

a=exp1;b=exp2
и тем более
a=exp1
b=exp2

ща обычно код раскрашен средствами «обзора» поэтому многие рекомендации обусловлены «как бы по мягче» «наименьшим общим делителем» среди лиц код могущих сопровождать

где та «золотая середина» ....

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от qulinxao3

Ну пробелы, пробелы то, вокруг = можно поставить?

Ну и импорты в одну строчку - тоже полная хрень. Ищи там в середине строки что ты и откуда импортируешь.

Loki13 ★★★★★
()
  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
()
Последнее исправление: FishHook (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

знаком

врёшь!

def byBuildings(WW: dict, MM: dict, ofld):

def NormalizedAdr(adr)

def StructFromFile(path):   return eval(open(path).read())    #"""TODO import ast;ast.literal_eval"""
#isW=True;isM=not isW; # по умолчанию ожидем адрес W - для M сообща...

Что это за?!

valueDelimType='!'
def pad(st:str,width:int,ch=valueDelimType):

Ну сделай ты

valueDelimType='!'

def pad(st:str,width:int,ch=valueDelimType):

И ниже далее, за пустые строки тебя не покусают, а код более лучше читается.

        self.setself(inp,i,'',normi,tks)
        pass

??? 0_о

def restoreFld(l):  return fldD.join(e.strip() for e in l)#print(f"*1 {fldD=}",l,flush=1)
def normFld(l):     return bsD.join(e.strip('.').strip() for e in l)

Вот прям бить надо за такое. Итого, код говна, оформлен как говно, выкидывай всё и делай НОРМАЛЬНО!

Вон посмотри у товарища @Sunderland93 как он оформляет код в sway-input-config, посмотри на имена файлов. Нормальный такой пример.

ggrn ★★★★★
()
Последнее исправление: ggrn (всего исправлений: 1)
Ответ на: комментарий от ggrn

0. в тудушки

1. см upd - всёж для кодаржу (code review по басурмански) - оставляй pls линки в дерево - гит же позволяет кликом на строку - делать урл

2 реально рад замечаниям

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от qulinxao3
  1. см upd - всёж для кодаржу (code review по басурмански)

Ничего не понял.

оставляй pls линки в дерево

Мне лень.

Итого, код говна, оформлен как говно, выкидывай всё и делай НОРМАЛЬНО!

ggrn ★★★★★
()
Ответ на: комментарий от Loki13

в хвастовство скажу что избыток составных;строк (мультиоператорная каждая с росыпью ; ) и дефицит пробелов промеж лексем это

ушибленние в юности:

* алгол-сырцами из всякой порочной литературы

* и медленность ввода обусловленная тогда отсутствием слепоты в печати

* некритическое восприятие Элементы стиля программирования (Москва: Издательство «Радио и связь»: Редакция переводной литературы, 1984)

так как вирши читаемы были только мною - было маловажно

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от Vlad-76

«сделать по красоте» (ака вау_ай_маладца - без привлечения дополнительных сил, средств и что бы оно «просто работало» - всё как «мы» любим)

ща в начале сиквела поэтому вот

ps. Dimez - возможно ли употребление узуса не в качестве оскорбления а в качестве лаконичного обозначения всем известного явления и т.п?

qulinxao3 ★☆
() автор топика