Skip to content

Instantly share code, notes, and snippets.

View richardhundt's full-sized avatar

Richard Hundt richardhundt

View GitHub Profile
@richardhundt
richardhundt / patch_httpx_asgi.py
Last active April 29, 2024 12:36
Patch httpx ASGITransport to stream responses for testing
import asyncio
from contextlib import asynccontextmanager
import typing
import asyncio
from httpx._models import Request, Response
from httpx._transports.asgi import ASGITransport
from httpx._types import AsyncByteStream
class ASGIResponseByteStream(AsyncByteStream):
{"_key": "Q50038575", "id": "http://www.wikidata.org/entity/Q50038575", "type": ["Organisation", "Agent"], "sameAs": [], "variantName": ["Atos Medical"], "preferredName": "Atos Medical", "country": {"label": "Germany", "id": "http://www.wikidata.org/entity/Q183"}}
{"_key": "Q50038577", "id": "http://www.wikidata.org/entity/Q50038577", "type": ["Organisation", "Agent"], "sameAs": [], "variantName": ["Integrierte Psychiatrie Winterthur"], "preferredName": "Integrierte Psychiatrie Winterthur", "country": {"label": "Switzerland", "id": "http://www.wikidata.org/entity/Q39"}}
{"_key": "Q50038578", "id": "http://www.wikidata.org/entity/Q50038578", "type": ["Organisation", "Agent", "Company"], "sameAs": [], "variantName": ["Ingredia (France)"], "preferredName": "Ingredia (France)", "country": {"label": "France", "id": "http://www.wikidata.org/entity/Q142"}}
{"_key": "Q50038579", "id": "http://www.wikidata.org/entity/Q50038579", "type": ["Organisation", "Agent", "Company"], "sameAs": [], "variantName": ["L\u00f6wenste
@richardhundt
richardhundt / keybase.md
Created October 17, 2017 07:40
keybase.md

Keybase proof

I hereby claim:

  • I am richardhundt on github.
  • I am richardhundt (https://keybase.io/richardhundt) on keybase.
  • I have a public key ASD51mYRq2hqnjM8AuqqIoocOAJYgQ44VLN6Qq5CLAhCPwo

To claim this, I am signing this object:

<html>
<style>
.loader {
font-size: 10px;
margin: 50px auto;
text-indent: -9999em;
width: 11em;
height: 11em;
@richardhundt
richardhundt / swarm-http-router.shn
Last active August 29, 2015 13:58
Swarm framework HTTPRouter using patterns
class HTTPRouter
self()
self.routes = { }
end
add(verb is String, path is String, func is Function)
self.routes[#self.routes + 1] = Route(verb, path, func)
end
match(verb, path)
for i=1, #self.routes do
m, q = self.routes[i].match(verb, path)
@richardhundt
richardhundt / test.shn
Last active August 29, 2015 13:57
Guard composition
function conjoin(a, b)
meta = { }
repr = nil
function meta::__tostring()
if not repr then
repr = "%{a} * %{b}"
end
return repr
end
@richardhundt
richardhundt / fields.shn
Last active August 29, 2015 13:57
Shine final table fields
function fields(schema is Table)
module fields
local slots = { }
-- create slot objects to use as keys so that we can trip __set__
-- every time for a type check (just one way to do it, there are more)
for k, v in schema do
slot = { }
function slot.set(o, v)
if v is schema[k] then
@richardhundt
richardhundt / quicksort.nga
Created September 23, 2013 06:27
quicksort.nga
insertion_thresold = 16
function less_than(a, b)
return a < b
end
function insertion_sort(array, compare, istart, iend)
for i = istart + 1, iend do
current_value = array[i]
hole_index = i
#include "ray.h"
static ray_fiber_t* RAY_MAIN;
static uv_async_t RAY_PUMP;
void ray_pump(void) {
uv_async_send(&RAY_PUMP);
}
ray_fiber_t* ray_current(lua_State* L) {
@richardhundt
richardhundt / ray.c
Created February 24, 2013 11:01
libray
#include "ray.h"
int ray_last_error(ray_ctx_t* self) {
uv_err_t err = uv_last_error(self->loop);
return err.code;
}
const char* ray_strerror(int code) {
uv_err_t err = { .code = code };
return uv_strerror(err);
}