Skip to content

Instantly share code, notes, and snippets.

View TheMatt2's full-sized avatar

Matthew Schweiss TheMatt2

View GitHub Profile
@TheMatt2
TheMatt2 / toml_anywhere.py
Created February 9, 2024 03:18
A wrapper that allows any command line program to have a `--config` flag. No explicit support required!
"""
Toml Everywhere
A wrapper that allows any command line program to have a `--config` flag.
No explicit support required!
Call as:
$ toml_everywhere.py program [argument ...] --config config.cfg
@TheMatt2
TheMatt2 / pathtype_simplified.py
Last active October 20, 2023 00:42
Simplier PathType object for helping parse argparse inputs. Takes up less lines of code and removes rarely used features (still present on pathtype_v2.py)
"""
Simplified PathType
- Simplify for common case
- Only one type, no more (never used really)
- No dash support, just simplier
- No symilnk (never used)
A helper type for input validation in argparse for paths.
This provides a convienent way to check the path type and existance.
@TheMatt2
TheMatt2 / pathtype_v2.py
Created October 12, 2023 05:17
Python PathType helper type for input validation in argparse for paths.
"""
PathType
A helper type for input validation in argparse for paths.
This provides a convienent way to check the paths type, existance, and
potentially use "-" to reference stdin or stdout.
This class is provided as an alternative to argparse.FileType(), which
does not open the path, only validates it and supports directories.

Checkbox Tables in Markdown

An attempt to make a list of the supported ways to make a table with checkboxes in Markdown.

Results as of October 2023.


Below is the style element that formats the colors of the colored check mark emojis.

# Because it turns out writing files is hard
# Process can crash halfway through, and a collision can overwrite the file
# mid operation.
# https://stackoverflow.com/questions/7645338/how-to-do-atomic-file-replacement
# http://www.weirdnet.nl/apple/rename.html
import os
import hjson
import filelock
def safe_json_read(filename, timeout = None):
@TheMatt2
TheMatt2 / generator_pickler.py
Last active March 2, 2023 17:18
Make unused Python generators Pickle-able!
"""
Simply little utility function to make it possible to pickle generators.
While generator instances can not actually be pickled, this saves the generator
function and only creates a generator instance when the first value is accessed.
The goal is to make it possible to pass generators, with arguments, through multiprocessing
which uses pickling internally to move objects between Python processes.
import multiprocessing
# https://en.wikipedia.org/wiki/Reuleaux_triangle
import math
import cairo
def pos_on_circle(cx, cy, radius, angle):
# Convert polar to cartesian, Author: Matthew Schweiss
x = math.cos(angle) * radius + cx
y = math.sin(angle) * radius + cy
return x, y
#!/bin/bash
JAVA="java"
JAR="paper-1.18.1-101.jar"
RAM="2000M"
FLAGS="-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Daikars.new.flags=true -Dusing.aikars.flags=https://mcflags.emc.gs"
echo "Starting server..."
${JAVA} -Xmx${RAM} -Xms${RAM} ${FLAGS} -jar ${JAR} --nogui
@TheMatt2
TheMatt2 / jython_array_bugs.py
Created August 5, 2021 14:58
Demonstration script for Jython bug with array module.
import sys
import array
def test_signed(typecode):
try:
a = array.array(typecode)
# Create byte representation of exactly one item
byte_item = bytes()
for i in range(a.itemsize):