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

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # 2017991 => 20/17/99
                    # 658581 => 65/85
                    # 6585 => 65
    
                    id = id[:(len(id)%2) - 2]
                    subfolders = ''.join([(i and i % 2 == 0 and '/' or '') + x for  i, x  in enumerate(id)])

    В 4 часа утра написал такой вот щит. Можно по вашему мнению это как-то упросить?

    sbb, 04 Апреля 2013

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

    −103

    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
    def show_vlans(self):
            """Magic people/Voodoo people. All code in this func should be refactored/rewrited."""
            self.read_very_eager()#flush
            output=self.wr_cmd_sh('sho vlan')
            time.sleep(.1)
            vlans={}
            vlan=''
            for string in output:
                if re.search(r"VID[\s]*:",string):
                   vlan=string[re.search(r"[\d]+",string).start():re.search(r"[\d]+",string).end()]
                   vlans[vlan]={'Member':[], 'Tagged':[], 'Untagged':[]}
                if re.search(r"Member Port[s]*[\s]*:[\s]*[\d]+[[-]*[\d]*]*",string):
                   if '-' in string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()]:
                      for port in xrange(int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[0]),int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[1])+1):
                          vlans[vlan]['Member'].append(port)
                   else:
                        vlans[vlan]['Member'].append(string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()])
                if re.search(r"Current Tagged Port[s]*[\s]*:[\s]*[\d]+[[-]*[\d]*]*",string):
                   if '-' in string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()]:
                      for port in xrange(int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[0]),int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[1])+1):
                          vlans[vlan]['Tagged'].append(port)
                   else:
                        vlans[vlan]['Tagged'].append(string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()])
                if re.search(r"Current Untagged Port[s]*[\s]*:[\s]*[\d]+[[-]*[\d]*]*",string):
                   if '-' in string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()]:
                      for port in xrange(int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[0]),int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[1])+1):
                          vlans[vlan]['Untagged'].append(port)
                   else:
                        vlans[vlan]['Untagged'].append(string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()])
            if vlans=={}:
               vlans=self.show_vlans()
    
            #####
            return vlans

    Императивненько) регекспотренировка при отсутствии group() да и вообще...

    voiper, 21 Марта 2013

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

    −105

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    def f(x):
        return x.strip()
    
    lines = map(f, open("1.txt", "r"))
    open("1.txt", "w").write(" ".join(lines))

    ХАСКЕЛЕПРОБЛЕМЫ™. Теперь и в питоне.

    Исходный файл содержит 3 строчки:

    just
    as
    planned
    Питон 2.7:
    $ python2.7 1.py
    $ cat 1.txt
    just as planned
    Питон 3.0:
    $ python3.2 1.py
    $ cat 1.txt

    bormand, 09 Марта 2013

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

    −102

    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
    """ in utils.py"""
    try:
        mongo = pymongo.Connection(settings.MONGO_HOST).topbrands
    except:
        # it's ok, nobody dies
        mongo = None
    
    ''''everywhere"""
    from utils import mongo
    try:
         mongo.objects.save(obj)
    except Exception, e:
         log.exception(e)

    Ну в самом деле пусть везде будет написано о том, что инстанс NoneType не имеет аттрибута objects.

    fatdevil, 31 Января 2013

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

    −102

    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
    43. 43
    static PyNumberMethods __pyx_tp_as_number_DMetaphone = {
      0, /*nb_add*/
      0, /*nb_subtract*/
      0, /*nb_multiply*/
      0, /*nb_divide*/
      0, /*nb_remainder*/
      0, /*nb_divmod*/
      0, /*nb_power*/
      0, /*nb_negative*/
      0, /*nb_positive*/
      0, /*nb_absolute*/
      0, /*nb_nonzero*/
      0, /*nb_invert*/
      0, /*nb_lshift*/
      0, /*nb_rshift*/
      0, /*nb_and*/
      0, /*nb_xor*/
      0, /*nb_or*/
      0, /*nb_coerce*/
      0, /*nb_int*/
      0, /*nb_long*/
      0, /*nb_float*/
      0, /*nb_oct*/
      0, /*nb_hex*/
      0, /*nb_inplace_add*/
      0, /*nb_inplace_subtract*/
      0, /*nb_inplace_multiply*/
      0, /*nb_inplace_divide*/
      0, /*nb_inplace_remainder*/
      0, /*nb_inplace_power*/
      0, /*nb_inplace_lshift*/
      0, /*nb_inplace_rshift*/
      0, /*nb_inplace_and*/
      0, /*nb_inplace_xor*/
      0, /*nb_inplace_or*/
      0, /*nb_floor_divide*/
      0, /*nb_true_divide*/
      0, /*nb_inplace_floor_divide*/
      0, /*nb_inplace_true_divide*/
      #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
      0, /*nb_index*/
      #endif
    };

    kyzi007, 31 Января 2013

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

    −90

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    def python_3():
        try:
            exec("print ''")
            return False
        except:
            return True

    Python 2: http://ideone.com/z4NADC
    Python 3: http://ideone.com/IcpTUr

    bormand, 16 Января 2013

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

    −96

    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 run(self):
            count = 0
    
            while True:
                if count < 5:
                    self.saveUsers(self.queue.get())
                    count += 5
                else:
                    GlobalConfig().setUsers(self.db.selectUsers())
                    count = 0
    
            self.db.close()

    bool не нужен!

    voice, 19 Декабря 2012

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

    −90

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    def getEML(self):
            for i in self.__mandatory_headers:
                if i not in self.__headers:
                    return None
            return '{}\r\n\r\n{}'.format('\r\n'.join(['{}: {}'.format(k, v) for k, v in self.__headers.iteritems()]), self.__body)

    Наверное, надо подумать, как переписать в виде лямбды для пущего эффекта

    Miketsukami, 12 Декабря 2012

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

    −100

    1. 1
    (lambda x:request.profile.role if request.profile.role!=5 else 4)(request.profile.role)

    хуита, 11 Декабря 2012

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

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    size = 3
    lines = ["___", "bcd", "___"]
    board = [[None]*size]*size
    for x in range(0, size):
      for y in range(0, size):
        if lines[x][y] != '_':
          board[x][y] = lines[x][y]
    print(board)

    я бы, очевидно, хотел видеть результат:
    [[None, None, None], ['b', 'c', 'd'], [None, None, None]]
    но питоша выводит:
    [['b', 'c', 'd'], ['b', 'c', 'd'], ['b', 'c', 'd']]

    serpinski, 24 Ноября 2012

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