support-formatter-api/support_formatter/app.py
Firq 3046b1ee7b
All checks were successful
/ backend-pylint (push) Successful in 17s
/ publish-artifacts (push) Successful in 8s
/ build-and-push-container (push) Successful in 1m19s
/ build-artifacts (push) Successful in 8s
/ release (push) Successful in 6s
Initial Version
2024-09-30 20:40:26 +02:00

39 lines
968 B
Python

# pylint: disable=too-few-public-methods
from datetime import datetime
from flask import Flask
from flask_smorest import Api
from .config import APISettings
class IsSingletonException(Exception):
pass
class Application:
"""
This is a singleton that can be accessed using get_instance()
It has 2 properties
- app: Used for WSGI servers and such
- api: Used for Blueprints
"""
__instance = None
app = Flask(__name__)
app.config.from_object(APISettings)
app.json.sort_keys = False
api = None
alive_since = None
@staticmethod
def get_instance():
if Application.__instance is None:
Application()
return Application.__instance
def __init__(self):
if Application.__instance is not None:
raise IsSingletonException("This class is a singleton")
Application.__instance = self
self.api = Api(self.app)
self.alive_since = datetime.now()