Skip to content

Commit

Permalink
Add src prefix to all imports
Browse files Browse the repository at this point in the history
  • Loading branch information
Zoom-Developer committed Nov 12, 2024
1 parent 6e8f939 commit e402227
Show file tree
Hide file tree
Showing 42 changed files with 80 additions and 95 deletions.
4 changes: 2 additions & 2 deletions backend/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"python.autoComplete.extraPaths": [
"./backend/src"
"./backend"
],
"python.analysis.extraPaths": [
"./backend/src"
"./backend"
],
"python.defaultInterpreterPath": "../.venv/Scripts/python.exe"
}
2 changes: 1 addition & 1 deletion backend/alembic.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[alembic]
# path to migration scripts
# Use forward slashes (/) also on windows to provide an os agnostic path
script_location = migrations
script_location = ./src/infrastructure/db/migrations

# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s
# Uncomment the line below if you want the files to be prepended with date and time
Expand Down
3 changes: 1 addition & 2 deletions backend/entry.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
#!/bin/bash
alembic upgrade head
gunicorn main:app --worker-class uvicorn.workers.UvicornWorker --workers 2 --bind "0.0.0.0:80" --access-logfile -
gunicorn src.main:app --worker-class uvicorn.workers.UvicornWorker --workers 2 --bind "0.0.0.0:80" --access-logfile -
8 changes: 4 additions & 4 deletions backend/src/application/attachment/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import aiofiles
from PIL import Image

from domain.attachment import AttachmentRepository
from infrastructure.db import Attachment
from infrastructure.db.tables import User
from infrastructure.exc import InvalidImageException, NotFound
from src.domain.attachment import AttachmentRepository
from src.infrastructure.db import Attachment
from src.infrastructure.db.tables import User
from src.infrastructure.exc import InvalidImageException, NotFound


class AttachmentService:
Expand Down
10 changes: 5 additions & 5 deletions backend/src/application/auth/depends.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
import asyncio
import urllib.parse

from config import TG_TOKEN
from domain.user import UserRepository
from application.user import UserService
from infrastructure.db import User, CTX_SESSION
from infrastructure.exc import AuthDataException, UnregisteredException
from src.config import TG_TOKEN
from src.domain.user import UserRepository
from src.application.user import UserService
from src.infrastructure.db import User, CTX_SESSION
from src.infrastructure.exc import AuthDataException, UnregisteredException


tg_auth = APIKeyHeader(name = "Tg-Authorization", description = "Telgram Init Data")
Expand Down
10 changes: 5 additions & 5 deletions backend/src/application/likes/service.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from application.tg.service import TelegramService
from infrastructure.exc import FocusNotSelected
from infrastructure.db import Like, User
from application.user import UserService
from domain.likes import LikeRepository
from src.application.tg.service import TelegramService
from src.infrastructure.exc import FocusNotSelected
from src.infrastructure.db import Like, User
from src.application.user import UserService
from src.domain.likes import LikeRepository


class LikeService:
Expand Down
8 changes: 4 additions & 4 deletions backend/src/application/tg/service.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import aiohttp

from domain.telegram import SendMediaTelegramMessage, SendTelegramMessage
from config import TG_API_URL, TG_CHANNEL_ID
from infrastructure.db import User
from infrastructure.rabbit.router import broker
from src.domain.telegram import SendMediaTelegramMessage, SendTelegramMessage
from src.config import TG_API_URL, TG_CHANNEL_ID
from src.infrastructure.db import User
from src.infrastructure.rabbit.router import broker


class TelegramService:
Expand Down
6 changes: 3 additions & 3 deletions backend/src/application/user/rabbit.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from domain.user import UserRepository, RabbitRequestResponse
from infrastructure.rabbit import RabbitError
from infrastructure.db import User
from src.domain.user import UserRepository, RabbitRequestResponse
from src.infrastructure.rabbit import RabbitError
from src.infrastructure.db import User


async def get_user(user_id: int) -> User:
Expand Down
18 changes: 9 additions & 9 deletions backend/src/application/user/service.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from application.attachment import AttachmentService
from application.tg import TelegramService
from config import MAX_AVATAR_SIZE
from domain.user import BaseUser, UserRepository
from domain.views import ViewRepository
from infrastructure.db import User
from infrastructure.exc.auth import UsernameRequired
from infrastructure.exc.likes import FocusNotSelected
from infrastructure.exc.user import AlreadyRegisteredException, AlreadyVerifiedException, FileSizeException, BannedException, SubscriptionRequiredException, VerifyRestrictionsException
from src.application.attachment import AttachmentService
from src.application.tg import TelegramService
from src.config import MAX_AVATAR_SIZE
from src.domain.user import BaseUser, UserRepository
from src.domain.views import ViewRepository
from src.infrastructure.db import User
from src.infrastructure.exc.auth import UsernameRequired
from src.infrastructure.exc.likes import FocusNotSelected
from src.infrastructure.exc.user import AlreadyRegisteredException, AlreadyVerifiedException, FileSizeException, BannedException, SubscriptionRequiredException, VerifyRestrictionsException


class UserService:
Expand Down
2 changes: 1 addition & 1 deletion backend/src/domain/attachment/repository.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from sqlalchemy import ScalarResult
from sqlmodel import select, insert
from infrastructure.db import BaseRepository, Attachment, User
from src.infrastructure.db import BaseRepository, Attachment, User


class AttachmentRepository(BaseRepository[Attachment]):
Expand Down
2 changes: 1 addition & 1 deletion backend/src/domain/likes/repository.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from sqlmodel import desc, select, delete, insert

from infrastructure.db import BaseRepository, Like, User
from src.infrastructure.db import BaseRepository, Like, User

class LikeRepository(BaseRepository[Like]):

Expand Down
6 changes: 3 additions & 3 deletions backend/src/domain/user/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
from fastapi import HTTPException
from pydantic import BaseModel, Field, field_validator

from config import API_URL, CLASS_LITERAL
from infrastructure.db import Attachment
from infrastructure.utils import partial_model
from src.config import API_URL, CLASS_LITERAL
from src.infrastructure.db import Attachment
from src.infrastructure.utils import partial_model


class BaseUser(BaseModel):
Expand Down
4 changes: 2 additions & 2 deletions backend/src/domain/user/repository.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from sqlalchemy import func
from sqlalchemy.orm import joinedload
from sqlmodel import desc, select
from config import CLASS_LITERAL
from infrastructure.db import BaseRepository, User, View, Like
from src.config import CLASS_LITERAL
from src.infrastructure.db import BaseRepository, User, View, Like


class UserRepository(BaseRepository[User]):
Expand Down
2 changes: 1 addition & 1 deletion backend/src/domain/views/repository.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from sqlmodel import delete, insert

from infrastructure.db import BaseRepository, View, User
from src.infrastructure.db import BaseRepository, View, User

class ViewRepository(BaseRepository[View]):

Expand Down
6 changes: 3 additions & 3 deletions backend/src/infrastructure/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
import logging

from config import ROOT_PATH
from infrastructure.db import get_session, CTX_SESSION
from infrastructure.exc import HTTPError
from src.config import ROOT_PATH
from src.infrastructure.db import get_session, CTX_SESSION
from src.infrastructure.exc import HTTPError

def create_app(
routers: list[APIRouter],
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,22 @@
from logging.config import fileConfig
import os, sys

if not os.environ.get("IS_PROD"):
os.chdir(os.path.join(os.getcwd(), "src/"))
sys.path.insert(0, '')

from sqlalchemy import pool
from sqlalchemy.engine import Connection
from sqlalchemy.ext.asyncio import async_engine_from_config
from sqlmodel import SQLModel

from alembic import context

from config import DB_URL
import infrastructure.db.tables
from src.config import DB_URL
import src.infrastructure.db.tables

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

config.set_main_option('sqlalchemy.url', DB_URL)


if not os.environ.get("IS_PROD"):
os.chdir(os.path.join(os.getcwd(), "../"))
sys.path.insert(0, '')

# Interpret the config file for Python logging.
# This line sets up loggers basically.
if config.config_file_name is not None:
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion backend/src/infrastructure/db/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
create_async_engine
)

from config import DB_URL
from src.config import DB_URL

engine: AsyncEngine = create_async_engine(DB_URL, pool_size = 200, max_overflow = 0, pool_recycle=600)

Expand Down
2 changes: 1 addition & 1 deletion backend/src/infrastructure/db/tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from sqlalchemy import TIMESTAMP, BigInteger, Column, String, false, text, true
from sqlmodel import Field, Relationship, SQLModel

from config import API_URL, CLASS_LITERAL
from src.config import API_URL, CLASS_LITERAL


class User(SQLModel, table=True):
Expand Down
4 changes: 2 additions & 2 deletions backend/src/infrastructure/exc/user.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from urllib.parse import quote

from config import MAX_AVATAR_SIZE, TG_CHANNEL_LINK
from infrastructure.exc.basic import ErrorCode, HTTPError
from src.config import MAX_AVATAR_SIZE, TG_CHANNEL_LINK
from src.infrastructure.exc.basic import ErrorCode, HTTPError


class AlreadyRegisteredException(HTTPError):
Expand Down
4 changes: 2 additions & 2 deletions backend/src/infrastructure/rabbit/middlewares.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
from typing import Any
from faststream import BaseMiddleware, ExceptionMiddleware

from domain.user.models import RabbitRequestResponse
from infrastructure.db import CTX_SESSION, get_session
from src.domain.user.models import RabbitRequestResponse
from src.infrastructure.db import CTX_SESSION, get_session

class DatabaseMiddleware(BaseMiddleware):
async def on_receive(self):
Expand Down
2 changes: 1 addition & 1 deletion backend/src/infrastructure/rabbit/router.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from faststream.rabbit.fastapi import RabbitRouter

from config import RABBIT_URL
from src.config import RABBIT_URL
from .middlewares import DatabaseMiddleware, exc_middlware


Expand Down
2 changes: 1 addition & 1 deletion backend/src/interface/api/attachments.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from fastapi import APIRouter
from fastapi.responses import Response

from application.attachment import AttachmentService
from src.application.attachment import AttachmentService


router = APIRouter(prefix="/attachments", tags=["Attachments"])
Expand Down
10 changes: 5 additions & 5 deletions backend/src/interface/api/likes.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from fastapi import APIRouter, Body, Depends

from application.auth import get_user
from application.likes import LikeService
from application.user import UserService
from domain.user import FullUserDTO, FriendUserDTO, ReportUser
from infrastructure.db import User, CTX_SESSION
from src.application.auth import get_user
from src.application.likes import LikeService
from src.application.user import UserService
from src.domain.user import FullUserDTO, FriendUserDTO, ReportUser
from src.infrastructure.db import User, CTX_SESSION

router = APIRouter(prefix="/user/likes", tags=["Likes"])

Expand Down
2 changes: 1 addition & 1 deletion backend/src/interface/api/system.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from fastapi import APIRouter

from infrastructure.db.session import ping_db
from src.infrastructure.db.session import ping_db


router = APIRouter(prefix="/system", include_in_schema=False)
Expand Down
12 changes: 6 additions & 6 deletions backend/src/interface/api/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import urllib.parse
from fastapi import APIRouter, Depends, File

from application.auth import get_user, get_userdata
from application.user import UserService
from config import MAX_AVATAR_SIZE, TG_TOKEN
from domain.user import FullUserDTO, BaseUser
from domain.user.models import PatchUser
from infrastructure.db import User, CTX_SESSION
from src.application.auth import get_user, get_userdata
from src.application.user import UserService
from src.config import MAX_AVATAR_SIZE, TG_TOKEN
from src.domain.user import FullUserDTO, BaseUser
from src.domain.user.models import PatchUser
from src.infrastructure.db import User, CTX_SESSION


router = APIRouter(prefix="/user", tags=["User"])
Expand Down
14 changes: 7 additions & 7 deletions backend/src/interface/rabbit/admin.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from faststream.rabbit import RabbitRouter
import math

from application.tg.service import TelegramService
from application.user.rabbit import get_user
from application.user import UserService
from domain.user import UserRequest, BanUser, RabbitRequestResponse, GetUserResponse, GetUsers, VerifyUser, GetUsersResponse
from domain.user.repository import UserRepository
from infrastructure.db import CTX_SESSION
from infrastructure.db.tables import User
from src.application.tg.service import TelegramService
from src.application.user.rabbit import get_user
from src.application.user import UserService
from src.domain.user import UserRequest, BanUser, RabbitRequestResponse, GetUserResponse, GetUsers, VerifyUser, GetUsersResponse
from src.domain.user.repository import UserRepository
from src.infrastructure.db import CTX_SESSION
from src.infrastructure.db.tables import User


router = RabbitRouter(prefix="adm_")
Expand Down
10 changes: 5 additions & 5 deletions backend/src/main.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from infrastructure.application import create_app
from infrastructure.rabbit import rabbit
from interface.rabbit import AdminRouter
from interface.api import UserRouter, AttachmentRouter, LikesRouter, SystemRouter
from config import ROOT_PATH
from src.infrastructure.application import create_app
from src.infrastructure.rabbit import rabbit
from src.interface.rabbit import AdminRouter
from src.interface.api import UserRouter, AttachmentRouter, LikesRouter, SystemRouter
from src.config import ROOT_PATH

rabbit.include_router(AdminRouter)

Expand Down
7 changes: 1 addition & 6 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,10 @@ services:
restart: true
healthcheck:
test: ["CMD-SHELL", "curl -f http://backend/system/ping || exit 1"]
interval: 60s
interval: 30s
retries: 5
start_period: 10s
timeout: 10s
deploy:
resources:
limits:
cpus: '0.7'
memory: 800M

frontend:
build: ./frontend
Expand Down

0 comments on commit e402227

Please sign in to comment.