🚚 Refactor and simplify backend file structure (#609)
This commit is contained in:

committed by
GitHub

parent
a065f9c9e8
commit
73b2884057
@@ -1,3 +0,0 @@
|
||||
[flake8]
|
||||
max-line-length = 88
|
||||
exclude = .git,__pycache__,__init__.py,.mypy_cache,.pytest_cache
|
3
src/backend/app/.gitignore
vendored
3
src/backend/app/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
.mypy_cache
|
||||
.coverage
|
||||
htmlcov
|
@@ -1,71 +0,0 @@
|
||||
# A generic, single database configuration.
|
||||
|
||||
[alembic]
|
||||
# path to migration scripts
|
||||
script_location = alembic
|
||||
|
||||
# template used to generate migration files
|
||||
# file_template = %%(rev)s_%%(slug)s
|
||||
|
||||
# timezone to use when rendering the date
|
||||
# within the migration file as well as the filename.
|
||||
# string value is passed to dateutil.tz.gettz()
|
||||
# leave blank for localtime
|
||||
# timezone =
|
||||
|
||||
# max length of characters to apply to the
|
||||
# "slug" field
|
||||
#truncate_slug_length = 40
|
||||
|
||||
# set to 'true' to run the environment during
|
||||
# the 'revision' command, regardless of autogenerate
|
||||
# revision_environment = false
|
||||
|
||||
# set to 'true' to allow .pyc and .pyo files without
|
||||
# a source .py file to be detected as revisions in the
|
||||
# versions/ directory
|
||||
# sourceless = false
|
||||
|
||||
# version location specification; this defaults
|
||||
# to alembic/versions. When using multiple version
|
||||
# directories, initial revisions must be specified with --version-path
|
||||
# version_locations = %(here)s/bar %(here)s/bat alembic/versions
|
||||
|
||||
# the output encoding used when revision files
|
||||
# are written from script.py.mako
|
||||
# output_encoding = utf-8
|
||||
|
||||
# Logging configuration
|
||||
[loggers]
|
||||
keys = root,sqlalchemy,alembic
|
||||
|
||||
[handlers]
|
||||
keys = console
|
||||
|
||||
[formatters]
|
||||
keys = generic
|
||||
|
||||
[logger_root]
|
||||
level = WARN
|
||||
handlers = console
|
||||
qualname =
|
||||
|
||||
[logger_sqlalchemy]
|
||||
level = WARN
|
||||
handlers =
|
||||
qualname = sqlalchemy.engine
|
||||
|
||||
[logger_alembic]
|
||||
level = INFO
|
||||
handlers =
|
||||
qualname = alembic
|
||||
|
||||
[handler_console]
|
||||
class = StreamHandler
|
||||
args = (sys.stderr,)
|
||||
level = NOTSET
|
||||
formatter = generic
|
||||
|
||||
[formatter_generic]
|
||||
format = %(levelname)-5.5s [%(name)s] %(message)s
|
||||
datefmt = %H:%M:%S
|
@@ -1,4 +0,0 @@
|
||||
[mypy]
|
||||
plugins = pydantic.mypy, sqlmypy
|
||||
ignore_missing_imports = True
|
||||
disallow_untyped_defs = True
|
@@ -1,10 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# Let the DB start
|
||||
python /app/app/backend_pre_start.py
|
||||
|
||||
# Run migrations
|
||||
alembic upgrade head
|
||||
|
||||
# Create initial data in DB
|
||||
python /app/app/initial_data.py
|
@@ -1,45 +0,0 @@
|
||||
[tool.poetry]
|
||||
name = "app"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
authors = ["Admin <admin@example.com>"]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.10"
|
||||
uvicorn = "^0.24.0.post1"
|
||||
fastapi = "^0.104.1"
|
||||
python-multipart = "^0.0.6"
|
||||
email-validator = "^2.1.0.post1"
|
||||
celery = "^5.3.5"
|
||||
passlib = {extras = ["bcrypt"], version = "^1.7.4"}
|
||||
tenacity = "^8.2.3"
|
||||
pydantic = "<2.0"
|
||||
emails = "^0.6"
|
||||
|
||||
gunicorn = "^21.2.0"
|
||||
jinja2 = "^3.1.2"
|
||||
alembic = "^1.12.1"
|
||||
python-jose = {extras = ["cryptography"], version = "^3.3.0"}
|
||||
httpx = "^0.25.1"
|
||||
psycopg = {extras = ["binary"], version = "^3.1.13"}
|
||||
sqlmodel = "^0.0.16"
|
||||
# Pin bcrypt until passlib supports the latest
|
||||
bcrypt = "4.0.1"
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
mypy = "^1.7.0"
|
||||
black = "^23.11.0"
|
||||
isort = "^5.12.0"
|
||||
autoflake = "^2.2.1"
|
||||
flake8 = "^6.1.0"
|
||||
pytest = "^7.4.3"
|
||||
pytest-cov = "^4.1.0"
|
||||
|
||||
[tool.isort]
|
||||
multi_line_output = 3
|
||||
include_trailing_comma = true
|
||||
force_grid_wrap = 0
|
||||
line_length = 88
|
||||
[build-system]
|
||||
requires = ["poetry>=0.12"]
|
||||
build-backend = "poetry.masonry.api"
|
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
set -x
|
||||
|
||||
# Sort imports one per line, so autoflake can remove unused imports
|
||||
isort --recursive --force-single-line-imports --apply app
|
||||
sh ./scripts/format.sh
|
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
set -x
|
||||
|
||||
autoflake --remove-all-unused-imports --recursive --remove-unused-variables --in-place app --exclude=__init__.py
|
||||
black app
|
||||
isort --recursive --apply app
|
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -x
|
||||
|
||||
mypy app
|
||||
black app --check
|
||||
isort --recursive --check-only app
|
||||
flake8
|
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
bash scripts/test.sh --cov-report=html "${@}"
|
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
pytest --cov=app --cov-report=term-missing app/tests "${@}"
|
@@ -1,6 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
python /app/app/tests_pre_start.py
|
||||
|
||||
bash ./scripts/test.sh "$@"
|
@@ -1,6 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
set -e
|
||||
|
||||
python /app/app/celeryworker_pre_start.py
|
||||
|
||||
celery -A app.worker worker -l info -Q main-queue -c 1
|
Reference in New Issue
Block a user