Skip to content

Instantly share code, notes, and snippets.

View timothycrosley's full-sized avatar
🤔
Next experiment incoming

Timothy Edmund Crosley timothycrosley

🤔
Next experiment incoming
View GitHub Profile
@timothycrosley
timothycrosley / chainable.py
Created March 18, 2016 07:35
Chainable Routing
import hug
api = hug.get(on_invalid=hug.redirect.not_found)
@api.urls('/do-math', examples='number_1=1&number_2=2')
def math(number_1: hug.types.number, number_2: hug.types.number):
return number_1 + number_2
@timothycrosley
timothycrosley / class_based.py
Created March 18, 2016 08:01
Class based routing
import hug
# As a pattern for reuse
@hug.object.urls('/endpoint', requires=())
class MyClass(object):
@hug.object.get()
def my_method(self):
return 'hi there!'
@timothycrosley
timothycrosley / exception.py
Last active April 1, 2016 09:09
Custom Exception handling
import hug
from project import exceptions
@hug.exception((exceptions.CustomExceptionTypeOne, exceptions.CustomExceptionTypeTwo))
def handle_custom_exceptions(exception):
# handles the passed in custom exception, able to return a different response here:
return {'error': 'No error here!'}
%cpaste
import time
class Test(object):
__slots__ = ('a', 'b', 'c')
def __init__(self):
self.a = 1
self.b = 1
self.c = 1
my_favorite_numbers = []
for number in range(10):
if number == 7 or number == 42:
my_favorite_numbers.append(number)
my_favorite_numbers = [number for number in range(10) if number == 7 or number == 42]
# Classes
class Person(object):
def contact(self):
self.email()
self.call()
def email(self):
from peewee import TextField
class BetterUUID(TextField):
"""Stores a uuid only defining it if it doesn't already exist"""
def db_value(self, value):
if not value:
value = uuid.uuid4()
return value
fn main() {
let x = the_world_is_not_safe();
}
unsafe fn the_world_is_not_safe() -> String {
String::from("Hello, world!")
}
import sys
with open(sys.argv[1]) as file:
print(file.read())
@hug.cli(validate=contains_one_of('argument_one', 'argument_two')) # you can combine these to make more then one mutually exclusive group
def mutually_exclusive_group(argument_one: type, argument_two: type):
pass