Spaces:
Build error
Build error
import os | |
import sys | |
from time import sleep | |
import click | |
# RCOUNT: 145 | |
class CommandDefinition: | |
def generator(self, name, det): # noqa | |
from utils import generator | |
if det == "all": | |
if not name: | |
print("Enter at least one name!") | |
for item in name: | |
generator.create_model(item) | |
generator.create_endpoint(item) | |
generator.create_crud(item) | |
generator.create_schema(item) | |
elif det == "model": | |
if not name: | |
print("Enter at least one model name!") | |
for item in name: | |
generator.create_model(item) | |
elif det == "schema": | |
if not name: | |
print("Enter at least one schema name!") | |
for item in name: | |
generator.create_schema(item) | |
elif det == "endpoint": | |
if not name: | |
print("Enter at least one endpoint name!") | |
for item in name: | |
generator.create_endpoint(item) | |
elif det == "crud": | |
if not name: | |
print("Enter at least one CRUD name!") | |
for item in name: | |
generator.create_crud(item) | |
def start(self): | |
from misc.scripts import launch | |
launch.run() | |
def mkmig(self): | |
from alembic import command | |
from alembic.config import Config | |
alembic_cfg = Config("alembic.ini") | |
msg = input("Enter a message: ") | |
command.revision(config=alembic_cfg, autogenerate=True, message=msg) | |
click.echo("Inside migrate") | |
def mig(self): | |
from alembic import command | |
from alembic.config import Config | |
alembic_cfg = Config("alembic.ini") | |
command.upgrade(alembic_cfg, "head") | |
def cleanmig(self): | |
for file in os.listdir("migrations/versions/"): | |
if file != ".keep": | |
if os.path.isfile(f"migrations/versions/{file}"): | |
os.remove(f"migrations/versions/{file}") | |
def cleanredis(self): | |
from core.config import settings | |
os.system( | |
f"docker-compose exec redis redis-cli -a {settings.SECRET_KEY} FLUSHALL" | |
) | |
def logs(self): | |
os.system(f"docker-compose logs -f -t") | |
def remake(self): | |
self.cleandb() | |
self.populate() | |
def remakeall(self): | |
from alembic import command | |
from alembic.config import Config | |
try: | |
os.system(f"docker-compose down -v -t 5") | |
os.system( | |
f"cd .. && docker-compose up -d postgres redis pgadmin mailhog file_server" | |
) | |
except Exception as e: | |
print(e) | |
self.cleanmig() | |
alembic_cfg = Config("alembic.ini") | |
rev_created = False | |
while True: | |
try: | |
if not rev_created: | |
command.revision( | |
config=alembic_cfg, autogenerate=True, message="Remake All" | |
) | |
rev_created = True | |
command.upgrade(alembic_cfg, "head") | |
break | |
except Exception as e: | |
print(e) | |
print("Waiting for containers to boot!") | |
sleep(3) | |
try: | |
self.populate() | |
except Exception as e: | |
print(e) | |
def dcstart(self): | |
os.system( | |
"cd .. && docker-compose up -d postgres file_server redis pgadmin mailhog" | |
) | |
def cleandb(self): | |
try: | |
from alembic import command | |
from alembic.config import Config | |
from core.db import engine | |
self.cleanmig() | |
engine.execute("DROP schema public CASCADE") | |
engine.execute("CREATE schema public") | |
alembic_cfg = Config("alembic.ini") | |
command.revision(config=alembic_cfg, autogenerate=True, message="cleandb") | |
command.upgrade(alembic_cfg, "head") | |
except Exception as e: | |
print(e) | |
def populate(self): | |
from utils import populate as db_populate | |
sleep(5) | |
db_populate.populate_all() | |
def pytest(self): | |
ec = int( | |
os.system( | |
"pytest --verbose --color=yes tests/api/api_v1/") | |
/ 256 | |
) | |
sys.exit(ec) | |
def build_push(self): | |
ec = int( | |
os.system( | |
"docker build -t registry.gitlab.com/arpandaze/sikshyalaya/backend . && docker push registry.gitlab.com/arpandaze/sikshyalaya/backend") | |
/ 256 | |
) | |
sys.exit(ec) | |
commands = CommandDefinition() | |
def main(): | |
pass | |
def create(context): | |
if not context.invoked_subcommand: | |
pass | |
def clean(context): | |
if not context.invoked_subcommand: | |
pass | |
def all(name): # noqa | |
commands.generator(name, "all") | |
def model(name): | |
commands.generator(name, "model") | |
def schema(name): | |
commands.generator(name, "schema") | |
def endpoint(name): | |
commands.generator(name, "endpoint") | |
def crud(name): | |
commands.generator(name, "crud") | |
def start(): | |
commands.start() | |
def dcstart(): | |
commands.dcstart() | |
def pytest(): | |
commands.pytest() | |
def build_push(): | |
commands.build_push() | |
def mkmig(): | |
commands.mkmig() | |
def mig(): | |
commands.mig() | |
def clean_mig(): | |
commands.cleanmig() | |
def redis(): | |
commands.cleanredis() | |
def logs(): | |
commands.logs() | |
def remakeall(): | |
commands.remakeall() | |
def remake(): | |
commands.remake() | |
def db(): | |
commands.cleandb() | |
def populate(): | |
commands.populate() | |
main.add_command(create) | |
main.add_command(clean) | |
main.add_command(start) | |
main.add_command(mkmig) | |
main.add_command(mig) | |
main.add_command(populate) | |
main.add_command(logs) | |
main.add_command(remakeall) | |
main.add_command(remake) | |
main.add_command(dcstart) | |
main.add_command(pytest) | |
main.add_command(build_push) | |
clean.add_command(db) | |
clean.add_command(clean_mig) | |
clean.add_command(redis) | |
create.add_command(model) | |
create.add_command(schema) | |
create.add_command(crud) | |
create.add_command(endpoint) | |
create.add_command(all) | |
if __name__ == "__main__": | |
main() | |