Software Engineering

Facebook Twitter scales - Metrics for Python Tracks server state and statistics, allowing you to see what your server is doing. It can also send metrics to Graphite for graphing or to a file for crash forensics. scales is inspired by the fantastic metrics library, though it is by no means a port. This is a brand new release - issue reports and pull requests are very much appreciated! Cue/scales Cue/scales
Beautifiers and Pretty Printers Beautifiers and Pretty Printers Beautifiers and pretty printers are essential language tools. Unfortunately very few programmers use them. If you do not use please start now... that's a real life saver tool.
cli — command line tools — pyCLI v1.1.0 documentation The cli package is a framework for making simple, correct command line applications in Python. With cli, you can quickly add standard command line parsing; logging; unit and functional testing; and profiling to your CLI apps. To make it easier to do the right thing, cli wraps all of these tools into a single, consistent application interface. Installing cli You can install the latest stable version of cli using pip: cli — command line tools — pyCLI v1.1.0 documentation
PyInstaller PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, Solaris and AIX. Its main advantages over similar tools are that PyInstaller works with any version of Python since 2.4, it builds smaller executables thanks to transparent compression, it is fully multi-platform, and use the OS support to load the dynamic libraries, thus ensuring full compatibility. The main goal of PyInstaller is to be compatible with 3rd-party packages out-of-the-box. This means that, with PyInstaller, all the required tricks to make external packages work are already integrated within PyInstaller itself so that there is no user intervention required. You'll never be required to look for tricks in wikis and apply custom modification to your files or your setup scripts. As an example, libraries like PyQt, Django or matplotlib are fully supported, without having to handle plugins or external data files manually. PyInstaller
PyMonitor - Python Run Time Monitor Module PyMonitor - Python Run Time Monitor Module Python Run Time Monitor Module Copyright (c) 2003, 2004 Jonas Widen Abstract PyMonitor module is used to add support for enable runtime monitoring of an Python application. After creating an instance of the MonitorServer and starting the MonitorServer thread it publish an XML-RPC interface that provides methods for listing all current availible class instances the monitored Python instance has allocated.

C o r e P y : Synthetic Programming in Python CorePy is a Python package for developing assembly-level applications on x86, Cell BE and PowerPC processors. Its simple APIs enable the creation of complex, high-performance applications that take advantage of advanced processor features, including multiple cores and vector instruction sets (SSE, VMX, SPU), usually inaccessible from high-level languages. Based on an advanced run-time system, CorePy lets developers build and execute assembly-level programs interactively from the Python command prompt or embed them directly in Python applications. By shortening the tool-chain for developing assembly code, CorePy dramatically lowers the barrier for machine-level programming. CorePy is a general purpose development tool applicable to a broad range of domains, including game development, multimedia systems, scientific and high-performance computing, and embedded applications. C o r e P y : Synthetic Programming in Python
Burton Systems Software - TLIB Version Control - Overview
Introduction | News | Documentation | Get the Software | Help and Bug Reports | Development Introduction to CVS CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you can record the history of sources files, and documents. It fills a similar role to the free software RCS, PRCS, and Aegis packages. CVS is a production quality system in wide use around the world, including many free software projects. CVS - Open Source Version Control CVS - Open Source Version Control

Tracing Python memory leaks While I was writing a python daemon, I noticed that my application process memory usage is growing over time. The data wasn’t increasing so there must have been some memory leak. It’s not so easy for a Python application to leak memory. Tracing Python memory leaks
Python Call Graph Python Call Graph Welcome! Python Call Graph is a Python module that creates call graph visualizations for Python applications. Screenshots
virtualenv virtualenv is a tool to create isolated Python environments. The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.4/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded. virtualenv
Generate dependency graphs from Python code. This dependency tracker package has a few distinguishing characteristics: It uses the AST to parse the Python files. This is very reliable, it always runs.No module is loaded. Loading modules to figure out dependencies is almost always problem, because a lot of codebases run initialization code in the global namespace, which often requires additional setup. Snakefood is guaranteed not to have this problem (it just runs, no matter what).It works on a set of files, i.e. you do not have to specify a single script, you can select a directory (package or else) or a set of files. snakefood: Python Dependency Graphs
XRecord - An introspecting Python ORM

Introduction Patcher is a tool for quick creation of patches against a project source tree. Patcher functionality resembles a lightweight version control system. It has no repository, and only controls differences between a pristine version and a working copy. Why patcher - Labix
When starting a new component or application, I find myself typing out the same thing over and over, using Snippets in my Toolbox, etc.. A lot of setup time is spent organising, fixing little mistakes, going back to add something forgotten and the like. The goal of this script was to reduce the amount of typing when starting from well defined requirements. I was also interested in creating uniform looking code, which can be helpful when dealing with hundreds of different db, model, or view controllers. Basic class code generator
Object Proxying Object proxying is an important and useful concept in many places. Proxying, but itself, is not very useful... obj and Proxy(obj) should behave the same. The necessity of proxying comes to realization when you want Proxy(obj) to behave slightly different from obj. You can do it but subclassing the base Proxy class. As an example for useful proxying, see my ShelfProxy recipe. In this recipe, shelf[key] returns a proxy, not the real object, and the object is serialized back into the shelf when deleted.
Generic proxy object with before/after method hooks. « Python re I needed the ability to "trace" all function calls made to a particular object instance, in order to be able to "replay" them later in the same order and with the same values. (This was useful for testing, I have tests that are generated with randomness and I wanted to be able to reproduce the random test run exactly when it found a bug.) So I wrote this little recipe, which allows you to create a proxy object to any existing instance, with hooks for particular method calls, or for all method calls.
python proxy pattern