Skip to content

Instantly share code, notes, and snippets.

View justanr's full-sized avatar
🏴

anr (they/them) justanr

🏴
View GitHub Profile
@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)
@justanr
justanr / commandbus.py
Last active May 24, 2016 04:10
Basic Command Bus example
import inspect
class HandlerNotFound(Exception):
pass
class BasicCommandBus(object):
def execute(self, command):
@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 / 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 / base_repository.py
Last active May 24, 2016 04:13
Toy Repository
from operator import attrgetter
from hashlib import md5 # because it's fast
class BaseRepository(object):
def find(self, pk):
raise NotImplementedError()
def find_by(self, **keys):
raise NotImplementedError()
@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):
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>
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})
@justanr
justanr / app.py
Last active February 15, 2018 12:30
Quotly
from flask import Flask, request
from flask.ext.restful import Resource, Api
from flask.ext.sqlalchemy import SQLAlchemy
from marshmallow import Schema, post_dump
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///quotes.db'
api = Api(app)
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)