[Config] Asynchronous getters (#907)

* Make config get async

* Asyncify alias

* Asyncify bank

* Asyncify cog manager

* IT BOOTS

* Asyncify core commands

* Asyncify repo manager

* Asyncify downloader

* Asyncify economy

* Asyncify alias TESTS

* Asyncify economy TESTS

* Asyncify downloader TESTS

* Asyncify config TESTS

* A bank thing

* Asyncify Bank cog

* Warning message in docs

* Update docs with await syntax

* Update docs with await syntax
This commit is contained in:
Will
2017-08-11 21:43:21 -04:00
committed by GitHub
parent cf8e11238c
commit de912a3cfb
18 changed files with 371 additions and 296 deletions

View File

@@ -430,7 +430,10 @@ class RepoManager:
self.repos_folder = Path(__file__).parent / 'repos'
self._repos = self._load_repos() # str_name: Repo
self._repos = {}
loop = asyncio.get_event_loop()
loop.run_until_complete(self._load_repos(set=True)) # str_name: Repo
def does_repo_exist(self, name: str) -> bool:
return name in self._repos
@@ -494,7 +497,6 @@ class RepoManager:
shutil.rmtree(str(repo.folder_path))
repos = self.downloader_config.repos()
try:
del self._repos[name]
except KeyError:
@@ -518,11 +520,14 @@ class RepoManager:
await self._save_repos()
return ret
def _load_repos(self) -> MutableMapping[str, Repo]:
return {
async def _load_repos(self, set=False) -> MutableMapping[str, Repo]:
ret = {
name: Repo.from_json(data) for name, data in
self.downloader_config.repos().items()
(await self.downloader_config.repos()).items()
}
if set:
self._repos = ret
return ret
async def _save_repos(self):
repo_json_info = {name: r.to_json() for name, r in self._repos.items()}