make linter happy
This commit is contained in:
parent
30b0c12ebe
commit
ef83e73a36
18 changed files with 31 additions and 26 deletions
|
@ -76,6 +76,7 @@ GeometrySchema = Annotated[
|
|||
Discriminator("type"),
|
||||
]
|
||||
|
||||
|
||||
class AnyGeometrySchema(Schema):
|
||||
"""
|
||||
A GeoJSON Geometry
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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),
|
||||
]),
|
||||
})
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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/.
|
||||
|
|
|
@ -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'
|
||||
)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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():
|
||||
|
|
|
@ -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",
|
||||
|
|
2
src/c3nav/mapdata/utils/cache/package.py
vendored
2
src/c3nav/mapdata/utils/cache/package.py
vendored
|
@ -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'
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import json
|
||||
import math
|
||||
from collections import deque, namedtuple
|
||||
from itertools import chain
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import base64
|
||||
import logging
|
||||
import multiprocessing
|
||||
import os
|
||||
import pickle
|
||||
import re
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue