]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
♻ Simplify code syntax in several places (#1753)
authorYurii Karabas <1998uriyyo@gmail.com>
Mon, 3 Aug 2020 13:16:51 +0000 (16:16 +0300)
committerGitHub <noreply@github.com>
Mon, 3 Aug 2020 13:16:51 +0000 (15:16 +0200)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
fastapi/applications.py
fastapi/dependencies/utils.py
fastapi/encoders.py
fastapi/openapi/constants.py
fastapi/security/http.py

index 95f6e26ee4048718d7d4c98eb6c97ee1a2517dc0..27a72fe314e76010e57759ddf446bee79e51a797 100644 (file)
@@ -117,11 +117,8 @@ class FastAPI(Starlette):
 
     def setup(self) -> None:
         if self.openapi_url:
-            server_urls = set()
-            for server_data in self.servers:
-                url = server_data.get("url")
-                if url:
-                    server_urls.add(url)
+            urls = (server_data.get("url") for server_data in self.servers)
+            server_urls = {url for url in urls if url}
 
             async def openapi(req: Request) -> JSONResponse:
                 root_path = req.scope.get("root_path", "").rstrip("/")
index 2c70b2c10e11b30f1a02646e50f671830922ece8..f35b2d0ba5987e86ca311435237bdcbb60f2e7fd 100644 (file)
@@ -746,7 +746,7 @@ def get_body_field(*, dependant: Dependant, name: str) -> Optional[ModelField]:
     first_param = flat_dependant.body_params[0]
     field_info = get_field_info(first_param)
     embed = getattr(field_info, "embed", None)
-    body_param_names_set = set([param.name for param in flat_dependant.body_params])
+    body_param_names_set = {param.name for param in flat_dependant.body_params}
     if len(body_param_names_set) == 1 and not embed:
         return get_schema_compatible_field(field=first_param)
     # If one field requires to embed, all have to be embedded
index bf85fff81d9de3216bad21a347648cf43170eca3..003dd58cef1c1e96f75a289ffebd6b9a4cac1fa0 100644 (file)
@@ -1,3 +1,4 @@
+from collections import defaultdict
 from enum import Enum
 from pathlib import PurePath
 from types import GeneratorType
@@ -15,9 +16,9 @@ DictIntStrAny = Dict[Union[int, str], Any]
 def generate_encoders_by_class_tuples(
     type_encoder_map: Dict[Any, Callable]
 ) -> Dict[Callable, Tuple]:
-    encoders_by_classes: Dict[Callable, List] = {}
+    encoders_by_classes: Dict[Callable, List] = defaultdict(list)
     for type_, encoder in type_encoder_map.items():
-        encoders_by_classes.setdefault(encoder, []).append(type_)
+        encoders_by_classes[encoder].append(type_)
     encoders_by_class_tuples: Dict[Callable, Tuple] = {}
     for encoder, classes in encoders_by_classes.items():
         encoders_by_class_tuples[encoder] = tuple(classes)
index 000011a1fb4904885431015862997c0e861381d8..3e69e55244af6121f3385384a89e085cb4f16286 100644 (file)
@@ -1,3 +1,3 @@
-METHODS_WITH_BODY = set(("GET", "HEAD", "POST", "PUT", "DELETE", "PATCH"))
-STATUS_CODES_WITH_NO_BODY = set((100, 101, 102, 103, 204, 304))
+METHODS_WITH_BODY = {"GET", "HEAD", "POST", "PUT", "DELETE", "PATCH"}
+STATUS_CODES_WITH_NO_BODY = {100, 101, 102, 103, 204, 304}
 REF_PREFIX = "#/components/schemas/"
index 80eec005d80fc6cccc30879c7885fd95abc32f58..3258bd05897b65622993e9c58872bd4c9f76954c 100644 (file)
@@ -86,7 +86,7 @@ class HTTPBasic(HTTPBase):
         except (ValueError, UnicodeDecodeError, binascii.Error):
             raise invalid_user_credentials_exc
         username, separator, password = data.partition(":")
-        if not (separator):
+        if not separator:
             raise invalid_user_credentials_exc
         return HTTPBasicCredentials(username=username, password=password)