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
Where should we put example interfaces to simulation packages? #714
Comments
SunPy's practice has been to include general functionality in their core package, while functionality specific to a particular instrument gets put into an affiliated package for that instrument. The affiliated packages use the functionality within the core package. This separation makes the core repository cleaner and more maintainable, and allows instrument teams to have control over the corresponding instrument packages. My preference would be to take a similar approach for PlasmaPy, and not implement interfaces to external plasma simulation codes in the core package. My preference would be to have implementations to these interfaces in affiliated packages. |
@rocco8773 raised the very interesting idea of having a plugin system on Riot. This is something that may make a lot of sense - I'll dig into it and report back. |
We need to do some playing around, but I'm thinking native namespace packages is the way to go. PEP 420 covers the various types of namespace packages and Python has a sample github repository here. I think we could have a top-level namespace sub-package The plus side...
The downside, maybe upside...
|
Agreed! This is one of the best possibilities among the ones that we've discussed, I think. Thanks for suggesting it! |
Speaking of which, I should probably get back to working on this simulation PLEP that's been on hold for a while now... Whatever we decide on for this issue should probably get incorporated into that. |
I've finally sat down to read up on this, and if I'm understanding this right, for now focusing only on the simulation interafaces, what you're proposing is essentially:
|
I think I like this idea. CI for the side packages could be accomplished by pip installing plasmapy, then repo itself, and we'd get quick tests for those. The test infrastructure can then mostly be copied over. |
While discussing PlasmaPy top-level package structure during our community meeting today and at the APS DPP meeting last week (PlasmaPy/PlasmaPy-PLEPs#26), the issue came up of where to put example interfaces to existing simulation packages.
For some background, our current plan is to create classes in
plasmapy.simulation
that can be used to describe the initial conditions, boundary conditions, and computational domain independently of the numerics. We also want to create an abstract interface that can be implemented with different plasma simulation codes (including the ones we develop along with codes from the community).It would be really helpful to the community for us to have examples for how to build implementations for these interfaces for different codes that are already in existence. We weren't able to reach a consensus on where to put the example interfaces, so we're raising this issue. Where would be the best place to put these example interfaces to plasma simulation codes that have already been developed by members of the broader plasma physics community?
The text was updated successfully, but these errors were encountered: