Skip to content

Instantly share code, notes, and snippets.

View chapmanjacobd's full-sized avatar
🥅
goal_net

Jacob Chapman chapmanjacobd

🥅
goal_net
View GitHub Profile
@chapmanjacobd
chapmanjacobd / plot_oomstat.py
Last active July 13, 2024 06:23
plot /proc/pressure/memory
# https://github.com/rfjakob/earlyoom/blob/c759f1bef2b50d0e0b249bff650e730655c98c0e/contrib/oomstat/overload.txt
import matplotlib.pyplot as plt
import pandas as pd
from xklb.utils import processes
df = pd.read_csv(StringIO(processes.cmd('cb').stdout.replace('|',' ')), delim_whitespace=True)
df.set_index('Time', inplace=True)
df = df.apply(pd.to_numeric)
@chapmanjacobd
chapmanjacobd / mock_stdin.py
Created May 17, 2024 15:03
restore stdin on error for pytest pdb
import sys
import pytest
from io import StringIO
class MockStdin:
def __init__(self, input_text):
self.input_text = input_text
self.original_stdin = None
@chapmanjacobd
chapmanjacobd / example_json.py
Created May 10, 2024 06:31
Filter JSON based on example
import argparse
import json
import sys
from typing import Any, Dict
import ijson
import ijson.common
from xklb.utils import argparse_utils
import os
import subprocess
from xklb.mediafiles import process_image
from xklb.utils import objects, web
COMICS = [
{
"title": "#1: Training Day",
"writer": "Ben Paddon",
"artist": "JjAR",
import argparse
import shutil
import textwrap
from itertools import zip_longest
TERMINAL_SIZE = shutil.get_terminal_size(fallback=(80, 60))
def format_two_columns(text1, text2, width1=30, width2=70, left_gutter=2, middle_gutter=2, right_gutter=3):
@chapmanjacobd
chapmanjacobd / titles.nd.js
Created May 6, 2024 15:06
Copy all titles from reddit page
Array.from(document.querySelectorAll('.title')).map(e => e.innerText).join('\n');

Have you ever wanted to do:

SELECT * FROM www.google.com

With BigQuery you kind of can. But have you ever wanted to do:

SELECT * FROM www.wikipedia.com

With Wikidata Query Service you kind of can (semantic web!, RDF!?, https://www.w3.org/wiki/SparqlImplementations).

class HtmlList:
def __init__(self):
self.tree = []
self.xpath = []
def resolve_parents(self, el) -> list:
if el.parent is None:
return self.xpath
else:
import argparse, re, webbrowser
from xklb.utils import web
def search_art(term):
search_url = f"https://artsandculture.google.com/search?q={term.replace(' ', '+')}"
response = web.requests_session().get(search_url)
if response.status_code == 200:
@chapmanjacobd
chapmanjacobd / eda sqlite example
Created March 24, 2024 16:22
lb eda temp.db -L inf
$ lb eda temp.db -L inf
## temp.db:playlists
### Shape
(1, 8)
### Sample of rows
| | id | time_modified | time_deleted | extractor_config | extractor_key | path | time_created | hours_update_delay |