Skip to content

Instantly share code, notes, and snippets.

@hamx0r
hamx0r / memcache_source.py
Last active February 4, 2018 19:40
Zipline Data Source which pulls from Memecache
""" MemcacheDataSource Class to pull data from memcache on demand for a simulation, minimizing data load time for a
simulation, and allowing Memcached stock data to be shared by multiple parallel simulations.
The MemCacheData class implements methods to act in compliance with the `zipline.algorithm.TradingAlgorithm.sources`
object: https://github.com/quantopian/zipline/blob/0.9.0/zipline/algorithm.py
This means implementing the following methods (with line numbers per v0.9.0 linked above):
* `sids` (Line 562)
* iterator (or generator) methods (439) like:
- '__iter__'
@hamx0r
hamx0r / welford.py
Last active March 12, 2018 06:53 — forked from alexalemi/welford.py
Python Welford Algorithm
import math
class Welford(object):
""" Implements Welford's algorithm for computing a running mean
and standard deviation as described at:
http://www.johndcook.com/standard_deviation.html
can take single values or iterables
Properties:
mean - returns the mean
/*
Copyright 2011 Martin Hawksey
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
@hamx0r
hamx0r / simple_python_datasource.py
Last active December 17, 2018 23:26 — forked from linar-jether/simple_python_datasource.py
Grafana python 3 datasource - using pandas for timeseries and table data. inspired by and compatible with the simple json datasource
"""
Uses `flask_restful` and creates a Blueprint to be used by a parent project (ie a larger API project where
`/grafana/` endpoints are used by Grafana's SimpleJson plugin)
"""
from flask import Flask, request, jsonify, json, abort, Blueprint
from flask_cors import CORS, cross_origin
import flask_restful
import pandas as pd
@hamx0r
hamx0r / Reuleauxs_labyrinth.py
Last active August 26, 2024 02:25
Triangular labyrinth calculator
"""
Given a labyrinth bounded in Reuleaux's Triangle (or any triangle), let each V be any of the 3 vertices
and C be any of the 7 circuits. There are 3*7=21 segments in this labyrinth, and a path through it can be described
by going from one point (v_i, c_j) to some other point (v_k, c_l) where the following rules apply:
1. From a given starting point, one can either
a. traverse along the same circuit but different vertice (ie j = l), or
b. switch back along a neighboring circuit (ie l = c +/- 1)
2. Each segment can be traversed only once, implying points can be arrived at more than once only if as a switchback
in a neighboring tridant