Skip to content

Commit cc95631

Browse files
committed
Fix various linting warnings
1 parent 8d98346 commit cc95631

22 files changed

+189
-234
lines changed

docs/conf.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# -*- coding: utf-8 -*-
2-
#
31
# python-logstash-async documentation build configuration file, created by
42
# sphinx-quickstart on Sun Dec 25 04:59:44 2016.
53
#

example1.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
# -*- coding: utf-8 -*-
2-
31
import logging
42
import sys
53

64
from logstash_async.handler import AsynchronousLogstashHandler
75

6+
87
host = 'localhost'
98
port = 5959
109

@@ -21,7 +20,7 @@
2120
try:
2221
1 / 0
2322
except Exception as e:
24-
test_logger.exception(u'Exception: %s', e)
23+
test_logger.exception('Exception: %s', e)
2524

2625
# add extra field to logstash message
2726
extra = {

example2.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
# -*- coding: utf-8 -*-
2-
31
import logging
42
import sys
53

64
from logstash_async.handler import AsynchronousLogstashHandler
75

6+
87
host = 'localhost'
98
port = 5959
109

example3.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
# -*- coding: utf-8 -*-
2-
31
import logging
42

53
from logstash_async.handler import AsynchronousLogstashHandler
64

5+
76
host = 'localhost'
87
port = 5959
98

logstash_async/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# -*- coding: utf-8 -*-
2-
#
31
# This software may be modified and distributed under the terms
42
# of the MIT license. See the LICENSE file for details.
53

logstash_async/cache.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# -*- coding: utf-8 -*-
2-
#
31
# This software may be modified and distributed under the terms
42
# of the MIT license. See the LICENSE file for details.
53

@@ -20,7 +18,6 @@ def add_event(self, event):
2018
:param str event: A log message
2119
:return:
2220
"""
23-
pass
2421

2522
# ----------------------------------------------------------------------
2623
@abstractmethod
@@ -29,7 +26,6 @@ def get_queued_events(self):
2926
3027
:return: A list of events to be published
3128
"""
32-
pass
3329

3430
# ----------------------------------------------------------------------
3531
@abstractmethod
@@ -42,7 +38,6 @@ def requeue_queued_events(self, events):
4238
:param events:
4339
:return:
4440
"""
45-
pass
4641

4742
# ----------------------------------------------------------------------
4843
@abstractmethod
@@ -51,7 +46,6 @@ def delete_queued_events(self):
5146
5247
:return:
5348
"""
54-
pass
5549

5650
# ----------------------------------------------------------------------
5751
@abstractmethod
@@ -60,7 +54,6 @@ def expire_events(self):
6054
6155
:return:
6256
"""
63-
pass
6457

6558
# ----------------------------------------------------------------------
6659
@abstractmethod
@@ -69,4 +62,3 @@ def get_non_flushed_event_count(self):
6962
7063
:return: Count of pending events
7164
"""
72-
pass

logstash_async/constants.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# -*- coding: utf-8 -*-
2-
#
31
# This software may be modified and distributed under the terms
42
# of the MIT license. See the LICENSE file for details.
53

logstash_async/database.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
# -*- coding: utf-8 -*-
2-
#
31
# This software may be modified and distributed under the terms
42
# of the MIT license. See the LICENSE file for details.
53

6-
from contextlib import contextmanager
74
import sqlite3
85
import sys
6+
from contextlib import contextmanager
97

108
from logstash_async.cache import Cache
119
from logstash_async.constants import constants
@@ -102,9 +100,9 @@ def _handle_sqlite_error(self):
102100
raise DatabaseLockedError from exc
103101
if str(exc) == 'disk I/O error':
104102
raise DatabaseDiskIOError from exc
105-
if str(exc) == "unable to open database file":
103+
if str(exc) == 'unable to open database file':
106104
raise DatabaseDiskIOError from exc
107-
if str(exc) == "attempt to write a readonly database":
105+
if str(exc) == 'attempt to write a readonly database':
108106
raise DatabaseDiskIOError from exc
109107

110108
# ----------------------------------------------------------------------
@@ -147,8 +145,8 @@ def expire_events(self):
147145
if self._event_ttl is None:
148146
return
149147

150-
query_delete = "DELETE FROM `event` WHERE " \
151-
f"`entry_date` < datetime('now', '-{self._event_ttl} seconds');"
148+
query_delete = ("DELETE FROM `event` WHERE " # noqa: S608
149+
f"`entry_date` < datetime('now', '-{self._event_ttl} seconds');")
152150
with self._connect() as connection:
153151
cursor = connection.cursor()
154152
cursor.execute(query_delete)
@@ -157,11 +155,11 @@ def expire_events(self):
157155
def vacuum(self):
158156
with self._connect() as connection:
159157
cursor = connection.cursor()
160-
cursor.execute("VACUUM;")
158+
cursor.execute('VACUUM;')
161159

162160
# ----------------------------------------------------------------------
163161
def get_non_flushed_event_count(self):
164-
query_fetch = '''SELECT count(*) FROM `event` WHERE `pending_delete` = 0;'''
162+
query_fetch = 'SELECT count(*) FROM `event` WHERE `pending_delete` = 0;'
165163
with self._connect() as connection:
166164
cursor = connection.cursor()
167165
cursor.execute(query_fetch)

logstash_async/formatter.py

Lines changed: 60 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
# -*- coding: utf-8 -*-
2-
#
31
# This software may be modified and distributed under the terms
42
# of the MIT license. See the LICENSE file for details.
53

6-
from datetime import date, datetime
74
import importlib.metadata
85
import logging
96
import socket
107
import sys
118
import time
129
import traceback
1310
import uuid
11+
from datetime import date, datetime, UTC
1412

13+
import logstash_async
1514
from logstash_async.constants import constants
1615
from logstash_async.utils import normalize_ecs_dict
17-
import logstash_async
1816

1917

2018
try:
@@ -142,7 +140,7 @@ def _format_to_dict(self, record):
142140

143141
# ----------------------------------------------------------------------
144142
def _format_timestamp(self, time_):
145-
timestamp = datetime.utcfromtimestamp(time_)
143+
timestamp = datetime.fromtimestamp(time_, UTC)
146144
formatted_timestamp = timestamp.strftime('%Y-%m-%dT%H:%M:%S')
147145
microsecond = int(timestamp.microsecond / 1000)
148146
return f'{formatted_timestamp}.{microsecond:03}Z'
@@ -168,47 +166,47 @@ def _value_repr(self, value):
168166

169167
# ----------------------------------------------------------------------
170168
def _get_primary_fields(self, record):
171-
Schema = self.MessageSchema
169+
schema = self.MessageSchema
172170
primary_fields = {
173-
Schema.TIMESTAMP: self._format_timestamp(record.created),
174-
Schema.VERSION: '1',
175-
Schema.HOST: self._host,
176-
Schema.LOG_LEVEL: record.levelname,
177-
Schema.LOG_SOURCE: self._logsource,
178-
Schema.MESSAGE: record.getMessage(),
179-
Schema.PID: record.process,
180-
Schema.PROGRAM: self._program_name,
181-
Schema.MESSAGE_TYPE: self._message_type,
171+
schema.TIMESTAMP: self._format_timestamp(record.created),
172+
schema.VERSION: '1',
173+
schema.HOST: self._host,
174+
schema.LOG_LEVEL: record.levelname,
175+
schema.LOG_SOURCE: self._logsource,
176+
schema.MESSAGE: record.getMessage(),
177+
schema.PID: record.process,
178+
schema.PROGRAM: self._program_name,
179+
schema.MESSAGE_TYPE: self._message_type,
182180
}
183181
if self._metadata:
184-
primary_fields[Schema.METADATA] = self._metadata
182+
primary_fields[schema.METADATA] = self._metadata
185183
if self._tags:
186-
primary_fields[Schema.TAGS] = self._tags
184+
primary_fields[schema.TAGS] = self._tags
187185
return primary_fields
188186

189187
# ----------------------------------------------------------------------
190188
def _get_extra_fields(self, record):
191-
Schema = self.MessageSchema
189+
schema = self.MessageSchema
192190
extra_fields = {
193-
Schema.FUNC_NAME: record.funcName,
194-
Schema.INTERPRETER: self._interpreter,
195-
Schema.INTERPRETER_VERSION: self._interpreter_version,
196-
Schema.LINE: record.lineno,
197-
Schema.LOGGER_NAME: record.name,
198-
Schema.LOGSTASH_ASYNC_VERSION: logstash_async.__version__,
199-
Schema.PATH: record.pathname,
200-
Schema.PROCESS_NAME: record.processName,
201-
Schema.THREAD_NAME: record.threadName,
191+
schema.FUNC_NAME: record.funcName,
192+
schema.INTERPRETER: self._interpreter,
193+
schema.INTERPRETER_VERSION: self._interpreter_version,
194+
schema.LINE: record.lineno,
195+
schema.LOGGER_NAME: record.name,
196+
schema.LOGSTASH_ASYNC_VERSION: logstash_async.__version__,
197+
schema.PATH: record.pathname,
198+
schema.PROCESS_NAME: record.processName,
199+
schema.THREAD_NAME: record.threadName,
202200
}
203201
# static extra fields
204202
if self._extra:
205203
extra_fields.update(self._extra)
206204
if getattr(record, 'taskName', None):
207-
extra_fields[Schema.TASK_NAME] = record.taskName
205+
extra_fields[schema.TASK_NAME] = record.taskName
208206
# exceptions
209207
if record.exc_info:
210-
extra_fields[Schema.ERROR_TYPE] = record.exc_info[0].__name__
211-
extra_fields[Schema.STACK_TRACE] = self._format_exception(record.exc_info)
208+
extra_fields[schema.ERROR_TYPE] = record.exc_info[0].__name__
209+
extra_fields[schema.STACK_TRACE] = self._format_exception(record.exc_info)
212210
return extra_fields
213211

214212
# ----------------------------------------------------------------------
@@ -279,8 +277,8 @@ def __init__(self, *args, **kwargs):
279277

280278
def _get_primary_fields(self, record):
281279
message = super()._get_primary_fields(record)
282-
Schema = self.MessageSchema
283-
message[Schema.ECS_VERSION] = self.ecs_version
280+
schema = self.MessageSchema
281+
message[schema.ECS_VERSION] = self.ecs_version
284282
return message
285283

286284
def _format_to_dict(self, record):
@@ -323,10 +321,10 @@ def _fetch_django_version(self):
323321
# ----------------------------------------------------------------------
324322
def _get_extra_fields(self, record):
325323
extra_fields = super()._get_extra_fields(record)
326-
Schema = self.MessageSchema
324+
schema = self.MessageSchema
327325

328326
if hasattr(record, 'status_code'):
329-
extra_fields[Schema.RESP_STATUS_CODE] = record.status_code
327+
extra_fields[schema.RESP_STATUS_CODE] = record.status_code
330328

331329
# Django's runserver command passes socketobject and WSGIRequest instances as "request".
332330
# Hence the check for the META attribute.
@@ -335,34 +333,34 @@ def _get_extra_fields(self, record):
335333
request = record.request
336334

337335
request_user = self._get_attribute_with_default(request, 'user', '')
338-
extra_fields[Schema.DJANGO_VERSION] = self._django_version
339-
extra_fields[Schema.REQ_USER_AGENT] = request.META.get('HTTP_USER_AGENT', '<none>')
340-
extra_fields[Schema.REQ_REMOTE_ADDRESS] = request.META.get('REMOTE_ADDR', '<none>')
341-
extra_fields[Schema.REQ_HOST] = self._try_to_get_host_from_remote(request)
342-
extra_fields[Schema.REQ_URI] = self._try_to_get_full_request_uri(request)
343-
extra_fields[Schema.REQ_USER] = str(request_user)
344-
extra_fields[Schema.REQ_METHOD] = request.META.get('REQUEST_METHOD', '')
345-
extra_fields[Schema.REQ_REFERER] = request.META.get('HTTP_REFERER', '')
336+
extra_fields[schema.DJANGO_VERSION] = self._django_version
337+
extra_fields[schema.REQ_USER_AGENT] = request.META.get('HTTP_USER_AGENT', '<none>')
338+
extra_fields[schema.REQ_REMOTE_ADDRESS] = request.META.get('REMOTE_ADDR', '<none>')
339+
extra_fields[schema.REQ_HOST] = self._try_to_get_host_from_remote(request)
340+
extra_fields[schema.REQ_URI] = self._try_to_get_full_request_uri(request)
341+
extra_fields[schema.REQ_USER] = str(request_user)
342+
extra_fields[schema.REQ_METHOD] = request.META.get('REQUEST_METHOD', '')
343+
extra_fields[schema.REQ_REFERER] = request.META.get('HTTP_REFERER', '')
346344

347345
forwarded_proto = request.META.get('HTTP_X_FORWARDED_PROTO', None)
348346
if forwarded_proto is not None:
349-
extra_fields[Schema.REQ_FORWARDED_PROTO] = forwarded_proto
347+
extra_fields[schema.REQ_FORWARDED_PROTO] = forwarded_proto
350348

351349
forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR', None)
352350
if forwarded_for is not None:
353351
# make it a list
354352
forwarded_for_list = forwarded_for.replace(' ', '').split(',')
355-
extra_fields[Schema.REQ_FORWARDED_FOR] = forwarded_for_list
353+
extra_fields[schema.REQ_FORWARDED_FOR] = forwarded_for_list
356354

357355
# template debug
358356
if isinstance(record.exc_info, tuple):
359357
exc_value = record.exc_info[1]
360358
template_info = getattr(exc_value, 'template_debug', None)
361359
if template_info:
362-
extra_fields[Schema.TMPL_NAME] = template_info['name']
363-
extra_fields[Schema.TMPL_LINE] = template_info['line']
364-
extra_fields[Schema.TMPL_MESSAGE] = template_info['message']
365-
extra_fields[Schema.TMPL_DURING] = template_info['during']
360+
extra_fields[schema.TMPL_NAME] = template_info['name']
361+
extra_fields[schema.TMPL_LINE] = template_info['line']
362+
extra_fields[schema.TMPL_MESSAGE] = template_info['message']
363+
extra_fields[schema.TMPL_DURING] = template_info['during']
366364

367365
return extra_fields
368366

@@ -456,37 +454,37 @@ def _get_extra_fields(self, record):
456454
from flask import request
457455

458456
extra_fields = super()._get_extra_fields(record)
459-
Schema = self.MessageSchema
457+
schema = self.MessageSchema
460458

461-
extra_fields[Schema.FLASK_VERSION] = self._flask_version
459+
extra_fields[schema.FLASK_VERSION] = self._flask_version
462460
if request: # request might be unbound in other threads
463-
extra_fields[Schema.REQ_USER_AGENT] = (str(request.user_agent)
461+
extra_fields[schema.REQ_USER_AGENT] = (str(request.user_agent)
464462
if request.user_agent else '')
465-
extra_fields[Schema.REQ_REMOTE_ADDRESS] = request.remote_addr
466-
extra_fields[Schema.REQ_HOST] = request.host.split(':', 1)[0]
467-
extra_fields[Schema.REQ_URI] = request.url
468-
extra_fields[Schema.REQ_METHOD] = request.method
469-
extra_fields[Schema.REQ_REFERER] = request.referrer
463+
extra_fields[schema.REQ_REMOTE_ADDRESS] = request.remote_addr
464+
extra_fields[schema.REQ_HOST] = request.host.split(':', 1)[0]
465+
extra_fields[schema.REQ_URI] = request.url
466+
extra_fields[schema.REQ_METHOD] = request.method
467+
extra_fields[schema.REQ_REFERER] = request.referrer
470468
if 'X-Request-ID' in request.headers:
471-
extra_fields[Schema.REQ_ID] = request.headers.get('X-Request-ID')
469+
extra_fields[schema.REQ_ID] = request.headers.get('X-Request-ID')
472470
if request.remote_user:
473-
extra_fields[Schema.REQ_USER] = request.remote_user
471+
extra_fields[schema.REQ_USER] = request.remote_user
474472

475473
forwarded_proto = request.headers.get('X-Forwarded-Proto', None)
476474
if forwarded_proto is not None:
477-
extra_fields[Schema.REQ_FORWARDED_PROTO] = forwarded_proto
475+
extra_fields[schema.REQ_FORWARDED_PROTO] = forwarded_proto
478476

479477
forwarded_for = request.headers.get('X-Forwarded-For', None)
480478
if forwarded_for is not None:
481479
# make it a list
482480
forwarded_for_list = forwarded_for.replace(' ', '').split(',')
483-
extra_fields[Schema.REQ_FORWARDED_FOR] = forwarded_for_list
481+
extra_fields[schema.REQ_FORWARDED_FOR] = forwarded_for_list
484482

485483
# check if we have a status code somewhere
486484
if hasattr(record, 'status_code'):
487-
extra_fields[Schema.RESP_STATUS_CODE] = record.status_code
485+
extra_fields[schema.RESP_STATUS_CODE] = record.status_code
488486
if hasattr(record, 'response'):
489-
extra_fields[Schema.RESP_STATUS_CODE] = record.response.status_code
487+
extra_fields[schema.RESP_STATUS_CODE] = record.response.status_code
490488

491489
return extra_fields
492490

0 commit comments

Comments
 (0)