Skip to content

ENH: add support for NEP 35 constructors (array, asarray, asanyarray, ascontiguousarray and asfortranarray) with like=Quantity(...)) - #17125

Merged
mhvk merged 1 commit into
astropy:mainfrom
neutrinoceros:units/enh/impl_nep35_asarray_family
Oct 5, 2024
Merged

mhvk merged 1 commit into
astropy:mainfrom
neutrinoceros:units/enh/impl_nep35_asarray_family

Conversation

@neutrinoceros

Copy link
Copy Markdown
Contributor

Description

ref #17124, builds on top of #17120

  • By checking this box, the PR author has requested that maintainers do NOT use the "Squash and Merge" button. Maintainers should respect this when possible; however, the final decision is at the discretion of the maintainer that merges the PR.

@github-actions

github-actions Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Astropy! 🌌 This checklist is meant to remind the package maintainers who will review this pull request of some common things to look for.

  • Do the proposed changes actually accomplish desired goals?
  • Do the proposed changes follow the Astropy coding guidelines?
  • Are tests added/updated as required? If so, do they follow the Astropy testing guidelines?
  • Are docs added/updated as required? If so, do they follow the Astropy documentation guidelines?
  • Is rebase and/or squash necessary? If so, please provide the author with appropriate instructions. Also see instructions for rebase and squash.
  • Did the CI pass? If no, are the failures related? If you need to run daily and weekly cron jobs as part of the PR, please apply the "Extra CI" label. Codestyle issues can be fixed by the bot.
  • Is a change log needed? If yes, did the change log check pass? If no, add the "no-changelog-entry-needed" label. If this is a manual backport, use the "skip-changelog-checks" label unless special changelog handling is necessary.
  • Is this a big PR that makes a "What's new?" entry worthwhile and if so, is (1) a "what's new" entry included in this PR and (2) the "whatsnew-needed" label applied?
  • At the time of adding the milestone, if the milestone set requires a backport to release branch(es), apply the appropriate "backport-X.Y.x" label(s) before merge.

@github-actions

github-actions Bot commented Oct 4, 2024

Copy link
Copy Markdown
Contributor

👋 Thank you for your draft pull request! Do you know that you can use [ci skip] or [skip ci] in your commit messages to skip running continuous integration tests until you are ready?

@neutrinoceros
neutrinoceros force-pushed the units/enh/impl_nep35_asarray_family branch from 082fb3b to 555f3b1 Compare October 4, 2024 11:44
@neutrinoceros neutrinoceros mentioned this pull request Oct 4, 2024
6 of 28 tasks
@neutrinoceros
neutrinoceros force-pushed the units/enh/impl_nep35_asarray_family branch 2 times, most recently from 7de3505 to 11c532f Compare October 4, 2024 12:07

@mhvk mhvk left a comment

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.

Looks good generally, but wondering a bit about whether code can be refactored to a common implementation.

def asarray(a, dtype=None, order=None, *, device=None, copy=None):
return asarray_impl(a, dtype, order, device=device, copy=copy)

def asarray_impl(a, dtype=None, order=None, *, device=None, copy=None):

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.

Like my comment for np.zeros, etc., I think all these functions could share a common implementation if one passed along function=np.asarray, etc.

It is a pity that for these the wrapping with function_helper does not work. Really, the super call should work - I guess this is a bug on the numpy side?

@neutrinoceros

Copy link
Copy Markdown
Contributor Author

Yeah, also the tests are very redundant to satisfy completion meta tests. I'm genuinely wondering wether it's preferable to try and refactor now or later, when we have a complete set of implementations and we can see the whole picture.

@neutrinoceros

Copy link
Copy Markdown
Contributor Author

rebased and refactored with @function_helper, following @mhvk's pattern

@neutrinoceros
neutrinoceros force-pushed the units/enh/impl_nep35_asarray_family branch from 59e58ba to 5b549c7 Compare October 5, 2024 05:48
…rray`, `ascontiguousarray` and `asfortranarray`) with like=Quantity(...))
@neutrinoceros
neutrinoceros force-pushed the units/enh/impl_nep35_asarray_family branch from 5b549c7 to fb5b88c Compare October 5, 2024 06:08
@neutrinoceros
neutrinoceros marked this pull request as ready for review October 5, 2024 06:09

@mhvk mhvk left a comment

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.

Thanks, looks all good! (I think I'd have used **kwargs to combine some, but, really, this is better!)

@mhvk
mhvk enabled auto-merge October 5, 2024 12:42
@mhvk
mhvk merged commit 217431f into astropy:main Oct 5, 2024
@neutrinoceros
neutrinoceros deleted the units/enh/impl_nep35_asarray_family branch October 5, 2024 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants