X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Futils%2Futils.py;h=8a63f1be291a92d2df863abe15bce0c12da360ac;hb=0c911454ac7f8377003a5f0d90244aa3f06b2695;hp=475a54859305d2dbbff604546a6333b05c97eac6;hpb=78a694ddcd2a6ecc8b2b1fd3c74ee2d938707305;p=mpd-sima.git diff --git a/sima/utils/utils.py b/sima/utils/utils.py index 475a548..8a63f1b 100644 --- a/sima/utils/utils.py +++ b/sima/utils/utils.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (c) 2010, 2011, 2013 Jack Kaliko +# Copyright (c) 2010, 2011, 2013, 2014, 2015 Jack Kaliko # # This file is part of sima # @@ -22,13 +22,14 @@ """ # pylint: disable=C0111 +import logging import traceback import sys from argparse import ArgumentError, Action from base64 import b64decode as push from codecs import getencoder -from datetime import datetime, timedelta +from datetime import datetime from os import environ, access, getcwd, W_OK, R_OK from os.path import dirname, isabs, join, normpath, exists, isdir, isfile from time import sleep @@ -69,8 +70,7 @@ def normalize_path(path): def exception_log(): """Log unknown exceptions""" - import logging - log = logging.getLogger('sima') + log = logging.getLogger(__name__) log.error('Unhandled Exception!!!') log.error(''.join(traceback.format_exc())) log.info('Please report the previous message' @@ -79,20 +79,6 @@ def exception_log(): log.info('Quiting now!') sys.exit(1) -def purge_cache(obj, age=4): - """purge old entries in http client cache - """ - now = datetime.utcnow() - if now.hour == obj.timestamp.hour: - return - obj.timestamp = datetime.utcnow() - cache = obj.cache - delta = timedelta(hours=age) - for url in list(cache.keys()): - timestamp = cache.get(url).created() - if now - timestamp > delta: - cache.pop(url) - class SigHup(Exception): """SIGHUP raises this Exception""" @@ -127,9 +113,11 @@ class Wfile(FileAction): """Is file writable """ def checks(self): + if isdir(self._file): + self.parser.error('need a file not a directory: {}'.format(self._file)) if not exists(self._dir): #raise ArgumentError(self, '"{0}" does not exist'.format(self._dir)) - self.parser.error('file does not exist: {0}'.format(self._dir)) + self.parser.error('directory does not exist: {0}'.format(self._dir)) if not exists(self._file): # Is parent directory writable then if not access(self._dir, W_OK): @@ -177,21 +165,6 @@ class Throttle: return result return wrapper -class Cache: - """Plain cache object""" - def __init__(self, elem, last=None): - self.elem = elem - self.requestdate = last - if not last: - self.requestdate = datetime.utcnow() - - def created(self): - return self.requestdate - - def get(self): - return self.elem - - # http client exceptions (for webservices) class WSError(Exception):