I argue: API changes are usually divided into two categories.
The new API B replaces A, but A can be fully implemented using the new API B. Thus, it is possible to support the old API at the same time as the new API.
It can be as simple as a new API that moves to streamline or streamline your module, or more complex, like converting arguments to kwargs or something else.
The new API replaces the old API, but cannot implement it for any technical reason.
IMO. , , ) (.. , , ).
1. , .
API , , . , API - .
API . - .
2. , API.
2 1, , , 1.2.1, , , , , requirements.txt.
, 2.0, .
, 1.2.0 2.0 .
3. .
, , , , , , . , Python , Python 2 Python 3:-). unittest2 .
.
, , , , , , - , , - .
, (, , ), .
, : , . , BeautifulSoup.