-
-
Notifications
You must be signed in to change notification settings - Fork 361
grass.script: new RegionManager context manager #5628
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
Merged
petrasovaa
merged 4 commits into
OSGeo:main
from
petrasovaa:grass-script-new-RegionManager-context-manager
Jun 3, 2025
Merged
grass.script: new RegionManager context manager #5628
petrasovaa
merged 4 commits into
OSGeo:main
from
petrasovaa:grass-script-new-RegionManager-context-manager
Jun 3, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
echoix
previously approved these changes
May 17, 2025
echoix
previously approved these changes
Jun 2, 2025
echoix
reviewed
Jun 2, 2025
echoix
approved these changes
Jun 2, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can forget it if you want, I'll have to pass over it again when fixing other code syntax
I will go back to this code anyway, so I can also fix it later. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Similarly to MaskManager, this adds a context manager for temporary changes of computational region.
Example with explicit region parameters:
Example matching a raster map's region:
Example using g.region:
Example using set_region():
Example modifying a copy of environment (e.g. for parallelization):
This introduces 2 classes, the primary-to-be-used-one RegionManager, which uses the same implementation as
gs. use_temp_region
withWIND_OVERRIDE
variable. It saves a region and points the variable to the name of that region. Then there is RegionManagerEnv (not sure about the name), which usesGRASS_REGION
variable. The advantage of RegionManagerEnv is no files are written to disk, so it's more lightweight.The disadvantage is that simply calling
g.region
within the context will not affect the temporary region, but the global one, which can be confusing:Hence, RegionManager should probably be the primary implementation.