Added singleton config and changed module structure

This commit is contained in:
2023-11-23 22:13:10 +03:00
parent 6389c4f29e
commit 8c2d706401
12 changed files with 41 additions and 29 deletions

View File

@@ -1,17 +1 @@
from .post import Post
from .admin import Admin
from .user import User
from .image import Image
from dotenv import load_dotenv
import os
from os.path import join, dirname
load_dotenv(join(dirname(__file__), "..", '.env'))
class neuroapi:
post = Post(os.environ.get('API_URL'))
admin = Admin(os.environ.get('API_URL'))
user = User(os.environ.get('API_URL'))
image = Image(os.environ.get('API_URL'))
from ._neuroapi import neuroapi

View File

@@ -0,0 +1,8 @@
from ..config import Config
class ApiMethod:
api_url: str
def __init__(self) -> None:
self.api_url = Config().api_url

View File

@@ -1,4 +1,5 @@
from aiohttp import ClientSession
from .api_method import ApiMethod

11
neuroapi/_neuroapi.py Normal file
View File

@@ -0,0 +1,11 @@
from ._methods.admin import Admin
from ._methods.image import Image
from ._methods.post import Post
from ._methods.user import User
class neuroapi:
post = Post()
admin = Admin()
user = User()
image = Image()

View File

@@ -1,5 +0,0 @@
class ApiMethod:
api_url: str
def __init__(self, api_url: str) -> None:
self.api_url = api_url

19
neuroapi/config.py Normal file
View File

@@ -0,0 +1,19 @@
import os
from typing import Self
from dotenv import load_dotenv
class _Singleton:
_instances = {}
def __new__(cls) -> Self:
if cls not in cls._instances:
cls._instances[cls] = super(_Singleton, cls).__new__(cls)
return cls._instances[cls]
class Config(_Singleton):
api_url: str
def __init__(self):
load_dotenv(os.path.join(os.path.dirname(__file__), '..', '.env'))
self.api_url = os.environ.get('API_URL')