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.
Support multivalued UWS parameters
Some UWS services (SODA, for example) have multivalued job parameters. The parameter may be specified repeatedly with different values. pydantic-xml supports this and produces a model element that holds a list of Parameters, but it previously was not supported by vo-models because the overridden
__init__
method didn't know how to handle lists.Add support to
Parameters.__init__
to first flatten all of the input values into a simple list, regardless of which attribute pydantic-xml thought they corresponded to, and then construct a dict based on id values as before, but create a list ofParameter
objects if we see the same id more than once. Document that multi-valued parameters should be declared asMultiValuedParameter
instead oflist[Parameter]
, which adds a validator that ensures that the parameters are always converted to a list.Add a test case for multivalued attributes and for correctly parsing parameters given out of order in XML.
Fixes #21