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
() автор топика