def _call_viewlike(resource, options):
    if 'keys' in options:
        options = options.copy()
        keys = {'keys': options.pop('keys')}
        return resource.post_json(body=keys, **_encode_view_options(options))
    else:
        return resource.get_json(**_encode_view_options(options))
before_update is called on parent for collection modifications,
dataset/ETHPy150Open djc/couchdb-python/couchdb/client.py/_call_viewlike--crossover with--dataset/ETHPy150Open zzzeek/sqlalchemy/test/orm/test_events.py/MapperExtensionTest.test_before_after_only_collection