Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -201,9 +201,7 @@ lint.unfixable = [
# copied to these subpackage sections and fixed there.
"astropy/config/*" = []
"astropy/constants/*" = []
"astropy/convolution/*" = [
"PLR0911", # too-many-return-statements
]
"astropy/convolution/*" = []
"astropy/coordinates/*" = [
"PTH", # all flake8-use-pathlib
"DTZ007", # call-datetime-strptime-without-zone
Expand Down
28 changes: 16 additions & 12 deletions astropy/convolution/utils.py

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I wonder if this can benefit from case statement but that is unrelated thought...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

#17825 👀

Original file line number Diff line number Diff line change
Expand Up @@ -201,29 +201,33 @@ def discretize_model(model, x_range, y_range=None, mode="center", factor=10):
raise ValueError("y_range must be specified for a 2D model")
if ndim == 1 and y_range is not None:
raise ValueError("y_range should not be input for a 1D model")

result = None
if mode == "center":
if ndim == 1:
return discretize_center_1D(model, x_range)
if ndim == 2:
return discretize_center_2D(model, x_range, y_range)
result = discretize_center_1D(model, x_range)
elif ndim == 2:
result = discretize_center_2D(model, x_range, y_range)
elif mode == "linear_interp":
if ndim == 1:
return discretize_linear_1D(model, x_range)
if ndim == 2:
return discretize_bilinear_2D(model, x_range, y_range)
result = discretize_linear_1D(model, x_range)
elif ndim == 2:
result = discretize_bilinear_2D(model, x_range, y_range)
elif mode == "oversample":
if ndim == 1:
return discretize_oversample_1D(model, x_range, factor)
if ndim == 2:
return discretize_oversample_2D(model, x_range, y_range, factor)
result = discretize_oversample_1D(model, x_range, factor)
elif ndim == 2:
result = discretize_oversample_2D(model, x_range, y_range, factor)
elif mode == "integrate":
if ndim == 1:
return discretize_integrate_1D(model, x_range)
if ndim == 2:
return discretize_integrate_2D(model, x_range, y_range)
result = discretize_integrate_1D(model, x_range)
elif ndim == 2:
result = discretize_integrate_2D(model, x_range, y_range)
else:
raise ValueError("Invalid mode for discretize_model.")

return result


def discretize_center_1D(model, x_range):
"""
Expand Down