Termbox is a library that provides a minimalistic API which allows the
programmer to write text-based user interfaces. The library is
crossplatform and has both terminal-based implementations on *nix
operating systems and a winapi console based implementation for
Windows operating systems. The basic idea is an abstraction of the
greatest common subset of features available on all major terminals
and other terminal-like APIs in a minimalistic fashion. Small API
means it is easy to implement, test, maintain and learn it, that's
what makes the termbox a distinct library in its area.
File::Slurp::Tree provides functions for slurping and emitting trees of files
and directories.
# an example of use in a test suite
use Test::More tests => 1;
use File::Slurp::Tree;
is_deeply( slurp_tree( "t/some_path" ), { foo => {}, bar => "sample\n" },
"some_path contains a directory called foo, and a file bar" );
The tree data structure is a hash of hashes. The keys of each hash are names of
directories or files. Directories have hash references as their value, files
have a scalar which holds the contents of the file.
Module::Dependency - Collection of modules for examining dependencies
between parents and children, like Perl files
A set of pure-perl modules and helper programs that let you build a
database of the dependency links between a collection of Perl files,
and then query that database, even producing text, HTML, PostScript
or graphical reports.
The database in question is actually a simple Storable image of a
Perl data structure, and you can create as many of these as you want.
You can use the command-line tools, or write your own Perl to query
and manipulate the data however you want.
Period.pm is a Perl module that contains code to deal with time periods.
Currently, there is only a function in this module. That function is
called inPeriod().
inPeriod() determines if a given time is within a given time period.
It will return 1 if it is, 0 if not, and -1 if either the time or the
period passed to it were malformed. The time is specified in non-leap
year seconds past January 1, 1970, as per the time() function. The period
is a string which is of the form described in Period's man page.
This is an XML parser based on PHPs built-in xml extension.
It supports two basic modes of operation: "func" and "event". In
"func" mode, it will look for a function named after each element
(xmltag_ELEMENT for start tags and xmltag_ELEMENT_ for end tags),
and in "event" mode it uses a set of generic callbacks.
Since version 1.2.0 there's a new XML_Parser_Simple class that makes
parsing of most XML documents easier, by automatically providing a
stack for the elements.
Furthermore its now possible to split the parser from the handler
object, so you do not have to extend XML_Parser anymore in order
to parse a document with it.
The Traits project is at the center of all Enthought Tool Suite
development and has changed the mental model used at Enthought for
programming in the already extremely efficient Python programming
language.
The Traits project allows Python programmers to use a special kind
of type definition called a trait, which gives object attributes
some additional characteristics, such as Initialization, Validation,
Delegation, Notification and Visualization.
A class can freely mix trait-based attributes with normal Python
attributes, or can opt to allow the use of only a fixed or open set
of trait attributes within the class. Trait attributes defined by
a classs are automatically inherited by any subclass derived from
the class.
This package builds on the object adaptation protocol presented in PEP
246 to make it easier for component authors, framework suppliers, and
other developers to:
* Specify what behavior a component requires or provides
* Specify how to adapt the interface provided by one component to
that required by another
* Specify how to adapt objects of a particular type or class (even
built-in types) to a particular required interface
* Automatically adapt a supplied object to a required interface,
and
* Do all of the above, even when the components or frameworks
involved were not written to take advantage of this package, and
even if the frameworks have different mechanisms for defining
interfaces.
Pytools is a big bag of things that are "missing" from the Python standard
library. This is mainly a dependency of my other software packages, and
is probably of little interest to you unless you use those. If you're
curious nonetheless, here's what's on offer:
- A ton of small tool functions such as len_iterable, argmin, tuple
generation, permutation generation, ASCII table pretty printing, GvR's
mokeypatch_xxx() hack, the elusive flatten, and much more.
- Michele Simionato's decorator module.
- A time-series logging module, pytools.log.
- Batch job submission, pytools.batchjob.
- A lexer, pytools.lex.
From the README:
Twisted is an event-based framework for Internet applications. It includes
a web server, a telnet server, a chat server, a news server, a generic
client and server for remote object access, and APIs for creating new
protocols and services. Twisted supports integration of the Tk, GTK+, Qt or
wxPython event loop with its main event loop. The Win32 event loop is also
supported, as is basic support for running servers on top of Jython.
Twisted is based on an unconventional and somewhat Twisted design philosophy.
From the README:
Twisted is an event-based framework for Internet applications. It includes
a web server, a telnet server, a chat server, a news server, a generic
client and server for remote object access, and APIs for creating new
protocols and services. Twisted supports integration of the Tk, GTK+, Qt or
wxPython event loop with its main event loop. The Win32 event loop is also
supported, as is basic support for running servers on top of Jython.
Twisted is based on an unconventional and somewhat Twisted design philosophy.