background preloader

Software Engineering

Facebook Twitter

Cue/scales. Beautifiers and Pretty Printers. Beautifiers and pretty printers are essential language tools.

Beautifiers and Pretty Printers

Unfortunately very few programmers use them. If you do not use please start now... that's a real life saver tool. Programmers spend 50% of their time just lookingat source code. Cli — command line tools — pyCLI v1.1.0 documentation. The cli package is a framework for making simple, correct command line applications in Python.

cli — command line tools — pyCLI v1.1.0 documentation

With cli, you can quickly add standard command line parsing; logging; unit and functional testing; and profiling to your CLI apps. 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. Features ¶ Downloads ¶ License ¶ PyMonitor - Python Run Time Monitor Module.


C o r e P y : Synthetic Programming in Python. Burton Systems Software - TLIB Version Control - Overview. CVS - Open Source Version Control. 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).

CVS - Open Source Version Control

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. While CVS stores individual file history in the same format as RCS, it offers the following significant advantages over RCS:


Tracing Python memory leaks. While I was writing a python daemon, I noticed that my application process memory usage is growing over time.

Tracing Python memory leaks

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. Usually there are three scenarios: some low level C library is leakingyour Python code have global lists or dicts that grow over time, and you forgot to remove the objects after usethere are some reference cycles in your app I remembered the post from Marius Gedminas, in which he traced his memory leaks, but I haven’t noticed before that he published his tools.

Ore.svn. Python Call Graph. 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.

Or more generally, what if you want to install an application and leave it be? Also, what if you can't install packages into the global site-packages directory? In all these cases, virtualenv can help you. The basic usage is: $ python ENV. Snakefood: Python Dependency Graphs. Generate dependency graphs from Python code.

snakefood: Python Dependency Graphs

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. XRecord - An introspecting Python ORM.


Patcher - Labix. Introduction Patcher is a tool for quick creation of patches against a project source tree.

patcher - Labix

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 The idea for developing patcher happened during the development of Conectiva Linux. Using patcher Here's a very simple succession of commands, with explanations. Basic class code generator. When starting a new component or application, I find myself typing out the same thing over and over, using Snippets in my Toolbox, etc..

Basic class code generator

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. Object Proxying. 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.

Generic proxy object with before/after method hooks. « Python re

(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.) Python proxy pattern.