Problem: FastAPI doesn't accept JSON-encoded pydantic models in query strings. See #884.
Solution: Use json_param()
from the snippet below.
Usage example.
from fastapi import FastAPI
from pydantic import BaseModel
#!/usr/bin/env ipython -i | |
import datetime | |
import json | |
from typing import Optional | |
import sqlalchemy as sa | |
from sqlalchemy.orm import declarative_base, sessionmaker | |
from sqlalchemy.dialects.postgresql import JSONB | |
from pydantic import BaseModel, Field, parse_obj_as |
Problem: FastAPI doesn't accept JSON-encoded pydantic models in query strings. See #884.
Solution: Use json_param()
from the snippet below.
Usage example.
from fastapi import FastAPI
from pydantic import BaseModel
""" | |
Generator and Releaser objects which could be used to create and destroy | |
objects in separate threads. Generator constantly keeps the pool of N objects | |
to use by the test function (by default N equals to 1). | |
How to use them: | |
You create a session-scope generator and releaser. They are subclasses | |
of threading.Thread, so you should start them as well. |
""" | |
A simple contrived example of a FastAPI application that heavily uses | |
the FastAPI dependency injection system. | |
Sample request http://127.0.0.1:9876/tasks?user_id=123456 | |
returns [{"id":1,"name":"Task 1","user":{"id":123456,"name":"John Doe"}}] | |
Dependency tree: | |
get_me() |
import requests | |
from requests.adapters import HTTPAdapter | |
from urllib3.util.retry import Retry | |
USER_AGENT = "My project (https://example.com)" | |
def get_default_session() -> requests.Session: | |
"""Return a request.Session() instance with reasonable defaults for retries. |
# -*- coding: utf-8 -*- | |
""" | |
Performance test for different types of update | |
Results sample | |
----------------------------------------------- | |
In [1]: import db_test |
# pip install watchdog | |
exec watchmedo shell-command --patterns='*.rst;*.py' --ignore-pattern='_build/*' --recursive --command='make html' --wait |
This is a simple implementation for TCP server and client. The server listens for the port 9090 of the localhost, receives messages from any connected clients, and sends them to all connected peers. The client is started with a username as an argument, reads in an infinite loop messages from the string, re-format them as "name > message\n" and send to the server. In a different async function it also waits for message from the server and prints the to the console.
Files:
aio_chat_client.py
: client implementationaio_chat_server.py
: server implementationDependencies: Python 3.6+ and aioconsole
Install aioconsole
#!/bin/bash | |
export TZ='Europe/Moscow' | |
exec open -na "Google Chrome" --args "--user-data-dir=$HOME/chrome-profile" |