Skip to content

Commit 028f161

Browse files
feat(ci): add isort and black (#975)
* ci: enable isort to run on every PR * fix imports * run isort --------- Co-authored-by: Sanskar Jethi <[email protected]>
1 parent 3415fcd commit 028f161

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+109
-82
lines changed

.github/workflows/lint-pr.yml

+17-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
1-
name: "Lint PR"
1+
name: Lint PR
22

33
on:
4-
pull_request_target:
5-
types:
6-
- opened
7-
- edited
8-
- synchronize
9-
10-
permissions:
11-
pull-requests: read
4+
pull_request:
5+
branches: [main]
126

137
jobs:
14-
main:
15-
name: Validate PR title
8+
lint:
169
runs-on: ubuntu-latest
1710
steps:
18-
- uses: amannn/action-semantic-pull-request@v5
19-
env:
20-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
11+
- uses: actions/checkout@v4
12+
- name: Set up Python
13+
uses: actions/setup-python@v5
14+
with:
15+
python-version: '3.x'
16+
- name: Install dependencies
17+
run: |
18+
python -m pip install --upgrade pip
19+
pip install ruff isort black
20+
- name: Run linters
21+
run: |
22+
ruff check .
23+
isort --check-only --diff .

.pre-commit-config.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ repos:
66
args:
77
- --fix
88
- id: ruff-format
9+
910
ci:
1011
autoupdate_schedule: weekly

integration_tests/base_routes.py

+3-13
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,9 @@
33
from collections import defaultdict
44
from typing import Optional, TypedDict
55

6-
from integration_tests.subroutes import sub_router, di_subrouter
7-
from integration_tests.views import SyncView, AsyncView
8-
from robyn import Headers
9-
from robyn import (
10-
Request,
11-
Response,
12-
Robyn,
13-
WebSocket,
14-
jsonify,
15-
serve_file,
16-
serve_html,
17-
WebSocketConnector,
18-
)
6+
from integration_tests.subroutes import di_subrouter, sub_router
7+
from integration_tests.views import AsyncView, SyncView
8+
from robyn import Headers, Request, Response, Robyn, WebSocket, WebSocketConnector, jsonify, serve_file, serve_html
199
from robyn.authentication import AuthenticationHandler, BearerGetter, Identity
2010
from robyn.templating import JinjaTemplate
2111

integration_tests/conftest.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import os
22
import pathlib
3+
import platform
34
import signal
45
import socket
56
import subprocess
67
import time
78
from typing import List
8-
import platform
99

1010
import pytest
11+
1112
from integration_tests.helpers.network_helpers import get_network_host
1213

1314

integration_tests/helpers/network_helpers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import socket
21
import platform
2+
import socket
33

44

55
def get_network_host():

integration_tests/subroutes/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from robyn import SubRouter, jsonify, WebSocket
1+
from robyn import SubRouter, WebSocket, jsonify
22

33
from .di_subrouter import di_subrouter
44

integration_tests/subroutes/di_subrouter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from robyn import SubRouter, Request
1+
from robyn import Request, SubRouter
22

33
di_subrouter = SubRouter(__file__, "/di_subrouter")
44
GLOBAL_DEPENDENCY = "GLOBAL DEPENDENCY OVERRIDE"

integration_tests/test_add_route_without_decorator.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from collections.abc import Callable
2+
23
import pytest
4+
35
from integration_tests.helpers.http_methods_helpers import get, post, put
46

57

integration_tests/test_app.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
from robyn import Robyn, ALLOW_CORS
1+
import pytest
2+
3+
from robyn import ALLOW_CORS, Robyn
24
from robyn.events import Events
35
from robyn.robyn import Headers
46

5-
import pytest
6-
77

88
@pytest.mark.benchmark
99
def test_add_request_header():

integration_tests/test_base_url.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import os
2-
import pytest
32

3+
import pytest
44
import requests
55

66
from integration_tests.helpers.network_helpers import get_network_host

integration_tests/test_delete_requests.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import delete
34

45

integration_tests/test_env_populator.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import os
22
import pathlib
3+
34
import pytest
45

56
from robyn.env_populator import load_vars, parser

integration_tests/test_exception_handling.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from collections.abc import Callable
2+
23
import pytest
4+
35
from integration_tests.helpers.http_methods_helpers import get, post, put
46

57

integration_tests/test_file_download.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import get
34

45

integration_tests/test_multipart_data.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import multipart_post
34

45

integration_tests/test_patch_requests.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import patch
34

45

integration_tests/test_post_requests.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import post
34

45

integration_tests/test_put_requests.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import put
34

45

integration_tests/test_status_code.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
23
from integration_tests.helpers.http_methods_helpers import get
34

45

integration_tests/test_subrouter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from websocket import create_connection
21
import pytest
2+
from websocket import create_connection
33

44
from integration_tests.helpers.http_methods_helpers import generic_http_helper, head
55

integration_tests/test_views.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
from integration_tests.helpers.http_methods_helpers import get, post
21
import pytest
32

3+
from integration_tests.helpers.http_methods_helpers import get, post
4+
45

56
@pytest.mark.benchmark
67
def test_get_sync_view(session):

integration_tests/test_web_sockets.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import json
22

3-
from websocket import create_connection
43
import pytest
4+
from websocket import create_connection
55

66
BASE_URL = "ws://127.0.0.1:8080"
77

integration_tests/views/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .sync_view import SyncView
21
from .async_view import AsyncView
2+
from .sync_view import SyncView
33

44
__all__ = ["SyncView", "AsyncView"]

noxfile.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import sys
2+
23
import nox
34

45

pyproject.toml

+22
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,27 @@ exclude = ["src/*", ".git", "docs"]
9898
[tool.ruff.mccabe]
9999
max-complexity = 10
100100

101+
[tool.isort]
102+
profile = "black"
103+
line_length = 160
104+
105+
[tool.black]
106+
line-length = 160
107+
target-version = ['py38']
108+
include = '\.pyi?$'
109+
extend-exclude = '''
110+
/(
111+
# directories
112+
\.eggs
113+
| \.git
114+
| \.hg
115+
| \.mypy_cache
116+
| \.tox
117+
| \.venv
118+
| build
119+
| dist
120+
)/
121+
'''
122+
101123
[tool.maturin]
102124
module-name = "robyn"

robyn/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import multiprocess as mp
88
from nestd import get_all_nested
9-
from robyn.robyn import FunctionInfo, Headers, HttpMethod, Request, Response, WebSocketConnector, get_version
109

1110
from robyn import status_codes
1211
from robyn.argument_parser import Config
@@ -20,6 +19,7 @@
2019
from robyn.processpool import run_processes
2120
from robyn.reloader import compile_rust_files
2221
from robyn.responses import html, serve_file, serve_html
22+
from robyn.robyn import FunctionInfo, Headers, HttpMethod, Request, Response, WebSocketConnector, get_version
2323
from robyn.router import MiddlewareRouter, MiddlewareType, Router, WebSocketRouter
2424
from robyn.types import Directory
2525
from robyn.ws import WebSocket

robyn/cli.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import os
2+
import shutil
3+
import subprocess
24
import sys
3-
from typing import Optional
45
import webbrowser
5-
from InquirerPy.resolver import prompt
6+
from pathlib import Path
7+
from typing import Optional
8+
69
from InquirerPy.base.control import Choice
7-
from .argument_parser import Config
8-
from .reloader import create_rust_file, setup_reloader
10+
from InquirerPy.resolver import prompt
11+
912
from robyn.env_populator import load_vars
1013
from robyn.robyn import get_version
11-
from pathlib import Path
12-
import shutil
13-
import subprocess
1414

15+
from .argument_parser import Config
16+
from .reloader import create_rust_file, setup_reloader
1517

1618
SCAFFOLD_DIR = Path(__file__).parent / "scaffold"
1719
CURRENT_WORKING_DIR = Path.cwd()

robyn/logger.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from enum import Enum
21
import logging
2+
from enum import Enum
33
from typing import Optional
44

55

robyn/openapi.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from dataclasses import asdict, dataclass, field
33
from importlib import resources
44
from inspect import Signature
5-
from typing import Callable, Dict, List, Optional, TypedDict, Any
5+
from typing import Any, Callable, Dict, List, Optional, TypedDict
66

7-
from robyn import Response
87
from robyn.responses import FileResponse, html
8+
from robyn.robyn import Response
99

1010

1111
@dataclass

robyn/processpool.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import asyncio
2-
import webbrowser
3-
from multiprocess import Process
42
import signal
53
import sys
4+
import webbrowser
65
from typing import Dict, List
7-
from robyn.logger import logger
6+
7+
from multiprocess import Process
88

99
from robyn.events import Events
10+
from robyn.logger import logger
1011
from robyn.robyn import FunctionInfo, Headers, Server, SocketHeld
11-
from robyn.router import GlobalMiddleware, RouteMiddleware, Route
12+
from robyn.router import GlobalMiddleware, Route, RouteMiddleware
1213
from robyn.types import Directory
1314
from robyn.ws import WebSocket
1415

robyn/reloader.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import os
21
import glob
2+
import os
33
import signal
44
import subprocess
55
import sys

robyn/responses.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
from typing import Optional
2-
import os
31
import mimetypes
2+
import os
3+
from typing import Optional
44

5-
from robyn.robyn import Response, Headers
5+
from robyn.robyn import Headers, Response
66

77

88
class FileResponse:

robyn/router.py

+6-15
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,20 @@
11
import inspect
2+
import logging
23
from abc import ABC, abstractmethod
34
from asyncio import iscoroutinefunction
45
from functools import wraps
56
from inspect import signature
67
from types import CoroutineType
7-
from typing import Callable, Dict, List, NamedTuple, Union, Optional
8-
from robyn.authentication import AuthenticationHandler, AuthenticationNotConfiguredError
9-
from robyn.dependency_injection import DependencyMap
10-
from robyn.responses import FileResponse
8+
from typing import Callable, Dict, List, NamedTuple, Optional, Union
119

12-
from robyn.robyn import (
13-
FunctionInfo,
14-
Headers,
15-
HttpMethod,
16-
MiddlewareType,
17-
Request,
18-
Response,
19-
)
2010
from robyn import status_codes
11+
from robyn.authentication import AuthenticationHandler, AuthenticationNotConfiguredError
12+
from robyn.dependency_injection import DependencyMap
2113
from robyn.jsonify import jsonify
22-
14+
from robyn.responses import FileResponse
15+
from robyn.robyn import FunctionInfo, Headers, HttpMethod, MiddlewareType, Request, Response
2316
from robyn.ws import WebSocket
2417

25-
import logging
26-
2718
_logger = logging.getLogger(__name__)
2819

2920

robyn/scaffold/mongo/app.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from pymongo import MongoClient
2+
23
from robyn import Robyn
34

45
app = Robyn(__file__)

0 commit comments

Comments
 (0)