update
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from decimal import Decimal, InvalidOperation, ROUND_HALF_UP
|
||||
|
||||
from flask import Flask
|
||||
|
||||
from app.config import Config
|
||||
from app.extensions import db, migrate
|
||||
from app import models
|
||||
from app.routes.api import api_bp
|
||||
from app.routes.web import web_bp
|
||||
|
||||
|
||||
def _format_decimal(value: object, digits: int = 4) -> str:
|
||||
if value is None:
|
||||
return "-"
|
||||
|
||||
try:
|
||||
decimal_value = Decimal(str(value))
|
||||
except (InvalidOperation, ValueError, TypeError):
|
||||
return str(value)
|
||||
|
||||
quantized = decimal_value.quantize(Decimal(f"1.{'0' * digits}"), rounding=ROUND_HALF_UP)
|
||||
normalized = format(quantized, "f").rstrip("0").rstrip(".")
|
||||
return normalized or "0"
|
||||
|
||||
|
||||
def create_app(config_object: type[Config] = Config) -> Flask:
|
||||
app = Flask(__name__, instance_relative_config=True)
|
||||
app.config.from_object(config_object)
|
||||
|
||||
db.init_app(app)
|
||||
migrate.init_app(app, db)
|
||||
|
||||
app.register_blueprint(web_bp)
|
||||
app.register_blueprint(api_bp)
|
||||
app.jinja_env.filters["fmt_decimal"] = _format_decimal
|
||||
|
||||
return app
|
||||
Reference in New Issue
Block a user