make linter happy

This commit is contained in:
Laura Klünder 2023-12-11 19:02:19 +01:00
parent 30b0c12ebe
commit ef83e73a36
18 changed files with 31 additions and 26 deletions

View file

@ -76,6 +76,7 @@ GeometrySchema = Annotated[
Discriminator("type"),
]
class AnyGeometrySchema(Schema):
"""
A GeoJSON Geometry

View file

@ -12,7 +12,7 @@ def get_api_post_data(request):
try:
data = request.json_body
except AttributeError:
pass # todo fix this raise ParseError('Invalid JSON.')
pass # todo fix this raise ParseError('Invalid JSON.')
return data
return request.POST

View file

@ -10,8 +10,8 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "c3nav.settings")
os.environ.setdefault("C3NAV_CONN_MAX_AGE", "0")
django_asgi = get_asgi_application()
from c3nav.control.middleware import UserPermissionsChannelMiddleware
from c3nav.urls import websocket_urlpatterns
from c3nav.control.middleware import UserPermissionsChannelMiddleware # noqa
from c3nav.urls import websocket_urlpatterns # noqa
application = ProtocolTypeRouter({
"http": django_asgi,
@ -39,6 +39,6 @@ with suppress(ImportError):
app=StaticFiles(directory=settings.STATIC_ROOT, follow_symlink=True),
name='static',
),
Mount(path='/',app=django_asgi),
Mount(path='/', app=django_asgi),
]),
})

View file

@ -9,6 +9,7 @@ def api_etag_with_update_cache_key(permissions=True, etag_func=AccessPermission.
def inner_wrapper(func):
func = api_etag(permissions=permissions, etag_func=etag_func, base_mapdata=base_mapdata)(func)
@wraps(func)
def inner_wrapped_func(request, *args, **kwargs):
try:

View file

@ -116,7 +116,7 @@ def resolve_editor_path_api(request, path):
response={200: dict, **API404.dict(), **auth_permission_responses},
openapi_extra={"security": [{"APIKeyAuth": ["editor_access"]}]})
@api_etag() # todo: correct?
def view_as_api(request, path: str):
def get_view_as_api(request, path: str):
"""
get editor views rendered as JSON instead of HTML.
`path` is the path after /editor/.
@ -138,7 +138,7 @@ def view_as_api(request, path: str):
response={200: dict, **API404.dict(), **auth_permission_responses},
openapi_extra={"security": [{"APIKeyAuth": ["editor_access", "write"]}]})
@api_etag() # todo: correct?
def view_as_api(request, path: str):
def post_view_as_api(request, path: str):
"""
get editor views rendered as JSON instead of HTML.
`path` is the path after /editor/.

View file

@ -1,6 +1,6 @@
from dataclasses import dataclass
from itertools import chain
from typing import Sequence
from typing import TYPE_CHECKING, Sequence
from django.db.models import Prefetch, Q
from shapely import prepared
@ -55,6 +55,10 @@ def _get_geometries_for_one_level(level):
return results
if TYPE_CHECKING:
from c3nav.mapdata.models import Level
@dataclass(slots=True)
class LevelsForLevel:
levels: Sequence[int] # IDs of all levels to render for this level, in order, including the level itself
@ -270,7 +274,7 @@ def get_space_geometries_result(request, space_id: int, update_cache_key: str, u
graph_edges = request.changeset.wrap_model('GraphEdge').objects.all()
space_graphnodes_ids = tuple(node.pk for node in space_graph_nodes)
graph_edges = graph_edges.filter(Q(from_node__pk__in=space_graphnodes_ids) |
Q(to_node__pk__in=space_graphnodes_ids))
Q(to_node__pk__in=space_graphnodes_ids))
graph_edges = graph_edges.select_related('from_node', 'to_node', 'waytype').only(
'from_node__geometry', 'to_node__geometry', 'waytype__color'
)

View file

@ -270,9 +270,9 @@ def call_api_hybrid_view_for_api(func, request, *args, **kwargs):
# todo: fix this
# api_response = APIResponse(result, status=response.status_code)
if request.method == 'GET':
response.add_headers(api_response)
return api_response
# if request.method == 'GET':
# response.add_headers(api_response)
# return api_response
elif isinstance(response, HttpResponse) and response.status_code in (304, 412):
# 304 Not Modified, 412 Precondition Failed
return response

View file

@ -183,7 +183,7 @@ class MapUpdate(models.Model):
logger.info('Rebuilding locator...')
from c3nav.routing.locator import Locator
locator = Locator.rebuild(new_updates[-1].to_tuple, router)
Locator.rebuild(new_updates[-1].to_tuple, router)
for new_update in reversed(new_updates):
new_update.processed = True

View file

@ -101,7 +101,8 @@ class LevelRenderData:
if coords:
last_interpolator = NearestNDInterpolator(np.vstack(coords), np.vstack(values))
else:
last_interpolator = NearestNDInterpolator(np.array([[0, 0]]), np.array([float(render_level.base_altitude)]))
last_interpolator = NearestNDInterpolator(np.array([[0, 0]]),
np.array([float(render_level.base_altitude)]))
"""
second pass, forward to create the LevelRenderData for each level

View file

@ -99,8 +99,8 @@ class MapRenderer:
geometry = altitudearea.geometry.difference(crop_areas)
if not_full_levels:
geometry = geometry.filter(bottom=False)
engine.add_geometry(geometry, altitude=altitudearea.altitude, fill=FillAttribs(RENDER_COLOR_GROUND_FILL),
category='ground', item=i)
engine.add_geometry(geometry, altitude=altitudearea.altitude,
fill=FillAttribs(RENDER_COLOR_GROUND_FILL), category='ground', item=i)
j = 0
for (order, color), areas in altitudearea.colors.items():

View file

@ -16,7 +16,7 @@ def schema_description(schema):
def schema_definition(schema):
return ("- **"+re.sub(r"([a-z])([A-Z])", r"\1 \2", schema.__name__.removesuffix("Schema")) +"**: " +
return ("- **"+re.sub(r"([a-z])([A-Z])", r"\1 \2", schema.__name__.removesuffix("Schema")) + "**: " +
schema_description(schema).split("\n")[0].strip())
@ -163,7 +163,7 @@ class SpecificLocationSchema(LocationSchema):
Annotated[list[PositiveInt], APIField(
title="array of location IDs",
description="for categories that have `single` set to `false`. can be an empty array.",
example=[1,4,5],
example=[1, 4, 5],
)],
Annotated[PositiveInt, APIField(
title="one location ID",

View file

@ -108,7 +108,7 @@ class CachePackage:
return cls(bounds, levels)
@classmethod
def open(cls, package:Optional[str | os.PathLike] = None) -> Self:
def open(cls, package: Optional[str | os.PathLike] = None) -> Self:
if package is None:
from django.conf import settings
package = settings.CACHE_ROOT / 'package.tar'

View file

@ -1,4 +1,3 @@
import json
import math
from collections import deque, namedtuple
from itertools import chain

View file

@ -37,7 +37,8 @@ class PositioningResult(Schema):
response={200: PositioningResult, **auth_responses})
def get_position(request, parameters: LocateRequestSchema):
try:
location = Locator.load().locate(parameters.dict()["peers"], permissions=AccessPermission.get_for_request(request))
location = Locator.load().locate(parameters.dict()["peers"],
permissions=AccessPermission.get_for_request(request))
if location is not None:
# todo: this will overload us probably, group these
increment_cache_key('apistats__locate__%s' % location.pk)

View file

@ -306,4 +306,3 @@ def get_route_options_form(request):
if option["name"].startswith("waytype_"):
option["name"] = "way_types."+data["name"].removeprefix("waytype_")
return data

View file

@ -60,7 +60,7 @@ class LocatorPoint:
class Locator:
peers: list[LocatorPeer] = field(default_factory=list)
peer_lookup: dict[BSSID, int] = field(default_factory=dict)
xyz: np.array = field(default_factory=(lambda : np.empty((0,))))
xyz: np.array = field(default_factory=(lambda: np.empty((0,))))
spaces: dict[int, "LocatorSpace"] = field(default_factory=dict)
@classmethod

View file

@ -1,6 +1,5 @@
import base64
import logging
import multiprocessing
import os
import pickle
import re