Skip to content

Instantly share code, notes, and snippets.

View AlexWaygood's full-sized avatar
🚀
Hacking on devtools @astral-sh!

Alex Waygood AlexWaygood

🚀
Hacking on devtools @astral-sh!
View GitHub Profile
@AlexWaygood
AlexWaygood / annotations-demo.py
Last active June 19, 2024 19:40
Demo for an `__annotations__` solution
"""Proof of concept for how `__annotations__` issues with metaclasses could be solved under PEP 649.
See https://discuss.python.org/t/pep-749-implementing-pep-649/54974/28 for more context.
To experiment with this proof of concept:
1. Clone CPython
2. Create a fresh build of the main branch according to the instructions in the devguide.
3. Save this file to the repository root.
4. Run `./python.exe annotations-demo.py --test` to run tests,
or `PYTHON_BASIC_REPL=1 ./python.exe -i annotations-demo.py` to play with it in the REPL.
from types import SimpleNamespace
AnsiColors = SimpleNamespace(
BOLD_GREEN="\x1b[1;32m",
BOLD_MAGENTA="\x1b[1;35m",
BOLD_RED="\x1b[1;31m",
GREEN="\x1b[32m",
GREY = "\x1b[90m"
MAGENTA = "\x1b[35m"
RED = "\x1b[31m"
@AlexWaygood
AlexWaygood / last_n_lines.py
Last active March 10, 2024 16:30
Script to find the last `n` lines of a file
import os
from collections import deque
from collections.abc import Iterator, Sequence
from typing import Final, Protocol
class SeekableBytesFile(Protocol):
def seek(self, position: int, whence: int = ..., /) -> int: ...
def read(self, amount: int, /) -> bytes: ...
@AlexWaygood
AlexWaygood / find_identifier_lengths.py
Last active February 3, 2024 17:19
Script to find the distribution of lengths of Python identifiers in a given directory
import ast
import sys
import keyword
import seaborn
from pathlib import Path
from collections import Counter
from dataclasses import dataclass
LENGTHS_COUNT = Counter[int]()