summaryrefslogtreecommitdiffstats
path: root/src/frest/manage
diff options
context:
space:
mode:
authorSanto Cariotti <dcariotti24@gmail.com>2020-04-06 19:54:53 +0000
committerSanto Cariotti <dcariotti24@gmail.com>2020-04-06 19:54:53 +0000
commit3a2246e26e9febe3c15e2ddc1e7e6f320f86fe15 (patch)
tree9cbd95771d38dfd66bedb4a447470391d34a68eb /src/frest/manage
parent6188a952974b3e268936beb1027ea58fbfaa67aa (diff)
chore: move package in frest folder
Diffstat (limited to 'src/frest/manage')
-rw-r--r--src/frest/manage/__init__.py0
-rw-r--r--src/frest/manage/bcolors.py17
-rw-r--r--src/frest/manage/utils.py226
3 files changed, 0 insertions, 243 deletions
diff --git a/src/frest/manage/__init__.py b/src/frest/manage/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/src/frest/manage/__init__.py
+++ /dev/null
diff --git a/src/frest/manage/bcolors.py b/src/frest/manage/bcolors.py
deleted file mode 100644
index eb8b803..0000000
--- a/src/frest/manage/bcolors.py
+++ /dev/null
@@ -1,17 +0,0 @@
-class bcolors(object):
- DARK_GREY = "\033[90m"
- BOLD = "\033[1m"
- ERROR = "\033[91m"
- OK = "\033[92m"
- WARNING = "\033[93m"
- ENDC = "\033[0m"
-
-
-COLORS = [
- bcolors.DARK_GREY,
- bcolors.BOLD,
- bcolors.ERROR,
- bcolors.OK,
- bcolors.WARNING,
- bcolors.ENDC,
-]
diff --git a/src/frest/manage/utils.py b/src/frest/manage/utils.py
deleted file mode 100644
index f8e76d1..0000000
--- a/src/frest/manage/utils.py
+++ /dev/null
@@ -1,226 +0,0 @@
-import os
-from .bcolors import COLORS
-
-
-ENDC = len(COLORS) - 1
-
-
-def logging(text, _type=ENDC, end=""):
- print(f"{COLORS[_type]}{text}{COLORS[ENDC]}", end=end)
-
-
-def logging_arg(text, *args):
- args = [f"{COLORS[0]}{i}{COLORS[ENDC]}" for i in args]
- print(text.format(*args), end="")
-
-
-def logo():
- print(
- """
- __ _
- / _| | |
- | |_ _ __ ___ ___| |_
- | _| '__/ _ \/ __| __|
- | | | | | __/\__ \ |_
- |_| |_| \___||___/\__|
- \n\n"""
- )
-
-
-def inputsr():
- return input().strip().replace(" ", "_").lower()
-
-
-def create_field(fields):
- field = {"name": "", "type": "", "nullable": True}
- logging("Choose field name: ")
- field_name = inputsr()
- while (len(field_name) < 1 or field_name[0].isdigit()) or (
- field_name in fields or field_name in ["id", "created_at", "updated_at"]
- ):
- if len(field_name) < 1 or field_name[0].isdigit():
- logging("Field name must not be empty or starts with a number", 2, "\n")
- else:
- logging("Field name already exists", 2, "\n")
-
- logging("Choose field name: ")
- field_name = inputsr()
-
- field["name"] = field_name
-
- logging("Choose field type: ")
- logging("int, str, text, datetime, float, bool", 0, " ")
- field_type = inputsr()
- if field_type not in ["int", "str", "text", "datetime", "float", "bool"]:
- logging("Field type must be one of the supported type", 2, "\n")
- logging("Choose field type: ")
- logging("int, str, text, datetime, float, bool", 0, " ")
- field_type = inputsr()
-
- if field_type == "str":
- logging("Choose string size: ")
- stringsize = inputsr()
- while not stringsize.isdigit():
- logging("String size must be an integer number", 2, "\n")
- logging("Choose string size: ")
- stringsize = inputsr()
-
- stringsize = int(stringsize)
- if stringsize < 1:
- logging("You inserted 0, so it will be 1 by default", 4, "\n")
- stringsize = 1
-
- field["size"] = stringsize
-
- field["type"] = field_type
-
- logging("Field is nullable? (Y/n): ")
- field_nullable = inputsr()
-
- if len(field_nullable) > 0:
- while True:
- if field_nullable[0] not in ["y", "n"]:
- logging("Field is nullable? (Y/n): ")
- field_nullable = inputsr()
- else:
- break
-
- if field_nullable[0] == "n":
- field["nullable"] = False
-
- return field
-
-
-def create_model_cli(name):
- logging(
- "Fields id, created_at, updated_at are default on every new model, you can delete it from model file",
- 4,
- "\n\n",
- )
- fields = []
- logging("Create field? (Y/n): ")
- answer = inputsr()
-
- while answer in ["y", "", "yes"]:
- field = create_field(fields)
- fields.append(field)
-
- logging("Create new field? (Y/n): ")
- answer = inputsr()
-
- fields_string = ""
- init_fields_s = ""
- for field in fields:
- field_string = f"{field['name']} = db.Column("
- if field["type"] == "int":
- field_string += "db.Integer"
- elif field["type"] == "str":
- field_string += f"db.String({field['size']})"
- elif field["type"] == "text":
- field_string += "db.Text"
- elif field["type"] == "datetime":
- field_string += "db.Datetime"
- elif field["type"] == "float":
- field_string += "db.Float"
- else:
- field_string += "db.Boolean"
-
- field_string += f", nullable={field['nullable']})\n\t".replace("\t", " " * 4)
-
- fields_string += field_string
- init_fields_s += f"self.{field['name']} = kwargs.get('{field['name']}')\n\t\t".replace(
- "'", '"'
- ).replace(
- "\t", " " * 4
- )
-
- with open("templates/models.txt") as f:
- modeltext = "".join(f.readlines())
-
- modeltext = modeltext.replace("%%NAME%%", name.capitalize())
- modeltext = modeltext.replace("%%name%%", name)
- modeltext = modeltext.replace("%%params_model%%", fields_string[:-5])
- modeltext = modeltext.replace("%%params_model_init%%", init_fields_s[:-9])
-
- modelpath = f"scheme/{name}/models.py"
- logging_arg("Create {}... ", modelpath)
- with open(modelpath, "w") as f:
- f.write(modeltext)
-
- return fields
-
-
-def create_forms(name):
- with open("templates/form.txt") as f:
- formstext = "".join(f.readlines())
-
- formstext = formstext.replace("%%NAME%%", name.capitalize())
- with open(f"scheme/{name}/forms.py", "w") as f:
- f.write(formstext)
-
-
-def create_routes(name, fields):
- fields_l = [f"{name}Id"]
- fields_l.extend([i["name"] for i in fields])
- fields_l.extend(["created_at", "updated_at"])
-
- params_form = ""
- for i in fields:
- params_form += f"{i['name']}=form.get('{i['name']}'),\n\t\t\t".replace(
- "'", '"'
- ).replace("\t", " " * 4)
-
- params_put = ""
- for i in fields:
- params_put += f"{name[0]}.{i['name']} = form.get('{i['name']}')\n\t\t".replace(
- "'", '"'
- ).replace("\t", " " * 4)
-
- with open("templates/routes.txt") as f:
- routestext = "".join(f.readlines())
-
- routestext = routestext.replace("%%NAME%%", name.capitalize())
- routestext = routestext.replace("%%name%%", name)
- routestext = routestext.replace("%%params%%", ",".join(fields_l))
- routestext = routestext.replace("%%first_char%%", name[0])
- routestext = routestext.replace("%%params_form%%", params_form[:-13])
- routestext = routestext.replace("%%params_put%%", params_put[:-9])
-
- with open(f"scheme/{name}/routes.py", "w") as f:
- f.write(routestext)
-
-
-def create_app(name):
- name = name.lower().replace("-", "_")
-
- if name.isdigit() or name[0].isdigit():
- logging("Name cannot be a number o starts with a number", 2)
- return
-
- if len(name) < 2:
- logging("Name of app must be minimun 2 characters long", 2)
- return
-
- if os.path.exists(f"scheme/{name}"):
- logging("App already exists", 2)
- return
-
- logging_arg("Create {}... ", f"scheme/{name}")
- os.mkdir(f"scheme/{name}")
- logging("OK", 3, "\n")
-
- logging_arg("Create {}... ", f"scheme/{name}/__init__.py")
- open(f"scheme/{name}/__init__.py", "w").close()
- logging("OK", 3, "\n")
-
- logging_arg("Create model for {}...\n", name)
- fields = create_model_cli(name)
- logging("OK", 3, "\n")
-
- logging_arg("Create {}... ", f"scheme/{name}/forms.py")
- create_forms(name)
- logging("OK", 3, "\n")
-
- logging_arg("Create {}... ", f"scheme/{name}/routes.py")
- create_routes(name, fields)
- logging("OK", 3, "\n")