Astropy Affiliated Packages

A major part of the Astropy Project is the concept of “Astropy affiliated packages”. An affiliated package is an astronomy-related Python package that is not part of the astropy core package, and is not managed by the project but is a part of the Astropy Project community. These packages demonstrate a commitment to Astropy’s goals of improving reuse, interoperability, and interface standards for Python astronomy and astrophysics packages. In many (but not all) cases, affiliated packages also follow similar development processes and package templates as for the core package.

If you are a developer interested in signing up as an affiliated package, details are in the Becoming an Affiliated Package section.

Astropy Coordinated Packages

A related concept is that of “Astropy coordinated packages”. Coordinated packages are similar to affiliated packages, but the Astropy Project as a whole maintains them. In practice this means the Astropy coordination committee has administrative control of a coordinated package repository (delegated to the maintainers), and that maintainers of these packages have formal roles in the Astropy Project. The most prominent of these coordinated packages is the Astropy core package itself. In some cases these are packages identified by the core team as needing development separate from the core (either they are experimental or problem space-focused), while others started as affiliated packages but have become so important to the ecosystem that they grew to become coordinated.

Astropy Infrastructure Packages

One final related category are the "Astropy infrastructure packages". These packages are those that are necessary infrastructure for Astropy packages - e.g. testing and documentation machinery. While occasionally these have astro-specific functionality, in general they are more generic packages that are useful to packages outside of astronomy, and as a result may have some maintainers outside the Astropy project. But some are also Astropy coordinated packages, with maintainers drawn from the infrastructure roles.

Installing Affiliated and Coordinated Packages

The simplest way to install and keep up-to-date most affiliated packages is to use the Anaconda python distribution. This distribution includes the Astropy core package already built in, and you can then easily install or update affiliated packages using the Astropy Conda channel of binary installable packages. Once you have Anaconda installed, you can do conda search --channel astropy some_affiliated_package. Most importantly, you can then install them with conda install --channel astropy some_affiliated_package. The Astropy channel is maintained by the Astropy Project on Github via code in the conda-channel-astropy repository.

If you do not have Anaconda or wish to install from source, for most affiliated packages, downloading the source code and doing python install will work. Many also support the Astropy core package's additional build and install options, as they use the affiliated package template (detailed more in the Becoming an Affiliated Package section). That said, affiliated packages are developed independently of the Astropy core library. This means they are free to develop their packages as they see fit, and can have a variety of different requirements or unusual install procedures. Hence you should refer to the package's documentation first if you encounter problems.

Coordinated Packages

The following table lists all current Astropy coordinated packages. They are determined from the json file, which is the actual authoritative registry.

Total number of coordinated packages:


Affiliated Packages Registry

The following table lists all currently registered affiliated packages. They are determined from the json file, which is the actual authoritative registry.

Total number of affiliated packages:


Becoming an Affiliated Package

If you are a developer of an astronomy package and would like your package to become affiliated with the Astropy Project, please take a look at the instructions for proposing an affiliated package. We recommend that you also take a look at the guidelines for reviewing affiliated packages since this will give you a sense of whether your package is ready for review. Broadly speaking, your package should:

In addition, you should make an effort to connect with the Astropy developer community, including developers from the core astropy package or any related affiliated packages. If your package is determined to meet the above standards, it will be accepted and added to the affiliated package registry. Note however that if packages become unmaintained or do not meet the standards anymore, they may be removed from the list of affiliated packages.

Package Template

If you are considering creating a new astronomy package and would like it to be an Astropy affiliated package, you can use the OpenAstronomy packaging guide to make it much easier to meet these standards. It reflects up-to-date Python packaging techniques to generate documentation like that used in the astropy package, a ready-to-use testing framework, and a variety of tools that streamline tasks like user configuration, caching downloaded files, or linking C-compiled extensions. More details on this template are available in the usage instructions for the template.

We recommend that you join the astropy-affiliated-maintainers mailing list to be kept informed of updates to the package template, as well as to have any dicussions related to setting up affiliated packages.