Skip to content

Instantly share code, notes, and snippets.

View dnouri's full-sized avatar

Daniel Nouri dnouri

  • Malmö, Sweden
View GitHub Profile
@dnouri
dnouri / mirror.py
Created November 21, 2020 13:19
A moviepy script that flips an input video file and optionally accelerates/decelartes it
import sys
from moviepy.editor import VideoFileClip
import moviepy.video.fx.all as vfx
def main(fname_in, fname_out, duration="1.0"):
duration = float(duration)
clip = VideoFileClip(fname_in)
clip = (clip
[general]
accounts = Gmail
maxsyncaccounts = 3
socktimeout = 90
[Account Gmail]
localrepository = Gmail-Local
remoterepository = Gmail-Remote
[Repository Gmail-Local]
@dnouri
dnouri / supervisor.conf
Created July 18, 2020 14:30
Supervisor config for Raspberry Pis that sets up a reverse tunnel to myserver.com
[program:autossh40000]
command=bash -c "sleep 15 && exec /usr/lib/autossh/autossh -nN -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -M 40010 -R 0.0.0.0:40000:localhost:22 myuser@myserver.com"
autorestart=true
user=pi
@dnouri
dnouri / nntoy.py
Created September 14, 2015 08:17
nolearn.lasagne.NeuralNet toy examples for classification and regression
# Toy examples that demonstrate how to configure
# nolearn.lasagne.NeuralNet and what data to send in for
# classification problems with single and multiple classes, and
# regression problems with and without multiple targets.
from lasagne.layers import DenseLayer
from lasagne.layers import InputLayer
from lasagne.nonlinearities import softmax
from nolearn.lasagne import NeuralNet
import numpy as np
@dnouri
dnouri / gist:5094955
Created March 5, 2013 22:32
This little #sklearn transform is pretty useful for applying arbitrary funcs to your data in a pipeline, like 1/X.
class Func(BaseEstimator):
def __init__(self, func):
self.func = func
def fit(self, X, y=None):
return self
def transform(self, X):
return self.func(X)
@dnouri
dnouri / profileit.py
Created February 28, 2013 13:40
A profile function decorator. Writes profile to <functionname>.profile. Inspect the profile with runsnakerun or the like.
import cProfile
from functools import wraps
def profile(func):
@wraps(func)
def wrapper(*args, **kwargs):
cProfile.runctx(
'result = func(*args, **kwargs)',
globals(),
@dnouri
dnouri / query_children.py
Created March 16, 2012 11:43
Query node children with arbitrary depth
def query_children(context, levels=3, more_conditions=None):
selects = []
for level in range(levels):
alias = Node.__table__
conditions = [Node.__table__.c.id == context.id]
for depth in range(level + 1):
alias, old_alias = Node.__table__.alias(), alias
conditions.append(alias.c.parent_id == old_alias.c.id)
if more_conditions:
@dnouri
dnouri / gist:1600408
Created January 12, 2012 13:06
Use pyquery to search zope.testbrowser contents
from zope.testbrowser.browser import Browser
def _zope_testbrowser_pyquery(self):
from pyquery import PyQuery
return PyQuery(self.contents)
Browser.pyquery = property(_zope_testbrowser_pyquery)
# This will allow you to do in your tests:
# >>> "Home" in browser.pyquery('#navigation').text()
@dnouri
dnouri / gist:867230
Created March 12, 2011 13:25
guess_time: Parsing time from user input.
import time
def guess_time(s):
"""
>>> guess_time('20:00')
(20, 0)
>>> guess_time(' 23:59')
(23, 59)
>>> guess_time('20:00foo')
(20, 0)
@dnouri
dnouri / cache.py
Created February 10, 2011 15:39
A 136 line alternative to plone.{app.,}caching that includes policy
import datetime
import Acquisition
from zope import interface
from zope import component
import plone.postpublicationhook.interfaces
#from collective.skinny.interfaces import IPublicLayer