Skip to content

Instantly share code, notes, and snippets.

View markph0204's full-sized avatar

Mark Hurley markph0204

View GitHub Profile
@markph0204
markph0204 / application.py
Created November 1, 2016 23:10
Python hug API ran on AWS Elastic Beanstalk
from main import __hug_wsgi__ as application
# Create a new virtualenv using the last component of path name
# Activate immediately when created
function pyenv_easy_3() {
result=${PWD##*/}
printf 'Create virtualenv for named local path...'
printf '%s\n' $result
pyenv virtualenv 3.6.1 $result
printf 'Setting local to new virtualenv...\n'
pyenv local $result
import requests
from time import sleep
import os
import asyncio
import aiohttp
async def submit_and_wait():
print('Submitting request')
request_url = '<base url>/create_request'
@markph0204
markph0204 / aws-bash-aliases
Created November 20, 2017 18:12
AWS profile management
# create new profile, prior step
# aws configure --profile=name123
# use profile with tools
alias aws_name123='export AWS_PROFILE=name123'
@markph0204
markph0204 / app_list_routes.py
Created December 14, 2017 11:27
Flask list routes
from collections import defaultdict
@app.cli.command("list_routes")
def list_routes():
"""
Roll through Flask's URL rules and print them out
Thank you to Jonathan Tushman
And Thank you to Roger Pence
Sourced http://flask.pocoo.org/snippets/117/ "Helper to list routes (like Rail's rake routes)"
@markph0204
markph0204 / app_handle_errors.py
Last active December 14, 2017 11:31
Handling invalid requests with Flask - Implementing API Exceptions
# http://flask.pocoo.org/docs/0.12/patterns/apierrors/
from flask import jsonify
class InvalidUsage(Exception):
status_code = 400
def __init__(self, message, status_code=None, payload=None):
Exception.__init__(self)
@markph0204
markph0204 / jupyter-notebook-starter.py
Created December 20, 2017 17:31
I normally use notebooks in a `notebooks` sub path in my project repository and often need to import modules that are apart of that project.
import sys
sys.path.append("../") # go to parent dir
from customFunctions import *
# Then, to affect changes in customFunctions.py,
%load_ext autoreload
%autoreload 2
#ref: https://stackoverflow.com/a/42727538/23991
@markph0204
markph0204 / pytest_monkey_open.py
Created June 14, 2018 23:16
Pytest monkey patching builtins open
import builtins
import pytest
from io import StringIO
import yaml
TEST_CONFIG = """
environment: prod
"""
@markph0204
markph0204 / py37-plugins-example
Created June 28, 2018 10:47
Python 3.7 Plugins
from importlib import import_module
from importlib import resources
PLUGINS = dict()
def register_plugin(func):
"""Decorator to register plug-ins"""
name = func.__name__
PLUGINS[name] = func
return func
@markph0204
markph0204 / pygame_mac_latest.sh
Last active December 24, 2018 14:04
Python 3 + VirtualEnv + HighSierra + Pygame 1.9.x (Dev-Dec21) + Xcode 10.1 + Homebrew
# Python 3 + VirtualEnv + HighSierra + Pygame 1.9.x (Dev-Dec21) + Xcode 10.1 + Homebrew
# https://www.pygame.org/wiki/MacCompile
# 1. Install <a href="https://brew.sh">Homebrew</a> -- instructions found here.
# 2. Install XQuartz:
brew install Caskroom/cask/xquartz
# 3. Install Python 3.7.x
brew install python3