Змея / Говнокод #28423 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
#!/usr/bin/env python3
# -*- coding: UTF8 -*-
from datetime import date
from os import environ, mkdir, system
from os.path import dirname, exists, join as path_join
from time import time


def check_verbose():
    return environ.get("DEBUG") in ("true", "True", "TRUE", True, "yes", "Yes", "YES")


class Timer:
    def __init__(self):
        """
        Объект добавляет в начале текста временные метки
        """
        self.start_epoch = self.last_call = time()

    @staticmethod
    def __fully_scope(timer: int or str) -> str:
        """
        Преобразует однозначные значения в двузначные.
        :param timer: Время
        :return: Двузначное значение
        """
        if len(str(timer)) == 2:
            return str(timer)
        elif len(str(timer)) == 1:
            return "0" + str(timer)
        elif len(str(timer)) <= 0:
            return "00"
        elif len(str(timer)) >= 2:
            return str(timer)[:2]

    def __formatter(self, timestep: float) -> str:
        """
        Форматирует время
            :return: время hh:mm:ss
        """
        _hours = int(timestep // 3600), int(timestep % 3600)
        _minute = int(_hours[1] // 60), int(_hours[1] % 60)

        _current_epoch = f"{self.__fully_scope(_minute[0])}:{self.__fully_scope(_minute[1])}"
        if _hours[0] > 0:
            _current_epoch = f"{_hours[0]}:" + _current_epoch
        return _current_epoch

    def __call__(self, fix_call: bool = True) -> str:
        """
        Считает время с начала сценария + с последнего шага
            :return: время hh:mm:ss(+hh:mm:ss)
        """
        current_epoch = self.__formatter(time() - self.start_epoch)
        timedelta_epoch = self.__formatter(time() - self.last_call)
        if fix_call:
            self.last_call = time()

        return f"{current_epoch}(+{timedelta_epoch})"

    def __bool__(self):
        return True


class Logger:
    def __init__(self, name: str):
        self.start_time = time()
        self.name = name.upper()
        self.timer = Timer()
        self.log_file = path_join(environ["RESULT_DIR"], name, f"{name}_{date.today().isoformat()}.log")

    def check_file(self):
        if not exists(self.log_file):
            if not exists(dirname(self.log_file)):
                mkdir(dirname(self.log_file))
            system(f"echo {date.today().isoformat()}> {self.log_file}")

    def save_log(self, msg: str):
        self.check_file()
        with open(self.log_file, "a+") as _log_file:
            _log_file.write(msg + "\n")

    def massage(self, msg: str):
        print(f"{self.timer()}::{self.name}::{msg}")
        self.check_file()
        self.save_log(f"{self.timer()}::{self.name}::{msg}")

    def multi_msg(self, level: str, msg: any):
        if isinstance(msg, (str, int, float, bool)):
            self.massage(f"{level.upper()}::{msg}")
        elif isinstance(msg, (tuple, list, set)):
            for _msg in msg:
                self.multi_msg(level, _msg)
        elif isinstance(msg, dict):
            for _msg_key in msg:

Ну собственно самописный логгер, потому что "библиатечный логгер переусложнен НИНАДА!"

Запостил: dicklover dicklover, (Updated )

Комментарии (50) RSS

  • > environ.get("DEBUG") in ("true", "True", "TRUE", True, "yes", "Yes", "YES")
    Слабовато. Где остальные вариации регистра?
    Ответить
    • а так же 1, on, On, ON, и не забываем про поддержку локализации: Ja, так..
      Ответить
            • we zeggen ja по местному будет
              или даже точнеее наверное wij а не we, потому что так эмоциональнее

              Уи это по французски
              Си это ипанский
              Йа это нидеры и немцы
              А похожий на кваканье звук я не знаю: это въетнамский?


              ps: ахуеть, я кажется рассылшал слово "фраген" -- вопрос
              Ответить
              • Я сдался и нагуглил текст:

                Ihr jungen Leute hier,
                ihr jungen Leute hört,
                wir sind in dieser Stadt
                bei Freunden eingekehrt.
                Ob schwarz, ob gelb, ob weiß,
                spielt keine Rolle hier,
                hier geht es um den Menschen,
                und der sind wir.
                Und sollte man uns fragen,
                ob wir die Feinde kennen,
                dann woll'n wir sie gemeinsam
                bei ihrem Namen nennen.

                Daß ihre Schlösser zittern,
                von diesem Wind, der weht,
                weil unsre Antwort in eine Richtung geht.

                Refrain:
                We'll say
                da, da, da, da, da,
                We'll say
                ja, ja, ja, ja, ja
                We'll say
                oui, oui, oui, oui, oui,
                We'll say
                si, si, si, si, si,
                We'll say
                yes, yes, yes, yes, yes,
                We'll say
                wang, wang, wang, wang, wang,
                so come on,
                everybody sing along.

                Und wenn die Unterdrücker
                erheben ihr Geschrei,
                voll Lüge und Verlockung,
                nach Mord und Polizei,
                dann lachen wir und recken
                die Fäuste hoch und hier,
                hier geht es um den Menschen,
                und der sind wir.
                Und sollte man uns fragen,
                wird sich der Kampf denn lohnen,
                geh', Freund, kein Muskel lohnt sich,
                wenn wir ihn immer schonen.
                Und alle Niederlagen,
                die kriegen uns nicht klein
                und lassen uns nur immer klüger sein.

                Refrain:
                We'll say
                da, da, da, da, da...

                Wir stampfen unsre Füße
                im Rhythmus der Musik,
                wir klatschen unsre Hände
                als Vorschuß auf den Sieg.
                Wir seh'n den Sieg begreifbar,
                wir seh'n den Sieg schon hier -
                hier geht es um den Menschen,
                und der sind wir.
                So soll es also werden,
                gebor'n das neue Leben.
                Wir werden ihm die Augen
                und eine Nase geben,
                und wenn ihr wollt, entwerfen
                wir heut' schon sein Gesicht
                und heißen soll es Frieden und anders nicht!

                Так и не понял, на каком языке посоеднее слово. Мне кажется, что запись «wang» — пиздёж.
                Ответить
                • Wang as a noun means The penis...

                  всё, что мне удалось нагуглить
                  Ответить
                  • Попросим гуглопереводчик перевести всё на нидерландский и посмотрим, что получится:

                    Uw jonge mensen hier
                    Je hoort jonge mensen
                    We zijn in deze stad
                    Gebeurde met vrienden.
                    Of zwart, of geel, of wit,
                    Maakt hier niet uit
                    Dit gaat over mensen
                    En wij zijn.
                    En moet u het ons vragen
                    of we de vijanden kennen
                    Dan willen we ze samen
                    Naam in uw naam.

                    Dat hun lokken trillen,
                    Van deze wind die waait,
                    Omdat ons antwoord in één richting gaat.

                    Nalaten:
                    Goed gezegd
                    daar, daar, daar, daar,
                    Goed gezegd
                    Ja, ja, ja, ja, ja, ja
                    Goed gezegd
                    OUI, OUI, OUI, OUI, OUI,
                    Goed gezegd
                    SI, SI, SI, SI, SI,
                    Goed gezegd
                    Ja ja ja ja ja,
                    Goed gezegd
                    Wang, Wang, Wang, Wang, Wang,
                    dus kom op,
                    Iedereen zingt mee.

                    En als de onderdrukkers
                    hun geschreeuw verhogen
                    Volledige leugen en verleiding,
                    Na moord en politie,
                    Dan lachen we en strekken we uit
                    de vuisten en hier,
                    Dit gaat over mensen
                    En wij zijn.
                    En moet u het ons vragen
                    Het gevecht zal de moeite waard zijn
                    ga, vriend, geen spier is het waard,
                    Als we hem altijd beschermen.
                    En alle nederlagen,
                    Ze krijgen ons niet klein
                    En laat ons gewoon slimmer zijn.

                    Nalaten:
                    Goed gezegd
                    Daar, daar, daar, daar ...

                    We stempelen onze voeten
                    In het ritme van muziek,
                    We klappen in onze handen
                    Als een vooruitgang voor de overwinning.
                    We zien de overwinning begrijpelijk,
                    We zien de overwinning hier -
                    Dit gaat over mensen
                    En wij zijn.
                    Dus het zou moeten zijn
                    geboren het nieuwe leven.
                    We zullen zijn ogen hebben
                    en geef een neus
                    En als u wilt ontwerpen
                    We zijn al zijn gezicht vandaag
                    En het zou vrede moeten betekenen en anders niet!
                    Ответить
                    • ну это просто

                      > Uw jonge mensen hier
                      Твои молодые люди тут

                      > Je hoort jonge mensen
                      Ты слышишь молодых людей

                      > We zijn in deze stad
                      Мы в этом городе

                      > Gebeurde met vrienden.
                      Хебюрде (не знаю слова) с друзьями

                      >Goed gezegd
                      Хорошо сказано
                      Ответить
                      • Перевёл он коряво. Немецкий оригинал:

                        Ihr jungen Leute hier,
                        Вы, молодые люди, здесь

                        ihr jungen Leute hört,
                        Вы, молодые люди, слушаете

                        wir sind in dieser Stadt
                        мы в этом городе

                        bei Freunden eingekehrt.
                        с друзьями остановились (встретились)
                        Ответить
                        • Это может я коряво перевёл

                          Но Uw это все таки Ваш а не "вы"
                          Вы это Jullie

                          Потом, если вы слушаете (вы -- множественное число) то horen, а не hoort.
                          Ответить
                        • P.S. В немецком есть оборот, когда сразу за местоимением следует существительное (возможно, с определением). При переводе на русский это существительное выделяют как обращение.

                          Wir Programmisten = мы, программисты, ...

                          Гугл не умеет переводить такие обороты.
                          Ответить
                          • we, jonge mensen
                            Хуй хнает, можно ли так сказать тут
                            Ответить
                  • > Wang as a noun means The penis...

                    А помнишь, была гляделка фотографий Wang Imaging, которую написал Чен Вон, а Микрософт её переименовал в Microsoft Imaging и включил в Windows 98?
                    Ответить
                • Vâng вполне себе похоже (спроси гугл транслейта)

                  Догадаться было не сложно
                  Во-первых въетнамиские слова состоят из коротких слогов
                  Вьет-Нам
                  Хо-ши-мин
                  Сай-гон

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

                    vâng читается как [vəŋ˧], а đúng — как [ʔɗʊwŋ͡m˧˦] (последний значок в скобках — высота тона).
                    Ответить
          • Слова oui и ja, кстати, написаны на доске, на которой ещё есть алфавит, цифры и слова yes и no.
            Ответить
      • В латышском есть ja и jā. Одно из них означает да, другое — если. И я не могу запомнить, что из них что.

        А в испанском есть sí и si. Ты не поверишь, тоже да и если.

        Мне страшно представить ЯП, в котором ифы переведены на испанский или на латышский.
        Ответить
        • в нидерландском есть een (неопределённый артикль) и één (один)
          Нахуя завезли диакритическое говно в довольно стройный язык -- я не ебу.

          До кучи есть еще и ё: Serviё, Belgiё. А Украина будет Oekraïne (это не i, это хуйня с двумя точками типа украинского йи). Тащат в язык всякое оверинженирное ради трех случаев блядь
          Ответить
          • Две точки в нидерландском спизжено из французского, где оно используется для разделения гласных в словах типа эгоизм и героизм, иначе oi будет читаться как уа в слове тротуар.

            Французы сначала придумали ебанутую орфографию, потом придумали костыли, чтобы пофиксить чтение.

            А ударение — это на испанский манер, где ставят ударение в односложных словах, чтобы различать омонимы. Тоже костыль.
            Ответить
            • С французами помоему всё было хуже. Так какой-то кардинал сказал: "мы пишем на великом языке -- на латыни"
              Ему возвразили: "но народ совершенно не так говорит же"
              Кардинал послал нахуй всех, и с тех пор французы пишут одно, а читают совершенно другое (потому что править писанину под произношение пейзантов это зашквар. Всем похуй как говорит Жак-простак, мы пишем на лытыни, и ниибет!)

              Со временем письменный и устный язык разошлись настолько, что пришлось вводить палочки и черточки чтобы хоть как-то соотносить написанное с произносимым

              С тех пор там помойка в языке
              Ответить
          • geïmporteerd

            Оказывается, они ещё так приставку от корня отделяют. Ну типа как у нас твёрдый знак в слове «подъезд».
            Ответить
      • Мозговой штурм.

        Азербайджанский: hə.
        Казахский: иә.
        Турецкий: evet.
        Узбекский: ha.
        Татарский: Әйе.
        Башкирский: эйе.
        Туркменский: hawa.
        Киргизский: ооба.

        Монгольский: тийм.

        Таджикский: ҳа.

        Русский, болгарский, македонский, сербско-хорватский, словенский: да.
        Польский: tak.
        Чешский: ano.
        Словацкий: áno.

        Латышский: jā.
        Литовский: taip.

        Финский: kyllä.
        Эстонский: jah.
        Венгерский: igen.
        Марийский (луговой): да.

        Испанский: sí.
        Итальянский: sì.
        Португальский: sim.
        Французский: oui.
        Румынский: da.

        Английский: yes.
        Немецкий, нидерландский, датский, шведский, норвежские: ja.
        Исландский: já.
        Люксембургский: jo.

        Бретонский: ya.
        Валлийский: ydw.
        Ирландский: tá.
        Шотландский (гэльский): tha.

        Индонезийский, малайский, яванский: ya.

        Греческий: ναι (читается как «не», какой греческой багор).

        Баскский: bai.

        Албанский: po.

        Китайский (путунхуа): shì.
        Японский: hai.
        Корейский: ye.

        Зулусский: yebo.
        Луганда: yee.
        Руанда: yego.
        Сесото: ee.
        Суахили: ndiyo.
        Тсонга: ina.
        Ответить
        • >Греческий: ναι (читается как «не», какой греческой багор).
          А "нет" будет "охи". g: день охи
          Ответить
          • Похоже, грекам нравится это слово. Они и сейчас протестуют против транзита оружия через их страну. Не так, как российская молодёжь, пишущая на стене «Хуй вобле», а реально поезда останавливали. Натовцам пришлось искать другие маршруты, в обход Греции.
            Ответить
      • Только для английского:

        Dialect or archaic forms: arr, ay, aye, yea, yassuh
        Nautical, military, telecommunications: affirmative
        Colloquial or slang forms: ya, yah, yeah, yeh, yep, yeppers, yup, yuppers, yus, ahuh, mhm, uh huh.

        https://en.wiktionary.org/wiki/Thesaurus:yes

        Оттуда же: indeed.
        Ответить
    • Ну а как тебе:
      def __fully_scope(timer: int or str) -> str:
      """
      Преобразует однозначные значения в двузначные.
      :param timer: Время
      :return: Двузначное значение
      """
      if len(str(timer)) == 2:
      return str(timer)
      elif len(str(timer)) == 1:
      return "0" + str(timer)
      elif len(str(timer)) <= 0:
      return "00"
      elif len(str(timer)) >= 2:
      return str(timer)[:2]

      Бля, стриновый формат конечно зря вообще придумали
      Ответить
  • > int or str
    > any
    Когда где-то слышал, что тайп хинты – это круто, но дальше не вникал.
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8