This page describes how to install and improve the development version of Blaze.
If this documentation isn’t sufficiently clear or if you have other questions then please email email@example.com.
Installing Development Blaze¶
Blaze depends on many other projects, both projects that develop alongside
odo) as well a number of community projects (like
Blaze development happens in the following projects, all of which are available on github.com/blaze/project-name
Bleeding edge binaries are kept up-to-date on the
blaze conda channel.
New developers likely only need to interact with one or two of these libraries so we recommend downloading everything by the conda channel and then only cloning those git repositories that you actively need:
conda install -c blaze blaze # install everything from dev channel git clone git://github.com/blaze/blaze.git # only clone blaze and odo git clone git://github.com/blaze/odo.git # only clone blaze and odo
Source code and issue management are hosted in this github page, and usage of git roughly follows GitHub Flow. What this means is that the master branch is generally expected to be stable, with tests passing on all platforms, and features are developed in descriptively named feature branches and merged via github’s Pull Requests.
Unified Python 2 and 3 Codebase:
Blaze source code simultaneously supports both Python 2 and Python 3 with a single codebase.
To support this, all .py files must begin with a few __future__ imports, as follows.:
from __future__ import absolute_import, division, print_function
In order to keep the
master branch functioning with passing tests,
there are two automated testing mechanisms being used. First is
Travis CI, which is configured to automatically build any pull
requests that are made. This provides a smoke test against both
Python 2 and Python 3 before a merge.
The Travis tests only run on Linux, but Blaze is supported on Linux, OS X, and Windows. Further tests and bleeding-edge builds are carried out using Anaconda build which tests and builds Blaze on the following platforms/versions
- Python versions 2.6, 2.7, 3.3, 3.4
- Operating systems Windows, OS-X, Linux
- 32-bit and 64-bit
To avoid the side effects of top level imports, e.g. import blaze, all internal code should be imported relatively. Thus:
#file: blaze/objects/table.py from blaze import Array
#file: blaze/objects/table.py from .array import Array
For cross submodule imports, import from the module api. For example:
#file: blaze/objects/table.py from ..io import printing