Skip to content

Instantly share code, notes, and snippets.

View michaeldorner's full-sized avatar

Michael Dorner michaeldorner

View GitHub Profile
@michaeldorner
michaeldorner / temporal_graph.tikz
Last active September 13, 2023 07:31
Example temporal graph in TikZ
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{backgrounds, positioning}
\usepackage{xcolor}
\definecolor{ACMYellow}{RGB}{255, 214, 0}
\definecolor{ACMOrange}{RGB}{252, 146, 0}
\definecolor{ACMRed}{RGB}{253, 27, 20}
@michaeldorner
michaeldorner / zenodo_upload.py
Last active May 5, 2023 10:23
Upload large and many files with progress bar to Zenodo via REST API; under MIT
import argparse
import os
import requests
from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter
from tqdm import tqdm
from tqdm.utils import CallbackIOWrapper
HEADERS = {'Content-Type': 'application/json'}
@michaeldorner
michaeldorner / hypergraph_example.tex
Last active November 28, 2024 03:58
hypergraphs
\documentclass{minimal}
\usepackage{tikz}
\usepackage{tikz-network}
\usetikzlibrary{calc, backgrounds, positioning}
\input{tikz-hypergraph}
\usepackage{xcolor}
\documentclass{standalone}
\usepackage{amsmath,amssymb}
\usepackage{charter}
\usepackage[charter]{mathdesign}
%\font\nullfont=cmr10
@michaeldorner
michaeldorner / get_github_pulls.py
Created January 27, 2022 08:36
Collects all pulls and related information from GitHub
import argparse
import json
from tqdm.auto import tqdm
from agithub.GitHub import GitHub
def get_pulls(client, owner, repository):
pulls = []
status, pulls = client.repos[owner][repository].pulls.get(state='all')
if status != 200:
person_1000205 person_1000322 person_1000414 person_1000701 person_1000835 person_1000866 person_1001146 person_1001525 person_1001934 person_1002609 person_1002682 person_1002751 person_1002975 person_1003224 person_1003247 person_1003259 person_1003338 person_1003473 person_1003618 person_1003801 person_1003821 person_1003840 person_1003913 person_1003966 person_1004017 person_1004395 person_1004424 person_1004689 person_1004882 person_1005592 person_1005610 person_1005920 person_1005967 person_1005970 person_1006073 person_1006166 person_1006322 person_1006497 person_1006514 person_1006692 person_1006773 person_1006805 person_1010049 person_1010050 person_1010055 person_1010056 person_1010077 person_1010103 person_1010110 person_1010111 person_1010186 person_1010211 person_1010334 person_1010465 person_1010674 person_1011530 person_1012974 person_1013003 person_1013030 person_1013478 person_1013508 person_1013984 person_1014288 person_1014443 person_1014453 person_1014468 person_1014491 person_1014545 per
def count_ipynb_loc(ipynb_file):
with open(ipynb_file) as file:
content = json.load(file)
cells = content['cells']
loc = sum(len(c['source']) for c in cells if c['cell_type'] == 'code')
return loc
@michaeldorner
michaeldorner / ocam.py
Last active July 18, 2022 12:45
For Ehsan
from agithub.GitHub import GitHub
import pandas as pd
token = ""
client = GitHub(token=token, paginate=True)
for repo in ['echarts']:
status, issues = client.repos['apache'][repo].issues.get(state='open')
assert status==200, str(status)
import requests
import json
api_url = 'review.gerrithub.io' # or, for example, 'android-review.googlesource.com'
test_pages = [1, 100, 1000, 10000]
changes = []
for page in test_pages:
response = requests.get(f'https://{api_url}/changes/?o=MESSAGES&o=DETAILED_ACCOUNTS', timeout=10*60, params={'S': 0})
changes += json.loads(response.text[len("]}\\\'\n"):])
# pylint: disable=locally-disabled, multiple-statements, line-too-long, missing-module-docstring, no-member, missing-class-docstring, missing-function-docstring
import argparse
from pathlib import Path
from datetime import datetime
import logging
import bz2
from concurrent.futures import as_completed
from urllib.parse import urlparse, parse_qs