diff --git a/Pipfile b/Pipfile index 6cc3fbb3c..83f8954dc 100644 --- a/Pipfile +++ b/Pipfile @@ -26,7 +26,7 @@ uvicorn = "*" [packages] starlette = "==0.12.0" -pydantic = "==0.26.0" +pydantic = "==0.28.0" databases = {extras = ["sqlite"],version = "*"} hypercorn = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 83b7f94c3..07cc1a97d 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "4a33b47e814fa75533548874ffadbc6163b3058db4d1615ff633512366d72ccb" + "sha256": "14f3b2d3a0457913244d4dc96fbf18ed356fbb43fbd10eae043270531afa61bb" }, "pipfile-spec": 6, "requires": { @@ -56,10 +56,10 @@ }, "h11": { "hashes": [ - "sha256:acca6a44cb52a32ab442b1779adf0875c443c689e9e028f8d831a3769f9c5208", - "sha256:f2b1ca39bfed357d1f19ac732913d5f9faa54a5062eca7d2ec3a916cfb7ae4c7" + "sha256:33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1", + "sha256:4bc6d6a1238b7615b266ada57e0618568066f57dd6fa967d1290ec9309b2f2f1" ], - "version": "==0.8.1" + "version": "==0.9.0" }, "h2": { "hashes": [ @@ -113,11 +113,15 @@ }, "pydantic": { "hashes": [ - "sha256:b72e0df2463cee746cf42639845d4106c19f30136375e779352d710e69617731", - "sha256:dab99d3070e040b8b2e987dfbe237350ab92d5d57a22d4e0e268ede2d85c7964" + "sha256:3aafa1b58181c53a8e2971dc3c6f45945ddd18192b6f9c8e17f5ef2adcdf3987", + "sha256:60fe5aa17ecb5ba949e7e1e1f9b9500dae780d6c79c798bfd78ac5dd9f9d9517", + "sha256:92e4fb2917e4837e53edfee9f99c9075c152f9b9fe2b19d047b8fb25ed9bc089", + "sha256:98c5faf742baee5cbbe9ff609829df6ff4234863c4a992f8d46679df4d68aeab", + "sha256:bc4a051b81f31597efc96b4bf6a3aa75ea95ca0a87c4666ad5638be373e0c66a", + "sha256:d3d29768ae85c1333da5d10cbe793c6a01dcb1ec8ff86f1fbe2c588089bc11ea" ], "index": "pypi", - "version": "==0.26.0" + "version": "==0.28.0" }, "pytoml": { "hashes": [ @@ -127,9 +131,9 @@ }, "sqlalchemy": { "hashes": [ - "sha256:91c54ca8345008fceaec987e10924bf07dcab36c442925357e5a467b36a38319" + "sha256:c30925d60af95443458ebd7525daf791f55762b106049ae71e18f8dd58084c2f" ], - "version": "==1.3.3" + "version": "==1.3.5" }, "starlette": { "hashes": [ @@ -148,10 +152,10 @@ }, "wsproto": { "hashes": [ - "sha256:55c3da870460e8838b2fbe4d10f3accc0cea3a13d5e8dbbdc6da5d537d6d44dc", - "sha256:c7f35e0af250b9f25583b090039eb2159a079fbe71b7daf86cc3ddcd2f3a70b3" + "sha256:2b870f5b5b4a6d23dce080a4ee1cbb119b2378f82593bd6d66ae2cbd72a7c0ad", + "sha256:ed222c812aaea55d72d18a87df429cfd602e15b6c992a07a53b495858f083a14" ], - "version": "==0.14.0" + "version": "==0.14.1" } }, "develop": { @@ -215,10 +219,10 @@ }, "certifi": { "hashes": [ - "sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5", - "sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae" + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" ], - "version": "==2019.3.9" + "version": "==2019.6.16" }, "chardet": { "hashes": [ @@ -327,10 +331,16 @@ }, "h11": { "hashes": [ - "sha256:acca6a44cb52a32ab442b1779adf0875c443c689e9e028f8d831a3769f9c5208", - "sha256:f2b1ca39bfed357d1f19ac732913d5f9faa54a5062eca7d2ec3a916cfb7ae4c7" + "sha256:33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1", + "sha256:4bc6d6a1238b7615b266ada57e0618568066f57dd6fa967d1290ec9309b2f2f1" + ], + "version": "==0.9.0" + }, + "htmlmin": { + "hashes": [ + "sha256:50c1ef4630374a5d723900096a961cff426dff46b48f34d194a81bbe14eca178" ], - "version": "==0.8.1" + "version": "==0.1.12" }, "httptools": { "hashes": [ @@ -345,6 +355,13 @@ ], "version": "==2.8" }, + "importlib-metadata": { + "hashes": [ + "sha256:6dfd58dfe281e8d240937776065dd3624ad5469c835248219bd16cf2e12dbeb7", + "sha256:cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db" + ], + "version": "==0.18" + }, "ipykernel": { "hashes": [ "sha256:346189536b88859937b5f4848a6fd85d1ad0729f01724a411de5cae9b618819c", @@ -396,6 +413,12 @@ ], "version": "==2.10.1" }, + "jsmin": { + "hashes": [ + "sha256:b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b" + ], + "version": "==2.2.2" + }, "jsonschema": { "hashes": [ "sha256:0c0a81564f181de3212efa2d17de1910f8732fa1b71c42266d983cd74304e20d", @@ -511,11 +534,18 @@ }, "mkdocs-material": { "hashes": [ - "sha256:1c39b6af13a900d9f47ab2b8ac67b3258799f4570b552573e9d6868ad6a438e9", - "sha256:22073941cff7176e810b719aced6a90381e64a96d346b8a6803a06b7192b7ad5" + "sha256:451b949f6c8f0750b937f805e14c5bd40b81c5ff829072a74896efeaa6e8567f", + "sha256:8b5a042a0f2b54e631668e33d6a0777ff2c68331656066e26223c47159a255e1" ], "index": "pypi", - "version": "==4.3.0" + "version": "==4.4.0" + }, + "mkdocs-minify-plugin": { + "hashes": [ + "sha256:3000a5069dd0f42f56a8aaf7fd5ea1222c67487949617e39585d6b6434b074b6", + "sha256:d54fdd5be6843dd29fd7af2f7fdd20a9eb4db46f1f6bed914e03b2f58d2d488e" + ], + "version": "==0.2.1" }, "more-itertools": { "hashes": [ @@ -570,6 +600,13 @@ ], "version": "==5.7.8" }, + "packaging": { + "hashes": [ + "sha256:0c98a5d0be38ed775798ece1b9727178c4469d9c3b4ada66e8e6b7849f8732af", + "sha256:9e1cbf8c12b1f1ce0bb5344b8d7ecf66a6f8a6e91bcb0c84593ed6d3ab5c4ab3" + ], + "version": "==19.0" + }, "pandocfilters": { "hashes": [ "sha256:b3dd70e169bb5449e6bc6ff96aea89c5eea8c5f6ab5e207fc2f521a2cf4a0da9" @@ -600,16 +637,16 @@ }, "pluggy": { "hashes": [ - "sha256:25a1bc1d148c9a640211872b4ff859878d422bccb59c9965e04eed468a0aa180", - "sha256:964cedd2b27c492fbf0b7f58b3284a09cf7f99b0f715941fb24a439b3af1bd1a" + "sha256:0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc", + "sha256:b9817417e95936bf75d85d3f8767f7df6cdde751fc40aed3bb3074cbcb77757c" ], - "version": "==0.11.0" + "version": "==0.12.0" }, "prometheus-client": { "hashes": [ - "sha256:1b38b958750f66f208bcd9ab92a633c0c994d8859c831f7abc1f46724fcee490" + "sha256:ee0c90350595e4a9f36591f291e6f9933246ea67d7cd7d1d6139a9781b14eaae" ], - "version": "==0.6.0" + "version": "==0.7.0" }, "prompt-toolkit": { "hashes": [ @@ -650,10 +687,10 @@ }, "pygments": { "hashes": [ - "sha256:31cba6ffb739f099a85e243eff8cb717089fdd3c7300767d9fc34cb8e1b065f5", - "sha256:5ad302949b3c98dd73f8d9fcdc7e9cb592f120e32a18e23efd7f3dc51194472b" + "sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127", + "sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297" ], - "version": "==2.4.0" + "version": "==2.4.2" }, "pymdown-extensions": { "hashes": [ @@ -662,6 +699,13 @@ ], "version": "==6.0" }, + "pyparsing": { + "hashes": [ + "sha256:1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a", + "sha256:9b6323ef4ab914af344ba97510e966d64ba91055d6b9afa6b30799340e89cc03" + ], + "version": "==2.4.0" + }, "pyrsistent": { "hashes": [ "sha256:16692ee739d42cf5e39cef8d27649a8c1fdb7aa99887098f1460057c5eb75c3a" @@ -670,11 +714,11 @@ }, "pytest": { "hashes": [ - "sha256:1a8aa4fa958f8f451ac5441f3ac130d9fc86ea38780dd2715e6d5c5882700b24", - "sha256:b8bf138592384bd4e87338cb0f256bf5f615398a649d4bd83915f0e4047a5ca6" + "sha256:4a784f1d4f2ef198fe9b7aef793e9fa1a3b2f84e822d9b3a64a181293a572d45", + "sha256:926855726d8ae8371803f7b2e6ec0a69953d9c6311fa7c3b6c1b929ff92d27da" ], "index": "pypi", - "version": "==4.5.0" + "version": "==4.6.3" }, "pytest-cov": { "hashes": [ @@ -706,19 +750,19 @@ }, "pyyaml": { "hashes": [ - "sha256:1adecc22f88d38052fb787d959f003811ca858b799590a5eaa70e63dca50308c", - "sha256:436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95", - "sha256:460a5a4248763f6f37ea225d19d5c205677d8d525f6a83357ca622ed541830c2", - "sha256:5a22a9c84653debfbf198d02fe592c176ea548cccce47553f35f466e15cf2fd4", - "sha256:7a5d3f26b89d688db27822343dfa25c599627bc92093e788956372285c6298ad", - "sha256:9372b04a02080752d9e6f990179a4ab840227c6e2ce15b95e1278456664cf2ba", - "sha256:a5dcbebee834eaddf3fa7366316b880ff4062e4bcc9787b78c7fbb4a26ff2dd1", - "sha256:aee5bab92a176e7cd034e57f46e9df9a9862a71f8f37cad167c6fc74c65f5b4e", - "sha256:c51f642898c0bacd335fc119da60baae0824f2cde95b0330b56c0553439f0673", - "sha256:c68ea4d3ba1705da1e0d85da6684ac657912679a649e8868bd850d2c299cce13", - "sha256:e23d0cc5299223dcc37885dae624f382297717e459ea24053709675a976a3e19" + "sha256:57acc1d8533cbe51f6662a55434f0dbecfa2b9eaf115bede8f6fd00115a0c0d3", + "sha256:588c94b3d16b76cfed8e0be54932e5729cc185caffaa5a451e7ad2f7ed8b4043", + "sha256:68c8dd247f29f9a0d09375c9c6b8fdc64b60810ebf07ba4cdd64ceee3a58c7b7", + "sha256:70d9818f1c9cd5c48bb87804f2efc8692f1023dac7f1a1a5c61d454043c1d265", + "sha256:86a93cccd50f8c125286e637328ff4eef108400dd7089b46a7be3445eecfa391", + "sha256:a0f329125a926876f647c9fa0ef32801587a12328b4a3c741270464e3e4fa778", + "sha256:a3c252ab0fa1bb0d5a3f6449a4826732f3eb6c0270925548cac342bc9b22c225", + "sha256:b4bb4d3f5e232425e25dda21c070ce05168a786ac9eda43768ab7f3ac2770955", + "sha256:cd0618c5ba5bda5f4039b9398bb7fb6a317bb8298218c3de25c47c4740e4b95e", + "sha256:ceacb9e5f8474dcf45b940578591c7f3d960e82f926c707788a570b51ba59190", + "sha256:fe6a88094b64132c4bb3b631412e90032e8cfe9745a58370462240b8cb7553cd" ], - "version": "==5.1" + "version": "==5.1.1" }, "pyzmq": { "hashes": [ @@ -752,10 +796,10 @@ }, "qtconsole": { "hashes": [ - "sha256:a667558c7b1e1442a2e5bcef1686c55e096efd0b58d8b2a0a8415f4579991ee3", - "sha256:fdfc6002d9d2834c88f9c92e0f6f590284ff3740fa53016f188a62d58bcca6d8" + "sha256:4af84facdd6f00a6b9b2927255f717bb23ae4b7a20ba1d9ef0a5a5a8dbe01ae2", + "sha256:60d61d93f7d67ba2b265c6d599d413ffec21202fec999a952f658ff3a73d252b" ], - "version": "==4.4.4" + "version": "==4.5.1" }, "requests": { "hashes": [ @@ -781,9 +825,9 @@ }, "sqlalchemy": { "hashes": [ - "sha256:91c54ca8345008fceaec987e10924bf07dcab36c442925357e5a467b36a38319" + "sha256:c30925d60af95443458ebd7525daf791f55762b106049ae71e18f8dd58084c2f" ], - "version": "==1.3.3" + "version": "==1.3.5" }, "terminado": { "hashes": [ @@ -858,17 +902,17 @@ }, "urllib3": { "hashes": [ - "sha256:a53063d8b9210a7bdec15e7b272776b9d42b2fd6816401a0d43006ad2f9902db", - "sha256:d363e3607d8de0c220d31950a8f38b18d5ba7c0830facd71a1c6b1036b7ce06c" + "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", + "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" ], - "version": "==1.25.2" + "version": "==1.25.3" }, "uvicorn": { "hashes": [ - "sha256:c10da7a54a6552279870900c881a2f1726314e2dd6270d4d3f9251683c643783" + "sha256:9114d22a569552258a3f2bf0da57c328049c3dfd428a88230cdf0966229ef180" ], "index": "pypi", - "version": "==0.7.1" + "version": "==0.7.2" }, "uvloop": { "hashes": [ @@ -931,6 +975,13 @@ "sha256:fa618be8435447a017fd1bf2c7ae922d0428056cfc7449f7a8641edf76b48265" ], "version": "==3.4.2" + }, + "zipp": { + "hashes": [ + "sha256:8c1019c6aad13642199fbe458275ad6a84907634cc9f0989877ccc4a2840139d", + "sha256:ca943a7e809cc12257001ccfb99e3563da9af99d52f261725e96dfe0f9275bc3" + ], + "version": "==0.5.1" } } } diff --git a/fastapi/utils.py b/fastapi/utils.py index 530b5eca6..76661f9f6 100644 --- a/fastapi/utils.py +++ b/fastapi/utils.py @@ -28,7 +28,7 @@ def get_flat_models_from_routes( if route.response_fields: responses_from_routes.extend(route.response_fields.values()) flat_models = get_flat_models_from_fields( - body_fields_from_routes + responses_from_routes + body_fields_from_routes + responses_from_routes, known_models=set() ) return flat_models diff --git a/pyproject.toml b/pyproject.toml index 8700b0ef3..fca05a81a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ classifiers = [ ] requires = [ "starlette >=0.11.1,<=0.12.0", - "pydantic >=0.26,<=0.26.0" + "pydantic >=0.28,<=0.28.0" ] description-file = "README.md" requires-python = ">=3.6" diff --git a/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py b/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py index f7a2a8a12..6606e66b1 100644 --- a/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py +++ b/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py @@ -31,7 +31,7 @@ openapi_schema = { "parameters": [ { "required": False, - "schema": {"title": "Q", "type": "array"}, + "schema": {"title": "Q", "type": "array", "items": {}}, "name": "q", "in": "query", }