Implement 0.6 routing and some cleanup (#2117)

* Implement 0.6 routing and some cleanup

* Additional tests and annotation cleanup

* Resolve sorting

* cleanup test with encoding
This commit is contained in:
Adam Hopkins
2021-04-20 00:53:42 +03:00
committed by GitHub
parent 9b26358e63
commit 28ba8e53df
16 changed files with 189 additions and 61 deletions

View File

@@ -1,9 +1,13 @@
from collections.abc import MutableSequence
from typing import List, Optional, Union
from typing import TYPE_CHECKING, List, Optional, Union
import sanic
if TYPE_CHECKING:
from sanic.blueprints import Blueprint
class BlueprintGroup(MutableSequence):
"""
This class provides a mechanism to implement a Blueprint Group
@@ -56,7 +60,12 @@ class BlueprintGroup(MutableSequence):
__slots__ = ("_blueprints", "_url_prefix", "_version", "_strict_slashes")
def __init__(self, url_prefix=None, version=None, strict_slashes=None):
def __init__(
self,
url_prefix: Optional[str] = None,
version: Optional[Union[int, str, float]] = None,
strict_slashes: Optional[bool] = None,
):
"""
Create a new Blueprint Group
@@ -65,13 +74,13 @@ class BlueprintGroup(MutableSequence):
inherited by each of the Blueprint
:param strict_slashes: URL Strict slash behavior indicator
"""
self._blueprints = []
self._blueprints: List[Blueprint] = []
self._url_prefix = url_prefix
self._version = version
self._strict_slashes = strict_slashes
@property
def url_prefix(self) -> str:
def url_prefix(self) -> Optional[Union[int, str, float]]:
"""
Retrieve the URL prefix being used for the Current Blueprint Group