Skip to content

Instantly share code, notes, and snippets.

View adriangb's full-sized avatar

Adrian Garcia Badaracco adriangb

View GitHub Profile
from contextvars import Context, ContextVar, copy_context
from typing import Any
def _set_cvar(cvar: ContextVar, val: Any):
cvar.set(val)
class CaptureContext:
"""Capture changes to the Context within the block.
from contextlib import contextmanager
from dataclasses import dataclass, field
from logging import Filter, Formatter, Handler, Logger, LogRecord
from logging import config as logging_config_mod
from logging import getLogger
from typing import Generator, List, Optional, Sequence, Union
@dataclass(frozen=True)
class CapturedRecord:
records: List[LogRecord] = field(default_factory=list)
output: List[str] = field(default_factory=list)
from typing import Awaitable, Callable
from fastapi import FastAPI, Request, Response
from fastapi.exceptions import HTTPException
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.propagate import inject
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
trace.set_tracer_provider(TracerProvider())
from __future__ import annotations
from dataclasses import dataclass as dataclass
from dataclasses import field
from typing import Any, Dict, List, Literal, Mapping, Optional, Union
ParameterLocations = Literal["header", "path", "query", "cookie"]
PathParamStyles = Literal["simple", "label", "matrix"]
QueryParamStyles = Literal["form", "spaceDelimited", "pipeDelimited", "deepObject"]
HeaderParamStyles = Literal["simple"]
import typing
from dataclasses import dataclass
@dataclass
class BodyBase:
content_type: str
@dataclass
from __future__ import annotations
import cProfile
import pstats
from collections import deque
from dataclasses import dataclass, field
from random import Random
from timeit import default_timer
from typing import Awaitable, Callable, Deque, Iterable, List, Optional, Protocol, Union
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
use std::cmp;
use std::hash;
use std::collections::HashSet;
use std::os::raw::c_int;
use pyo3::prelude::*;
use pyo3::ffi;
use pyo3::conversion::{AsPyPointer};
use pyo3::{pyobject_native_type_base,pyobject_native_type_info,pyobject_native_type_extract,PyNativeType};
use pyo3::types::{PyString};
use std::cmp;
use std::collections::HashMap;
use std::collections::hash_map::Entry;
use std::hash;
use pyo3::prelude::*;
use pyo3::types::{PyTuple};
// We can't put a Py<PyAny> directly into a HashMap key
@adriangb
adriangb / hashedpyany.rs
Last active November 27, 2021 10:07
Hashable Python objects in PyO3
use std::cmp;
use std::hash;
use pyo3::basic::CompareOp;
use pyo3::prelude::*;
// We can't put a Py<PyAny> directly into a HashMap key
// So to be able to hold references to arbitrary Python objects in HashMap as keys
// we wrap them in a struct that gets the hash() when it receives the object from Python