diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..76f4715 --- /dev/null +++ b/.flake8 @@ -0,0 +1,14 @@ +[flake8] +max-line-length = 79 +extend-ignore = E501, E203, W503, E712, W605 +exclude = + backend/alembic/versions/*, + backend/db/base.py, + .git, + __pycache__, + .tox, + .eggs, + *.egg, + .venv, + venv, + alembic/ \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..9d0ab14 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,36 @@ +name: World Flow + +on: + push: + branches: + - "**" + pull_request: + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: Upgrade pip + run: python -m pip install --upgrade pip + + - name: Install Dependencies + run: pip install -r requirements.txt + + - name: Isort Check + run: isort --check . + + - name: Black Check + run: black --check . + + - name: Flake8 Check + run: flake8 . diff --git a/.gitignore b/.gitignore index b7faf40..56d54c7 100644 --- a/.gitignore +++ b/.gitignore @@ -173,7 +173,7 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ # Abstra # Abstra is an AI-powered process automation framework. @@ -205,3 +205,11 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + +.DS_Store + +*.db + +log/ +logs/ +*.log \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..b6fed53 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,20 @@ +[tool.black] +line-length = 79 +target-version = ['py38', 'py39', 'py310','py311'] +extend-exclude = ''' +( + \.venv + | venv + | build + | dist + | alembic +) +''' +[tool.isort] +profile = "black" +line_length = 79 +multi_line_output = 3 +force_grid_wrap = 0 +skip_gitignore = true +skip_glob = ["**/alembic/*"] +src_paths = ["app"] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..66b696d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,36 @@ +aiosqlite==0.22.1 +alembic==1.18.4 +annotated-doc==0.0.4 +annotated-types==0.7.0 +anyio==4.12.1 +black==26.1.0 +click==8.3.1 +fastapi==0.129.0 +flake8==7.3.0 +greenlet==3.3.1 +h11==0.16.0 +httptools==0.7.1 +idna==3.11 +isort==7.0.0 +Mako==1.3.10 +MarkupSafe==3.0.3 +mccabe==0.7.0 +mypy_extensions==1.1.0 +packaging==26.0 +pathspec==1.0.4 +platformdirs==4.9.2 +pycodestyle==2.14.0 +pydantic==2.12.5 +pydantic_core==2.41.5 +pyflakes==3.4.0 +python-dotenv==1.2.1 +pytokens==0.4.1 +PyYAML==6.0.3 +SQLAlchemy==2.0.46 +starlette==0.52.1 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +uvicorn==0.41.0 +uvloop==0.22.1 +watchfiles==1.1.1 +websockets==16.0