Skip to content

Installation fix and revamped docs#233

Merged
SunilSimha merged 22 commits intomainfrom
installation_fix
Apr 21, 2026
Merged

Installation fix and revamped docs#233
SunilSimha merged 22 commits intomainfrom
installation_fix

Conversation

@SunilSimha
Copy link
Copy Markdown
Collaborator

@SunilSimha SunilSimha commented Apr 21, 2026

I found the current installation experience of just pip installing the bare-minimum FRB-repo-only and then installing dependencies as they come to be cumbersome on a new machine. I've therefore migrated the existing setup.py infrastructure to a more modern pyproject.toml based approach and made it so that the most commonly used dependencies are installed when installing the FRB repo.

This still leaves packages such as pcigale and eazy to the user's whims to install manually, but one can run survey searches out of the box.

Additionally, I have now revamped the docs with CoPilot with emphasis on making them more complete and to add a usable API reference. There might still be issues, so feel free to create an issue on this repo and tag me if you find an error.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Modernizes FRB’s packaging and documentation to improve the “install-and-run survey searches” experience by moving dependency metadata into pyproject.toml and expanding Sphinx API docs, alongside a few script/UX cleanups.

Changes:

  • Migrates packaging metadata from setup.py/setup.cfg to pyproject.toml and updates tox configuration accordingly.
  • Adds/standardizes cli() entrypoints for multiple frb.scripts.* modules and updates progress reporting (switch to tqdm).
  • Revamps Sphinx docs structure and adds many API reference stub pages via autodoc/automodule.

Reviewed changes

Copilot reviewed 130 out of 130 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
tox.ini Updates env matrix/extras and adds “lightweight” numpy test envs.
setup.py Removes legacy setuptools installer script.
setup.cfg Removes legacy extras configuration.
pyproject.toml Adds PEP 621 project metadata, deps, and console scripts.
frb/surveys/dlsurvey.py Updates missing-dependency warning string for Data Lab client.
frb/scripts/tns.py Docstring cleanup and adds cli() entrypoint + __main__ call.
frb/scripts/sightline.py Adds cli() entrypoint wrapper.
frb/scripts/search_for_halos.py Adds cli() entrypoint wrapper.
frb/scripts/random_assoc.py Replaces progressbar2 with tqdm; removes seaborn usage; adds __main__ guard.
frb/scripts/pzdm_mag.py Adds cli() entrypoint wrapper.
frb/scripts/image.py Adds cli() entrypoint wrapper.
frb/scripts/galaxies.py Adds cli() entrypoint wrapper.
frb/scripts/frb_summary.py Adds cli() entrypoint wrapper.
frb/scripts/build.py Adds cli() entrypoint wrapper.
frb/requirements.txt Marks requirements file as deprecated; adds a few deps.
frb/optional_requirements.txt Adds optional-deps reference list.
frb/mw.py Removes __future__ import; adds docstring for haloDM().
frb/halos/photoz.py Switches progress reporting to tqdm; uses local frb.galaxies.eazy wrapper.
frb/halos/models.py Changes missing hmf_emulator handling behavior/message.
frb/halos/hmf.py Changes missing hmf_emulator handling behavior/message.
frb/galaxies/hosts.py Improves docstrings and Sphinx directives formatting.
frb/galaxies/galfit.py Removes duplicated docstring lines.
frb/galaxies/cigale.py Improves install hint message for pcigale.
frb/dm/igm.py Removes __future__ import.
frb/associate/frbassociate.py Improves __init__ docstring.
frb/analysis/kcwi.py Changes missing optional dependency handling from raising to printing.
docs/installing.rst Updates installation guidance to pip install -e . and lists deps/extras.
docs/halos/utils.rst Adds new autodoc page for frb.halos.utils.
docs/halos/photoz.rst Replaces long hand-written docs with automodule-based API rendering.
docs/halos/models.rst Reworks halo docs to use automodule/autoclass structure.
docs/halos/index.rst Expands halos docs TOC; updates progress-bar dependency mention.
docs/halos/hmf.rst Simplifies and adds migration guide; uses automodule docs.
docs/frbhost_class.rst Replaces embedded API blocks with links/short refs.
docs/frb_class.rst Replaces embedded API blocks with links/short refs.
docs/conf.py Adds autodoc_mock_imports and stub env vars for doc builds.
docs/api/utils.rst New automodule stub for frb.utils.
docs/api/io.rst New automodule stub for frb.io.
docs/api/defs.rst New automodule stub for frb.defs.
docs/api/analysis.rst New automodule stub for frb.analysis + TOC.
docs/api/analysis.kcwi.rst New automodule stub for frb.analysis.kcwi.
docs/api/dm.rst Restructures DM API docs and adds submodule toctree.
docs/api/dm.cosmic.rst New automodule stub for frb.dm.cosmic.
docs/api/dm.dm_ism_healpix_map.rst New automodule stub for frb.dm.dm_ism_healpix_map.
docs/api/dm.host.rst New automodule stub for frb.dm.host.
docs/api/dm.igm.rst New automodule stub for frb.dm.igm.
docs/api/dm.mcmc.rst New automodule stub for frb.dm.mcmc.
docs/api/dm.prob_dmz.rst New automodule stub for frb.dm.prob_dmz.
docs/api/dm_kde.rst Adds dm_kde landing page and submodule TOC notes.
docs/api/dm_kde.dm_frb_sim.rst Adds note about import-time simulation behavior.
docs/api/dm_kde.pdf_fns.rst New automodule stub for frb.dm_kde.pdf_fns.
docs/api/dm_kde.sort_transient_data.rst New automodule stub for frb.dm_kde.sort_transient_data.
docs/api/dm_kde.transient_kdes.rst New automodule stub for frb.dm_kde.transient_kdes.
docs/api/associate.rst Converts associate docs to a toctree layout.
docs/api/associate.frbassociate.rst New automodule stub for frb.associate.frbassociate.
docs/api/associate.frbs.rst New automodule stub for frb.associate.frbs.
docs/api/associate.gen_pox_table.rst New automodule stub for frb.associate.gen_pox_table.
docs/api/builds.rst New builds landing page with toctree.
docs/api/builds.utils.rst New automodule stub for frb.builds.utils.
docs/api/builds.build_fg.rst New automodule stub for frb.builds.build_fg.
docs/api/builds.build_frbs.rst New automodule stub for frb.builds.build_frbs.
docs/api/builds.build_hosts.rst New automodule stub for frb.builds.build_hosts.
docs/api/builds.build_path.rst New automodule stub for frb.builds.build_path.
docs/api/builds.build_specdb.rst New automodule stub for frb.builds.build_specdb.
docs/api/builds.old_build_frbs.rst New automodule stub for legacy builds module.
docs/api/builds.old_build_hosts.rst New automodule stub for legacy builds module.
docs/api/figures.rst New figures landing page with toctree.
docs/api/figures.dm.rst New automodule stub for frb.figures.dm.
docs/api/figures.finder.rst New automodule stub for frb.figures.finder.
docs/api/figures.galaxies.rst New automodule stub for frb.figures.galaxies.
docs/api/figures.utils.rst New automodule stub for frb.figures.utils.
docs/api/galaxies.rst Expands galaxies toctree with additional modules.
docs/api/galaxies.cigale.rst Simplifies page + notes optional dependency.
docs/api/galaxies.convert_tables.rst New automodule stub for frb.galaxies.convert_tables.
docs/api/galaxies.eazy.rst Simplifies page + notes required env var.
docs/api/galaxies.extra_data.rst New automodule stub for frb.galaxies.extra_data.
docs/api/galaxies.frbgalaxy.rst Removes long narrative; keeps API focus.
docs/api/galaxies.galfit.rst New automodule stub for frb.galaxies.galfit.
docs/api/galaxies.hosts.rst Removes long narrative; keeps API focus.
docs/api/galaxies.mag_dm.rst New automodule stub for frb.galaxies.mag_dm.
docs/api/galaxies.nebular.rst Removes long narrative; keeps API focus.
docs/api/galaxies.offsets.rst Removes long narrative; keeps API focus.
docs/api/galaxies.photom.rst Fixes heading spacing; reduces narrative content.
docs/api/galaxies.ppxf.rst Simplifies page + notes optional dependency.
docs/api/galaxies.utils.rst Simplifies page + notes optional dependency.
docs/api/halos.rst Reworks halos landing page; points to full docs section.
docs/api/frb_surveys.rst Converts to a toctree layout.
docs/api/frb_surveys.chime.rst New automodule stub for CHIME surveys module.
docs/api/scripts.rst New scripts landing page with toctree.
docs/api/scripts.build.rst New automodule stub for frb.scripts.build.
docs/api/scripts.dm_ism_hp_map.rst New automodule stub for frb.scripts.dm_ism_hp_map.
docs/api/scripts.frb_summary.rst New automodule stub for frb.scripts.frb_summary.
docs/api/scripts.galaxies.rst New automodule stub for frb.scripts.galaxies.
docs/api/scripts.image.rst New automodule stub for frb.scripts.image.
docs/api/scripts.iteration.rst New automodule stub for frb.scripts.iteration.
docs/api/scripts.pz_given_dm.rst New automodule stub for frb.scripts.pz_given_dm.
docs/api/scripts.pzdm_mag.rst New automodule stub for frb.scripts.pzdm_mag.
docs/api/scripts.pzdm_mag_crossmatch.rst New automodule stub for frb.scripts.pzdm_mag_crossmatch.
docs/api/scripts.r_vs_dm.rst New automodule stub for frb.scripts.r_vs_dm.
docs/api/scripts.random_assoc.rst New automodule stub for frb.scripts.random_assoc.
docs/api/scripts.search_for_halos.rst New automodule stub for frb.scripts.search_for_halos.
docs/api/scripts.sightline.rst New automodule stub for frb.scripts.sightline.
docs/api/scripts.tns.rst New automodule stub for frb.scripts.tns.
docs/api/surveys.rst Replaces inline sections with a large toctree of survey modules.
docs/api/surveys.catalog_utils.rst New automodule stub for frb.surveys.catalog_utils.
docs/api/surveys.cluster_search.rst New automodule stub for frb.surveys.cluster_search.
docs/api/surveys.decals.rst New automodule stub for frb.surveys.decals.
docs/api/surveys.defs.rst New automodule stub for frb.surveys.defs.
docs/api/surveys.desi.rst New automodule stub for frb.surveys.desi.
docs/api/surveys.des.rst New automodule stub for frb.surveys.des.
docs/api/surveys.delve.rst New automodule stub for frb.surveys.delve.
docs/api/surveys.dlsurvey.rst New automodule stub for frb.surveys.dlsurvey.
docs/api/surveys.galex.rst New automodule stub for frb.surveys.galex.
docs/api/surveys.heasarc.rst New automodule stub for frb.surveys.heasarc.
docs/api/surveys.hsc.rst New automodule stub for frb.surveys.hsc.
docs/api/surveys.images.rst New automodule stub for frb.surveys.images.
docs/api/surveys.nedlvs.rst New automodule stub for frb.surveys.nedlvs.
docs/api/surveys.nsc.rst New automodule stub for frb.surveys.nsc.
docs/api/surveys.panstarrs.rst New automodule stub for frb.surveys.panstarrs.
docs/api/surveys.psrcat.rst New automodule stub for frb.surveys.psrcat.
docs/api/surveys.sdss.rst New automodule stub for frb.surveys.sdss.
docs/api/surveys.survey_io.rst New automodule stub for frb.surveys.survey_io.
docs/api/surveys.survey_utils.rst New automodule stub for frb.surveys.survey_utils.
docs/api/surveys.surveycoord.rst New automodule stub for frb.surveys.surveycoord.
docs/api/surveys.tns_util.rst New automodule stub for frb.surveys.tns_util.
docs/api/surveys.twomass.rst New automodule stub for frb.surveys.twomass.
docs/api/surveys.utils_crossmatching.rst New automodule stub for frb.surveys.utils_crossmatching.
docs/api/surveys.vista.rst New automodule stub for frb.surveys.vista.
docs/api/surveys.wise.rst New automodule stub for frb.surveys.wise.
.github/workflows/ci_tests.yml Switches CI trigger branch from master to main.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/installing.rst
Comment thread frb/requirements.txt Outdated
Comment thread frb/optional_requirements.txt
Comment thread frb/analysis/kcwi.py
Comment thread tox.ini Outdated
Comment thread frb/surveys/dlsurvey.py
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread pyproject.toml
Comment thread pyproject.toml
Copilot AI and others added 2 commits April 21, 2026 16:25
Comment thread tox.ini Outdated
@SunilSimha SunilSimha marked this pull request as ready for review April 21, 2026 18:22
@SunilSimha SunilSimha requested review from profxj April 21, 2026 18:22
@SunilSimha
Copy link
Copy Markdown
Collaborator Author

@profxj , this is a huge diff, so I will appreciate it if you take a careful look at just pyproject.toml and tox.ini. Feel free to only skim the new html docs.

Copy link
Copy Markdown
Contributor

@profxj profxj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is great!!

@SunilSimha SunilSimha merged commit e3237b4 into main Apr 21, 2026
4 checks passed
@SunilSimha SunilSimha deleted the installation_fix branch April 21, 2026 20:25
@SunilSimha SunilSimha restored the installation_fix branch April 22, 2026 02:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants