I would like to open a discussion on the idea of moving most of yt’s analysis modules into an external yt extensions package.  For ease of reading, I will separate this email into what this would mean for the code, what I see are the pros, cons, logistics, and open questions.  I would very much appreciate comment on this.

What this means

If we did this, most of the contents of yt/analysis_modules would be moved into a repository named something like yt_astro_analysis.  Installing this would be an option in the install script and would likely also be pip installable.  Imports would change from

from yt.analysis_modules.halo_analysis.api import HaloCatalog


from yt.extensions.astro_analysis.halo_analysis.api import HaloCatalog

After creating yt_astro_analysis, there would be a period where the old analysis_modules would still exist but be deprecated before being removed at some point down the road.



Proposed progression

This is roughly how this would happen.  Here is a table with all existing analysis modules, their status, and potential future:

  1. Create yt_astro_analysis repo with all analysis modules that are to be moved.  Add an entry to the extensions page on  Make it installed by default in the install script, at least at first.

  2. Deprecate all moved modules in yt.

  3. After some time, remove deprecated modules from yt.

Open issues

Here are some logistics and questions that still need to be worked out.

Questions to yt-dev

Thanks for reading!