Skip to content

Instantly share code, notes, and snippets.

View Goldziher's full-sized avatar
🐙
Codoctupus

Na'aman Hirschfeld Goldziher

🐙
Codoctupus
  • Philipps & Byrne GmbH
  • Berlin
  • 11:11 (UTC +02:00)
  • LinkedIn in/nhirschfeld
View GitHub Profile
@Goldziher
Goldziher / Makefile
Created October 10, 2022 14:48
makefile that injects git user from github config
GH_CONFIG := ~/.config/gh/hosts.yml
GITHUB_USER := $(shell cat $(GH_CONFIG) | yq '.[].user' | xargs)
GITHUB_TOKEN := $(shell cat $(GH_CONFIG) | yq '.[].oauth_token' | xargs)
.PHONY: all
build:
docker build --build-arg=GITHUB_USER=$(GITHUB_USER) --build-arg=GITHUB_TOKEN=$(GITHUB_TOKEN) .
@Goldziher
Goldziher / 1_models.py
Last active January 31, 2022 09:44
starlite sql alchemy plugin example
from sqlalchemy import Column, Float, Integer, String
from sqlalchemy.orm import declarative_base
Base = declarative_base()
class Company(Base):
id = Column(Integer, primary_key=True)
name = Column(String)
worth = Column(Float)
@Goldziher
Goldziher / Dockerfile
Last active January 15, 2022 23:24
Starlite+poetry example dockerfile
FROM python:3.10-slim AS install
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends curl \
&& apt-get autoremove -y
RUN pip install --upgrade pip
WORKDIR /app/
# install poetry and keep the get-poetry script so it can be reused later.
ENV POETRY_HOME="/opt/poetry"
RUN curl https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py > get-poetry.py
@Goldziher
Goldziher / test_health_check.py
Created January 3, 2022 07:28
Example starlite test
from starlette.status import HTTP_200_OK
from starlite import create_test_client
from my_app.main import health_check
def test_health_check():
with create_test_client(route_handlers=[health_check]) as client:
response = client.get("/health-check")
assert response.status_code == HTTP_200_OK
@Goldziher
Goldziher / main.py
Created January 3, 2022 07:27
Simple app example
from starlite import Starlite, MediaType, get
@get(path="/health-check", media_type=MediaType.TEXT)
def health_check() -> str:
return "healthy"
app = Starlite(route_handlers=[health_check])
@Goldziher
Goldziher / main.py
Created January 3, 2022 06:47
Starlite Init Example
from starlite import Starlite, LoggingConfig
from my_app.users import UserController
app = Starlite(
route_handlers=[UserController],
on_startup=[
LoggingConfig(loggers={
"my_app": {
from os import environ
from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine
# we first define a dependency. The dependency is a function or method (async or sync) whose return value will be injected
def create_postgres_connection() -> AsyncEngine:
postgres_connection_string = environ.get("POSTGRES_CONNECTION_STRING", "")
if not postgres_connection_string:
raise ValueError("Missing ENV Variable POSTGRES_CONNECTION_STRING")
@Goldziher
Goldziher / user_controller.py
Last active January 3, 2022 13:03
Example Starlite Controller
from typing import List
from pydantic import UUID4
from starlite import Controller, Partial, get, post, put, patch, delete
from my_app.models import User
class UserController(Controller):
path = "/users"
@Goldziher
Goldziher / route_handlers.py
Last active January 2, 2022 08:57
Route Handlers Example
from typing import List
from starlite import Partial, delete, get, patch, post, put
from my_app.models import Resource
@get(path="/resources")
def list_resources() -> List[Resource]:
...
@Goldziher
Goldziher / main.py
Created January 1, 2022 10:02
FastAPI official example
from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}