Skip to content

Instantly share code, notes, and snippets.

View abersheeran's full-sized avatar
👋
玉楼金阙慵归去,且插梅花醉洛阳

Aber abersheeran

👋
玉楼金阙慵归去,且插梅花醉洛阳
View GitHub Profile
@abersheeran
abersheeran / runmodule.py
Last active April 12, 2024 08:59
Run Cython module
#!/usr/bin/python3.10
# -*- coding: utf-8 -*-
import asyncio
import sys
import importlib
from functools import reduce
from typing import Any
def import_from_string(import_str: str) -> Any:
@abersheeran
abersheeran / proxy.worker.js
Last active April 13, 2024 08:45
A proxy download cloudflare worker
addEventListener("fetch", (event) => {
event.respondWith(
handleRequest(event.request).catch(
(err) => new Response(err.stack, { status: 500 })
)
);
});
async function handleRequest(request) {
const url = getUrl(request)
@abersheeran
abersheeran / pypi-mirror.worker.js
Last active January 4, 2024 03:16
A pypi mirror cloudflare worker
addEventListener("fetch", (event) => {
event.respondWith(
handleRequest(event.request).catch(
(err) => new Response(err.stack, { status: 500 })
)
);
});
async function handleRequest(request) {
const { host, pathname } = new URL(request.url)
@abersheeran
abersheeran / wsl-docker.sh
Last active September 7, 2021 06:19
Allow use docker commands in WSL1
#!/bin/bash
sudo apt-get update
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
from typing import Any, Dict, List
from django.core.exceptions import FieldDoesNotExist
from django.db import models
def serialize_model(model: models.Model) -> Dict[str, Any]:
result = {
name: serialize_model(foreign_key)
for name, foreign_key in model.__dict__["_state"].__dict__.get("fields_cache", {}).items()
@abersheeran
abersheeran / y.py
Created April 6, 2021 03:11
Y combinator. Python lambda.
Y = lambda g: (lambda f: g(lambda arg: f(f)(arg))) (lambda f: g(lambda arg: f(f)(arg)))
if __name__ == "__main__":
fib = Y(lambda f: lambda n: (1 if n < 3 else f(n-1) + f(n-2)))
print(fib(10))
@abersheeran
abersheeran / wsgi-type-definitions.py
Last active November 20, 2023 04:48
use typing to describe WSGI
"""
https://peps.python.org/pep-3333/
"""
from types import TracebackType
from typing import (
Any,
Callable,
Iterable,
List,
Optional,
@abersheeran
abersheeran / ensure_pep563.py
Last active February 3, 2023 10:27
Ensure that all Python modules in the specified directory are turned on pep563
from pathlib import Path
def ensure_pep563(dirpath: Path) -> None:
self_path = Path(__file__).absolute()
future_import = "from __future__ import annotations"
for pypath in dirpath.glob("**/*.py"):
if pypath.absolute() == self_path:
continue
@abersheeran
abersheeran / EnableLoopback.bat
Created December 31, 2020 11:13
Allow all UWP applications access 127.0.0.1 proxy
FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
@abersheeran
abersheeran / bloomfilter.py
Last active March 25, 2022 06:00
Bloom filter by python3
import math
from hashlib import blake2b
class BloomFilter:
def __init__(self, elements_count: int, *, error_rate: float = 0.0001) -> None:
byte_count = 1 + int(
-(math.log(error_rate) / math.log(2) ** 2) * elements_count // 8
)
digest_size = int(math.log2(elements_count)) + (elements_count % 2)