diff options
Diffstat (limited to 'quarg')
-rw-r--r-- | quarg/actions.py | 1 | ||||
-rw-r--r-- | quarg/database/filters.py | 4 | ||||
-rw-r--r-- | quarg/database/tables.py | 18 | ||||
-rw-r--r-- | quarg/main.py | 8 | ||||
-rw-r--r-- | quarg/quassel/formatter.py | 5 | ||||
-rw-r--r-- | quarg/quassel/types.py | 1 | ||||
-rw-r--r-- | quarg/utils.py | 4 |
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 |