  We present the first stable release of Halotools (v0.2), a community-driven
Python package designed to build and test models of the galaxy-halo connection.
Halotools provides a modular platform for creating mock universes of galaxies
starting from a catalog of dark matter halos obtained from a cosmological
simulation. The package supports many of the common forms used to describe
galaxy-halo models: the halo occupation distribution (HOD), the conditional
luminosity function (CLF), abundance matching, and alternatives to these models
that include effects such as environmental quenching or variable galaxy
assembly bias. Satellite galaxies can be modeled to live in subhalos, or to
follow custom number density profiles within their halos, including spatial
and/or velocity bias with respect to the dark matter profile. The package has
an optimized toolkit to make mock observations on a synthetic galaxy
population, including galaxy clustering, galaxy-galaxy lensing, galaxy group
identification, RSD multipoles, void statistics, pairwise velocities and
others, allowing direct comparison to observations. Halotools is
object-oriented, enabling complex models to be built from a set of simple,
interchangeable components, including those of your own creation. Halotools has
an automated testing suite and is exhaustively documented on
http://halotools.readthedocs.io, which includes quickstart guides, source code
notes and a large collection of tutorials. The documentation is effectively an
online textbook on how to build and study empirical models of galaxy formation
with Python.
