blob: 89b52487664040baabcf5ae6914e13886682660f [file] [log] [blame]
'''Replace auto-generated classes with our own, where necessary.
'''
from . import _client, _definitions, overrides
for o in overrides.__all__:
if not "Facade" in o:
# Override stuff in _definitions, which is all imported
# into _client. We Monkey patch both the original class and
# the ref in _client (import shenanigans are fun!)
setattr(_definitions, o, getattr(overrides, o))
setattr(_client, o, getattr(overrides, o))
# We shouldn't be overriding Facades!
else:
raise ValueError(
"Cannot override a versioned Facade class -- you must patch "
"it instead.")
for o in overrides.__patches__:
# Patch a versioned Facade.
for client_version in _client.CLIENTS.values():
try:
c_type = getattr(client_version, o)
except AttributeError:
# Not all the _client<version> modules may have the
# facade. That's okay -- we just skip over them.
continue
o_type = getattr(overrides, o)
for a in dir(o_type):
if not a.startswith('_'):
setattr(c_type, a, getattr(o_type, a))
from ._client import * # noqa