Skip to content

Instantly share code, notes, and snippets.

View JulienPalard's full-sized avatar
🐍
🐍

Julien Palard JulienPalard

🐍
🐍
View GitHub Profile
@JulienPalard
JulienPalard / curry.py
Created August 1, 2014 10:51
KISS Python curry
#!/usr/bin/env python
def curry(func):
"""
Decorator to curry a function, typical usage:
>>> @curry
... def foo(a, b, c):
... return a + b + c
@JulienPalard
JulienPalard / mail-parse.py
Created February 16, 2016 15:10
Not-so-good example of mail header / body parsing
import os
import re
import sys
from email.parser import Parser
from email.header import decode_header
import logging
logger = logging.getLogger(__name__)
@JulienPalard
JulienPalard / asynczip.py
Created April 2, 2016 19:09
Aggregation of asynchronous iterables
import asyncio
SOON = 'SOON'
PAIRED = 'PAIRED'
class AsyncZip:
"""Aggregates async iterables, like `zip` or `select`.
The current state is stored in `self.iterating` as the `__anext__()`
@JulienPalard
JulienPalard / uri_multi_expand.py
Created May 16, 2017 14:01
URI multi template
#!/usr/bin/env python3
import itertools
from uritemplate import URITemplate
def dict_product(a_dict):
"""Iterate over the product of all values of the given dict.
>>> for d in dict_product({'foo': [1, 2], 'bar': [1, 2]}):
@JulienPalard
JulienPalard / backup.py
Last active June 12, 2022 19:10
Backup UBNT edgeswitch over SSH
"""Usage: ./backup.py login@host
"""
import sys
import pexpect
import getpass
child = pexpect.spawn('ssh ' + sys.argv[1])
while True:
match = child.expect(['password:', '\(.*\) >'])
@JulienPalard
JulienPalard / python-build.20180623214511.15791.log
Last active June 23, 2018 20:01
./bin/pyenv install 3.7.0rc1 failing
/tmp/python-build.20180623214511.15791 ~/.pyenv
/tmp/python-build.20180623214511.15791/Python-3.7.0rc1 /tmp/python-build.20180623214511.15791 ~/.pyenv
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for python3.7... python3.7
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... gcc
@JulienPalard
JulienPalard / find_in_po.py
Created October 5, 2018 10:17
Find a word in msgids, show msgstrs.
#!/usr/bin/env python3
import argparse
from glob import glob
import os
from textwrap import fill
import regex
import polib
from tabulate import tabulate
### Keybase proof
I hereby claim:
* I am julienpalard on github.
* I am julienpalard (https://keybase.io/julienpalard) on keybase.
* I have a public key ASC7dVPPYwLtCqT2bOTWWE-JgQ40WPTZCTkgFS4JEZqm1wo
To claim this, I am signing this object:
def van_eck():
"""https://oeis.org/A181391
"""
seen = {}
yield 0
previous, current = 0, None
i = 1
while True:
if previous in seen:
current = i - seen[previous] - 1
@JulienPalard
JulienPalard / FastFood.py
Created December 10, 2019 10:36 — forked from PiDroid-B/FastFood.py
FastFood
import asyncio
import random
from datetime import datetime
from enum import Enum
from dataclasses import dataclass
class CMD_STATE(Enum):
Undefined = 0
Ask = 1