XeroAPI/xero-python

Breaking changes due to param ordering

Opened this issue · 3 comments

Changing ordering of signature params like this is a surefire recipe for disaster:
https://github.com/XeroAPI/xero-python/blame/master/xero_python/accounting/models/contacts.py#L36

Introduced in 25a6d3e:
image
Where Contacts([Contact(...)]) would before create a Contacts instance with a single Contact, it now assigns that list to pagination...

That's a breaking change that's hard for consumers to track.

Recommendation: disallow positional params, require kwargs only:

def __init__(self, pagination=None, contacts=None):

->

def __init__(self, *, pagination=None, contacts=None):

PETOSS-496

Thanks for raising an issue, a ticket has been created to track your request

This happened to me, took a while to figure it out.