Browse Source

🚚 Refactor and simplify backend file structure (#609)

pull/13907/head
Sebastián Ramírez 1 year ago
committed by GitHub
parent
commit
73b2884057
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 8
      src/backend/.dockerignore
  2. 0
      src/backend/.flake8
  3. 3
      src/backend/.gitignore
  4. 2
      src/backend/alembic.ini
  5. 3
      src/backend/app/.gitignore
  6. 0
      src/backend/app/__init__.py
  7. 0
      src/backend/app/api/__init__.py
  8. 0
      src/backend/app/api/api_v1/__init__.py
  9. 0
      src/backend/app/api/api_v1/api.py
  10. 0
      src/backend/app/api/api_v1/endpoints/__init__.py
  11. 0
      src/backend/app/api/api_v1/endpoints/items.py
  12. 0
      src/backend/app/api/api_v1/endpoints/login.py
  13. 0
      src/backend/app/api/api_v1/endpoints/users.py
  14. 0
      src/backend/app/api/api_v1/endpoints/utils.py
  15. 0
      src/backend/app/api/deps.py
  16. 0
      src/backend/app/backend_pre_start.py
  17. 0
      src/backend/app/celeryworker_pre_start.py
  18. 0
      src/backend/app/core/__init__.py
  19. 0
      src/backend/app/core/celery_app.py
  20. 0
      src/backend/app/core/config.py
  21. 0
      src/backend/app/core/security.py
  22. 0
      src/backend/app/crud/__init__.py
  23. 0
      src/backend/app/crud/base.py
  24. 0
      src/backend/app/crud/crud_item.py
  25. 0
      src/backend/app/crud/crud_user.py
  26. 0
      src/backend/app/db/__init__.py
  27. 0
      src/backend/app/db/engine.py
  28. 0
      src/backend/app/db/init_db.py
  29. 0
      src/backend/app/email-templates/build/new_account.html
  30. 0
      src/backend/app/email-templates/build/reset_password.html
  31. 0
      src/backend/app/email-templates/build/test_email.html
  32. 0
      src/backend/app/email-templates/src/new_account.mjml
  33. 0
      src/backend/app/email-templates/src/reset_password.mjml
  34. 0
      src/backend/app/email-templates/src/test_email.mjml
  35. 0
      src/backend/app/initial_data.py
  36. 0
      src/backend/app/main.py
  37. 0
      src/backend/app/models.py
  38. 0
      src/backend/app/schemas/__init__.py
  39. 0
      src/backend/app/schemas/item.py
  40. 0
      src/backend/app/schemas/msg.py
  41. 0
      src/backend/app/schemas/token.py
  42. 0
      src/backend/app/schemas/user.py
  43. 0
      src/backend/app/tests/.gitignore
  44. 0
      src/backend/app/tests/__init__.py
  45. 0
      src/backend/app/tests/api/__init__.py
  46. 0
      src/backend/app/tests/api/api_v1/__init__.py
  47. 0
      src/backend/app/tests/api/api_v1/test_celery.py
  48. 0
      src/backend/app/tests/api/api_v1/test_items.py
  49. 0
      src/backend/app/tests/api/api_v1/test_login.py
  50. 0
      src/backend/app/tests/api/api_v1/test_users.py
  51. 0
      src/backend/app/tests/conftest.py
  52. 0
      src/backend/app/tests/crud/__init__.py
  53. 0
      src/backend/app/tests/crud/test_item.py
  54. 0
      src/backend/app/tests/crud/test_user.py
  55. 0
      src/backend/app/tests/utils/__init__.py
  56. 0
      src/backend/app/tests/utils/item.py
  57. 0
      src/backend/app/tests/utils/user.py
  58. 0
      src/backend/app/tests/utils/utils.py
  59. 0
      src/backend/app/tests_pre_start.py
  60. 0
      src/backend/app/utils.py
  61. 0
      src/backend/app/worker.py
  62. 17
      src/backend/backend.dockerfile
  63. 17
      src/backend/celeryworker.dockerfile
  64. 0
      src/backend/mypy.ini
  65. 0
      src/backend/prestart.sh
  66. 0
      src/backend/pyproject.toml
  67. 0
      src/backend/scripts/format-imports.sh
  68. 0
      src/backend/scripts/format.sh
  69. 0
      src/backend/scripts/lint.sh
  70. 0
      src/backend/scripts/test-cov-html.sh
  71. 0
      src/backend/scripts/test.sh
  72. 0
      src/backend/tests-start.sh
  73. 0
      src/backend/worker-start.sh
  74. 8
      src/docker-compose.override.yml

8
src/backend/.dockerignore

@ -0,0 +1,8 @@
# Python
__pycache__
app.egg-info
*.pyc
.mypy_cache
.coverage
htmlcov
.venv

0
src/backend/app/.flake8 → src/backend/.flake8

3
src/backend/.gitignore

@ -1,3 +1,6 @@
__pycache__
app.egg-info
*.pyc
.mypy_cache
.coverage
htmlcov

2
src/backend/app/alembic.ini → src/backend/alembic.ini

@ -2,7 +2,7 @@
[alembic]
# path to migration scripts
script_location = alembic
script_location = app/alembic
# template used to generate migration files
# file_template = %%(rev)s_%%(slug)s

3
src/backend/app/.gitignore

@ -1,3 +0,0 @@
.mypy_cache
.coverage
htmlcov

0
src/backend/app/app/__init__.py → src/backend/app/__init__.py

0
src/backend/app/app/api/__init__.py → src/backend/app/api/__init__.py

0
src/backend/app/app/api/api_v1/__init__.py → src/backend/app/api/api_v1/__init__.py

0
src/backend/app/app/api/api_v1/api.py → src/backend/app/api/api_v1/api.py

0
src/backend/app/app/api/api_v1/endpoints/__init__.py → src/backend/app/api/api_v1/endpoints/__init__.py

0
src/backend/app/app/api/api_v1/endpoints/items.py → src/backend/app/api/api_v1/endpoints/items.py

0
src/backend/app/app/api/api_v1/endpoints/login.py → src/backend/app/api/api_v1/endpoints/login.py

0
src/backend/app/app/api/api_v1/endpoints/users.py → src/backend/app/api/api_v1/endpoints/users.py

0
src/backend/app/app/api/api_v1/endpoints/utils.py → src/backend/app/api/api_v1/endpoints/utils.py

0
src/backend/app/app/api/deps.py → src/backend/app/api/deps.py

0
src/backend/app/app/backend_pre_start.py → src/backend/app/backend_pre_start.py

0
src/backend/app/app/celeryworker_pre_start.py → src/backend/app/celeryworker_pre_start.py

0
src/backend/app/app/core/__init__.py → src/backend/app/core/__init__.py

0
src/backend/app/app/core/celery_app.py → src/backend/app/core/celery_app.py

0
src/backend/app/app/core/config.py → src/backend/app/core/config.py

0
src/backend/app/app/core/security.py → src/backend/app/core/security.py

0
src/backend/app/app/crud/__init__.py → src/backend/app/crud/__init__.py

0
src/backend/app/app/crud/base.py → src/backend/app/crud/base.py

0
src/backend/app/app/crud/crud_item.py → src/backend/app/crud/crud_item.py

0
src/backend/app/app/crud/crud_user.py → src/backend/app/crud/crud_user.py

0
src/backend/app/app/db/__init__.py → src/backend/app/db/__init__.py

0
src/backend/app/app/db/engine.py → src/backend/app/db/engine.py

0
src/backend/app/app/db/init_db.py → src/backend/app/db/init_db.py

0
src/backend/app/app/email-templates/build/new_account.html → src/backend/app/email-templates/build/new_account.html

0
src/backend/app/app/email-templates/build/reset_password.html → src/backend/app/email-templates/build/reset_password.html

0
src/backend/app/app/email-templates/build/test_email.html → src/backend/app/email-templates/build/test_email.html

0
src/backend/app/app/email-templates/src/new_account.mjml → src/backend/app/email-templates/src/new_account.mjml

0
src/backend/app/app/email-templates/src/reset_password.mjml → src/backend/app/email-templates/src/reset_password.mjml

0
src/backend/app/app/email-templates/src/test_email.mjml → src/backend/app/email-templates/src/test_email.mjml

0
src/backend/app/app/initial_data.py → src/backend/app/initial_data.py

0
src/backend/app/app/main.py → src/backend/app/main.py

0
src/backend/app/app/models.py → src/backend/app/models.py

0
src/backend/app/app/schemas/__init__.py → src/backend/app/schemas/__init__.py

0
src/backend/app/app/schemas/item.py → src/backend/app/schemas/item.py

0
src/backend/app/app/schemas/msg.py → src/backend/app/schemas/msg.py

0
src/backend/app/app/schemas/token.py → src/backend/app/schemas/token.py

0
src/backend/app/app/schemas/user.py → src/backend/app/schemas/user.py

0
src/backend/app/app/tests/.gitignore → src/backend/app/tests/.gitignore

0
src/backend/app/app/tests/__init__.py → src/backend/app/tests/__init__.py

0
src/backend/app/app/tests/api/__init__.py → src/backend/app/tests/api/__init__.py

0
src/backend/app/app/tests/api/api_v1/__init__.py → src/backend/app/tests/api/api_v1/__init__.py

0
src/backend/app/app/tests/api/api_v1/test_celery.py → src/backend/app/tests/api/api_v1/test_celery.py

0
src/backend/app/app/tests/api/api_v1/test_items.py → src/backend/app/tests/api/api_v1/test_items.py

0
src/backend/app/app/tests/api/api_v1/test_login.py → src/backend/app/tests/api/api_v1/test_login.py

0
src/backend/app/app/tests/api/api_v1/test_users.py → src/backend/app/tests/api/api_v1/test_users.py

0
src/backend/app/app/tests/conftest.py → src/backend/app/tests/conftest.py

0
src/backend/app/app/tests/crud/__init__.py → src/backend/app/tests/crud/__init__.py

0
src/backend/app/app/tests/crud/test_item.py → src/backend/app/tests/crud/test_item.py

0
src/backend/app/app/tests/crud/test_user.py → src/backend/app/tests/crud/test_user.py

0
src/backend/app/app/tests/utils/__init__.py → src/backend/app/tests/utils/__init__.py

0
src/backend/app/app/tests/utils/item.py → src/backend/app/tests/utils/item.py

0
src/backend/app/app/tests/utils/user.py → src/backend/app/tests/utils/user.py

0
src/backend/app/app/tests/utils/utils.py → src/backend/app/tests/utils/utils.py

0
src/backend/app/app/tests_pre_start.py → src/backend/app/tests_pre_start.py

0
src/backend/app/app/utils.py → src/backend/app/utils.py

0
src/backend/app/app/worker.py → src/backend/app/worker.py

17
src/backend/backend.dockerfile

@ -9,17 +9,18 @@ RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/opt/poetry python
poetry config virtualenvs.create false
# Copy poetry.lock* in case it doesn't exist in the repo
COPY ./app/pyproject.toml ./app/poetry.lock* /app/
COPY ./pyproject.toml ./poetry.lock* /app/
# Allow installing dev dependencies to run tests
ARG INSTALL_DEV=false
RUN bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --only main ; fi"
# For development, Jupyter remote kernel, Hydrogen
# Using inside the container:
# jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
ARG INSTALL_JUPYTER=false
RUN bash -c "if [ $INSTALL_JUPYTER == 'true' ] ; then pip install jupyterlab ; fi"
COPY ./app /app
ENV PYTHONPATH=/app
COPY ./alembic.ini /app/
COPY ./prestart.sh /app/
COPY ./tests-start.sh /app/
COPY ./app /app/app

17
src/backend/celeryworker.dockerfile

@ -9,26 +9,21 @@ RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/opt/poetry python
poetry config virtualenvs.create false
# Copy poetry.lock* in case it doesn't exist in the repo
COPY ./app/pyproject.toml ./app/poetry.lock* /app/
COPY ./pyproject.toml ./poetry.lock* /app/
# Allow installing dev dependencies to run tests
ARG INSTALL_DEV=false
RUN bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --only main ; fi"
# For development, Jupyter remote kernel, Hydrogen
# Using inside the container:
# jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
ARG INSTALL_JUPYTER=false
RUN bash -c "if [ $INSTALL_JUPYTER == 'true' ] ; then pip install jupyterlab ; fi"
ENV C_FORCE_ROOT=1
COPY ./app /app
WORKDIR /app
ENV PYTHONPATH=/app
COPY ./app/worker-start.sh /worker-start.sh
COPY ./alembic.ini /app/
COPY ./worker-start.sh /worker-start.sh
COPY ./app /app/app
RUN chmod +x /worker-start.sh

0
src/backend/app/mypy.ini → src/backend/mypy.ini

0
src/backend/app/prestart.sh → src/backend/prestart.sh

0
src/backend/app/pyproject.toml → src/backend/pyproject.toml

0
src/backend/app/scripts/format-imports.sh → src/backend/scripts/format-imports.sh

0
src/backend/app/scripts/format.sh → src/backend/scripts/format.sh

0
src/backend/app/scripts/lint.sh → src/backend/scripts/lint.sh

0
src/backend/app/scripts/test-cov-html.sh → src/backend/scripts/test-cov-html.sh

0
src/backend/app/scripts/test.sh → src/backend/scripts/test.sh

0
src/backend/app/tests-start.sh → src/backend/tests-start.sh

0
src/backend/app/worker-start.sh → src/backend/worker-start.sh

8
src/docker-compose.override.yml

@ -49,32 +49,28 @@ services:
ports:
- "8888:8888"
volumes:
- ./backend/app:/app
- ./backend/:/app
environment:
- JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
- SERVER_HOST=http://${DOMAIN?Variable not set}
build:
context: ./backend
dockerfile: backend.dockerfile
args:
INSTALL_DEV: ${INSTALL_DEV-true}
INSTALL_JUPYTER: ${INSTALL_JUPYTER-true}
# command: sleep infinity # Infinite loop to keep container alive doing nothing
command: /start-reload.sh
celeryworker:
volumes:
- ./backend/app:/app
- ./backend/:/app
environment:
- RUN=celery worker -A app.worker -l info -Q main-queue -c 1
- JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
- SERVER_HOST=http://${DOMAIN?Variable not set}
build:
context: ./backend
dockerfile: celeryworker.dockerfile
args:
INSTALL_DEV: ${INSTALL_DEV-true}
INSTALL_JUPYTER: ${INSTALL_JUPYTER-true}
frontend:
build:

Loading…
Cancel
Save