The GitDB project implements interfaces to allow read and write access to
git repositories. In its core lies the db package, which contains
all database types necessary to read a complete git repository. These are
the LooseObjectDB, the PackedDB and the ReferenceDB which are combined
into the GitDB to combine every aspect of the git database.
For this to work, GitDB implements pack reading, as well as loose object
reading and writing. Data is always encapsulated in streams, which allows
huge files to be handled as well as small ones, usually only chunks of
the stream are kept in memory for processing, never the whole stream at
once.
Grab is a python web scraping framework. Grab provides tons of helpful methods
to scrape web sites and to process the scraped content:
* Automatic cookies (session) support
* HTTP and SOCKS proxy with and without authorization
* Keep-Alive support
* IDN support
* Tools to work with web forms
* Easy multipart file uploading
* Flexible customization of HTTP requests
* Automatic charset detection
* Powerful API of extracting info from HTML documents with XPATH queries
* Asynchronous API to make thousands of simultaneous queries. This part of
library called Spider and it is too big to even list its features in this
README.
* Python 3 ready
'uncompyle2' converts Python byte-code back into equivalent Python
source code. It accepts byte-code from Python version 2.5 to 2.7.
Additionally, it will only run on Python 2.7.
The generated source is very readable: docstrings, lists, tuples and
hashes get pretty-printed.
Features
. decompiles Python byte-code into equivalent Python source
. decompiles byte-code from Python version 2.5, 2.6, 2.7
. pretty-prints docstrings, hashes, lists and tuples
. reads directly from .pyc/.pyo files, bulk-decompile whole
directories
. output may be written to file, a directory or to stdout
. option for including byte-code disassembly into generated source
The Voidspace Pythonutils package is a simple way of installing the Voidspace
collection of modules. These are currently:
ConfigObj 4.4.0 - Easy config file reading/writing
validate 0.2.3 - Validation and type conversion system
StandOut 3.0.0 - Simple logging and output control object
pathutils 0.2.5 - For working with paths and files
cgiutils 0.3.5 - CGI helpers
urlpath 0.1.0 - Functions for handling URLs
odict 0.2.1 - Ordered Dictionary Class
Several of the Voidspace Projects depend on these modules. They are also useful
in their own right of course. They are primarily general utility modules that
simplify common programming tasks in Python.
PyInstaller is a program that converts (packages) Python programs into stand-
alone executables, under Windows, Mac OS X, and Unix-like operating systems.
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 uses the OS support
to load the dynamic libraries, thus ensuring full compatibility.
The main goal of PyInstaller is to be compatible with third-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.
simplejson is a simple, fast, extensible JSON encoder/decoder for Python
simplejson is compatible with Python 2.4 and later with no external
dependencies. It covers the full JSON specification for both encoding and
decoding, with unicode support. By default, encoding is done in an encoding
neutral fashion (plain ASCII with \uXXXX escapes for unicode characters).
The encoder may be subclassed to provide serialization in any kind of situation,
without any special support by the objects to be serialized (somewhat like
pickle).
The decoder can handle incoming JSON strings of any specified encoding (UTF-8 by
default).
Python bindings for Newt toolkit.
Newt is a windowing toolkit for text mode built from the slang
library. It allows color text mode applications to easily use
stackable windows, push buttons, check boxes, radio buttons, lists,
entry fields, labels, and displayable text. Scrollbars are supported,
and forms may be nested to provide extra functionality.
Besides the newt library, this port provides whiptail, which may
be used from shell scripts similarly to Savio Lam's "dialog". Newt
provides the textual interface for the Red Hat and Debian boot
disks.
A Ruby gem to manage ISO 3166 country names and their
corresponding alpha-2 and alpha-3 codes. Additional
support has been added for ISO 4127 currency information
and standard conventions for states in the USA
(based on the 3166-2:US code).
ISO 3166 country codes reference:
http://en.wikipedia.org/wiki/ISO_3166-1
ISO 4217 currency information:
http://www.xe.com/iso4217.php
http://www.xe.com/symbols.php
ISO 3166-2:US code reference:
http://code.google.com/apis/chart/statecodes.html
http://en.wikipedia.org/wiki/ISO_3166-2:US
ISO 639 language reference:
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
The Sigar API provides a portable interface for gathering system information
such as:
* System memory, swap, cpu, load average, uptime, loginsi
* Per-process memory, cpu, credential info, state, arguments, environment,
open files
* File system detection and metrics
* Network interface detection, configuration info and metrics
* TCP and UDP connection tables
* Network route table
This information is available in most operating systems, but each OS has their
own way(s) providing it. SIGAR provides developers with one API to access this
information regardless of the underlying platform. The core API is implemented
in pure C with bindings currently implemented for Java, Perl, Ruby, Python,
Erlang, PHP and C#.
SMACK is a low-level I/O storage library which packs data into sorted blobs,
compressed with zlib, bzip2, or snappy.
It was created to host huge amount of rather small compressible data in
Elliptics, providing extremely fast write performance (tens of thousands RPS
per node with hundreds of millions already written objects); its backend
architecture was implemented with HBase in mind, but some changes were
tested and made different.
Data is compressed and sorted by key, that is, you get HBase-like scans for
free (although this is not yet exported to Elliptics API).