Skip to content

Instantly share code, notes, and snippets.

View earonesty's full-sized avatar
🎹
Piano

earonesty

🎹
Piano
View GitHub Profile
@earonesty
earonesty / game.py
Created August 23, 2024 23:30
silas
import logging
log = logging.getLogger("ai-chat-game")
class Game(ABC):
def __init__(self, *, world, user, store: Store):
self.ai: AiConfig | None = None
self.chat: Chat | None = None
self.world = world
@earonesty
earonesty / key.py
Created October 9, 2023 22:03
very simple pub/priv key module using coincurve
import base64
import os
from hashlib import sha256
from typing import Optional
import coincurve as secp256k1
"""Minimalist pub/priv key classes for signing and verification based on coincurve"""
class PublicKey:
[tool.poetry]
name = "ai-worker"
version = "0.1.0"
description = "api server that posts capabilities, and accepts jobs"
authors = ["erik aronesty <erik@q32.com>"]
license = "MIT"
readme = "README.md"
packages = [{include = "ai_worker"}]
[tool.poetry.dependencies]
class TestUniqueQueue(unittest.TestCase):
def test_basic(self):
q = util.UniqueQueue()
for i in range(100):
q.put(i)
res = set(q)
for i in range(100):
class FutureWaitQueue:
"""Wait for futures without making an infinite list.
Any exceptions are ignored at put() time, except for timeout errors, which are raised.
The last exception raised is raised at wait() time
"""
def __init__(self, maxsize, timeout, err_on_timeout=concurrent.futures.TimeoutError):
"""Construct a future wait queue.
#!/usr/bin/env python3
import sys
from tracemalloc import Snapshot
def main():
# todo: argparser
fil = sys.argv[1]
num = 10
if len(sys.argv) > 2:
num = int(sys.argv[2])
import os
import sys
import json
import math
from runstats import Statistics, Regression
__all__ = ["randtest", "randtestall", "buildstats"]
def primes(givenNumber):
# Initialize a list
@earonesty
earonesty / gist:c1cd4c634cfc1f9e3f34d0b4b056651c
Created March 21, 2022 21:55
extremely simple lru set in python
class LRUSet(set):
def __init__(self, *args, max_size=None, **kws):
self.max_size = max_size
super().__init__(*args, **kws)
def add(self, ent):
if len(self) >= self.max_size:
self.pop()
super().discard(ent)
super().add(ent)
"""
Generate api-style github markdown-files from python docstrings.
Example:
qpydoc my_module > API.md
"""
import re
# allows you to say with mock_run(...):
# ....
# good for testing scripts that do a lot of subprocess.run calls
class CmdMatch(NamedTuple):
cmd: str
matches: str = ".*"
result: str = ""
side_effect: Union[Callable, Exception] = None