33import warnings
44from contextlib import suppress
55from importlib .util import find_spec
6+ from typing import TYPE_CHECKING , Any
67
78from django .urls import reverse_lazy
89
1819 strip_protocol_from_origin ,
1920)
2021
22+ if TYPE_CHECKING :
23+ from psycopg import Connection
24+ from psycopg .rows import TupleRow
25+
2126# optional requirements
2227default_cors_headers = []
2328with suppress (ImportError ):
@@ -293,8 +298,8 @@ class WrapperConnectionClass(psycopg.Connection):
293298 def connect (
294299 cls ,
295300 conninfo : str = "" ,
296- ** kwargs ,
297- ) -> "psycopg. Connection[psycopg.rows. TupleRow]" :
301+ ** kwargs : Any ,
302+ ) -> Connection [TupleRow ]:
298303 return psycopg .connect (conninfo , ** kwargs )
299304
300305 DATABASES ["default" ]["OPTIONS" ] = {
@@ -365,7 +370,7 @@ def connect(
365370#
366371# APPLICATIONS enabled for this project
367372#
368- INSTALLED_APPS = importable (
373+ INSTALLED_APPS : list [ str ] = importable (
369374 # Note: contenttypes should be first, see Django ticket #10827
370375 "django.contrib.contenttypes" ,
371376 "django.contrib.auth" ,
@@ -1423,7 +1428,7 @@ def connect(
14231428# NOTE: make sure values are a tuple or list, and to quote special values like 'self'
14241429
14251430
1426- def get_content_security_policy ():
1431+ def get_content_security_policy () -> dict [ str , dict [ str , list [ str ] | int ]] :
14271432 # ideally we'd use BASE_URI but it'd have to be lazy or cause issues
14281433 extra_default_src = config (
14291434 "CSP_EXTRA_DEFAULT_SRC" ,
@@ -1483,7 +1488,7 @@ def get_content_security_policy():
14831488 if not csp_installed :
14841489 return {}
14851490
1486- csp_default_src = [SELF ] + extra_default_src
1491+ csp_default_src = [SELF ] + extra_default_src # pyright: ignore
14871492 return {
14881493 "DIRECTIVES" : {
14891494 "default-src" : csp_default_src ,
@@ -1492,13 +1497,13 @@ def get_content_security_policy():
14921497 "img-src" : csp_default_src + ["data:" , "cdn.redoc.ly" ] + extra_img_src ,
14931498 "object-src" : object_src ,
14941499 "style-src" : csp_default_src
1495- + [NONCE , "'unsafe-inline'" , "fonts.googleapis.com" ],
1496- "script-src" : csp_default_src + [NONCE , "'unsafe-inline'" ],
1497- "font-src" : [SELF , "fonts.gstatic.com" ],
1498- "worker-src" : [SELF , "blob:" ],
1499- "base-uri" : [SELF ],
1500- "frame-ancestors" : [NONE ],
1501- "frame-src" : [SELF ],
1500+ + [NONCE , "'unsafe-inline'" , "fonts.googleapis.com" ], # pyright: ignore
1501+ "script-src" : csp_default_src + [NONCE , "'unsafe-inline'" ], # pyright: ignore
1502+ "font-src" : [SELF , "fonts.gstatic.com" ], # pyright: ignore
1503+ "worker-src" : [SELF , "blob:" ], # pyright: ignore
1504+ "base-uri" : [SELF ], # pyright: ignore
1505+ "frame-ancestors" : [NONE ], # pyright: ignore
1506+ "frame-src" : [SELF ], # pyright: ignore
15021507 "upgrade-insecure-requests" : False , # Enable only in production
15031508 "report-uri" : report_uri ,
15041509 },
0 commit comments