Setup async interface for discovery module
This will allow us to use this interface in async code like swh-scanner
.
Unfortunately, this means calling asyncio.run
for sync code, but the
performance impact should be negligible.
The swh_storage.*missing*
APIs are inconsistent for each type, which
requires a lot of boilerplate code. This should be addressed in a
follow-up.
There is also one hack (marked as such inline) needed to have an API that isn't also plagued by implementation details of needing to keep ID -> object matchers around. This should be a removed as a direct consequence of aligning the storage APIs.
Migrated from D8538 (view on Phabricator)