Skip to content

Instantly share code, notes, and snippets.

View justanr's full-sized avatar
🏴

anr (they/them) justanr

🏴
View GitHub Profile
@justanr
justanr / cap.py
Created August 13, 2014 11:00
Cards Against Python
from collections import namedtuple, deque
from random import shuffle
from functools import partial
from itertools import chain
WhiteCard = namedtuple('WhiteCard', 'text', verbose=False)
BlackCard = namedtuple('BlackCard', ['text', 'pick', 'draw'], verbose=False)
white_text = ['itertools', 'functools', 'fibonacci sequence', 'WSGI',
'a list comphrension', 'Javascript', 'RESTful', 'C++',
@justanr
justanr / primes.py
Created November 2, 2014 13:00
Finding Primes and Factorization
from itertools import takewhile
def sieve(n):
"""Sieve of Eratosthenes
Returns a list of primes from 2 to n.
"""
if n < 2:
return []
Warning: JAVA_HOME environment variable is not set.
Fetching / updating 3 artifacts and their dependencies
Exception in thread "main" java.lang.UnsupportedClassVersionError: jove/xsbti/ArtifactInfo : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/<page_name>')
@app.route('/', defaults={'page_name': 'index'})
def page(page_name):
return render_template(page_name, {'page_name': page_name})
var WeaponList = React.createClass({
render: function() {
return (<ul className="list-unstyled">
<li>
<Weapon name="flail" attrs={["1d8 bludgeoning;"]} />
</li>
<li>
<Weapon name="morning star" attrs={["1d8 piercing;"]} />
</li>
</ul>
@justanr
justanr / base_permissions.py
Last active August 29, 2015 14:27
Proposal: FlaskBB Permissions
import operator
from inspect import isclass, isfunction
def _is_permission_factory(perm):
return isclass(perm) or isfunction(perm)
class Permission(object):
"Base permission class"
def allow(self, user, request, *args, **kwargs):
@justanr
justanr / ball_of_mud.py
Last active September 11, 2015 16:43
Simple user registration in three styles
@expose('/register/', method=['POST']
def create_new_user():
form = NewUserForm()
username, password, email = form.data.username, form.data.password, form.data.email
if User.query.filter_by(User.username == username).first():
return {'success': False, 'reason': 'Username in use already'}
elif User.query.filter(User.email == email).first():
@justanr
justanr / criterion.py
Last active September 14, 2015 12:39
Simple Criteria Filtering
from functools import singledispatch
from abc import ABCMeta, abstractmethod
class CriterionMeta(ABCMeta):
def __new__(mcls, name, bases, attrs):
dispatcher = singledispatch(attrs['_default'])
attrs.update({'_dispatcher': dispatcher, 'register': dispatcher.register})
return super(CriterionMeta, mcls).__new__(mcls, name, bases, attrs)
@justanr
justanr / actually_do_the_thing.py
Last active September 17, 2015 17:17
Todo: Support loading from arbitrary data store (yaml, xml, Mongo, etc)
from .command_bus import DefaultCommandBus, ValidatingCommandBus, LoggingCommandBus, SupportsSelfExecution
from .command_name_formatters import (ChangeToOn_CommandName, ChangeToLowerCaseCommandName,
RemoveCommandFromName, MultipleCommandNameFormatter)
from .command_validators import LogsFailedValidationsValidator, GenerousMappingCommandValidator
from .commands import HelloPersonCommand, HelloPersonHandler
from .dependencies import DependencyStore, BasicDependencySatsifier
from .displayer import CallableDisplayer
from .formatter import StringFormatter
from .inflector import (CallableOrNextInflector, DefaultInflector, InstantiatingInflector
CommandNameInflector, MultipleCommandNameInflector, FirstOneWinsInflector)
class UserNotFound(Exception):
@classmethod
def by_username(cls, username):
return cls("No user found with username: {0}".format(username))
def find_user(username):
user = User.query.filter_by(username==username).first()
if not user:
raise UserNotFound.by_username(username)
return user