Skip to content

Instantly share code, notes, and snippets.

🎯
Focusing

Antonio Lima themiurgo

Block or report user

Report or block themiurgo

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View word_generator.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
"""This script was used to generate random test files for the course
of Computer Networks 2014 at University of Birmingham, Computer Science.
Author: Antonio Lima
License: WTFPL
"""
View csvtable.py
import csv
import os
from collections import namedtuple
def read_csv(fname, tabname=None, names=None, headers=True):
with open(fname, "r") as fobj:
if not tabname:
full_basename = os.path.basename(fname)
basename, ext = os.path.splitext(full_basename)
tabname = basename.capitalize()
@themiurgo
themiurgo / ndjpaste.py
Created Apr 1, 2015
Paste for NDJSON documents
View ndjpaste.py
import sys
import json
import itertools
fnames = sys.argv[1:]
jsons = [(json.loads(i) for i in open(fname)) for fname in fnames]
def paste(iterables):
for docs in itertools.izip_longest(*iterables, fillvalue={}):
@themiurgo
themiurgo / ratelim.py
Created Jun 27, 2012
Rate limit decorator
View ratelim.py
import time
import datetime
class rate_limited(object):
def __init__(self, max_calls, time_interval):
assert max_calls > 0
assert time_interval > 0
self.__last_reset = None
self.__max_calls = max_calls
self.__time_interval = time_interval # seconds
@themiurgo
themiurgo / elapsed_since_last_update.sh
Created Jun 29, 2012
Seconds elapsed since last update of a file
View elapsed_since_last_update.sh
# FILL FILENAME
# Return the seconds from last modification of a file, among a list of files
file=$(ls FILENAME -hant --time-style +%s | head -n1 | awk '{print $6}' ) ; now=$(date +%s); echo $((now-file))
@themiurgo
themiurgo / geocoder.py
Created Jul 18, 2012
A Google Geocoder with a MongoDB memoizer. For the ratelim module, look at https://gist.github.com/3006305
View geocoder.py
import collections
import time
import requests
import pymongo
import ratelim
import textwrap
G_GEO_SUCCESS = 200
G_GEO_SERVER_ERROR = 500
G_GEO_MISSING_QUERY = 601
@themiurgo
themiurgo / convert_all_gzipped.sh
Created Sep 25, 2012
Convert a one-line stream of JSON objects into a newline separated (multiline) stream
View convert_all_gzipped.sh
#/bin/bash
# Fix all the files and puts them in a 'fixed' subdirectory
mkdir fixed
for f in *.gz; do gunzip -c $f | ruby jsonsm.rb | gzip -c > fixed/$f; done
@themiurgo
themiurgo / mapquest_geocoder.py
Created Sep 10, 2013
MapQuest bulk geocoder
View mapquest_geocoder.py
import requests
API_KEY = "" # FILL THIS
class Geocoder(object):
endpoint = "http://www.mapquestapi.com/geocoding/v1/batch"
endpoint = "http://open.mapquestapi.com/geocoding/v1/batch"
def __init__(self, api_key):
self.api_key = api_key
View notebook.html
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>2015-01-18 Python and Folium</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<style type="text/css">
/*!
@themiurgo
themiurgo / folium_embed.py
Created May 29, 2015
Embed folium maps in iPython
View folium_embed.py
def embed(fmaps, width='100%', height='510px', *args, **kwargs):
"""
Embeds a folium map in a IPython/Jupyter notebook.
This method will not work if the map depends on any files (json data). Also this uses
the HTML5 srcdoc attribute, which may not be supported in all browsers.
fmaps -- a single folium map or an iterable containing folium maps
"""
You can’t perform that action at this time.