19686: Introduce low-level api_client constructor
authorBrett Smith <brett.smith@curii.com>
Mon, 28 Nov 2022 21:30:28 +0000 (16:30 -0500)
committerBrett Smith <brett.smith@curii.com>
Thu, 8 Dec 2022 15:27:59 +0000 (10:27 -0500)
commitadcef9f939b663d88a12d5d3597c3b0184d2579f
tree2e00c6fde85e65a7e61df91df953294c6adfe9e7
parent2b4dde152d81ff5946ff21553aa4e072d1f15532
19686: Introduce low-level api_client constructor

When api() returns a ThreadSafeApiCache, we still want to provide a
mechanism to get a plain Resource object. The api_client() function is
that mechanism. It *just* builds the Resource object as api() did
before.

normalize_api_kwargs() takes the arguments passed to api() and turns
them into keyword arguments for api_client(). api_config_to_kwargs()
takes a configuration mapping nand turns them into keyword arguments for
api_client(). Both of these are small APIs, just returning one
dictionary from another.

With this reorganization, api(), api_from_config(), and
ThreadSafeApiClient() can all have simpler implementations.

Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>
sdk/python/arvados/api.py
sdk/python/arvados/safeapi.py