aboutsummaryrefslogtreecommitdiffstats
path: root/snag/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'snag/__init__.py')
-rw-r--r--snag/__init__.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/snag/__init__.py b/snag/__init__.py
new file mode 100644
index 0000000..c0b936f
--- /dev/null
+++ b/snag/__init__.py
@@ -0,0 +1,41 @@
+# snag
+# Matt Kohls
+# (c) 2023
+
+import os
+
+from flask import Flask
+
+def create_app(test_config=None):
+ # create and configure the app
+ app = Flask(__name__, instance_relative_config=True)
+ app.config.from_mapping(
+ SECRET_KEY='development_key',
+ DATABASE=os.path.join(app.instance_path, 'snag.sqlite'),
+ )
+
+ # probably not going to mess with test stuff but just in case
+ if test_config is None:
+ # load the instance config, if it exists, when not testing
+ app.config.from_pyfile('config.py', silent=True)
+ else:
+ # load the test config if passed in
+ app.config.from_mapping(test_config)
+
+ # ensure the instance folder exists
+ try:
+ os.makedirs(app.instance_path)
+ except OSError:
+ pass
+
+ from . import db
+ db.init_app(app)
+
+ from . import graphs, data, dashboard
+ app.register_blueprint(graphs.bp)
+ app.register_blueprint(data.bp)
+ app.register_blueprint(dashboard.bp)
+ app.add_url_rule('/', endpoint='dashboard')
+
+ return app
+