Skip to content

Commit 31282aa

Browse files
authored
Merge pull request #26 from keitheis/py3_8
Support Python 3.8
2 parents 3029ed1 + d54c7ae commit 31282aa

7 files changed

Lines changed: 60 additions & 26 deletions

File tree

.travis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ matrix:
1313
- python: 3.6
1414
env: TOXENV=py36
1515
- python: 3.7
16-
sudo: required
17-
dist: xenial
1816
env: TOXENV=py37
17+
- python: 3.8
18+
env: TOXENV=py38
1919
- python: pypy
2020
env: TOXENV=pypy
21-
- python: 3.6
21+
- python: 3.8
2222
env: TOXENV=py2-cover,py3-cover,coverage
2323

2424
install:

CHANGES.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
(Unrelease)
22
===================
33

4+
1.1.0 (2020-02-10)
5+
==================
6+
7+
- Support Python 3.8
8+
- Fix broken ``set_format`` function when formatter argument is given.
9+
410
1.0.0 (2019-04-03)
511
==================
612

alog/__init__.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ def reset_global_alog():
7171

7272

7373
def init_alogger(alog_config, default_root_name=None):
74-
logger = Alogger(default_root_name)
75-
logger.alog_config = alog_config
74+
alogger = Alogger(default_root_name)
75+
alogger.alog_config = alog_config
7676
sh = StreamHandler()
77-
logger.addHandler(sh)
78-
set_format(logger.alog_config['default_format'], logger, is_default=True)
79-
return logger
77+
alogger.addHandler(sh)
78+
set_format(alogger.alog_config['default_format'], alogger, is_default=True)
79+
return alogger
8080

8181

8282
def getLogger(*args, **kwargs):
@@ -116,17 +116,25 @@ def get_level(alogger=None):
116116
return alogger.get_level()
117117

118118

119+
def set_formatter(formatter, alogger=None):
120+
alogger = alogger or default_logger
121+
alogger.set_formatter(formatter)
122+
123+
119124
def set_format(fs, alogger=None, is_default=False,
120125
time_strfmt="%Y-%m-%d %H:%M:%S"):
121126
alogger = alogger or default_logger
122127
alogger.set_format(fs, is_default=is_default, time_strfmt=time_strfmt)
123128

124129

125-
def get_format(logger=None):
126-
logger = logger or default_logger
127-
for handler in logger.handlers:
128-
if handler.formatter:
129-
return handler.formatter
130+
def get_formatter(alogger=None):
131+
alogger = alogger or default_logger
132+
return alogger.get_formatter()
133+
134+
135+
def get_format(alogger=None):
136+
alogger = alogger or default_logger
137+
return alogger.get_format()
130138

131139

132140
def set_root_name(root_name, alogger=None):

alog/alogger.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __init__(self, root_name, *args, **kwargs):
2424
def _alog_fn(self, fn):
2525
if 'ipython-input-' in fn: # pragma: no cover
2626
return "<IPython"
27-
elif fn == '<stdin>': # pragma: no cover
27+
if fn == '<stdin>': # pragma: no cover
2828
return '<stdin'
2929

3030
paths = []
@@ -143,19 +143,31 @@ def get_level(self, logger=None):
143143
return handler.level
144144

145145
def get_format(self, logger=None):
146-
logger = logger or self
147-
for handler in self.handlers:
146+
from warnings import warn
147+
msg = "`get_format()` actually return a Formatter. " \
148+
"Use `get_formatter()` instead."
149+
warn(msg)
150+
alogger = logger or self
151+
return alogger.get_formatter()
152+
153+
def get_formatter(self, logger=None):
154+
alogger = logger or self
155+
for handler in alogger.handlers:
148156
if handler.formatter:
149157
return handler.formatter
150158

159+
def set_formatter(self, formatter, alogger=None):
160+
alogger = alogger or self
161+
for handler in alogger.handlers:
162+
handler.setFormatter(formatter)
163+
151164
def set_format(self, fs, alogger=None, is_default=False,
152165
time_strfmt="%Y-%m-%d %H:%M:%S"):
153166
alogger = alogger or self
154167
formatter = Formatter(fs, time_strfmt) \
155168
if in_python2_runtime \
156169
else Formatter(fs, time_strfmt, "%")
157-
for handler in alogger.handlers:
158-
handler.setFormatter(formatter)
170+
alogger.set_formatter(formatter, alogger=alogger)
159171
if not is_default:
160172
alogger.alog_config['custom_format'] = fs
161173

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
setup(
2323
name='alog',
24-
version='1.0.0',
24+
version='1.1.0',
2525
description='Your goto Python logging without panic on context swtich',
2626
long_description=README + '\n\n' + CHANGES,
2727
url='https://github.com/keitheis/alog',
@@ -42,6 +42,7 @@
4242
'Programming Language :: Python :: 3.5',
4343
'Programming Language :: Python :: 3.6',
4444
'Programming Language :: Python :: 3.7',
45+
'Programming Language :: Python :: 3.8',
4546
"Programming Language :: Python :: Implementation :: CPython",
4647
"Programming Language :: Python :: Implementation :: PyPy",
4748
],

tests/base.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,18 @@ def test_set_level(self):
2525
self._alog.set_level("WARNING")
2626
assert self._alog.get_level() == logging.WARNING
2727

28+
def test_get_formatter(self):
29+
orig_formatter = self._alog.get_formatter()
30+
assert orig_formatter
31+
self._alog.set_formatter(orig_formatter)
32+
2833
def test_set_format(self):
29-
orig_format = self._alog.get_format()
34+
orig_formatter = self._alog.get_format()
35+
assert orig_formatter
3036
fs = "Test set format: %(asctime)s %(levelname)-5.5s" \
3137
" [%(pathname)s:%(lineno)s] %(message)s"
3238
self._alog.set_format(fs)
33-
self._alog.set_format(orig_format)
39+
self._alog.set_formatter(orig_formatter)
3440

3541
def test_set_root_name(self):
3642
self._alog.set_root_name("alog")
@@ -63,15 +69,15 @@ def test_turn_logging_thread_name(self):
6369
self._alog.turn_logging_thread_name(True)
6470

6571
def test_turn_logging_thread_name_with_custom_format(self):
66-
self._alog.set_format("blah")
72+
self._alog.set_format("blah %(test)s")
6773
self._alog.turn_logging_thread_name(True)
6874

6975
def test_turn_logging_process_id_with_custom_format(self):
70-
self._alog.set_format("blah")
76+
self._alog.set_format("blah %(test)s")
7177
self._alog.turn_logging_process_id(True)
7278

7379
def test_turn_logging_datetime_with_custom_format(self):
74-
self._alog.set_format("blah")
80+
self._alog.set_format("blah %(test)s")
7581
self._alog.turn_logging_datetime(True)
7682

7783
def test_not_turn_thread_name(self):

tox.ini

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ basepython =
1212
py35: python3.5
1313
py36: python3.6
1414
py37: python3.7
15+
py38: python3.8
1516
pypy: pypy
1617
py2: python2.7
17-
py3: python3.6
18+
py3: python3.8
1819

1920
passenv = TOXENV CI TRAVIS TRAVIS_*
2021
commands =
@@ -39,7 +40,7 @@ setenv =
3940
COVERAGE_FILE=.coverage.py3
4041

4142
[testenv:coverage]
42-
basepython = python3.6
43+
basepython = python3.8
4344
commands =
4445
coverage erase
4546
coverage combine

0 commit comments

Comments
 (0)