aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/quarg
diff options
context:
space:
mode:
Diffstat (limited to 'quarg')
-rw-r--r--quarg/actions.py1
-rw-r--r--quarg/database/filters.py4
-rw-r--r--quarg/database/tables.py18
-rw-r--r--quarg/main.py8
-rw-r--r--quarg/quassel/formatter.py5
-rw-r--r--quarg/quassel/types.py1
-rw-r--r--quarg/utils.py4
7 files changed, 22 insertions, 19 deletions
diff --git a/quarg/actions.py b/quarg/actions.py
index 6aadc3d..19ce59c 100644
--- a/quarg/actions.py
+++ b/quarg/actions.py
@@ -7,7 +7,6 @@ import dateutil.relativedelta
from quarg.quassel.types import BufferType, MessageFlag, MessageType
from quarg.utils import errx, parse_isodate
-# pylint: disable=too-few-public-methods, unsupported-membership-test
class ParseEnum(argparse.Action, metaclass=ABCMeta):
def __call__(self, parser, namespace, value, option_string=None):
diff --git a/quarg/database/filters.py b/quarg/database/filters.py
index a78b117..75142ac 100644
--- a/quarg/database/filters.py
+++ b/quarg/database/filters.py
@@ -1,6 +1,8 @@
-from sqlalchemy.sql.expression import or_, between
+from sqlalchemy.sql.expression import between, or_
+
from quarg.database.tables import Backlog, Buffer, Network, QuasselUser, Sender
+
def msg_like(query):
return Backlog.message.like(query, escape='\\')
diff --git a/quarg/database/tables.py b/quarg/database/tables.py
index 6e92c14..c71cedd 100644
--- a/quarg/database/tables.py
+++ b/quarg/database/tables.py
@@ -1,19 +1,21 @@
import datetime
+from sqlalchemy.orm import declarative_base, relationship
from sqlalchemy.schema import Column, ForeignKey
-from sqlalchemy.types import BigInteger, Boolean, DateTime, Integer, Text, TypeDecorator, TypeEngine
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy.orm import relationship
+from sqlalchemy.types import (
+ BigInteger,
+ Boolean,
+ DateTime,
+ Integer,
+ Text,
+ TypeDecorator,
+ TypeEngine,
+)
-# pylint: disable=too-few-public-methods
# Timestamps are saved in the database in UTC without timezone info, so attach
# a UTC timezone to the datetime object
class DateTimeUTC(TypeDecorator):
- # pylint complains that process_literal_param and python_type are
- # abstract but not overriden. This seems to not be necessary with
- # SQLAlchemy, so squash those warnings
- # pylint: disable=abstract-method
impl = TypeEngine
cache_ok = True
diff --git a/quarg/main.py b/quarg/main.py
index 9fde869..6e14ab6 100644
--- a/quarg/main.py
+++ b/quarg/main.py
@@ -13,7 +13,6 @@ import quarg.quassel.formatter as formatter
from quarg.database.tables import Backlog, Buffer, Network, QuasselUser, Sender
from quarg.utils import errx
-# pylint: disable=line-too-long
cli = argparse.ArgumentParser()
cli.add_argument('keyword', nargs='*', help='match messages containing this keyword')
cli.add_argument('-d', action='store_true', dest='debug', help='print debug and SQL query information')
@@ -37,7 +36,6 @@ date_matchers.add_argument('--around', action=actions.ParseAround, metavar='DATE
joined_group = matchers.add_mutually_exclusive_group()
joined_group.add_argument('--joined', default=None, action='store_true', dest='joined', help='match buffers which are currently joined')
joined_group.add_argument('--no-joined', default=None, action='store_false', dest='joined', help='match buffers which are not currently joined')
-# pylint: enable=line-too-long
Session = sessionmaker()
@@ -60,7 +58,7 @@ def check_args(args):
def collect_predicates(args):
funs = {
- 'keyword': filters.msg_like if args.expr else filters.msg_contains,
+ 'keyword': filters.msg_like if args.expr else filters.msg_contains,
'buffer': filters.buffer,
'nick': filters.nick,
'after': filters.time_after,
@@ -128,8 +126,8 @@ def main():
if not config.has_option('Database', 'url'):
errx('No database URL set in config file.')
- engine = create_engine(config.get('Database', 'url'), echo=args.debug)
- session = Session(bind=engine)
+ engine = create_engine(config.get('Database', 'url'), echo=args.debug, future=True)
+ session = Session(bind=engine, future=True)
predicates = list(collect_predicates(args))
diff --git a/quarg/quassel/formatter.py b/quarg/quassel/formatter.py
index 7e7bce6..888d145 100644
--- a/quarg/quassel/formatter.py
+++ b/quarg/quassel/formatter.py
@@ -1,9 +1,10 @@
import datetime
-
from functools import partial
from typing import NamedTuple
+
from quarg.quassel.types import MessageType
+
class User(NamedTuple):
nick: str
host: str
@@ -61,8 +62,6 @@ def format_kick(msg):
return f'<-* {msg.user} has kicked {target} from {msg.buffer}'
def format_kill(msg):
- # pylint: disable=line-too-long
-
# As of 2021-04-24 not even Quassel implements printing this message [1].
# They do have a symbol [2] for it, however, so use that along with the message
# [1] https://github.com/quassel/quassel/blob/285215315e6f2420724532323a4b1bccae156cb1/src/uisupport/uistyle.cpp#L950
diff --git a/quarg/quassel/types.py b/quarg/quassel/types.py
index 0ba5a11..2632151 100644
--- a/quarg/quassel/types.py
+++ b/quarg/quassel/types.py
@@ -1,5 +1,6 @@
from enum import Enum
+
class BufferType(Enum):
# INVALID = 0x0
STATUS = 0x1
diff --git a/quarg/utils.py b/quarg/utils.py
index 903c057..33b9198 100644
--- a/quarg/utils.py
+++ b/quarg/utils.py
@@ -1,6 +1,8 @@
import sys
+
import dateutil.parser
+
def errx(msg):
sys.exit(f'quarg: {msg}')
@@ -9,7 +11,7 @@ def parse_isodate(date):
parsed = dateutil.parser.isoparse(date)
except ValueError as err:
errx(f'isoparse: invalid date format \'{date}\', {err}')
- except OverflowError as err:
+ except OverflowError:
errx(f'isoparse: date overflows: \'{date}\'')
# If no offset is given, assume local time