
    j
                     <    d dl Z d dlZd dlmZmZ ddlmZmZ ddZy)    N)Flaskrender_template   )dbmigratec                 *   t        t              }t        j                  j	                  dt        j                  j	                  dd            }ddlm}m} |j
                  j                  |j	                  ||d                 |       |j
                  d<   | r|j
                  j                  |        t        j                  |       t        j                  |t               t        d       dd	lm} dd
lm} ddlm} ddlm} ddlm}	 ddlm}
 ddlm} ddlm} ddlm} |j?                  |       |j?                  |d       |j?                  |d       |j?                  |d       |j?                  |	d       |j?                  |
d       |j?                  |d       |j?                  |d       |j?                  |d       |jA                  d      d        }|jC                  d      d        }|jC                  d      d         }|S )!u   
    Application factory — complete implementation (Story 1.5).
    Registers all blueprint stubs, WAL mode (via extensions.py Engine event),
    config classes, and error handlers.
    Story 2.1 adds full template-based error pages.
    APP_ENV	FLASK_ENVdevelopmentr   )configget_database_urldefaultSQLALCHEMY_DATABASE_URIz
app.models)dashboard_bp)transactions_bp)
budgets_bp)settings_bp)bills_bp)
paydown_bp)import_pdf_bp)analytics_bp)api_bpz/transactions)
url_prefixz/budgetsz	/settingsz/billsz/paydownz/importz
/analyticsz/api	from_jsonc                 x    | sg S 	 t        j                  |       S # t         j                  t        f$ r g cY S w xY wN)jsonloadsJSONDecodeError	TypeError)values    (/var/www/html/financials/app/__init__.pyfrom_json_filterz$create_app.<locals>.from_json_filter8   s=    I	::e$$$$i0 	I	s    99  c                     t        d      dfS )Nzerrors/404.htmlr$   r   es    r"   	not_foundzcreate_app.<locals>.not_foundB       01366      c                     t        d      dfS )Nzerrors/500.htmlr,   r&   r'   s    r"   server_errorz create_app.<locals>.server_errorF   r*   r+   )"r   __name__osenvirongetr   r   from_objectupdater   init_appr   
__import__app.blueprints.dashboardr   app.blueprints.transactionsr   app.blueprints.budgetsr   app.blueprints.settingsr   app.blueprints.billsr   app.blueprints.paydownr   app.blueprints.import_pdfr   app.blueprints.analyticsr   app.blueprints.apir   register_blueprinttemplate_filtererrorhandler)r   appenv
config_mapr   r   r   r   r   r   r   r   r   r   r#   r)   r.   s                    r"   
create_apprF      s    /C **..BJJNN;$N
OC=JJ:>>#z)/DEF,<,>CJJ() 

&! KKS" | 6;13-175)<(?G:*=;;?89:*==Y?<LA6f5 	% & 	c7 7 	c7 7 Jr+   r   )	r   r0   flaskr   r   
extensionsr   r   rF    r+   r"   <module>rJ      s     	 ( #Cr+   