Table of Contents
- Migration
- From 0.9.0-0.9.7
- From 0.8.2-0.9.0
- From 0.7.1-… to 0.8.0
- From 0.7.0 to 0.7.1
- From 0.6.0 to 0.7.0
- From 0.5.0 to 0.6.0
- From 0.4.0 to 0.5.0
- From 0.3.x to 0.4.0
Migration
This page contains details on how to migrate between different versions of pyatv. Beware that these guides are written according to “best effort” and might be incomplete or missing some details. If you find something to be unclear, please help out by writing an issue or creating a pull request
From 0.9.0-0.9.7
General Changes
- Each service now has interface.BaseService.enabled, indicating if pyatv should connect to the service or not. Generally this is of little importance, but it must be verified before initiaing pairing. Pairing should never be initiated for disabled services.
Deprecations
None
From 0.8.2-0.9.0
General Changes
- To restore support with tvOS 15, make sure to provide AirPlay credentials. Credentials obtained with earlier versions of pyatv are incompatible (pair again).
- The
password
property previously present inconf.RaopService
is now part ofinterface.BaseService
instead. - Make sure to verify interface.BaseService.pairing before calling pyatv.pair (in case new credentials are needed).
- Check interface.BaseService.requires_password if a password needs to be provided
- At least version 3.17.3 of protobuf is now required.
- mediafile replaced audio-metadata as a dependency
Deprecations
- Service specific configurations, e.g. conf.MrpService, have been replaced by conf.ManualService. Scheduled for removal in 1.0.0.
- interface.RemoteControl.volume_up and interface.RemoteControl.volume_down are now replaced by interface.Audio.volume_up and interface.Audio.volume_up. Scheduled for removal in 1.0.0.
From 0.7.1-… to 0.8.0
General Changes
- The push updater interface is now considered a feature and availability (via interface.Features.get_feature and const.FeatureName.PushUpdates) should now be performed before using it.
- audio-metadata, bitarray and miniaudio are new dependencies in this release (used by RAOP).
- At least version 3.14 of protobuf is now required.
Deprecations
- Passing
protocol
to pyatv.connect is no longer needed and its value will be ignored. Scheduled for removal in version 1.0.0.
From 0.7.0 to 0.7.1
General Changes
- Unicast scanning (i.e. passing
hosts
to pyatv.scan) will not verify if hosts are on the same network anymore (NonLocalSubnetError
will not be thrown). Requests will just time out. See [#775] for more details.
Deprecations
NonLocalSubnetError
is never thrown and shall not be checked for. It will be removed in 0.9.0.
From 0.6.0 to 0.7.0
General Changes
- No library changes
- MRP arguments to atvproxy has been simplified (only credentials and IP to Apple TV must now be provided)
Deprecations
- None
From 0.5.0 to 0.6.0
General Changes
- interface.AppleTV.close has been changed to a regular function instead of a coroutine.
- All listeners are now stored as weak references
From 0.4.0 to 0.5.0
General Changes
- None
Deprecations
- Python 3.6 or later is now required
suspend
andwakeup
in interface.RemoteControl have been deprecated. Use interface.Power.turn_on and interface.Power.turn_off instead.- helpers.auto_connect is now a coroutine. The example has been updated.
From 0.3.x to 0.4.0
General Changes
- Device configuration has moved from
AppleTVDevice
to conf.AppleTV pyatv.connect_to_apple_tv
has been renamed to pyatv.connectpyatv.scan_for_apple_tvs
has been renamed to pyatv.scan- Pairing has been made generic and is done via pyatv.pair
- Constants, e.g. media type, has been changed into enums
play_state
has been renamed todevice_state
- AirPlay interface has been renamed from
AppleTV.airplay
to interface.AppleTV.stream
Deprecations
- Arguments
abort_on_found
andonly_home_sharing
have been removed from pyatv.scan - The
Metadata.artwork_url
method has been deprecated and has no replacement - All methods in the AirPlay interface has been deprecated in favor
of the generic pairing interface (except for
play_url
) pyatv.pair_with_apple_tv
has been replaced by pyatv.pair which can pair all protocols