We generally can’t say much about our consultancy projects because of commercial confidentiality. However, we make extensive use of open source projects, both internally and on client work. We also contribute back to several well-known open source projects and publish projects which are available under open source licences. Below, we describe some of these projects.
We have a staff member who is a committer on the Python project. Our contributions to Python started in around 2003, since when we have contributed:
The logging package. This allows flexible tracking of events in applications and libraries.
The venv package. This allows creation of virtual environments in an efficient way, which can be used to isolate applications from each other.
The Python Launcher for Windows. This allows shebang line processing in scripts and brings very useful POSIX functionality to Windows.
Our contributions have been in terms of both C code and Python code in the standard library which ships as part of the Python distribution.
This project provides easy access to the functionality of the GNU Privacy Guard (GnuPG) to Python applications and libraries. It works across multiple GnuPG versions and ships with standard Linux distributions such as Debian, Ubuntu, Fedora, Red Hat Enterprise Linux and CentOS. It also works on OS X, FreeBSD and Windows. For more information, see the documentation.
This project is a Python library providing low-level packaging functionality which is intended to be used as the basis for third-party packaging tools. It‘s used by Python’s standard package management tool, pip. For more information, see the documentation.
We've developed the CFG configuration format, a superset of JSON which provides a number of useful features. It’s designed to:
Allow a hierarchical configuration scheme with support for key-value mappings and lists.
Support cross-references between one part of the configuration and another.
Provide the ability to compose configurations (using include, merge and interpolation facilities).
Provide the ability to access real application objects safely.
It overcomes a number of drawbacks of JSON when used as a configuration format:
JSON is more verbose than necessary.
JSON doesn’t allow comments.
JSON doesn’t allow trailing commas in lists and mappings.
It has implementations in a number of languages, all licensed under the BSD-3-Clause license:
This project is a cross-platform Python library providing enhanced functionality for communicating with child processes. For more information, see the documentation.
Supervisor is a well-known process control system written in Python but used across a very wide range of applications to control groups of OS processes. Our staff played an important role in porting Supervisor to Python 3, in such a way that Python 2 and Python 3 could be supported from a single code base.