Skip to content

[WIP] Fix AstroPhot docstrings to explicit RST fields for Sphinx compatibility#294

Merged
ConnorStoneAstro merged 17 commits intomainfrom
copilot/fix-model-docstrings-formatting
Mar 25, 2026
Merged

[WIP] Fix AstroPhot docstrings to explicit RST fields for Sphinx compatibility#294
ConnorStoneAstro merged 17 commits intomainfrom
copilot/fix-model-docstrings-formatting

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 24, 2026

Updates docstrings to RST for Sphinx/Jupyter Book compatibility, merges docstrings across the MRO, and rebuilds the API docs structure with autodoc pages and MathJax support.

Changes Made

  • Reworked combine_docstrings to merge parameters/options from the full MRO into a single RST parameter list and add [model param] tags to distinguish model parameters from options.
  • Converted model and mixin docstrings from markdown to RST (including .. math:: blocks).
  • Converted docstrings in the image, fitting, and plotting sections to explicit RST field-list syntax using :param:, :type:, :returns:, and :rtype: (replacing Args: / Returns: style sections).
  • Updated docstring terminology from Tensor/tensor to Array where applicable, to reflect support for both PyTorch and JAX backends.
  • Added description entries to every _parameter_specs parameter.
  • Applied combine_docstrings to auto-generated classes in radial.py and radial_psf.py.
  • Removed make_docs.py and replaced the docstring notebook tree with Sphinx autodoc RST pages.

Documentation

  • Added docs/source/astrophotdocs/*.rst autodoc pages and updated astrophotdocs/index.rst.
  • Enabled MathJax in the Jupyter Book/Sphinx configuration.

Testing

  • Targeted pytest runs for utility and parameter tests.
  • Targeted pytest runs for updated sections: tests/test_image.py, tests/test_fit.py, and tests/test_plots.py.
Original prompt

This section details on the original issue you should resolve

<issue_title>Model docstrings need a rewrite</issue_title>
<issue_description>As part of my latest update I tried to make the model docstrings use markdown formatting, but this ultimately doesn't seem to have worked. I would like to revert to a format that sphinx autodoc can work with (I think this is RST). My main challenge is to get it to work in a way that also compiles into the jupyter-book website system with latex equations.

Also, I think the combine_docstrings decorator should be smarter about merging docstrings. It should find all of the "Parameters" and the "Options" from each collected docstring and merge them into single lists so that autodoc compiles them correctly.

The combine_docstrings decorator also needs to be applied to all the auto generated types in the radial.py and radial_psf.py files. Further, they should be modified so that sphinx autodoc picks them up when generating the documentation.

My attempted giant jupyter notebook of docstrings didn't work so that should be removed and instead the tree of autodoc results should be made more human navigable.

While doing this, it would be good to also check that all the docstrings are up to date to match the actual coded implementations. And the "Parameters" descriptions in the docstrings should be added as a "description" key in all the _parameter_specs dictionaries associated with each model.</issue_description>

Comments on the Issue (you are @copilot in this section)


⌨️ Start Copilot coding agent tasks without leaving your editor — available in VS Code, Visual Studio, JetBrains IDEs and Eclipse.

Copilot AI and others added 4 commits March 24, 2026 20:00
… autodoc structure

- Rewrite combine_docstrings decorator to merge params from full MRO
- Add _parse_docstring helper supporting both RST and markdown formats
- Convert model/mixin docstrings from markdown to RST format
- Convert block math $$...$$ to .. math:: directives
- Convert inline math $expr$ to :math:`expr`
- Add description keys to all _parameter_specs dicts
- Apply combine_docstrings to auto-generated types in radial.py/radial_psf.py
- Update docs structure to use sphinx autodoc
- Remove make_docs.py (replaced by autodoc approach)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Use \w+ instead of \S+ when matching param/type names in body stripping
- Use single dash '-' with MULTILINE flag for markdown list item matching
- These address edge cases around colons in descriptions and multi-dash lines

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/d8acb003-647d-4ac3-bb3b-92de85d29ff9
@ConnorStoneAstro
Copy link
Copy Markdown
Member

@copilot I would like a distinction in the documentation between the "Parameters" and the "Options". Perhaps just adding [model param] at the end of the line for the Parameters would work.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@ConnorStoneAstro The model claude-sonnet-4.6 is not available for your account. This can happen if the model was disabled by your organization's policy or if your Copilot plan doesn't include access to it.

You can try again without specifying a model (just @copilot) to use the default, or choose a different model from the model picker.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 88adc444-bf8d-4952-a104-30c3cd65a42c

5 similar comments
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@ConnorStoneAstro The model claude-sonnet-4.6 is not available for your account. This can happen if the model was disabled by your organization's policy or if your Copilot plan doesn't include access to it.

You can try again without specifying a model (just @copilot) to use the default, or choose a different model from the model picker.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 88adc444-bf8d-4952-a104-30c3cd65a42c

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@ConnorStoneAstro The model claude-sonnet-4.6 is not available for your account. This can happen if the model was disabled by your organization's policy or if your Copilot plan doesn't include access to it.

You can try again without specifying a model (just @copilot) to use the default, or choose a different model from the model picker.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 88adc444-bf8d-4952-a104-30c3cd65a42c

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@ConnorStoneAstro The model claude-sonnet-4.6 is not available for your account. This can happen if the model was disabled by your organization's policy or if your Copilot plan doesn't include access to it.

You can try again without specifying a model (just @copilot) to use the default, or choose a different model from the model picker.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 88adc444-bf8d-4952-a104-30c3cd65a42c

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@ConnorStoneAstro The model claude-sonnet-4.6 is not available for your account. This can happen if the model was disabled by your organization's policy or if your Copilot plan doesn't include access to it.

You can try again without specifying a model (just @copilot) to use the default, or choose a different model from the model picker.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 88adc444-bf8d-4952-a104-30c3cd65a42c

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@ConnorStoneAstro The model claude-sonnet-4.6 is not available for your account. This can happen if the model was disabled by your organization's policy or if your Copilot plan doesn't include access to it.

You can try again without specifying a model (just @copilot) to use the default, or choose a different model from the model picker.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 88adc444-bf8d-4952-a104-30c3cd65a42c

@ConnorStoneAstro
Copy link
Copy Markdown
Member

@copilot I would like a distinction in the documentation between the "Parameters" and the "Options". Perhaps just adding [model param] at the end of the line for the Parameters would work.

Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/cff088e1-801d-4b12-9940-ce2887562ad3
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@copilot I would like a distinction in the documentation between the "Parameters" and the "Options". Perhaps just adding [model param] at the end of the line for the Parameters wou...

Added a [model param] tag to all model parameters in combined docstrings so options remain untagged (commit 7013cc7). No UI changes.

@copilot I would like a distinction in the documentation between the "Parameters" and the "Options". Perhaps just adding [model param] at the end of the line for the Parameters would wo...

Added a [model param] tag to all model parameters in combined docstrings so options remain untagged (commit 7013cc7). No UI changes.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 25, 2026

Codecov Report

❌ Patch coverage is 91.02564% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.28%. Comparing base (abbbf01) to head (ff79912).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
astrophot/image/image_object.py 0.00% 4 Missing ⚠️
astrophot/utils/decorators.py 92.50% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #294      +/-   ##
==========================================
+ Coverage   91.22%   91.28%   +0.05%     
==========================================
  Files         112      112              
  Lines        6018     6069      +51     
==========================================
+ Hits         5490     5540      +50     
- Misses        528      529       +1     
Flag Coverage Δ
unittests 91.28% <91.02%> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ConnorStoneAstro
Copy link
Copy Markdown
Member

@copilot Can you please update the docstrings for the image, fitting, and plotting sections as well to be in RST format.

Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/c48da40e-0846-464e-a2ea-c0274b9ae0f1
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@copilot Can you please update the docstrings for the image, fitting, and plotting sections as well to be in RST format.

Updated docstrings in the image, fitting, and plotting sections to RST-friendly formatting and converted markdown fences/sections to RST equivalents (commit 9c23976). No UI changes.

Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/c48da40e-0846-464e-a2ea-c0274b9ae0f1
Copilot AI changed the title [WIP] Fix model docstrings to use RST for Sphinx compatibility [WIP] Fix AstroPhot docstrings to use RST for Sphinx compatibility Mar 25, 2026
@ConnorStoneAstro ConnorStoneAstro marked this pull request as ready for review March 25, 2026 01:53
Copilot AI review requested due to automatic review settings March 25, 2026 01:53
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

This PR restructures AstroPhot’s API documentation generation for Sphinx/Jupyter Book by moving docstrings toward RST-friendly formats, improving docstring composition across model inheritance, and replacing the previous notebook-based doc build with autodoc-driven RST pages.

Changes:

  • Reworked combine_docstrings to merge :param (and legacy markdown parameter/option sections) across the MRO into a consolidated parameter list.
  • Converted many model/mixin/image/fit/plot docstrings toward Sphinx-compatible RST (including .. math:: usage) and added many _parameter_specs[*]["description"] fields.
  • Replaced the notebook docstring tree + make_docs.py with docs/source/astrophotdocs/*.rst autodoc pages and enabled MathJax in the Sphinx config.

Reviewed changes

Copilot reviewed 57 out of 57 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
make_docs.py Removes the old notebook-based docstring extraction script.
docs/source/tutorials/FunctionalInterface.ipynb Ensures timing cells block on JAX execution for accurate benchmarking; adds a hide-output tag.
docs/source/astrophotdocs/utils.rst New autodoc entry page for astrophot.utils.
docs/source/astrophotdocs/plots.rst New autodoc entry page for astrophot.plots.
docs/source/astrophotdocs/models.rst New autodoc structure for models and model submodules.
docs/source/astrophotdocs/index.rst Replaces the prior “Docstrings” landing page with an API reference index/toctree.
docs/source/astrophotdocs/image.rst New autodoc entry page for astrophot.image.
docs/source/astrophotdocs/fit.rst New autodoc entry page for astrophot.fit.
docs/source/astrophotdocs/errors.rst New autodoc entry page for astrophot.errors.
docs/source/_toc.yml Adds the new API reference section to the Jupyter Book TOC.
docs/source/_config.yml Enables sphinx.ext.mathjax and sets autodoc_default_options.
astrophot/utils/decorators.py Adds docstring parsing/merging logic and updates combine_docstrings to consolidate parameters across the MRO.
astrophot/plots/profile.py Updates docstring formatting (introduces Args: blocks).
astrophot/plots/image.py Updates docstring formatting (introduces Args: blocks).
astrophot/plots/diagnostic.py Updates docstring formatting (introduces Args: blocks).
astrophot/models/sky_model_object.py Converts to RST-friendly docstring and adds _parameter_specs["center"]["description"].
astrophot/models/radial_psf.py Applies combine_docstrings to dynamically generated PSF model types; adds doc for EllipseMixin.
astrophot/models/radial.py Applies combine_docstrings to dynamically generated galaxy model types.
astrophot/models/psf_model_object.py Converts docstrings to RST fields and adds _parameter_specs["center"]["description"].
astrophot/models/point_source.py Converts parameter docs to :param and adds _parameter_specs["flux"]["description"].
astrophot/models/planesky.py Converts math to .. math::, converts params to :param, adds _parameter_specs descriptions.
astrophot/models/pixelated_psf.py Converts parameter docs to :param and adds _parameter_specs["pixels"]["description"].
astrophot/models/pixelated_model.py Converts parameter docs to :param and adds _parameter_specs descriptions.
astrophot/models/multi_gaussian_expansion.py Converts math to .. math::, converts params to :param, adds _parameter_specs descriptions.
astrophot/models/model_object.py Converts component docs to RST fields and adds _parameter_specs["center"]["description"].
astrophot/models/mixins/transform.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions across mixins.
astrophot/models/mixins/spline.py Converts docs to RST fields and adds _parameter_specs descriptions.
astrophot/models/mixins/sersic.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/sample.py Converts options docs to RST fields (:param ...:).
astrophot/models/mixins/nuker.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/moffat.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/king.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/gaussian.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/ferrer.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/exponential.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/models/mixins/brightness.py Converts math blocks and option docs to RST fields.
astrophot/models/gaussian_ellipsoid.py Converts parameter docs to RST fields and adds _parameter_specs descriptions.
astrophot/models/flatsky.py Converts parameter docs to :param and adds _parameter_specs["I0"]["description"].
astrophot/models/edgeon.py Converts parameter docs to :param and adds _parameter_specs descriptions.
astrophot/models/bilinear_sky.py Converts parameter docs to :param and adds _parameter_specs descriptions.
astrophot/models/basis_psf.py Removes unused imports and converts parameter docs to :param.
astrophot/models/basis.py Converts parameter docs to :param.
astrophot/models/airy.py Converts math blocks and parameter docs to RST fields; adds _parameter_specs descriptions.
astrophot/image/target_image.py Replaces MyST fenced code block with .. code-block:: python in the docstring.
astrophot/image/sip_image.py Updates method docstring formatting (introduces Args: blocks).
astrophot/image/mixins/data_mixin.py Updates docstring formatting (introduces Args: blocks).
astrophot/image/image_object.py Converts class docstring to RST fields; updates method docstring formatting (Args:).
astrophot/image/func/wcs.py Updates docstring formatting (introduces Args:/Returns: blocks).
astrophot/fit/scipy_fit.py Updates docstring formatting (introduces Args: blocks).
astrophot/fit/mhmcmc.py Updates docstring formatting (introduces Args: blocks).
astrophot/fit/mala.py Updates docstring formatting (introduces Args: blocks).
astrophot/fit/lm.py Replaces MyST fenced blocks with .. code-block:: text in the docstring.
astrophot/fit/iterative.py Updates docstring formatting (introduces Args: blocks).
astrophot/fit/hmc.py Updates docstring formatting (introduces Args: blocks).
astrophot/fit/gradient.py Updates docstring formatting (introduces Args: blocks).
astrophot/fit/base.py Updates docstring formatting (introduces Args: blocks).
.readthedocs.yaml Removes the pre-build step that generated docstring notebooks via make_docs.py.
Comments suppressed due to low confidence (14)

astrophot/fit/gradient.py:32

  • Args: with bullet points won’t be interpreted as parameter documentation by Sphinx autodoc in its default configuration. If you want these options to show up as parameters in the API reference, convert to :param likelihood:, :param method:, etc. (or enable Napoleon and match its supported style).
    Args:
    -  `likelihood` (str, optional): The likelihood function to use for the optimization. Defaults to "gaussian".
    -  `method` (str, optional): the optimization method to use for the update step. Defaults to "NAdam".
    -  `optim_kwargs` (dict, optional): a dictionary of keyword arguments to pass to the pytorch optimizer.
    -  `patience` (int, optional): number of steps with no improvement before stopping the optimization. Defaults to 10.

astrophot/fit/hmc.py:38

  • This Args: + bullets block won’t render as structured parameter documentation in Sphinx autodoc by default. Consider switching to RST field lists (:param max_iter:, :param epsilon:, etc.) for consistent API rendering.
    Args:
    -  `mass_matrix_shape`: a dict that maps tuples of site names to the shape of
        the corresponding mass matrix. Each tuple of site names corresponds to a block.
    -  `adapt_mass_matrix`: a flag to decide whether an adaptation scheme will be used.
    -  `options`: tensor options to construct the initial mass matrix.

astrophot/plots/diagnostic.py:28

  • Args: + a bullet list is not an RST parameter field list, so autodoc will render this as plain text instead of structured parameter documentation. Consider converting to :param covariance_matrix:, :param mean:, etc. (or enable Napoleon and switch to a Napoleon-compatible format).
    astrophot/fit/base.py:20
  • This docstring uses an Args: section with bullets, which autodoc treats as plain text. Since this is part of the public API reference, consider converting these to RST field lists (:param model:, :param initial_state:, etc.) so Sphinx renders them as parameters.
    Args:
    -  `model`: an AstroPhot_Model object that will have its (unlocked) parameters optimized [AstroPhot_Model]
    -  `initial_state`: optional initialization for the parameters as a 1D tensor [tensor]
    -  `relative_tolerance`: tolerance for counting success steps as: $0 < (\\chi_2^2 - \\chi_1^2)/\\chi_1^2 < \\text{tol}$ [float]
    -  `verbose`: verbosity level for the optimizer [int]

astrophot/fit/mala.py:30

  • This docstring uses Args: with bullet points, which won’t be rendered as structured params by Sphinx autodoc in the current config. For the API reference, consider converting these to :param chains:, :param epsilon:, etc. (or enable Napoleon and adopt its supported syntax).
    Args:
    -  `chains`: The number of MCMC chains to run in parallel. Default is 4.
    -  `epsilon`: The step size for the MALA sampler. Default is 1e-2.
    -  `mass_matrix`: The mass matrix for the MALA sampler. If None, the identity matrix is used.
    -  `progress_bar`: Whether to show a progress bar during sampling. Default is True.

astrophot/fit/scipy_fit.py:26

  • This docstring uses Args: with bullet points; autodoc will render this as plain text rather than a parameter list. Consider converting to RST field lists (:param model:, :param method:, etc.) to keep the API reference structured.
    Args:
    -  `model`: The model to fit, which should be an instance of `Model`.
    -  `initial_state`: Initial guess for the model parameters as a 1D tensor.
    -  `method`: The optimization method to use. Default is "Nelder-Mead", but can be set to any of: "Nelder-Mead", "L-BFGS-B", "TNC", "SLSQP", "Powell", or "trust-constr".
    -  `ndf`: Optional number of degrees of freedom for the fit. If not provided, it is calculated as the number of data points minus the number of parameters.

astrophot/plots/profile.py:41

  • Args: followed by a bullet list is not an RST parameter field list, so sphinx.ext.autodoc will not render these as parameters (and napoleon is disabled in docs/source/_config.yml). Consider switching to :param ...: / :returns: fields or adopting a Napoleon-compatible Google/Numpy style consistently.
    astrophot/image/mixins/data_mixin.py:24
  • This class docstring uses Args: with bullet points, which Sphinx autodoc won’t treat as structured parameter docs in the current configuration. If these are meant to appear in the API reference, convert them to RST field lists (:param mask:, :param std:, etc.) or adopt a Napoleon-supported style.
    Args:
    - `mask`: A boolean mask indicating which pixels to ignore.
    - `std`: Standard deviation of the image pixels.
    - `variance`: Variance of the image pixels.
    - `weight`: Weights for the image pixels.

astrophot/fit/lm.py:89

  • This .. code-block:: text directive needs a blank line after it, and the BibTeX lines need to be indented under the directive. As written, Sphinx may not recognize this as a literal/code block.
    .. code-block:: text
    @article{Gavin2019,
        title={The Levenberg-Marquardt algorithm for nonlinear least squares curve-fitting problems},
        author={Gavin, Henri P},
        journal={Department of Civil and Environmental Engineering, Duke University},

astrophot/models/basis.py:37

  • The PR description mentions adding description entries to every _parameter_specs entry, but BasisModel’s _parameter_specs here still lacks description keys. If downstream doc generation relies on these, please add description for weights, PA, and scale for consistency with the other updated models.
    """

    _model_type = "basis"
    _parameter_specs = {
        "weights": {"units": "unitless", "shape": (None,), "dynamic": True},

astrophot/models/basis_psf.py:31

  • PixelBasisPSF’s _parameter_specs still lacks a description for weights (even though many other models were updated to include it). If description is now expected for docstring/spec syncing, please add it here as well.
    :param weights: The weights of the basis set of images in units of flux.
    """

    _model_type = "basis"
    _parameter_specs = {"weights": {"units": "unitless", "shape": (None,), "dynamic": True}}

astrophot/fit/lm.py:102

  • Same issue for this second .. code-block:: text: the block content should be indented relative to the directive (and separated by a blank line) so Sphinx renders it correctly.
    .. code-block:: text
    @article{Tanstrum2012,
       author = {{Transtrum}, Mark K. and {Sethna}, James P.},
        title = "{Improvements to the Levenberg-Marquardt algorithm for nonlinear least-squares minimization}",
         year = 2012,

astrophot/image/target_image.py:40

  • The .. code-block:: python directive needs a blank line after it, and the code lines must be indented relative to the directive. As written, import astrophot as ap is aligned with the directive, which will cause Sphinx to treat it as normal text (or emit a warning) instead of a literal block.
    .. code-block:: python
    import astrophot as ap

    # Create target image
    image = ap.image.Target_Image(

astrophot/plots/image.py:33

  • This docstring uses an Args: section with bullet points, which Sphinx autodoc won’t interpret as a parameter list by default (and sphinx.ext.napoleon is currently commented out). To have parameters render correctly in the API reference, prefer RST field lists like :param ...: / :returns: (or enable Napoleon and use its supported syntax).

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

@ConnorStoneAstro
Copy link
Copy Markdown
Member

@copilot I would like you to update the docstrings to RST format with explicit :param <name>: and :returns: rather than Args: and Returns:. Also change any references to Tensor in the docstrings to instead be Array since AstroPhot now handles pytorch and jax.

Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/06d20147-ecab-453e-9cbe-afad8be6827b
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 25, 2026

@copilot I would like you to update the docstrings to RST format with explicit :param <name>: and :returns: rather than Args: and Returns:. Also change any references to Tensor in the docstr...

Done in commit f105e66: docstrings in image/fitting/plotting now use explicit RST field lists (:param ...:, :type ...:, :returns:, :rtype:), and docstring references to Tensor/tensor were updated to Array where applicable.

Copilot AI and others added 2 commits March 25, 2026 12:50
Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/06d20147-ecab-453e-9cbe-afad8be6827b
Co-authored-by: ConnorStoneAstro <78555321+ConnorStoneAstro@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Autostronomy/AstroPhot/sessions/06d20147-ecab-453e-9cbe-afad8be6827b
Copilot AI changed the title [WIP] Fix AstroPhot docstrings to use RST for Sphinx compatibility [WIP] Fix AstroPhot docstrings to explicit RST fields for Sphinx compatibility Mar 25, 2026
@ConnorStoneAstro ConnorStoneAstro merged commit 1013d0a into main Mar 25, 2026
12 checks passed
@ConnorStoneAstro ConnorStoneAstro deleted the copilot/fix-model-docstrings-formatting branch March 25, 2026 14:17
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.

Model docstrings need a rewrite

3 participants