Repository navigation
Description
Submitting Author: (@Jammy2211)
All current maintainers: (@Jammy2211)
Package Name: PyAutoLens
One-Line Description of Package: Astronomy software for strong gravitational lensing analysis and Bayesian inference
Repository Link: https://github.com/Jammy2211/PyAutoLens
Version submitted: 2026.5.11.1
EiC: @kysolvik
Editor: @dhomeier
Reviewer 1: @crhea93
Archive: TBD
JOSS DOI: https://joss.theoj.org/papers/10.21105/joss.02825
Version accepted: TBD
Date accepted (month/day/year): TBD
Code of Conduct & Commitment to Maintain Package
- I agree to abide by [pyOpenSci's Code of Conduct][PyOpenSciCodeOfConduct] during the review process and in future interactions in spaces supported by pyOpenSci should it be accepted.
- I have read and will commit to package maintenance after the review as per the [pyOpenSci Policies Guidelines][Commitment].
Description
PyAutoLens is an open-source Python package for analysing strong gravitational lenses, where the gravity of a foreground galaxy distorts and magnifies the light of a background source. The software supports automated Bayesian model-fitting of imaging and interferometer datasets, pixelized and parametric source reconstruction, hierarchical Bayesian inference, and large-scale analysis of strong lens samples. PyAutoLens places a focus on reproducible and scalable scientific workflows, including support for massively parallel model-fitting, graphical models and SQLite3 databases for managing and analysing large suites of lens models. The software is used for research on dark matter, galaxy evolution, cosmology and supermassive black holes using datasets from facilities including Hubble, ALMA, Euclid and JWST.
Scope
-
Please indicate which category or categories.
- Data retrieval
- Data extraction
- Data processing/munging
- Data deposition
- Data validation and testing
- Data visualization1
- Workflow automation
- Citation management and bibliometrics
- Scientific software wrappers
- Database interoperability
Domain Specific
- Geospatial
- Education
Community Partnerships
- Astropy:My package adheres to Astropy community standards
- Pangeo: My package adheres to the [Pangeo standards listed in the pyOpenSci peer review guidebook][PangeoCollaboration]
-
For all submissions, explain how and why the package falls under the categories you indicated above. In your explanation, please address the following points (briefly, 1-2 sentences for each):
- Who is the target audience and what are scientific applications of this package?
Astronomers studying strong gravitational lensing, dark matter, galaxy evolution, supermassive black holes and cosmology, as well as undergraduates and researchers interested in learning computational Bayesian inference techniques for astronomy. The package analyses strong lens imaging data and extracts information on galaxies, dark matter and the distant Universe.
- Are there other Python packages that accomplish the same thing? If so, how does yours differ?
Examples include lenstronomy, GLEE and gravlens.
PyAutoLens places a strong emphasis on automated Bayesian inference, scalable analysis of large strong lens samples, pixelized source reconstruction, hierarchical modeling and reproducible workflows. The software also includes comprehensive simulation tools, database functionality and support for both imaging and interferometer datasets.
- If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tagthe editor you contacted:
This package was first submitted to Astropy years ago, before the review process transitioned to PyOpenSci:
astropy/astropy.github.com#491
Technical checks
For details about the pyOpenSci packaging requirements, see our [packaging guide][PackagingGuide]. Confirm each of the following by checking the box. This package:
- does not violate the Terms of Service of any service it interacts with.
- uses an [OSI approved license][OsiApprovedLicense].
- contains a README with instructions for installing the development version.
- includes documentation with examples for all functions.
- contains a tutorial with examples of its essential functions and uses.
- has a test suite.
- has continuous integration setup, such as GitHub Actions CircleCI, and/or others.
Publication Options
- Do you wish to automatically submit to the [Journal of Open Source Software][JournalOfOpenSourceSoftware]?
Already published in JOSS: https://joss.theoj.org/papers/10.21105/joss.02825
Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?
- Yes I am OK with reviewers submitting requested changes as issues to my repo. Reviewers will then link to the issues in their submitted review.
Confirm each of the following by checking the box.
- I have read the author guide.
- I expect to maintain this package for at least 2 years and can help find a replacement for the maintainer (team) if needed.
Please fill out our survey
- Last but not least please fill out our pre-review survey. This helps us track submission and improve our peer review process. We will also ask our reviewers and editors to fill this out.
Footnotes
-
Please fill out a pre-submission inquiry before submitting a data visualization package. ↩
Metadata
Metadata
Labels
Type
Projects
- StatusShow more project fieldsunder-review
Activity
kysolvik commentedon May 28, 2026
Hi @Jammy2211,
My name is Kylen, I'm a member of the EiC team here at pyOpenSci. Thanks for submitting
PyAutoLens! It looks like a great package and a good fit for pyOpenSci. Next step is pre-review checks, which I'll be tackling in the coming days. Thanks for your patience, I'll be back in touch asap!One other thing: we've recently updated our guidelines around generative AI. We're still in the process of updating all our templates, but when you have the chance could respond in this issue with our updated gen-AI checks template (at the bottom of the page)?
kysolvik commentedon Jun 9, 2026
Editor in Chief checks
Hi there! Thank you for submitting your package for pyOpenSci
review. Below are the basic checks that your package needs to pass
to begin our review. If some of these are missing, we will ask you
to work on them before the review process begins.
Please check our Python packaging guide for more information on the elements
below.
import package.README.mdfile with a clear explanation of what the package does, instructions on how to install it, and a link to development instructions.CONTRIBUTING.mdfile that details how to install and contribute to the package.CODE_OF_CONDUCT.mdfile.NOTE: We prefer that you have development instructions in your documentation too.
YAMLheader of the issue (located at the top of the issue template).Optional but recommended:
We appreciate each maintainer of the package filling out this survey individually. 🙌
A big thank you in advance to authors for setting aside five to ten minutes to do this. It truly helps our organization! 🙌
Editor comments
Hi again @Jammy2211! PyAutoLens looks great. Since it's already been published in JOSS, it will undergo an accelerated review with just one editor and one reviewer.
Just a few things:
1 & 2 are optional, so once 3 & 4 are addressed we'll start looking for an editor!
Jammy2211 commentedon Jun 19, 2026
I will fix 1, 2 and 3 later today or next week :).
Please list the tools and frameworks that you used below.
If you checked the first box above, please describe the tools and frameworks that you used below including:
Which parts of the submission were generated (e.g., documentation, tests, code). In addition to a general description, please specifically indicate any substantial portions of code (classes, modules, subpackages) that were wholly or primarily generated by AI.
PyCharm
pytest
sphinx
GitHub w/ PRs: https://github.com/PyAutoLabs/PyAutoLens/pulls
PyPI: https://pypi.org/project/autolens/
test PyPI
PyAutoLens was developed by human between 2018-2023, between 2023-2025 many functions were converted using ChatGPT to support JAX, albeit with most implementation still completed by a human (e.g. copy and paste). PyAutoLens (and its parent packages) have always used test driven development and thus have an extensive unit test library.
In March 2026 PyAutoLens switched to a full agentic AI development model, which is still being developed and expanded on as the lead maintainer learns agentic AI.
Currently, this workflow involves writing natural language development prompts on a parent project (https://github.com/PyAutoLabs/PyAutoPrompt), which has an AI development workflow which implements the feature in the source code.
PyAutoLens has a workspace with end-to-end science pipelines all of which are used as integration tests and context for the agentic AI workflow (https://github.com/PyAutoLabs/autolens_workspace), with over 80% of examples human written typically before 2022 when AI took over the world. There is also a dediciated testing workspace for tests not reflective of science analysis (https://github.com/PyAutoLabs/autolens_workspace_test) which are a mix of AI generated and human cheked, and fully human written Jupyter Notebook lectures (https://github.com/PyAutoLabs/HowToLens).
Every agentic AI feature is fully tracked via GitHub issues and PR's, so you can go back to our PR's from March 6th and see a full open history of when development began to become fully agentic: https://github.com/PyAutoLabs/PyAutoLens/pulls?page=6&q=is%3Apr+is%3Aclosed
For the sake of full disclosure, I have also developed an
autolens_assistantwhich is a natural language assistant that allows a human to use PyAutoLens via a conversation analogous to a ChatGPT conversation of Claude / codex: https://github.com/PyAutoLabs/PyAutoLens/blob/main/CONTRIBUTING.mdThe code design, abstractions and architecture still fully reflect PyAutoLens as of ~2022 (e.g. when published in JOSS). The majority of source code is still unchanged after switching to agentic AI. Docstrings were extensive before siwtching to AI agentic, but had significant additional text added , partly to provide AI with a lot more context. Looking at the PR history, the majority of agentic-AI only work so far has been massively expanding the testing infrastructure, major refactors removing huge portions of code (removing the whole visualization / plot packages and modules for a much more light weight matplotlib-only API) and ensuring JAX support is integrated throughout all of the source code.
This is described above. In short, generative AI was used first for assistance with JAX-related conversions, and later through an agentic development workflow based on natural-language prompts, GitHub issues, pull requests, and human review.
If you have a policy around generative AI use in your project, please provide a link to it below:
I think the closest thing I have currently is just the standard contributing guidelines, the agentic AI workflow is still being developed so I havent formalised AI guidelines yet: https://github.com/PyAutoLabs/PyAutoLens/blob/main/CONTRIBUTING.md
1 remaining item
crhea93 commentedon Oct 7, 2026
Package Review
Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
Documentation
The package includes all the following forms of documentation:
pyproject.tomlfile or elsewhere.Readme file requirements
The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be wider than high. A badge for pyOpenSci peer review will be provided when the package is accepted.
Usability
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole.
The package structure should follow the general community best practices. In general, please consider whether:
Functionality
A few notable highlights to look at:
Final approval (post-review)
Estimated hours spent reviewing: 3
Review Comments
Thank you for your submission of PyAutoLens! The code is already in an extremely mature state. Since this is an expedited review, I will be focusing on the tutorials and readability. I will not be reviewing the natural language extension.
Minor comments:
dhomeier commentedon Oct 7, 2026
Hi @Jammy2211, apologies for the delay in proceeding with your submission; after we had a hold on assigning new reviewers in the summer to prioritise completing the open reviews, I did not find the time move on with this one!
I am happy to let you know we do have a reviewer now, and hopefully will proceed swiftly from here.
dhomeier commentedon Oct 7, 2026
Editor's note: it seems you have now adopted a common policy in https://github.com/PyAutoLabs/PyAutoScientist/blob/main/AI_POLICY.md .
Is it correct we can take this for the project policy?
dhomeier commentedon Oct 30, 2026
@Jammy2211 I have fixed the JOSS link in this issue, as the repository page has the correct link.
That just leaves the doc page above where I now get broken links for the first two images.