1. Python / Говнокод #4536

    −178

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try:
    			os.mkdir(conf_path)
    		except WindowsError,e:
    			if "[Error 183]" not in str(e):
    				QMessageBox.critical(self, "Logon error","Я блять настоящий индус!")

    zloe_zlo, 05 Ноября 2010

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

    −165

    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
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    def getrows(c):
        return \
            sum( # суммируем по категориям
                map(
                    lambda category:
                        sum( # суммируем по itemid
                            map(
                                lambda itemidset:
                                    sum( # суммируем по itemstring
                                        map(
                                            lambda itemstring:
                                                map(
                                                    lambda info:
                                                        transaction(category, itemstring, info),
                                                    itemidset[itemstring].values()
                                                ),
                                            itemidset.keys()
                                        ),
                                    []),
                                c[category].values()
                            ),
                            []
                        ),
                    ("completedAuctions", "failedAuctions", "completedBidsBuyouts")
                ),
                []
            )

    Залез в свой старый скрипт, генерирующий отчеты, думал кое-что подправить...
    Увидел одну из функций (эту) и решил лучше забить тут что-то править хД

    Причины такого ужаса - наверно отсутствие явной типизации в питоне и средств рефакторинга (rename variable, extract method, ...) в "IDE"

    burdakovd, 27 Октября 2010

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

    −83

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    class ClassifierChoiceForm(forms.ModelChoiceField):
        def __init__(self, dict, empty_label=u"---------", cache_choices=False,
                required=True, widget=forms.Select, label=None, initial=None, help_text=None, to_field_name=None, with_classes=False):
            try:
                 ...
                 # до хуя всего
                 ...
            except Exception, e:
                super(forms.ModelChoiceField, self).__init__()

    прелесть

    t0ster, 26 Октября 2010

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

    −100

    1. 1
    2. 2
    3. 3
    s = 'blablabla'
    if s[:7] <> 'http://':
       s = 'http://%s' % s

    blednolicui, 26 Октября 2010

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

    −181

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def get_children(self, **kwargs):
        q = super(Classifier, self).get_children()
        try:           
            for i in kwargs['related']:
                q = q.filter(classifiers = super(Classifier, self).get_by(i, key='translit'))
        except:
            pass
        return q

    такое в django проекте

    t0ster, 12 Октября 2010

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

    −94

    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
    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
    # -*- coding: utf-8 -*-
    
    # На входе: не пустой b-массив
    # На выходе: словарь из 1-ого элемента {самый часто встречающийся элемент:количество}
    
    # 1. Сначала составляем словарь, потом ищем максимум и возвращаем
    def Freq1(b):
      assert len(b) > 0
      d = {}
      for x in b: # Пробегаем в цикле исходный массив
        d[x] = d[x] + 1 if d.has_key(x) else 1 # Если ключ уже есть, прибавляем 1, если нет, записываем 1
      v = max(d, key=d.get) # v ключ из словаря соответствующий максимальному значению
      return {v:d[v]} # Возвращаем ответ
    
    # 2. Ищем максимум прямо при составлении словаря
    def Freq2(b):
      d = {}
      m, i = 0, 0 # Максимальная частота и индекс в словаре
      for x in b: # Пробегаем в цикле исходный массив
        d[x] = d[x] + 1 if d.has_key(x) else 1 # Если ключ уже есть, прибавляем 1, если нет, записываем 1
        if d[x] > m:
          m, i = d[x], x # Запоминаем максимум и его индекс
      return {i:m}
    
    # 3. Без использования словаря (сложность квадратичная - "тупой метод")
    def Freq3(b):
      m, i = 0, 0 # Максимальная частота и соответствующее ему значение
      for x in b:
        c = b.count(x) # Сколько раз встречается x в массиве b?
        if c > m:
          m, i = c, x
      return {i:m}
    
    # Проверка (примитивный unit-тест)
    def Check(inData, expected):
      assert Freq1(inData) == expected
      assert Freq2(inData) == expected
      assert Freq3(inData) == expected
    
    Check(["banana", "banana", "apple", "banana", "banana", "apple", "onion"], {'banana': 4})
    Check([2, 3, 9, 3, 6, 6], {3: 2})
    Check([True, True, True, False, False, True], {True: 4})

    Самый часто встречающийся элемент в массиве (3 способа).
    Везде сплошной говнокод. Как ПРАВИЛЬНО найти самый часто встречающийся элемент в массиве?
    Наверное, можно ещё отсортировать массив и пробежать по нему храня текущий элемент и количество и обновляя соответствующие переменные?

    denis, 09 Октября 2010

    Комментарии (15)
  7. Python / Говнокод #4297

    −79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    def coord_to_name(zoom,x,y,type):
    	hex_x = list(hex(x)[2:])
    	hex_y = list(hex(y)[2:])
    	(hex_x, hex_y) = align_lists(hex_x,hex_y)
    	xy_pairs = zip(hex_x,hex_y)
    	xy_pairs_glued = [''.join(p) for p in xy_pairs]
    	path_xy = os.path.join(*xy_pairs_glued)
    	#print hex_x,hex_y,xy_pairs,xy_pairs_glued,path_xy
    	path = os.path.join(str(zoom),path_xy) + str(type)
    	return path
    	
    	#return reduce(os.path.join,[str(zoom)]+map(''.join,zip(list(hex(x)[2:]),list(hex(y)[2:]))))+str(type)

    Из моей программы, просмотрщик кэшей мобильных Яндекс-карт.

    Говно закомментировано в назидание будущим археологам, в нём баг, попробуйте найти. (Подсказака - функция align_lists() выравнивает длины списков, дополняя короткий нулями с начала).
    И никогда не пишите таких матерных однострочников !

    cryptomancer, 20 Сентября 2010

    Комментарии (0)
  8. Python / Говнокод #4224

    −305

    1. 1
    if random.randint(1, 9999) is 42:

    Ockonal, 11 Сентября 2010

    Комментарии (17)
  9. Python / Говнокод #4204

    −83

    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
    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
    #Access Point: MTS Internet GPRS
    import gprsd
     #импортируем класс GPRS-демона
    import socket
    import thread
    import math
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    gs = gprsd.getConn()
     #сокет с телефоном
    ga = gprsd.getConnAddr()
     #конечный адрес
    s.connect(ga);
    def thread_1():
      global gs, s;
      while 1:
        for i in range(0, 10005000):tmp=math.sin(math.acos(random.randint(-100500, 100500)));
     #выполняем сложное и неоправданное арифметическое дейстивие 100500 раз в цикле
        tmp = s.recv(8);
        gs.send(tmp);
        if tmp<8:
          break;
    def thread_2():
      global gs, s;
      while 1:
        for i in range(0, 10005000):tmp=math.sin(math.acos(random.randint(-100500, 100500)));
     #выполняем сложное и неоправданное арифметическое дейстивие 100500 раз в цикле
        tmp = gs.recv(8);
        s.send(tmp);
        if tmp<8:
          break;
    
    thread.start_new_thread(thread_1, ());
    thread.start_new_thread(thread_2, ());

    Скрипт МТС'ного инета

    startapp, 09 Сентября 2010

    Комментарии (6)
  10. Python / Говнокод #4192

    −171

    1. 1
    sys.path = ['/home/username/webapps/django', '/home/username/webapps/django/lib/python2.5'] + sys.path

    индусы в моих джангах. pascal style

    awsum, 07 Сентября 2010

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