1. Список говнокодов пользователя cheerfulboy

    Всего: 5

  2. Python / Говнокод #13557

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    def layout_exists(self, layout_block):
        """
        Получает информацию о существовании блока верстки на странице. Эта функция быстрее,
        чем проверка длины полученных данных селектором
    
        :type layout_block: scrapy.selector.HtmlXPathSelector
        :return: True => верстка присутствует, False => верстка отсутствует
        """
        return False if (lambda x: not x or x.extract()[0] == '0.0')(layout_block.select('count(self::*)')) else True

    Вместо bool(layout_block) коллега написал вот такое чудо.

    cheerfulboy, 06 Августа 2013

    Комментарии (2)
  3. Python / Говнокод #11508

    −101

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    def dict2obj(d):
        if isinstance(d, list):
            d = [dict2obj(x) for x in d]
    
        if not isinstance(d, dict):
            return d
    
        class C(object):
            pass
    
        o = C()
        for k in d:
            o.__dict__[k] = dict2obj(d[k])
    
        return o

    Конечно, о type мы не слышали. Хотя проще было переопределить __getattr__ у метакласса.

    cheerfulboy, 31 Июля 2012

    Комментарии (1)
  4. Python / Говнокод #11461

    −112

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    def load_module(name, attrs=[], level = -1):
        """
        Динамически загружает модуль с указанным именем и его атрибуты.
        :param name: Имя модуля. Например: "catalog", "my.orders".
        :param attrs: Список атрибутов, которые необходимо загрузить.
        :param level: Указывает количество родительских дирректорий, в которых будет выполнен поиск модуля.
        :exception ImportError: При ошибке импорта модуля, например, когда не удалось найти указанный модуль.
        :return module: Модуль с атрибутами.
        """
        # Загружаем модуль. __import__ аналогичен вызову import или from xxx import yyy  только представлен в виде обычной функции
        module = __import__(name, globals(), locals(), attrs, level)
        # Если при загрузке модуля не были указаны атрибуты модуля, то загрузился корневой модуль.
        if not attrs:
            # Если в имени модуля присутствовали подмодули, то спускаемся по ним до искомого модуля.
            path_list = name.split('.')[1:]
            if path_list:
                # сильно замедренно, но какя понял вызываем модуль catalog.views если мы изначально загружаем catalog.views.product - т.е. товар
                # getattr(x, y) = x.y, поэтому getattr(catalog.views, product) = catalog.views.product
                module = reduce(lambda x, y: getattr(x, y), path_list, module)
        return module

    В принципе, закомментировано оно неплохо :D
    Извините, если не смешно. Я просто курнул немного травки.

    cheerfulboy, 22 Июля 2012

    Комментарии (51)
  5. Python / Говнокод #9470

    −101

    1. 1
    return '{"saved":"%s","error":"%s","synonym":"%s","synonym2":"%s","sefname":"%s"}' % (is_saved, error, synonym, synonym2,new_name)

    Вот как готовят json в нашем проекте.

    cheerfulboy, 17 Февраля 2012

    Комментарии (14)
  6. PHP / Говнокод #1515

    +157

    1. 1
    <?php echo ((strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) ? "top: 35px;" : ""); ?>

    Постоянно натыкаюсь, разбирая старые проекты. Народ просто не знал, про CC в осле.

    cheerfulboy, 11 Августа 2009

    Комментарии (38)