From 5612fac8429f34f95acd3253dad27f06816e77a1 Mon Sep 17 00:00:00 2001 From: Fomys Date: Sat, 10 Aug 2019 20:29:04 +0200 Subject: [PATCH] [base] Petites modifs --- config/{base.py => Base.py} | 0 config/FileSystem.py | 2 +- config/__init__.py | 2 ++ main.py | 6 ++++-- modules/base/Base.py | 12 ++++-------- modules/errors/__init__.py | 2 +- storage/base.py | 3 --- 7 files changed, 12 insertions(+), 15 deletions(-) rename config/{base.py => Base.py} (100%) create mode 100644 config/__init__.py diff --git a/config/base.py b/config/Base.py similarity index 100% rename from config/base.py rename to config/Base.py diff --git a/config/FileSystem.py b/config/FileSystem.py index 44c63e3..07b8420 100644 --- a/config/FileSystem.py +++ b/config/FileSystem.py @@ -2,7 +2,7 @@ import os from aiofile import AIOFile, Reader, Writer import yaml -from config.base import Config +from config.Base import Config class FSConfig(Config): diff --git a/config/__init__.py b/config/__init__.py new file mode 100644 index 0000000..54f2c6d --- /dev/null +++ b/config/__init__.py @@ -0,0 +1,2 @@ +from .Base import Config +from .FileSystem import FSConfig \ No newline at end of file diff --git a/main.py b/main.py index 9e9cb36..88bc0bf 100644 --- a/main.py +++ b/main.py @@ -222,14 +222,16 @@ class LBI(discord.Client): error = log_LBI.error critical = log_LBI.critical - def __init__(self, *args, **kwargs): + def __init__(self, config=None, *args, **kwargs): super().__init__(*args, **kwargs) + if config is None: + config = FSConfig(path="data/config.yml") self.reloading = False self.id = ClientById(self) self.ready = False # Content: {"module_name": {"module": imported module, "class": initialized class}} self.modules = {} - self.config = FSConfig(path="data/config.yml") + self.config = config self.config["modules"] = self.config["modules"] if self.config["modules"] is not None else ["modules","errors"] self.config["prefix"] = self.config["prefix"] or "%" self.config["owners"] = self.config["owners"] or [] diff --git a/modules/base/Base.py b/modules/base/Base.py index ebbcdc9..f099d0f 100644 --- a/modules/base/Base.py +++ b/modules/base/Base.py @@ -1,13 +1,10 @@ """Base class for module, never use directly !!!""" import asyncio -import sys -import pickle -import traceback from typing import List import discord -from config.base import Config +from config import Config from storage import FSStorage, FSObjects import storage.path as path @@ -38,9 +35,8 @@ class BaseClass: self.storage = FSStorage(path.join(self.client.base_path, self.name)) self.objects = FSObjects(self.storage) self.config = Config(parent=self.client.config, name="mod-"+self.name) - # Non necessaire car géré par fsstorage - #if not self.storage.isdir(path.join("storage", self.name)): - # self.storage.makedirs(path.join("storage", self.name), exist_ok=True) + self.config["authorized_roles"] = self.config["authorized_roles"] or self.authorized_roles + self.config["authorized_users"] = self.config["authorized_users"] or self.authorized_users async def send_help(self, channel): embed = discord.Embed( @@ -61,7 +57,7 @@ class BaseClass: :param user_list: List of authorized users, if not specified use self.authorized_users :param role_list: list of authorized roles, if not specified use self.authorized_roles :type user_list: List[Int] - :type role_list: List[int] + :type role_list: List[Int] :type user: discord.User """ if role_list is None: diff --git a/modules/errors/__init__.py b/modules/errors/__init__.py index 04adec2..a1a8c51 100644 --- a/modules/errors/__init__.py +++ b/modules/errors/__init__.py @@ -5,7 +5,7 @@ import traceback import collections import discord -from config.base import Config +from config.Base import Config from modules.base import BaseClassPython diff --git a/storage/base.py b/storage/base.py index 402a05a..1be2e92 100644 --- a/storage/base.py +++ b/storage/base.py @@ -6,9 +6,6 @@ from storage import path as pth class Storage: """Basic class for storage interface - When implementing function be precautionous to forbidden going outside restricted storage zone (storage/modulename - for example). - All path are on unix format (`/folder1/folder2/file`) """