From 829afdc1425940b2015d43ca3440cbd57b2308af Mon Sep 17 00:00:00 2001
From: David Carmichael
Date: Fri, 22 Nov 2024 15:49:59 +0000
Subject: [PATCH 01/10] doc header fixes
---
...flask_imp_auth-generate_alphanumeric_validator.md | 4 ++--
.../_md/v3/flask_imp_auth-generate_csrf_token.md | 4 ++--
.../v3/flask_imp_auth-generate_email_validator.md | 4 ++--
.../v3/flask_imp_auth-generate_numeric_validator.md | 2 +-
.../_md/v3/flask_imp_auth-generate_password.md | 2 +-
archive_docs/_md/v3/flask_imp_auth-generate_salt.md | 2 +-
.../_md/v3/flask_imp_auth-is_email_address_valid.md | 4 ++--
.../_md/v3/flask_imp_security-api_login_check.md | 2 +-
.../_md/v3/flask_imp_security-permission_check.md | 12 ++++++------
...flask_imp_auth-generate_alphanumeric_validator.md | 4 ++--
.../_md/v4/flask_imp_auth-generate_csrf_token.md | 4 ++--
.../v4/flask_imp_auth-generate_email_validator.md | 4 ++--
.../v4/flask_imp_auth-generate_numeric_validator.md | 2 +-
.../_md/v4/flask_imp_auth-generate_password.md | 2 +-
archive_docs/_md/v4/flask_imp_auth-generate_salt.md | 2 +-
.../_md/v4/flask_imp_auth-is_email_address_valid.md | 4 ++--
.../_md/v4/flask_imp_security-api_login_check.md | 2 +-
.../_md/v4/flask_imp_security-permission_check.md | 12 ++++++------
...flask_imp_auth-generate_alphanumeric_validator.md | 4 ++--
.../_md/v5/flask_imp_auth-generate_csrf_token.md | 4 ++--
.../v5/flask_imp_auth-generate_email_validator.md | 4 ++--
.../v5/flask_imp_auth-generate_numeric_validator.md | 2 +-
.../_md/v5/flask_imp_auth-generate_password.md | 2 +-
archive_docs/_md/v5/flask_imp_auth-generate_salt.md | 2 +-
.../_md/v5/flask_imp_auth-is_email_address_valid.md | 4 ++--
.../_md/v5/flask_imp_security-api_login_check.md | 2 +-
.../_md/v5/flask_imp_security-permission_check.md | 12 ++++++------
docs/Auth/flask_imp_auth-authenticate_password.md | 2 +-
docs/Auth/flask_imp_auth-encrypt_password.md | 2 +-
...flask_imp_auth-generate_alphanumeric_validator.md | 2 +-
docs/Auth/flask_imp_auth-generate_csrf_token.md | 2 +-
docs/Auth/flask_imp_auth-generate_email_validator.md | 2 +-
.../flask_imp_auth-generate_numeric_validator.md | 2 +-
docs/Auth/flask_imp_auth-generate_password.md | 2 +-
docs/Auth/flask_imp_auth-generate_salt.md | 2 +-
docs/Auth/flask_imp_auth-is_email_address_valid.md | 6 +++---
docs/Auth/flask_imp_auth-is_username_valid.md | 4 ++--
docs/Imp/Imp-import_app_resources.md | 6 +++---
docs/Imp/Imp-import_blueprint.md | 4 ++--
docs/Imp/Imp-import_models.md | 4 ++--
docs/Security/flask_imp_security-api_login_check.md | 4 ++--
docs/Security/flask_imp_security-login_check.md | 4 ++--
docs/Security/flask_imp_security-permission_check.md | 2 +-
43 files changed, 79 insertions(+), 79 deletions(-)
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md b/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md
index f7cbe3d8..c0d0ccdc 100644
--- a/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md
+++ b/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md
@@ -17,8 +17,8 @@ Generates a random alphanumeric string of the given length.
(letters are capitalized)
-##### Example:
+*Example:*
```python
generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md b/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md
index 80c18f66..ce6df31b 100644
--- a/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md
+++ b/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md
@@ -19,8 +19,8 @@ For use in Cross-Site Request Forgery.
Also used by the [flask_imp.security / csrf_protect](flask_imp_security-include_csrf.html) decorator.
-##### Example:
+*Example:*
```python
generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md b/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md
index 3e66f143..acdced31 100644
--- a/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md
+++ b/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md
@@ -17,10 +17,10 @@ Uses `generate_alphanumeric_validator` with a length of 8 to
generate a random alphanumeric value for the specific use of
validating accounts via email.
-See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
+See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
for more information.
-##### Example:
+*Example:*
```python
generate_email_validator() # >>> 'A1B2C3D4'
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md b/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md
index ba19ff99..c0d7dc76 100644
--- a/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md
+++ b/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md
@@ -20,7 +20,7 @@ If the length is 4, it will generate a number between 1111 and 9999.
For use in MFA email, or unique filename generation.
-##### Example:
+*Example:*
```python
generate_numeric_validator(4) # >>> 1234
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_password.md b/archive_docs/_md/v3/flask_imp_auth-generate_password.md
index ec1588da..b6f8fda0 100644
--- a/archive_docs/_md/v3/flask_imp_auth-generate_password.md
+++ b/archive_docs/_md/v3/flask_imp_auth-generate_password.md
@@ -19,7 +19,7 @@ The Default length is 3.
Style options: "animals", "colors", "mixed" - defaults to "mixed"
-##### Example:
+*Example:*
```python
generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_salt.md b/archive_docs/_md/v3/flask_imp_auth-generate_salt.md
index 523746fa..f21615f5 100644
--- a/archive_docs/_md/v3/flask_imp_auth-generate_salt.md
+++ b/archive_docs/_md/v3/flask_imp_auth-generate_salt.md
@@ -19,7 +19,7 @@ The Default length is 4.
For use in password hashing and storage of passwords in the database.
-##### Example:
+*Example:*
```python
generate_salt() # >>> '*!$%'
diff --git a/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md b/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md
index a6af7dde..1990e24a 100644
--- a/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md
+++ b/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md
@@ -37,10 +37,10 @@ email@example.com (Joe Smith)
email@111.222.333.44444
```
-##### Example:
+*Example:*
```python
is_email_address_valid('hello@example.com') # >>> True
is_email_address_valid('hello@hello@example.com') # >>> False
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v3/flask_imp_security-api_login_check.md b/archive_docs/_md/v3/flask_imp_security-api_login_check.md
index 8b1ba3f7..e021ecbe 100644
--- a/archive_docs/_md/v3/flask_imp_security-api_login_check.md
+++ b/archive_docs/_md/v3/flask_imp_security-api_login_check.md
@@ -28,7 +28,7 @@ A decorator that is used to secure API routes that return JSON responses.
`fail_json` JSON that is returned on failure. `{"error": "You are not logged in."}` by default.
-##### Example:
+*Example:*
```python
@bp.route("/api/resource", methods=["GET"])
diff --git a/archive_docs/_md/v3/flask_imp_security-permission_check.md b/archive_docs/_md/v3/flask_imp_security-permission_check.md
index 22041c81..73278e12 100644
--- a/archive_docs/_md/v3/flask_imp_security-permission_check.md
+++ b/archive_docs/_md/v3/flask_imp_security-permission_check.md
@@ -36,19 +36,19 @@ A decorator that checks if the specified session key exists and its value(s) mat
`message_category` The category of the flash message.
-##### Example:
+*Example:*
```python
@bp.route("/admin-page", methods=["GET"])
@login_check(
- 'logged_in',
- True,
+ 'logged_in',
+ True,
'blueprint.login_page'
) # can be mixed with login_check
@permission_check(
- 'permissions',
- ['admin'],
- fail_endpoint='www.index',
+ 'permissions',
+ ['admin'],
+ fail_endpoint='www.index',
message="Failed message"
)
def admin_page():
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md b/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md
index f7cbe3d8..c0d0ccdc 100644
--- a/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md
+++ b/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md
@@ -17,8 +17,8 @@ Generates a random alphanumeric string of the given length.
(letters are capitalized)
-##### Example:
+*Example:*
```python
generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md b/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md
index 80c18f66..ce6df31b 100644
--- a/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md
+++ b/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md
@@ -19,8 +19,8 @@ For use in Cross-Site Request Forgery.
Also used by the [flask_imp.security / csrf_protect](flask_imp_security-include_csrf.html) decorator.
-##### Example:
+*Example:*
```python
generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md b/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md
index 3e66f143..acdced31 100644
--- a/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md
+++ b/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md
@@ -17,10 +17,10 @@ Uses `generate_alphanumeric_validator` with a length of 8 to
generate a random alphanumeric value for the specific use of
validating accounts via email.
-See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
+See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
for more information.
-##### Example:
+*Example:*
```python
generate_email_validator() # >>> 'A1B2C3D4'
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md b/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md
index ba19ff99..c0d7dc76 100644
--- a/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md
+++ b/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md
@@ -20,7 +20,7 @@ If the length is 4, it will generate a number between 1111 and 9999.
For use in MFA email, or unique filename generation.
-##### Example:
+*Example:*
```python
generate_numeric_validator(4) # >>> 1234
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_password.md b/archive_docs/_md/v4/flask_imp_auth-generate_password.md
index ec1588da..b6f8fda0 100644
--- a/archive_docs/_md/v4/flask_imp_auth-generate_password.md
+++ b/archive_docs/_md/v4/flask_imp_auth-generate_password.md
@@ -19,7 +19,7 @@ The Default length is 3.
Style options: "animals", "colors", "mixed" - defaults to "mixed"
-##### Example:
+*Example:*
```python
generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_salt.md b/archive_docs/_md/v4/flask_imp_auth-generate_salt.md
index 523746fa..f21615f5 100644
--- a/archive_docs/_md/v4/flask_imp_auth-generate_salt.md
+++ b/archive_docs/_md/v4/flask_imp_auth-generate_salt.md
@@ -19,7 +19,7 @@ The Default length is 4.
For use in password hashing and storage of passwords in the database.
-##### Example:
+*Example:*
```python
generate_salt() # >>> '*!$%'
diff --git a/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md b/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md
index a6af7dde..1990e24a 100644
--- a/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md
+++ b/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md
@@ -37,10 +37,10 @@ email@example.com (Joe Smith)
email@111.222.333.44444
```
-##### Example:
+*Example:*
```python
is_email_address_valid('hello@example.com') # >>> True
is_email_address_valid('hello@hello@example.com') # >>> False
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v4/flask_imp_security-api_login_check.md b/archive_docs/_md/v4/flask_imp_security-api_login_check.md
index 8b1ba3f7..e021ecbe 100644
--- a/archive_docs/_md/v4/flask_imp_security-api_login_check.md
+++ b/archive_docs/_md/v4/flask_imp_security-api_login_check.md
@@ -28,7 +28,7 @@ A decorator that is used to secure API routes that return JSON responses.
`fail_json` JSON that is returned on failure. `{"error": "You are not logged in."}` by default.
-##### Example:
+*Example:*
```python
@bp.route("/api/resource", methods=["GET"])
diff --git a/archive_docs/_md/v4/flask_imp_security-permission_check.md b/archive_docs/_md/v4/flask_imp_security-permission_check.md
index 22041c81..73278e12 100644
--- a/archive_docs/_md/v4/flask_imp_security-permission_check.md
+++ b/archive_docs/_md/v4/flask_imp_security-permission_check.md
@@ -36,19 +36,19 @@ A decorator that checks if the specified session key exists and its value(s) mat
`message_category` The category of the flash message.
-##### Example:
+*Example:*
```python
@bp.route("/admin-page", methods=["GET"])
@login_check(
- 'logged_in',
- True,
+ 'logged_in',
+ True,
'blueprint.login_page'
) # can be mixed with login_check
@permission_check(
- 'permissions',
- ['admin'],
- fail_endpoint='www.index',
+ 'permissions',
+ ['admin'],
+ fail_endpoint='www.index',
message="Failed message"
)
def admin_page():
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md b/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md
index f7cbe3d8..c0d0ccdc 100644
--- a/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md
+++ b/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md
@@ -17,8 +17,8 @@ Generates a random alphanumeric string of the given length.
(letters are capitalized)
-##### Example:
+*Example:*
```python
generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md b/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md
index 80c18f66..ce6df31b 100644
--- a/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md
+++ b/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md
@@ -19,8 +19,8 @@ For use in Cross-Site Request Forgery.
Also used by the [flask_imp.security / csrf_protect](flask_imp_security-include_csrf.html) decorator.
-##### Example:
+*Example:*
```python
generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md b/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md
index 3e66f143..acdced31 100644
--- a/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md
+++ b/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md
@@ -17,10 +17,10 @@ Uses `generate_alphanumeric_validator` with a length of 8 to
generate a random alphanumeric value for the specific use of
validating accounts via email.
-See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
+See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
for more information.
-##### Example:
+*Example:*
```python
generate_email_validator() # >>> 'A1B2C3D4'
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md b/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md
index ba19ff99..c0d7dc76 100644
--- a/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md
+++ b/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md
@@ -20,7 +20,7 @@ If the length is 4, it will generate a number between 1111 and 9999.
For use in MFA email, or unique filename generation.
-##### Example:
+*Example:*
```python
generate_numeric_validator(4) # >>> 1234
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_password.md b/archive_docs/_md/v5/flask_imp_auth-generate_password.md
index ec1588da..b6f8fda0 100644
--- a/archive_docs/_md/v5/flask_imp_auth-generate_password.md
+++ b/archive_docs/_md/v5/flask_imp_auth-generate_password.md
@@ -19,7 +19,7 @@ The Default length is 3.
Style options: "animals", "colors", "mixed" - defaults to "mixed"
-##### Example:
+*Example:*
```python
generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_salt.md b/archive_docs/_md/v5/flask_imp_auth-generate_salt.md
index 523746fa..f21615f5 100644
--- a/archive_docs/_md/v5/flask_imp_auth-generate_salt.md
+++ b/archive_docs/_md/v5/flask_imp_auth-generate_salt.md
@@ -19,7 +19,7 @@ The Default length is 4.
For use in password hashing and storage of passwords in the database.
-##### Example:
+*Example:*
```python
generate_salt() # >>> '*!$%'
diff --git a/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md b/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md
index a6af7dde..1990e24a 100644
--- a/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md
+++ b/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md
@@ -37,10 +37,10 @@ email@example.com (Joe Smith)
email@111.222.333.44444
```
-##### Example:
+*Example:*
```python
is_email_address_valid('hello@example.com') # >>> True
is_email_address_valid('hello@hello@example.com') # >>> False
-```
\ No newline at end of file
+```
diff --git a/archive_docs/_md/v5/flask_imp_security-api_login_check.md b/archive_docs/_md/v5/flask_imp_security-api_login_check.md
index 8b1ba3f7..e021ecbe 100644
--- a/archive_docs/_md/v5/flask_imp_security-api_login_check.md
+++ b/archive_docs/_md/v5/flask_imp_security-api_login_check.md
@@ -28,7 +28,7 @@ A decorator that is used to secure API routes that return JSON responses.
`fail_json` JSON that is returned on failure. `{"error": "You are not logged in."}` by default.
-##### Example:
+*Example:*
```python
@bp.route("/api/resource", methods=["GET"])
diff --git a/archive_docs/_md/v5/flask_imp_security-permission_check.md b/archive_docs/_md/v5/flask_imp_security-permission_check.md
index 22041c81..73278e12 100644
--- a/archive_docs/_md/v5/flask_imp_security-permission_check.md
+++ b/archive_docs/_md/v5/flask_imp_security-permission_check.md
@@ -36,19 +36,19 @@ A decorator that checks if the specified session key exists and its value(s) mat
`message_category` The category of the flash message.
-##### Example:
+*Example:*
```python
@bp.route("/admin-page", methods=["GET"])
@login_check(
- 'logged_in',
- True,
+ 'logged_in',
+ True,
'blueprint.login_page'
) # can be mixed with login_check
@permission_check(
- 'permissions',
- ['admin'],
- fail_endpoint='www.index',
+ 'permissions',
+ ['admin'],
+ fail_endpoint='www.index',
message="Failed message"
)
def admin_page():
diff --git a/docs/Auth/flask_imp_auth-authenticate_password.md b/docs/Auth/flask_imp_auth-authenticate_password.md
index ab278277..eb62a376 100644
--- a/docs/Auth/flask_imp_auth-authenticate_password.md
+++ b/docs/Auth/flask_imp_auth-authenticate_password.md
@@ -38,7 +38,7 @@ If you are using socketio, you must set use_multiprocessing to False (default).
- You must know the position of the pepper used to hash the password.
- You must know the encryption level used to hash the password.
-#### Authentication Scenario:
+**Authentication Scenario:**
```
Plain password: "password"
diff --git a/docs/Auth/flask_imp_auth-encrypt_password.md b/docs/Auth/flask_imp_auth-encrypt_password.md
index 1c386fa3..378fb380 100644
--- a/docs/Auth/flask_imp_auth-encrypt_password.md
+++ b/docs/Auth/flask_imp_auth-encrypt_password.md
@@ -34,7 +34,7 @@ Can set the pepper position, "start" or "end", defaults to "end".
- You must inform the authenticate_password function of the position of the pepper used to hash the password.
- You must inform the authenticate_password function of the encryption level used to hash the password.
-#### Encryption Scenario:
+**Encryption Scenario:**
```
Plain password: "password"
diff --git a/docs/Auth/flask_imp_auth-generate_alphanumeric_validator.md b/docs/Auth/flask_imp_auth-generate_alphanumeric_validator.md
index 2eb09149..a848c3b2 100644
--- a/docs/Auth/flask_imp_auth-generate_alphanumeric_validator.md
+++ b/docs/Auth/flask_imp_auth-generate_alphanumeric_validator.md
@@ -14,7 +14,7 @@ Generates a random alphanumeric string of the given length.
(letters are capitalized)
-##### Example:
+*Example:*
```python
generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
diff --git a/docs/Auth/flask_imp_auth-generate_csrf_token.md b/docs/Auth/flask_imp_auth-generate_csrf_token.md
index 74667fc7..bdf0cd41 100644
--- a/docs/Auth/flask_imp_auth-generate_csrf_token.md
+++ b/docs/Auth/flask_imp_auth-generate_csrf_token.md
@@ -16,7 +16,7 @@ For use in Cross-Site Request Forgery.
Also used by the [flask_imp.security / csrf_protect](../Security/flask_imp_security-include_csrf.md) decorator.
-##### Example:
+*Example:*
```python
generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
diff --git a/docs/Auth/flask_imp_auth-generate_email_validator.md b/docs/Auth/flask_imp_auth-generate_email_validator.md
index 7b154c65..55b7accf 100644
--- a/docs/Auth/flask_imp_auth-generate_email_validator.md
+++ b/docs/Auth/flask_imp_auth-generate_email_validator.md
@@ -17,7 +17,7 @@ validating accounts via email.
See [flask_imp.auth / generate_alphanumeric_validator](../Auth/flask_imp_auth-generate_alphanumeric_validator.md)
for more information.
-##### Example:
+*Example:*
```python
generate_email_validator() # >>> 'A1B2C3D4'
diff --git a/docs/Auth/flask_imp_auth-generate_numeric_validator.md b/docs/Auth/flask_imp_auth-generate_numeric_validator.md
index de5a28b1..e2cee35f 100644
--- a/docs/Auth/flask_imp_auth-generate_numeric_validator.md
+++ b/docs/Auth/flask_imp_auth-generate_numeric_validator.md
@@ -17,7 +17,7 @@ If the length is 4, it will generate a number between 1111 and 9999.
For use in MFA email, or unique filename generation.
-##### Example:
+*Example:*
```python
generate_numeric_validator(4) # >>> 1234
diff --git a/docs/Auth/flask_imp_auth-generate_password.md b/docs/Auth/flask_imp_auth-generate_password.md
index adcbd958..c8b8b9de 100644
--- a/docs/Auth/flask_imp_auth-generate_password.md
+++ b/docs/Auth/flask_imp_auth-generate_password.md
@@ -16,7 +16,7 @@ The Default length is 3.
Style options: "animals", "colors", "mixed" - defaults to "mixed"
-##### Example:
+*Example:*
```python
generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
diff --git a/docs/Auth/flask_imp_auth-generate_salt.md b/docs/Auth/flask_imp_auth-generate_salt.md
index 1c97a17b..84bb2b55 100644
--- a/docs/Auth/flask_imp_auth-generate_salt.md
+++ b/docs/Auth/flask_imp_auth-generate_salt.md
@@ -16,7 +16,7 @@ The Default length is 4.
For use in password hashing and storage of passwords in the database.
-##### Example:
+*Example:*
```python
generate_salt() # >>> '*!$%'
diff --git a/docs/Auth/flask_imp_auth-is_email_address_valid.md b/docs/Auth/flask_imp_auth-is_email_address_valid.md
index fe619d5b..f848acdc 100644
--- a/docs/Auth/flask_imp_auth-is_email_address_valid.md
+++ b/docs/Auth/flask_imp_auth-is_email_address_valid.md
@@ -18,7 +18,7 @@ Is not completely RFC 5322 compliant, but it is good enough for most use cases.
Here are examples of mistakes that it will not catch:
-##### Valid but fails:
+**Valid but fails:**
```text
email@[123.123.123.123]
@@ -27,14 +27,14 @@ very.unusual.“@”.unusual.com@example.com
very.“(),:;<>[]”.VERY.“very@\\ "very”.unusual@strange.example.com
```
-##### Invalid but passes:
+**Invalid but passes:**
```text
email@example.com (Joe Smith)
email@111.222.333.44444
```
-##### Example:
+*Example:*
```python
is_email_address_valid('hello@example.com') # >>> True
diff --git a/docs/Auth/flask_imp_auth-is_username_valid.md b/docs/Auth/flask_imp_auth-is_username_valid.md
index 30f1e1e2..4836a79a 100644
--- a/docs/Auth/flask_imp_auth-is_username_valid.md
+++ b/docs/Auth/flask_imp_auth-is_username_valid.md
@@ -19,7 +19,7 @@ Valid usernames can only include letters,
numbers, ., -, and _ but cannot begin or end with
the last three mentioned.
-##### Example "all":
+**Example "all":**
```python
is_username_valid("username", allowed=["all"])
@@ -35,7 +35,7 @@ user_name : WILL PASS : True
_user_name : WILL PASS : False
```
-##### Example "dot", "dash":
+**Example "dot", "dash":**
```python
diff --git a/docs/Imp/Imp-import_app_resources.md b/docs/Imp/Imp-import_app_resources.md
index 1bb0d265..561fcb41 100644
--- a/docs/Imp/Imp-import_app_resources.md
+++ b/docs/Imp/Imp-import_app_resources.md
@@ -24,7 +24,7 @@ Routes, context processors, cli, etc.
If no static and or template folder is found, the static and or template folder will be set to None in the Flask app
config.
-#### Small example of usage:
+**Small example of usage:**
```python
imp.import_app_resources(folder="resources")
@@ -61,7 +61,7 @@ def index():
return render_template("index.html")
```
-#### How factories work
+## How factories work
Factories are functions that are called when importing the app resources. Here's an example:
@@ -83,7 +83,7 @@ def development_cli(app):
print("dev cli command")
```
-#### Scoping imports
+## Scoping imports
By default, all files and folders will be imported.
diff --git a/docs/Imp/Imp-import_blueprint.md b/docs/Imp/Imp-import_blueprint.md
index ec10505b..bfd348b0 100644
--- a/docs/Imp/Imp-import_blueprint.md
+++ b/docs/Imp/Imp-import_blueprint.md
@@ -41,7 +41,7 @@ Flask-Imp Blueprints have the ability to auto import resources, and initialize s
For more information on how Flask-Imp Blueprints work, see the [ImpBlueprint / Introduction](../ImpBlueprint/ImpBlueprint-Introduction.md)
-##### Example of 'my_blueprint' as a Flask-Imp Blueprint:
+**Example of 'my_blueprint' as a Flask-Imp Blueprint:**
```text
app
@@ -91,7 +91,7 @@ def index():
return "regular_blueprint"
```
-##### Example of 'my_blueprint' as a standard Flask Blueprint:
+**Example of 'my_blueprint' as a standard Flask Blueprint:**
```text
app
diff --git a/docs/Imp/Imp-import_models.md b/docs/Imp/Imp-import_models.md
index 0a045085..f9361d46 100644
--- a/docs/Imp/Imp-import_models.md
+++ b/docs/Imp/Imp-import_models.md
@@ -11,7 +11,7 @@ Imports all the models from the given file or folder relative to the Flask app r
Each Model that is imported will be available in the `imp.model` lookup method.
See [Imp / model](../Imp/Imp-model.md) for more information.
-##### Example of importing models from a file
+*Example of importing models from a file*
```text
app
@@ -57,7 +57,7 @@ class User(db.Model):
attribute = db.Column(db.String(255))
```
-##### Example of importing models from a folder
+*Example of importing models from a folder*
```text
app
diff --git a/docs/Security/flask_imp_security-api_login_check.md b/docs/Security/flask_imp_security-api_login_check.md
index 7d3c3fee..a6feb264 100644
--- a/docs/Security/flask_imp_security-api_login_check.md
+++ b/docs/Security/flask_imp_security-api_login_check.md
@@ -33,7 +33,7 @@ A decorator that is used to secure API routes that return JSON responses.
`fail_status` The status code to return on failure. `401` by default.
-##### Example:
+*Example:*
```python
@bp.route("/api/resource", methods=["GET"])
@@ -42,7 +42,7 @@ def api_page():
...
```
-##### Example of defined fail_json:
+**Example of defined fail_json:**
```python
@bp.route("/api/resource", methods=["GET"])
diff --git a/docs/Security/flask_imp_security-login_check.md b/docs/Security/flask_imp_security-login_check.md
index 5d634a9a..7b6fb13d 100644
--- a/docs/Security/flask_imp_security-login_check.md
+++ b/docs/Security/flask_imp_security-login_check.md
@@ -42,7 +42,7 @@ A decorator that checks if the specified session key exists and contains the spe
`abort_status` The status code to return if the check fails.
-##### Example of a route that requires a user to be logged in:
+**Example of a route that requires a user to be logged in:**
```python
@bp.route("/admin", methods=["GET"])
@@ -56,7 +56,7 @@ def admin_page():
...
```
-##### Example of a route that if the user is already logged in, redirects to the specified endpoint:
+**Example of a route that if the user is already logged in, redirects to the specified endpoint:**
```python
@bp.route("/login-page", methods=["GET"])
diff --git a/docs/Security/flask_imp_security-permission_check.md b/docs/Security/flask_imp_security-permission_check.md
index 4b448ba1..c536cc85 100644
--- a/docs/Security/flask_imp_security-permission_check.md
+++ b/docs/Security/flask_imp_security-permission_check.md
@@ -41,7 +41,7 @@ A decorator that checks if the specified session key exists and its value(s) mat
`abort_status` The status code to return if the check fails.
-##### Example:
+*Example:*
```python
@bp.route("/admin-page", methods=["GET"])
From a80f12cafa79360f83fdc8ef802ed1ae4a048428 Mon Sep 17 00:00:00 2001
From: David Carmichael
Date: Fri, 22 Nov 2024 15:50:21 +0000
Subject: [PATCH 02/10] remove old docs
---
archive_docs/__init__.py | 60 --
archive_docs/_md/v3/Blueprint-Introduction.md | 77 --
archive_docs/_md/v3/Blueprint-config-toml.md | 152 ---
archive_docs/_md/v3/Blueprint-init.md | 17 -
.../_md/v3/Blueprint_x-import_models.md | 80 --
.../v3/Blueprint_x-import_nested_blueprint.md | 70 --
.../Blueprint_x-import_nested_blueprints.md | 59 --
.../_md/v3/Blueprint_x-import_resources.md | 53 -
.../_md/v3/Blueprint_x-init_session.md | 19 -
archive_docs/_md/v3/Blueprint_x-tmpl.md | 45 -
.../v3/CLI Commands-flask-imp blueprint.md | 90 --
.../_md/v3/CLI Commands-flask-imp init.md | 226 -----
archive_docs/_md/v3/Imp-Introduction.md | 82 --
archive_docs/_md/v3/Imp-load-env-vars.md | 30 -
archive_docs/_md/v3/Imp-x-config-toml.md | 137 ---
.../_md/v3/Imp_x-import_app_resources.md | 106 --
archive_docs/_md/v3/Imp_x-import_blueprint.md | 116 ---
.../_md/v3/Imp_x-import_blueprints.md | 50 -
archive_docs/_md/v3/Imp_x-import_models.md | 83 --
archive_docs/_md/v3/Imp_x-init_app-init.md | 33 -
archive_docs/_md/v3/Imp_x-init_session.md | 48 -
archive_docs/_md/v3/Imp_x-model.md | 57 --
archive_docs/_md/v3/__index__.md | 117 ---
archive_docs/_md/v3/__menu__.md | 45 -
.../flask_imp_auth-authenticate_password.md | 63 --
.../_md/v3/flask_imp_auth-encrypt_password.md | 53 -
...mp_auth-generate_alphanumeric_validator.md | 24 -
.../v3/flask_imp_auth-generate_csrf_token.md | 26 -
...flask_imp_auth-generate_email_validator.md | 27 -
...ask_imp_auth-generate_numeric_validator.md | 27 -
.../v3/flask_imp_auth-generate_password.md | 26 -
.../v3/flask_imp_auth-generate_private_key.md | 38 -
.../_md/v3/flask_imp_auth-generate_salt.md | 46 -
.../flask_imp_auth-is_email_address_valid.md | 46 -
.../v3/flask_imp_auth-is_username_valid.md | 58 --
.../v3/flask_imp_security-api_login_check.md | 47 -
.../_md/v3/flask_imp_security-include_csrf.md | 48 -
.../_md/v3/flask_imp_security-login_check.md | 66 --
.../flask_imp_security-pass_function_check.md | 8 -
.../v3/flask_imp_security-permission_check.md | 57 --
archive_docs/_md/v4/Blueprint-Introduction.md | 80 --
archive_docs/_md/v4/Blueprint-config-x.md | 160 ---
archive_docs/_md/v4/Blueprint-init.md | 17 -
.../_md/v4/Blueprint_x-import_models.md | 80 --
.../v4/Blueprint_x-import_nested_blueprint.md | 70 --
.../Blueprint_x-import_nested_blueprints.md | 59 --
.../_md/v4/Blueprint_x-import_resources.md | 53 -
.../_md/v4/Blueprint_x-init_session.md | 19 -
archive_docs/_md/v4/Blueprint_x-tmpl.md | 45 -
.../v4/CLI Commands-flask-imp blueprint.md | 107 --
.../_md/v4/CLI Commands-flask-imp init.md | 262 -----
archive_docs/_md/v4/Imp-Introduction.md | 78 --
archive_docs/_md/v4/Imp-config-x.md | 285 ------
.../_md/v4/Imp_x-import_app_resources.md | 106 --
archive_docs/_md/v4/Imp_x-import_blueprint.md | 116 ---
.../_md/v4/Imp_x-import_blueprints.md | 50 -
archive_docs/_md/v4/Imp_x-import_models.md | 83 --
archive_docs/_md/v4/Imp_x-init_app-init.md | 32 -
archive_docs/_md/v4/Imp_x-init_session.md | 48 -
archive_docs/_md/v4/Imp_x-model.md | 57 --
archive_docs/_md/v4/__index__.md | 201 ----
archive_docs/_md/v4/__menu__.md | 44 -
.../flask_imp_auth-authenticate_password.md | 63 --
.../_md/v4/flask_imp_auth-encrypt_password.md | 53 -
...mp_auth-generate_alphanumeric_validator.md | 24 -
.../v4/flask_imp_auth-generate_csrf_token.md | 26 -
...flask_imp_auth-generate_email_validator.md | 27 -
...ask_imp_auth-generate_numeric_validator.md | 27 -
.../v4/flask_imp_auth-generate_password.md | 26 -
.../v4/flask_imp_auth-generate_private_key.md | 38 -
.../_md/v4/flask_imp_auth-generate_salt.md | 46 -
.../flask_imp_auth-is_email_address_valid.md | 46 -
.../v4/flask_imp_auth-is_username_valid.md | 58 --
.../v4/flask_imp_security-api_login_check.md | 47 -
.../_md/v4/flask_imp_security-include_csrf.md | 48 -
.../_md/v4/flask_imp_security-login_check.md | 66 --
.../flask_imp_security-pass_function_check.md | 114 ---
.../v4/flask_imp_security-permission_check.md | 57 --
.../v5/CLI Commands-flask-imp blueprint.md | 101 --
.../_md/v5/CLI Commands-flask-imp init.md | 218 ----
archive_docs/_md/v5/Imp-Introduction.md | 92 --
.../_md/v5/Imp-import_app_resources.md | 106 --
archive_docs/_md/v5/Imp-import_blueprint.md | 121 ---
archive_docs/_md/v5/Imp-import_blueprints.md | 50 -
archive_docs/_md/v5/Imp-import_models.md | 83 --
archive_docs/_md/v5/Imp-init_app-init.md | 22 -
archive_docs/_md/v5/Imp-init_session.md | 48 -
archive_docs/_md/v5/Imp-model.md | 57 --
.../_md/v5/ImpBlueprint-Introduction.md | 75 --
.../_md/v5/ImpBlueprint-import_models.md | 88 --
.../ImpBlueprint-import_nested_blueprint.md | 78 --
.../ImpBlueprint-import_nested_blueprints.md | 60 --
.../_md/v5/ImpBlueprint-import_resources.md | 57 --
archive_docs/_md/v5/ImpBlueprint-init.md | 17 -
archive_docs/_md/v5/ImpBlueprint-tmpl.md | 44 -
archive_docs/_md/v5/__index__.md | 121 ---
archive_docs/_md/v5/__menu__.md | 47 -
.../flask_imp_auth-authenticate_password.md | 63 --
.../_md/v5/flask_imp_auth-encrypt_password.md | 53 -
...mp_auth-generate_alphanumeric_validator.md | 24 -
.../v5/flask_imp_auth-generate_csrf_token.md | 26 -
...flask_imp_auth-generate_email_validator.md | 27 -
...ask_imp_auth-generate_numeric_validator.md | 27 -
.../v5/flask_imp_auth-generate_password.md | 26 -
.../v5/flask_imp_auth-generate_private_key.md | 38 -
.../_md/v5/flask_imp_auth-generate_salt.md | 46 -
.../flask_imp_auth-is_email_address_valid.md | 46 -
.../v5/flask_imp_auth-is_username_valid.md | 58 --
.../_md/v5/flask_imp_config-databaseconfig.md | 31 -
.../_md/v5/flask_imp_config-flaskconfig.md | 59 --
.../v5/flask_imp_config-impblueprintconfig.md | 37 -
.../_md/v5/flask_imp_config-impconfig.md | 49 -
.../v5/flask_imp_config-sqldatabaseconfig.md | 28 -
.../flask_imp_config-sqlitedatabaseconfig.md | 25 -
.../v5/flask_imp_security-api_login_check.md | 47 -
.../_md/v5/flask_imp_security-include_csrf.md | 48 -
.../_md/v5/flask_imp_security-login_check.md | 66 --
.../flask_imp_security-pass_function_check.md | 114 ---
.../v5/flask_imp_security-permission_check.md | 57 --
archive_docs/_ssg/__init__.py | 3 -
archive_docs/_ssg/compiler.py | 132 ---
archive_docs/_ssg/exceptions.py | 38 -
archive_docs/_ssg/helpers.py | 53 -
archive_docs/_ssg/render_engines.py | 18 -
archive_docs/_templates/__main__.html | 26 -
archive_docs/_templates/__menu__.html | 37 -
archive_docs/_templates/index.html | 26 -
archive_docs/_templates/main_index.html | 15 -
archive_docs/config.py | 7 -
archive_docs/index.html | 15 -
archive_docs/v3/blueprint-config-toml.html | 384 --------
archive_docs/v3/blueprint-init.html | 266 -----
archive_docs/v3/blueprint-introduction.html | 318 ------
.../v3/blueprint_x-import_models.html | 312 ------
.../blueprint_x-import_nested_blueprint.html | 307 ------
.../blueprint_x-import_nested_blueprints.html | 300 ------
.../v3/blueprint_x-import_resources.html | 296 ------
archive_docs/v3/blueprint_x-init_session.html | 268 -----
archive_docs/v3/blueprint_x-tmpl.html | 289 ------
.../v3/cli_commands-flask-imp_blueprint.html | 320 ------
.../v3/cli_commands-flask-imp_init.html | 433 --------
.../flask_imp_auth-authenticate_password.html | 301 ------
.../v3/flask_imp_auth-encrypt_password.html | 293 ------
..._auth-generate_alphanumeric_validator.html | 269 -----
.../flask_imp_auth-generate_csrf_token.html | 270 -----
...ask_imp_auth-generate_email_validator.html | 272 -----
...k_imp_auth-generate_numeric_validator.html | 270 -----
.../v3/flask_imp_auth-generate_password.html | 270 -----
.../flask_imp_auth-generate_private_key.html | 284 ------
.../v3/flask_imp_auth-generate_salt.html | 287 ------
...flask_imp_auth-is_email_address_valid.html | 284 ------
.../v3/flask_imp_auth-is_username_valid.html | 293 ------
.../flask_imp_security-api_login_check.html | 285 ------
.../v3/flask_imp_security-include_csrf.html | 289 ------
.../v3/flask_imp_security-login_check.html | 302 ------
...lask_imp_security-pass_function_check.html | 261 -----
.../flask_imp_security-permission_check.html | 295 ------
archive_docs/v3/imp-introduction.html | 318 ------
archive_docs/v3/imp-load-env-vars.html | 277 ------
archive_docs/v3/imp-x-config-toml.html | 373 -------
.../v3/imp_x-import_app_resources.html | 328 -------
archive_docs/v3/imp_x-import_blueprint.html | 343 -------
archive_docs/v3/imp_x-import_blueprints.html | 295 ------
archive_docs/v3/imp_x-import_models.html | 318 ------
archive_docs/v3/imp_x-init_app-init.html | 278 ------
archive_docs/v3/imp_x-init_session.html | 287 ------
archive_docs/v3/imp_x-model.html | 294 ------
archive_docs/v3/index.html | 336 -------
archive_docs/v3/static/Flask-Imp-Medium.png | Bin 7987 -> 0 bytes
.../v3/static/android-chrome-192x192.png | Bin 15163 -> 0 bytes
.../v3/static/android-chrome-256x256.png | Bin 20999 -> 0 bytes
.../v3/static/android-chrome-96x96.png | Bin 6119 -> 0 bytes
archive_docs/v3/static/apple-touch-icon.png | Bin 13882 -> 0 bytes
archive_docs/v3/static/browserconfig.xml | 9 -
archive_docs/v3/static/favicon-16x16.png | Bin 1210 -> 0 bytes
archive_docs/v3/static/favicon-32x32.png | Bin 1873 -> 0 bytes
archive_docs/v3/static/favicon.ico | Bin 15086 -> 0 bytes
archive_docs/v3/static/mstile-150x150.png | Bin 9755 -> 0 bytes
.../v3/static/pygments.emacs-dull.css | 69 --
archive_docs/v3/static/safari-pinned-tab.svg | 17 -
archive_docs/v3/static/site.webmanifest | 19 -
archive_docs/v3/static/water.css | 929 ------------------
archive_docs/v4/blueprint-config-x.html | 370 -------
archive_docs/v4/blueprint-init.html | 262 -----
archive_docs/v4/blueprint-introduction.html | 316 ------
.../v4/blueprint_x-import_models.html | 308 ------
.../blueprint_x-import_nested_blueprint.html | 303 ------
.../blueprint_x-import_nested_blueprints.html | 296 ------
.../v4/blueprint_x-import_resources.html | 292 ------
archive_docs/v4/blueprint_x-init_session.html | 264 -----
archive_docs/v4/blueprint_x-tmpl.html | 285 ------
.../v4/cli_commands-flask-imp_blueprint.html | 328 -------
.../v4/cli_commands-flask-imp_init.html | 453 ---------
.../flask_imp_auth-authenticate_password.html | 297 ------
.../v4/flask_imp_auth-encrypt_password.html | 289 ------
..._auth-generate_alphanumeric_validator.html | 265 -----
.../flask_imp_auth-generate_csrf_token.html | 266 -----
...ask_imp_auth-generate_email_validator.html | 268 -----
...k_imp_auth-generate_numeric_validator.html | 266 -----
.../v4/flask_imp_auth-generate_password.html | 266 -----
.../flask_imp_auth-generate_private_key.html | 280 ------
.../v4/flask_imp_auth-generate_salt.html | 283 ------
...flask_imp_auth-is_email_address_valid.html | 280 ------
.../v4/flask_imp_auth-is_username_valid.html | 289 ------
.../flask_imp_security-api_login_check.html | 281 ------
.../v4/flask_imp_security-include_csrf.html | 285 ------
.../v4/flask_imp_security-login_check.html | 298 ------
...lask_imp_security-pass_function_check.html | 346 -------
.../flask_imp_security-permission_check.html | 291 ------
archive_docs/v4/imp-config-x.html | 488 ---------
archive_docs/v4/imp-introduction.html | 312 ------
.../v4/imp_x-import_app_resources.html | 324 ------
archive_docs/v4/imp_x-import_blueprint.html | 339 -------
archive_docs/v4/imp_x-import_blueprints.html | 291 ------
archive_docs/v4/imp_x-import_models.html | 314 ------
archive_docs/v4/imp_x-init_app-init.html | 274 ------
archive_docs/v4/imp_x-init_session.html | 283 ------
archive_docs/v4/imp_x-model.html | 290 ------
archive_docs/v4/index.html | 414 --------
archive_docs/v4/static/Flask-Imp-Medium.png | Bin 7987 -> 0 bytes
.../v4/static/android-chrome-192x192.png | Bin 15163 -> 0 bytes
.../v4/static/android-chrome-256x256.png | Bin 20999 -> 0 bytes
.../v4/static/android-chrome-96x96.png | Bin 6119 -> 0 bytes
archive_docs/v4/static/apple-touch-icon.png | Bin 13882 -> 0 bytes
archive_docs/v4/static/browserconfig.xml | 9 -
archive_docs/v4/static/favicon-16x16.png | Bin 1210 -> 0 bytes
archive_docs/v4/static/favicon-32x32.png | Bin 1873 -> 0 bytes
archive_docs/v4/static/favicon.ico | Bin 15086 -> 0 bytes
archive_docs/v4/static/mstile-150x150.png | Bin 9755 -> 0 bytes
.../v4/static/pygments.emacs-dull.css | 69 --
archive_docs/v4/static/safari-pinned-tab.svg | 17 -
archive_docs/v4/static/site.webmanifest | 19 -
archive_docs/v4/static/water.css | 929 ------------------
.../v5/cli_commands-flask-imp_blueprint.html | 330 -------
.../v5/cli_commands-flask-imp_init.html | 427 --------
.../flask_imp_auth-authenticate_password.html | 303 ------
.../v5/flask_imp_auth-encrypt_password.html | 295 ------
..._auth-generate_alphanumeric_validator.html | 271 -----
.../flask_imp_auth-generate_csrf_token.html | 272 -----
...ask_imp_auth-generate_email_validator.html | 274 ------
...k_imp_auth-generate_numeric_validator.html | 272 -----
.../v5/flask_imp_auth-generate_password.html | 272 -----
.../flask_imp_auth-generate_private_key.html | 286 ------
.../v5/flask_imp_auth-generate_salt.html | 289 ------
...flask_imp_auth-is_email_address_valid.html | 286 ------
.../v5/flask_imp_auth-is_username_valid.html | 295 ------
.../v5/flask_imp_config-databaseconfig.html | 281 ------
.../v5/flask_imp_config-flaskconfig.html | 306 ------
.../flask_imp_config-impblueprintconfig.html | 284 ------
.../v5/flask_imp_config-impconfig.html | 298 ------
.../flask_imp_config-sqldatabaseconfig.html | 278 ------
...flask_imp_config-sqlitedatabaseconfig.html | 275 ------
.../flask_imp_security-api_login_check.html | 287 ------
.../v5/flask_imp_security-include_csrf.html | 291 ------
.../v5/flask_imp_security-login_check.html | 304 ------
...lask_imp_security-pass_function_check.html | 352 -------
.../flask_imp_security-permission_check.html | 297 ------
archive_docs/v5/imp-import_app_resources.html | 330 -------
archive_docs/v5/imp-import_blueprint.html | 350 -------
archive_docs/v5/imp-import_blueprints.html | 297 ------
archive_docs/v5/imp-import_models.html | 320 ------
archive_docs/v5/imp-init_app-init.html | 274 ------
archive_docs/v5/imp-init_session.html | 289 ------
archive_docs/v5/imp-introduction.html | 329 -------
archive_docs/v5/imp-model.html | 296 ------
.../v5/impblueprint-import_models.html | 322 ------
.../impblueprint-import_nested_blueprint.html | 317 ------
...impblueprint-import_nested_blueprints.html | 303 ------
.../v5/impblueprint-import_resources.html | 302 ------
archive_docs/v5/impblueprint-init.html | 268 -----
.../v5/impblueprint-introduction.html | 317 ------
archive_docs/v5/impblueprint-tmpl.html | 290 ------
archive_docs/v5/index.html | 343 -------
archive_docs/v5/static/Flask-Imp-Medium.png | Bin 7987 -> 0 bytes
.../v5/static/android-chrome-192x192.png | Bin 15163 -> 0 bytes
.../v5/static/android-chrome-256x256.png | Bin 20999 -> 0 bytes
.../v5/static/android-chrome-96x96.png | Bin 6119 -> 0 bytes
archive_docs/v5/static/apple-touch-icon.png | Bin 13882 -> 0 bytes
archive_docs/v5/static/browserconfig.xml | 9 -
archive_docs/v5/static/favicon-16x16.png | Bin 1210 -> 0 bytes
archive_docs/v5/static/favicon-32x32.png | Bin 1873 -> 0 bytes
archive_docs/v5/static/favicon.ico | Bin 15086 -> 0 bytes
archive_docs/v5/static/mstile-150x150.png | Bin 9755 -> 0 bytes
.../v5/static/pygments.emacs-dull.css | 69 --
archive_docs/v5/static/safari-pinned-tab.svg | 17 -
archive_docs/v5/static/site.webmanifest | 19 -
archive_docs/v5/static/water.css | 929 ------------------
287 files changed, 46202 deletions(-)
delete mode 100644 archive_docs/__init__.py
delete mode 100644 archive_docs/_md/v3/Blueprint-Introduction.md
delete mode 100644 archive_docs/_md/v3/Blueprint-config-toml.md
delete mode 100644 archive_docs/_md/v3/Blueprint-init.md
delete mode 100644 archive_docs/_md/v3/Blueprint_x-import_models.md
delete mode 100644 archive_docs/_md/v3/Blueprint_x-import_nested_blueprint.md
delete mode 100644 archive_docs/_md/v3/Blueprint_x-import_nested_blueprints.md
delete mode 100644 archive_docs/_md/v3/Blueprint_x-import_resources.md
delete mode 100644 archive_docs/_md/v3/Blueprint_x-init_session.md
delete mode 100644 archive_docs/_md/v3/Blueprint_x-tmpl.md
delete mode 100644 archive_docs/_md/v3/CLI Commands-flask-imp blueprint.md
delete mode 100644 archive_docs/_md/v3/CLI Commands-flask-imp init.md
delete mode 100644 archive_docs/_md/v3/Imp-Introduction.md
delete mode 100644 archive_docs/_md/v3/Imp-load-env-vars.md
delete mode 100644 archive_docs/_md/v3/Imp-x-config-toml.md
delete mode 100644 archive_docs/_md/v3/Imp_x-import_app_resources.md
delete mode 100644 archive_docs/_md/v3/Imp_x-import_blueprint.md
delete mode 100644 archive_docs/_md/v3/Imp_x-import_blueprints.md
delete mode 100644 archive_docs/_md/v3/Imp_x-import_models.md
delete mode 100644 archive_docs/_md/v3/Imp_x-init_app-init.md
delete mode 100644 archive_docs/_md/v3/Imp_x-init_session.md
delete mode 100644 archive_docs/_md/v3/Imp_x-model.md
delete mode 100644 archive_docs/_md/v3/__index__.md
delete mode 100644 archive_docs/_md/v3/__menu__.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-authenticate_password.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-encrypt_password.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_password.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_private_key.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-generate_salt.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md
delete mode 100644 archive_docs/_md/v3/flask_imp_auth-is_username_valid.md
delete mode 100644 archive_docs/_md/v3/flask_imp_security-api_login_check.md
delete mode 100644 archive_docs/_md/v3/flask_imp_security-include_csrf.md
delete mode 100644 archive_docs/_md/v3/flask_imp_security-login_check.md
delete mode 100644 archive_docs/_md/v3/flask_imp_security-pass_function_check.md
delete mode 100644 archive_docs/_md/v3/flask_imp_security-permission_check.md
delete mode 100644 archive_docs/_md/v4/Blueprint-Introduction.md
delete mode 100644 archive_docs/_md/v4/Blueprint-config-x.md
delete mode 100644 archive_docs/_md/v4/Blueprint-init.md
delete mode 100644 archive_docs/_md/v4/Blueprint_x-import_models.md
delete mode 100644 archive_docs/_md/v4/Blueprint_x-import_nested_blueprint.md
delete mode 100644 archive_docs/_md/v4/Blueprint_x-import_nested_blueprints.md
delete mode 100644 archive_docs/_md/v4/Blueprint_x-import_resources.md
delete mode 100644 archive_docs/_md/v4/Blueprint_x-init_session.md
delete mode 100644 archive_docs/_md/v4/Blueprint_x-tmpl.md
delete mode 100644 archive_docs/_md/v4/CLI Commands-flask-imp blueprint.md
delete mode 100644 archive_docs/_md/v4/CLI Commands-flask-imp init.md
delete mode 100644 archive_docs/_md/v4/Imp-Introduction.md
delete mode 100644 archive_docs/_md/v4/Imp-config-x.md
delete mode 100644 archive_docs/_md/v4/Imp_x-import_app_resources.md
delete mode 100644 archive_docs/_md/v4/Imp_x-import_blueprint.md
delete mode 100644 archive_docs/_md/v4/Imp_x-import_blueprints.md
delete mode 100644 archive_docs/_md/v4/Imp_x-import_models.md
delete mode 100644 archive_docs/_md/v4/Imp_x-init_app-init.md
delete mode 100644 archive_docs/_md/v4/Imp_x-init_session.md
delete mode 100644 archive_docs/_md/v4/Imp_x-model.md
delete mode 100644 archive_docs/_md/v4/__index__.md
delete mode 100644 archive_docs/_md/v4/__menu__.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-authenticate_password.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-encrypt_password.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_password.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_private_key.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-generate_salt.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md
delete mode 100644 archive_docs/_md/v4/flask_imp_auth-is_username_valid.md
delete mode 100644 archive_docs/_md/v4/flask_imp_security-api_login_check.md
delete mode 100644 archive_docs/_md/v4/flask_imp_security-include_csrf.md
delete mode 100644 archive_docs/_md/v4/flask_imp_security-login_check.md
delete mode 100644 archive_docs/_md/v4/flask_imp_security-pass_function_check.md
delete mode 100644 archive_docs/_md/v4/flask_imp_security-permission_check.md
delete mode 100644 archive_docs/_md/v5/CLI Commands-flask-imp blueprint.md
delete mode 100644 archive_docs/_md/v5/CLI Commands-flask-imp init.md
delete mode 100644 archive_docs/_md/v5/Imp-Introduction.md
delete mode 100644 archive_docs/_md/v5/Imp-import_app_resources.md
delete mode 100644 archive_docs/_md/v5/Imp-import_blueprint.md
delete mode 100644 archive_docs/_md/v5/Imp-import_blueprints.md
delete mode 100644 archive_docs/_md/v5/Imp-import_models.md
delete mode 100644 archive_docs/_md/v5/Imp-init_app-init.md
delete mode 100644 archive_docs/_md/v5/Imp-init_session.md
delete mode 100644 archive_docs/_md/v5/Imp-model.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-Introduction.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-import_models.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-import_nested_blueprint.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-import_nested_blueprints.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-import_resources.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-init.md
delete mode 100644 archive_docs/_md/v5/ImpBlueprint-tmpl.md
delete mode 100644 archive_docs/_md/v5/__index__.md
delete mode 100644 archive_docs/_md/v5/__menu__.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-authenticate_password.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-encrypt_password.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_password.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_private_key.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-generate_salt.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md
delete mode 100644 archive_docs/_md/v5/flask_imp_auth-is_username_valid.md
delete mode 100644 archive_docs/_md/v5/flask_imp_config-databaseconfig.md
delete mode 100644 archive_docs/_md/v5/flask_imp_config-flaskconfig.md
delete mode 100644 archive_docs/_md/v5/flask_imp_config-impblueprintconfig.md
delete mode 100644 archive_docs/_md/v5/flask_imp_config-impconfig.md
delete mode 100644 archive_docs/_md/v5/flask_imp_config-sqldatabaseconfig.md
delete mode 100644 archive_docs/_md/v5/flask_imp_config-sqlitedatabaseconfig.md
delete mode 100644 archive_docs/_md/v5/flask_imp_security-api_login_check.md
delete mode 100644 archive_docs/_md/v5/flask_imp_security-include_csrf.md
delete mode 100644 archive_docs/_md/v5/flask_imp_security-login_check.md
delete mode 100644 archive_docs/_md/v5/flask_imp_security-pass_function_check.md
delete mode 100644 archive_docs/_md/v5/flask_imp_security-permission_check.md
delete mode 100644 archive_docs/_ssg/__init__.py
delete mode 100644 archive_docs/_ssg/compiler.py
delete mode 100644 archive_docs/_ssg/exceptions.py
delete mode 100644 archive_docs/_ssg/helpers.py
delete mode 100644 archive_docs/_ssg/render_engines.py
delete mode 100644 archive_docs/_templates/__main__.html
delete mode 100644 archive_docs/_templates/__menu__.html
delete mode 100644 archive_docs/_templates/index.html
delete mode 100644 archive_docs/_templates/main_index.html
delete mode 100644 archive_docs/config.py
delete mode 100644 archive_docs/index.html
delete mode 100644 archive_docs/v3/blueprint-config-toml.html
delete mode 100644 archive_docs/v3/blueprint-init.html
delete mode 100644 archive_docs/v3/blueprint-introduction.html
delete mode 100644 archive_docs/v3/blueprint_x-import_models.html
delete mode 100644 archive_docs/v3/blueprint_x-import_nested_blueprint.html
delete mode 100644 archive_docs/v3/blueprint_x-import_nested_blueprints.html
delete mode 100644 archive_docs/v3/blueprint_x-import_resources.html
delete mode 100644 archive_docs/v3/blueprint_x-init_session.html
delete mode 100644 archive_docs/v3/blueprint_x-tmpl.html
delete mode 100644 archive_docs/v3/cli_commands-flask-imp_blueprint.html
delete mode 100644 archive_docs/v3/cli_commands-flask-imp_init.html
delete mode 100644 archive_docs/v3/flask_imp_auth-authenticate_password.html
delete mode 100644 archive_docs/v3/flask_imp_auth-encrypt_password.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_alphanumeric_validator.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_csrf_token.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_email_validator.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_numeric_validator.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_password.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_private_key.html
delete mode 100644 archive_docs/v3/flask_imp_auth-generate_salt.html
delete mode 100644 archive_docs/v3/flask_imp_auth-is_email_address_valid.html
delete mode 100644 archive_docs/v3/flask_imp_auth-is_username_valid.html
delete mode 100644 archive_docs/v3/flask_imp_security-api_login_check.html
delete mode 100644 archive_docs/v3/flask_imp_security-include_csrf.html
delete mode 100644 archive_docs/v3/flask_imp_security-login_check.html
delete mode 100644 archive_docs/v3/flask_imp_security-pass_function_check.html
delete mode 100644 archive_docs/v3/flask_imp_security-permission_check.html
delete mode 100644 archive_docs/v3/imp-introduction.html
delete mode 100644 archive_docs/v3/imp-load-env-vars.html
delete mode 100644 archive_docs/v3/imp-x-config-toml.html
delete mode 100644 archive_docs/v3/imp_x-import_app_resources.html
delete mode 100644 archive_docs/v3/imp_x-import_blueprint.html
delete mode 100644 archive_docs/v3/imp_x-import_blueprints.html
delete mode 100644 archive_docs/v3/imp_x-import_models.html
delete mode 100644 archive_docs/v3/imp_x-init_app-init.html
delete mode 100644 archive_docs/v3/imp_x-init_session.html
delete mode 100644 archive_docs/v3/imp_x-model.html
delete mode 100644 archive_docs/v3/index.html
delete mode 100644 archive_docs/v3/static/Flask-Imp-Medium.png
delete mode 100644 archive_docs/v3/static/android-chrome-192x192.png
delete mode 100644 archive_docs/v3/static/android-chrome-256x256.png
delete mode 100644 archive_docs/v3/static/android-chrome-96x96.png
delete mode 100644 archive_docs/v3/static/apple-touch-icon.png
delete mode 100644 archive_docs/v3/static/browserconfig.xml
delete mode 100644 archive_docs/v3/static/favicon-16x16.png
delete mode 100644 archive_docs/v3/static/favicon-32x32.png
delete mode 100644 archive_docs/v3/static/favicon.ico
delete mode 100644 archive_docs/v3/static/mstile-150x150.png
delete mode 100644 archive_docs/v3/static/pygments.emacs-dull.css
delete mode 100644 archive_docs/v3/static/safari-pinned-tab.svg
delete mode 100644 archive_docs/v3/static/site.webmanifest
delete mode 100644 archive_docs/v3/static/water.css
delete mode 100644 archive_docs/v4/blueprint-config-x.html
delete mode 100644 archive_docs/v4/blueprint-init.html
delete mode 100644 archive_docs/v4/blueprint-introduction.html
delete mode 100644 archive_docs/v4/blueprint_x-import_models.html
delete mode 100644 archive_docs/v4/blueprint_x-import_nested_blueprint.html
delete mode 100644 archive_docs/v4/blueprint_x-import_nested_blueprints.html
delete mode 100644 archive_docs/v4/blueprint_x-import_resources.html
delete mode 100644 archive_docs/v4/blueprint_x-init_session.html
delete mode 100644 archive_docs/v4/blueprint_x-tmpl.html
delete mode 100644 archive_docs/v4/cli_commands-flask-imp_blueprint.html
delete mode 100644 archive_docs/v4/cli_commands-flask-imp_init.html
delete mode 100644 archive_docs/v4/flask_imp_auth-authenticate_password.html
delete mode 100644 archive_docs/v4/flask_imp_auth-encrypt_password.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_alphanumeric_validator.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_csrf_token.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_email_validator.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_numeric_validator.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_password.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_private_key.html
delete mode 100644 archive_docs/v4/flask_imp_auth-generate_salt.html
delete mode 100644 archive_docs/v4/flask_imp_auth-is_email_address_valid.html
delete mode 100644 archive_docs/v4/flask_imp_auth-is_username_valid.html
delete mode 100644 archive_docs/v4/flask_imp_security-api_login_check.html
delete mode 100644 archive_docs/v4/flask_imp_security-include_csrf.html
delete mode 100644 archive_docs/v4/flask_imp_security-login_check.html
delete mode 100644 archive_docs/v4/flask_imp_security-pass_function_check.html
delete mode 100644 archive_docs/v4/flask_imp_security-permission_check.html
delete mode 100644 archive_docs/v4/imp-config-x.html
delete mode 100644 archive_docs/v4/imp-introduction.html
delete mode 100644 archive_docs/v4/imp_x-import_app_resources.html
delete mode 100644 archive_docs/v4/imp_x-import_blueprint.html
delete mode 100644 archive_docs/v4/imp_x-import_blueprints.html
delete mode 100644 archive_docs/v4/imp_x-import_models.html
delete mode 100644 archive_docs/v4/imp_x-init_app-init.html
delete mode 100644 archive_docs/v4/imp_x-init_session.html
delete mode 100644 archive_docs/v4/imp_x-model.html
delete mode 100644 archive_docs/v4/index.html
delete mode 100644 archive_docs/v4/static/Flask-Imp-Medium.png
delete mode 100644 archive_docs/v4/static/android-chrome-192x192.png
delete mode 100644 archive_docs/v4/static/android-chrome-256x256.png
delete mode 100644 archive_docs/v4/static/android-chrome-96x96.png
delete mode 100644 archive_docs/v4/static/apple-touch-icon.png
delete mode 100644 archive_docs/v4/static/browserconfig.xml
delete mode 100644 archive_docs/v4/static/favicon-16x16.png
delete mode 100644 archive_docs/v4/static/favicon-32x32.png
delete mode 100644 archive_docs/v4/static/favicon.ico
delete mode 100644 archive_docs/v4/static/mstile-150x150.png
delete mode 100644 archive_docs/v4/static/pygments.emacs-dull.css
delete mode 100644 archive_docs/v4/static/safari-pinned-tab.svg
delete mode 100644 archive_docs/v4/static/site.webmanifest
delete mode 100644 archive_docs/v4/static/water.css
delete mode 100644 archive_docs/v5/cli_commands-flask-imp_blueprint.html
delete mode 100644 archive_docs/v5/cli_commands-flask-imp_init.html
delete mode 100644 archive_docs/v5/flask_imp_auth-authenticate_password.html
delete mode 100644 archive_docs/v5/flask_imp_auth-encrypt_password.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_alphanumeric_validator.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_csrf_token.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_email_validator.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_numeric_validator.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_password.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_private_key.html
delete mode 100644 archive_docs/v5/flask_imp_auth-generate_salt.html
delete mode 100644 archive_docs/v5/flask_imp_auth-is_email_address_valid.html
delete mode 100644 archive_docs/v5/flask_imp_auth-is_username_valid.html
delete mode 100644 archive_docs/v5/flask_imp_config-databaseconfig.html
delete mode 100644 archive_docs/v5/flask_imp_config-flaskconfig.html
delete mode 100644 archive_docs/v5/flask_imp_config-impblueprintconfig.html
delete mode 100644 archive_docs/v5/flask_imp_config-impconfig.html
delete mode 100644 archive_docs/v5/flask_imp_config-sqldatabaseconfig.html
delete mode 100644 archive_docs/v5/flask_imp_config-sqlitedatabaseconfig.html
delete mode 100644 archive_docs/v5/flask_imp_security-api_login_check.html
delete mode 100644 archive_docs/v5/flask_imp_security-include_csrf.html
delete mode 100644 archive_docs/v5/flask_imp_security-login_check.html
delete mode 100644 archive_docs/v5/flask_imp_security-pass_function_check.html
delete mode 100644 archive_docs/v5/flask_imp_security-permission_check.html
delete mode 100644 archive_docs/v5/imp-import_app_resources.html
delete mode 100644 archive_docs/v5/imp-import_blueprint.html
delete mode 100644 archive_docs/v5/imp-import_blueprints.html
delete mode 100644 archive_docs/v5/imp-import_models.html
delete mode 100644 archive_docs/v5/imp-init_app-init.html
delete mode 100644 archive_docs/v5/imp-init_session.html
delete mode 100644 archive_docs/v5/imp-introduction.html
delete mode 100644 archive_docs/v5/imp-model.html
delete mode 100644 archive_docs/v5/impblueprint-import_models.html
delete mode 100644 archive_docs/v5/impblueprint-import_nested_blueprint.html
delete mode 100644 archive_docs/v5/impblueprint-import_nested_blueprints.html
delete mode 100644 archive_docs/v5/impblueprint-import_resources.html
delete mode 100644 archive_docs/v5/impblueprint-init.html
delete mode 100644 archive_docs/v5/impblueprint-introduction.html
delete mode 100644 archive_docs/v5/impblueprint-tmpl.html
delete mode 100644 archive_docs/v5/index.html
delete mode 100644 archive_docs/v5/static/Flask-Imp-Medium.png
delete mode 100644 archive_docs/v5/static/android-chrome-192x192.png
delete mode 100644 archive_docs/v5/static/android-chrome-256x256.png
delete mode 100644 archive_docs/v5/static/android-chrome-96x96.png
delete mode 100644 archive_docs/v5/static/apple-touch-icon.png
delete mode 100644 archive_docs/v5/static/browserconfig.xml
delete mode 100644 archive_docs/v5/static/favicon-16x16.png
delete mode 100644 archive_docs/v5/static/favicon-32x32.png
delete mode 100644 archive_docs/v5/static/favicon.ico
delete mode 100644 archive_docs/v5/static/mstile-150x150.png
delete mode 100644 archive_docs/v5/static/pygments.emacs-dull.css
delete mode 100644 archive_docs/v5/static/safari-pinned-tab.svg
delete mode 100644 archive_docs/v5/static/site.webmanifest
delete mode 100644 archive_docs/v5/static/water.css
diff --git a/archive_docs/__init__.py b/archive_docs/__init__.py
deleted file mode 100644
index 3e4c634d..00000000
--- a/archive_docs/__init__.py
+++ /dev/null
@@ -1,60 +0,0 @@
-from pathlib import Path
-from time import sleep
-
-import click
-from flask import Flask
-
-from .config import Config
-from ._ssg import compiler
-
-cwd = Path(__file__).parent
-
-
-def create_app():
- app = Flask(__name__)
- app.template_folder = "_templates"
-
- doc_path = Path(cwd / Config.latest)
- markdown_path = Path(cwd / "_md" / Config.latest)
-
- @app.cli.command("compile")
- @click.option("--watch", is_flag=True, help="Watch for file changes")
- def compile_site(watch):
- if watch:
- watching_files = {}
-
- def change_loop():
- change = False
- updated = []
- for file in markdown_path.glob("**/*.md"):
- if file not in watching_files:
- watching_files[file] = file.stat().st_mtime
- updated.append(file)
- change = True
- else:
- if file.stat().st_mtime > watching_files[file]:
- watching_files[file] = file.stat().st_mtime
- updated.append(file)
- change = True
-
- if change:
- print("Update detected, recompiling...")
- for file in updated:
- print(f" - {file}")
-
- compiler(doc_path, markdown_path)
-
- print("Watching for changes...")
-
- while True:
- change_loop()
- sleep(1)
-
- else:
- compiler(doc_path, markdown_path)
-
- @app.route("/")
- def index():
- return "To use run the following command: flask --app gdocs compile"
-
- return app
diff --git a/archive_docs/_md/v3/Blueprint-Introduction.md b/archive_docs/_md/v3/Blueprint-Introduction.md
deleted file mode 100644
index 919acb9b..00000000
--- a/archive_docs/_md/v3/Blueprint-Introduction.md
+++ /dev/null
@@ -1,77 +0,0 @@
-```
-Menu = Blueprint/Introduction
-Title = Flask-Imp Blueprint Introduction
-```
-
-The Flask-Imp Blueprint inherits from the Flask Blueprint class, then adds some additional methods to allow for auto
-importing of models, resources and other nested blueprints.
-
-The Flask-Imp Blueprint reads configuration from a config.toml file, which is located in the same directory as the
-`__init__.py` file.
-
-Here's an example of a Flask-Imp Blueprint structure:
-
-```text
-www/
-├── nested_blueprints/
-│ ├── blueprint_one/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ │ └── config.toml
-│ └── blueprint_two/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.toml
-├── standalone_nested_blueprint/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.toml
-├── models/
-│ └── ...
-├── routes/
-│ └── index.py
-├── static/
-│ └── ...
-├── templates/
-│ └── www/
-│ └── index.html
-├── __init__.py
-└── config.toml
-```
-
-File: `__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_models("models")
-bp.import_nested_blueprints("nested_blueprints")
-bp.import_nested_blueprint("standalone_nested_blueprint")
-
-
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
-
-That `config.toml` file is loaded during the `__init__` method of the Blueprint class.
-To see more about the config file see: [Blueprint / config.toml](blueprint-config-toml.html)
-
-`import_resources` method will walk one level deep into the `routes` folder, and import all `.py` files as modules.
-For more information see: [Blueprint.x / import_resources](blueprint_x-import_resources.html)
-
-`import_models` works the same as `imp.import_models`, it will look for instances of `db.Model` and import them. These
-will also be available in the model lookup method `imp.model`.
-For more information see: [Imp.x / import_models](imp_x-import_models.html)
-
-`import_nested_blueprints` will do the same as `imp.import_blueprints`, but will register the blueprints found as
-nested to the current blueprint. For example `www.blueprint_one.index`
-
-`import_nested_blueprint` behaves the same as `import_nested_blueprints`, but will only import a single blueprint.
-
-`bp.init_session` will load the session variables from the config file into the session object. For more information
-see: [Blueprint.x / init_session](blueprint_x-init_session.html) and
-[Blueprint / config.toml](blueprint-config-toml.html)
diff --git a/archive_docs/_md/v3/Blueprint-config-toml.md b/archive_docs/_md/v3/Blueprint-config-toml.md
deleted file mode 100644
index 29de4a68..00000000
--- a/archive_docs/_md/v3/Blueprint-config-toml.md
+++ /dev/null
@@ -1,152 +0,0 @@
-```
-Menu = Blueprint/config.toml
-Title = The Flask-Imp Blueprint Config File
-```
-
-The Flask-Imp Blueprint will load configuration from a `config.toml` file, which is located in the same directory as the
-`__init__.py` file.
-
-File: `config.toml`
-
-```toml
-enabled = "yes"
-
-[settings]
-url_prefix = ""
-subdomain = ""
-url_defaults = { }
-static_folder = ""
-template_folder = ""
-static_url_path = ""
-#root_path = ""
-#cli_group = ""
-
-[session]
-var = ""
-
-# Set ENABLED to true to allow the blueprint
-# to create a database bind, change settings accordingly.
-[DATABASE_BIND]
-ENABLED = true
-DIALECT = "sqlite"
-DATABASE_NAME = "example"
-LOCATION = ""
-PORT = ""
-USERNAME = ""
-PASSWORD = ""
-```
-
-This config reflects the args that are passed to a regular Flask Blueprint class, the addition of the ability to
-enable/disable the Blueprint, and set session variables.
-
-For more information about the args of a regular Flask Blueprint see:
-[Flask docs (Blueprint)](https://flask.palletsprojects.com/en/3.0.x/api/#flask.Blueprint)
-
-You can also allow the blueprint to create a database bind, by setting `ENABLED` to `true` in the `DATABASE_BIND`
-section.
-
-This will add to the Flask app's `SQLALCHEMY_BINDS` config variable, and allows blueprints to be more modular
-with their database connections.
-
-Including the attribute `__bind_key__` in the blueprint's model(s) will match the model to the database bind.
-
-```python
-class User(db.Model):
- __bind_key__ = "example"
- ...
-```
-
-##### Example of advance use case for blueprint config files:
-
-```text
-testing_blueprint/
-├── routes/
-│ └── index.py
-├── static/
-│ └── ...
-├── templates/
-│ └── www/
-│ └── index.html
-├── __init__.py
-├── pro_config.py
-└── dev_config.toml
-```
-
-```python
-from app import app
-from flask_imp import Blueprint
-
-bp = Blueprint(
- __name__,
- config_file="dev_config.toml" if app.config["DEBUG"] else "pro_config.py"
-)
-
-bp.import_resources("routes")
-
-
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
-
-File: `pro_config.py`
-
-```toml
-enabled = "no"
-
-[settings]
-#url_prefix = ""
-#subdomain = ""
-#url_defaults = { }
-#static_folder = ""
-#template_folder = ""
-#static_url_path = ""
-#root_path = ""
-#cli_group = ""
-
-[session]
-#var = ""
-
-# Set ENABLED to true to allow the blueprint
-# to create a database bind, change settings accordingly.
-[DATABASE_BIND]
-ENABLED = false
-DIALECT = "sqlite"
-DATABASE_NAME = "example"
-LOCATION = ""
-PORT = ""
-USERNAME = ""
-PASSWORD = ""
-```
-
-File: `dev_config.py`
-
-```toml
-enabled = "yes"
-
-[settings]
-url_prefix = "/testing"
-#subdomain = ""
-#url_defaults = { }
-static_folder = "static"
-template_folder = "templates"
-#static_url_path = ""
-#root_path = ""
-#cli_group = ""
-
-[session]
-#var = ""
-
-# Set ENABLED to true to allow the blueprint
-# to create a database bind, change settings accordingly.
-[DATABASE_BIND]
-ENABLED = true
-DIALECT = "sqlite"
-DATABASE_NAME = "example"
-LOCATION = ""
-PORT = ""
-USERNAME = ""
-PASSWORD = ""
-```
-
-In the example above, the `testing_blueprint` will only be enabled if the Flask app is running in debug mode.
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Blueprint-init.md b/archive_docs/_md/v3/Blueprint-init.md
deleted file mode 100644
index 78d60d5f..00000000
--- a/archive_docs/_md/v3/Blueprint-init.md
+++ /dev/null
@@ -1,17 +0,0 @@
-```
-Menu = Blueprint.x/__init__
-Title = Flask-Imp Blueprint __init__
-```
-
-```python
-Blueprint(dunder_name: str, config_file: str = "config.toml") -> None
-```
-
----
-
-Initializes the Flask-Imp Blueprint.
-
-`dunder_name` should always be set to `__name__`
-
-`config_file` is the name of the config file to load.
-It will be loaded from the same directory as the `__init__.py` file.
diff --git a/archive_docs/_md/v3/Blueprint_x-import_models.md b/archive_docs/_md/v3/Blueprint_x-import_models.md
deleted file mode 100644
index d919ae65..00000000
--- a/archive_docs/_md/v3/Blueprint_x-import_models.md
+++ /dev/null
@@ -1,80 +0,0 @@
-```
-Menu = Blueprint.x/import_models
-Title = Blueprint.import_models
-```
-
-```python
-import_models(folder: str = "models") -> None
-```
-
----
-
-Will import all the models from the given folder relative to the Blueprint's root directory.
-
-Works the same as [Imp.x / import_models](imp_x-import_models.html) but relative to the Blueprint root.
-
-Blueprint models will also be available in the [Imp.x / model](imp_x-model.html) lookup.
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── animal_models.py
-│
-├── __init__.py
-└── config.toml
-```
-
-**or**
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── models/
-│ └── animals.py
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_models("animal_models.py")
-```
-
-**or**
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_models("models")
-```
-
-File: `my_blueprint/animal_models.py` or `my_blueprint/models/animals.py`
-
-```python
-from app import db
-
-
-class Animals(db.Model):
- animal_id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(64), index=True, unique=True)
- species = db.Column(db.String(64), index=True, unique=True)
-```
-
-
-
diff --git a/archive_docs/_md/v3/Blueprint_x-import_nested_blueprint.md b/archive_docs/_md/v3/Blueprint_x-import_nested_blueprint.md
deleted file mode 100644
index d8139c3d..00000000
--- a/archive_docs/_md/v3/Blueprint_x-import_nested_blueprint.md
+++ /dev/null
@@ -1,70 +0,0 @@
-```
-Menu = Blueprint.x/import_nested_blueprint
-Title = Blueprint.import_nested_blueprint
-```
-
-```python
-import_nested_blueprint(self, blueprint: str) -> None
-```
-
----
-
-Import a specified Flask-Imp or standard Flask Blueprint relative to the Blueprint root.
-
-Works the same as [Imp.x / import_blueprint](imp_x-import_blueprint.html) but relative to the Blueprint root.
-
-Blueprints that are imported this way will be scoped to the parent Blueprint that imported them.
-
-`url_for('my_blueprint.my_nested_blueprint.index')`
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── my_nested_blueprint/
-│ ├── routes/
-│ │ └── index.py
-│ ├── static/...
-│ ├── templates/...
-│ ├── __init__.py
-│ └── config.toml
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_nested_blueprint("my_nested_blueprint")
-```
-
-File: `my_blueprint/my_nested_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-```
-
-File: `my_blueprint/my_nested_blueprint/routes/index.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return render_template(bp.tmpl("index.html"))
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Blueprint_x-import_nested_blueprints.md b/archive_docs/_md/v3/Blueprint_x-import_nested_blueprints.md
deleted file mode 100644
index 16bdc2a7..00000000
--- a/archive_docs/_md/v3/Blueprint_x-import_nested_blueprints.md
+++ /dev/null
@@ -1,59 +0,0 @@
-```
-Menu = Blueprint.x/import_nested_blueprints
-Title = Blueprint.import_nested_blueprints
-```
-
-```python
-import_nested_blueprints(self, folder: str) -> None
-```
-
----
-
-Will import all the Blueprints from the given folder relative to the Blueprint's root directory.
-
-Uses [Blueprint.x / import_nested_blueprint](blueprint_x-import_nested_blueprint.html) to import blueprints from
-the specified folder.
-
-Blueprints that are imported this way will be scoped to the parent Blueprint that imported them.
-
-`url_for('my_blueprint.nested_bp_one.index')`
-
-`url_for('my_blueprint.nested_bp_two.index')`
-
-`url_for('my_blueprint.nested_bp_three.index')`
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── nested_blueprints/
-│ │
-│ ├── nested_bp_one/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ │ └── config.toml
-│ ├── nested_bp_two/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ │ └── config.toml
-│ └── nested_bp_three/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.toml
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_nested_blueprints("nested_blueprints")
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Blueprint_x-import_resources.md b/archive_docs/_md/v3/Blueprint_x-import_resources.md
deleted file mode 100644
index dc5043d9..00000000
--- a/archive_docs/_md/v3/Blueprint_x-import_resources.md
+++ /dev/null
@@ -1,53 +0,0 @@
-```
-Menu = Blueprint.x/import_resources
-Title = Blueprint.import_resources
-```
-
-```python
-import_resources(folder: str = "routes") -> None
-```
-
----
-
-Will import all the resources (cli, routes, filters, context_processors...) from the given folder relative to the
-Blueprint's root directory.
-
-```text
-my_blueprint
-├── user_routes
-│ ├── user_dashboard.py
-│ └── user_settings.py
-├── car_routes
-│ ├── car_dashboard.py
-│ └── car_settings.py
-├── static/...
-├── templates/
-│ └── my_blueprint/
-│ ├── user_dashboard.html
-│ └── ...
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("user_routes")
-bp.import_resources("car_routes")
-```
-
-File: `my_blueprint/user_routes/user_dashboard.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-@bp.route("/user-dashboard")
-def user_dashboard():
- return render_template(bp.tmpl("user_dashboard.html"))
-```
diff --git a/archive_docs/_md/v3/Blueprint_x-init_session.md b/archive_docs/_md/v3/Blueprint_x-init_session.md
deleted file mode 100644
index 5a6bd55f..00000000
--- a/archive_docs/_md/v3/Blueprint_x-init_session.md
+++ /dev/null
@@ -1,19 +0,0 @@
-```
-Menu = Blueprint.x/init_session
-Title = Blueprint.init_session
-```
-
-```python
-init_session() -> None
-```
-
----
-
-Has the same functionality as [Imp.x / init_session](imp_x-init_session.html) but loads session key values from the
-Blueprint's config file.
-
-```python
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Blueprint_x-tmpl.md b/archive_docs/_md/v3/Blueprint_x-tmpl.md
deleted file mode 100644
index dd23bed6..00000000
--- a/archive_docs/_md/v3/Blueprint_x-tmpl.md
+++ /dev/null
@@ -1,45 +0,0 @@
-```
-Menu = Blueprint.x/tmpl
-Title = Blueprint.tmpl
-```
-
-```python
-tmpl(template: str) -> str
-```
-
----
-
-Scopes the template lookup to the name of the blueprint (this takes from the `__name__` attribute of the Blueprint).
-
-Due to the way Flask templating works, and to avoid template name collisions.
-It is standard practice to place the name of the Blueprint in the template path,
-then to place any templates under that folder.
-
-```text
-my_blueprint/
-├── routes/
-│ └── index.py
-├── static/...
-│
-├── templates/
-│ └── my_blueprint/
-│ └── index.html
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/routes/index.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return render_template(bp.tmpl("index.html"))
-```
-
-`bp.tmpl("index.html")` will output `"my_blueprint/index.html"`.
diff --git a/archive_docs/_md/v3/CLI Commands-flask-imp blueprint.md b/archive_docs/_md/v3/CLI Commands-flask-imp blueprint.md
deleted file mode 100644
index 1b1d5347..00000000
--- a/archive_docs/_md/v3/CLI Commands-flask-imp blueprint.md
+++ /dev/null
@@ -1,90 +0,0 @@
-```
-Menu = CLI Commands/flask-imp blueprint
-Title = Generate a Flask-Imp Blueprint
-```
-
-Flask-Imp has its own type of blueprint. It can read some configuration from a toml file and has some extra methods for
-auto importing.
-
-```bash
-flask-imp blueprint --help
-```
-
-To generate a Flask-Imp blueprint, run the following command:
-
-```bash
-flask-imp blueprint
-```
-
-After running this command, you will be prompted to enter the location of where you want to create your blueprint:
-
-```text
-~ $ flask-imp blueprint
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]:
-```
-
-As detailed in the prompt, the creation of the blueprint is relative to the current working directory. So to create a
-blueprint in the folder `app/blueprints`, you would enter `app/blueprints` in the prompt.
-
-```text
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-```
-
-You will then be prompted to enter a name for your blueprint:
-
-```text
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-Name of the blueprint to create [my_new_blueprint]:
-```
-
-The default name is 'my_new_blueprint', we will change this to 'admin'
-
-```text
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-Name of the blueprint to create [my_new_blueprint]: admin
-```
-
-After creating your blueprint, the folder structure will look like this:
-
-```text
-app/
-├── blueprints
-│ └── admin
-│ ├── routes
-│ │ └── index.py
-│ │
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ │
-│ ├── templates
-│ │ └── www
-│ │ ├── extends
-│ │ │ └── main.html
-│ │ ├── includes
-│ │ │ ├── footer.html
-│ │ │ └── header.html
-│ │ └── index.html
-│ │
-│ ├── __init__.py
-│ └─── config.toml
-│
-...
-```
-
-This is a self-contained blueprint, so it has its own static, templates and routes folders. You can now navigate '
-/admin'
-
-You can streamline this process by specifying the name of the blueprint and the folder to create it in, like so:
-
-```bash
-flask-imp blueprint -n admin -f app/blueprints
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/CLI Commands-flask-imp init.md b/archive_docs/_md/v3/CLI Commands-flask-imp init.md
deleted file mode 100644
index 91b86e7f..00000000
--- a/archive_docs/_md/v3/CLI Commands-flask-imp init.md
+++ /dev/null
@@ -1,226 +0,0 @@
-```
-Menu = CLI Commands/flask-imp init
-Title = Initialising a Flask-Imp Project
-```
-
-Flask-Imp has a cli command that deploys a new ready-to-go project.
-This project is structured in a way to give you the best idea of
-how to use Flask-Imp.
-
-```bash
-flask-imp init --help
-```
-
-## Create a new project
-
-Make sure you are in the virtual environment, and at the root of your project folder, then run the following command:
-
-```bash
-flask-imp init
-```
-
-After running this command, you will be prompted to choose what type of app you want to deploy:
-
-```text
-~ $ flask-imp init
-What type of app would you like to create? (full, slim, minimal) [full]:
-```
-
-See below for the differences between the app types.
-
-After this, you will be prompted to enter a name for your app:
-
-```text
-~ $ flask-imp init
-What would you like to call your app? [app]:
-```
-
-'app' is the default name, so if you just press enter, your app will be called 'app'. You will then see this output:
-
-```text
-===================
-Flask app deployed!
-===================
-
-Your app has the default name of 'app'
-Flask will automatically look for this!
-Run: flask run --debug
-
-```
-
-If you called your app something other than 'app', like 'new' for example, you will see:
-
-```text
-===================
-Flask app deployed!
-===================
-
-Your app has the name of 'new'
-Run: flask --app new run --debug
-
-```
-
-As you can see from the output, it gives you instructions on how to start your app, depending on the name you gave it.
-
-You should see a new folder that has been given the name you specified in
-the `flask-imp init` command.
-
-### Additional options
-
-You can also specify a name for your app in the command itself, like so:
-
-```bash
-flask-imp init -n my_app
-```
-
-This will create a new app called 'my_app'.
-
-You can also deploy a slim app, that will have one blueprint and no models, like so:
-
-```bash
-flask-imp init -n my_app --slim
-```
-
-You can also deploy a minimal app, that will have no blueprints, models, or extensions, like so:
-
-```bash
-flask-imp init -n my_app --minimal
-```
-
-## init Folder structures
-
-### Full app
-
-`flask-imp init`:
-
-```text
-app/
-├── blueprints
-│ └── www
-│ ├── config.toml
-│ ├── __init__.py
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ └── templates
-│ └── www
-│ ├── extends
-│ │ └── main.html
-│ ├── includes
-│ │ ├── footer.html
-│ │ └── header.html
-│ └── index.html
-│
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── cli
-│ │ └── cli.py
-│ ├── context_processors
-│ │ └── context_processors.py
-│ ├── error_handlers
-│ │ └── error_handlers.py
-│ ├── filters
-│ │ └── filters.py
-│ ├── routes
-│ │ └── routes.py
-│ ├── static
-│ │ └── favicon.ico
-│ └── templates
-│ ├── errors
-│ │ ├── 400.html
-│ │ ├── 401.html
-│ │ ├── 403.html
-│ │ ├── 404.html
-│ │ ├── 405.html
-│ │ └── 500.html
-│ └── index.html
-│
-├── models
-│ ├── example_user_table.py
-│ └── __init__.py
-│
-├── __init__.py
-└── default.config.toml
-```
-
-### Slim app
-
-`flask-imp init --slim`:
-
-```text
-app/
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── cli
-│ │ └── cli.py
-│ ├── error_handlers
-│ │ └── error_handlers.py
-│ ├── static
-│ │ └── favicon.ico
-│ └── templates
-│ └── errors
-│ ├── 400.html
-│ ├── 401.html
-│ ├── 403.html
-│ ├── 404.html
-│ ├── 405.html
-│ └── 500.html
-│
-├── www
-│ ├── config.toml
-│ ├── __init__.py
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ └── templates
-│ └── www
-│ ├── extends
-│ │ └── main.html
-│ ├── includes
-│ │ ├── footer.html
-│ │ └── header.html
-│ └── index.html
-│
-├── __init__.py
-└── default.config.toml
-```
-
-### Minimal app
-
-`flask-imp init --minimal`:
-
-```text
-app/
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── favicon.ico
-│ ├── templates
-│ │ └── index.html
-│ └── routes.py
-│
-├── __init__.py
-└── default.config.toml
-```
diff --git a/archive_docs/_md/v3/Imp-Introduction.md b/archive_docs/_md/v3/Imp-Introduction.md
deleted file mode 100644
index e07c91f6..00000000
--- a/archive_docs/_md/v3/Imp-Introduction.md
+++ /dev/null
@@ -1,82 +0,0 @@
-```
-Menu = Imp/Introduction
-Title = Flask-Imp Introduction
-```
-
-Flask-Imp is a Flask extension that provides auto import methods for various Flask resources. It will import models,
-blueprints, and other resources from a Flask application. It uses the importlib module to achieve this.
-
-Flask-Imp favors the application factory pattern as a project structure, and is opinionated towards using only
-Blueprints. However, you can use Flask-Imp without using Blueprints.
-
-Here's an example of a standard Flask-Imp project structure:
-
-```text
-app/
-├── blueprints/
-│ ├── admin/...
-│ ├── api/...
-│ └── www/...
-├── resources/
-│ ├── filters/...
-│ ├── context_processors/...
-│ ├── static/...
-│ └── templates/...
-├── models/...
-├── default.config.toml
-└── __init__.py
-```
-
-Here's an example of the `app/__init__.py` file:
-
-```python
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-from flask_imp import Imp
-
-db = SQLAlchemy()
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
- db.init_app(app)
-
- imp.import_app_resources("resources")
- imp.import_models("models")
- imp.import_blueprints("blueprints")
-
- return app
-```
-
-During `imp.init_app` the `default.config.toml` file will load variables under `[FLASK]` into the Flask app config.
-It will also load variables under `[DATABASE]` into the Flask app config as `SQLALCHEMY_DATABASE_URI`.
-
-Values under `[SESSION]` can be loaded with:
-
-```python
-@app.before_request
-def before_request():
- imp._init_session()
-```
-
-See more about the config file here: [Imp / x.config.toml](imp-x-config-toml.html)
-
-`import_app_resources` will walk one level deep into the `resources` folder, and import all `.py` files as modules. It will
-also check for the existence of a `static` and `templates` folder, and register them with the Flask app.
-
-There is a couple of options for `import_app_resources` to control what
-is imported, see: [Imp.x / import_app_resources](imp_x-import_app_resources.html)
-
-`import_models` will import all Model classes from the specified file or folder. It will also place each model found
-into a lookup table that you can access via `imp.model`
-
-See more about how import_models and the lookup
-here: [Imp.x / import_models](imp_x-import_models.html) and [Imp.x / model](imp_x-model.html)
-
-`import_blueprints` expects a folder that contains many Blueprint as Python packages.
-It will check each blueprint folder's `__init__.py` file for an instance of a Flask Blueprint or a
-Flask-Imp Blueprint. That instant will then be registered with the Flask app.
-
-See more about how importing blueprints work here: [Blueprint / Introduction](blueprint-introduction.html)
diff --git a/archive_docs/_md/v3/Imp-load-env-vars.md b/archive_docs/_md/v3/Imp-load-env-vars.md
deleted file mode 100644
index 4b2548f6..00000000
--- a/archive_docs/_md/v3/Imp-load-env-vars.md
+++ /dev/null
@@ -1,30 +0,0 @@
-```
-Menu = Imp/Load Env Variables
-Title = Load Enviroment Variables into the Config File
-```
-
-`<>` markers can be used to find variables set in the environment. For example:
-
-**File: `default.config.toml`**
-```toml
-[FLASK]
-# ...
-
-ERROR_404_HELP = true
-SERVER_NAME = ""
-APPLICATION_ROOT = "/"
-
-# ...
-```
-
-`` will be replaced by the value of `FLASK_SERVER_NAME`
-
-**Development `.env`**
-```text
-FLASK_SERVER_NAME=localhost:5000
-```
-
-**Production `.env`**
-```text
-FLASK_SERVER_NAME=mysite.com
-```
diff --git a/archive_docs/_md/v3/Imp-x-config-toml.md b/archive_docs/_md/v3/Imp-x-config-toml.md
deleted file mode 100644
index 32e27c92..00000000
--- a/archive_docs/_md/v3/Imp-x-config-toml.md
+++ /dev/null
@@ -1,137 +0,0 @@
-```
-Menu = Imp/x.config.toml
-Title = The Flask-Imp Config File
-```
-
-Flask-Imp loads configuration settings from a toml file found in the root of your app package.
-
-`app/default.config.toml` is the default config file, this will be created if no config file is found or set.
-
-Here's an example file structure:
-
-```text
-Project/
-├── app/
-│ ├── ...
-│ ├── __init__.py
-│ └── default.config.toml
-├── venv/...
-└── ...
-```
-
-Here's an example of the default config file that is created:
-
-```toml
-# Flask-Imp Config File
-# ------------------------
-# Updates the Flask app config with the variables below.
-# If any variable below does not exist in the standard Flask env
-# vars it is created and will be accessible using
-# app.config. All key names defined below will be
-# capitalised when imported.
-[FLASK]
-DEBUG = false
-#PROPAGATE_EXCEPTIONS = true
-TRAP_HTTP_EXCEPTIONS = false
-#TRAP_BAD_REQUEST_ERRORS = true
-SECRET_KEY = "super_secret_key"
-SESSION_COOKIE_NAME = "session"
-#SESSION_COOKIE_DOMAIN = "domain-here.com"
-#SESSION_COOKIE_PATH = "/"
-SESSION_COOKIE_HTTPONLY = true
-SESSION_COOKIE_SECURE = false
-SESSION_COOKIE_SAMESITE = "Lax"
-PERMANENT_SESSION_LIFETIME = 3600 # 1 hour
-SESSION_REFRESH_EACH_REQUEST = true
-USE_X_SENDFILE = false
-#SEND_FILE_MAX_AGE_DEFAULT = 43200
-ERROR_404_HELP = true
-#SERVER_NAME = "localhost:5000"
-APPLICATION_ROOT = "/"
-PREFERRED_URL_SCHEME = "http"
-#MAX_CONTENT_LENGTH = 0
-#TEMPLATES_AUTO_RELOAD = true
-EXPLAIN_TEMPLATE_LOADING = false
-MAX_COOKIE_SIZE = 4093
-
-
-# This will set the default session variables for the app.
-# Anything here will be accessible using session["your_var_name"]
-# or session.get("your_var_name")
-[SESSION]
-logged_in = false
-
-# These settings are spcific to the Flask-SQLAlchemy extension.
-# Anything here will be accessible using app.config
-[SQLALCHEMY]
-SQLALCHEMY_ECHO = false
-SQLALCHEMY_TRACK_MODIFICATIONS = false
-SQLALCHEMY_RECORD_QUERIES = false
-# Below are extra settings that Flask-Imp uses but relates to Flask-SQLAlchemy.
-# This sets the file extension for SQLite databases, and where to create the folder
-# that the database will be stored in. true will create the folder on the same level as your
-# app, false will create the folder in the app root.
-SQLITE_DB_EXTENSION = ".sqlite"
-SQLITE_STORE_IN_PARENT = true
-
-# [DATABASE.MAIN] is loaded as SQLALCHEMY_DATABASE_URI
-# Dialets = mysql / postgresql / sqlite / oracle / mssql
-
-# Uncomment below to generate the SQLALCHEMY_DATABASE_URI.
-#[DATABASE.MAIN]
-#ENABLED = true
-#DIALECT = "sqlite"
-#DATABASE_NAME = "database"
-#LOCATION = "db"
-#PORT = ""
-#USERNAME = "database"
-#PASSWORD = "password"
-
-# Adding another database is as simple as adding a new section.
-# [DATABASE.ANOTHER] will then be accessible using SQLALCHEMY_BINDS
-# The bind key will be stored as a lowercase value, so "ANOTHER" will
-# be accessible as "another"
-# You can then use the bind key in the model as follows:
-# class MyModel(db.Model):
-# __bind_key__ = "another"
-# ...
-
-# Uncomment below to generate and add to SQLALCHEMY_BINDS.
-#[DATABASE.ANOTHER]
-#ENABLED = true
-#DIALECT = "sqlite"
-#DATABASE_NAME = "database_another"
-#LOCATION = "db"
-#PORT = ""
-#USERNAME = "user"
-#PASSWORD = "password"
-
-```
-
-To change what config file is loaded, you can set the `IMP_CONFIG` environment
-variable to the name of the config file you want to load.
-
-For example, given the following folder structure:
-
-```text
-Project/
-├── app/
-│ ├── ...
-│ ├── __init__.py
-│ ├── production.config.toml
-│ └── default.config.toml
-├── venv/...
-└── ...
-```
-
-You'd set the `IMP_CONFIG=production.config.toml`
-
-Or you can set the file in the `imp.init_app()` method:
-
-```python
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app, app_config_file="production.config.toml")
-
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Imp_x-import_app_resources.md b/archive_docs/_md/v3/Imp_x-import_app_resources.md
deleted file mode 100644
index 4504f5a3..00000000
--- a/archive_docs/_md/v3/Imp_x-import_app_resources.md
+++ /dev/null
@@ -1,106 +0,0 @@
-```
-Menu = Imp.x/import_app_resources
-Title = Imp.import_app_resources
-```
-
-```python
-import_app_resources(
- folder: str = "resources",
- factories: Optional[List] = None,
- static_folder: str = "static",
- templates_folder: str = "templates",
- files_to_import: Optional[List] = None,
- folders_to_import: Optional[List] = None,
- ) -> None
-```
-
----
-
-Import standard app resources from the specified folder.
-
-This will import any resources that have been set to the Flask app.
-
-Routes, context processors, cli, etc.
-
-**Can only be called once.**
-
-If no static and or template folder is found, the static and or template folder will be set to None in the Flask app
-config.
-
-#### Small example of usage:
-
-```python
-imp.import_app_resources(folder="resources")
-# or
-imp.import_app_resources()
-# as the default folder is "resources"
-```
-
-Folder Structure: `resources`
-
-```text
-app
-├── resources
-│ ├── routes.py
-│ ├── app_fac.py
-│ ├── static
-│ │ └── css
-│ │ └── style.css
-│ └── templates
-│ └── index.html
-└── ...
-...
-```
-
-File: `routes.py`
-
-```python
-from flask import current_app as app
-from flask import render_template
-
-
-@app.route("/")
-def index():
- return render_template("index.html")
-```
-
-#### How factories work
-
-Factories are functions that are called when importing the app resources. Here's an example:
-
-```python
-imp.import_app_resources(
- folder="resources",
- factories=["development_cli"]
-)
-```
-
-`["development_cli"]` => `development_cli(app)` function will be called, and the current app will be passed in.
-
-File: `app_fac.py`
-
-```python
-def development_cli(app):
- @app.cli.command("dev")
- def dev():
- print("dev cli command")
-```
-
-#### Scoping imports
-
-By default, all files and folders will be imported.
-
-To disable this, set `files_to_import` and or
-`folders_to_import` to `[None]`.
-
-```python
-imp.import_app_resources(scope_import=[None], folders_to_import=[None])
-```
-
-To scope the imports, set the `files_to_import` and or `folders_to_import` to a list of files and or folders.
-
-`files_to_import=["cli.py", "routes.py"]` => will only import the files `resources/cli.py`
-and `resources/routes.py`
-
-`folders_to_import=["template_filters", "context_processors"]` => will import all files in the folders
-`resources/template_filters/*.py` and `resources/context_processors/*.py`
diff --git a/archive_docs/_md/v3/Imp_x-import_blueprint.md b/archive_docs/_md/v3/Imp_x-import_blueprint.md
deleted file mode 100644
index 6439315a..00000000
--- a/archive_docs/_md/v3/Imp_x-import_blueprint.md
+++ /dev/null
@@ -1,116 +0,0 @@
-```
-Menu = Imp.x/import_blueprint
-Title = Imp.import_blueprint
-```
-
-```python
-import_blueprint(self, blueprint: str) -> None
-```
-
----
-
-Import a specified Flask-Imp or standard Flask Blueprint relative to the Flask app root.
-
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_blueprint("my_blueprint")
-
- return app
-```
-
-Flask-Imp Blueprints have the ability to import configuration from a toml file, import resources, and initialize session
-variables.
-
-For more information on how Flask-Imp Blueprints work, see the [Blueprint / Introduction](blueprint-introduction.html)
-
-##### Example of 'my_blueprint' as a Flask-Imp Blueprint:
-
-```text
-app
-├── my_blueprint
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ └── css
-│ │ └── style.css
-│ ├── templates
-│ │ └── my_blueprint
-│ │ └── index.html
-│ ├── __init__.py
-│ └── config.toml
-└── ...
-```
-
-File: `__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-
-
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
-
-File: `routes / index.py`
-
-```python
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return "regular_blueprint"
-```
-
-##### Example of 'my_blueprint' as a standard Flask Blueprint:
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-└── ...
-```
-
-File: `__init__.py`
-
-```python
-from flask import Blueprint
-
-bp = Blueprint("my_blueprint", __name__, url_prefix="/my-blueprint")
-
-
-@bp.route("/")
-def index():
- return "regular_blueprint"
-```
-
-Both of the above examples will work with `imp.import_blueprint("my_blueprint")`, they will be registered
-with the Flask app, and will be accessible via `url_for("my_blueprint.index")`.
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Imp_x-import_blueprints.md b/archive_docs/_md/v3/Imp_x-import_blueprints.md
deleted file mode 100644
index 5f7d3a78..00000000
--- a/archive_docs/_md/v3/Imp_x-import_blueprints.md
+++ /dev/null
@@ -1,50 +0,0 @@
-```
-Menu = Imp.x/import_blueprints
-Title = Imp.import_blueprints
-```
-
-```python
-import_blueprints(self, folder: str) -> None
-```
-
----
-
-Import all Flask-Imp or standard Flask Blueprints from a specified folder relative to the Flask app root.
-
-```text
-app/
-├── blueprints/
-│ ├── admin/
-│ │ ├── ...
-│ │ └── __init__.py
-│ ├── www/
-│ │ ├── ...
-│ │ └── __init__.py
-│ └── api/
-│ ├── ...
-│ └── __init__.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_blueprints("blueprints")
-
- return app
-```
-
-This will import all Blueprints from the `blueprints` folder using the `Imp.import_blueprint` method.
-See [Imp.x / import_blueprint](imp_x-import_blueprint.html) for more information.
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Imp_x-import_models.md b/archive_docs/_md/v3/Imp_x-import_models.md
deleted file mode 100644
index 32f5e1d9..00000000
--- a/archive_docs/_md/v3/Imp_x-import_models.md
+++ /dev/null
@@ -1,83 +0,0 @@
-```
-Menu = Imp.x/import_models
-Title = Imp.import_models
-```
-
-```python
-import_models(file_or_folder: str) -> None
-```
-
----
-
-Imports all the models from the given file or folder relative to the Flask app root.
-
-Each Model that is imported will be available in the `imp.model` lookup method.
-See [Imp.x / model](imp_x-model.html) for more information.
-
-##### Example of importing models from a file
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── users_model.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-
-from flask_imp import Imp
-
-db = SQLAlchemy()
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
- db.init_app(app) # must be below imp.init_app
-
- imp.import_blueprint("my_blueprint")
- imp.import_models("users_model.py")
-
- return app
-```
-
-File: `app/users_model.py`
-
-```python
-from app import db
-
-
-class User(db.Model):
- attribute = db.Column(db.String(255))
-```
-
-##### Example of importing models from a folder
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── models/
-│ ├── boats.py
-│ ├── cars.py
-│ └── users.py
-├── ...
-└── __init__.py
-```
-
-```python
-def create_app():
- ...
- imp.import_models("models")
- ...
-```
diff --git a/archive_docs/_md/v3/Imp_x-init_app-init.md b/archive_docs/_md/v3/Imp_x-init_app-init.md
deleted file mode 100644
index 4e9127c8..00000000
--- a/archive_docs/_md/v3/Imp_x-init_app-init.md
+++ /dev/null
@@ -1,33 +0,0 @@
-```
-Menu = Imp.x/init_app, __init__
-Title = Imp.init_app, __init__
-```
-
-```python
-init_app(
- app: Flask,
- app_config_file: Optional[str] = None,
- ignore_missing_env_variables: bool = False
-) -> None
-# -or-
-Imp(
- app: Optional[Flask] = None,
- app_config_file: Optional[str] = None,
- ignore_missing_env_variables: bool = False
-) -> None
-```
-
----
-
-Initializes the flask app to work with flask-imp.
-
-If no `app_config_file` specified, an attempt to read `IMP_CONFIG` from the environment will be made.
-
-If `IMP_CONFIG` is not in the environment variables, an attempt to load `default.config.toml` will be made.
-
-`default.config.toml` will be created, and used if not found.
-
-If `ignore_missing_env_variables` is `True`, then missing environment variables will be ignored.
-
-If `ignore_missing_env_variables` is `False` (default), then missing environment variables will raise a ValueError
-
diff --git a/archive_docs/_md/v3/Imp_x-init_session.md b/archive_docs/_md/v3/Imp_x-init_session.md
deleted file mode 100644
index b7c9a1d5..00000000
--- a/archive_docs/_md/v3/Imp_x-init_session.md
+++ /dev/null
@@ -1,48 +0,0 @@
-```
-Menu = Imp.x/init_session
-Title = Imp.init_session
-```
-
-```python
-init_session() -> None
-```
-
----
-
-Initialize the session variables found in the config. Commonly used in `app.before_request`.
-
-```python
-@app.before_request
-def before_request():
- imp._init_session()
-```
-
-File: `default.config.toml`
-
-```toml
-...
-[SESSION]
-logged_in = false
-...
-```
-
-`logged_in` is now available in the session.
-
-```python
-@app.route('/get-session-value')
-def login():
- print(session['logged_in'])
- return "Check Terminal"
-```
-
-`Output: False`
-
-Can also be used to reset the values in the session. Here's an example:
-
-```python
-@app.route('/logout')
-def logout():
- session.clear()
- imp._init_session()
- return redirect(url_for('index'))
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/Imp_x-model.md b/archive_docs/_md/v3/Imp_x-model.md
deleted file mode 100644
index 71c55243..00000000
--- a/archive_docs/_md/v3/Imp_x-model.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = Imp.x/model
-Title = Imp.model
-```
-
-```python
-model(class_: str) -> DefaultMeta
-```
-
----
-
-Returns the SQLAlchemy model class for the given class name that was imported using `Imp.import_models` or
-`Blueprint.import_models`.
-
-This method has convenience for being able to omit the need to import the model class from the file it was defined in.
-However, it is not compatible with IDE type hinting.
-
-For example:
-
-```python
-from app.models.boats import Boats
-from app.models.cars import Cars
-```
-
-Can be replaced with:
-
-```python
-from app import imp
-
-Boats = imp.model("Boats")
-Cars = imp.model("Cars")
-```
-
-Or used directly:
-
-```python
-from app import imp
-
-all_boats = imp.model("Boats").select_all()
-```
-
-
-file: `models/boats.py`
-
-```python
-from app import db
-
-
-class Boats(db.Model):
- name = db.Column(db.String())
-
- @classmethod
- def select_all(cls):
- return db.session.execute(
- db.select(cls)
- ).scalars().all()
-```
diff --git a/archive_docs/_md/v3/__index__.md b/archive_docs/_md/v3/__index__.md
deleted file mode 100644
index 59f864d9..00000000
--- a/archive_docs/_md/v3/__index__.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# Welcome to the Flask-Imp Documentation
-
-## What is Flask-Imp?
-
-Flask-Imp's main purpose is to help simplify the importing of blueprints, resources, and models. It has a few extra
-features built in to help with securing pages and password authentication.
-
-## Install Flask-Imp
-
-```bash
-pip install flask-imp
-```
-
-## Getting Started
-
-To get started right away, you can utilize the CLI commands to create a new Flask-Imp project.
-
-```bash
-flask-imp init
-```
-
-### Minimal Flask-Imp Setup
-
-Run the following command to create a minimal Flask-Imp project.
-
-```bash
-flask-imp init -n app --minimal
-```
-
-See [CLI Commands / flask-imp init](cli_commands-flask-imp_init.html) for more information.
-
-### Build minimal manually
-
-#### Folder Structure
-
-```text
-app/
-├── resources/
-│ ├── static/...
-│ ├── templates/
-│ │ └── index.html
-│ └── index.py
-├── default.config.toml
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_app_resources()
- # Takes argument 'folder' default folder is 'resources'
-
- return app
-```
-
-File: `app/resources/index.py`
-
-```python
-from flask import current_app as app
-from flask import render_template
-
-
-@app.route("/")
-def index():
- return render_template("index.html")
-```
-
-File: `app/resources/templates/index.html`
-
-```html
-
-
-
-
- Flask-Imp
-
-
-
Flask-Imp
-
-
-```
-
----
-
-We recommend using a virtual environment, then installing Flask-Imp.
-
-**Linux / MacOS**
-
-```bash
-python3 -m venv venv
-```
-
-```bash
-source venv/bin/activate
-```
-
-**Windows**
-
-```bash
-python -m venv venv
-```
-
-```text
-.\venv\Scripts\activate
-```
-
diff --git a/archive_docs/_md/v3/__menu__.md b/archive_docs/_md/v3/__menu__.md
deleted file mode 100644
index 205f3902..00000000
--- a/archive_docs/_md/v3/__menu__.md
+++ /dev/null
@@ -1,45 +0,0 @@
-- CLI Commands
- - flask-imp init
- - flask-imp blueprint
-- Imp
- - Introduction
- - x.config.toml
- - Load Env Variables
-- Blueprint
- - Introduction
- - config.toml
-- Imp.x
- - init_app, __init__
- - init_session
- - import_app_resources
- - import_blueprint
- - import_blueprints
- - import_models
- - model
- - model_meta
-- Blueprint.x
- - __init__
- - init_session
- - import_resources
- - import_nested_blueprint
- - import_nested_blueprints
- - import_models
- - tmpl
-- flask_imp.security
- - login_check
- - permission_check
- - pass_function_check
- - api_login_check
- - include_csrf
-- flask_imp.auth
- - encrypt_password
- - authenticate_password
- - generate_password
- - generate_salt
- - generate_csrf_token
- - generate_private_key
- - generate_email_validator
- - generate_numeric_validator
- - generate_alphanumeric_validator
- - is_email_address_valid
- - is_username_valid
diff --git a/archive_docs/_md/v3/flask_imp_auth-authenticate_password.md b/archive_docs/_md/v3/flask_imp_auth-authenticate_password.md
deleted file mode 100644
index d255ae7a..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-authenticate_password.md
+++ /dev/null
@@ -1,63 +0,0 @@
-```
-Menu = flask_imp.auth/authenticate_password
-Title = authenticate_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import authenticate_password
-```
-
-```python
-authenticate_password(
- input_password: str,
- database_password: str,
- database_salt: str,
- encryption_level: int = 512,
- pepper_length: int = 1,
- pepper_position: t.Literal["start", "end"] = "end",
- use_multiprocessing: bool = False
-) -> bool
-```
-
----
-
-For use in password hashing.
-
-To be used alongside the [flask_imp.auth / encrypt_password](flask_imp_auth-encrypt_password.html) function.
-
-Takes the plain input password, the stored hashed password along with the stored salt
-and will try every possible combination of pepper values to find a match.
-
-**Note:**
-
-**use_multiprocessing is not compatible with coroutine workers, e.g. eventlet/gevent
-commonly used with socketio.**
-
-If you are using socketio, you must set use_multiprocessing to False (default).
-
-**Note:**
-
-- You must know the pepper length used to hash the password.
-- You must know the position of the pepper used to hash the password.
-- You must know the encryption level used to hash the password.
-
-#### Authentication Scenario:
-
-```
-Plain password: "password"
-Generated salt: "^%$*" (randomly generated)
-Generated pepper (length 1): "A" (randomly generated)
-Pepper position: "end"
-```
-
-```python
-input_password = "password"
-database_password = "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0..." # pulled from database
-database_salt = "^%$*" # pulled from database
-
-authenticate_password(
- input_password,
- database_password,
- database_salt
-) # >>> True
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-encrypt_password.md b/archive_docs/_md/v3/flask_imp_auth-encrypt_password.md
deleted file mode 100644
index 0287b119..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-encrypt_password.md
+++ /dev/null
@@ -1,53 +0,0 @@
-```
-Menu = flask_imp.auth/encrypt_password
-Title = encrypt_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import encrypt_password
-```
-
-```python
-encrypt_password(
- password: str,
- salt: str,
- encryption_level: int = 512,
- pepper_length: int = 1,
- pepper_position: t.Literal["start", "end"] = "end"
-) -> str
-```
-
----
-
-For use in password hashing.
-
-To be used alongside the [flask_imp.auth / authenticate_password](flask_imp_auth-authenticate_password.html) function.
-
-Takes the plain password, applies a pepper, salts it, then produces a digested sha512 or sha256 if specified.
-
-Can set the encryption level to 256 or 512, defaults to 512.
-
-Can set the pepper length, defaults to 1. Max is 3.
-
-Can set the pepper position, "start" or "end", defaults to "end".
-
-**Note:**
-
-- You must inform the authenticate_password function of the pepper length used to hash the password.
-- You must inform the authenticate_password function of the position of the pepper used to hash the password.
-- You must inform the authenticate_password function of the encryption level used to hash the password.
-
-#### Encryption Scenario:
-
-```
-Plain password: "password"
-Generated salt: "^%$*" (randomly generated)
-Generated pepper (length 1): "A" (randomly generated)
-Pepper position: "end"
-```
-
-1. Pepper is added to the end of the plain password: "passwordA"
-2. Salt is added to the end of the peppered password: "passwordA^%$*"
-3. Password is hashed: "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0..."
-4. Salt and hashed password are then stored in the database.
-
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md b/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md
deleted file mode 100644
index c0d0ccdc..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_alphanumeric_validator.md
+++ /dev/null
@@ -1,24 +0,0 @@
-```
-Menu = flask_imp.auth/generate_alphanumeric_validator
-Title = generate_alphanumeric_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_alphanumeric_validator
-```
-
-```python
-generate_alphanumeric_validator(length: int = 8) -> str
-```
-
----
-
-Generates a random alphanumeric string of the given length.
-
-(letters are capitalized)
-
-*Example:*
-
-```python
-generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md b/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md
deleted file mode 100644
index ce6df31b..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_csrf_token.md
+++ /dev/null
@@ -1,26 +0,0 @@
-```
-Menu = flask_imp.auth/generate_csrf_token
-Title = generate_csrf_token - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_csrf_token
-```
-
-```python
-generate_csrf_token() -> str
-```
-
----
-
-Generates a SHA1 using the current date and time.
-
-For use in Cross-Site Request Forgery.
-
-Also used by the [flask_imp.security / csrf_protect](flask_imp_security-include_csrf.html) decorator.
-
-*Example:*
-
-```python
-generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md b/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md
deleted file mode 100644
index acdced31..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_email_validator.md
+++ /dev/null
@@ -1,27 +0,0 @@
-```
-Menu = flask_imp.auth/generate_email_validator
-Title = generate_email_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_email_validator
-```
-
-```python
-generate_email_validator() -> str
-```
-
----
-
-Uses `generate_alphanumeric_validator` with a length of 8 to
-generate a random alphanumeric value for the specific use of
-validating accounts via email.
-
-See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
-for more information.
-
-*Example:*
-
-```python
-generate_email_validator() # >>> 'A1B2C3D4'
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md b/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md
deleted file mode 100644
index c0d7dc76..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_numeric_validator.md
+++ /dev/null
@@ -1,27 +0,0 @@
-```
-Menu = flask_imp.auth/generate_numeric_validator
-Title = generate_numeric_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_numeric_validator
-```
-
-```python
-generate_numeric_validator(length: int) -> int
-```
-
----
-
-
-Generates random choice between 1 * (length) and 9 * (length).
-
-If the length is 4, it will generate a number between 1111 and 9999.
-
-For use in MFA email, or unique filename generation.
-
-*Example:*
-
-```python
-generate_numeric_validator(4) # >>> 1234
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_password.md b/archive_docs/_md/v3/flask_imp_auth-generate_password.md
deleted file mode 100644
index b6f8fda0..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_password.md
+++ /dev/null
@@ -1,26 +0,0 @@
-```
-Menu = flask_imp.auth/generate_password
-Title = generate_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_password
-```
-
-```python
-generate_password(style: str = "mixed", length: int = 3) -> str
-```
-
----
-
-Generates a password of (length) characters.
-
-The Default length is 3.
-
-Style options: "animals", "colors", "mixed" - defaults to "mixed"
-
-*Example:*
-
-```python
-generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_private_key.md b/archive_docs/_md/v3/flask_imp_auth-generate_private_key.md
deleted file mode 100644
index 63938598..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_private_key.md
+++ /dev/null
@@ -1,38 +0,0 @@
-```
-Menu = flask_imp.auth/generate_private_key
-Title = generate_private_key - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_private_key
-```
-
-```python
-generate_private_key(hook: t.Optional[str]) -> str
-```
-
----
-
-Generates a sha256 private key from a passed in hook value.
-
-If no hook is passed in, it will generate a hook using datetime.now() and a
-random number between 1 and 1000.
-
-```python
-@app.route('/register', methods=['GET', 'POST'])
-def register():
- if request.method == "POST":
- ...
- salt = generate_salt()
- password = request.form.get('password')
- encrypted_password = encrypt_password(password, salt)
- ...
- user = User(
- username=username,
- email=email,
- password=encrypted_password,
- salt=salt,
- private_key=generate_private_key(hook=username)
- )
- ...
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-generate_salt.md b/archive_docs/_md/v3/flask_imp_auth-generate_salt.md
deleted file mode 100644
index f21615f5..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-generate_salt.md
+++ /dev/null
@@ -1,46 +0,0 @@
-```
-Menu = flask_imp.auth/generate_salt
-Title = generate_salt - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_salt
-```
-
-```python
-generate_salt(length: int = 4) -> str
-```
-
----
-
-Generates a string of (length) characters of punctuation.
-
-The Default length is 4.
-
-For use in password hashing and storage of passwords in the database.
-
-*Example:*
-
-```python
-generate_salt() # >>> '*!$%'
-```
-
-```python
-@app.route('/register', methods=['GET', 'POST'])
-def register():
- if request.method == "POST":
- ...
- salt = generate_salt()
- password = request.form.get('password')
- encrypted_password = encrypt_password(password, salt)
- ...
-
- user = User(
- username=username,
- email=email,
- password=encrypted_password,
- salt=salt
- )
- ...
-```
-
diff --git a/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md b/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md
deleted file mode 100644
index 1990e24a..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-is_email_address_valid.md
+++ /dev/null
@@ -1,46 +0,0 @@
-```
-Menu = flask_imp.auth/is_email_address_valid
-Title = is_email_address_valid - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import is_email_address_valid
-```
-
-```python
-is_email_address_valid(
- email_address: str
-) -> bool
-```
-
----
-
-Checks if an email address is valid.
-
-Is not completely RFC 5322 compliant, but it is good enough for most use cases.
-
-Here are examples of mistakes that it will not catch:
-
-##### Valid but fails:
-
-```text
-email@[123.123.123.123]
-“email”@example.com
-very.unusual.“@”.unusual.com@example.com
-very.“(),:;<>[]”.VERY.“very@\\ "very”.unusual@strange.example.com
-```
-
-##### Invalid but passes:
-
-```text
-email@example.com (Joe Smith)
-email@111.222.333.44444
-```
-
-*Example:*
-
-```python
-is_email_address_valid('hello@example.com') # >>> True
-
-is_email_address_valid('hello@hello@example.com') # >>> False
-```
diff --git a/archive_docs/_md/v3/flask_imp_auth-is_username_valid.md b/archive_docs/_md/v3/flask_imp_auth-is_username_valid.md
deleted file mode 100644
index 68cdf070..00000000
--- a/archive_docs/_md/v3/flask_imp_auth-is_username_valid.md
+++ /dev/null
@@ -1,58 +0,0 @@
-```
-Menu = flask_imp.auth/is_username_valid
-Title = is_username_valid - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import is_username_valid
-```
-
-```python
-is_username_valid(
- username: str,
- allowed: t.Optional[t.List[t.Literal["all", "dot", "dash", "under"]]] = None
-) -> bool
-```
-
----
-
-Checks if a username is valid.
-
-Valid usernames can only include letters,
-numbers, ., -, and _ but cannot begin or end with
-the last three mentioned.
-
-##### Example "all":
-
-```python
-is_username_valid("username", allowed=["all"])
-```
-
-Output:
-
-```text
-username : WILL PASS : True
-user.name : WILL PASS : True
-user-name : WILL PASS : True
-user_name : WILL PASS : True
-_user_name : WILL PASS : False
-```
-
-##### Example "dot", "dash":
-
-```python
-
-is_username_valid("username", allowed=["dot", "dash"])
-```
-
-Output:
-
-```text
-username : WILL PASS : True
-user.name : WILL PASS : True
-user-name : WILL PASS : True
-user-name.name : WILL PASS : True
-user_name : WILL PASS : False
-_user_name : WILL PASS : False
-.user.name : WILL PASS : False
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/flask_imp_security-api_login_check.md b/archive_docs/_md/v3/flask_imp_security-api_login_check.md
deleted file mode 100644
index e021ecbe..00000000
--- a/archive_docs/_md/v3/flask_imp_security-api_login_check.md
+++ /dev/null
@@ -1,47 +0,0 @@
-```
-Menu = flask_imp.security/api_login_check
-Title = api_login_check - flask_imp.security
-```
-
-
-```python
-from flask_imp.security import api_login_check
-```
-
-```python
-api_login_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_json: t.Optional[t.Dict[str, t.Any]] = None
-)
-```
-
-`@api_login_check(...)`
-
----
-
-A decorator that is used to secure API routes that return JSON responses.
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_json` JSON that is returned on failure. `{"error": "You are not logged in."}` by default.
-
-*Example:*
-
-```python
-@bp.route("/api/resource", methods=["GET"])
-@api_login_check('logged_in', True)
-def api_page():
- ...
-```
-
-##### Example of defined fail_json:
-
-```python
-@bp.route("/api/resource", methods=["GET"])
-@api_login_check('logged_in', True, fail_json={"failed": "You need to be logged in."})
-def api_page():
- ...
-```
diff --git a/archive_docs/_md/v3/flask_imp_security-include_csrf.md b/archive_docs/_md/v3/flask_imp_security-include_csrf.md
deleted file mode 100644
index 5f367974..00000000
--- a/archive_docs/_md/v3/flask_imp_security-include_csrf.md
+++ /dev/null
@@ -1,48 +0,0 @@
-```
-Menu = flask_imp.security/include_csrf
-Title = include_csrf - flask_imp.security
-```
-
-```python
-from flask_imp.security import include_csrf
-```
-
-```python
-include_csrf(
- session_key: str = "csrf",
- form_key: str = "csrf",
- abort_code: int = 401
-)
-```
-
-`@include_csrf(...)`
-
----
-
-
-A decorator that handles CSRF protection.
-
-On a **GET** request, a CSRF token is generated and stored in the session key
-specified by the session_key parameter.
-
-On a **POST** request, the form_key specified is checked against the session_key
-specified.
-
-- If they match, the request is allowed to continue.
-- If no match, the response will be abort(abort_code), default 401.
-
-```python
-@bp.route("/admin", methods=["GET", "POST"])
-@include_csrf(session_key="csrf", form_key="csrf")
-def admin_page():
- ...
- # You must pass in the CSRF token from the session into the template.
- # Then add to the form.
- return render_template("admin.html", csrf=session.get("csrf"))
-```
-
-Form key:
-
-```html
-
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v3/flask_imp_security-login_check.md b/archive_docs/_md/v3/flask_imp_security-login_check.md
deleted file mode 100644
index f95cebde..00000000
--- a/archive_docs/_md/v3/flask_imp_security-login_check.md
+++ /dev/null
@@ -1,66 +0,0 @@
-```
-Menu = flask_imp.security/login_check
-Title = login_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import login_check
-```
-
-```python
-login_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_endpoint: t.Optional[str] = None,
- pass_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message"
-)
-```
-
-`@login_check(...)`
-
----
-
-A decorator that checks if the specified session key exists and contains the specified value.
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_endpoint` The endpoint to redirect to if the session key does not exist or does not contain the specified values.
-
-`endpoint_kwargs` A dictionary of keyword arguments to pass to the redirect endpoint.
-
-`message` If a message is specified, a flash message is shown.
-
-`message_category` The category of the flash message.
-
-##### Example of a route that requires a user to be logged in:
-
-```python
-@bp.route("/admin", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- fail_endpoint='blueprint.login_page',
- message="Login needed"
-)
-def admin_page():
- ...
-```
-
-##### Example of a route that if the user is already logged in, redirects to the specified endpoint:
-
-```python
-@bp.route("/login-page", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- pass_endpoint='blueprint.admin_page',
- message="Already logged in"
-)
-def login_page():
- ...
-```
diff --git a/archive_docs/_md/v3/flask_imp_security-pass_function_check.md b/archive_docs/_md/v3/flask_imp_security-pass_function_check.md
deleted file mode 100644
index 0f991f07..00000000
--- a/archive_docs/_md/v3/flask_imp_security-pass_function_check.md
+++ /dev/null
@@ -1,8 +0,0 @@
-```
-Menu = flask_imp.security/pass_function_check
-Title = pass_function_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import pass_function_check
-```
diff --git a/archive_docs/_md/v3/flask_imp_security-permission_check.md b/archive_docs/_md/v3/flask_imp_security-permission_check.md
deleted file mode 100644
index 73278e12..00000000
--- a/archive_docs/_md/v3/flask_imp_security-permission_check.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = flask_imp.security/permission_check
-Title = permission_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import permission_check
-```
-
-```python
-permission_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message"
-)
-```
-
-`@permission_check(...)`
-
----
-
-A decorator that checks if the specified session key exists and its value(s) match the specified value(s).
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_endpoint` The endpoint to redirect to if the session key does not exist or does not contain the specified values.
-
-`endpoint_kwargs` A dictionary of keyword arguments to pass to the redirect endpoint.
-
-`message` If a message is specified, a flash message is shown.
-
-`message_category` The category of the flash message.
-
-*Example:*
-
-```python
-@bp.route("/admin-page", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- 'blueprint.login_page'
-) # can be mixed with login_check
-@permission_check(
- 'permissions',
- ['admin'],
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page():
- ...
-```
-
diff --git a/archive_docs/_md/v4/Blueprint-Introduction.md b/archive_docs/_md/v4/Blueprint-Introduction.md
deleted file mode 100644
index c8f70560..00000000
--- a/archive_docs/_md/v4/Blueprint-Introduction.md
+++ /dev/null
@@ -1,80 +0,0 @@
-```
-Menu = Blueprint/Introduction
-Title = Flask-Imp Blueprint Introduction
-```
-
-The Flask-Imp Blueprint inherits from the Flask Blueprint class, then adds some additional methods to allow for auto
-importing of models, resources and other nested blueprints.
-
-The Flask-Imp Blueprint by default, reads configuration from a config.toml file or from a config class,
-which is located in the same directory as the
-`__init__.py` file.
-
-Here's an example of a Flask-Imp Blueprint structure:
-
-```text
-www/
-├── nested_blueprints/
-│ ├── blueprint_one/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ │ └── config.py
-│ └── blueprint_two/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.py
-├── standalone_nested_blueprint/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.py
-├── models/
-│ └── ...
-├── routes/
-│ └── index.py
-├── static/
-│ └── ...
-├── templates/
-│ └── www/
-│ └── index.html
-├── __init__.py
-└── config.py
-```
-
-File: `__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_models("models")
-bp.import_nested_blueprints("nested_blueprints")
-bp.import_nested_blueprint("standalone_nested_blueprint")
-
-
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
-
-During the `__init__` method of the Blueprint class, if the config argument is not set to `None`, the Blueprint will
-attempt to load the configuration from either `config.toml` file or a `Config` class from a `config.py` file.
-
-To see more about configuration see: [Blueprint / config.x](blueprint-config-x.html)
-
-`import_resources` method will walk one level deep into the `routes` folder, and import all `.py` files as modules.
-For more information see: [Blueprint.x / import_resources](blueprint_x-import_resources.html)
-
-`import_models` works the same as `imp.import_models`, it will look for instances of `db.Model` and import them. These
-will also be available in the model lookup method `imp.model`.
-For more information see: [Imp.x / import_models](imp_x-import_models.html)
-
-`import_nested_blueprints` will do the same as `imp.import_blueprints`, but will register the blueprints found as
-nested to the current blueprint. For example `www.blueprint_one.index`
-
-`import_nested_blueprint` behaves the same as `import_nested_blueprints`, but will only import a single blueprint.
-
-`bp.init_session` will load the session variables from the config file into the session object. For more information
-see: [Blueprint.x / init_session](blueprint_x-init_session.html) and
-[Blueprint / config.x](blueprint-config-x.html)
diff --git a/archive_docs/_md/v4/Blueprint-config-x.md b/archive_docs/_md/v4/Blueprint-config-x.md
deleted file mode 100644
index 206e7c15..00000000
--- a/archive_docs/_md/v4/Blueprint-config-x.md
+++ /dev/null
@@ -1,160 +0,0 @@
-```
-Menu = Blueprint/config.x
-Title = The Flask-Imp Blueprint Config File
-```
-
----
-
-**Recommendation:** Try and favour the use of a py file for your
-configuration settings, as this will trigger reloads under
-debug mode.
-
-Also, the bonus of being able to use Python to programmatically
-set values is nice.
-
----
-
-The Flask-Imp Blueprint loads configuration settings from either a class
-defined in a module or from a toml file.
-
-This file needs to sit next to the `__init__.py` file.
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__) # will look for config.toml / config.py w/ Config class
-# or
-bp = Blueprint(__name__, config="config.Development") # will look for Development class in config.py
-# or
-bp = Blueprint(__name__, config="development.toml") # will look for development.toml file
-```
-
-For more information about the `config` parameter see: [Imp / config.x](Imp-config-x.html)
-
-### Using environment variables
-
-#### toml
-
-In a toml config, you can set environment variables by using `{{ }}`
-
-```toml
-TEST_VALUE = "{{ test_value }}"
-```
-
-You can also set the type of the variable by using `:type` after the variable name.
-
-```toml
-TEST_VALUE = "{{ test_value:int }}"
-```
-
-**Supported types are `int`, `float`, `bool`, `str`.**
-
-#### py
-
-In a py config, you can set environment variables by using `os.getenv`.
-
-```python
-TEST_VALUE = os.getenv("TEST_VALUE", "default_value_here")
-```
-
-### Example `config.py` configuration file:
-
-```python
-from flask_imp import ImpBlueprintConfig, DatabaseConfig
-
-
-class Config(ImpBlueprintConfig):
- ENABLED: bool = True
- URL_PREFIX: str = "/"
- # SUBDOMAIN: str = ""
- # URL_DEFAULTS: dict = {}
- STATIC_FOLDER: str = "static"
- TEMPLATE_FOLDER: str = "templates"
- STATIC_URL_PATH: str = "/static"
- # ROOT_PATH: str = ""
- # CLI_GROUP: str = ""
-
- INIT_SESSION: dict = {
- "www_session": "yes"
- }
-
- DATABASE_BINDS: set[DatabaseConfig] = {
- DatabaseConfig(
- ENABLED=True,
- DIALECT="sqlite",
- NAME="www",
- BIND_KEY="www",
- LOCATION="",
- PORT=0,
- USERNAME="",
- PASSWORD="",
- )
- }
-```
-
-### Example `config.toml` configuration file:
-
-```toml
-ENABLED = "yes"
-
-[SETTINGS]
-URL_PREFIX = "/"
-#SUBDOMAIN = ""
-#URL_DEFAULTS = {}
-STATIC_FOLDER = "static"
-TEMPLATE_FOLDER = "templates"
-STATIC_URL_PATH = "/static"
-#ROOT_PATH = ""
-#CLI_GROUP = ""
-
-[SESSION]
-www_session = "yes"
-
-# Set ENABLED to true to allow the blueprint
-# to create a database bind, change settings accordingly.
-[DATABASE_BIND]
-ENABLED = true
-DIALECT = "sqlite"
-DATABASE_NAME = "www"
-BIND_KEY = "www"
-LOCATION = ""
-PORT = ""
-USERNAME = ""
-PASSWORD = ""
-```
-
-These config files reflect the args that are passed to a regular Flask Blueprint class,
-with the addition of the ability to enable/disable the Blueprint, set session variables and
-include database binds.
-
-For more information about the args of a regular Flask Blueprint see:
-[Flask docs (Blueprint)](https://flask.palletsprojects.com/en/3.0.x/api/#flask.Blueprint)
-
-### Session Variables
-
-You can set the default session variables for the blueprint by setting values in `INIT_SESSION`, these can be loaded
-using the before_request function in the blueprint.
-
-```python
-@blueprint.before_app_request
-def load_session():
- blueprint._init_session()
-```
-
-### Database Binds
-
-You can also allow the blueprint to create a database bind, by setting `ENABLED` to `true` in the `DATABASE_BIND`
-section of the toml file, or by adding to the `DATABASE_BINDS` set of the `Config` class.
-
-**Using a py config file will allow you to set multiple database binds for the blueprint.**
-
-This will add to the Flask app's `SQLALCHEMY_BINDS` config variable, and allows blueprints to be more modular
-with their database connections.
-
-Including the attribute `__bind_key__` in the blueprint's model(s) will match the model to the database bind.
-
-```python
-class User(db.Model):
- __bind_key__ = "example"
- ...
-```
diff --git a/archive_docs/_md/v4/Blueprint-init.md b/archive_docs/_md/v4/Blueprint-init.md
deleted file mode 100644
index 78d60d5f..00000000
--- a/archive_docs/_md/v4/Blueprint-init.md
+++ /dev/null
@@ -1,17 +0,0 @@
-```
-Menu = Blueprint.x/__init__
-Title = Flask-Imp Blueprint __init__
-```
-
-```python
-Blueprint(dunder_name: str, config_file: str = "config.toml") -> None
-```
-
----
-
-Initializes the Flask-Imp Blueprint.
-
-`dunder_name` should always be set to `__name__`
-
-`config_file` is the name of the config file to load.
-It will be loaded from the same directory as the `__init__.py` file.
diff --git a/archive_docs/_md/v4/Blueprint_x-import_models.md b/archive_docs/_md/v4/Blueprint_x-import_models.md
deleted file mode 100644
index d919ae65..00000000
--- a/archive_docs/_md/v4/Blueprint_x-import_models.md
+++ /dev/null
@@ -1,80 +0,0 @@
-```
-Menu = Blueprint.x/import_models
-Title = Blueprint.import_models
-```
-
-```python
-import_models(folder: str = "models") -> None
-```
-
----
-
-Will import all the models from the given folder relative to the Blueprint's root directory.
-
-Works the same as [Imp.x / import_models](imp_x-import_models.html) but relative to the Blueprint root.
-
-Blueprint models will also be available in the [Imp.x / model](imp_x-model.html) lookup.
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── animal_models.py
-│
-├── __init__.py
-└── config.toml
-```
-
-**or**
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── models/
-│ └── animals.py
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_models("animal_models.py")
-```
-
-**or**
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_models("models")
-```
-
-File: `my_blueprint/animal_models.py` or `my_blueprint/models/animals.py`
-
-```python
-from app import db
-
-
-class Animals(db.Model):
- animal_id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(64), index=True, unique=True)
- species = db.Column(db.String(64), index=True, unique=True)
-```
-
-
-
diff --git a/archive_docs/_md/v4/Blueprint_x-import_nested_blueprint.md b/archive_docs/_md/v4/Blueprint_x-import_nested_blueprint.md
deleted file mode 100644
index d8139c3d..00000000
--- a/archive_docs/_md/v4/Blueprint_x-import_nested_blueprint.md
+++ /dev/null
@@ -1,70 +0,0 @@
-```
-Menu = Blueprint.x/import_nested_blueprint
-Title = Blueprint.import_nested_blueprint
-```
-
-```python
-import_nested_blueprint(self, blueprint: str) -> None
-```
-
----
-
-Import a specified Flask-Imp or standard Flask Blueprint relative to the Blueprint root.
-
-Works the same as [Imp.x / import_blueprint](imp_x-import_blueprint.html) but relative to the Blueprint root.
-
-Blueprints that are imported this way will be scoped to the parent Blueprint that imported them.
-
-`url_for('my_blueprint.my_nested_blueprint.index')`
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── my_nested_blueprint/
-│ ├── routes/
-│ │ └── index.py
-│ ├── static/...
-│ ├── templates/...
-│ ├── __init__.py
-│ └── config.toml
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_nested_blueprint("my_nested_blueprint")
-```
-
-File: `my_blueprint/my_nested_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-```
-
-File: `my_blueprint/my_nested_blueprint/routes/index.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return render_template(bp.tmpl("index.html"))
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/Blueprint_x-import_nested_blueprints.md b/archive_docs/_md/v4/Blueprint_x-import_nested_blueprints.md
deleted file mode 100644
index 16bdc2a7..00000000
--- a/archive_docs/_md/v4/Blueprint_x-import_nested_blueprints.md
+++ /dev/null
@@ -1,59 +0,0 @@
-```
-Menu = Blueprint.x/import_nested_blueprints
-Title = Blueprint.import_nested_blueprints
-```
-
-```python
-import_nested_blueprints(self, folder: str) -> None
-```
-
----
-
-Will import all the Blueprints from the given folder relative to the Blueprint's root directory.
-
-Uses [Blueprint.x / import_nested_blueprint](blueprint_x-import_nested_blueprint.html) to import blueprints from
-the specified folder.
-
-Blueprints that are imported this way will be scoped to the parent Blueprint that imported them.
-
-`url_for('my_blueprint.nested_bp_one.index')`
-
-`url_for('my_blueprint.nested_bp_two.index')`
-
-`url_for('my_blueprint.nested_bp_three.index')`
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── nested_blueprints/
-│ │
-│ ├── nested_bp_one/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ │ └── config.toml
-│ ├── nested_bp_two/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ │ └── config.toml
-│ └── nested_bp_three/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.toml
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-bp.import_nested_blueprints("nested_blueprints")
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/Blueprint_x-import_resources.md b/archive_docs/_md/v4/Blueprint_x-import_resources.md
deleted file mode 100644
index dc5043d9..00000000
--- a/archive_docs/_md/v4/Blueprint_x-import_resources.md
+++ /dev/null
@@ -1,53 +0,0 @@
-```
-Menu = Blueprint.x/import_resources
-Title = Blueprint.import_resources
-```
-
-```python
-import_resources(folder: str = "routes") -> None
-```
-
----
-
-Will import all the resources (cli, routes, filters, context_processors...) from the given folder relative to the
-Blueprint's root directory.
-
-```text
-my_blueprint
-├── user_routes
-│ ├── user_dashboard.py
-│ └── user_settings.py
-├── car_routes
-│ ├── car_dashboard.py
-│ └── car_settings.py
-├── static/...
-├── templates/
-│ └── my_blueprint/
-│ ├── user_dashboard.html
-│ └── ...
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("user_routes")
-bp.import_resources("car_routes")
-```
-
-File: `my_blueprint/user_routes/user_dashboard.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-@bp.route("/user-dashboard")
-def user_dashboard():
- return render_template(bp.tmpl("user_dashboard.html"))
-```
diff --git a/archive_docs/_md/v4/Blueprint_x-init_session.md b/archive_docs/_md/v4/Blueprint_x-init_session.md
deleted file mode 100644
index 5a6bd55f..00000000
--- a/archive_docs/_md/v4/Blueprint_x-init_session.md
+++ /dev/null
@@ -1,19 +0,0 @@
-```
-Menu = Blueprint.x/init_session
-Title = Blueprint.init_session
-```
-
-```python
-init_session() -> None
-```
-
----
-
-Has the same functionality as [Imp.x / init_session](imp_x-init_session.html) but loads session key values from the
-Blueprint's config file.
-
-```python
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/Blueprint_x-tmpl.md b/archive_docs/_md/v4/Blueprint_x-tmpl.md
deleted file mode 100644
index dd23bed6..00000000
--- a/archive_docs/_md/v4/Blueprint_x-tmpl.md
+++ /dev/null
@@ -1,45 +0,0 @@
-```
-Menu = Blueprint.x/tmpl
-Title = Blueprint.tmpl
-```
-
-```python
-tmpl(template: str) -> str
-```
-
----
-
-Scopes the template lookup to the name of the blueprint (this takes from the `__name__` attribute of the Blueprint).
-
-Due to the way Flask templating works, and to avoid template name collisions.
-It is standard practice to place the name of the Blueprint in the template path,
-then to place any templates under that folder.
-
-```text
-my_blueprint/
-├── routes/
-│ └── index.py
-├── static/...
-│
-├── templates/
-│ └── my_blueprint/
-│ └── index.html
-│
-├── __init__.py
-└── config.toml
-```
-
-File: `my_blueprint/routes/index.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return render_template(bp.tmpl("index.html"))
-```
-
-`bp.tmpl("index.html")` will output `"my_blueprint/index.html"`.
diff --git a/archive_docs/_md/v4/CLI Commands-flask-imp blueprint.md b/archive_docs/_md/v4/CLI Commands-flask-imp blueprint.md
deleted file mode 100644
index 8aca1dcc..00000000
--- a/archive_docs/_md/v4/CLI Commands-flask-imp blueprint.md
+++ /dev/null
@@ -1,107 +0,0 @@
-```
-Menu = CLI Commands/flask-imp blueprint
-Title = Generate a Flask-Imp Blueprint
-```
-
-Flask-Imp has its own type of blueprint. It can read some configuration from a toml file and has some extra methods for
-auto importing.
-
-```bash
-flask-imp blueprint --help
-```
-
-To generate a Flask-Imp blueprint, run the following command:
-
-```bash
-flask-imp blueprint
-```
-
-After running this command, you will be prompted to enter the location of where you want to create your blueprint:
-
-```text
-~ $ flask-imp blueprint
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]:
-```
-
-As detailed in the prompt, the creation of the blueprint is relative to the current working directory. So to create a
-blueprint in the folder `app/blueprints`, you would enter `app/blueprints` in the prompt.
-
-```text
-~ $ flask-imp blueprint
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-```
-
-You will then be prompted to enter a name for your blueprint:
-
-```text
-~ $ flask-imp blueprint
-...
-Name of the blueprint to create [my_new_blueprint]:
-```
-
-The default name is 'my_new_blueprint', we will change this to 'admin'
-
-```text
-~ $ flask-imp blueprint
-...
-Name of the blueprint to create [my_new_blueprint]: admin
-```
-
-Finally, you will be asked what type of configuration file you would like to use:
-
-```text
-~ $ flask-imp blueprint
-...
-What type of config file would you like to use? (py, toml) [py]:
-```
-
-`py` is recommended, as it is more flexible.
-
-After creating your blueprint, the folder structure will look like this:
-
-```text
-app/
-├── blueprints
-│ └── admin
-│ ├── routes
-│ │ └── index.py
-│ │
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ │
-│ ├── templates
-│ │ └── www
-│ │ ├── extends
-│ │ │ └── main.html
-│ │ ├── includes
-│ │ │ ├── footer.html
-│ │ │ └── header.html
-│ │ └── index.html
-│ │
-│ ├── __init__.py
-│ └─── config.py
-│
-...
-```
-
-This is a self-contained blueprint, so it has its own static, templates and routes folders. You can now navigate '
-/admin'
-
-You can streamline this process by specifying the name of the blueprint, the folder to
-create it in and the configuration to use, like so:
-
-```bash
-flask-imp blueprint -n admin -f app/blueprints --pyconfig
-```
-or
-```bash
-flask-imp blueprint -n admin -f app/blueprints --tomlconfig
-```
-for a toml config.
\ No newline at end of file
diff --git a/archive_docs/_md/v4/CLI Commands-flask-imp init.md b/archive_docs/_md/v4/CLI Commands-flask-imp init.md
deleted file mode 100644
index abe4cd94..00000000
--- a/archive_docs/_md/v4/CLI Commands-flask-imp init.md
+++ /dev/null
@@ -1,262 +0,0 @@
-```
-Menu = CLI Commands/flask-imp init
-Title = Initialising a Flask-Imp Project
-```
-
-Flask-Imp has a cli command that deploys a new ready-to-go project.
-This project is structured in a way to give you the best idea of
-how to use Flask-Imp.
-
-```bash
-flask-imp init --help
-```
-
-## Create a new project
-
-Make sure you are in the virtual environment, and at the root of your
-project folder, then run the following command:
-
-```bash
-flask-imp init
-```
-
-After running this command, you will be prompted to choose what type of
-app you want to deploy:
-
-```text
-~ $ flask-imp init
-What type of app would you like to create? (full, slim, minimal) [full]:
-```
-
-See below for the differences between the app types.
-
-After this, you will be prompted to enter a name for your app:
-
-```text
-~ $ flask-imp init
-...
-What would you like to call your app? [app]:
-```
-
-'app' is the default name, so if you just press enter, your app will be
-called 'app'. You will then see this output:
-
-Next you will be asked what configuration file you would like to use:
-
-```text
-~ $ flask-imp init
-...
-What type of config file would you like to use? (py, toml) [py]:
-```
-
-`py` is recommended, as it is more flexible.
-
-
-```text
-~ FILES CREATED WILL LOOP OUT HERE ~
-
-===================
-Flask app deployed!
-===================
-
-Your app has the default name of 'app'
-Flask will automatically look for this!
-Run: flask run --debug
-
-```
-
-If you called your app something other than 'app', like 'new' for example, you will see:
-
-```text
-~ FILES CREATED WILL LOOP OUT HERE ~
-
-===================
-Flask app deployed!
-===================
-
-Your app has the name of 'new'
-Run: flask --app new run --debug
-
-```
-
-As you can see from the output, it gives you instructions on how to start your app,
-depending on the name you gave it.
-
-You should see a new folder that has been given the name you specified in
-the `flask-imp init` command.
-
-### Additional options
-
-You can also specify a name for your app in the command itself, like so:
-
-```bash
-flask-imp init -n my_app
-```
-
-This will create a new app called 'my_app'.
-
-You can also deploy a slim app, that will have one blueprint and no models, like so:
-
-```bash
-flask-imp init -n my_app --slim
-```
-
-You can also deploy a minimal app, that will have no blueprints, models, or extensions, like so:
-
-```bash
-flask-imp init -n my_app --minimal
-```
-
-This also works for what configuration file you would like to use:
-
-```bash
-flask-imp init -n my_app --pyconfig
-```
-or
-```bash
-flask-imp init -n my_app --tomlconfig
-```
-
-This will create a new minimal app called 'my_app' with a python configuration file.
-
-```bash
-flask-imp init -n my_app --minimal --pyconfig
-```
-
-## init Folder structures
-
-### Full app
-
-`flask-imp init --full`:
-
-```text
-app/
-├── blueprints
-│ └── www
-│ ├── config.py
-│ ├── __init__.py
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ └── templates
-│ └── www
-│ ├── extends
-│ │ └── main.html
-│ ├── includes
-│ │ ├── footer.html
-│ │ └── header.html
-│ └── index.html
-│
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── cli
-│ │ └── cli.py
-│ ├── context_processors
-│ │ └── context_processors.py
-│ ├── error_handlers
-│ │ └── error_handlers.py
-│ ├── filters
-│ │ └── filters.py
-│ ├── routes
-│ │ └── routes.py
-│ ├── static
-│ │ └── favicon.ico
-│ └── templates
-│ ├── errors
-│ │ ├── 400.html
-│ │ ├── 401.html
-│ │ ├── 403.html
-│ │ ├── 404.html
-│ │ ├── 405.html
-│ │ └── 500.html
-│ └── index.html
-│
-├── models
-│ ├── example_user_table.py
-│ └── __init__.py
-│
-├── __init__.py
-└── config.py
-```
-
-### Slim app
-
-`flask-imp init --slim`:
-
-```text
-app/
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── cli
-│ │ └── cli.py
-│ ├── error_handlers
-│ │ └── error_handlers.py
-│ ├── static
-│ │ └── favicon.ico
-│ └── templates
-│ └── errors
-│ ├── 400.html
-│ ├── 401.html
-│ ├── 403.html
-│ ├── 404.html
-│ ├── 405.html
-│ └── 500.html
-│
-├── www
-│ ├── config.py
-│ ├── __init__.py
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ └── templates
-│ └── www
-│ ├── extends
-│ │ └── main.html
-│ ├── includes
-│ │ ├── footer.html
-│ │ └── header.html
-│ └── index.html
-│
-├── __init__.py
-└── config.py
-```
-
-### Minimal app
-
-`flask-imp init --minimal`:
-
-```text
-app/
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── favicon.ico
-│ ├── templates
-│ │ └── index.html
-│ └── routes.py
-│
-├── __init__.py
-└── config.py
-```
diff --git a/archive_docs/_md/v4/Imp-Introduction.md b/archive_docs/_md/v4/Imp-Introduction.md
deleted file mode 100644
index 85e468af..00000000
--- a/archive_docs/_md/v4/Imp-Introduction.md
+++ /dev/null
@@ -1,78 +0,0 @@
-```
-Menu = Imp/Introduction
-Title = Flask-Imp Introduction
-```
-
-Flask-Imp is a Flask extension that provides auto import methods for various Flask resources. It will import models,
-blueprints, and other resources from a Flask application. It uses the importlib module to achieve this.
-
-Flask-Imp favors the application factory pattern as a project structure, and is opinionated towards using only
-Blueprints. However, you can use Flask-Imp without using Blueprints.
-
-Here's an example of a standard Flask-Imp project structure:
-
-```text
-app/
-├── blueprints/
-│ ├── admin/...
-│ ├── api/...
-│ └── www/...
-├── resources/
-│ ├── filters/...
-│ ├── context_processors/...
-│ ├── static/...
-│ └── templates/...
-├── models/...
-├── config.py
-└── __init__.py
-```
-
-Here's an example of the `app/__init__.py` file:
-
-```python
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-from flask_imp import Imp
-
-db = SQLAlchemy()
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
- db.init_app(app)
-
- imp.import_app_resources("resources")
- imp.import_models("models")
- imp.import_blueprints("blueprints")
-
- return app
-```
-
-The `init_app` method of the Imp class will automatically load configuration
-if the config argument is not set to `None`.
-
-An attempt to load the configuration from either `config.toml` file or a `Config`
-class from a `config.py` file will be made.
-
-For more information about the `config` parameter see: [Imp / config.x](imp-config-x.html)
-
-`import_app_resources` will walk one level deep into the `resources` folder, and import
-all `.py` files as modules.
-It will also check for the existence of a `static` and `templates` folder, and register them with the Flask app.
-
-There is a couple of options for `import_app_resources` to control what
-is imported, see: [Imp.x / import_app_resources](imp_x-import_app_resources.html)
-
-`import_models` will import all Model classes from the specified file or folder. It will also place each model found
-into a lookup table that you can access via `imp.model`
-
-See more about how import_models and the lookup
-here: [Imp.x / import_models](imp_x-import_models.html) and [Imp.x / model](imp_x-model.html)
-
-`import_blueprints` expects a folder that contains many Blueprint as Python packages.
-It will check each blueprint folder's `__init__.py` file for an instance of a Flask Blueprint or a
-Flask-Imp Blueprint. That instant will then be registered with the Flask app.
-
-See more about how importing blueprints work here: [Blueprint / Introduction](blueprint-introduction.html)
diff --git a/archive_docs/_md/v4/Imp-config-x.md b/archive_docs/_md/v4/Imp-config-x.md
deleted file mode 100644
index 94c0de56..00000000
--- a/archive_docs/_md/v4/Imp-config-x.md
+++ /dev/null
@@ -1,285 +0,0 @@
-```
-Menu = Imp/config.x
-Title = The Flask-Imp Config File
-```
-
----
-
-**Recommendation:** Try and favour the use of a py file for your
-configuration settings, as this will trigger reloads under
-debug mode.
-
-Also, the bonus of being able to use Python to programmatically
-set values is nice.
-
----
-
-Flask-Imp loads configuration settings from either a class
-defined in a module or from a toml file.
-
-**This example:**
-
-```python
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app, config="dev.config.toml")
-
-```
-
-Will load configuration from the `dev.config.toml` file.
-
-**This example:**
-
-```python
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app, config="config.Config")
-
-```
-
-Will load the configuration from the `Config` class from the `config.py` file.
-
-Both of these files need to be located in the root of the app.
-
-The config class must be an instance of `ImpConfig` from `flask_imp`.
-
-You can also set the config by using the `IMP_CONFIG` environment
-variable, but you will need to omit or set the `config` parameter to `None`.
-
-For example, given the following folder structure:
-
-```text
-Project/
-├── app/
-│ ├── ...
-│ ├── __init__.py
-│ ├── config.py
-│ └── dev.config.toml
-├── venv/...
-└── ...
-```
-
-You'd set the `IMP_CONFIG=dev.config.toml` and this will load the `dev.config.toml` file.
-
-### Using environment variables
-
-#### toml
-
-In a toml config, you can set environment variables by using `{{ }}`
-
-```toml
-TEST_VALUE = "{{ test_value }}"
-```
-
-You can also set the type of the variable by using `:type` after the variable name.
-
-```toml
-TEST_VALUE = "{{ test_value:int }}"
-```
-
-**Supported types are `int`, `float`, `bool`, `str`.**
-
-#### py
-
-In a py config, you can set environment variables by using `os.getenv`.
-
-```python
-TEST_VALUE = os.getenv("TEST_VALUE", "default_value_here")
-```
-
-### Example `config.py` configuration file:
-
-```text
-Project/
-├── app/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.py
-├── venv/...
-└── ...
-```
-
-```python
-from flask_imp import (
- FlaskConfig,
- ImpConfig,
- DatabaseConfig
-)
-
-
-class Config(ImpConfig):
- FLASK = FlaskConfig(
- # DEBUG=False,
- # PROPAGATE_EXCEPTIONS = True,
- TRAP_HTTP_EXCEPTIONS=False,
- # TRAP_BAD_REQUEST_ERRORS = True,
- SECRET_KEY="flask-imp", # CHANGE ME
- SESSION_COOKIE_NAME="session",
- # SESSION_COOKIE_DOMAIN = "domain-here.com",
- # SESSION_COOKIE_PATH = "/",
- SESSION_COOKIE_HTTPONLY=True,
- SESSION_COOKIE_SECURE=False,
- SESSION_COOKIE_SAMESITE="Lax",
- PERMANENT_SESSION_LIFETIME=3600, # 1 hour,
- SESSION_REFRESH_EACH_REQUEST=True,
- USE_X_SENDFILE=False,
- # SEND_FILE_MAX_AGE_DEFAULT = 43200,
- ERROR_404_HELP=True,
- # SERVER_NAME = "localhost:5000",
- APPLICATION_ROOT="/",
- PREFERRED_URL_SCHEME="http",
- # MAX_CONTENT_LENGTH = 0,
- # TEMPLATES_AUTO_RELOAD = True,
- EXPLAIN_TEMPLATE_LOADING=False,
- MAX_COOKIE_SIZE=4093,
- )
-
- # This will set the default session variables for the app.
- INIT_SESSION = {
- "logged_in": False,
- }
-
- # Below are extra settings that Flask-Imp uses but relates to Flask-SQLAlchemy.
- # This sets the file extension for SQLite databases, and where to create the folder
- # that the database will be stored in.
- # True will create the folder on the same level as your
- # app, False will create the folder in the app root.
- SQLITE_DB_EXTENSION = ".sqlite"
- SQLITE_STORE_IN_PARENT = False
- #
-
- # SQLAlchemy settings that will be passed to Flask
- # Any SQLAlchemy setting here will overwrite anything
- # set in the config above
- SQLALCHEMY_ECHO = False
- SQLALCHEMY_TRACK_MODIFICATIONS = False
- SQLALCHEMY_RECORD_QUERIES = False
- #
-
- # Main database settings, this will be converted to SQLALCHEMY_DATABASE_URI
- DATABASE_MAIN = DatabaseConfig(
- ENABLED=True,
- DIALECT="sqlite",
- NAME="main",
- LOCATION="",
- PORT=0,
- USERNAME="",
- PASSWORD="",
- )
-
- # Binds are additional databases that can be used in your app
- # These will be added to the SQLALCHEMY_BINDS dictionary
- # DATABASE_BINDS = {
- # DatabaseConfig(
- # ENABLED=True,
- # DIALECT="sqlite",
- # NAME="additional_database",
- # BIND_KEY="additional_database",
- # LOCATION="",
- # PORT=0,
- # USERNAME="",
- # PASSWORD="",
- # )
- # }
-```
-
-### Example `config.toml` configuration file:
-
-```text
-Project/
-├── app/
-│ ├── ...
-│ ├── __init__.py
-│ └── config.toml
-├── venv/...
-└── ...
-```
-
-```toml
-# Flask-Imp Config File
-# ------------------------
-# Updates the Flask app config with the variables below.
-# If any variable below does not exist in the standard Flask env
-# vars it is created and will be accessible using
-# app.config. All key names defined below will be
-# capitalised when imported.
-[FLASK]
-#DEBUG = false
-#PROPAGATE_EXCEPTIONS = true
-TRAP_HTTP_EXCEPTIONS = false
-#TRAP_BAD_REQUEST_ERRORS = true
-SECRET_KEY = "super_secret_key"
-SESSION_COOKIE_NAME = "session"
-#SESSION_COOKIE_DOMAIN = "domain-here.com"
-#SESSION_COOKIE_PATH = "/"
-SESSION_COOKIE_HTTPONLY = true
-SESSION_COOKIE_SECURE = false
-SESSION_COOKIE_SAMESITE = "Lax"
-PERMANENT_SESSION_LIFETIME = 3600 # 1 hour
-SESSION_REFRESH_EACH_REQUEST = true
-USE_X_SENDFILE = false
-#SEND_FILE_MAX_AGE_DEFAULT = 43200
-ERROR_404_HELP = true
-#SERVER_NAME = "localhost:5000"
-APPLICATION_ROOT = "/"
-PREFERRED_URL_SCHEME = "http"
-#MAX_CONTENT_LENGTH = 0
-#TEMPLATES_AUTO_RELOAD = true
-EXPLAIN_TEMPLATE_LOADING = false
-MAX_COOKIE_SIZE = 4093
-
-
-# This will set the default session variables for the app.
-# Anything here will be accessible using session["your_var_name"]
-# or session.get("your_var_name")
-[SESSION]
-logged_in = false
-
-# These settings are spcific to the Flask-SQLAlchemy extension.
-# Anything here will be accessible using app.config
-[SQLALCHEMY]
-SQLALCHEMY_ECHO = false
-SQLALCHEMY_TRACK_MODIFICATIONS = false
-SQLALCHEMY_RECORD_QUERIES = false
-# Below are extra settings that Flask-Imp uses but relates to Flask-SQLAlchemy.
-# This sets the file extension for SQLite databases, and where to create the folder
-# that the database will be stored in. true will create the folder on the same level as your
-# app, false will create the folder in the app root.
-SQLITE_DB_EXTENSION = ".sqlite"
-SQLITE_STORE_IN_PARENT = true
-
-# [DATABASE.MAIN] is loaded as SQLALCHEMY_DATABASE_URI
-# Dialets = mysql / postgresql / sqlite / oracle / mssql
-
-# Uncomment below to generate the SQLALCHEMY_DATABASE_URI.
-[DATABASE.MAIN]
-ENABLED = true
-DIALECT = "sqlite"
-NAME = "database"
-LOCATION = "db"
-PORT = ""
-USERNAME = ""
-PASSWORD = ""
-
-# Adding another database is as simple as adding a new section.
-# [DATABASE.ANOTHER] will then be accessible using SQLALCHEMY_BINDS
-# The bind key will be stored as a lowercase value, so "ANOTHER" will
-# be accessible as "another"
-# You can then use the bind key in the model as follows:
-# class MyModel(db.Model):
-# __bind_key__ = "another"
-# ...
-
-# Uncomment below to generate and add to SQLALCHEMY_BINDS.
-#[DATABASE.ANOTHER]
-#ENABLED = true
-#DIALECT = "sqlite"
-#NAME = "database_another"
-#LOCATION = "db"
-#PORT = ""
-#USERNAME = "user"
-#PASSWORD = "password"
-
-```
diff --git a/archive_docs/_md/v4/Imp_x-import_app_resources.md b/archive_docs/_md/v4/Imp_x-import_app_resources.md
deleted file mode 100644
index 4504f5a3..00000000
--- a/archive_docs/_md/v4/Imp_x-import_app_resources.md
+++ /dev/null
@@ -1,106 +0,0 @@
-```
-Menu = Imp.x/import_app_resources
-Title = Imp.import_app_resources
-```
-
-```python
-import_app_resources(
- folder: str = "resources",
- factories: Optional[List] = None,
- static_folder: str = "static",
- templates_folder: str = "templates",
- files_to_import: Optional[List] = None,
- folders_to_import: Optional[List] = None,
- ) -> None
-```
-
----
-
-Import standard app resources from the specified folder.
-
-This will import any resources that have been set to the Flask app.
-
-Routes, context processors, cli, etc.
-
-**Can only be called once.**
-
-If no static and or template folder is found, the static and or template folder will be set to None in the Flask app
-config.
-
-#### Small example of usage:
-
-```python
-imp.import_app_resources(folder="resources")
-# or
-imp.import_app_resources()
-# as the default folder is "resources"
-```
-
-Folder Structure: `resources`
-
-```text
-app
-├── resources
-│ ├── routes.py
-│ ├── app_fac.py
-│ ├── static
-│ │ └── css
-│ │ └── style.css
-│ └── templates
-│ └── index.html
-└── ...
-...
-```
-
-File: `routes.py`
-
-```python
-from flask import current_app as app
-from flask import render_template
-
-
-@app.route("/")
-def index():
- return render_template("index.html")
-```
-
-#### How factories work
-
-Factories are functions that are called when importing the app resources. Here's an example:
-
-```python
-imp.import_app_resources(
- folder="resources",
- factories=["development_cli"]
-)
-```
-
-`["development_cli"]` => `development_cli(app)` function will be called, and the current app will be passed in.
-
-File: `app_fac.py`
-
-```python
-def development_cli(app):
- @app.cli.command("dev")
- def dev():
- print("dev cli command")
-```
-
-#### Scoping imports
-
-By default, all files and folders will be imported.
-
-To disable this, set `files_to_import` and or
-`folders_to_import` to `[None]`.
-
-```python
-imp.import_app_resources(scope_import=[None], folders_to_import=[None])
-```
-
-To scope the imports, set the `files_to_import` and or `folders_to_import` to a list of files and or folders.
-
-`files_to_import=["cli.py", "routes.py"]` => will only import the files `resources/cli.py`
-and `resources/routes.py`
-
-`folders_to_import=["template_filters", "context_processors"]` => will import all files in the folders
-`resources/template_filters/*.py` and `resources/context_processors/*.py`
diff --git a/archive_docs/_md/v4/Imp_x-import_blueprint.md b/archive_docs/_md/v4/Imp_x-import_blueprint.md
deleted file mode 100644
index 6439315a..00000000
--- a/archive_docs/_md/v4/Imp_x-import_blueprint.md
+++ /dev/null
@@ -1,116 +0,0 @@
-```
-Menu = Imp.x/import_blueprint
-Title = Imp.import_blueprint
-```
-
-```python
-import_blueprint(self, blueprint: str) -> None
-```
-
----
-
-Import a specified Flask-Imp or standard Flask Blueprint relative to the Flask app root.
-
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_blueprint("my_blueprint")
-
- return app
-```
-
-Flask-Imp Blueprints have the ability to import configuration from a toml file, import resources, and initialize session
-variables.
-
-For more information on how Flask-Imp Blueprints work, see the [Blueprint / Introduction](blueprint-introduction.html)
-
-##### Example of 'my_blueprint' as a Flask-Imp Blueprint:
-
-```text
-app
-├── my_blueprint
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ └── css
-│ │ └── style.css
-│ ├── templates
-│ │ └── my_blueprint
-│ │ └── index.html
-│ ├── __init__.py
-│ └── config.toml
-└── ...
-```
-
-File: `__init__.py`
-
-```python
-from flask_imp import Blueprint
-
-bp = Blueprint(__name__)
-
-bp.import_resources("routes")
-
-
-@bp.before_app_request
-def before_app_request():
- bp._init_session()
-```
-
-File: `routes / index.py`
-
-```python
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return "regular_blueprint"
-```
-
-##### Example of 'my_blueprint' as a standard Flask Blueprint:
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-└── ...
-```
-
-File: `__init__.py`
-
-```python
-from flask import Blueprint
-
-bp = Blueprint("my_blueprint", __name__, url_prefix="/my-blueprint")
-
-
-@bp.route("/")
-def index():
- return "regular_blueprint"
-```
-
-Both of the above examples will work with `imp.import_blueprint("my_blueprint")`, they will be registered
-with the Flask app, and will be accessible via `url_for("my_blueprint.index")`.
\ No newline at end of file
diff --git a/archive_docs/_md/v4/Imp_x-import_blueprints.md b/archive_docs/_md/v4/Imp_x-import_blueprints.md
deleted file mode 100644
index 5f7d3a78..00000000
--- a/archive_docs/_md/v4/Imp_x-import_blueprints.md
+++ /dev/null
@@ -1,50 +0,0 @@
-```
-Menu = Imp.x/import_blueprints
-Title = Imp.import_blueprints
-```
-
-```python
-import_blueprints(self, folder: str) -> None
-```
-
----
-
-Import all Flask-Imp or standard Flask Blueprints from a specified folder relative to the Flask app root.
-
-```text
-app/
-├── blueprints/
-│ ├── admin/
-│ │ ├── ...
-│ │ └── __init__.py
-│ ├── www/
-│ │ ├── ...
-│ │ └── __init__.py
-│ └── api/
-│ ├── ...
-│ └── __init__.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_blueprints("blueprints")
-
- return app
-```
-
-This will import all Blueprints from the `blueprints` folder using the `Imp.import_blueprint` method.
-See [Imp.x / import_blueprint](imp_x-import_blueprint.html) for more information.
\ No newline at end of file
diff --git a/archive_docs/_md/v4/Imp_x-import_models.md b/archive_docs/_md/v4/Imp_x-import_models.md
deleted file mode 100644
index 32f5e1d9..00000000
--- a/archive_docs/_md/v4/Imp_x-import_models.md
+++ /dev/null
@@ -1,83 +0,0 @@
-```
-Menu = Imp.x/import_models
-Title = Imp.import_models
-```
-
-```python
-import_models(file_or_folder: str) -> None
-```
-
----
-
-Imports all the models from the given file or folder relative to the Flask app root.
-
-Each Model that is imported will be available in the `imp.model` lookup method.
-See [Imp.x / model](imp_x-model.html) for more information.
-
-##### Example of importing models from a file
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── users_model.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-
-from flask_imp import Imp
-
-db = SQLAlchemy()
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
- db.init_app(app) # must be below imp.init_app
-
- imp.import_blueprint("my_blueprint")
- imp.import_models("users_model.py")
-
- return app
-```
-
-File: `app/users_model.py`
-
-```python
-from app import db
-
-
-class User(db.Model):
- attribute = db.Column(db.String(255))
-```
-
-##### Example of importing models from a folder
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── models/
-│ ├── boats.py
-│ ├── cars.py
-│ └── users.py
-├── ...
-└── __init__.py
-```
-
-```python
-def create_app():
- ...
- imp.import_models("models")
- ...
-```
diff --git a/archive_docs/_md/v4/Imp_x-init_app-init.md b/archive_docs/_md/v4/Imp_x-init_app-init.md
deleted file mode 100644
index bdf0a4fb..00000000
--- a/archive_docs/_md/v4/Imp_x-init_app-init.md
+++ /dev/null
@@ -1,32 +0,0 @@
-```
-Menu = Imp.x/init_app, __init__
-Title = Imp.init_app, __init__
-```
-
-```python
-def init_app(
- app: Flask,
- config: t.Union[str, ImpConfig] = os.environ.get("IMP_CONFIG")
-) -> None:
-# -or-
-Imp(
- app: Flask,
- config: t.Union[str, ImpConfig] = os.environ.get("IMP_CONFIG")
-) -> None
-```
-
----
-
-Initializes the flask app to work with flask-imp.
-
-If no `config` specified, an attempt to read `IMP_CONFIG` from the environment will be made.
-
-The config value can be a toml file `my_config.toml`, for example; or an import string. An example
-of an import string would be `config.Config` where `config` is the module and `Config` is the class.
-
-If `IMP_CONFIG` is not in the environment variables, an attempt to load `config.toml` will be made.
-
-If `config.toml` is not found, an attempt to load a class called `Config` from `config.py` will be made.
-The Config class must be an instance of `ImpConfig` `from flask_imp import ImpConfig`.
-
-An exception will be raised if none of the above methods are successful.
diff --git a/archive_docs/_md/v4/Imp_x-init_session.md b/archive_docs/_md/v4/Imp_x-init_session.md
deleted file mode 100644
index 7bdea6d6..00000000
--- a/archive_docs/_md/v4/Imp_x-init_session.md
+++ /dev/null
@@ -1,48 +0,0 @@
-```
-Menu = Imp.x/init_session
-Title = Imp.init_session
-```
-
-```python
-init_session() -> None
-```
-
----
-
-Initialize the session variables found in the config. Commonly used in `app.before_request`.
-
-```python
-@app.before_request
-def before_request():
- imp._init_session()
-```
-
-File: `config.toml`
-
-```toml
-...
-[SESSION]
-logged_in = false
-...
-```
-
-`logged_in` is now available in the session.
-
-```python
-@app.route('/get-session-value')
-def login():
- print(session['logged_in'])
- return "Check Terminal"
-```
-
-`Output: False`
-
-Can also be used to reset the values in the session. Here's an example:
-
-```python
-@app.route('/logout')
-def logout():
- session.clear()
- imp._init_session()
- return redirect(url_for('index'))
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/Imp_x-model.md b/archive_docs/_md/v4/Imp_x-model.md
deleted file mode 100644
index 71c55243..00000000
--- a/archive_docs/_md/v4/Imp_x-model.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = Imp.x/model
-Title = Imp.model
-```
-
-```python
-model(class_: str) -> DefaultMeta
-```
-
----
-
-Returns the SQLAlchemy model class for the given class name that was imported using `Imp.import_models` or
-`Blueprint.import_models`.
-
-This method has convenience for being able to omit the need to import the model class from the file it was defined in.
-However, it is not compatible with IDE type hinting.
-
-For example:
-
-```python
-from app.models.boats import Boats
-from app.models.cars import Cars
-```
-
-Can be replaced with:
-
-```python
-from app import imp
-
-Boats = imp.model("Boats")
-Cars = imp.model("Cars")
-```
-
-Or used directly:
-
-```python
-from app import imp
-
-all_boats = imp.model("Boats").select_all()
-```
-
-
-file: `models/boats.py`
-
-```python
-from app import db
-
-
-class Boats(db.Model):
- name = db.Column(db.String())
-
- @classmethod
- def select_all(cls):
- return db.session.execute(
- db.select(cls)
- ).scalars().all()
-```
diff --git a/archive_docs/_md/v4/__index__.md b/archive_docs/_md/v4/__index__.md
deleted file mode 100644
index 2c57c108..00000000
--- a/archive_docs/_md/v4/__index__.md
+++ /dev/null
@@ -1,201 +0,0 @@
-# Welcome to the Flask-Imp Documentation
-
-## What is Flask-Imp?
-
-Flask-Imp's main purpose is to help simplify the importing of blueprints, resources, and models. It has a few extra
-features built in to help with securing pages and password authentication.
-
-## Install Flask-Imp
-
-```bash
-pip install flask-imp
-```
-
-## Getting Started
-
-To get started right away, you can use the CLI commands to create a new Flask-Imp project.
-
-```bash
-flask-imp init
-```
-
-### Minimal Flask-Imp Setup
-
-Run the following command to create a minimal Flask-Imp project.
-
-```bash
-flask-imp init -n app --minimal --pyconfig
-```
-
-See [CLI Commands / flask-imp init](cli_commands-flask-imp_init.html) for more information.
-
-### The minimal structure
-
-#### Folder Structure
-
-```text
-app/
-├── resources/
-│ ├── static/...
-│ ├── templates/
-│ │ └── index.html
-│ └── index.py
-├── config.py
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_app_resources()
- # Takes argument 'folder' default folder is 'resources'
-
- return app
-```
-
-File: `app/config.py`
-
-```python
-from flask_imp import (
- FlaskConfig,
- ImpConfig,
- DatabaseConfig
-)
-
-
-class Config(ImpConfig):
- FLASK = FlaskConfig(
- # DEBUG=False,
- # PROPAGATE_EXCEPTIONS = True,
- TRAP_HTTP_EXCEPTIONS=False,
- # TRAP_BAD_REQUEST_ERRORS = True,
- SECRET_KEY="flask-imp",
- SESSION_COOKIE_NAME="session",
- # SESSION_COOKIE_DOMAIN = "domain-here.com",
- # SESSION_COOKIE_PATH = "/",
- SESSION_COOKIE_HTTPONLY=True,
- SESSION_COOKIE_SECURE=False,
- SESSION_COOKIE_SAMESITE="Lax",
- PERMANENT_SESSION_LIFETIME=3600, # 1 hour,
- SESSION_REFRESH_EACH_REQUEST=True,
- USE_X_SENDFILE=False,
- # SEND_FILE_MAX_AGE_DEFAULT = 43200,
- ERROR_404_HELP=True,
- # SERVER_NAME = "localhost:5000",
- APPLICATION_ROOT="/",
- PREFERRED_URL_SCHEME="http",
- # MAX_CONTENT_LENGTH = 0,
- # TEMPLATES_AUTO_RELOAD = True,
- EXPLAIN_TEMPLATE_LOADING=False,
- MAX_COOKIE_SIZE=4093,
- )
-
- # INIT_SESSION = {
- # "logged_in": False,
- # }
-
- # Below are extra settings that Flask-Imp uses but relates to Flask-SQLAlchemy.
- # This sets the file extension for SQLite databases, and where to create the folder
- # that the database will be stored in.
- # True will create the folder on the same level as your
- # app, False will create the folder in the app root.
- SQLITE_DB_EXTENSION = ".sqlite"
- SQLITE_STORE_IN_PARENT = False
- #
-
- # SQLAlchemy settings that will be passed to Flask
- # Any SQLAlchemy setting here will overwrite anything
- # set in the config above
- SQLALCHEMY_ECHO = False
- SQLALCHEMY_TRACK_MODIFICATIONS = False
- SQLALCHEMY_RECORD_QUERIES = False
- #
-
- # Main database settings, this will be turned int the SQLALCHEMY_DATABASE_URI
- # DATABASE_MAIN = DatabaseConfig(
- # ENABLED=True,
- # DIALECT="sqlite",
- # NAME="main",
- # LOCATION="",
- # PORT=0,
- # USERNAME="",
- # PASSWORD="",
- # )
-
- # Binds are additional databases that can be used in your app
- # These will be added to the SQLALCHEMY_BINDS dictionary
- # DATABASE_BINDS = {
- # DatabaseConfig(
- # ENABLED=True,
- # DIALECT="sqlite",
- # NAME="additional_database",
- # BIND_KEY="additional_database",
- # LOCATION="",
- # PORT=0,
- # USERNAME="",
- # PASSWORD="",
- # )
- # }
-```
-
-File: `app/resources/index.py`
-
-```python
-from flask import current_app as app
-from flask import render_template
-
-
-@app.route("/")
-def index():
- return render_template("index.html")
-```
-
-File: `app/resources/templates/index.html`
-
-```html
-
-
-
-
- Flask-Imp
-
-
-
Flask-Imp
-
-
-```
-
----
-
-Setting up a virtual environment is recommended.
-
-**Linux / Darwin**
-
-```bash
-python3 -m venv venv
-```
-
-```bash
-source venv/bin/activate
-```
-
-**Windows**
-
-```bash
-python -m venv venv
-```
-
-```text
-.\venv\Scripts\activate
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/__menu__.md b/archive_docs/_md/v4/__menu__.md
deleted file mode 100644
index 3bb5e433..00000000
--- a/archive_docs/_md/v4/__menu__.md
+++ /dev/null
@@ -1,44 +0,0 @@
-- CLI Commands
- - flask-imp init
- - flask-imp blueprint
-- Imp
- - Introduction
- - config.x
-- Blueprint
- - Introduction
- - config.x
-- Imp.x
- - init_app, __init__
- - init_session
- - import_app_resources
- - import_blueprint
- - import_blueprints
- - import_models
- - model
- - model_meta
-- Blueprint.x
- - __init__
- - init_session
- - import_resources
- - import_nested_blueprint
- - import_nested_blueprints
- - import_models
- - tmpl
-- flask_imp.security
- - login_check
- - permission_check
- - pass_function_check
- - api_login_check
- - include_csrf
-- flask_imp.auth
- - encrypt_password
- - authenticate_password
- - generate_password
- - generate_salt
- - generate_csrf_token
- - generate_private_key
- - generate_email_validator
- - generate_numeric_validator
- - generate_alphanumeric_validator
- - is_email_address_valid
- - is_username_valid
diff --git a/archive_docs/_md/v4/flask_imp_auth-authenticate_password.md b/archive_docs/_md/v4/flask_imp_auth-authenticate_password.md
deleted file mode 100644
index d255ae7a..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-authenticate_password.md
+++ /dev/null
@@ -1,63 +0,0 @@
-```
-Menu = flask_imp.auth/authenticate_password
-Title = authenticate_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import authenticate_password
-```
-
-```python
-authenticate_password(
- input_password: str,
- database_password: str,
- database_salt: str,
- encryption_level: int = 512,
- pepper_length: int = 1,
- pepper_position: t.Literal["start", "end"] = "end",
- use_multiprocessing: bool = False
-) -> bool
-```
-
----
-
-For use in password hashing.
-
-To be used alongside the [flask_imp.auth / encrypt_password](flask_imp_auth-encrypt_password.html) function.
-
-Takes the plain input password, the stored hashed password along with the stored salt
-and will try every possible combination of pepper values to find a match.
-
-**Note:**
-
-**use_multiprocessing is not compatible with coroutine workers, e.g. eventlet/gevent
-commonly used with socketio.**
-
-If you are using socketio, you must set use_multiprocessing to False (default).
-
-**Note:**
-
-- You must know the pepper length used to hash the password.
-- You must know the position of the pepper used to hash the password.
-- You must know the encryption level used to hash the password.
-
-#### Authentication Scenario:
-
-```
-Plain password: "password"
-Generated salt: "^%$*" (randomly generated)
-Generated pepper (length 1): "A" (randomly generated)
-Pepper position: "end"
-```
-
-```python
-input_password = "password"
-database_password = "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0..." # pulled from database
-database_salt = "^%$*" # pulled from database
-
-authenticate_password(
- input_password,
- database_password,
- database_salt
-) # >>> True
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-encrypt_password.md b/archive_docs/_md/v4/flask_imp_auth-encrypt_password.md
deleted file mode 100644
index 0287b119..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-encrypt_password.md
+++ /dev/null
@@ -1,53 +0,0 @@
-```
-Menu = flask_imp.auth/encrypt_password
-Title = encrypt_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import encrypt_password
-```
-
-```python
-encrypt_password(
- password: str,
- salt: str,
- encryption_level: int = 512,
- pepper_length: int = 1,
- pepper_position: t.Literal["start", "end"] = "end"
-) -> str
-```
-
----
-
-For use in password hashing.
-
-To be used alongside the [flask_imp.auth / authenticate_password](flask_imp_auth-authenticate_password.html) function.
-
-Takes the plain password, applies a pepper, salts it, then produces a digested sha512 or sha256 if specified.
-
-Can set the encryption level to 256 or 512, defaults to 512.
-
-Can set the pepper length, defaults to 1. Max is 3.
-
-Can set the pepper position, "start" or "end", defaults to "end".
-
-**Note:**
-
-- You must inform the authenticate_password function of the pepper length used to hash the password.
-- You must inform the authenticate_password function of the position of the pepper used to hash the password.
-- You must inform the authenticate_password function of the encryption level used to hash the password.
-
-#### Encryption Scenario:
-
-```
-Plain password: "password"
-Generated salt: "^%$*" (randomly generated)
-Generated pepper (length 1): "A" (randomly generated)
-Pepper position: "end"
-```
-
-1. Pepper is added to the end of the plain password: "passwordA"
-2. Salt is added to the end of the peppered password: "passwordA^%$*"
-3. Password is hashed: "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0..."
-4. Salt and hashed password are then stored in the database.
-
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md b/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md
deleted file mode 100644
index c0d0ccdc..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_alphanumeric_validator.md
+++ /dev/null
@@ -1,24 +0,0 @@
-```
-Menu = flask_imp.auth/generate_alphanumeric_validator
-Title = generate_alphanumeric_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_alphanumeric_validator
-```
-
-```python
-generate_alphanumeric_validator(length: int = 8) -> str
-```
-
----
-
-Generates a random alphanumeric string of the given length.
-
-(letters are capitalized)
-
-*Example:*
-
-```python
-generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md b/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md
deleted file mode 100644
index ce6df31b..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_csrf_token.md
+++ /dev/null
@@ -1,26 +0,0 @@
-```
-Menu = flask_imp.auth/generate_csrf_token
-Title = generate_csrf_token - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_csrf_token
-```
-
-```python
-generate_csrf_token() -> str
-```
-
----
-
-Generates a SHA1 using the current date and time.
-
-For use in Cross-Site Request Forgery.
-
-Also used by the [flask_imp.security / csrf_protect](flask_imp_security-include_csrf.html) decorator.
-
-*Example:*
-
-```python
-generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md b/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md
deleted file mode 100644
index acdced31..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_email_validator.md
+++ /dev/null
@@ -1,27 +0,0 @@
-```
-Menu = flask_imp.auth/generate_email_validator
-Title = generate_email_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_email_validator
-```
-
-```python
-generate_email_validator() -> str
-```
-
----
-
-Uses `generate_alphanumeric_validator` with a length of 8 to
-generate a random alphanumeric value for the specific use of
-validating accounts via email.
-
-See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
-for more information.
-
-*Example:*
-
-```python
-generate_email_validator() # >>> 'A1B2C3D4'
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md b/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md
deleted file mode 100644
index c0d7dc76..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_numeric_validator.md
+++ /dev/null
@@ -1,27 +0,0 @@
-```
-Menu = flask_imp.auth/generate_numeric_validator
-Title = generate_numeric_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_numeric_validator
-```
-
-```python
-generate_numeric_validator(length: int) -> int
-```
-
----
-
-
-Generates random choice between 1 * (length) and 9 * (length).
-
-If the length is 4, it will generate a number between 1111 and 9999.
-
-For use in MFA email, or unique filename generation.
-
-*Example:*
-
-```python
-generate_numeric_validator(4) # >>> 1234
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_password.md b/archive_docs/_md/v4/flask_imp_auth-generate_password.md
deleted file mode 100644
index b6f8fda0..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_password.md
+++ /dev/null
@@ -1,26 +0,0 @@
-```
-Menu = flask_imp.auth/generate_password
-Title = generate_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_password
-```
-
-```python
-generate_password(style: str = "mixed", length: int = 3) -> str
-```
-
----
-
-Generates a password of (length) characters.
-
-The Default length is 3.
-
-Style options: "animals", "colors", "mixed" - defaults to "mixed"
-
-*Example:*
-
-```python
-generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_private_key.md b/archive_docs/_md/v4/flask_imp_auth-generate_private_key.md
deleted file mode 100644
index 63938598..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_private_key.md
+++ /dev/null
@@ -1,38 +0,0 @@
-```
-Menu = flask_imp.auth/generate_private_key
-Title = generate_private_key - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_private_key
-```
-
-```python
-generate_private_key(hook: t.Optional[str]) -> str
-```
-
----
-
-Generates a sha256 private key from a passed in hook value.
-
-If no hook is passed in, it will generate a hook using datetime.now() and a
-random number between 1 and 1000.
-
-```python
-@app.route('/register', methods=['GET', 'POST'])
-def register():
- if request.method == "POST":
- ...
- salt = generate_salt()
- password = request.form.get('password')
- encrypted_password = encrypt_password(password, salt)
- ...
- user = User(
- username=username,
- email=email,
- password=encrypted_password,
- salt=salt,
- private_key=generate_private_key(hook=username)
- )
- ...
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-generate_salt.md b/archive_docs/_md/v4/flask_imp_auth-generate_salt.md
deleted file mode 100644
index f21615f5..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-generate_salt.md
+++ /dev/null
@@ -1,46 +0,0 @@
-```
-Menu = flask_imp.auth/generate_salt
-Title = generate_salt - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_salt
-```
-
-```python
-generate_salt(length: int = 4) -> str
-```
-
----
-
-Generates a string of (length) characters of punctuation.
-
-The Default length is 4.
-
-For use in password hashing and storage of passwords in the database.
-
-*Example:*
-
-```python
-generate_salt() # >>> '*!$%'
-```
-
-```python
-@app.route('/register', methods=['GET', 'POST'])
-def register():
- if request.method == "POST":
- ...
- salt = generate_salt()
- password = request.form.get('password')
- encrypted_password = encrypt_password(password, salt)
- ...
-
- user = User(
- username=username,
- email=email,
- password=encrypted_password,
- salt=salt
- )
- ...
-```
-
diff --git a/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md b/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md
deleted file mode 100644
index 1990e24a..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-is_email_address_valid.md
+++ /dev/null
@@ -1,46 +0,0 @@
-```
-Menu = flask_imp.auth/is_email_address_valid
-Title = is_email_address_valid - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import is_email_address_valid
-```
-
-```python
-is_email_address_valid(
- email_address: str
-) -> bool
-```
-
----
-
-Checks if an email address is valid.
-
-Is not completely RFC 5322 compliant, but it is good enough for most use cases.
-
-Here are examples of mistakes that it will not catch:
-
-##### Valid but fails:
-
-```text
-email@[123.123.123.123]
-“email”@example.com
-very.unusual.“@”.unusual.com@example.com
-very.“(),:;<>[]”.VERY.“very@\\ "very”.unusual@strange.example.com
-```
-
-##### Invalid but passes:
-
-```text
-email@example.com (Joe Smith)
-email@111.222.333.44444
-```
-
-*Example:*
-
-```python
-is_email_address_valid('hello@example.com') # >>> True
-
-is_email_address_valid('hello@hello@example.com') # >>> False
-```
diff --git a/archive_docs/_md/v4/flask_imp_auth-is_username_valid.md b/archive_docs/_md/v4/flask_imp_auth-is_username_valid.md
deleted file mode 100644
index 68cdf070..00000000
--- a/archive_docs/_md/v4/flask_imp_auth-is_username_valid.md
+++ /dev/null
@@ -1,58 +0,0 @@
-```
-Menu = flask_imp.auth/is_username_valid
-Title = is_username_valid - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import is_username_valid
-```
-
-```python
-is_username_valid(
- username: str,
- allowed: t.Optional[t.List[t.Literal["all", "dot", "dash", "under"]]] = None
-) -> bool
-```
-
----
-
-Checks if a username is valid.
-
-Valid usernames can only include letters,
-numbers, ., -, and _ but cannot begin or end with
-the last three mentioned.
-
-##### Example "all":
-
-```python
-is_username_valid("username", allowed=["all"])
-```
-
-Output:
-
-```text
-username : WILL PASS : True
-user.name : WILL PASS : True
-user-name : WILL PASS : True
-user_name : WILL PASS : True
-_user_name : WILL PASS : False
-```
-
-##### Example "dot", "dash":
-
-```python
-
-is_username_valid("username", allowed=["dot", "dash"])
-```
-
-Output:
-
-```text
-username : WILL PASS : True
-user.name : WILL PASS : True
-user-name : WILL PASS : True
-user-name.name : WILL PASS : True
-user_name : WILL PASS : False
-_user_name : WILL PASS : False
-.user.name : WILL PASS : False
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/flask_imp_security-api_login_check.md b/archive_docs/_md/v4/flask_imp_security-api_login_check.md
deleted file mode 100644
index e021ecbe..00000000
--- a/archive_docs/_md/v4/flask_imp_security-api_login_check.md
+++ /dev/null
@@ -1,47 +0,0 @@
-```
-Menu = flask_imp.security/api_login_check
-Title = api_login_check - flask_imp.security
-```
-
-
-```python
-from flask_imp.security import api_login_check
-```
-
-```python
-api_login_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_json: t.Optional[t.Dict[str, t.Any]] = None
-)
-```
-
-`@api_login_check(...)`
-
----
-
-A decorator that is used to secure API routes that return JSON responses.
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_json` JSON that is returned on failure. `{"error": "You are not logged in."}` by default.
-
-*Example:*
-
-```python
-@bp.route("/api/resource", methods=["GET"])
-@api_login_check('logged_in', True)
-def api_page():
- ...
-```
-
-##### Example of defined fail_json:
-
-```python
-@bp.route("/api/resource", methods=["GET"])
-@api_login_check('logged_in', True, fail_json={"failed": "You need to be logged in."})
-def api_page():
- ...
-```
diff --git a/archive_docs/_md/v4/flask_imp_security-include_csrf.md b/archive_docs/_md/v4/flask_imp_security-include_csrf.md
deleted file mode 100644
index 5f367974..00000000
--- a/archive_docs/_md/v4/flask_imp_security-include_csrf.md
+++ /dev/null
@@ -1,48 +0,0 @@
-```
-Menu = flask_imp.security/include_csrf
-Title = include_csrf - flask_imp.security
-```
-
-```python
-from flask_imp.security import include_csrf
-```
-
-```python
-include_csrf(
- session_key: str = "csrf",
- form_key: str = "csrf",
- abort_code: int = 401
-)
-```
-
-`@include_csrf(...)`
-
----
-
-
-A decorator that handles CSRF protection.
-
-On a **GET** request, a CSRF token is generated and stored in the session key
-specified by the session_key parameter.
-
-On a **POST** request, the form_key specified is checked against the session_key
-specified.
-
-- If they match, the request is allowed to continue.
-- If no match, the response will be abort(abort_code), default 401.
-
-```python
-@bp.route("/admin", methods=["GET", "POST"])
-@include_csrf(session_key="csrf", form_key="csrf")
-def admin_page():
- ...
- # You must pass in the CSRF token from the session into the template.
- # Then add to the form.
- return render_template("admin.html", csrf=session.get("csrf"))
-```
-
-Form key:
-
-```html
-
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v4/flask_imp_security-login_check.md b/archive_docs/_md/v4/flask_imp_security-login_check.md
deleted file mode 100644
index f95cebde..00000000
--- a/archive_docs/_md/v4/flask_imp_security-login_check.md
+++ /dev/null
@@ -1,66 +0,0 @@
-```
-Menu = flask_imp.security/login_check
-Title = login_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import login_check
-```
-
-```python
-login_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_endpoint: t.Optional[str] = None,
- pass_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message"
-)
-```
-
-`@login_check(...)`
-
----
-
-A decorator that checks if the specified session key exists and contains the specified value.
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_endpoint` The endpoint to redirect to if the session key does not exist or does not contain the specified values.
-
-`endpoint_kwargs` A dictionary of keyword arguments to pass to the redirect endpoint.
-
-`message` If a message is specified, a flash message is shown.
-
-`message_category` The category of the flash message.
-
-##### Example of a route that requires a user to be logged in:
-
-```python
-@bp.route("/admin", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- fail_endpoint='blueprint.login_page',
- message="Login needed"
-)
-def admin_page():
- ...
-```
-
-##### Example of a route that if the user is already logged in, redirects to the specified endpoint:
-
-```python
-@bp.route("/login-page", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- pass_endpoint='blueprint.admin_page',
- message="Already logged in"
-)
-def login_page():
- ...
-```
diff --git a/archive_docs/_md/v4/flask_imp_security-pass_function_check.md b/archive_docs/_md/v4/flask_imp_security-pass_function_check.md
deleted file mode 100644
index 07ed2f35..00000000
--- a/archive_docs/_md/v4/flask_imp_security-pass_function_check.md
+++ /dev/null
@@ -1,114 +0,0 @@
-```
-Menu = flask_imp.security/pass_function_check
-Title = pass_function_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import pass_function_check
-```
-
-```python
-def pass_function_check(
- function: t.Callable,
- predefined_args: t.Optional[t.Dict] = None,
- fail_endpoint: t.Optional[str] = None,
- pass_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message",
- fail_on_missing_kwargs: bool = False,
- with_app_context: bool = False,
-)
-```
-
-**NOTE: This was added mostly as an experimental feature, but ended up being useful in some cases.**
-
-A decorator that takes the result of a function and checks if it is True or False.
-
-URL variables from `@route` will be read by this decorator.
-To use URL variables in your passed in function,
-make sure your functions argument(s) name(s) match the name(s) of the URL variable(s).
-
-**Example:**
-
-```python
-def check_if_number(value):
- if isinstance(value, int):
- return True
- return False
-
-@bp.route("/admin-page/", methods=["GET"])
-@login_check('logged_in', True, 'blueprint.login_page') # can be mixed with login_check
-@pass_function_check(
- check_if_number,
- predefined_args=None,
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page():
- ...
-
-@bp.route("/admin-page/", methods=["GET"])
-@login_check('logged_in', True, 'blueprint.login_page') # can be mixed with login_check
-@pass_function_check(
- check_if_number,
- predefined_args={'value': 10},
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page_overwrite():
- ...
-```
-
-**Advanced use case:**
-
-Here's an example of accessing flask.session from within the passed in function. including the
-`with_app_context` parameter, the function will be called with `app_context()`.
-
-```python
-from flask import current_app
-from flask import session
-
-...
-
-def check_if_number(number=1, session_=None):
- if session_:
- print(session_)
- try:
- int(number)
- return True
- except ValueError:
- return False
-
-@bp.route("/pass-func-check-with-url-var/", methods=["GET"])
-@pass_function_check(
- check_if_number,
- predefined_args={'number': 10, 'session_': session},
- fail_endpoint="www.index",
- with_app_context=True
-)
-def admin_page_overwrite_with_session():
- ...
-```
-
-If you pass in a predefined arg that has the same key name as a session variable that exists, the value
-of that predefined arg will be replaced with the session variable value.
-
-```python
-session['car'] = 'Toyota'
-...
-def check_function(car):
- if car == 'Toyota':
- return True
- return False
-...
-@bp.route("/pass-func-check-with-url-var/", methods=["GET"])
-@pass_function_check(
- check_function,
- predefined_args={'car': session},
- ...
-
-```
-
-This will pass, as pass_function_check will replace the value of the predefined arg 'car' with the value
-of the session variable 'car'.
diff --git a/archive_docs/_md/v4/flask_imp_security-permission_check.md b/archive_docs/_md/v4/flask_imp_security-permission_check.md
deleted file mode 100644
index 73278e12..00000000
--- a/archive_docs/_md/v4/flask_imp_security-permission_check.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = flask_imp.security/permission_check
-Title = permission_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import permission_check
-```
-
-```python
-permission_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message"
-)
-```
-
-`@permission_check(...)`
-
----
-
-A decorator that checks if the specified session key exists and its value(s) match the specified value(s).
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_endpoint` The endpoint to redirect to if the session key does not exist or does not contain the specified values.
-
-`endpoint_kwargs` A dictionary of keyword arguments to pass to the redirect endpoint.
-
-`message` If a message is specified, a flash message is shown.
-
-`message_category` The category of the flash message.
-
-*Example:*
-
-```python
-@bp.route("/admin-page", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- 'blueprint.login_page'
-) # can be mixed with login_check
-@permission_check(
- 'permissions',
- ['admin'],
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page():
- ...
-```
-
diff --git a/archive_docs/_md/v5/CLI Commands-flask-imp blueprint.md b/archive_docs/_md/v5/CLI Commands-flask-imp blueprint.md
deleted file mode 100644
index fe2191c6..00000000
--- a/archive_docs/_md/v5/CLI Commands-flask-imp blueprint.md
+++ /dev/null
@@ -1,101 +0,0 @@
-```
-Menu = CLI Commands/flask-imp blueprint
-Title = Generate a Flask-Imp Blueprint
-```
-
-Flask-Imp has its own type of blueprint. It comes with some methods to auto import routes, and models etc... see
-[ImpBlueprint / Introduction](impblueprint-introduction.html) for more information.
-
-You have the option to generate a regular template rendering blueprint, or a API blueprint that returns a JSON response.
-
-```bash
-flask-imp blueprint --help
-```
-or
-```bash
-flask-imp api-blueprint --help
-```
-
-To generate a Flask-Imp blueprint, run the following command:
-
-```bash
-flask-imp blueprint
-```
-or
-```bash
-flask-imp api-blueprint
-```
-
-After running this command, you will be prompted to enter the location of where you want to create your blueprint:
-
-```text
-~ $ flask-imp blueprint
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]:
-```
-
-As detailed in the prompt, the creation of the blueprint is relative to the current working directory. So to create a
-blueprint in the folder `app/blueprints`, you would enter `app/blueprints` in the prompt.
-
-```text
-~ $ flask-imp blueprint
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-```
-
-You will then be prompted to enter a name for your blueprint:
-
-```text
-~ $ flask-imp blueprint
-...
-Name of the blueprint to create [my_new_blueprint]:
-```
-
-The default name is 'my_new_blueprint', we will change this to 'admin'
-
-```text
-~ $ flask-imp blueprint
-...
-Name of the blueprint to create [my_new_blueprint]: admin
-```
-
-After creating your blueprint, the folder structure will look like this:
-
-```text
-app/
-├── blueprints
-│ └── admin
-│ ├── routes
-│ │ └── index.py
-│ │
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ │
-│ ├── templates
-│ │ └── www
-│ │ ├── extends
-│ │ │ └── main.html
-│ │ ├── includes
-│ │ │ ├── footer.html
-│ │ │ └── header.html
-│ │ └── index.html
-│ │
-│ └── __init__.py
-│
-...
-```
-
-This is a self-contained blueprint, so it has its own static, templates and routes folders.
-You can now navigate '/admin'
-
-You can streamline this process by specifying the name of the blueprint, the folder to
-create it in and the configuration to use, like so:
-
-```bash
-flask-imp blueprint -n admin -f app/blueprints
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/CLI Commands-flask-imp init.md b/archive_docs/_md/v5/CLI Commands-flask-imp init.md
deleted file mode 100644
index d4144b43..00000000
--- a/archive_docs/_md/v5/CLI Commands-flask-imp init.md
+++ /dev/null
@@ -1,218 +0,0 @@
-```
-Menu = CLI Commands/flask-imp init
-Title = Initialising a Flask-Imp Project
-```
-
-Flask-Imp has a cli command that deploys a new ready-to-go project.
-This project is structured in a way to give you the best idea of
-how to use Flask-Imp.
-
-```bash
-flask-imp init --help
-```
-
-## Create a new project
-
-Make sure you are in the virtual environment, and at the root of your
-project folder, then run the following command:
-
-```bash
-flask-imp init
-```
-
-After running this command, you will be prompted to choose what type of
-app you want to deploy:
-
-```text
-~ $ flask-imp init
-What type of app would you like to create? (minimal, slim, full) [minimal]:
-```
-
-See below for the differences between the app types.
-
-After this, you will be prompted to enter a name for your app:
-
-```text
-~ $ flask-imp init
-...
-What would you like to call your app? [app]:
-```
-
-'app' is the default name, so if you just press enter, your app will be
-called 'app'. You will then see this output:
-
-```text
-~ FILES CREATED WILL LOOP OUT HERE ~
-
-===================
-Flask app deployed!
-===================
-
-Your app has the default name of 'app'
-Flask will automatically look for this!
-Run: flask run --debug
-
-```
-
-If you called your app something other than 'app', like 'new' for example, you will see:
-
-```text
-~ FILES CREATED WILL LOOP OUT HERE ~
-
-===================
-Flask app deployed!
-===================
-
-Your app has the name of 'new'
-Run: flask --app new run --debug
-
-```
-
-As you can see from the output, it gives you instructions on how to start your app,
-depending on the name you gave it.
-
-You should see a new folder that has been given the name you specified in
-the `flask-imp init` command.
-
-### Additional options
-
-You can also specify a name for your app in the command itself, like so:
-
-```bash
-flask-imp init -n my_app
-```
-
-This will create a new app called 'my_app'.
-The default will be a minimal app, this has no blueprints or database models.
-
-You can also deploy a slim app, that will have one blueprint and no database models, like so:
-
-```bash
-flask-imp init -n my_app --slim
-```
-
-You can also deploy a full app that is setup for multiple blueprints and database models, like so:
-
-```bash
-flask-imp init -n my_app --full
-```
-
-## init Folder structures
-
-### Minimal app (default)
-
-`flask-imp init --minimal`:
-
-```text
-app/
-├── resources
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── favicon.ico
-│ ├── templates
-│ │ └── index.html
-│ └── routes.py
-│
-└── __init__.py
-```
-
-### Slim app
-
-`flask-imp init --slim`:
-
-```text
-app/
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── cli
-│ │ └── cli.py
-│ ├── error_handlers
-│ │ └── error_handlers.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── favicon.ico
-│ └── templates
-│ └── error.html
-│
-├── www
-│ ├── __init__.py
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ └── templates
-│ └── www
-│ ├── extends
-│ │ └── main.html
-│ ├── includes
-│ │ ├── footer.html
-│ │ └── header.html
-│ └── index.html
-│
-└── __init__.py
-```
-
-### Full app
-
-`flask-imp init --full`:
-
-```text
-app/
-├── blueprints
-│ └── www
-│ ├── __init__.py
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ ├── css
-│ │ │ └── water.css
-│ │ ├── img
-│ │ │ └── flask-imp-logo.png
-│ │ └── js
-│ │ └── main.js
-│ └── templates
-│ └── www
-│ ├── extends
-│ │ └── main.html
-│ ├── includes
-│ │ ├── footer.html
-│ │ └── header.html
-│ └── index.html
-│
-├── extensions
-│ └── __init__.py
-│
-├── resources
-│ ├── cli
-│ │ └── cli.py
-│ ├── context_processors
-│ │ └── context_processors.py
-│ ├── error_handlers
-│ │ └── error_handlers.py
-│ ├── filters
-│ │ └── filters.py
-│ ├── routes
-│ │ └── routes.py
-│ ├── static
-│ │ └── favicon.ico
-│ └── templates
-│ └── error.html
-│
-├── models
-│ └── example_user_table.py
-│
-└── __init__.py
-```
diff --git a/archive_docs/_md/v5/Imp-Introduction.md b/archive_docs/_md/v5/Imp-Introduction.md
deleted file mode 100644
index e4a8479b..00000000
--- a/archive_docs/_md/v5/Imp-Introduction.md
+++ /dev/null
@@ -1,92 +0,0 @@
-```
-Menu = Imp/Introduction
-Title = Flask-Imp Introduction
-```
-
-Flask-Imp is a Flask extension that provides auto import methods for various Flask resources. It will import models,
-blueprints, and other resources. It uses the importlib module to achieve this.
-
-Flask-Imp favors the application factory pattern as a project structure, and is opinionated towards using
-Blueprints. However, you can use Flask-Imp without using Blueprints.
-
-Here's an example of a standard Flask-Imp project structure:
-
-```text
-app/
-├── blueprints/
-│ ├── admin/...
-│ ├── api/...
-│ └── www/...
-├── resources/
-│ ├── filters/...
-│ ├── context_processors/...
-│ ├── static/...
-│ └── templates/...
-├── models/...
-└── __init__.py
-```
-
-Here's an example of the `app/__init__.py` file:
-
-```python
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-from flask_imp import Imp
-from flask_imp.config import FlaskConfig, ImpConfig
-
-db = SQLAlchemy()
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- FlaskConfig(
- secret_key="super_secret_key",
- app_instance=app,
- )
-
- imp.init_app(app, config=ImpConfig(
- init_session={"logged_in": False},
- ))
- imp.import_app_resources("resources")
- imp.import_models("models")
- imp.import_blueprints("blueprints")
-
- db.init_app(app)
-
- return app
-```
-
-The Flask configuration can be loaded from any standard Flask configuration method, or from the `FlaskConfig` class
-shown above.
-
-This class contains the standard Flask configuration options found in the Flask documentation.
-
-The `ImpConfig` class is used to configure the `Imp` instance.
-
-The `init_session` option of the `ImpConfig` class is used to set the initial session variables for the Flask app.
-This happens before the request is processed.
-
-`ImpConfig` also has the ability to set `SQLALCHEMY_DATABASE_URI` and `SQLALCHEMY_BINDS`
-
-For more information about the configuration setting see
-[flask_imp_config-impconfig.md](flask_imp_config-impconfig.html).
-
-`import_app_resources` will walk one level deep into the `resources` folder, and import
-all `.py` files as modules.
-It will also check for the existence of a `static` and `templates` folder, and register them with the Flask app.
-
-There is a couple of options for `import_app_resources` to control what
-is imported, see: [Imp / import_app_resources](imp-import_app_resources.html)
-
-`import_models` will import all Model classes from the specified file or folder. It will also place each model found
-into a lookup table that you can access via `imp.model`
-
-See more about how import_models and the lookup
-here: [Imp / import_models](imp-import_models.html) and [Imp / model](imp-model.html)
-
-`import_blueprints` expects a folder that contains many Blueprint as Python packages.
-It will check each blueprint folder's `__init__.py` file for an instance of a Flask Blueprint or a
-Flask-Imp Blueprint. That instant will then be registered with the Flask app.
-
-See more about how importing blueprints work here: [ImpBlueprint / Introduction](impblueprint-introduction.html)
diff --git a/archive_docs/_md/v5/Imp-import_app_resources.md b/archive_docs/_md/v5/Imp-import_app_resources.md
deleted file mode 100644
index 3f0f3ec4..00000000
--- a/archive_docs/_md/v5/Imp-import_app_resources.md
+++ /dev/null
@@ -1,106 +0,0 @@
-```
-Menu = Imp/import_app_resources
-Title = Imp.import_app_resources
-```
-
-```python
-import_app_resources(
- folder: str = "resources",
- factories: Optional[List] = None,
- static_folder: str = "static",
- templates_folder: str = "templates",
- files_to_import: Optional[List] = None,
- folders_to_import: Optional[List] = None,
- ) -> None
-```
-
----
-
-Import standard app resources from the specified folder.
-
-This will import any resources that have been set to the Flask app.
-
-Routes, context processors, cli, etc.
-
-**Can only be called once.**
-
-If no static and or template folder is found, the static and or template folder will be set to None in the Flask app
-config.
-
-#### Small example of usage:
-
-```python
-imp.import_app_resources(folder="resources")
-# or
-imp.import_app_resources()
-# as the default folder is "resources"
-```
-
-Folder Structure: `resources`
-
-```text
-app
-├── resources
-│ ├── routes.py
-│ ├── app_fac.py
-│ ├── static
-│ │ └── css
-│ │ └── style.css
-│ └── templates
-│ └── index.html
-└── ...
-...
-```
-
-File: `routes.py`
-
-```python
-from flask import current_app as app
-from flask import render_template
-
-
-@app.route("/")
-def index():
- return render_template("index.html")
-```
-
-#### How factories work
-
-Factories are functions that are called when importing the app resources. Here's an example:
-
-```python
-imp.import_app_resources(
- folder="resources",
- factories=["development_cli"]
-)
-```
-
-`["development_cli"]` => `development_cli(app)` function will be called, and the current app will be passed in.
-
-File: `app_fac.py`
-
-```python
-def development_cli(app):
- @app.cli.command("dev")
- def dev():
- print("dev cli command")
-```
-
-#### Scoping imports
-
-By default, all files and folders will be imported.
-
-To disable this, set `files_to_import` and or
-`folders_to_import` to `[None]`.
-
-```python
-imp.import_app_resources(scope_import=[None], folders_to_import=[None])
-```
-
-To scope the imports, set the `files_to_import` and or `folders_to_import` to a list of files and or folders.
-
-`files_to_import=["cli.py", "routes.py"]` => will only import the files `resources/cli.py`
-and `resources/routes.py`
-
-`folders_to_import=["template_filters", "context_processors"]` => will import all files in the folders
-`resources/template_filters/*.py` and `resources/context_processors/*.py`
diff --git a/archive_docs/_md/v5/Imp-import_blueprint.md b/archive_docs/_md/v5/Imp-import_blueprint.md
deleted file mode 100644
index 6613538e..00000000
--- a/archive_docs/_md/v5/Imp-import_blueprint.md
+++ /dev/null
@@ -1,121 +0,0 @@
-```
-Menu = Imp/import_blueprint
-Title = Imp.import_blueprint
-```
-
-```python
-import_blueprint(self, blueprint: str) -> None
-```
-
----
-
-Import a specified Flask-Imp or standard Flask Blueprint relative to the Flask app root.
-
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_blueprint("my_blueprint")
-
- return app
-```
-
-Flask-Imp Blueprints have the ability to auto import resources, and initialize session variables.
-
-For more information on how Flask-Imp Blueprints work, see the [ImpBlueprint / Introduction](impblueprint-introduction.html)
-
-##### Example of 'my_blueprint' as a Flask-Imp Blueprint:
-
-```text
-app
-├── my_blueprint
-│ ├── routes
-│ │ └── index.py
-│ ├── static
-│ │ └── css
-│ │ └── style.css
-│ ├── templates
-│ │ └── my_blueprint
-│ │ └── index.html
-│ ├── __init__.py
-│ └── config.toml
-└── ...
-```
-
-File: `__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(
- __name__,
- ImpBlueprintConfig(
- enabled=True,
- url_prefix="/my-blueprint",
- static_folder="static",
- template_folder="templates",
- static_url_path="/static/my_blueprint",
- init_session={"my_blueprint": "session_value"},
- ),
-)
-
-bp.import_resources("routes")
-```
-
-File: `routes / index.py`
-
-```python
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return "regular_blueprint"
-```
-
-##### Example of 'my_blueprint' as a standard Flask Blueprint:
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-└── ...
-```
-
-File: `__init__.py`
-
-```python
-from flask import Blueprint
-
-bp = Blueprint("my_blueprint", __name__, url_prefix="/my-blueprint")
-
-
-@bp.route("/")
-def index():
- return "regular_blueprint"
-```
-
-Both of the above examples will work with `imp.import_blueprint("my_blueprint")`, they will be registered
-with the Flask app, and will be accessible via `url_for("my_blueprint.index")`.
\ No newline at end of file
diff --git a/archive_docs/_md/v5/Imp-import_blueprints.md b/archive_docs/_md/v5/Imp-import_blueprints.md
deleted file mode 100644
index e3087235..00000000
--- a/archive_docs/_md/v5/Imp-import_blueprints.md
+++ /dev/null
@@ -1,50 +0,0 @@
-```
-Menu = Imp/import_blueprints
-Title = Imp.import_blueprints
-```
-
-```python
-import_blueprints(self, folder: str) -> None
-```
-
----
-
-Import all Flask-Imp or standard Flask Blueprints from a specified folder relative to the Flask app root.
-
-```text
-app/
-├── blueprints/
-│ ├── admin/
-│ │ ├── ...
-│ │ └── __init__.py
-│ ├── www/
-│ │ ├── ...
-│ │ └── __init__.py
-│ └── api/
-│ ├── ...
-│ └── __init__.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
-
- imp.import_blueprints("blueprints")
-
- return app
-```
-
-This will import all Blueprints from the `blueprints` folder using the `Imp.import_blueprint` method.
-See [Imp / import_blueprint](imp-import_blueprint.html) for more information.
\ No newline at end of file
diff --git a/archive_docs/_md/v5/Imp-import_models.md b/archive_docs/_md/v5/Imp-import_models.md
deleted file mode 100644
index 90f85edb..00000000
--- a/archive_docs/_md/v5/Imp-import_models.md
+++ /dev/null
@@ -1,83 +0,0 @@
-```
-Menu = Imp/import_models
-Title = Imp.import_models
-```
-
-```python
-import_models(file_or_folder: str) -> None
-```
-
----
-
-Imports all the models from the given file or folder relative to the Flask app root.
-
-Each Model that is imported will be available in the `imp.model` lookup method.
-See [Imp / model](imp-model.html) for more information.
-
-##### Example of importing models from a file
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── users_model.py
-├── ...
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-
-from flask_imp import Imp
-
-db = SQLAlchemy()
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__)
- imp.init_app(app)
- db.init_app(app) # must be below imp.init_app
-
- imp.import_blueprint("my_blueprint")
- imp.import_models("users_model.py")
-
- return app
-```
-
-File: `app/users_model.py`
-
-```python
-from app import db
-
-
-class User(db.Model):
- attribute = db.Column(db.String(255))
-```
-
-##### Example of importing models from a folder
-
-```text
-app
-├── my_blueprint
-│ ├── ...
-│ └── __init__.py
-├── models/
-│ ├── boats.py
-│ ├── cars.py
-│ └── users.py
-├── ...
-└── __init__.py
-```
-
-```python
-def create_app():
- ...
- imp.import_models("models")
- ...
-```
diff --git a/archive_docs/_md/v5/Imp-init_app-init.md b/archive_docs/_md/v5/Imp-init_app-init.md
deleted file mode 100644
index 4bff0f9c..00000000
--- a/archive_docs/_md/v5/Imp-init_app-init.md
+++ /dev/null
@@ -1,22 +0,0 @@
-```
-Menu = Imp/init_app, __init__
-Title = Imp.init_app, __init__
-```
-
-```python
-def init_app(
- app: Flask,
- config: ImpConfig
-) -> None:
-# -or-
-Imp(
- app: Flask,
- config: ImpConfig
-)
-```
-
----
-
-Initializes the flask app to work with flask-imp.
-
-See [flask_imp_config-impconfig.md](flask_imp_config-impconfig.html) for more information on the `ImpConfig` class.
diff --git a/archive_docs/_md/v5/Imp-init_session.md b/archive_docs/_md/v5/Imp-init_session.md
deleted file mode 100644
index 92d80b37..00000000
--- a/archive_docs/_md/v5/Imp-init_session.md
+++ /dev/null
@@ -1,48 +0,0 @@
-```
-Menu = Imp/init_session
-Title = Imp.init_session
-```
-
-```python
-init_session() -> None
-```
-
----
-
-Initialize the session variables found in the config. Commonly used in `app.before_request`.
-
-```python
-@app.before_request
-def before_request():
- imp._init_session()
-```
-
-File: `config.toml`
-
-```toml
-...
-[SESSION]
-logged_in = false
-...
-```
-
-`logged_in` is now available in the session.
-
-```python
-@app.route('/get-session-value')
-def login():
- print(session['logged_in'])
- return "Check Terminal"
-```
-
-`Output: False`
-
-Can also be used to reset the values in the session. Here's an example:
-
-```python
-@app.route('/logout')
-def logout():
- session.clear()
- imp._init_session()
- return redirect(url_for('index'))
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/Imp-model.md b/archive_docs/_md/v5/Imp-model.md
deleted file mode 100644
index ce8e061e..00000000
--- a/archive_docs/_md/v5/Imp-model.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = Imp/model
-Title = Imp.model
-```
-
-```python
-model(class_: str) -> DefaultMeta
-```
-
----
-
-Returns the SQLAlchemy model class for the given class name that was imported using `Imp.import_models` or
-`Blueprint.import_models`.
-
-This method has convenience for being able to omit the need to import the model class from the file it was defined in.
-However, it is not compatible with IDE type hinting.
-
-For example:
-
-```python
-from app.models.boats import Boats
-from app.models.cars import Cars
-```
-
-Can be replaced with:
-
-```python
-from app import imp
-
-Boats = imp.model("Boats")
-Cars = imp.model("Cars")
-```
-
-Or used directly:
-
-```python
-from app import imp
-
-all_boats = imp.model("Boats").select_all()
-```
-
-
-file: `models/boats.py`
-
-```python
-from app import db
-
-
-class Boats(db.Model):
- name = db.Column(db.String())
-
- @classmethod
- def select_all(cls):
- return db.session.execute(
- db.select(cls)
- ).scalars().all()
-```
diff --git a/archive_docs/_md/v5/ImpBlueprint-Introduction.md b/archive_docs/_md/v5/ImpBlueprint-Introduction.md
deleted file mode 100644
index 5ab0b5ec..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-Introduction.md
+++ /dev/null
@@ -1,75 +0,0 @@
-```
-Menu = ImpBlueprint/Introduction
-Title = Flask-Imp Blueprint Introduction
-```
-
-The Flask-Imp Blueprint inherits from the Flask Blueprint class, then adds some additional methods to allow for auto
-importing of models, resources and other nested blueprints.
-
-The Flask-Imp Blueprint requires you to provide the `ImpBlueprintConfig` class as the second argument to the Blueprint.
-
-Here's an example of a Flask-Imp Blueprint structure:
-
-```text
-www/
-├── nested_blueprints/
-│ ├── blueprint_one/
-│ │ ├── ...
-│ │ └── __init__.py
-│ └── blueprint_two/
-│ ├── ...
-│ └── __init__.py
-├── standalone_nested_blueprint/
-│ ├── ...
-│ └── __init__.py
-├── models/
-│ └── ...
-├── routes/
-│ └── index.py
-├── static/
-│ └── ...
-├── templates/
-│ └── www/
-│ └── index.html
-└── __init__.py
-```
-
-File: `__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- url_prefix="/www",
- static_folder="static",
- template_folder="templates",
- init_session={"logged_in": False},
-))
-
-bp.import_resources("routes")
-bp.import_models("models")
-bp.import_nested_blueprints("nested_blueprints")
-bp.import_nested_blueprint("standalone_nested_blueprint")
-```
-
-The `ImpBlueprintConfig` class is used to configure the Blueprint. It provides a little more flexibility than the
-standard Flask Blueprint configuration, like the ability to enable or disable the Blueprint.
-
-`ImpBlueprintConfig`'s `init_session` works the same as `ImpConfig`'s `init_session`, this will add the session data to
-the Flask app's session object on initialization of the Flask app.
-
-To see more about configuration see: [flask_imp.config / ImpBlueprintConfig](flask_imp_config-impblueprintconfig.html)
-
-`import_resources` method will walk one level deep into the `routes` folder, and import all `.py` files as modules.
-For more information see: [ImpBlueprint / import_resources](impblueprint-import_resources.html)
-
-`import_models` works the same as `imp.import_models`, it will look for instances of `db.Model` and import them. These
-will also be available in the model lookup method `imp.model`.
-For more information see: [Imp / import_models](imp-import_models.html)
-
-`import_nested_blueprints` will do the same as `imp.import_blueprints`, but will register the blueprints found as
-nested to the current blueprint. For example `www.blueprint_one.index`
-
-`import_nested_blueprint` behaves the same as `import_nested_blueprints`, but will only import a single blueprint.
diff --git a/archive_docs/_md/v5/ImpBlueprint-import_models.md b/archive_docs/_md/v5/ImpBlueprint-import_models.md
deleted file mode 100644
index a8c44a1e..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-import_models.md
+++ /dev/null
@@ -1,88 +0,0 @@
-```
-Menu = ImpBlueprint/import_models
-Title = ImpBlueprint.import_models
-```
-
-```python
-import_models(folder: str = "models") -> None
-```
-
----
-
-Will import all the models from the given folder relative to the Blueprint's root directory.
-
-Works the same as [Imp / import_models](imp-import_models.html) but relative to the Blueprint root.
-
-Blueprint models will also be available in the [Imp / model](imp-model.html) lookup.
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── animal_models.py
-│
-├── __init__.py
-```
-
-**or**
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── models/
-│ └── animals.py
-│
-├── __init__.py
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- static_folder="static",
- template_folder="templates",
-))
-
-bp.import_resources("routes")
-bp.import_models("animal_models.py")
-```
-
-**or**
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- static_folder="static",
- template_folder="templates",
-))
-
-bp.import_resources("routes")
-bp.import_models("models")
-```
-
-File: `my_blueprint/animal_models.py` or `my_blueprint/models/animals.py`
-
-```python
-from app import db
-
-
-class Animals(db.Model):
- animal_id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(64), index=True, unique=True)
- species = db.Column(db.String(64), index=True, unique=True)
-```
-
-
-
diff --git a/archive_docs/_md/v5/ImpBlueprint-import_nested_blueprint.md b/archive_docs/_md/v5/ImpBlueprint-import_nested_blueprint.md
deleted file mode 100644
index 1bed20dc..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-import_nested_blueprint.md
+++ /dev/null
@@ -1,78 +0,0 @@
-```
-Menu = ImpBlueprint/import_nested_blueprint
-Title = ImpBlueprint.import_nested_blueprint
-```
-
-```python
-import_nested_blueprint(self, blueprint: str) -> None
-```
-
----
-
-Import a specified Flask-Imp or standard Flask Blueprint relative to the Blueprint root.
-
-Works the same as [Imp / import_blueprint](imp-import_blueprint.html) but relative to the Blueprint root.
-
-Blueprints that are imported this way will be scoped to the parent Blueprint that imported them.
-
-`url_for('my_blueprint.my_nested_blueprint.index')`
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── my_nested_blueprint/
-│ ├── routes/
-│ │ └── index.py
-│ ├── static/...
-│ ├── templates/...
-│ ├── __init__.py
-│
-├── __init__.py
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- static_folder="static",
- template_folder="templates",
-))
-
-bp.import_resources("routes")
-bp.import_nested_blueprint("my_nested_blueprint")
-```
-
-File: `my_blueprint/my_nested_blueprint/__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- static_folder="static",
- template_folder="templates",
-))
-
-bp.import_resources("routes")
-```
-
-File: `my_blueprint/my_nested_blueprint/routes/index.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return render_template(bp.tmpl("index.html"))
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/ImpBlueprint-import_nested_blueprints.md b/archive_docs/_md/v5/ImpBlueprint-import_nested_blueprints.md
deleted file mode 100644
index d14fa862..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-import_nested_blueprints.md
+++ /dev/null
@@ -1,60 +0,0 @@
-```
-Menu = ImpBlueprint/import_nested_blueprints
-Title = ImpBlueprint.import_nested_blueprints
-```
-
-```python
-import_nested_blueprints(self, folder: str) -> None
-```
-
----
-
-Will import all the Blueprints from the given folder relative to the Blueprint's root directory.
-
-Uses [Blueprint / import_nested_blueprint](blueprint-import_nested_blueprint.html) to import blueprints from
-the specified folder.
-
-Blueprints that are imported this way will be scoped to the parent Blueprint that imported them.
-
-`url_for('my_blueprint.nested_bp_one.index')`
-
-`url_for('my_blueprint.nested_bp_two.index')`
-
-`url_for('my_blueprint.nested_bp_three.index')`
-
-```text
-my_blueprint/
-├── routes/...
-├── static/...
-├── templates/...
-│
-├── nested_blueprints/
-│ │
-│ ├── nested_bp_one/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ ├── nested_bp_two/
-│ │ ├── ...
-│ │ ├── __init__.py
-│ └── nested_bp_three/
-│ ├── ...
-│ ├── __init__.py
-│
-├── __init__.py
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- static_folder="static",
- template_folder="templates",
-))
-
-bp.import_resources("routes")
-bp.import_nested_blueprints("nested_blueprints")
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/ImpBlueprint-import_resources.md b/archive_docs/_md/v5/ImpBlueprint-import_resources.md
deleted file mode 100644
index 16bbea2e..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-import_resources.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = ImpBlueprint/import_resources
-Title = ImpBlueprint.import_resources
-```
-
-```python
-import_resources(folder: str = "routes") -> None
-```
-
----
-
-Will import all the resources (cli, routes, filters, context_processors...) from the given folder relative to the
-Blueprint's root directory.
-
-```text
-my_blueprint
-├── user_routes
-│ ├── user_dashboard.py
-│ └── user_settings.py
-├── car_routes
-│ ├── car_dashboard.py
-│ └── car_settings.py
-├── static/...
-├── templates/
-│ └── my_blueprint/
-│ ├── user_dashboard.html
-│ └── ...
-├── __init__.py
-```
-
-File: `my_blueprint/__init__.py`
-
-```python
-from flask_imp import ImpBlueprint
-from flask_imp.config import ImpBlueprintConfig
-
-bp = ImpBlueprint(__name__, ImpBlueprintConfig(
- enabled=True,
- static_folder="static",
- template_folder="templates",
-))
-
-bp.import_resources("user_routes")
-bp.import_resources("car_routes")
-```
-
-File: `my_blueprint/user_routes/user_dashboard.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-@bp.route("/user-dashboard")
-def user_dashboard():
- return render_template(bp.tmpl("user_dashboard.html"))
-```
diff --git a/archive_docs/_md/v5/ImpBlueprint-init.md b/archive_docs/_md/v5/ImpBlueprint-init.md
deleted file mode 100644
index e51e3915..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-init.md
+++ /dev/null
@@ -1,17 +0,0 @@
-```
-Menu = ImpBlueprint/__init__
-Title = Flask-Imp Blueprint __init__
-```
-
-```python
-ImpBlueprint(dunder_name: str, config: ImpBlueprintConfig) -> None
-```
-
----
-
-Initializes the Flask-Imp Blueprint.
-
-`dunder_name` should always be set to `__name__`
-
-`config` is an instance of `ImpBlueprintConfig` that will be used to load the Blueprint's configuration.
-See [flask_imp.config / ImpBlueprintConfig](flask_imp_config-impblueprintconfig.html) for more information.
diff --git a/archive_docs/_md/v5/ImpBlueprint-tmpl.md b/archive_docs/_md/v5/ImpBlueprint-tmpl.md
deleted file mode 100644
index b727f46a..00000000
--- a/archive_docs/_md/v5/ImpBlueprint-tmpl.md
+++ /dev/null
@@ -1,44 +0,0 @@
-```
-Menu = ImpBlueprint/tmpl
-Title = ImpBlueprint.tmpl
-```
-
-```python
-tmpl(template: str) -> str
-```
-
----
-
-Scopes the template lookup to the name of the blueprint (this takes from the `__name__` attribute of the Blueprint).
-
-Due to the way Flask templating works, and to avoid template name collisions.
-It is standard practice to place the name of the Blueprint in the template path,
-then to place any templates under that folder.
-
-```text
-my_blueprint/
-├── routes/
-│ └── index.py
-├── static/...
-│
-├── templates/
-│ └── my_blueprint/
-│ └── index.html
-│
-├── __init__.py
-```
-
-File: `my_blueprint/routes/index.py`
-
-```python
-from flask import render_template
-
-from .. import bp
-
-
-@bp.route("/")
-def index():
- return render_template(bp.tmpl("index.html"))
-```
-
-`bp.tmpl("index.html")` will output `"my_blueprint/index.html"`.
diff --git a/archive_docs/_md/v5/__index__.md b/archive_docs/_md/v5/__index__.md
deleted file mode 100644
index faace10e..00000000
--- a/archive_docs/_md/v5/__index__.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# Welcome to the Flask-Imp Documentation
-
-## What is Flask-Imp?
-
-Flask-Imp's main purpose is to help simplify the importing of blueprints, resources, and models. It has a few extra
-features built in to help with securing pages and password authentication.
-
-## Install Flask-Imp
-
-```bash
-pip install flask-imp
-```
-
-## Getting Started
-
-To get started right away, you can use the CLI commands to create a new Flask-Imp project.
-
-```bash
-flask-imp init
-```
-
-### Minimal Flask-Imp Setup
-
-Run the following command to create a minimal Flask-Imp project.
-
-```bash
-flask-imp init -n app --minimal
-```
-
-See [CLI Commands / flask-imp init](cli_commands-flask-imp_init.html) for more information.
-
-### The minimal structure
-
-#### Folder Structure
-
-```text
-app/
-├── resources/
-│ ├── static/...
-│ ├── templates/
-│ │ └── index.html
-│ └── index.py
-└── __init__.py
-```
-
-File: `app/__init__.py`
-
-```python
-from flask import Flask
-
-from flask_imp import Imp
-from flask_imp.config import FlaskConfig, ImpConfig
-
-imp = Imp()
-
-
-def create_app():
- app = Flask(__name__, static_url_path="/")
- FlaskConfig(
- secret_key="secret_key",
- app_instance=app
- )
-
- imp.init_app(app, ImpConfig())
-
- imp.import_app_resources()
- # Takes argument 'folder' default folder is 'resources'
-
- return app
-```
-
-File: `app/resources/routes.py`
-
-```python
-from flask import current_app as app
-from flask import render_template
-
-
-@app.route("/")
-def index():
- return render_template("index.html")
-```
-
-File: `app/resources/templates/index.html`
-
-```html
-
-
-
-
- Flask-Imp
-
-
-
Flask-Imp
-
-
-```
-
----
-
-Setting up a virtual environment is recommended.
-
-**Linux / Darwin**
-
-```bash
-python3 -m venv venv
-```
-
-```bash
-source venv/bin/activate
-```
-
-**Windows**
-
-```bash
-python -m venv venv
-```
-
-```text
-.\venv\Scripts\activate
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/__menu__.md b/archive_docs/_md/v5/__menu__.md
deleted file mode 100644
index 6d17619b..00000000
--- a/archive_docs/_md/v5/__menu__.md
+++ /dev/null
@@ -1,47 +0,0 @@
-- CLI Commands
- - flask-imp init
- - flask-imp blueprint
-- Imp
- - Introduction
- - init_app, __init__
- - init_session
- - import_app_resources
- - import_blueprint
- - import_blueprints
- - import_models
- - model
- - model_meta
-- ImpBlueprint
- - Introduction
- - __init__
- - init_session
- - import_resources
- - import_nested_blueprint
- - import_nested_blueprints
- - import_models
- - tmpl
-- flask_imp.config
- - FlaskConfig
- - ImpConfig
- - ImpBlueprintConfig
- - DatabaseConfig
- - SQLDatabaseConfig
- - SQLiteDatabaseConfig
-- flask_imp.security
- - login_check
- - permission_check
- - pass_function_check
- - api_login_check
- - include_csrf
-- flask_imp.auth
- - encrypt_password
- - authenticate_password
- - generate_password
- - generate_salt
- - generate_csrf_token
- - generate_private_key
- - generate_email_validator
- - generate_numeric_validator
- - generate_alphanumeric_validator
- - is_email_address_valid
- - is_username_valid
diff --git a/archive_docs/_md/v5/flask_imp_auth-authenticate_password.md b/archive_docs/_md/v5/flask_imp_auth-authenticate_password.md
deleted file mode 100644
index d255ae7a..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-authenticate_password.md
+++ /dev/null
@@ -1,63 +0,0 @@
-```
-Menu = flask_imp.auth/authenticate_password
-Title = authenticate_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import authenticate_password
-```
-
-```python
-authenticate_password(
- input_password: str,
- database_password: str,
- database_salt: str,
- encryption_level: int = 512,
- pepper_length: int = 1,
- pepper_position: t.Literal["start", "end"] = "end",
- use_multiprocessing: bool = False
-) -> bool
-```
-
----
-
-For use in password hashing.
-
-To be used alongside the [flask_imp.auth / encrypt_password](flask_imp_auth-encrypt_password.html) function.
-
-Takes the plain input password, the stored hashed password along with the stored salt
-and will try every possible combination of pepper values to find a match.
-
-**Note:**
-
-**use_multiprocessing is not compatible with coroutine workers, e.g. eventlet/gevent
-commonly used with socketio.**
-
-If you are using socketio, you must set use_multiprocessing to False (default).
-
-**Note:**
-
-- You must know the pepper length used to hash the password.
-- You must know the position of the pepper used to hash the password.
-- You must know the encryption level used to hash the password.
-
-#### Authentication Scenario:
-
-```
-Plain password: "password"
-Generated salt: "^%$*" (randomly generated)
-Generated pepper (length 1): "A" (randomly generated)
-Pepper position: "end"
-```
-
-```python
-input_password = "password"
-database_password = "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0..." # pulled from database
-database_salt = "^%$*" # pulled from database
-
-authenticate_password(
- input_password,
- database_password,
- database_salt
-) # >>> True
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-encrypt_password.md b/archive_docs/_md/v5/flask_imp_auth-encrypt_password.md
deleted file mode 100644
index 0287b119..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-encrypt_password.md
+++ /dev/null
@@ -1,53 +0,0 @@
-```
-Menu = flask_imp.auth/encrypt_password
-Title = encrypt_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import encrypt_password
-```
-
-```python
-encrypt_password(
- password: str,
- salt: str,
- encryption_level: int = 512,
- pepper_length: int = 1,
- pepper_position: t.Literal["start", "end"] = "end"
-) -> str
-```
-
----
-
-For use in password hashing.
-
-To be used alongside the [flask_imp.auth / authenticate_password](flask_imp_auth-authenticate_password.html) function.
-
-Takes the plain password, applies a pepper, salts it, then produces a digested sha512 or sha256 if specified.
-
-Can set the encryption level to 256 or 512, defaults to 512.
-
-Can set the pepper length, defaults to 1. Max is 3.
-
-Can set the pepper position, "start" or "end", defaults to "end".
-
-**Note:**
-
-- You must inform the authenticate_password function of the pepper length used to hash the password.
-- You must inform the authenticate_password function of the position of the pepper used to hash the password.
-- You must inform the authenticate_password function of the encryption level used to hash the password.
-
-#### Encryption Scenario:
-
-```
-Plain password: "password"
-Generated salt: "^%$*" (randomly generated)
-Generated pepper (length 1): "A" (randomly generated)
-Pepper position: "end"
-```
-
-1. Pepper is added to the end of the plain password: "passwordA"
-2. Salt is added to the end of the peppered password: "passwordA^%$*"
-3. Password is hashed: "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0..."
-4. Salt and hashed password are then stored in the database.
-
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md b/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md
deleted file mode 100644
index c0d0ccdc..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_alphanumeric_validator.md
+++ /dev/null
@@ -1,24 +0,0 @@
-```
-Menu = flask_imp.auth/generate_alphanumeric_validator
-Title = generate_alphanumeric_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_alphanumeric_validator
-```
-
-```python
-generate_alphanumeric_validator(length: int = 8) -> str
-```
-
----
-
-Generates a random alphanumeric string of the given length.
-
-(letters are capitalized)
-
-*Example:*
-
-```python
-generate_alphanumeric_validator(8) # >>> 'A1B2C3D4'
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md b/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md
deleted file mode 100644
index ce6df31b..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_csrf_token.md
+++ /dev/null
@@ -1,26 +0,0 @@
-```
-Menu = flask_imp.auth/generate_csrf_token
-Title = generate_csrf_token - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_csrf_token
-```
-
-```python
-generate_csrf_token() -> str
-```
-
----
-
-Generates a SHA1 using the current date and time.
-
-For use in Cross-Site Request Forgery.
-
-Also used by the [flask_imp.security / csrf_protect](flask_imp_security-include_csrf.html) decorator.
-
-*Example:*
-
-```python
-generate_csrf_token() # >>> 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0'
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md b/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md
deleted file mode 100644
index acdced31..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_email_validator.md
+++ /dev/null
@@ -1,27 +0,0 @@
-```
-Menu = flask_imp.auth/generate_email_validator
-Title = generate_email_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_email_validator
-```
-
-```python
-generate_email_validator() -> str
-```
-
----
-
-Uses `generate_alphanumeric_validator` with a length of 8 to
-generate a random alphanumeric value for the specific use of
-validating accounts via email.
-
-See [flask_imp.auth / generate_alphanumeric_validator](flask_imp_auth-generate_alphanumeric_validator.html)
-for more information.
-
-*Example:*
-
-```python
-generate_email_validator() # >>> 'A1B2C3D4'
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md b/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md
deleted file mode 100644
index c0d7dc76..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_numeric_validator.md
+++ /dev/null
@@ -1,27 +0,0 @@
-```
-Menu = flask_imp.auth/generate_numeric_validator
-Title = generate_numeric_validator - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_numeric_validator
-```
-
-```python
-generate_numeric_validator(length: int) -> int
-```
-
----
-
-
-Generates random choice between 1 * (length) and 9 * (length).
-
-If the length is 4, it will generate a number between 1111 and 9999.
-
-For use in MFA email, or unique filename generation.
-
-*Example:*
-
-```python
-generate_numeric_validator(4) # >>> 1234
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_password.md b/archive_docs/_md/v5/flask_imp_auth-generate_password.md
deleted file mode 100644
index b6f8fda0..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_password.md
+++ /dev/null
@@ -1,26 +0,0 @@
-```
-Menu = flask_imp.auth/generate_password
-Title = generate_password - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_password
-```
-
-```python
-generate_password(style: str = "mixed", length: int = 3) -> str
-```
-
----
-
-Generates a password of (length) characters.
-
-The Default length is 3.
-
-Style options: "animals", "colors", "mixed" - defaults to "mixed"
-
-*Example:*
-
-```python
-generate_password(style="animals", length=3) # >>> 'Cat-Goat-Pig12'
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_private_key.md b/archive_docs/_md/v5/flask_imp_auth-generate_private_key.md
deleted file mode 100644
index 63938598..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_private_key.md
+++ /dev/null
@@ -1,38 +0,0 @@
-```
-Menu = flask_imp.auth/generate_private_key
-Title = generate_private_key - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_private_key
-```
-
-```python
-generate_private_key(hook: t.Optional[str]) -> str
-```
-
----
-
-Generates a sha256 private key from a passed in hook value.
-
-If no hook is passed in, it will generate a hook using datetime.now() and a
-random number between 1 and 1000.
-
-```python
-@app.route('/register', methods=['GET', 'POST'])
-def register():
- if request.method == "POST":
- ...
- salt = generate_salt()
- password = request.form.get('password')
- encrypted_password = encrypt_password(password, salt)
- ...
- user = User(
- username=username,
- email=email,
- password=encrypted_password,
- salt=salt,
- private_key=generate_private_key(hook=username)
- )
- ...
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-generate_salt.md b/archive_docs/_md/v5/flask_imp_auth-generate_salt.md
deleted file mode 100644
index f21615f5..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-generate_salt.md
+++ /dev/null
@@ -1,46 +0,0 @@
-```
-Menu = flask_imp.auth/generate_salt
-Title = generate_salt - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import generate_salt
-```
-
-```python
-generate_salt(length: int = 4) -> str
-```
-
----
-
-Generates a string of (length) characters of punctuation.
-
-The Default length is 4.
-
-For use in password hashing and storage of passwords in the database.
-
-*Example:*
-
-```python
-generate_salt() # >>> '*!$%'
-```
-
-```python
-@app.route('/register', methods=['GET', 'POST'])
-def register():
- if request.method == "POST":
- ...
- salt = generate_salt()
- password = request.form.get('password')
- encrypted_password = encrypt_password(password, salt)
- ...
-
- user = User(
- username=username,
- email=email,
- password=encrypted_password,
- salt=salt
- )
- ...
-```
-
diff --git a/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md b/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md
deleted file mode 100644
index 1990e24a..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-is_email_address_valid.md
+++ /dev/null
@@ -1,46 +0,0 @@
-```
-Menu = flask_imp.auth/is_email_address_valid
-Title = is_email_address_valid - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import is_email_address_valid
-```
-
-```python
-is_email_address_valid(
- email_address: str
-) -> bool
-```
-
----
-
-Checks if an email address is valid.
-
-Is not completely RFC 5322 compliant, but it is good enough for most use cases.
-
-Here are examples of mistakes that it will not catch:
-
-##### Valid but fails:
-
-```text
-email@[123.123.123.123]
-“email”@example.com
-very.unusual.“@”.unusual.com@example.com
-very.“(),:;<>[]”.VERY.“very@\\ "very”.unusual@strange.example.com
-```
-
-##### Invalid but passes:
-
-```text
-email@example.com (Joe Smith)
-email@111.222.333.44444
-```
-
-*Example:*
-
-```python
-is_email_address_valid('hello@example.com') # >>> True
-
-is_email_address_valid('hello@hello@example.com') # >>> False
-```
diff --git a/archive_docs/_md/v5/flask_imp_auth-is_username_valid.md b/archive_docs/_md/v5/flask_imp_auth-is_username_valid.md
deleted file mode 100644
index 68cdf070..00000000
--- a/archive_docs/_md/v5/flask_imp_auth-is_username_valid.md
+++ /dev/null
@@ -1,58 +0,0 @@
-```
-Menu = flask_imp.auth/is_username_valid
-Title = is_username_valid - flask_imp.auth
-```
-
-```python
-from flask_imp.auth import is_username_valid
-```
-
-```python
-is_username_valid(
- username: str,
- allowed: t.Optional[t.List[t.Literal["all", "dot", "dash", "under"]]] = None
-) -> bool
-```
-
----
-
-Checks if a username is valid.
-
-Valid usernames can only include letters,
-numbers, ., -, and _ but cannot begin or end with
-the last three mentioned.
-
-##### Example "all":
-
-```python
-is_username_valid("username", allowed=["all"])
-```
-
-Output:
-
-```text
-username : WILL PASS : True
-user.name : WILL PASS : True
-user-name : WILL PASS : True
-user_name : WILL PASS : True
-_user_name : WILL PASS : False
-```
-
-##### Example "dot", "dash":
-
-```python
-
-is_username_valid("username", allowed=["dot", "dash"])
-```
-
-Output:
-
-```text
-username : WILL PASS : True
-user.name : WILL PASS : True
-user-name : WILL PASS : True
-user-name.name : WILL PASS : True
-user_name : WILL PASS : False
-_user_name : WILL PASS : False
-.user.name : WILL PASS : False
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_config-databaseconfig.md b/archive_docs/_md/v5/flask_imp_config-databaseconfig.md
deleted file mode 100644
index 423bf8e4..00000000
--- a/archive_docs/_md/v5/flask_imp_config-databaseconfig.md
+++ /dev/null
@@ -1,31 +0,0 @@
-```
-Menu = flask_imp.config/DatabaseConfig
-Title = DatabaseConfig - flask_imp.config
-```
-
-```python
-from flask_imp.config import DatabaseConfig
-```
-
-```python
-DatabaseConfig(
- enabled: bool = False,
- dialect: t.Literal[
- "mysql", "postgresql", "sqlite", "oracle", "mssql"
- ] = "sqlite",
- name: str = "database",
- bind_key: str = "",
- location: str = "",
- port: int = 0,
- username: str = "",
- password: str = "",
- sqlite_db_extension: str = ".sqlite"
-)
-```
-
----
-
-A class that holds a database configuration.
-
-This configuration is parsed into a database URI and
-used in either the `SQLALCHEMY_DATABASE_URI` or `SQLALCHEMY_BINDS` configuration variables.
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_config-flaskconfig.md b/archive_docs/_md/v5/flask_imp_config-flaskconfig.md
deleted file mode 100644
index 60adaab7..00000000
--- a/archive_docs/_md/v5/flask_imp_config-flaskconfig.md
+++ /dev/null
@@ -1,59 +0,0 @@
-```
-Menu = flask_imp.config/FlaskConfig
-Title = FlaskConfig - flask_imp.config
-```
-
-```python
-from flask_imp.config import FlaskConfig
-```
-
-```python
-FlaskConfig(
- debug: t.Optional[bool] = None,
- propagate_exceptions: t.Optional[bool] = None,
- trap_http_exceptions: t.Optional[bool] = None,
- trap_bad_request_errors: t.Optional[bool] = None,
- secret_key: t.Optional[str] = None,
- session_cookie_name: t.Optional[str] = None,
- session_cookie_domain: t.Optional[str] = None,
- session_cookie_path: t.Optional[str] = None,
- session_cookie_httponly: t.Optional[bool] = None,
- session_cookie_secure: t.Optional[bool] = None,
- session_cookie_samesite: t.Optional[t.Literal["Lax", "Strict"]] = None,
- permanent_session_lifetime: t.Optional[int] = None,
- session_refresh_each_request: t.Optional[bool] = None,
- use_x_sendfile: t.Optional[bool] = None,
- send_file_max_age_default: t.Optional[int] = None,
- error_404_help: t.Optional[bool] = None,
- server_name: t.Optional[str] = None,
- application_root: t.Optional[str] = None,
- preferred_url_scheme: t.Optional[str] = None,
- max_content_length: t.Optional[int] = None,
- templates_auto_reload: t.Optional[bool] = None,
- explain_template_loading: t.Optional[bool] = None,
- max_cookie_size: t.Optional[int] = None,
- app_instance: t.Optional["Flask"] = None
-)
-```
-
----
-
-A class that holds a Flask configuration values.
-
-You can set the configuration values to the app instance by either passing the app instance to the `app_instance`
-parameter or by calling the `apply_config` method on the `FlaskConfig` instance.
-
-```python
-def create_app():
- app = Flask(__name__)
- FlaskConfig(debug=True, app_instance=app)
- return app
-```
-or
-```python
-def create_app():
- app = Flask(__name__)
- config = FlaskConfig(debug=True)
- config.apply_config(app)
- return app
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_config-impblueprintconfig.md b/archive_docs/_md/v5/flask_imp_config-impblueprintconfig.md
deleted file mode 100644
index 85674a06..00000000
--- a/archive_docs/_md/v5/flask_imp_config-impblueprintconfig.md
+++ /dev/null
@@ -1,37 +0,0 @@
-```
-Menu = flask_imp.config/ImpBlueprintConfig
-Title = ImpBlueprintConfig - flask_imp.config
-```
-
-```python
-from flask_imp.config import ImpBlueprintConfig
-```
-
-```python
-ImpBlueprintConfig(
- enabled: bool = False,
- url_prefix: str = None,
- subdomain: str = None,
- url_defaults: dict = None,
- static_folder: t.Optional[str] = None,
- template_folder: t.Optional[str] = None,
- static_url_path: t.Optional[str] = None,
- root_path: str = None,
- cli_group: str = None,
- init_session: dict = None,
- database_binds: t.Iterable[DatabaseConfig] = None
-)
-```
-
----
-
-A class that holds a Flask-Imp blueprint configuration.
-
-Most of these values are passed to the `Blueprint` class when the blueprint is registered.
-
-The `enabled` argument is used to enable or disable the blueprint. This is useful for feature flags.
-
-`init_session` is used to set the session values in the main `before_request` function.
-
-`database_binds` is a list of `DatabaseConfig` instances that are used to create `SQLALCHEMY_BINDS` configuration
-variables. Again this is useful for feature flags, or for creating multiple databases per blueprint.
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_config-impconfig.md b/archive_docs/_md/v5/flask_imp_config-impconfig.md
deleted file mode 100644
index f90309c3..00000000
--- a/archive_docs/_md/v5/flask_imp_config-impconfig.md
+++ /dev/null
@@ -1,49 +0,0 @@
-```
-Menu = flask_imp.config/ImpConfig
-Title = ImpConfig - flask_imp.config
-```
-
-```python
-from flask_imp.config import ImpConfig
-```
-
-```python
-ImpConfig(
- init_session: t.Optional[t.Dict[str, t.Any]] = None,
- database_main: t.Optional[
- t.Union[DatabaseConfig, SQLiteDatabaseConfig, SQLDatabaseConfig]
- ] = None,
- database_binds: t.Optional[
- t.List[t.Union[DatabaseConfig, SQLiteDatabaseConfig, SQLDatabaseConfig]]
- ] = None,
-)
-```
-
----
-
-The `ImpConfig` class is used to set the initial session, the main database, and any additional databases
-that the application will use.
-
-```python
-imp_config = ImpConfig(
- init_session={"key": "value"},
- database_main=SQLiteDatabaseConfig(
- name="test1",
- ),
- database_binds=[
- DatabaseConfig(
- enabled=True,
- dialect="sqlite",
- name="test2",
- bind_key="test2"
- )
- ]
-)
-
-
-def create_app():
- app = Flask(__name__)
- FlaskConfig(debug=True, app_instance=app)
- imp.init_app(app, imp_config)
- ...
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_config-sqldatabaseconfig.md b/archive_docs/_md/v5/flask_imp_config-sqldatabaseconfig.md
deleted file mode 100644
index d7b6e494..00000000
--- a/archive_docs/_md/v5/flask_imp_config-sqldatabaseconfig.md
+++ /dev/null
@@ -1,28 +0,0 @@
-```
-Menu = flask_imp.config/SQLDatabaseConfig
-Title = SQLDatabaseConfig - flask_imp.config
-```
-
-```python
-from flask_imp.config import SQLDatabaseConfig
-```
-
-```python
-SQLDatabaseConfig(
- dialect: t.Literal["mysql", "postgresql", "oracle", "mssql"],
- enabled: bool = True,
- name: str = "database",
- bind_key: str = "",
- location: str = "",
- port: int = 0,
- username: str = "",
- password: str = "",
-)
-```
-
----
-
-A class that holds a SQL database configuration.
-
-This configuration is parsed into a database URI and
-used in either the `SQLALCHEMY_DATABASE_URI` or `SQLALCHEMY_BINDS` configuration variables.
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_config-sqlitedatabaseconfig.md b/archive_docs/_md/v5/flask_imp_config-sqlitedatabaseconfig.md
deleted file mode 100644
index 532ea0b3..00000000
--- a/archive_docs/_md/v5/flask_imp_config-sqlitedatabaseconfig.md
+++ /dev/null
@@ -1,25 +0,0 @@
-```
-Menu = flask_imp.config/SQLiteDatabaseConfig
-Title = SQLiteDatabaseConfig - flask_imp.config
-```
-
-```python
-from flask_imp.config import SQLiteDatabaseConfig
-```
-
-```python
-SQLiteDatabaseConfig(
- enabled: bool = True,
- name: str = "database",
- bind_key: str = "",
- sqlite_db_extension: str = ".sqlite",
- location: t.Optional[Path] = None,
-)
-```
-
----
-
-A class that holds a SQLite database configuration.
-
-This configuration is parsed into a database URI and
-used in either the `SQLALCHEMY_DATABASE_URI` or `SQLALCHEMY_BINDS` configuration variables.
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_security-api_login_check.md b/archive_docs/_md/v5/flask_imp_security-api_login_check.md
deleted file mode 100644
index e021ecbe..00000000
--- a/archive_docs/_md/v5/flask_imp_security-api_login_check.md
+++ /dev/null
@@ -1,47 +0,0 @@
-```
-Menu = flask_imp.security/api_login_check
-Title = api_login_check - flask_imp.security
-```
-
-
-```python
-from flask_imp.security import api_login_check
-```
-
-```python
-api_login_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_json: t.Optional[t.Dict[str, t.Any]] = None
-)
-```
-
-`@api_login_check(...)`
-
----
-
-A decorator that is used to secure API routes that return JSON responses.
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_json` JSON that is returned on failure. `{"error": "You are not logged in."}` by default.
-
-*Example:*
-
-```python
-@bp.route("/api/resource", methods=["GET"])
-@api_login_check('logged_in', True)
-def api_page():
- ...
-```
-
-##### Example of defined fail_json:
-
-```python
-@bp.route("/api/resource", methods=["GET"])
-@api_login_check('logged_in', True, fail_json={"failed": "You need to be logged in."})
-def api_page():
- ...
-```
diff --git a/archive_docs/_md/v5/flask_imp_security-include_csrf.md b/archive_docs/_md/v5/flask_imp_security-include_csrf.md
deleted file mode 100644
index 5f367974..00000000
--- a/archive_docs/_md/v5/flask_imp_security-include_csrf.md
+++ /dev/null
@@ -1,48 +0,0 @@
-```
-Menu = flask_imp.security/include_csrf
-Title = include_csrf - flask_imp.security
-```
-
-```python
-from flask_imp.security import include_csrf
-```
-
-```python
-include_csrf(
- session_key: str = "csrf",
- form_key: str = "csrf",
- abort_code: int = 401
-)
-```
-
-`@include_csrf(...)`
-
----
-
-
-A decorator that handles CSRF protection.
-
-On a **GET** request, a CSRF token is generated and stored in the session key
-specified by the session_key parameter.
-
-On a **POST** request, the form_key specified is checked against the session_key
-specified.
-
-- If they match, the request is allowed to continue.
-- If no match, the response will be abort(abort_code), default 401.
-
-```python
-@bp.route("/admin", methods=["GET", "POST"])
-@include_csrf(session_key="csrf", form_key="csrf")
-def admin_page():
- ...
- # You must pass in the CSRF token from the session into the template.
- # Then add to the form.
- return render_template("admin.html", csrf=session.get("csrf"))
-```
-
-Form key:
-
-```html
-
-```
\ No newline at end of file
diff --git a/archive_docs/_md/v5/flask_imp_security-login_check.md b/archive_docs/_md/v5/flask_imp_security-login_check.md
deleted file mode 100644
index f95cebde..00000000
--- a/archive_docs/_md/v5/flask_imp_security-login_check.md
+++ /dev/null
@@ -1,66 +0,0 @@
-```
-Menu = flask_imp.security/login_check
-Title = login_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import login_check
-```
-
-```python
-login_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_endpoint: t.Optional[str] = None,
- pass_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message"
-)
-```
-
-`@login_check(...)`
-
----
-
-A decorator that checks if the specified session key exists and contains the specified value.
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_endpoint` The endpoint to redirect to if the session key does not exist or does not contain the specified values.
-
-`endpoint_kwargs` A dictionary of keyword arguments to pass to the redirect endpoint.
-
-`message` If a message is specified, a flash message is shown.
-
-`message_category` The category of the flash message.
-
-##### Example of a route that requires a user to be logged in:
-
-```python
-@bp.route("/admin", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- fail_endpoint='blueprint.login_page',
- message="Login needed"
-)
-def admin_page():
- ...
-```
-
-##### Example of a route that if the user is already logged in, redirects to the specified endpoint:
-
-```python
-@bp.route("/login-page", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- pass_endpoint='blueprint.admin_page',
- message="Already logged in"
-)
-def login_page():
- ...
-```
diff --git a/archive_docs/_md/v5/flask_imp_security-pass_function_check.md b/archive_docs/_md/v5/flask_imp_security-pass_function_check.md
deleted file mode 100644
index 07ed2f35..00000000
--- a/archive_docs/_md/v5/flask_imp_security-pass_function_check.md
+++ /dev/null
@@ -1,114 +0,0 @@
-```
-Menu = flask_imp.security/pass_function_check
-Title = pass_function_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import pass_function_check
-```
-
-```python
-def pass_function_check(
- function: t.Callable,
- predefined_args: t.Optional[t.Dict] = None,
- fail_endpoint: t.Optional[str] = None,
- pass_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message",
- fail_on_missing_kwargs: bool = False,
- with_app_context: bool = False,
-)
-```
-
-**NOTE: This was added mostly as an experimental feature, but ended up being useful in some cases.**
-
-A decorator that takes the result of a function and checks if it is True or False.
-
-URL variables from `@route` will be read by this decorator.
-To use URL variables in your passed in function,
-make sure your functions argument(s) name(s) match the name(s) of the URL variable(s).
-
-**Example:**
-
-```python
-def check_if_number(value):
- if isinstance(value, int):
- return True
- return False
-
-@bp.route("/admin-page/", methods=["GET"])
-@login_check('logged_in', True, 'blueprint.login_page') # can be mixed with login_check
-@pass_function_check(
- check_if_number,
- predefined_args=None,
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page():
- ...
-
-@bp.route("/admin-page/", methods=["GET"])
-@login_check('logged_in', True, 'blueprint.login_page') # can be mixed with login_check
-@pass_function_check(
- check_if_number,
- predefined_args={'value': 10},
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page_overwrite():
- ...
-```
-
-**Advanced use case:**
-
-Here's an example of accessing flask.session from within the passed in function. including the
-`with_app_context` parameter, the function will be called with `app_context()`.
-
-```python
-from flask import current_app
-from flask import session
-
-...
-
-def check_if_number(number=1, session_=None):
- if session_:
- print(session_)
- try:
- int(number)
- return True
- except ValueError:
- return False
-
-@bp.route("/pass-func-check-with-url-var/", methods=["GET"])
-@pass_function_check(
- check_if_number,
- predefined_args={'number': 10, 'session_': session},
- fail_endpoint="www.index",
- with_app_context=True
-)
-def admin_page_overwrite_with_session():
- ...
-```
-
-If you pass in a predefined arg that has the same key name as a session variable that exists, the value
-of that predefined arg will be replaced with the session variable value.
-
-```python
-session['car'] = 'Toyota'
-...
-def check_function(car):
- if car == 'Toyota':
- return True
- return False
-...
-@bp.route("/pass-func-check-with-url-var/", methods=["GET"])
-@pass_function_check(
- check_function,
- predefined_args={'car': session},
- ...
-
-```
-
-This will pass, as pass_function_check will replace the value of the predefined arg 'car' with the value
-of the session variable 'car'.
diff --git a/archive_docs/_md/v5/flask_imp_security-permission_check.md b/archive_docs/_md/v5/flask_imp_security-permission_check.md
deleted file mode 100644
index 73278e12..00000000
--- a/archive_docs/_md/v5/flask_imp_security-permission_check.md
+++ /dev/null
@@ -1,57 +0,0 @@
-```
-Menu = flask_imp.security/permission_check
-Title = permission_check - flask_imp.security
-```
-
-```python
-from flask_imp.security import permission_check
-```
-
-```python
-permission_check(
- session_key: str,
- values_allowed: t.Union[t.List[t.Union[str, int, bool]], str, int, bool],
- fail_endpoint: t.Optional[str] = None,
- endpoint_kwargs: t.Optional[t.Dict[str, t.Union[str, int]]] = None,
- message: t.Optional[str] = None,
- message_category: str = "message"
-)
-```
-
-`@permission_check(...)`
-
----
-
-A decorator that checks if the specified session key exists and its value(s) match the specified value(s).
-
-`session_key` The session key to check for.
-
-`values_allowed` A list of or singular value(s) that the session key must contain.
-
-`fail_endpoint` The endpoint to redirect to if the session key does not exist or does not contain the specified values.
-
-`endpoint_kwargs` A dictionary of keyword arguments to pass to the redirect endpoint.
-
-`message` If a message is specified, a flash message is shown.
-
-`message_category` The category of the flash message.
-
-*Example:*
-
-```python
-@bp.route("/admin-page", methods=["GET"])
-@login_check(
- 'logged_in',
- True,
- 'blueprint.login_page'
-) # can be mixed with login_check
-@permission_check(
- 'permissions',
- ['admin'],
- fail_endpoint='www.index',
- message="Failed message"
-)
-def admin_page():
- ...
-```
-
diff --git a/archive_docs/_ssg/__init__.py b/archive_docs/_ssg/__init__.py
deleted file mode 100644
index 9648d99d..00000000
--- a/archive_docs/_ssg/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from .compiler import compiler
-
-__all__ = ["compiler"]
diff --git a/archive_docs/_ssg/compiler.py b/archive_docs/_ssg/compiler.py
deleted file mode 100644
index dbf0a991..00000000
--- a/archive_docs/_ssg/compiler.py
+++ /dev/null
@@ -1,132 +0,0 @@
-import re
-import typing as t
-from pathlib import Path
-
-import mistune
-from flask import render_template
-
-from .exceptions import NoPostDefinition
-from .helpers import get_relative_files_in_the_docs_folder, pytz_dt_now, post_date
-from .render_engines import HighlightRenderer
-
-
-def _raw_markdown_processor(raw_markdown: str) -> tuple[t.Optional[list], str, str]:
- """
- :param raw_markdown: The raw markdown to process
- :return: publish: bool, date: str, title: str, description: str, post: str
- """
- if not raw_markdown.startswith("```"):
- raise NoPostDefinition
-
- split_md = raw_markdown.split("```")[1:]
- raw_meta = split_md[0]
-
- menu_ptn = re.compile(r"Menu =(.*?)\n", re.IGNORECASE)
- title_ptn = re.compile(r"Title =(.*?)\n", re.IGNORECASE)
-
- try:
- menu = menu_ptn.findall(raw_meta)[0].strip().split("/")
- except (ValueError, IndexError, TypeError) as _:
- menu = None
-
- try:
- title = title_ptn.findall(raw_meta)[0].strip()
- except (ValueError, IndexError, TypeError) as _:
- title = "[Unable to find Title]"
-
- try:
- post = "```".join(split_md[1:])
- except (IndexError, TypeError, ValueError) as _:
- post = "[Unable to find Post]"
-
- return menu, title, post
-
-
-def compiler(docs_dir: Path, markdown_dir: Path):
- docs_dir.mkdir(exist_ok=True)
- markdown_dir.mkdir(exist_ok=True)
-
- markdown_menu = markdown_dir / "__menu__.md"
- markdown_index = markdown_dir / "__index__.md"
-
- markdown_menu_dict = dict()
-
- with open(markdown_menu, mode="r") as menu_file:
- for line in menu_file.readlines():
- if line.startswith("-"):
- line_strip = line.strip()
- markdown_menu_dict[line_strip.replace("- ", "").strip()] = {
- "page": "",
- "pages": [],
- }
- continue
-
- if line.startswith(" ") or line.startswith("\t"):
- line_strip = line.strip()
- if line_strip.startswith("-"):
- markdown_menu_dict[list(markdown_menu_dict.keys())[-1]][
- "pages"
- ].append({line_strip.replace("- ", "").strip(): ""})
-
- main_index_html = docs_dir.parent / "index.html"
- index_html = docs_dir / "index.html"
-
- docs_dir_files = get_relative_files_in_the_docs_folder(docs_dir)
- markdown_dir_files = markdown_dir.glob("*.md")
- html_engine = mistune.create_markdown(renderer=HighlightRenderer())
-
- html_pages = dict()
- dt_date = pytz_dt_now()
-
- main_index_html.unlink(missing_ok=True)
- main_index_html.write_text(
- render_template("main_index.html", latest_version=docs_dir.name)
- )
-
- for file in docs_dir_files:
- (docs_dir / f"{file}.html").unlink()
-
- for file in markdown_dir_files:
- if "__" in file.stem:
- continue
-
- raw_markdown = file.read_text()
- menu, title, post = _raw_markdown_processor(raw_markdown)
- html_filename = f'{file.stem.lower().replace(" ", "_")}.html'
-
- html_pages[html_filename] = {
- "menu": menu,
- "title": title,
- "content": html_engine(post),
- }
-
- if menu is not None:
- if len(menu) == 1:
- markdown_menu_dict[menu[0]]["page"] = html_filename
- else:
- for keys in markdown_menu_dict[menu[0]]["pages"]:
- if menu[1] in keys.keys():
- keys[menu[1]] = html_filename
-
- # write html files
- for page, meta in html_pages.items():
- with open(docs_dir / page, mode="w") as html_file:
- html_file.write(
- render_template(
- "__main__.html",
- menu=markdown_menu_dict,
- title=meta["title"],
- date=post_date(dt_date),
- content=meta["content"],
- )
- )
-
- # write main index.html
- index_html.write_text(
- render_template(
- "index.html",
- menu=markdown_menu_dict,
- date=post_date(dt_date),
- index=html_engine(markdown_index.read_text()),
- )
- )
diff --git a/archive_docs/_ssg/exceptions.py b/archive_docs/_ssg/exceptions.py
deleted file mode 100644
index f34ca083..00000000
--- a/archive_docs/_ssg/exceptions.py
+++ /dev/null
@@ -1,38 +0,0 @@
-class NoPostDefinition(Exception):
- builtin_msg = f"""\n
-No post definition found!
-
-{"_" * 10}TOP_OF_FILE{"_" * 10}
-```
-Publish = Bool
-Date = 0000-00-00 00:00:00 +0100 or set-on-compile
-Title = String
-Description = String
-```
-
-Must be at the top of the file, and must be followed by a blank line.
-
-"""
-
- def __str__(self):
- return self.builtin_msg
-
-
-class ErrorInPostDefinition(Exception):
- builtin_msg = f"""\n
-There is an error in the post description!
-
-{"_" * 10}TOP_OF_FILE{"_" * 10}
-```
-Publish = Bool
-Date = 0000-00-00 00:00:00 +0100 or set-on-compile
-Title = String
-Description = String
-```
-
-Must be at the top of the file, and must be followed by a blank line.
-
-"""
-
- def __str__(self):
- return self.builtin_msg
diff --git a/archive_docs/_ssg/helpers.py b/archive_docs/_ssg/helpers.py
deleted file mode 100644
index c6dbe988..00000000
--- a/archive_docs/_ssg/helpers.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import re
-from datetime import datetime
-from pathlib import Path
-
-from pytz import timezone
-
-local_tz = timezone("Europe/London")
-
-
-def pytz_dt_now() -> datetime:
- return datetime.now(local_tz)
-
-
-def pytz_dt_epoch() -> float:
- return pytz_dt_now().timestamp()
-
-
-def pytz_dt_now_str(mask: str = "%Y-%m-%d %H:%M:%S %z") -> str:
- return datetime.now(local_tz).strftime(mask)
-
-
-def pytz_dt_to_str(pytz_dt: datetime, mask: str = "%Y-%m-%d %H:%M:%S %z") -> str:
- return pytz_dt.strftime(mask)
-
-
-def pytz_dt_str_to_dt(pytz_dt_str: str) -> datetime:
- """
- :param pytz_dt_str: "2020-01-01 00:00:00 +0000"
- """
- return datetime.strptime(pytz_dt_str, "%Y-%m-%d %H:%M:%S %z")
-
-
-def post_date(pytz_dt: datetime) -> str:
- return pytz_dt.strftime("%a, %d %b %Y")
-
-
-def switch_date(content, new_date):
- pattern = re.compile(r'date="(.*?)"', re.IGNORECASE)
- return pattern.sub(f'date="{new_date}"', content)
-
-
-def get_relative_files_in_the_docs_folder(docs_dir: Path) -> list:
- _ = []
- for f in docs_dir.glob("*.html"):
- if f.stem == "index":
- continue
- _.append(f.stem)
-
- return _
-
-
-def excessive_br_cleanup(base_xml: str) -> str:
- return base_xml.replace("
- {{ content|safe }}
-
-
-
-
\ No newline at end of file
diff --git a/archive_docs/_templates/__menu__.html b/archive_docs/_templates/__menu__.html
deleted file mode 100644
index 4850e80c..00000000
--- a/archive_docs/_templates/__menu__.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
diff --git a/archive_docs/_templates/index.html b/archive_docs/_templates/index.html
deleted file mode 100644
index 3bebf6fb..00000000
--- a/archive_docs/_templates/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- Flask-Imp
-
-
-
-
-
-
-
-
-
-
-
-
-{% include "__menu__.html" %}
-
-
- {{ index|safe }}
-
-
-
-
-
\ No newline at end of file
diff --git a/archive_docs/_templates/main_index.html b/archive_docs/_templates/main_index.html
deleted file mode 100644
index c2d3abf3..00000000
--- a/archive_docs/_templates/main_index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- Redirecting to latest...
-
-
-
-
-Click here if redirection is not working.
-
-
-
\ No newline at end of file
diff --git a/archive_docs/config.py b/archive_docs/config.py
deleted file mode 100644
index bec94c00..00000000
--- a/archive_docs/config.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from dataclasses import dataclass
-
-
-@dataclass
-class Config:
- latest = "v5"
- versions = ["v3", "v4", "v5"]
diff --git a/archive_docs/index.html b/archive_docs/index.html
deleted file mode 100644
index 1c12861d..00000000
--- a/archive_docs/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- Redirecting to latest...
-
-
-
-
-Click here if redirection is not working.
-
-
-
\ No newline at end of file
diff --git a/archive_docs/v3/blueprint-config-toml.html b/archive_docs/v3/blueprint-config-toml.html
deleted file mode 100644
index 0916c2eb..00000000
--- a/archive_docs/v3/blueprint-config-toml.html
+++ /dev/null
@@ -1,384 +0,0 @@
-
-
-
-
- The Flask-Imp Blueprint Config File | Flask-Imp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
The Flask-Imp Blueprint Config File
-
The Flask-Imp Blueprint will load configuration from a config.toml file, which is located in the same directory as the
-__init__.py file.
-
File: config.toml
-
enabled="yes"
-
-[settings]
-url_prefix=""
-subdomain=""
-url_defaults={}
-static_folder=""
-template_folder=""
-static_url_path=""
-#root_path = ""
-#cli_group = ""
-
-[session]
-var=""
-
-# Set ENABLED to true to allow the blueprint
-# to create a database bind, change settings accordingly.
-[DATABASE_BIND]
-ENABLED=true
-DIALECT="sqlite"
-DATABASE_NAME="example"
-LOCATION=""
-PORT=""
-USERNAME=""
-PASSWORD=""
-
-
This config reflects the args that are passed to a regular Flask Blueprint class, the addition of the ability to
-enable/disable the Blueprint, and set session variables.
-
For more information about the args of a regular Flask Blueprint see:
-Flask docs (Blueprint)
-
You can also allow the blueprint to create a database bind, by setting ENABLED to true in the DATABASE_BIND
-section.
-
This will add to the Flask app's SQLALCHEMY_BINDS config variable, and allows blueprints to be more modular
-with their database connections.
-
Including the attribute __bind_key__ in the blueprint's model(s) will match the model to the database bind.
The Flask-Imp Blueprint inherits from the Flask Blueprint class, then adds some additional methods to allow for auto
-importing of models, resources and other nested blueprints.
-
The Flask-Imp Blueprint reads configuration from a config.toml file, which is located in the same directory as the
-__init__.py file.
-
Here's an example of a Flask-Imp Blueprint structure:
That config.toml file is loaded during the __init__ method of the Blueprint class.
-To see more about the config file see: Blueprint / config.toml
-
import_resources method will walk one level deep into the routes folder, and import all .py files as modules.
-For more information see: Blueprint.x / import_resources
-
import_models works the same as imp.import_models, it will look for instances of db.Model and import them. These
-will also be available in the model lookup method imp.model.
-For more information see: Imp.x / import_models
-
import_nested_blueprints will do the same as imp.import_blueprints, but will register the blueprints found as
-nested to the current blueprint. For example www.blueprint_one.index
-
import_nested_blueprint behaves the same as import_nested_blueprints, but will only import a single blueprint.
Scopes the template lookup to the name of the blueprint (this takes from the __name__ attribute of the Blueprint).
-
Due to the way Flask templating works, and to avoid template name collisions.
-It is standard practice to place the name of the Blueprint in the template path,
-then to place any templates under that folder.
bp.tmpl("index.html") will output "my_blueprint/index.html".
-
-
-
-
-
\ No newline at end of file
diff --git a/archive_docs/v3/cli_commands-flask-imp_blueprint.html b/archive_docs/v3/cli_commands-flask-imp_blueprint.html
deleted file mode 100644
index db12a2b0..00000000
--- a/archive_docs/v3/cli_commands-flask-imp_blueprint.html
+++ /dev/null
@@ -1,320 +0,0 @@
-
-
-
-
- Generate A Flask-Imp Blueprint | Flask-Imp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Generate a Flask-Imp Blueprint
-
Flask-Imp has its own type of blueprint. It can read some configuration from a toml file and has some extra methods for
-auto importing.
-
flask-impblueprint--help
-
-
To generate a Flask-Imp blueprint, run the following command:
-
flask-impblueprint
-
-
After running this command, you will be prompted to enter the location of where you want to create your blueprint:
-
~ $ flask-imp blueprint
-(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]:
-
-
As detailed in the prompt, the creation of the blueprint is relative to the current working directory. So to create a
-blueprint in the folder app/blueprints, you would enter app/blueprints in the prompt.
-
(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-
-
You will then be prompted to enter a name for your blueprint:
-
(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-Name of the blueprint to create [my_new_blueprint]:
-
-
The default name is 'my_new_blueprint', we will change this to 'admin'
-
(Creation is relative to the current working directory)
-Folder to create blueprint in [Current Working Directory]: app/blueprints
-Name of the blueprint to create [my_new_blueprint]: admin
-
-
After creating your blueprint, the folder structure will look like this:
This is a self-contained blueprint, so it has its own static, templates and routes folders. You can now navigate '
-/admin'
-
You can streamline this process by specifying the name of the blueprint and the folder to create it in, like so:
-
flask-impblueprint-nadmin-fapp/blueprints
-
-
-
-
-
-
\ No newline at end of file
diff --git a/archive_docs/v3/cli_commands-flask-imp_init.html b/archive_docs/v3/cli_commands-flask-imp_init.html
deleted file mode 100644
index ddd589a5..00000000
--- a/archive_docs/v3/cli_commands-flask-imp_init.html
+++ /dev/null
@@ -1,433 +0,0 @@
-
-
-
-
- Initialising A Flask-Imp Project | Flask-Imp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Initialising a Flask-Imp Project
-
Flask-Imp has a cli command that deploys a new ready-to-go project.
-This project is structured in a way to give you the best idea of
-how to use Flask-Imp.
-
flask-impinit--help
-
-
Create a new project
-
Make sure you are in the virtual environment, and at the root of your project folder, then run the following command:
-
flask-impinit
-
-
After running this command, you will be prompted to choose what type of app you want to deploy:
-
~ $ flask-imp init
-What type of app would you like to create? (full, slim, minimal) [full]:
-
-
See below for the differences between the app types.
-
After this, you will be prompted to enter a name for your app:
-
~ $ flask-imp init
-What would you like to call your app? [app]:
-
-
'app' is the default name, so if you just press enter, your app will be called 'app'. You will then see this output:
-
===================
-Flask app deployed!
-===================
-
-Your app has the default name of 'app'
-Flask will automatically look for this!
-Run: flask run --debug
-
-
If you called your app something other than 'app', like 'new' for example, you will see:
-
===================
-Flask app deployed!
-===================
-
-Your app has the name of 'new'
-Run: flask --app new run --debug
-
-
As you can see from the output, it gives you instructions on how to start your app, depending on the name you gave it.
-
You should see a new folder that has been given the name you specified in
-the flask-imp init command.
-
Additional options
-
You can also specify a name for your app in the command itself, like so:
-
flask-impinit-nmy_app
-
-
This will create a new app called 'my_app'.
-
You can also deploy a slim app, that will have one blueprint and no models, like so:
-
flask-impinit-nmy_app--slim
-
-
You can also deploy a minimal app, that will have no blueprints, models, or extensions, like so:
Takes the plain input password, the stored hashed password along with the stored salt
-and will try every possible combination of pepper values to find a match.
-
Note:
-
use_multiprocessing is not compatible with coroutine workers, e.g. eventlet/gevent
-commonly used with socketio.
-
If you are using socketio, you must set use_multiprocessing to False (default).
-
Note:
-
-
You must know the pepper length used to hash the password.
-
You must know the position of the pepper used to hash the password.
-
You must know the encryption level used to hash the password.
Uses generate_alphanumeric_validator with a length of 8 to
-generate a random alphanumeric value for the specific use of
-validating accounts via email.
@bp.route("/api/resource",methods=["GET"])
-@api_login_check('logged_in',True,fail_json={"failed":"You need to be logged in."})
-defapi_page():
- ...
-
On a GET request, a CSRF token is generated and stored in the session key
-specified by the session_key parameter.
-
On a POST request, the form_key specified is checked against the session_key
-specified.
-
-
If they match, the request is allowed to continue.
-
If no match, the response will be abort(abort_code), default 401.
-
-
@bp.route("/admin",methods=["GET","POST"])
-@include_csrf(session_key="csrf",form_key="csrf")
-defadmin_page():
- ...
- # You must pass in the CSRF token from the session into the template.
- # Then add <input type="hidden" name="csrf" value="{{ csrf }}"> to the form.
- returnrender_template("admin.html",csrf=session.get("csrf"))
-
Flask-Imp is a Flask extension that provides auto import methods for various Flask resources. It will import models,
-blueprints, and other resources from a Flask application. It uses the importlib module to achieve this.
-
Flask-Imp favors the application factory pattern as a project structure, and is opinionated towards using only
-Blueprints. However, you can use Flask-Imp without using Blueprints.
-
Here's an example of a standard Flask-Imp project structure:
During imp.init_app the default.config.toml file will load variables under [FLASK] into the Flask app config.
-It will also load variables under [DATABASE] into the Flask app config as SQLALCHEMY_DATABASE_URI.
import_app_resources will walk one level deep into the resources folder, and import all .py files as modules. It will
-also check for the existence of a static and templates folder, and register them with the Flask app.
-
There is a couple of options for import_app_resources to control what
-is imported, see: Imp.x / import_app_resources
-
import_models will import all Model classes from the specified file or folder. It will also place each model found
-into a lookup table that you can access via imp.model
import_blueprints expects a folder that contains many Blueprint as Python packages.
-It will check each blueprint folder's __init__.py file for an instance of a Flask Blueprint or a
-Flask-Imp Blueprint. That instant will then be registered with the Flask app.
Here's an example of the default config file that is created:
-
# Flask-Imp Config File
-# ------------------------
-# Updates the Flask app config with the variables below.
-# If any variable below does not exist in the standard Flask env
-# vars it is created and will be accessible using
-# app.config. All key names defined below will be
-# capitalised when imported.
-[FLASK]
-DEBUG=false
-#PROPAGATE_EXCEPTIONS = true
-TRAP_HTTP_EXCEPTIONS=false
-#TRAP_BAD_REQUEST_ERRORS = true
-SECRET_KEY="super_secret_key"
-SESSION_COOKIE_NAME="session"
-#SESSION_COOKIE_DOMAIN = "domain-here.com"
-#SESSION_COOKIE_PATH = "/"
-SESSION_COOKIE_HTTPONLY=true
-SESSION_COOKIE_SECURE=false
-SESSION_COOKIE_SAMESITE="Lax"
-PERMANENT_SESSION_LIFETIME=3600# 1 hour
-SESSION_REFRESH_EACH_REQUEST=true
-USE_X_SENDFILE=false
-#SEND_FILE_MAX_AGE_DEFAULT = 43200
-ERROR_404_HELP=true
-#SERVER_NAME = "localhost:5000"
-APPLICATION_ROOT="/"
-PREFERRED_URL_SCHEME="http"
-#MAX_CONTENT_LENGTH = 0
-#TEMPLATES_AUTO_RELOAD = true
-EXPLAIN_TEMPLATE_LOADING=false
-MAX_COOKIE_SIZE=4093
-
-
-# This will set the default session variables for the app.
-# Anything here will be accessible using session["your_var_name"]
-# or session.get("your_var_name")
-[SESSION]
-logged_in=false
-
-# These settings are spcific to the Flask-SQLAlchemy extension.
-# Anything here will be accessible using app.config
-[SQLALCHEMY]
-SQLALCHEMY_ECHO=false
-SQLALCHEMY_TRACK_MODIFICATIONS=false
-SQLALCHEMY_RECORD_QUERIES=false
-# Below are extra settings that Flask-Imp uses but relates to Flask-SQLAlchemy.
-# This sets the file extension for SQLite databases, and where to create the folder
-# that the database will be stored in. true will create the folder on the same level as your
-# app, false will create the folder in the app root.
-SQLITE_DB_EXTENSION=".sqlite"
-SQLITE_STORE_IN_PARENT=true
-
-# [DATABASE.MAIN] is loaded as SQLALCHEMY_DATABASE_URI
-# Dialets = mysql / postgresql / sqlite / oracle / mssql
-
-# Uncomment below to generate the SQLALCHEMY_DATABASE_URI.
-#[DATABASE.MAIN]
-#ENABLED = true
-#DIALECT = "sqlite"
-#DATABASE_NAME = "database"
-#LOCATION = "db"
-#PORT = ""
-#USERNAME = "database"
-#PASSWORD = "password"
-
-# Adding another database is as simple as adding a new section.
-# [DATABASE.ANOTHER] will then be accessible using SQLALCHEMY_BINDS
-# The bind key will be stored as a lowercase value, so "ANOTHER" will
-# be accessible as "another"
-# You can then use the bind key in the model as follows:
-# class MyModel(db.Model):
-# __bind_key__ = "another"
-# ...
-
-# Uncomment below to generate and add to SQLALCHEMY_BINDS.
-#[DATABASE.ANOTHER]
-#ENABLED = true
-#DIALECT = "sqlite"
-#DATABASE_NAME = "database_another"
-#LOCATION = "db"
-#PORT = ""
-#USERNAME = "user"
-#PASSWORD = "password"
-
-
To change what config file is loaded, you can set the IMP_CONFIG environment
-variable to the name of the config file you want to load.
-
For example, given the following folder structure:
To scope the imports, set the files_to_import and or folders_to_import to a list of files and or folders.
-
files_to_import=["cli.py", "routes.py"] => will only import the files resources/cli.py
-and resources/routes.py
-
folders_to_import=["template_filters", "context_processors"] => will import all files in the folders
-resources/template_filters/*.py and resources/context_processors/*.py
Both of the above examples will work with imp.import_blueprint("my_blueprint"), they will be registered
-with the Flask app, and will be accessible via url_for("my_blueprint.index").
Returns the SQLAlchemy model class for the given class name that was imported using Imp.import_models or
-Blueprint.import_models.
-
This method has convenience for being able to omit the need to import the model class from the file it was defined in.
-However, it is not compatible with IDE type hinting.
Flask-Imp's main purpose is to help simplify the importing of blueprints, resources, and models. It has a few extra
-features built in to help with securing pages and password authentication.
-
Install Flask-Imp
-
pipinstallflask-imp
-
-
Getting Started
-
To get started right away, you can utilize the CLI commands to create a new Flask-Imp project.
-
flask-impinit
-
-
Minimal Flask-Imp Setup
-
Run the following command to create a minimal Flask-Imp project.