Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move NXlens_em to base classes #1519

Open
wants to merge 18 commits into
base: main
Choose a base branch
from

Conversation

lukaspie
Copy link
Contributor

@lukaspie lukaspie commented Dec 9, 2024

This implements what was discussed in #1407 (comment). It moves NXlens_em from the contributed definitions to the base classes and adds it to NXsource as an renameable group. The difference between the NXlens_em from the contributed definitions and in base classes comes down to formatting, but no new terms have been added.

Note that NXlens_em itself is an extension of NXcomponent (which is meant as a basis for describing any components of an instrument). NXcomponent is also making use of NXcircuit (used for any sort of electronic circuit devices), so this is brought in here as well. These were originally to be discussed in #1424, but I think it's best to bring them in here.

@lukaspie lukaspie marked this pull request as ready for review December 11, 2024 12:49
@lukaspie lukaspie added enhancement discussion needed NIAC should review The NIAC should review/discuss NIAC vote needed PR needs an approving vote from NIAC before merge labels Dec 11, 2024
@phyy-nx
Copy link
Contributor

phyy-nx commented Dec 18, 2024

Comment from Telco:

  • NXcomponent seems like a big change. And that many base classes should derive from it. The NIAC requests a survey of base classes to identify those which should and those which should not derive from NXcomponent. Examples include NXdetector which should, and NXdata which should not.
  • As a corollary, adding NXcomponent as a new parent class to classes such as NXdetector, NXbeam, etc., would be a significant change, so move NXcomponent to a new PR, and make this one dependent on that new PR

Alternate proposal: instead of NXcomponent, add the necessary new fields to NXobject. This would imply that NXobject has NXfabrication and NXcircuit, but that's ok. Better to have more possibilities on NXobject than to add more base classes in general.

Reviewed in the NIAC: took a straw poll and it was almost evenly split between the above two options. This will need more discussion. @nexusformat/developers please chime in here! Thanks!

@lukaspie
Copy link
Contributor Author

Comment from Telco:

  • NXcomponent seems like a big change. And that many base classes should derive from it. The NIAC requests a survey of base classes to identify those which should and those which should not derive from NXcomponent. Examples include NXdetector which should, and NXdata which should not.
  • As a corollary, adding NXcomponent as a new parent class to classes such as NXdetector, NXbeam, etc., would be a significant change, so move NXcomponent to a new PR, and make this one dependent on that new PR

Alternate proposal: instead of NXcomponent, add the necessary new fields to NXobject. This would imply that NXobject has NXfabrication and NXcircuit, but that's ok. Better to have more possibilities on NXobject than to add more base classes in general.

Reviewed in the NIAC: took a straw poll and it was almost evenly split between the above two options. This will need more discussion. @nexusformat/developers please chime in here! Thanks!

#1525 implements option 1 here and adds a list of all classes for which it would likely make sense to extend NXcomponent. This is more meant as an exploration/survey rather than a votable proposal.

@lukaspie
Copy link
Contributor Author

lukaspie commented Jan 9, 2025

@phyy-nx @sanbrock @mkuehbach given that discussions around NXcomponent have not been settled yet (there is a new PR for this anyway, #1525), I moved it out this PR and just copied all relevant concepts to NXlens_em for now, so we can at least move forward with that one.

I think this PR is then ready to be discussion in one of the next Telcos.

@mkuehbach
Copy link
Contributor

Note that NXlens_em itself is an extension of NXcomponent (which is meant as a basis for describing any components of an instrument). NXcomponent is also making use of NXcircuit (used for any sort of electronic circuit devices), so this is brought in here as well. These were originally to be discussed in #1424, but I think it's best to bring them in here.

NXcomponent was removed NXlens_em extends NXobject

@lukaspie
Copy link
Contributor Author

Note that NXlens_em itself is an extension of NXcomponent (which is meant as a basis for describing any components of an instrument). NXcomponent is also making use of NXcircuit (used for any sort of electronic circuit devices), so this is brought in here as well. These were originally to be discussed in #1424, but I think it's best to bring them in here.

NXcomponent was removed NXlens_em extends NXobject

Yes exactly, this is now implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement NIAC should review The NIAC should review/discuss NIAC vote needed PR needs an approving vote from NIAC before merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants