[pyar] codigo para revisar: copyrighter.py
Hernan Olivera
lholivera en gmail.com
Mie Jun 23 13:57:09 ART 2010
2010/6/23 Martín Olivera <martin.olivera en gmail.com>
> despues de juguetear hice mi primer programita "util" con python
>
> tome pedazos de por ahi, y lo fui modificando, queria compartirles el
> codigo, para que me lo critiquen (por ej no me gusta revisar varias veces el
> texto para buscar determinados patrones, pero si las regex son muy
> complicadas tampoco me parece que el codigo quede legible
>
> lo que tenia que hacer era revisar un monton de archivos buscando notas de
> copyright (es para liberar un programa GPL) y si no tenia le mete un header
> , y si ya tiene copyright, le agrega una linea de copyright "propia" bajo la
> existente
>
> lo paso por aca para recibir las criticas del caso en python-style, asi
> mejoro el estilo :)
>
>>
>> copyrighter.py
>> ________________________________
>> # updates the copyright information for source code files
>> # usage: call recursive_traversal, with the following parameters
>> # directory, copyright header for new files, copyright line for modified
>> files, extensions to check
>>
>> import os
>>
>> excludedir = ["..\\Lib"]
>>
>> addedLines = 0
>> addedHeaders = 0
>>
>> def update_source(fileName, copyrightHeader, copyrightLine):
>> global addedHeaders, addedLines
>>
>> text = file(fileName).read()
>> if 'copyright' in text.lower():
>> if not(copyrightLine in text):
>> newlines = []
>> f = file(fileName)
>> for line in f:
>> newlines.append(line)
>> if 'copyright' in line.lower():
>> #TODO do the recursive copyright search here
>> newlines.append(copyrightLine)
>> outfile = file(fileName, 'w')
>> outfile.writelines(newlines)
>> print fileName+": adding copyright line"
>> addedLines+=1
>> else:
>> newText = []
>> newText.append(copyrightHeader)
>> newText.append(text)
>> outfile = file(fileName, 'w')
>> outfile.writelines(newText)
>> print fileName+": adding copyright header"
>> addedHeaders+=1
>>
>>
>> def recursive_traversal(dir, copyrightHeader, copyrightLine,
>> fileExtensions):
>> global excludedir
>>
>> fns = os.listdir(dir)
>> #print "listing "+dir
>> for fn in fns:
>> fullfn = os.path.join(dir,fn)
>> if (fullfn in excludedir):
>> continue
>> if (os.path.isdir(fullfn)):
>> recursive_traversal(fullfn, copyrightHeader, copyrightLine,
>> fileExtensions)
>> else:
>> for ext in fileExtensions:
>> if (fullfn.endswith("."+ext)):
>> update_source(fullfn, copyrightHeader, copyrightLine)
>>
>>
>> header = file("license_header","r+").read()
>> line = file("license_line","r+").read()
>> recursive_traversal("..", header, line, ["cpp", "h"])
>> print "added headers: %d - added copyright lines: %d" % (addedHeaders,
>> addedLines)
>> exit()
>>
>>
>>
Que bueno verte por aqui, Martín :)
> --
> Martín Olivera
> microblog en http://identi.ca/martinolivera
> blog en http://blog.martinolivera.com.ar
> jabber en olix en jabber.org
>
> Asociación SOLAR Software Libre Argentina - http://www.solar.org.ar
> Comunidad Ginga Argentina - http://comunidad.ginga.org.ar
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
--
Hernan Olivera
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100623/bf994c9d/attachment.html>
More information about the pyar
mailing list