Instantly share code, notes, and snippets.

View general.json
{
"category_name": "General",
"todos": [
{
"task": "My TODO Task",
"due_on": null,
"status": "pending",
"description": null
},
{
View README.md

Download HumbleBundle books

This is a quick Python script I wrote to download HumbleBundle books in batch. I bought the amazing Machine Learning by O'Reilly bundle. There were 15 books to download, with 3 different file formats per book. So I scratched a quick script to download all of them in batch.

(Final Result: books downloaded)

View failure.py
from concurrent.futures import ProcessPoolExecutor
class CheckOnlyIntegers:
def __init__(self, fn):
self.fn = fn
def __call__(self, *args):
if not all([type(arg) == int for arg in args]):
raise ValueError("Invalid param is not an integer")
View decorator_process_executor.py
import functools
from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor
def check_only_integers(fn):
"""Very simple decorator that prevents other than integers to be passed
to the decorated function. Just for demonstration purposes.
"""
@functools.wraps(fn)
def wrapped(*args):
View parallel_generators.py
def get_repo_stars(org, repo):
url = 'https://api.github.com/repos/{org}/{repo}'.format(
org=org, repo=repo)
print("GET ", url)
resp = requests.get(url)
return resp.json()['stargazers_count']
params = [
('requests', 'requests'),
('requests', 'httpbin'),
View executor_test_1.py
"""
This one "Doesn't" work. Seems like `map` doesn't play well with
`as_completed`.
"""
import time
import random
from concurrent.futures import ThreadPoolExecutor, as_completed
def my_sleep(n=1000):
View pusher_django_strategy.py
from django.http import HttpResponseForbidden
from django.http import JsonResponse
from pusher import Pusher
class PusherAuthStrategy:
def __init__(self, namespace):
self.namespace = namespace
View parse_timedeltas.py
import re
TIMEDELTA_REGEX = (r'((?P<days>-?\d+)d)?'
r'((?P<hours>-?\d+)h)?'
r'((?P<minutes>-?\d+)m)?')
TIMEDELTA_PATTERN = re.compile(TIMEDELTA_REGEX, re.IGNORECASE)
def parse_delta(delta):
View timezone_options.py
from datetime import datetime, date, time, timedelta
from pytz import timezone
START_DATE = date(2017, 10, 9)
START_TIME = time(8, 0)
START_DATETIME = datetime.combine(START_DATE, START_TIME)
INTERVAL_IN_HOURS = 2
OPTION_TEMPLATE = "{start} - {end} ({tz})"
View scala_tuples_in_python.py
class Tuple(tuple):
def __getattr__(self, name):
def _int(val):
try:
return int(val)
except ValueError:
return False
if not name.startswith('_') or not _int(name[1:]):
raise AttributeError("'tuple' object has no attribute '%s'" % name)