1
- # mypy: disable-error-code="no-untyped-def"
2
1
import os
3
2
import sys
4
3
import time
4
+ from typing import Awaitable , Callable
5
5
6
6
from fastapi import FastAPI
7
7
from fastapi .middleware .cors import CORSMiddleware
8
8
from starlette .requests import Request
9
+ from starlette .responses import Response
9
10
10
11
from strictdoc .core .project_config import ProjectConfig
12
+ from strictdoc .helpers .coverage import register_code_coverage_hook
11
13
from strictdoc .helpers .pickle import pickle_load
12
14
from strictdoc .server .config import SDocServerEnvVariable
13
15
from strictdoc .server .routers .main_router import create_main_router
20
22
O_TEMPORARY = 0
21
23
22
24
23
- def create_app (* , project_config : ProjectConfig ):
25
+ def create_app (* , project_config : ProjectConfig ) -> FastAPI :
24
26
app = FastAPI ()
25
27
26
28
origins = [
@@ -32,10 +34,10 @@ def create_app(*, project_config: ProjectConfig):
32
34
# Uncomment this to enable performance measurements.
33
35
@app .middleware ("http" )
34
36
async def add_process_time_header ( # pylint: disable=unused-variable
35
- request : Request , call_next
36
- ):
37
+ request : Request , call_next : Callable [[ Request ], Awaitable [ Response ]]
38
+ ) -> Response :
37
39
start_time = time .time ()
38
- response = await call_next (request )
40
+ response : Response = await call_next (request )
39
41
time_passed = round (time .time () - start_time , 3 )
40
42
41
43
request_path = request .url .path
@@ -61,11 +63,13 @@ async def add_process_time_header( # pylint: disable=unused-variable
61
63
return app
62
64
63
65
64
- def strictdoc_production_app ():
66
+ def strictdoc_production_app () -> FastAPI :
67
+ register_code_coverage_hook ()
68
+
65
69
# This is a work-around to allow opening a file created with
66
70
# NamedTemporaryFile on Windows.
67
71
# See https://stackoverflow.com/a/15235559
68
- def temp_opener (name , flag , mode = 0o777 ):
72
+ def temp_opener (name : str , flag : int , mode : int = 0o777 ) -> int :
69
73
try :
70
74
flag |= O_TEMPORARY
71
75
except AttributeError :
0 commit comments