Loading URL handlers from configuration #222
Merged
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.
Here is an example:
This defines a dedicated handler for accessing the AWS S3 bucket
'mybucket', and turns off anonymous access for this bucket specifically.
A regex-match expression is directly included in the config subsection
name (following the pattern of the standard Git
url.<base>.insteadOf
configuration pattern).
The only mandatory configuration property is
class
. It points to animportable class implementing the
UrlOperations
API.If necessary, arbitrary keyword-arguments for the class constructur
can be specified, JSON-encoded, in a
kwargs
configuration item.On instantiating the
AnyUrlOperations
handler, the configuration isparse using the
ConfigManager
given to the handler, and configurationbased handler specifications overwrite and extend any handlers declare
in the built-in handler registry.
All active handlers are logged at level 8. Invalid handler
configuration is ignore and reported at 'debug' log level.
Closes #217
Note that above example does not actually work in the context of this branch, because FSSPEC support currently is a development draft #215
However, the changes in this PR are also part of that PR to verify that they work in the way presented here. I have factored them out into a separate PR, because it is unknown when #215 would be merged.