public marks

PUBLIC MARKS from pvergain with tags python & tools

July 2007

Dabo Application Framework for Python in Launchpad

Dabo Application Framework for Python Dabo is a 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. And while Dabo is designed to create database-centric apps, that is not a requirement. Lots of people are using Dabo for the GUI tools to create apps that have no need to connect to a database at all. Desktop applications. That's what Dabo does. It's not YAWF (yet another web framework). There are plenty of excellent web frameworks out there, so if that's what you are looking for, Dabo isn't for you. But there are almost no desktop application frameworks out there, and if you want to create applications that run on Windows, OS X or Linux, Dabo is for you! We have taken what we've learned from 25 combined years of database application development, and built an easy-to-use runtime framework that runs on all three major platforms. Dabo consists of 3 logical tiers (UI; business logic; database access) plus an umbrella application object. More information can be found at http://dabodev.com/

FrontPage - Storm

Storm is an object-relational mapper (ORM) for Python developed at Canonical. The project has been in development for more than a year for use in Canonical projects such as [WWW] Launchpad, and has recently been released as an open-source product.

May 2007

Python Apache Gump

Gump is Apache's continuous integration tool. It is written in python and fully supports Apache Ant, Apache Maven and other build tools. Gump is unique in that it builds and compiles software against the latest development versions of those projects. This allows gump to detect potentially incompatible changes to that software just a few hours after those changes are checked into the version control system. Notifications are sent to the project team as soon as such a change is detected, referencing more detailed reports available online. You can set up and run Gump on your own machine and run it on your own projects, however it is currently most famous for building most of Apache's java-based projects and their dependencies (which constitutes several million lines of code split up into hundreds of projects). For this purpose, the gump project maintains its own dedicated server.

January 2007

The Trac Project - Trac

by 14 others
Welcome to the Trac open source project. Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies. It provides an interface to Subversion, an integrated Wiki and convenient reporting facilities. Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. A timeline shows all project events in order, making the acquisition of an overview of the project and tracking progress very easy. Live Demo

pyPdf

by 3 others
A Pure-Python library built as a PDF toolkit. It is capable of: * extracting document information (title, author, ...), * splitting documents page by page, * merging documents page by page, * cropping pages, * merging multiple pages into a single page, * encrypting and decrypting PDF files. By being Pure-Python, it should run on any Python platform without any dependencies on external libraries. It can also work entirely on StringIO objects rather than file streams, allowing for PDF manipulation in memory. It is therefore a useful tool for websites that manage or manipulate PDFs. Download Latest The latest release of pyPdf is version 1.9, release on December 15th, 2006. * pyPdf-1.9.tar.gz (src) * pyPdf-1.9.zip (src) * pyPdf-1.9.win32.exe (Win32 installer) Documentation Documentation of the pyPdf module is available online. This documentation is produced by PythonDoc, and as a result can also be seen integrated with the source code. Example from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() input1 = PdfFileReader(file("document1.pdf", "rb")) # print the title of document1.pdf print "title = %s" % (input1.getDocumentInfo().title) # add page 1 from input1 to output document, unchanged output.addPage(input1.getPage(0)) # add page 2 from input1, but rotated clockwise 90 degrees output.addPage(input1.getPage(1).rotateClockwise(90)) # add page 3 from input1, rotated the other way: output.addPage(input1.getPage(2).rotateCounterClockwise(90)) # alt: output.addPage(input1.getPage(2).rotateClockwise(270)) # add page 4 from input1, but first add a watermark from another pdf: page4 = input1.getPage(3) watermark = PdfFileReader(file("watermark.pdf", "rb")) page4.mergePage(watermark.getPage(0)) # add page 5 from input1, but crop it to half size: page5 = input1.getPage(4) page5.mediaBox.upperRight = ( page5.mediaBox.getUpperRight_x() / 2, page5.mediaBox.getUpperRight_y() / 2 ) output.addPage(page5) # print how many pages input1 has: print "document1.pdf has %s pages." % input1.getNumPages() # finally, write "output" to document-output.pdf outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close()

James Clarke → flickr.py

by 1 other
A Python wrapper and example scripts for the Flickr API. It returns nice objects that are easy to manipulate. flickr.py is a Python wrapper for the Flickr API. In most cases it returns nice objects that are easy to manipulate: * flickr.py - requires an API KEY (variable API_KEY). Some example scripts: * wallpaper.py - Generates wallpapers from photos with the given tag(s) (Requires PIL) * tags2set.py - Creates a photoset from your photos with the given tag(s). * photos_for_pool.py - Prints out a list of urls for photos in a given group pool.

Documentation [Universal Encoding Detector]

Universal Encoding Detector Character encoding auto-detection in Python. As smart as your browser. Open source.

programmation-python.org

by 1 other
Mercurial est un système distribué de gestion de sources écrit en Python. Il permet à des développeurs de travailler avec leur code et de le versionner comme avec Subversion, mais sans avoir à dépendre d'un serveur centralisé: chaque modification est conservée localement, et le développeur peut à tout moment se synchroniser avec un autre repository, qu'il soit sur un serveur ou sur un autre poste de développement. Un repository Mercurial est accessible entres autres en SSH, et peut être recopié localement pour être modifié (commande clone), puis mis à jour avec la commande push. L'utilisation de Mercurial est très similaire à celle de Subversion: dabox:~ tarek$ hg Mercurial Distributed SCM basic commands (use "hg help" for the full list or option "-v" for details): add add the specified files on the next commit annotate show changeset information per file line clone make a copy of an existing repository commit commit the specified files or all outstanding changes diff diff repository (or selected files) export dump the header and diffs for one or more changesets init create a new repository in the given directory log show revision history of entire repository or files parents show the parents of the working dir or revision pull pull changes from the specified source push push changes to the specified destination remove remove the specified files on the next commit revert revert files or dirs to their states as of some revision serve export the repository via HTTP status show changed files in the working directory update update or merge working directory Mettre en place un projet basé sur Mercurial consiste donc à mettre à disposition des développeurs un repository via un utilisateur SSH. Cette mise en place est expliquée sur cette page : http://www.selenic.com/mercurial/wiki/index.cgi/MultipleCommitters. Mercurial propose, comme Subversion un système de hook pour effectuer des opérations lorsqu'un développeur "push" des modifications sur le serveur désigné comme "central". Un script pour envoyer des mails à chaque push est fourni sur le site, mais n'est pas très souple (script shell basic). Voici un script Python qui offre un peu plus de souplesse: #!/usr/bin/python import sys import os import smtplib from email.MIMEText import MIMEText from ConfigParser import ConfigParser from email.Utils import formatdate conffile = os.path.join(os.path.dirname(__file__), 'commithook.conf') config = ConfigParser() config.read(conffile) def command(cmd): return os.popen(cmd, 'r').read() def send_mail(log, email, subject): msg = MIMEText(log, 'plain', 'UTF-8') sender = config.get('configuration', 'sender') prefix = config.get('configuration', 'prefix') msg['From'] = sender msg['To'] = email msg['Date'] = formatdate(localtime=True) msg['Subject'] = '%s %s' % (prefix, subject) server = smtplib.SMTP('localhost') try: server.sendmail(sender, [email], msg.as_string()) finally: server.quit() if __name__ == '__main__': hg_node = os.getenv('HG_NODE') subject = command('hg log -r %s | grep "^summary:" | cut -b 14-' % hg_node) emails = config.get('configuration', 'emails').split(',') for email in emails: log = command('hg log -vpr %s' % hg_node) send_mail(log, email, subject) Il est associé à un fichier de configuration qui permet d'indiquer: * le nom de l'expéditeur * le préfix des mails * la liste des emails

reconstructor - What is Reconstructor?

Reconstructor is a Live CD creator for Ubuntu Linux. It uses the Ubuntu Linux Live CD as a base, and then allows customization of boot screens (usplash), gnome settings, and software (you can also use the chroot environment to make other changes before creating the live cd). Reconstructor uses the solid Ubuntu foundation, and allows for extensive customization. For example, create a custom Live CD with blender, inkscape, etc. included for a friend in graphics, or simply use reconstructor to re-brand your environment (wallpaper, fonts). Reconstructor is written in python and is licensed under the GNU General Public License (GPL)

Customisez votre CD Ubuntu Desktop - The Racoon's Blog

Je vous vais expliquer briévement comment créer votre propre cd Ubuntu customisé en utilisant un petit programme très sympathique, écrit en Python et qui se nomme Reconstructor : http://reconstructor.aperantis.com Reconstructor pour permet de créer votre propre CD Live Ubuntu simplement et sans passer par des lignes de commandes fastidieuses car toute l'interface est entièrement graphique. Il utilise comme base le cd original Ubuntu Desktop, dont vous devrez vous munir, et permets la personnalisation de l'environnement d'accueil (usplash), le paramétrage de Gnome et l'ajout de logiciels. Il permet donc d'insérer directement vos applications préférées sur le CD et évite l'utilisation des dépôts sur Internet. En outre il permet l'utilisation du support DVD ce qui permets d'ajouter pratiquement ce que voulez dans la limite de l'espace disponible bien entendu ; mais avec plus de 4 Go à sa disposition on a de quoi voir venir. A vous d'imaginer les possibilités ..

December 2006

Universal Feed Parser

by 5 others (via)
Parse RSS and Atom feeds in Python. 3000 unit tests. Open source.

python, tools, itools

by 1 other
itools is a Python library which provides a wide range of capabilities: * itools.catalog * itools.cms * itools.csv * itools.datatypes * itools.gettext * itools.handlers * itools.html * itools.i18n * itools.ical * itools.rss * itools.schemas * itools.stl * itools.tmx * itools.uri * itools.vfs * itools.web * itools.workflow * itools.xhtml * itools.xliff * itools.xml

Python 2.x -> 3.0 conversion tool

In the sandbox I've been working on a refactoring tool, which could form the basis for a Python 2.x -> 3.0 conversion tool. I'd like to invite folks here to give it a try and give me a hand. It certainly needs more work, but I think that the basic infrastructure is sound. Check out sandbox/2to3/:

Welcome to pyglet

Pyglet is a cross-platform multimedia library written in pure Python. It uses built-in operating system facilities on Linux, Mac OS X and Windows to provide windowing, drawing, event handling and so on. Pyglet is the top layer in the following diagram

StringTemplate Template Engine

What is StringTemplate? StringTemplate is a java template engine (with ports for C# and Python) for generating source code, web pages, emails, or any other formatted text output. StringTemplate is particularly good at multi-targeted code generators, multiple site skins, and internationalization/localization. It evolved over years of effort developing jGuru.com. StringTemplate also generates this website and powers the ANTLR v3 code generator. Its distinguishing characteristic is that it strictly enforces model-view separation unlike other engines. There are currently about 600 StringTemplate source downloads a month

PyMedia - Python module for avi, mp3, dvd, wma, ogg processing - pymedia

by 2 others (via)
is a Python module for wav, mp3, ogg, avi, divx, dvd, cdda etc files manipulations. It allows you to parse, demutiplex, multiplex, decode and encode all supported formats. It can be compiled for Windows, Linux and cygwin. PyMedia was built to be really simple and flexible at the same time. See tutorial for example. It allows you to create your own mutimedia applications in a matter of minutes and adjust it to your needs using other components. Python language is choosen because of simple semantics, complete and reach set of features. Take a look at the PyCar application which takes advantage of the PyMedia library extensivelly and can turn your PC into the powerful car media center.

pyconstruct »

by 1 other
Construct is a python library for parsing and building of arbitrary data structures. It works by defining complex constructs using more primitive ones, in a hierarchy. This declarative structuring of components makes it very flexible and strong. It's the first library that makes parsing fun, instead of the usual headache it is today.

November 2006

Scapy

by 2 others (via)
What is Scapy Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more. It can easily handle most classical tasks like scanning, tracerouting, probing, unit tests, attacks or network discovery (it can replace hping, 85% of nmap, arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, etc.). It also performs very well at a lot of other specific tasks that most other tools can't handle, like sending invalid frames, injecting your own 802.11 frames, combining technics (VLAN hopping ARP cache poisoning, VOIP decoding on WEP encrypted channel, ...), etc.