concurrency examples

This commit is contained in:
Luciano Ramalho
2015-02-02 14:07:35 -02:00
parent ab6ce5b6a4
commit 70163d2deb
13 changed files with 131 additions and 56 deletions

View File

@@ -0,0 +1,64 @@
import sys
import argparse
import os
from daypicts import get_picture_url, validate_date, gen_dates
from daypicts import NoPictureForDate
from daypicts import POTD_PATH
FIXTURE_DIR = 'fixture/'
def parse_args(argv):
parser = argparse.ArgumentParser(description=main.__doc__)
date_help = 'YYYY-MM-DD or YYYY-MM or YYYY: year, month and day'
parser.add_argument('date', help=date_help)
args = parser.parse_args(argv)
try:
iso_parts = validate_date(args.date)
except ValueError as exc:
print('error:', exc.args[0])
parser.print_usage()
sys.exit(2)
dates = list(gen_dates(iso_parts))
if len(dates) == 1:
print('-> Date: ', dates[0])
else:
fmt = '-> {} days: {}...{}'
print(fmt.format(len(dates), dates[0], dates[-1]))
return dates, args
def save_picture_urls(dates, save_path):
for date in dates:
try:
url = get_picture_url(date)
except NoPictureForDate as exc:
snippet = repr(exc)
else:
snippet = url.replace('http://', 'src="//') + '"'
print(date, end=' ')
print(snippet)
with open(os.path.join(save_path, date), 'w') as fp:
fp.write(snippet)
def main(argv):
"""Build test fixture from Wikipedia "POTD" data"""
save_path = os.path.join(FIXTURE_DIR,POTD_PATH)
try:
os.makedirs(save_path)
except FileExistsError:
pass
dates, args = parse_args(argv)
save_picture_urls(dates, save_path)
if __name__ == '__main__':
main(sys.argv[1:])