Give examples of the changes you've made in this pull request. Include an itemized list if you can.
Add Parameter subclass MultiSource
Update ValidateParameters#validate to handle expected_delivery_types as a list of Parameters, return the first successful match, or error if no match found in any of the types
🧠Rationale behind the change
Why did you choose to make these changes?
It would be useful in certain cases to be able to accept parameters from multiple sources, possibly spanning multiple HTTP methods.
Does this pull request resolve any open issues?
Yes. Closes #43
Were there any trade-offs you had to consider?
Usage syntax and behavior customization:
string: str = MultiSource(Query, Json, min_int=0) - can't specify validation conditions per parameter type, but it's easier to write out
string: str = MultiSource([Query(min_int=0), Json(min_int=0) - could allow for more customization in usage, but for the average user it's a worse experience
🧪 Testing
[X] Have tests been added or updated for the changes introduced in this pull request?
[X] Are the changes backwards compatible?
If the changes aren't backwards compatible, what other options were explored?
✨ Quality check
[X] Are your changes free of any erroneous print statements, debuggers or other leftover code?
[X] Has the README been updated to reflect the changes introduced (if applicable)?
🛠Changes being made
Give examples of the changes you've made in this pull request. Include an itemized list if you can.
Parameter
subclassMultiSource
ValidateParameters#validate
to handleexpected_delivery_types
as a list ofParameter
s, return the first successful match, or error if no match found in any of the types🧠Rationale behind the change
Why did you choose to make these changes?
Does this pull request resolve any open issues?
Yes. Closes #43
Were there any trade-offs you had to consider?
Usage syntax and behavior customization:
string: str = MultiSource(Query, Json, min_int=0)
- can't specify validation conditions per parameter type, but it's easier to write outstring: str = MultiSource([Query(min_int=0), Json(min_int=0)
- could allow for more customization in usage, but for the average user it's a worse experience🧪 Testing
[X] Have tests been added or updated for the changes introduced in this pull request?
[X] Are the changes backwards compatible?
If the changes aren't backwards compatible, what other options were explored?
✨ Quality check
[X] Are your changes free of any erroneous print statements, debuggers or other leftover code?
[X] Has the README been updated to reflect the changes introduced (if applicable)?
💬 Additional comments
Feel free to add any further information below
Dependent on #45