Skip to content

Commit 6ba5ad0

Browse files
committed
adding warn/quiet mapping to log_level, adding support for passing logging lib int values for levels directly using Cnopts.log_level
1 parent f448874 commit 6ba5ad0

4 files changed

Lines changed: 21 additions & 10 deletions

File tree

docs/changes.rst

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
Change Log
22
==========
33

4-
1.1.7 (current, released 2025-2-22)
5-
------------------------------------
4+
1.1.8 (current, released 2025-6-13)
5+
-----------------------------------
6+
* added WARN log level to logger, mapped to QUIET in ssh config.
7+
* added support for int values in CnOpts.log_level mapped to python logging.
8+
9+
1.1.7 (released 2025-2-22)
10+
--------------------------
611
* bug fix for host key matching servers running on non default ports
712

813
1.1.6 (released 2024-10-12)

docs/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@
5454
# built documents.
5555
#
5656
# The short X.Y version.
57-
version = '1.1.7'
57+
version = '1.1.8'
5858
# The full version, including alpha/beta/rc tags.
59-
release = '1.1.7'
59+
release = '1.1.8'
6060

6161
# The language for content autogenerated by Sphinx. Refer to documentation
6262
# for a list of supported languages.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ keywords = [
4646
name = 'sftpretty'
4747
readme = 'README.rst'
4848
requires-python = '>=3.6'
49-
version = '1.1.7'
49+
version = '1.1.8'
5050

5151
[project.scripts]
5252
sftpretty = 'sftpretty:Connection'

sftpretty/__init__.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from contextlib import contextmanager
33
from functools import partial
44
from logging import (DEBUG, ERROR, FileHandler, Formatter, getLogger, INFO,
5-
StreamHandler)
5+
StreamHandler, WARN)
66
from os import environ, SEEK_END, utime
77
from paramiko import (Agent, hostkeys, SFTPClient, SSHConfig, Transport,
88
ConfigParseError, PasswordRequiredException,
@@ -49,7 +49,7 @@ class CnOpts(object):
4949
True, creates a temporary file used to capture logs. If set to an
5050
existing filepath, logs will be appended.
5151
:ivar str log_level: *Default: info* - Set logging level for connection.
52-
Choose between debug, error, or info.
52+
Choose between debug, error, info, or warn.
5353
5454
:returns: (obj) CnOpts - Connection options object, used for passing
5555
extended options to a Connection object.
@@ -243,11 +243,16 @@ def _set_authentication(self, password, private_key, private_key_pass):
243243

244244
def _set_logging(self):
245245
'''Set logging location and level for connection'''
246-
level_map = {'debug': DEBUG, 'error': ERROR, 'info': INFO}
246+
level_map = {'debug': DEBUG, 'error': ERROR, 'info': INFO:,
247+
'quiet': WARN, 'warn': WARN, 'warning': WARN}
247248
level = self._config.get('loglevel') or self._cnopts.log_level
248-
level = level_map[level.lower().strip('1,2,3')]
249249

250250
try:
251+
if not isinstance(level, int):
252+
level = level_map[level.lower().strip('1,2,3')]
253+
elif level not in [DEBUG, ERROR, INFO, WARN]:
254+
raise KeyError
255+
251256
global log
252257
log = getLogger('SFTPretty')
253258
if self._cnopts.log:
@@ -269,7 +274,8 @@ def _set_logging(self):
269274
log.setLevel(level)
270275
except KeyError:
271276
raise LoggingException(('Log level must set to one of following: '
272-
'[debug, error, info].'))
277+
'[debug, error, info, quiet, warn, '
278+
f'{DEBUG}, {ERROR}, {INFO}, {WARN}].'))
273279

274280
def _set_username(self, username):
275281
'''Set the username for the connection. If not passed, then look to

0 commit comments

Comments
 (0)