X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Futils%2Futils.py;h=cb672639e2e780d06187f641b9b0ac0c5d84ebe7;hb=1a178217e8efd3b2b523afb93775124baf1be05f;hp=cc81f61643153ffec7d9c56b325fb74c2f27bd2f;hpb=e86c25ed9e97c5dd3e0672d5b17bed01d4a23fdf;p=mpd-sima.git diff --git a/sima/utils/utils.py b/sima/utils/utils.py index cc81f61..cb67263 100644 --- a/sima/utils/utils.py +++ b/sima/utils/utils.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (c) 2010, 2011, 2013, 2014, 2015, 2020, 2021 kaliko +# Copyright (c) 2010, 2011, 2013, 2014, 2015, 2020, 2021, 2024 kaliko # # This file is part of sima # @@ -131,16 +131,16 @@ class Wfile(FileAction): """ def checks(self): if isdir(self._file): - self.parser.error('need a file not a directory: {}'.format(self._file)) + self.parser.error(f'need a file not a directory: {self._file}') if not exists(self._dir): - self.parser.error('directory does not exist: {0}'.format(self._dir)) + self.parser.error(f'directory does not exist: {self._dir}') if not exists(self._file): # Is parent directory writable then if not access(self._dir, W_OK): - self.parser.error('no write access to "{0}"'.format(self._dir)) + self.parser.error(f'no write access to "{self._dir}"') else: if not access(self._file, W_OK): - self.parser.error('no write access to "{0}"'.format(self._file)) + self.parser.error(f'no write access to "{self._file}"') class Rfile(FileAction): @@ -149,11 +149,11 @@ class Rfile(FileAction): """ def checks(self): if not exists(self._file): - self.parser.error('file does not exist: {0}'.format(self._file)) + self.parser.error(f'file does not exist: {self._file}') if not isfile(self._file): - self.parser.error('not a file: {0}'.format(self._file)) + self.parser.error(f'not a file: {self._file}') if not access(self._file, R_OK): - self.parser.error('no read access to "{0}"'.format(self._file)) + self.parser.error(f'no read access to "{self._file}"') class Wdir(FileAction): @@ -162,11 +162,11 @@ class Wdir(FileAction): """ def checks(self): if not exists(self._file): - self.parser.error('directory does not exist: {0}'.format(self._file)) + self.parser.error(f'directory does not exist: {self._file}') if not isdir(self._file): - self.parser.error('not a directory: {0}'.format(self._file)) + self.parser.error(f'not a directory: {self._file}') if not access(self._file, W_OK): - self.parser.error('no write access to "{0}"'.format(self._file)) + self.parser.error(f'no write access to "{self._file}"') class Throttle: @@ -214,5 +214,21 @@ class WSHTTPError(WSError): class PluginException(MPDSimaException): pass + +# Wrap Exception decorator +def get_decorator(errors=(OSError, TimeoutError), wrap_into=Exception): + def decorator(func): + def w_func(*args, **kwargs): + try: + return func(*args, **kwargs) + except errors as err: + strerr = str(err) + if hasattr(err, 'strerror'): + if err.strerror: + strerr = err.strerror + raise wrap_into(strerr) from err + return w_func + return decorator + # VIM MODLINE # vim: ai ts=4 sw=4 sts=4 expandtab