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

    −179

    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
    class Source:
    		id = ''
    		values = []
    		arrays =[ ( 'bool_array', bool), ( 'float_array', float), ('IDREF_array', str), ('int_array', int), ('Name_array', str), ('SIDREF_array', str), ('token_array', str)]
    		
    		def __init__(self, node):
    			self.id = node.getAttribute('id')
    			
    			accessors = dict([ (accessor.getAttribute('source')[1:], (int(accessor.getAttribute('count')), int(accessor.getAttribute('stride'))) ) for technique in node.getElementsByTagName("technique_common") for accessor in technique.getElementsByTagName("accessor") ])
    			values = [(arrayNode.getAttribute('id'), int(arrayNode.getAttribute('count')), [array[1](v) for v in getText(arrayNode).split()]) for array in Mesh.Source.arrays for arrayNode in node.getElementsByTagName(array[0])]
    			self.values = [ array[2][i*accessors[array[0]][1]:(i+1)*accessors[array[0]][1]] for array in values for i in range(accessors[array[0]][0])]
    			
    
            <source id="Box001-lib-Position">
              <float_array id="Box001-lib-Position-array" count="24">-23.296745 -46.390999 0.000000 23.296745 -46.390999 0.000000 -23.296745 46.390999 0.000000 23.296745 46.390999 0.000000 -23.296745 -46.390999 35.287621 23.296745 -46.390999 35.287621 -23.296745 46.390999 35.287621 23.296745 46.390999 35.287621</float_array>
              <technique_common>
                <accessor source="#Box001-lib-Position-array" count="8" stride="3">
                  <param name="X" type="float"/>
                  <param name="Y" type="float"/>
                  <param name="Z" type="float"/>
                </accessor>
              </technique_common>
            </source>
    
    в результате нужно получить список в виде
    [[-23.296745, -46.390999, 0.0], [23.296745, -46.390999, 0.0], [-23.296745, 46.390999, 0.0], [23.296745, 46.390999, 0.0], [-23.296745, -46.390999, 35.287621], [23.296745, -46.390999, 35.287621], [-23.296745, 46.390999, 35.287621], [23.296745, 46.390999, 35.287621]]

    Неделю назад начал учить питон, и для того чтоб это было совсем полезно, решил попробовать написать на нем парсер Collada файлов.
    Очень сильно проникся идеей инициализации массивов, из-за чего и родился сей говнокод...
    Код выдает правильный результат, но абсолютно не читаемый...

    pushkoff, 13 Декабря 2010

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

    −167

    1. 1
    2. 2
    3. 3
    4. 4
    if abs(self.__last_direction%360-direction.angle())==270:
                angle = 360*(self.__last_direction/360+1)+direction.angle()
            else:
                angle = 360*(self.__last_direction/360) + direction.angle()

    крутим крутим спрайт

    nbdarvin, 12 Декабря 2010

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

    −166

    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
    import cgi
    import MySQLdb
     
    MyDB=MySQLdb.connect(host='localhost', user='root', passwd='', db='serv')
    cursor=MyDB.cursor()
    cursor.execute("""SELECT * FROM IndexPage WHERE id=2""")
    zg1=cursor.fetchall()
    zp=cgi.FieldStorage()
    p=zp.has_key('pages')
    lixt='lrof'
    title='{TITLE}'
    Block1='{BLOCK_1}'
     
    if p==1:
        print 'Content-Type: text/html\n'
        sh=open(r'themplates/sh2')
        res=sh.read()
        ...

    Пхпшники пересаживаются на Питон

    qbasic, 24 Ноября 2010

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

    −181

    1. 1
    function hilight { python2 -c 'import sys, re; map(lambda s: sys.stdout.write(re.sub(r"'$1'", lambda m: "\033[1;31m%s\033[0m" % m.group(0), s)), sys.stdin)' }

    Это в Python или в bash?

    ___, 23 Ноября 2010

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

    −171

    1. 1
    ms = decode_mail_headers(decodeUnknown(message.get_charset(), message.get('Subject', 'Created from e-mail'))).replace("Re: ", "").replace("Fwd: ","").replace("Fw: ", "").rep    lace("RE: ", "").replace("FW: ", "").strip()

    Веселые программисты не знают регэкспов в питоне.

    DiSH, 11 Ноября 2010

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

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    def __init__(self, pth = None):
    		self._tag = None
    		self._valid = False
    		self._pthtofile = pth
    		if pth != None:
    			try:
    				self._tag = tagpy.FileRef(pth).tag()
    				self._valid = True
    			except ValueError:
    				pass

    Конструктор класса.
    Дальше приходится всё время дёргать объект проверяя его на валидность.
    Как переписать не так говнисто?

    KoirN, 07 Ноября 2010

    Комментарии (2)
  7. 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)
  8. 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)
  9. 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)
  10. Python / Говнокод #4451

    −100

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

    blednolicui, 26 Октября 2010

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