Skip to content

Instantly share code, notes, and snippets.

@jvanasco
jvanasco / unicodedata_test.py
Created February 17, 2012 20:35
drop accented chars (unicode) to ascii equivalents
import unicodedata
accented= {
'czech' : u'ťúůýžšřóňíěéďčá',
'french' : u"ùûüÿàâæçéèêëïîôœ",
'finnish' : u'äåö',
'danish' : u'åæéø',
'german' : u'äöüß',
'hungarian': u'áéíöóőüúű',
'icelandic': u'áæðéíóöþúý',
@jvanasco
jvanasco / errors.py
Created February 19, 2012 01:51
useful python errors
class Error(Exception):
"""Base class for exceptions in this module."""
def __init__(self, value=''):
self.value = value
def __str__(self):
return repr(self.value)
class HereIAm(Error):
@jvanasco
jvanasco / api_internal.py
Created February 24, 2012 00:49
making an api in pyramid, example a
import logging
log = logging.getLogger(__name__)
from pyramid.httpexceptions import HTTPFound
from pyramid.renderers import render_to_response
from pyramid.view import view_config
# all that's necessary to know is that _base sets self.request
from ..lib import handlers as _base
@jvanasco
jvanasco / __init__.py
Created March 6, 2012 03:46
creating a session_https request attribute ( and session ) with pyramid beaker [monkeypatch]
def main(global_config, **settings):
...
...
...
import pyramid
from pyramid_beaker import BeakerSessionFactoryConfig
from beaker.util import coerce_session_params
from pyramid.interfaces import ISessionFactory
from pyramid.decorator import reify
@jvanasco
jvanasco / blocklist.txt
Created March 15, 2012 16:28
blocklist of social / analytics / profiling
# google services
# heavy js + tracking
google-analytics.com
googleadservices.com
doubleclick.net
gstatic.com
plusone.google.com
# social services
# heavy js + tracking
@jvanasco
jvanasco / pyramid_httpfound.py
Created September 17, 2012 21:34
httpfound tests for pyramid
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
from pyramid.httpexceptions import HTTPFound
urls_debug = ('/raise','/return')
def _parse_cookies(items):
return [ (k,v) for (k,v) in items.iteritems() if k.lower() == 'set-cookie']
@jvanasco
jvanasco / defaults.py
Created October 9, 2012 23:09
default argument
def f(a,L=[]):
L.append(a)
return L
for i in range(0,3):
print f(i)
for i in range(3,6):
print f(i)
@jvanasco
jvanasco / recurse.py
Created October 16, 2012 20:16
sum a year
def recurse(number):
as_int = int(number)
if as_int >= 10 :
as_string = str(number)
value = sum(int(i) for i in as_string)
as_int = recurse( value )
return as_int
print recurse(2012)
@jvanasco
jvanasco / pyramid-config-settings.py
Last active December 15, 2015 11:59
Idea for passing in arguments to mako templating
class SettingsSection(Settings):
def __init__(self, settings=None, section_prefix=None, **kw):
if settings is None:
settings = {}
section_prefix_len = len(section_prefix)
section = dict([ (k[section_prefix_len:],v) for k,v in settings.items() if k[:section_prefix_len] == section_prefix ])
for (k,v) in kw.items():
if k not in section:
section[k] = v
dict.__init__(self, **section)
@jvanasco
jvanasco / pyramid_mailer.response.diff
Created May 1, 2013 00:32
Diff of patch to pyramid_mailer
--- a/pyramid_mailer/response.py
+++ b/pyramid_mailer/response.py
@@ -38,6 +38,7 @@ import quopri
import sys
import mimetypes
import string
+import types
from email.mime.base import MIMEBase
try: