Skip to content

Instantly share code, notes, and snippets.

@jul
Created May 7, 2012 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jul/2628057 to your computer and use it in GitHub Desktop.
Save jul/2628057 to your computer and use it in GitHub Desktop.
pypi-stat query
!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
mixed query on stat file
"""
from os import environ, path
from json import load
import datetime as dt
import time
__all__ = [ 'all_package', "data_for" ]
def generate(
_map = lambda x : x,
_reduce = lambda x,y : x+y,
_filter = lambda x: True
):
saved=path.join(environ["HOME"], ".pipy.stat.json" )
with open(saved) as f:
return reduce(
_reduce,
map(
_map,
filter(
_filter,
sorted(
load(f),
key = lambda x : x["date"], reverse = True
)
)
)
)
def date_to_js_timestamp(_date_str):
"""convert YYYY-MM-DD in javascript timestamp format"""
return int(
time.mktime(
dt.date(
*[ int(i) for i in _date_str.split("-") ]
).timetuple()
)*1000
)
all_package = lambda : generate(lambda x : set( [ x['name'] ] ),set.union)
data_for = lambda package,key : generate(
lambda x : [ (
date_to_js_timestamp( x['date']),
x[key]
) ],
list.__add__,
lambda x : x['name'] == package
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment