Automated deployment: Tue Nov 23 07:14:13 UTC 2021 48d1be87a4138da88e95324761febc45d172394d

This commit is contained in:
frankie567
2021-11-23 07:14:13 +00:00
parent 3d36e8e885
commit 33ed978d45
6 changed files with 42 additions and 44 deletions

View File

@ -465,16 +465,15 @@
<p>In the following sample, we import our dependencies and create a context manager version using <code>contextlib.asynccontextmanager</code>:</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">contextlib</span>
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
<span class="kn">from</span> <span class="nn">app.db</span> <span class="kn">import</span> <span class="n">get_user_db</span>
<span class="kn">from</span> <span class="nn">app.models</span> <span class="kn">import</span> <span class="n">UserCreate</span>
<span class="kn">from</span> <span class="nn">app.users</span> <span class="kn">import</span> <span class="n">get_user_manager</span>
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
<span class="hll"><span class="n">get_user_db_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_db</span><span class="p">)</span>
</span><span class="hll"><span class="n">get_user_manager_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_manager</span><span class="p">)</span>
<span class="n">get_user_db_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_db</span><span class="p">)</span>
<span class="hll"><span class="n">get_user_manager_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_manager</span><span class="p">)</span>
</span><span class="hll">
</span>
<span class="k">async</span> <span class="k">def</span> <span class="nf">create_user</span><span class="p">(</span><span class="n">email</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">is_superuser</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">async</span> <span class="k">with</span> <span class="n">get_user_db_context</span><span class="p">()</span> <span class="k">as</span> <span class="n">user_db</span><span class="p">:</span>
@ -496,18 +495,17 @@
<p>We are now ready to write a function. The example below shows you a basic example but you can of course adapt it to your own needs. The key part here is once again to <strong>take care of opening every context managers and pass them every required arguments</strong>, as the dependency manager would do.</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">contextlib</span>
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
<span class="kn">from</span> <span class="nn">app.db</span> <span class="kn">import</span> <span class="n">get_user_db</span>
<span class="kn">from</span> <span class="nn">app.models</span> <span class="kn">import</span> <span class="n">UserCreate</span>
<span class="kn">from</span> <span class="nn">app.users</span> <span class="kn">import</span> <span class="n">get_user_manager</span>
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
<span class="n">get_user_db_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_db</span><span class="p">)</span>
<span class="n">get_user_manager_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_manager</span><span class="p">)</span>
<span class="hll"><span class="k">async</span> <span class="k">def</span> <span class="nf">create_user</span><span class="p">(</span><span class="n">email</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">is_superuser</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
</span><span class="hll"> <span class="k">try</span><span class="p">:</span>
<span class="k">async</span> <span class="k">def</span> <span class="nf">create_user</span><span class="p">(</span><span class="n">email</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">is_superuser</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
<span class="hll"> <span class="k">try</span><span class="p">:</span>
</span><span class="hll"> <span class="k">async</span> <span class="k">with</span> <span class="n">get_user_db_context</span><span class="p">()</span> <span class="k">as</span> <span class="n">user_db</span><span class="p">:</span>
</span><span class="hll"> <span class="k">async</span> <span class="k">with</span> <span class="n">get_user_manager_context</span><span class="p">(</span><span class="n">user_db</span><span class="p">)</span> <span class="k">as</span> <span class="n">user_manager</span><span class="p">:</span>
</span><span class="hll"> <span class="n">user</span> <span class="o">=</span> <span class="k">await</span> <span class="n">user_manager</span><span class="o">.</span><span class="n">create</span><span class="p">(</span>

View File

@ -540,7 +540,7 @@
<a href="https://badge.fury.io/py/fastapi-users"><img alt="PyPI version" src="https://badge.fury.io/py/fastapi-users.svg"/></a>
<a href="https://pepy.tech/project/fastapi-users"><img alt="Downloads" src="https://pepy.tech/badge/fastapi-users"/></a></p>
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<p><a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-45-orange.svg?style=flat-square"/></a></p>
<p><a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-46-orange.svg?style=flat-square"/></a></p>
<!-- ALL-CONTRIBUTORS-BADGE:END -->
<p align="center">
<a href="https://www.buymeacoffee.com/frankie567"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&amp;emoji=&amp;slug=frankie567&amp;button_colour=FF5F5F&amp;font_colour=ffffff&amp;font_family=Arial&amp;outline_colour=000000&amp;coffee_colour=FFDD00"/></a>
@ -653,6 +653,7 @@
<td align="center"><a href="http://justobjects.nl"><img alt="" src="https://avatars.githubusercontent.com/u/582630?v=4?s=100" width="100px;"/><br/><sub><b>Just van den Broecke</b></sub></a><br/><a href="#financial-justb4" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/jakemanger"><img alt="" src="https://avatars.githubusercontent.com/u/52495554?v=4?s=100" width="100px;"/><br/><sub><b>jakemanger</b></sub></a><br/><a href="https://github.com/fastapi-users/fastapi-users/issues?q=author%3Ajakemanger" title="Bug reports">🐛</a> <a href="https://github.com/fastapi-users/fastapi-users/commits?author=jakemanger" title="Code">💻</a></td>
<td align="center"><a href="https://bandism.net/"><img alt="" src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;"/><br/><sub><b>Ikko Ashimine</b></sub></a><br/><a href="https://github.com/fastapi-users/fastapi-users/commits?author=eltociear" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/matyasrichter"><img alt="" src="https://avatars.githubusercontent.com/u/20258539?v=4?s=100" width="100px;"/><br/><sub><b>Matyáš Richter</b></sub></a><br/><a href="https://github.com/fastapi-users/fastapi-users/commits?author=matyasrichter" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->

File diff suppressed because one or more lines are too long

View File

@ -2,157 +2,157 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2021-11-10</lastmod>
<lastmod>2021-11-23</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.

View File

@ -1,10 +1,9 @@
import contextlib
from fastapi_users.manager import UserAlreadyExists
from app.db import get_user_db
from app.models import UserCreate
from app.users import get_user_manager
from fastapi_users.manager import UserAlreadyExists
get_user_db_context = contextlib.asynccontextmanager(get_user_db)
get_user_manager_context = contextlib.asynccontextmanager(get_user_manager)