-
Notifications
You must be signed in to change notification settings - Fork 88
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
Python package support for SCHISM #107
Comments
Thx Saeed. I've asked Linlin to push out and work on a branch 'clean' to start trimming down the package and also come up with tests. Given her workload, this may take a while but rest assure we are on it.. |
There are multiple fronts to this from my perspective. Most importantly, we need to make sure that the package we use is maintained, and then know what the intended use of that package is. For example if we use The second front is using one package for each task. For example let's say, The third front is release and testing. We ideally would like to have a package that is installable (from Last but not least, it is important that we have a standard style or convention for coding such that the code is maintainable by the community rather than a single person or group. This doesn't mean that we need to rewrite all the existing code over night, but rather to move toward migration to the agreed upon style and develop new code with the convention; the convention should be enforceable by automated tools rather than "I feel like it's right". |
@SorooshMani-NOAA As Joseph said, we are trying to make some changes to the pyschism package. Concerning your Comment 1, we would like to maintain one package, and pyschism is the one. But we want to introduce some of the pylib functions as a dependent of pyschism and I'll explain more of this below. We will keep in mind the disadvantage of having a package in control of both data preparation and model setup and assess if the package is too complicated during future development. (Per your Comment 2) we are in the process of importing some core functions of pylib (especially on hgrid manipulation) into pyschism. These functions can make the downstream script simpler (thus more readable and maintainable, which is related to your Comment 4), e.g., setting up a *.gr3 file with values based on multiple criteria (region based, bathy slope-based, nudging zone-based, etc.). In addition, the functions from pylib are generally more efficient. However, pylib has issues with namespace contamination due to the extensive use of "import *". For example, you reported a numpy issue with pyDEM (which imports pylib) recently. It turns out it is related to some function name collision due to the numpy functions imported by "from numpy import *" in pylib. As a temporary measure, we extract the hgrid functions from pylib and put it into an experimental branch (which is pip installable, and can serve as a dependent when pip installing pyschism). This is an attempt to address your Comment 3. Let me know if you have any additional suggestions. |
Hi Fei These are music to my ear! We share the same concerns. Thanks a lot to all of you at VIMS, |
I don't have any comments on pyschism development. Glad to know pylib can help in your work. Regarding the namespace contamination issue in pylib. Using explicitly import style ( |
Dear All, Sorry for the late reply. As I have said in many occasions, In my view, this is problematic, especially for attracting new devs. The success of This includes the It could be, in the future, that any of them could become obsolete due to upstream updates. The stack can adapt easily by removing that package. In addition smaller packages can have more efficient CI/CD. my 2 cents. |
Thank you, George. I think pyschism is already modular, and consists of many reusable components. I'd imagine it's not too hard to break it down further into smaller packages.
Regards,
…-------------------------------
Joseph Zhang
(804)684 7595 (office)
SCHISM web: http://ccrm.vims.edu/schism/
________________________________
From: George Breyiannis ***@***.***>
Sent: Sunday, July 30, 2023 12:56 PM
To: schism-dev/schism ***@***.***>
Cc: Y. Joseph Zhang ***@***.***>; Mention ***@***.***>
Subject: Re: [schism-dev/schism] Python package support for SCHISM (Issue #107)
[EXTERNAL to VIMS received message]
Dear All,
Sorry for the late reply. As I have said in many occasions, pyposeidon is for us the do-all package that can get all necessary input and do it all (mesh generation, dem, meteo, prepare schism, post-process, visualisation). pyposeidon grew organically, I suspect the same way as pylibs & pyschism still do.
In my view, this is problematic, especially for attracting new devs. The success of searvey (a pyposeidon spinoff) suggests that smaller packages with specific task can be more modular and can serve multiple uses. I am not sure what our team will decide, but in my view we should decompose pyposeidon to smaller dedicated packages that can be used in a pipeline.
This includes the schism class that prepares a schism run based on specific input (in my view what pyschism should only do).
It could be, in the future, that any of them could become obsolete due to upstream updates. The stack can adapt easily by removing that package. In addition smaller packages can have more efficient CI/CD.
my 2 cents.
—
Reply to this email directly, view it on GitHub<#107 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AFBKNZY6AJ3KA74ZPGYYXHDXS2G2JANCNFSM6AAAAAA2A5X3KI>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
@josephzhang8 @cuill @wzhengui @brey @SorooshMani-NOAA @BahramKhazaei-NOAA @gseroka
All,
Here at NOAA, we are investing a large amount of resources on using Pyschims as a part of our operational frameworks (STOFS, Psurge, UFS and ...). It seems like there are other PY packages also being developed (by SCHISM team and EU, ...) however none of them are addressing the need of the users.
I think we reach to the point that we need a concrete plan and have every body united around one accepted solution.
We need to consider:
Please comment and let every body knows your point of view.
Please tag others may are interested
Thanks,
@saeed-moghimi-noaa
The text was updated successfully, but these errors were encountered: