Some depots now have a dict like {"public": {"gid": GID, ...}, ...}
where we would traditionally have seen a flat dict {"public": GID, ...}.
Not all depots have this: at the time of writing,
1628350 "Steam Linux Runtime - Sniper" does, but
1391110 "Steam Linux Runtime - Soldier" does not. Presumably this is a
change that is being rolled out gradually to let the Steam client give
better estimates of the size of a depot.
Cope with either format, by retrieving the gid field if the nested dict
is present.
Resolves: https://github.com/ValvePython/steam/issues/436
Signed-off-by: Simon McVittie <[email protected]>
App ID 1628350 "Steam Linux Runtime - Sniper" contains depot 1628351,
which has no name, causing steam.client.cdn.CDNClient to crash with
a KeyError while retrieving manifests from that depot. Fall back to
using the depot ID as a placeholder name.
Signed-off-by: Simon McVittie <[email protected]>
* Adding optional binary option to a2s_rules function
* Adding "u" prefix to expected string value to keep legacy Python compatibility
* Setting upper limit on protobuf version to keep legacy Python compatibility because protobuf version 3.18 dropped 2.7 support
* Adding docs for new a2s_rules optional binary argument
* Correcting return type for a2s_rules function
* Setting upper limit on protobuf version to keep legacy Python compatibility because protobuf version 3.18 dropped 2.7 support
* Lifting protobuf upper version limit for Python 3, per PR comment
* Removing duplicate binary check, per PR comment
* Lifting protobuf upper version limit for Python 3, per PR comment