openSUSE Commits
Threads by month
- ----- 2024 -----
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2022
- 1 participants
- 2039 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package iredis for openSUSE:Factory checked in at 2022-06-29 16:01:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iredis (Old)
and /work/SRC/openSUSE:Factory/.iredis.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iredis"
Wed Jun 29 16:01:53 2022 rev:3 rq:985743 version:1.11.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/iredis/iredis.changes 2022-01-31 22:57:39.421446194 +0100
+++ /work/SRC/openSUSE:Factory/.iredis.new.1548/iredis.changes 2022-06-29 16:03:16.228775426 +0200
@@ -1,0 +2,30 @@
+Wed Jun 29 08:48:41 UTC 2022 - Sebastian Wagner <sebix+novell.com(a)sebix.at>
+
+- disable some failing tests (reported upstream) to fix the build.
+
+-------------------------------------------------------------------
+Wed Jun 29 08:36:26 UTC 2022 - Sebastian Wagner <sebix+novell.com(a)sebix.at>
+
+- update to version 1.12:
+ - Feature: CLIENT KILL now support LADDR argument.
+ - Feature: CLIENT LIST now support ID argument.
+ - Feature: CLIENT PAUSE support options and added CLIENT UNPAUSE command.
+ - Feature: CLIENT TRACKING support multiple prefixes.
+ - Feature: support new command: CLIENT TRACKINGINFO.
+ - Feature: support new command: COPY.
+ - Feature: support new command: EVAL_RO and EVALSHA_RO.
+ - Feature: support new command: EXPIRETIME.
+ - Feature: support new command: FAILOVER.
+ - Feature: support new command: GEOSEARCH.
+ - Feature: support new command: GEOSEARCHRESTORE.
+ - Feature: support new command: GETDEL.
+ - Feature: support new command: GETEX.
+ - Feature: FLUSHDB and FLUSHALL supports SYNC option.
+ - Feature: GEOADD supports CH XX NX options.
+ - Feature: Timestamp Completers are now support completion for timestamp fields and milliseconds timestamp fields.
+ - Deprecate: GEORADIUS is deprecated, no auto-complete for this command anymore.
+ - Deprecate: GEORADIUSBYMEMBER is deprecated, no auto-complete for this command anymore.
+- update to version 1.11.1:
+ - Bugfix: Switch distutils.version to packaging.version to fix the version parse for windows. (new dependency: pypi's python-packaging.
+
+-------------------------------------------------------------------
Old:
----
iredis-1.11.0.tar.gz
New:
----
iredis-1.11.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iredis.spec ++++++
--- /var/tmp/diff_new_pack.v1MjIf/_old 2022-06-29 16:03:16.620775948 +0200
+++ /var/tmp/diff_new_pack.v1MjIf/_new 2022-06-29 16:03:16.624775953 +0200
@@ -1,7 +1,7 @@
#
# spec file for package iredis
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: iredis
-Version: 1.11.0
+Version: 1.11.1
Release: 0
Summary: Terminal client for Redis with auto-completion and syntax highlighting
License: BSD-3-Clause
@@ -88,7 +88,9 @@
%ifnarch %ix86
%{_sbindir}/redis-server --port 6379 &
# skip test_abort_reading_connection as it fails frequently (timeout) on OBS for no apparent reason, others are bugs upstream: https://github.com/laixintao/iredis/issues/417
-REDIS_VERSION=$(%{_sbindir}/redis-server --version | grep -o '[0-9]' | head -n 1) PATH=${PATH:+$PATH:}%{buildroot}%{_bindir} PYTHONPATH=${PYTHONPATH:+$PYTHONPATH:}%{buildroot}%{python3_sitelib} PYTHONDONTWRITEBYTECODE=1 pytest --ignore=_build.python3 -vv -k 'not (test_abort_reading_connection or test_peek_set_fetch_part or test_peek_stream or test_timestamp_completer_humanize_time_completion)'
+# skip test_peek_zset_fetch_all, test_peek_zset_fetch_part, reported upstream: https://github.com/laixintao/iredis/issues/432
+# skip test_auto_select_db_and_auth_for_reconnect_only_6 needs further inspection
+REDIS_VERSION=$(%{_sbindir}/redis-server --version | grep -o '[0-9]' | head -n 1) PATH=${PATH:+$PATH:}%{buildroot}%{_bindir} PYTHONPATH=${PYTHONPATH:+$PYTHONPATH:}%{buildroot}%{python3_sitelib} PYTHONDONTWRITEBYTECODE=1 pytest --ignore=_build.python3 -vv -k 'not (test_abort_reading_connection or test_peek_set_fetch_part or test_peek_stream or test_timestamp_completer_humanize_time_completion or test_peek_zset_fetch_all or test_peek_zset_fetch_part or test_auto_select_db_and_auth_for_reconnect_only_6)'
killall redis-server
%endif
++++++ iredis-1.11.0.tar.gz -> iredis-1.11.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/PKG-INFO new/iredis-1.11.1/PKG-INFO
--- old/iredis-1.11.0/PKG-INFO 2022-01-25 16:15:52.115076500 +0100
+++ new/iredis-1.11.1/PKG-INFO 2022-03-07 05:14:12.529419700 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: iredis
-Version: 1.11.0
+Version: 1.11.1
Summary: Terminal client for Redis with auto-completion and syntax highlighting.
Home-page: https://github.com/laixintao/iredis
License: BSD-3-Clause
@@ -28,6 +28,7 @@
Requires-Dist: configobj (>=5.0,<6.0)
Requires-Dist: importlib-resources (>=5.1.0,<6.0.0)
Requires-Dist: mistune (>=2.0,<3.0)
+Requires-Dist: packaging (>=21.3,<22.0)
Requires-Dist: pendulum (>=2.0,<3.0)
Requires-Dist: prompt_toolkit (>=3,<4)
Requires-Dist: redis (>=3.4.0,<4.0.0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/iredis/__init__.py new/iredis-1.11.1/iredis/__init__.py
--- old/iredis-1.11.0/iredis/__init__.py 2022-01-25 16:15:23.403519000 +0100
+++ new/iredis-1.11.1/iredis/__init__.py 2022-03-07 05:13:46.617405000 +0100
@@ -1 +1 @@
-__version__ = "1.11.0"
+__version__ = "1.11.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/iredis/client.py new/iredis-1.11.1/iredis/client.py
--- old/iredis-1.11.0/iredis/client.py 2022-01-25 16:15:23.403519000 +0100
+++ new/iredis-1.11.1/iredis/client.py 2022-03-07 05:13:46.617405000 +0100
@@ -7,7 +7,7 @@
import logging
from subprocess import run
from importlib_resources import read_text
-from distutils.version import StrictVersion
+from packaging.version import parse as version_parse
import redis
from prompt_toolkit.shortcuts import clear
@@ -156,9 +156,11 @@
return connection_class(**connection_kwargs)
def auth_compat(self, redis_version: str):
- with_username = StrictVersion(redis_version) >= StrictVersion("6.0.0")
+ with_username = version_parse(redis_version) >= version_parse("6.0.0")
if with_username:
command2syntax["AUTH"] = "command_usernamex_password"
+ else:
+ command2syntax["AUTH"] = "command_password"
def set_default_pager(self, config):
configured_pager = config.pager
@@ -532,7 +534,7 @@
# FIXME anything strange with single quotes?
logger.debug(f"[--version--] '{server_version}'")
try:
- is_available = StrictVersion(server_version) > StrictVersion(
+ is_available = version_parse(server_version) > version_parse(
available_version
)
except Exception as e:
@@ -670,7 +672,7 @@
# use `memory usage` to get memory, this command available from redis4.0
mem = ""
- if config.version and StrictVersion(config.version) >= StrictVersion("4.0.0"):
+ if config.version and version_parse(config.version) >= version_parse("4.0.0"):
memory_usage_value = str(self.execute("memory usage", key))
mem = f" mem: {memory_usage_value} bytes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/iredis/commands.py new/iredis-1.11.1/iredis/commands.py
--- old/iredis-1.11.0/iredis/commands.py 2022-01-25 16:15:23.403519000 +0100
+++ new/iredis-1.11.1/iredis/commands.py 2022-03-07 05:13:46.617405000 +0100
@@ -127,7 +127,7 @@
raise AmbiguousCommand("command is not finished")
# allow multiple space in user input command
command_allow_multi_spaces = "[ ]+".join(command_name.split())
- matcher = re.match(fr"({command_allow_multi_spaces})( |$)", command.upper())
+ matcher = re.match(rf"({command_allow_multi_spaces})( |$)", command.upper())
if matcher:
matched_command_len = len(matcher.group(1))
input_command = command[:matched_command_len]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/iredis/redis_grammar.py new/iredis-1.11.1/iredis/redis_grammar.py
--- old/iredis-1.11.0/iredis/redis_grammar.py 2022-01-25 16:15:23.415519000 +0100
+++ new/iredis-1.11.1/iredis/redis_grammar.py 2022-03-07 05:13:46.637405200 +0100
@@ -145,7 +145,7 @@
('([^']|\\')*?') |# with single quotes
([^\s"]+) # without quotes
)"""
-PATTERN = fr"(?P<pattern>{VALID_TOKEN})"
+PATTERN = rf"(?P<pattern>{VALID_TOKEN})"
VALID_SLOT = r"\d+" # TODO add range? max value:16384
VALID_NODE = r"\w+"
NUM = r"\d+"
@@ -153,40 +153,40 @@
_FLOAT = r"-?(\d|\.|e)+"
LEXNUM = r"(\[\w+)|(\(\w+)|(\+)|(-)"
-SLOT = fr"(?P<slot>{VALID_SLOT})"
-SLOTS = fr"(?P<slots>{VALID_SLOT}(\s+{VALID_SLOT})*)"
-NODE = fr"(?P<node>{VALID_NODE})"
-KEY = fr"(?P<key>{VALID_TOKEN})"
-PREFIX = fr"(?P<prefix>{VALID_TOKEN})"
-KEYS = fr"(?P<keys>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
-DESTINATION = fr"(?P<destination>{VALID_TOKEN})"
-NEWKEY = fr"(?P<newkey>{VALID_TOKEN})"
-VALUE = fr"(?P<value>{VALID_TOKEN})"
-VALUES = fr"(?P<values>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
-ELEMENT = fr"(?P<element>{VALID_TOKEN})" # element for list
-FIELDS = fr"(?P<fields>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
-FIELD = fr"(?P<field>{VALID_TOKEN})"
-SFIELD = fr"(?P<sfield>{VALID_TOKEN})"
-SVALUE = fr"(?P<svalue>{VALID_TOKEN})"
-MEMBER = fr"(?P<member>{VALID_TOKEN})"
-MEMBERS = fr"(?P<members>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
-COUNT = fr"(?P<count>{NNUM})"
-LEN = fr"(?P<len>{NNUM})"
-RANK = fr"(?P<rank>{NNUM})"
-VERSION_NUM = fr"(?P<version_num>{NUM})"
-MESSAGE = fr"(?P<message>{VALID_TOKEN})"
-CHANNEL = fr"(?P<channel>{VALID_TOKEN})"
-GROUP = fr"(?P<group>{VALID_TOKEN})"
-CONSUMER = fr"(?P<consumer>{VALID_TOKEN})"
-CATEGORYNAME = fr"(?P<categoryname>{VALID_TOKEN})"
-USERNAME = fr"(?P<username>{VALID_TOKEN})"
-RULE = fr"(?P<rule>{VALID_TOKEN})"
+SLOT = rf"(?P<slot>{VALID_SLOT})"
+SLOTS = rf"(?P<slots>{VALID_SLOT}(\s+{VALID_SLOT})*)"
+NODE = rf"(?P<node>{VALID_NODE})"
+KEY = rf"(?P<key>{VALID_TOKEN})"
+PREFIX = rf"(?P<prefix>{VALID_TOKEN})"
+KEYS = rf"(?P<keys>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
+DESTINATION = rf"(?P<destination>{VALID_TOKEN})"
+NEWKEY = rf"(?P<newkey>{VALID_TOKEN})"
+VALUE = rf"(?P<value>{VALID_TOKEN})"
+VALUES = rf"(?P<values>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
+ELEMENT = rf"(?P<element>{VALID_TOKEN})" # element for list
+FIELDS = rf"(?P<fields>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
+FIELD = rf"(?P<field>{VALID_TOKEN})"
+SFIELD = rf"(?P<sfield>{VALID_TOKEN})"
+SVALUE = rf"(?P<svalue>{VALID_TOKEN})"
+MEMBER = rf"(?P<member>{VALID_TOKEN})"
+MEMBERS = rf"(?P<members>{VALID_TOKEN}(\s+{VALID_TOKEN})*)"
+COUNT = rf"(?P<count>{NNUM})"
+LEN = rf"(?P<len>{NNUM})"
+RANK = rf"(?P<rank>{NNUM})"
+VERSION_NUM = rf"(?P<version_num>{NUM})"
+MESSAGE = rf"(?P<message>{VALID_TOKEN})"
+CHANNEL = rf"(?P<channel>{VALID_TOKEN})"
+GROUP = rf"(?P<group>{VALID_TOKEN})"
+CONSUMER = rf"(?P<consumer>{VALID_TOKEN})"
+CATEGORYNAME = rf"(?P<categoryname>{VALID_TOKEN})"
+USERNAME = rf"(?P<username>{VALID_TOKEN})"
+RULE = rf"(?P<rule>{VALID_TOKEN})"
BIT = r"(?P<bit>0|1)"
-FLOAT = fr"(?P<float>{_FLOAT})"
-LONGITUDE = fr"(?P<longitude>{_FLOAT})"
-LATITUDE = fr"(?P<latitude>{_FLOAT})"
-CURSOR = fr"(?P<cursor>{NUM})"
-PARAMETER = fr"(?P<parameter>{VALID_TOKEN})"
+FLOAT = rf"(?P<float>{_FLOAT})"
+LONGITUDE = rf"(?P<longitude>{_FLOAT})"
+LATITUDE = rf"(?P<latitude>{_FLOAT})"
+CURSOR = rf"(?P<cursor>{NUM})"
+PARAMETER = rf"(?P<parameter>{VALID_TOKEN})"
DOUBLE_LUA = r'(?P<double_lua>[^"]*)'
SINGLE_LUA = r"(?P<single_lua>[^']*)"
INTTYPE = r"(?P<inttype>(i|u)\d+)"
@@ -200,21 +200,21 @@
# https://stackoverflow.com/questions/12968093/regex-to-validate-port-number
# pompt_toolkit limit: Exception: {4}-style repetition not yet supported
PORT = r"(?P<port>[1-9]|[1-5]?\d\d\d?\d?|6[1-4][0-9]\d\d\d|65[1-4]\d\d|655[1-2][0-9]|6553[1-5])"
-EPOCH = fr"(?P<epoch>{NUM})"
-PASSWORD = fr"(?P<password>{VALID_TOKEN})"
-REPLICATIONID = fr"(?P<replicationid>{VALID_TOKEN})"
+EPOCH = rf"(?P<epoch>{NUM})"
+PASSWORD = rf"(?P<password>{VALID_TOKEN})"
+REPLICATIONID = rf"(?P<replicationid>{VALID_TOKEN})"
INDEX = r"(?P<index>(1[0-5]|\d))"
-CLIENTID = fr"(?P<clientid>{NUM})"
-SECOND = fr"(?P<second>{NUM})"
-TIMESTAMP = fr"(?P<timestamp>{NUM})"
+CLIENTID = rf"(?P<clientid>{NUM})"
+SECOND = rf"(?P<second>{NUM})"
+TIMESTAMP = rf"(?P<timestamp>{NUM})"
# TODO test lexer & completer for multi spaces in command
# For now, redis command can have one space at most
COMMAND = "(\s* (?P<command>[\w -]+))"
-MILLISECOND = fr"(?P<millisecond>{NUM})"
-TIMESTAMPMS = fr"(?P<timestampms>{NUM})"
+MILLISECOND = rf"(?P<millisecond>{NUM})"
+TIMESTAMPMS = rf"(?P<timestampms>{NUM})"
ANY = r"(?P<any>.*)" # TODO deleted
-START = fr"(?P<start>{NNUM})"
-END = fr"(?P<end>{NNUM})"
+START = rf"(?P<start>{NNUM})"
+END = rf"(?P<end>{NNUM})"
# for stream ids, special ids include: -, +, $, > and *
# please see:
@@ -223,111 +223,111 @@
# NOTE: if miss the outer (), multi IDS won't work.
STREAM_ID = "(?P<stream_id>[T\d:>+*\-\$]+)"
-DELTA = fr"(?P<delta>{NNUM})"
-OFFSET = fr"(?P<offset>{NUM})" # string offset, can't be negative
+DELTA = rf"(?P<delta>{NNUM})"
+OFFSET = rf"(?P<offset>{NUM})" # string offset, can't be negative
SHARP_OFFSET = f"(?P<offset>\#?{NUM})" # for bitfield command
-MIN = fr"(?P<min>{NNUM})"
-MAX = fr"(?P<max>{NNUM})"
-POSITION = fr"(?P<position>{NNUM})"
-TIMEOUT = fr"(?P<timeout>{NUM})"
-SCORE = fr"(?P<score>{_FLOAT})"
-LEXMIN = fr"(?P<lexmin>{LEXNUM})"
-LEXMAX = fr"(?P<lexmax>{LEXNUM})"
-WEIGHTS = fr"(?P<weights>{_FLOAT}(\s+{_FLOAT})*)"
-IP_PORT = fr"(?P<ip_port>{IP}:{PORT})"
-HOST = fr"(?P<host>{VALID_TOKEN})"
+MIN = rf"(?P<min>{NNUM})"
+MAX = rf"(?P<max>{NNUM})"
+POSITION = rf"(?P<position>{NNUM})"
+TIMEOUT = rf"(?P<timeout>{NUM})"
+SCORE = rf"(?P<score>{_FLOAT})"
+LEXMIN = rf"(?P<lexmin>{LEXNUM})"
+LEXMAX = rf"(?P<lexmax>{LEXNUM})"
+WEIGHTS = rf"(?P<weights>{_FLOAT}(\s+{_FLOAT})*)"
+IP_PORT = rf"(?P<ip_port>{IP}:{PORT})"
+HOST = rf"(?P<host>{VALID_TOKEN})"
# const choices
-FAILOVERCHOICE = fr"(?P<failoverchoice>{c('failoverchoice')})"
-WITHSCORES = fr"(?P<withscores>{c('withscores')})"
-LIMIT = fr"(?P<limit>{c('limit')})"
-EXPIRATION = fr"(?P<expiration>{c('expiration')})"
-CONDITION = fr"(?P<condition>{c('condition')})"
-OPERATION = fr"(?P<operation>{c('operation')})"
-CHANGED = fr"(?P<changed>{c('changed')})"
-INCR = fr"(?P<incr>{c('incr')})"
-RESETCHOICE = fr"(?P<resetchoice>{c('resetchoice')})"
-MATCH = fr"(?P<match>{c('match')})"
-COUNT_CONST = fr"(?P<count_const>{c('count_const')})"
-TYPE_CONST = fr"(?P<type_const>{c('type_const')})"
-TYPE = fr"(?P<type>{c('type')})"
-POSITION_CHOICE = fr"(?P<position_choice>{c('position_choice')})"
-ERROR = fr"(?P<error>{c('error')})"
-ASYNC = fr"(?P<async>{c('async')})"
-CONNTYPE = fr"(?P<conntype>{c('conntype')})"
-SAMPLES = fr"(?P<samples>{c('samples')})"
-SLOTSUBCMD = fr"(?P<slotsubcmd>{c('slotsubcmd')})"
-WEIGHTS_CONST = fr"(?P<weights_const>{c('weights_const')})"
-AGGREGATE_CONST = fr"(?P<aggregate_const>{c('aggregate_const')})"
-AGGREGATE = fr"(?P<aggregate>{c('aggregate')})"
-SLOWLOGSUB = fr"(?P<slowlogsub>{c('slowlogsub')})"
-SHUTDOWN = fr"(?P<shutdown>{c('shutdown')})"
-SWITCH = fr"(?P<switch>{c('switch')})"
-ON_OFF = fr"(?P<on_off>{c('on_off')})"
-CONST_ID = fr"(?P<const_id>{c('const_id')})"
-CONST_USER = fr"(?P<const_user>{c('const_user')})"
-ADDR = fr"(?P<addr>{c('addr')})"
-SKIPME = fr"(?P<skipme>{c('skipme')})"
-YES = fr"(?P<yes>{c('yes')})"
-MIGRATECHOICE = fr"(?P<migratechoice>{c('migratechoice')})"
-AUTH = fr"(?P<auth>{c('auth')})"
-CONST_KEYS = fr"(?P<const_keys>{c('const_keys')})"
-OBJECT = fr"(?P<object>{c('object')})"
-SUBRESTORE = fr"(?P<subrestore>{c('subrestore')})"
-DISTUNIT = fr"(?P<distunit>{c('distunit')})"
-GEOCHOICE = fr"(?P<geochoice>{c('geochoice')})"
-ORDER = fr"(?P<order>{c('order')})"
-CONST_STORE = fr"(?P<const_store>{c('const_store')})"
-CONST_STOREDIST = fr"(?P<const_storedist>{c('const_storedist')})"
-PUBSUBCMD = fr"(?P<pubsubcmd>{c('pubsubcmd')})"
-SCRIPTDEBUG = fr"(?P<scriptdebug>{c('scriptdebug')})"
-HELP = fr"(?P<help>{c('help')})"
-STREAM = fr"(?P<stream>{c('stream')})"
-STREAM_GROUPS = fr"(?P<stream_groups>{c('stream_groups')})"
-STREAM_GROUP = fr"(?P<stream_group>{c('stream_group')})"
-STREAM_CONSUMERS = fr"(?P<stream_consumers>{c('stream_consumers')})"
-STREAM_CREATE = fr"(?P<stream_create>{c('stream_create')})"
-STREAM_SETID = fr"(?P<stream_setid>{c('stream_setid')})"
-STREAM_DESTROY = fr"(?P<stream_destroy>{c('stream_destroy')})"
-STREAM_DELCONSUMER = fr"(?P<stream_delconsumer>{c('stream_delconsumer')})"
-MAXLEN = fr"(?P<maxlen>{c('maxlen')})"
+FAILOVERCHOICE = rf"(?P<failoverchoice>{c('failoverchoice')})"
+WITHSCORES = rf"(?P<withscores>{c('withscores')})"
+LIMIT = rf"(?P<limit>{c('limit')})"
+EXPIRATION = rf"(?P<expiration>{c('expiration')})"
+CONDITION = rf"(?P<condition>{c('condition')})"
+OPERATION = rf"(?P<operation>{c('operation')})"
+CHANGED = rf"(?P<changed>{c('changed')})"
+INCR = rf"(?P<incr>{c('incr')})"
+RESETCHOICE = rf"(?P<resetchoice>{c('resetchoice')})"
+MATCH = rf"(?P<match>{c('match')})"
+COUNT_CONST = rf"(?P<count_const>{c('count_const')})"
+TYPE_CONST = rf"(?P<type_const>{c('type_const')})"
+TYPE = rf"(?P<type>{c('type')})"
+POSITION_CHOICE = rf"(?P<position_choice>{c('position_choice')})"
+ERROR = rf"(?P<error>{c('error')})"
+ASYNC = rf"(?P<async>{c('async')})"
+CONNTYPE = rf"(?P<conntype>{c('conntype')})"
+SAMPLES = rf"(?P<samples>{c('samples')})"
+SLOTSUBCMD = rf"(?P<slotsubcmd>{c('slotsubcmd')})"
+WEIGHTS_CONST = rf"(?P<weights_const>{c('weights_const')})"
+AGGREGATE_CONST = rf"(?P<aggregate_const>{c('aggregate_const')})"
+AGGREGATE = rf"(?P<aggregate>{c('aggregate')})"
+SLOWLOGSUB = rf"(?P<slowlogsub>{c('slowlogsub')})"
+SHUTDOWN = rf"(?P<shutdown>{c('shutdown')})"
+SWITCH = rf"(?P<switch>{c('switch')})"
+ON_OFF = rf"(?P<on_off>{c('on_off')})"
+CONST_ID = rf"(?P<const_id>{c('const_id')})"
+CONST_USER = rf"(?P<const_user>{c('const_user')})"
+ADDR = rf"(?P<addr>{c('addr')})"
+SKIPME = rf"(?P<skipme>{c('skipme')})"
+YES = rf"(?P<yes>{c('yes')})"
+MIGRATECHOICE = rf"(?P<migratechoice>{c('migratechoice')})"
+AUTH = rf"(?P<auth>{c('auth')})"
+CONST_KEYS = rf"(?P<const_keys>{c('const_keys')})"
+OBJECT = rf"(?P<object>{c('object')})"
+SUBRESTORE = rf"(?P<subrestore>{c('subrestore')})"
+DISTUNIT = rf"(?P<distunit>{c('distunit')})"
+GEOCHOICE = rf"(?P<geochoice>{c('geochoice')})"
+ORDER = rf"(?P<order>{c('order')})"
+CONST_STORE = rf"(?P<const_store>{c('const_store')})"
+CONST_STOREDIST = rf"(?P<const_storedist>{c('const_storedist')})"
+PUBSUBCMD = rf"(?P<pubsubcmd>{c('pubsubcmd')})"
+SCRIPTDEBUG = rf"(?P<scriptdebug>{c('scriptdebug')})"
+HELP = rf"(?P<help>{c('help')})"
+STREAM = rf"(?P<stream>{c('stream')})"
+STREAM_GROUPS = rf"(?P<stream_groups>{c('stream_groups')})"
+STREAM_GROUP = rf"(?P<stream_group>{c('stream_group')})"
+STREAM_CONSUMERS = rf"(?P<stream_consumers>{c('stream_consumers')})"
+STREAM_CREATE = rf"(?P<stream_create>{c('stream_create')})"
+STREAM_SETID = rf"(?P<stream_setid>{c('stream_setid')})"
+STREAM_DESTROY = rf"(?P<stream_destroy>{c('stream_destroy')})"
+STREAM_DELCONSUMER = rf"(?P<stream_delconsumer>{c('stream_delconsumer')})"
+MAXLEN = rf"(?P<maxlen>{c('maxlen')})"
APPROXIMATELY = r"(?P<approximately>~)"
-IDEL = fr"(?P<idel>{c('idel')})"
-TIME = fr"(?P<time>{c('time')})"
-RETRYCOUNT = fr"(?P<retrycount>{c('retrycount')})"
-FORCE = fr"(?P<force>{c('force')})"
-JUSTID = fr"(?P<justid>{c('justid')})"
-BLOCK = fr"(?P<block>{c('block')})"
-STREAMS = fr"(?P<streams>{c('streams')})"
-NOACK = fr"(?P<noack>{c('noack')})"
-GET = fr"(?P<get>{c('get')})"
-SET = fr"(?P<set>{c('set')})"
-INCRBY = fr"(?P<incrby>{c('incrby')})"
-OVERFLOW = fr"(?P<overflow>{c('overflow')})"
-OVERFLOW_OPTION = fr"(?P<overflow_option>{c('overflow_option')})"
-KEEPTTL = fr"(?P<keepttl>{c('keepttl')})"
-GRAPHEVENT = fr"(?P<graphevent>{c('graphevent')})"
-VERSION = fr"(?P<version>{c('version')})"
-SECTION = fr"(?P<section>{c('section')})"
-SCHEDULE = fr"(?P<schedule>{c('schedule')})"
-
-REDIRECT_CONST = fr"(?P<redirect_const>{c('redirect_const')})"
-PREFIX_CONST = fr"(?P<prefix_const>{c('prefix_const')})"
-BCAST_CONST = fr"(?P<bcast_const>{c('bcast_const')})"
-OPTIN_CONST = fr"(?P<optin_const>{c('optin_const')})"
-OPTOUT_CONST = fr"(?P<optout_const>{c('optout_const')})"
-NOLOOP_CONST = fr"(?P<noloop_const>{c('noloop_const')})"
-
-RESET_CONST = fr"(?P<reset_const>{c('reset_const')})"
-FULL_CONST = fr"(?P<full_const>{c('full_const')})"
-
-STR_ALGO = fr"(?P<str_algo>{c('str_algo')})"
-LEN_CONST = fr"(?P<len_const>{c('len_const')})"
-IDX_CONST = fr"(?P<idx_const>{c('idx_const')})"
-MINMATCHLEN_CONST = fr"(?P<minmatchlen_const>{c('minmatchlen_const')})"
-WITHMATCHLEN_CONST = fr"(?P<withmatchlen_const>{c('withmatchlen_const')})"
-STRINGS_CONST = fr"(?P<strings_const>{c('strings_const')})"
-RANK_CONST = fr"(?P<rank_const>{c('rank_const')})"
+IDEL = rf"(?P<idel>{c('idel')})"
+TIME = rf"(?P<time>{c('time')})"
+RETRYCOUNT = rf"(?P<retrycount>{c('retrycount')})"
+FORCE = rf"(?P<force>{c('force')})"
+JUSTID = rf"(?P<justid>{c('justid')})"
+BLOCK = rf"(?P<block>{c('block')})"
+STREAMS = rf"(?P<streams>{c('streams')})"
+NOACK = rf"(?P<noack>{c('noack')})"
+GET = rf"(?P<get>{c('get')})"
+SET = rf"(?P<set>{c('set')})"
+INCRBY = rf"(?P<incrby>{c('incrby')})"
+OVERFLOW = rf"(?P<overflow>{c('overflow')})"
+OVERFLOW_OPTION = rf"(?P<overflow_option>{c('overflow_option')})"
+KEEPTTL = rf"(?P<keepttl>{c('keepttl')})"
+GRAPHEVENT = rf"(?P<graphevent>{c('graphevent')})"
+VERSION = rf"(?P<version>{c('version')})"
+SECTION = rf"(?P<section>{c('section')})"
+SCHEDULE = rf"(?P<schedule>{c('schedule')})"
+
+REDIRECT_CONST = rf"(?P<redirect_const>{c('redirect_const')})"
+PREFIX_CONST = rf"(?P<prefix_const>{c('prefix_const')})"
+BCAST_CONST = rf"(?P<bcast_const>{c('bcast_const')})"
+OPTIN_CONST = rf"(?P<optin_const>{c('optin_const')})"
+OPTOUT_CONST = rf"(?P<optout_const>{c('optout_const')})"
+NOLOOP_CONST = rf"(?P<noloop_const>{c('noloop_const')})"
+
+RESET_CONST = rf"(?P<reset_const>{c('reset_const')})"
+FULL_CONST = rf"(?P<full_const>{c('full_const')})"
+
+STR_ALGO = rf"(?P<str_algo>{c('str_algo')})"
+LEN_CONST = rf"(?P<len_const>{c('len_const')})"
+IDX_CONST = rf"(?P<idx_const>{c('idx_const')})"
+MINMATCHLEN_CONST = rf"(?P<minmatchlen_const>{c('minmatchlen_const')})"
+WITHMATCHLEN_CONST = rf"(?P<withmatchlen_const>{c('withmatchlen_const')})"
+STRINGS_CONST = rf"(?P<strings_const>{c('strings_const')})"
+RANK_CONST = rf"(?P<rank_const>{c('rank_const')})"
command_grammar = compile(COMMAND)
@@ -337,9 +337,9 @@
# here because every syntaxes starts with `command` so we will prepend `command`
# in get_command_grammar function.
GRAMMAR = {
- "command_key": fr"\s+ {KEY} \s*",
- "command_pattern": fr"\s+ {PATTERN} \s*",
- "command_georadiusbymember": fr"""
+ "command_key": rf"\s+ {KEY} \s*",
+ "command_pattern": rf"\s+ {PATTERN} \s*",
+ "command_georadiusbymember": rf"""
\s+ {KEY} \s+ {MEMBER}
\s+ {FLOAT} \s+ {DISTUNIT}
(\s+ {GEOCHOICE})*
@@ -347,53 +347,53 @@
(\s+ {ORDER})?
(\s+ {CONST_STORE} \s+ {KEY})?
(\s+ {CONST_STOREDIST} \s+ {KEY})? \s*""",
- "command_command": fr"\s+ {COMMAND} \s*",
- "command_slots": fr"\s+ {SLOTS} \s*",
- "command_node": fr"\s+ {NODE} \s*",
- "command_slot": fr"\s+ {SLOT} \s*",
- "command_failoverchoice": fr"\s+ {FAILOVERCHOICE} \s*",
- "command_resetchoice": fr"\s+ {RESETCHOICE} \s*",
- "command_slot_count": fr"\s+ {SLOT} \s+ {COUNT} \s*",
- "command_key_samples_count": fr"""
+ "command_command": rf"\s+ {COMMAND} \s*",
+ "command_slots": rf"\s+ {SLOTS} \s*",
+ "command_node": rf"\s+ {NODE} \s*",
+ "command_slot": rf"\s+ {SLOT} \s*",
+ "command_failoverchoice": rf"\s+ {FAILOVERCHOICE} \s*",
+ "command_resetchoice": rf"\s+ {RESETCHOICE} \s*",
+ "command_slot_count": rf"\s+ {SLOT} \s+ {COUNT} \s*",
+ "command_key_samples_count": rf"""
\s+ {KEY} \s+ {SAMPLES} \s+ {COUNT} \s*""",
"command": r"\s*",
- "command_ip_port": fr"\s+ {IP} \s+ {PORT} \s*",
- "command_epoch": fr"\s+ {EPOCH} \s*",
- "command_yes": fr"\s+ {YES} \s*",
- "command_sectionx": fr"(\s+ {SECTION})? \s*",
- "command_asyncx": fr"(\s+ {ASYNC})? \s*",
- "command_slot_slotsubcmd_nodex": fr"""
+ "command_ip_port": rf"\s+ {IP} \s+ {PORT} \s*",
+ "command_epoch": rf"\s+ {EPOCH} \s*",
+ "command_yes": rf"\s+ {YES} \s*",
+ "command_sectionx": rf"(\s+ {SECTION})? \s*",
+ "command_asyncx": rf"(\s+ {ASYNC})? \s*",
+ "command_slot_slotsubcmd_nodex": rf"""
\s+ {SLOT} \s+ {SLOTSUBCMD} (\s+ {NODE})? \s*""",
- "command_password": fr"\s+ {PASSWORD} \s*",
- "command_usernamex_password": fr"(\s+ {USERNAME})? \s+ {PASSWORD} \s*",
- "command_message": fr"\s+ {MESSAGE} \s*",
- "command_messagex": fr"(\s+{MESSAGE})? \s*",
- "command_index": fr"\s+ {INDEX} \s*",
- "command_index_index": fr"\s+ {INDEX} \s+ {INDEX} \s*",
- "command_type_conntype_x": fr"""
+ "command_password": rf"\s+ {PASSWORD} \s*",
+ "command_usernamex_password": rf"(\s+ {USERNAME})? \s+ {PASSWORD} \s*",
+ "command_message": rf"\s+ {MESSAGE} \s*",
+ "command_messagex": rf"(\s+{MESSAGE})? \s*",
+ "command_index": rf"\s+ {INDEX} \s*",
+ "command_index_index": rf"\s+ {INDEX} \s+ {INDEX} \s*",
+ "command_type_conntype_x": rf"""
(\s+ {TYPE_CONST} \s+ {CONNTYPE})? \s*""",
- "command_clientid_errorx": fr"\s+ {CLIENTID} (\s+ {ERROR})? \s*",
- "command_keys": fr"\s+ {KEYS} \s*",
- "command_key_value": fr"\s+ {KEY} \s+ {VALUE} \s*",
- "command_parameter_value": fr"\s+ {PARAMETER} \s+ {VALUE} \s*",
- "command_parameter": fr"\s+ {PARAMETER} \s+ {VALUE} \s*",
- "command_value": fr"\s+ {VALUE} \s*",
- "command_key_second": fr"\s+ {KEY} \s+ {SECOND} \s*",
- "command_key_timestamp": fr"\s+ {KEY} \s+ {TIMESTAMP} \s*",
- "command_key_index": fr"\s+ {KEY} \s+ {INDEX} \s*",
- "command_key_millisecond": fr"\s+ {KEY} \s+ {MILLISECOND} \s*",
- "command_key_timestampms": fr"\s+ {KEY} \s+ {TIMESTAMPMS} \s*",
- "command_key_newkey": fr"\s+ {KEY} \s+ {NEWKEY} \s*",
- "command_newkey_keys": fr"\s+ {NEWKEY} \s+ {KEYS} \s*",
- "command_key_newkey_timeout": fr"\s+ {KEY} \s+ {NEWKEY} \s+ {TIMEOUT} \s*",
- "command_keys_timeout": fr"\s+ {KEYS} \s+ {TIMEOUT} \s*",
- "command_count_timeout": fr"\s+ {COUNT} \s+ {TIMEOUT} \s*",
- "command_timeout": fr"\s+ {TIMEOUT} \s*",
- "command_key_positionchoice_pivot_value": fr"""
+ "command_clientid_errorx": rf"\s+ {CLIENTID} (\s+ {ERROR})? \s*",
+ "command_keys": rf"\s+ {KEYS} \s*",
+ "command_key_value": rf"\s+ {KEY} \s+ {VALUE} \s*",
+ "command_parameter_value": rf"\s+ {PARAMETER} \s+ {VALUE} \s*",
+ "command_parameter": rf"\s+ {PARAMETER} \s+ {VALUE} \s*",
+ "command_value": rf"\s+ {VALUE} \s*",
+ "command_key_second": rf"\s+ {KEY} \s+ {SECOND} \s*",
+ "command_key_timestamp": rf"\s+ {KEY} \s+ {TIMESTAMP} \s*",
+ "command_key_index": rf"\s+ {KEY} \s+ {INDEX} \s*",
+ "command_key_millisecond": rf"\s+ {KEY} \s+ {MILLISECOND} \s*",
+ "command_key_timestampms": rf"\s+ {KEY} \s+ {TIMESTAMPMS} \s*",
+ "command_key_newkey": rf"\s+ {KEY} \s+ {NEWKEY} \s*",
+ "command_newkey_keys": rf"\s+ {NEWKEY} \s+ {KEYS} \s*",
+ "command_key_newkey_timeout": rf"\s+ {KEY} \s+ {NEWKEY} \s+ {TIMEOUT} \s*",
+ "command_keys_timeout": rf"\s+ {KEYS} \s+ {TIMEOUT} \s*",
+ "command_count_timeout": rf"\s+ {COUNT} \s+ {TIMEOUT} \s*",
+ "command_timeout": rf"\s+ {TIMEOUT} \s*",
+ "command_key_positionchoice_pivot_value": rf"""
\s+ {KEY} \s+ {POSITION_CHOICE} \s+ {VALUE} \s+ {VALUE} \s*""",
- "command_pass": fr"\s+ {ANY} \s*",
- "command_any": fr"\s+ {ANY} \s*",
- "command_set": fr"""
+ "command_pass": rf"\s+ {ANY} \s*",
+ "command_any": rf"\s+ {ANY} \s*",
+ "command_set": rf"""
\s+ {KEY} \s+ {VALUE}
(
(\s+ {EXPIRATION} \s+ {MILLISECOND})|
@@ -401,61 +401,61 @@
(\s+ {KEEPTTL})
)*
\s*""",
- "command_key_start_end_x": fr"\s+ {KEY} (\s+ {START} \s+ {END})? \s*",
- "command_key_start_end": fr"\s+ {KEY} \s+ {START} \s+ {END} \s*",
- "command_key_delta": fr"\s+ {KEY} \s+ {DELTA} \s*",
- "command_key_offset_value": fr"\s+ {KEY} \s+ {OFFSET} \s+ {VALUE} \s*",
- "command_key_field_value": fr"\s+ {KEY} (\s+ {FIELD} \s+ {VALUE})+ \s*",
- "command_key_offset_bit": fr"\s+ {KEY} \s+ {OFFSET} \s+ {BIT} \s*",
- "command_key_offset": fr"\s+ {KEY} \s+ {OFFSET} \s*",
- "command_key_position": fr"\s+ {KEY} \s+ {POSITION} \s*",
- "command_key_position_value": fr"\s+ {KEY} \s+ {POSITION} \s+ {VALUE} \s*",
- "command_key_second_value": fr"\s+ {KEY} \s+ {SECOND} \s+ {VALUE} \s*",
- "command_key_float": fr"\s+ {KEY} \s+ {FLOAT} \s*",
- "command_key_valuess": fr"(\s+ {KEY} \s+ {VALUE})+ \s*",
- "command_key_values": fr"\s+ {KEY} \s+ {VALUES} \s*",
- "command_key_millisecond_value": fr"\s+ {KEY} \s+ {MILLISECOND} \s+ {VALUE} \s*",
- "command_operation_key_keys": fr"\s+ {OPERATION} \s+ {KEY} \s+ {KEYS} \s*",
- "command_key_bit_start_end": fr"\s+ {KEY} \s+ {BIT} (\s+ {START})? (\s+ {END})? \s*",
- "command_key_members": fr"\s+ {KEY} \s+ {MEMBERS} \s*",
- "command_geodist": fr"\s+ {KEY} \s+ {MEMBER} \s+ {MEMBER} (\s+ {DISTUNIT})? \s*",
- "command_key_longitude_latitude_members": fr"""
+ "command_key_start_end_x": rf"\s+ {KEY} (\s+ {START} \s+ {END})? \s*",
+ "command_key_start_end": rf"\s+ {KEY} \s+ {START} \s+ {END} \s*",
+ "command_key_delta": rf"\s+ {KEY} \s+ {DELTA} \s*",
+ "command_key_offset_value": rf"\s+ {KEY} \s+ {OFFSET} \s+ {VALUE} \s*",
+ "command_key_field_value": rf"\s+ {KEY} (\s+ {FIELD} \s+ {VALUE})+ \s*",
+ "command_key_offset_bit": rf"\s+ {KEY} \s+ {OFFSET} \s+ {BIT} \s*",
+ "command_key_offset": rf"\s+ {KEY} \s+ {OFFSET} \s*",
+ "command_key_position": rf"\s+ {KEY} \s+ {POSITION} \s*",
+ "command_key_position_value": rf"\s+ {KEY} \s+ {POSITION} \s+ {VALUE} \s*",
+ "command_key_second_value": rf"\s+ {KEY} \s+ {SECOND} \s+ {VALUE} \s*",
+ "command_key_float": rf"\s+ {KEY} \s+ {FLOAT} \s*",
+ "command_key_valuess": rf"(\s+ {KEY} \s+ {VALUE})+ \s*",
+ "command_key_values": rf"\s+ {KEY} \s+ {VALUES} \s*",
+ "command_key_millisecond_value": rf"\s+ {KEY} \s+ {MILLISECOND} \s+ {VALUE} \s*",
+ "command_operation_key_keys": rf"\s+ {OPERATION} \s+ {KEY} \s+ {KEYS} \s*",
+ "command_key_bit_start_end": rf"\s+ {KEY} \s+ {BIT} (\s+ {START})? (\s+ {END})? \s*",
+ "command_key_members": rf"\s+ {KEY} \s+ {MEMBERS} \s*",
+ "command_geodist": rf"\s+ {KEY} \s+ {MEMBER} \s+ {MEMBER} (\s+ {DISTUNIT})? \s*",
+ "command_key_longitude_latitude_members": rf"""
\s+ {KEY} (\s+ {LONGITUDE} \s+ {LATITUDE} \s {MEMBER})+ \s*""",
- "command_destination_keys": fr"\s+ {DESTINATION} \s+ {KEYS} \s*",
- "command_object_key": fr"\s+ {OBJECT} \s+ {KEY} \s*",
- "command_key_member": fr"\s+ {KEY} \s+ {MEMBER} \s*",
- "command_key_newkey_member": fr"\s+ {KEY} \s+ {NEWKEY} \s+ {MEMBER} \s*",
- "command_key_count_x": fr"\s+ {KEY} (\s+ {COUNT})? \s*",
- "command_key_min_max": fr"\s+ {KEY} \s+ {MIN} \s+ {MAX} \s*",
- "command_key_condition_changed_incr_score_members": fr"""
+ "command_destination_keys": rf"\s+ {DESTINATION} \s+ {KEYS} \s*",
+ "command_object_key": rf"\s+ {OBJECT} \s+ {KEY} \s*",
+ "command_key_member": rf"\s+ {KEY} \s+ {MEMBER} \s*",
+ "command_key_newkey_member": rf"\s+ {KEY} \s+ {NEWKEY} \s+ {MEMBER} \s*",
+ "command_key_count_x": rf"\s+ {KEY} (\s+ {COUNT})? \s*",
+ "command_key_min_max": rf"\s+ {KEY} \s+ {MIN} \s+ {MAX} \s*",
+ "command_key_condition_changed_incr_score_members": rf"""
\s+ {KEY} (\s+ {CONDITION})?
(\s+ {CHANGED})?
(\s+ {INCR})?
(\s+ {SCORE} \s+ {MEMBER})+ \s*""",
- "command_key_float_member": fr"\s+ {KEY} \s+ {FLOAT} \s+ {MEMBER} \s*",
- "command_key_lexmin_lexmax": fr"\s+ {KEY} \s+ {LEXMIN} \s+ {LEXMAX} \s*",
- "command_key_start_end_withscores_x": fr"""
+ "command_key_float_member": rf"\s+ {KEY} \s+ {FLOAT} \s+ {MEMBER} \s*",
+ "command_key_lexmin_lexmax": rf"\s+ {KEY} \s+ {LEXMIN} \s+ {LEXMAX} \s*",
+ "command_key_start_end_withscores_x": rf"""
\s+ {KEY} \s+ {START} \s+ {END} (\s+ {WITHSCORES})? \s*""",
- "command_key_lexmin_lexmax_limit_offset_count": fr"""
+ "command_key_lexmin_lexmax_limit_offset_count": rf"""
\s+ {KEY} \s+ {LEXMIN} \s+ {LEXMAX}
(\s+ {LIMIT} \s+ {OFFSET} \s+ {COUNT})? \s*""",
- "command_key_min_max_withscore_x_limit_offset_count_x": fr"""
+ "command_key_min_max_withscore_x_limit_offset_count_x": rf"""
\s+ {KEY} \s+ {MIN} \s+ {MAX} (\s+ {WITHSCORES})?
(\s+ {LIMIT} \s+ {OFFSET} \s+ {COUNT})? \s*""",
- "command_cursor_match_pattern_count_type": fr"""
+ "command_cursor_match_pattern_count_type": rf"""
\s+ {CURSOR} (\s+ {MATCH} \s+ {PATTERN})?
(\s+ {COUNT_CONST} \s+ {COUNT})? (\s+ {TYPE_CONST} \s+ {TYPE})? \s*""",
- "command_key_cursor_match_pattern_count": fr"""\s+ {KEY}
+ "command_key_cursor_match_pattern_count": rf"""\s+ {KEY}
\s+ {CURSOR} (\s+ {MATCH} \s+ {PATTERN})? (\s+ {COUNT_CONST} \s+ {COUNT})? \s*""",
- "command_key_fields": fr"\s+ {KEY} \s+ {FIELDS} \s*",
- "command_key_field": fr"\s+ {KEY} \s+ {FIELD} \s*",
- "command_key_field_delta": fr"\s+ {KEY} \s+ {FIELD} \s+ {DELTA} \s*",
- "command_key_field_float": fr"\s+ {KEY} \s+ {FIELD} \s+ {FLOAT} \s*",
- "command_key_fieldvalues": fr"\s+ {KEY} (\s+ {FIELD} \s+ {VALUE})+ \s*",
- "command_slowlog": fr"\s+ {SLOWLOGSUB} \s+ {NUM} \s*",
- "command_switch": fr"\s+ {SWITCH} \s*",
- "command_schedulex": fr"(\s+ {SCHEDULE})? \s*",
- "command_clientkill": fr"""
+ "command_key_fields": rf"\s+ {KEY} \s+ {FIELDS} \s*",
+ "command_key_field": rf"\s+ {KEY} \s+ {FIELD} \s*",
+ "command_key_field_delta": rf"\s+ {KEY} \s+ {FIELD} \s+ {DELTA} \s*",
+ "command_key_field_float": rf"\s+ {KEY} \s+ {FIELD} \s+ {FLOAT} \s*",
+ "command_key_fieldvalues": rf"\s+ {KEY} (\s+ {FIELD} \s+ {VALUE})+ \s*",
+ "command_slowlog": rf"\s+ {SLOWLOGSUB} \s+ {NUM} \s*",
+ "command_switch": rf"\s+ {SWITCH} \s*",
+ "command_schedulex": rf"(\s+ {SCHEDULE})? \s*",
+ "command_clientkill": rf"""
(
(\s+ {IP_PORT})|
(\s+ {ADDR} \s+ {IP_PORT})|
@@ -464,7 +464,7 @@
(\s+ {CONST_USER} \s+ {USERNAME})|
(\s+ {SKIPME} \s+ {YES})
)+ \s*""",
- "command_migrate": fr"""
+ "command_migrate": rf"""
\s+ {HOST} \s+ {PORT}
\s+ {KEY} \s+ {INDEX} \s+ {TIMEOUT}
(\s+ {MIGRATECHOICE})?
@@ -474,26 +474,26 @@
)?
(\s+ {CONST_KEYS} \s+ {KEYS})?
\s*""",
- "command_radius": fr"""\s+ {KEY}
+ "command_radius": rf"""\s+ {KEY}
\s+ {LONGITUDE} \s+ {LATITUDE} \s+ {FLOAT} \s+ {DISTUNIT}
(\s+ {GEOCHOICE})* (\s+ {COUNT_CONST} \s+ {COUNT})?
(\s+ {ORDER})?
(\s+ {CONST_STORE} \s+ {KEY})?
(\s+ {CONST_STOREDIST} \s+ {KEY})? \s*""",
- "command_restore": fr"""\s+ {KEY}
+ "command_restore": rf"""\s+ {KEY}
\s+ {TIMEOUT} \s+ {VALUE} (\s+ {SUBRESTORE} \s+ {SECOND})? \s*""",
- "command_pubsubcmd_channels": fr"\s+ {PUBSUBCMD} (\s+ {CHANNEL})+ \s*",
- "command_channel_message": fr"\s+ {CHANNEL} \s+ {MESSAGE} \s*",
- "command_channels": fr"(\s+ {CHANNEL})+ \s*",
- "command_lua_any": fr"""(\s+"{DOUBLE_LUA}")? (\s+'{SINGLE_LUA}')? \s+ {ANY} \s*""",
- "command_scriptdebug": fr"\s+ {SCRIPTDEBUG} \s*",
- "command_shutdown": fr"\s+ {SHUTDOWN} \s*",
- "command_key_start_end_countx": fr"""\s+ {KEY}
+ "command_pubsubcmd_channels": rf"\s+ {PUBSUBCMD} (\s+ {CHANNEL})+ \s*",
+ "command_channel_message": rf"\s+ {CHANNEL} \s+ {MESSAGE} \s*",
+ "command_channels": rf"(\s+ {CHANNEL})+ \s*",
+ "command_lua_any": rf"""(\s+"{DOUBLE_LUA}")? (\s+'{SINGLE_LUA}')? \s+ {ANY} \s*""",
+ "command_scriptdebug": rf"\s+ {SCRIPTDEBUG} \s*",
+ "command_shutdown": rf"\s+ {SHUTDOWN} \s*",
+ "command_key_start_end_countx": rf"""\s+ {KEY}
\s+ {STREAM_ID}
\s+ {STREAM_ID}
(\s+ {COUNT_CONST} \s+ {COUNT})?
\s*""",
- "command_xgroup": fr"""
+ "command_xgroup": rf"""
(
(\s+ {STREAM_CREATE} \s+ {KEY} \s+ {GROUP} \s+ {STREAM_ID})|
(\s+ {STREAM_SETID} \s+ {KEY} \s+ {GROUP} \s+ {STREAM_ID})|
@@ -501,11 +501,11 @@
(\s+ {STREAM_DELCONSUMER} \s+ {KEY} \s+ {GROUP} \s+ {CONSUMER})
)
\s*""",
- "command_key_group_ids": fr"""
+ "command_key_group_ids": rf"""
\s+ {KEY} \s+ {GROUP} (\s+ {STREAM_ID})+ \s*""",
- "command_key_ids": fr"""
+ "command_key_ids": rf"""
\s+ {KEY} (\s+ {STREAM_ID})+ \s*""",
- "command_xinfo": fr"""
+ "command_xinfo": rf"""
(
(\s+ {STREAM_CONSUMERS} \s+ {KEY} \s+ {GROUP})|
(\s+ {STREAM_GROUPS} \s+ {KEY})|
@@ -516,20 +516,20 @@
(\s+ {HELP})
)
\s*""",
- "command_xpending": fr"""
+ "command_xpending": rf"""
\s+ {KEY} \s+ {GROUP}
(\s+ {STREAM_ID} \s+ {STREAM_ID} \s+ {COUNT})?
(\s+ {CONSUMER})?
\s*""",
- "command_xadd": fr"""
+ "command_xadd": rf"""
\s+ {KEY}
(\s+ {MAXLEN} (\s+ {APPROXIMATELY})? \s+ {COUNT})?
\s+ {STREAM_ID}
(\s+ {SFIELD} \s+ {SVALUE})+ \s*""",
- "command_key_maxlen": fr"""
+ "command_key_maxlen": rf"""
\s+ {KEY} \s+ {MAXLEN} (\s+ {APPROXIMATELY})? \s+ {COUNT}
\s*""",
- "command_xclaim": fr"""
+ "command_xclaim": rf"""
\s+ {KEY} \s+ {GROUP} \s+ {CONSUMER} \s+ {MILLISECOND}
(\s+ {STREAM_ID})+
(\s+ {IDEL} \s+ {MILLISECOND})?
@@ -538,14 +538,14 @@
(\s+ {FORCE})?
(\s+ {JUSTID})?
\s*""",
- "command_xread": fr"""
+ "command_xread": rf"""
(\s+ {COUNT_CONST} \s+ {COUNT})?
(\s+ {BLOCK} \s+ {MILLISECOND})?
\s+ {STREAMS}
\s+ {KEYS}
(\s+ {STREAM_ID})+
\s*""",
- "command_xreadgroup": fr"""
+ "command_xreadgroup": rf"""
\s+ {STREAM_GROUP} \s+ {GROUP} \s+ {CONSUMER}
(\s+ {COUNT_CONST} \s+ {COUNT})?
(\s+ {BLOCK} \s+ {MILLISECOND})?
@@ -554,7 +554,7 @@
\s+ {KEYS}
(\s+ {STREAM_ID})+
\s*""",
- "command_bitfield": fr"""
+ "command_bitfield": rf"""
\s+ {KEY}
(
(\s+ {GET} \s+ {INTTYPE} \s+ {SHARP_OFFSET})|
@@ -563,13 +563,13 @@
(\s+ {OVERFLOW} \s+ {OVERFLOW_OPTION})
)+
\s*""",
- "command_replicationid_offset": fr"\s+ {REPLICATIONID} \s+ {OFFSET} \s*",
- "command_graphevent": fr"\s+ {GRAPHEVENT} \s*",
- "command_graphevents": fr"(\s+ {GRAPHEVENT})* \s*",
+ "command_replicationid_offset": rf"\s+ {REPLICATIONID} \s+ {OFFSET} \s*",
+ "command_graphevent": rf"\s+ {GRAPHEVENT} \s*",
+ "command_graphevents": rf"(\s+ {GRAPHEVENT})* \s*",
# before redis 5: lolwut 5 1
# start from redis 6: lolwut VERSION 5 1
- "command_version": fr"(\s+ {VERSION} \s+ {VERSION_NUM})? (\s+ {ANY})? \s*",
- "command_client_tracking": fr"""
+ "command_version": rf"(\s+ {VERSION} \s+ {VERSION_NUM})? (\s+ {ANY})? \s*",
+ "command_client_tracking": rf"""
\s+ {ON_OFF}
(
(\s+ {REDIRECT_CONST} \s+ {CLIENTID})|
@@ -580,13 +580,13 @@
(\s+ {NOLOOP_CONST})
)*
\s*""",
- "command_categorynamex": fr"(\s+ {CATEGORYNAME})? \s*",
- "command_usernames": fr"(\s+ {USERNAME})+ \s*",
- "command_username": fr"\s+ {USERNAME} \s*",
- "command_count_or_resetx": fr"( (\s+ {COUNT}) | (\s+ {RESET_CONST}) )? \s*",
- "command_username_rules": fr"\s+ {USERNAME} (\s+ {RULE})* \s*",
- "command_count": fr"(\s+ {COUNT})? \s*",
- "command_stralgo": fr"""
+ "command_categorynamex": rf"(\s+ {CATEGORYNAME})? \s*",
+ "command_usernames": rf"(\s+ {USERNAME})+ \s*",
+ "command_username": rf"\s+ {USERNAME} \s*",
+ "command_count_or_resetx": rf"( (\s+ {COUNT}) | (\s+ {RESET_CONST}) )? \s*",
+ "command_username_rules": rf"\s+ {USERNAME} (\s+ {RULE})* \s*",
+ "command_count": rf"(\s+ {COUNT})? \s*",
+ "command_stralgo": rf"""
(
\s+ {STR_ALGO}
(
@@ -599,7 +599,7 @@
(\s+ {WITHMATCHLEN_CONST})?
)
\s*""",
- "command_lpos": fr"""
+ "command_lpos": rf"""
\s+ {KEY} \s+ {ELEMENT}
(
(\s+ {RANK_CONST} \s+ {RANK})|
@@ -628,7 +628,7 @@
return command_grammar
# prepend command token for this syntax
command_allow_multi_spaces = command.replace(r" ", r"\s+")
- syntax = fr"\s* (?P<command>{command_allow_multi_spaces}) " + syntax
+ syntax = rf"\s* (?P<command>{command_allow_multi_spaces}) " + syntax
# allow user input pipeline to redirect to shell, like `get json | jq .`
syntax += pipeline
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/iredis/renders.py new/iredis-1.11.1/iredis/renders.py
--- old/iredis-1.11.0/iredis/renders.py 2022-01-25 16:15:23.415519000 +0100
+++ new/iredis-1.11.1/iredis/renders.py 2022-03-07 05:13:46.637405200 +0100
@@ -6,7 +6,7 @@
"""
import logging
import time
-from distutils.version import StrictVersion
+from packaging.version import parse as version_parse
from prompt_toolkit.formatted_text import FormattedText
@@ -260,7 +260,7 @@
@staticmethod
def render_slowlog(raw):
fields = ["Slow log id", "Start at", "Running time(ms)", "Command"]
- if StrictVersion(config.version) > StrictVersion("4.0"):
+ if version_parse(config.version) > version_parse("4.0"):
fields.extend(["Client IP and port", "Client name"])
rendered = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/pyproject.toml new/iredis-1.11.1/pyproject.toml
--- old/iredis-1.11.0/pyproject.toml 2022-01-25 16:15:23.415519000 +0100
+++ new/iredis-1.11.1/pyproject.toml 2022-03-07 05:13:46.637405200 +0100
@@ -1,6 +1,6 @@
[tool.poetry]
name = "iredis"
-version = "1.11.0"
+version = "1.11.1"
description = "Terminal client for Redis with auto-completion and syntax highlighting."
authors = ["laixintao <laixintao1995(a)163.com>"]
readme = 'README.md'
@@ -42,6 +42,7 @@
importlib-resources = "^5.1.0"
# wcwidth 0.2.x uses pkg_resources which is not supported by PyOxidizer
wcwidth = "0.1.9"
+packaging = "^21.3"
[tool.poetry.dev-dependencies]
pytest = "^6"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/setup.py new/iredis-1.11.1/setup.py
--- old/iredis-1.11.0/setup.py 2022-01-25 16:15:52.113855800 +0100
+++ new/iredis-1.11.1/setup.py 2022-03-07 05:14:12.528108100 +0100
@@ -19,6 +19,7 @@
'configobj>=5.0,<6.0',
'importlib-resources>=5.1.0,<6.0.0',
'mistune>=2.0,<3.0',
+ 'packaging>=21.3,<22.0',
'pendulum>=2.0,<3.0',
'prompt_toolkit>=3,<4',
'redis>=3.4.0,<4.0.0',
@@ -29,7 +30,7 @@
setup_kwargs = {
'name': 'iredis',
- 'version': '1.11.0',
+ 'version': '1.11.1',
'description': 'Terminal client for Redis with auto-completion and syntax highlighting.',
'long_description': '<p align="center">\n <img width="100" height="100" src="https://raw.githubusercontent.com/laixintao/iredis/master/docs/assets/logo.…" />\n</p>\n\n<h3 align="center">Interactive Redis: A Cli for Redis with AutoCompletion and Syntax Highlighting.</h3>\n\n<p align="center">\n<a href="https://github.com/laixintao/iredis/actions"><img src="https://github.com/laixintao/iredis/workflows/Test/badge.svg" alt="Github Action"></a>\n<a href="https://badge.fury.io/py/iredis"><img src="https://badge.fury.io/py/iredis.svg" alt="PyPI version"></a>\n<img src="https://badgen.net/badge/python/3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9%20%…" alt="Python version">\n<a href="https://pepy.tech/project/iredis"><img src="https://pepy.tech/badge/iredis" alt="Download stats"></a>\n</p>\n\n<p align="center">\n <img src="./docs/assets/demo.svg" alt="demo">\n</p>\n\nIRedis is a terminal client for redis with auto-completion and syntax\nhighlighting. IRedis lets you type Redis c
ommands smoothly, and displays results\nin a user-friendly format.\n\nIRedis is an alternative for redis-cli. In most cases, IRedis behaves exactly\nthe same as redis-cli. Besides, it is safer to use IRedis on production servers\nthan redis-cli: IRedis will prevent accidentally running dangerous commands,\nlike `KEYS *` (see\n[Redis docs / Latency generated by slow commands](https://redis.io/topics/latency#latency-generated-by-slow-commands)).\n\n## Features\n\n- Advanced code completion. If you run command `KEYS` then run `DEL`, IRedis\n will auto-complete your command based on `KEYS` result.\n- Command validation. IRedis will validate command while you are typing, and\n highlight errors. E.g. try `CLUSTER MEET IP PORT`, IRedis will validate IP and\n PORT for you.\n- Command highlighting, fully based on redis grammar. Any valid command in\n IRedis shell is a valid redis command.\n- Human-friendly result display.\n- _pipeline_ feature, you can use your favorite shell tools to pa
rse redis\'\n response, like `get json | jq .`.\n- Support pager for long output.\n- Support connection via URL, `iredis --url redis://example.com:6379/1`.\n- Support cluster, IRedis will auto reissue command for `MOVED` response in\n cluster mode.\n- Store server configuration: `iredis -d prod-redis` (see [dsn](#using-dsn) for\n more).\n- `peek` command to check the key\'s type then automatically call\n `get`/`lrange`/`sscan`, etc, depending on types. You don\'t need to call the\n `type` command then type another command to get the value. `peek` will also\n display the key\'s length and memory usage.\n- <kbd>Ctrl</kbd> + <kbd>C</kbd> to cancel the current typed command, this won\'t\n exit IRedis, exactly like bash behaviour. Use <kbd>Ctrl</kbd> + <kbd>D</kbd>\n to send a EOF to exit IRedis.\n- <kbd>Ctrl</kbd> + <kbd>R</kbd> to open **reverse-i-search** to search through\n your command history.\n- Auto suggestions. (Like [fish shell](http://fishshell.com/).)\n- Support `--e
ncode=utf-8`, to decode Redis\' bytes responses.\n- Command hint on bottom, include command syntax, supported redis version, and\n time complexity.\n- Official docs with built-in `HELP` command, try `HELP SET`!\n- Written in pure Python, but IRedis was packaged into a single binary with\n [PyOxidizer](https://github.com/indygreg/PyOxidizer), you can use cURL to\n download and run, it just works, even you don\'t have a Python interpreter.\n- Hide password for `AUTH` command.\n- Says "Goodbye!" to you when you exit!\n- For full features, please see: [iredis.io](https://www.iredis.io)\n\n## Install\n\n### Pip\n\nInstall via pip:\n\n```\npip install iredis\n```\n\n[pipx](https://github.com/pipxproject/pipx) is recommended:\n\n```\npipx install iredis\n```\n\n### Brew\n\nFor Mac users, you can install iredis via brew ����\n\n```\nbrew install iredis\n```\n\n### Linux\n\nYou can also use your Linux package manager to install IRedis, like `apt` in\nUbuntu (Only available on Ubuntu 21.04
+).\n\n```shell\napt install iredis\n```\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/iredis.svg)](https://r… Download Binary\n\nOr you can download the executable binary with cURL(or wget), untar, then run.\nIt is especially useful when you don\'t have a python interpreter(E.g. the\n[official Redis docker image](https://hub.docker.com/_/redis/) which doesn\'t\nhave Python installed.):\n\n```\nwget https://github.com/laixintao/iredis/releases/latest/download/iredis.tar.gz \\\n && tar -xzf iredis.tar.gz \\\n && ./iredis\n```\n\n(Check the [release page](https://github.com/laixintao/iredis/releases) if you\nwant to download an old version of IRedis.)\n\n## Usage\n\nOnce you install IRedis, you will know how to use it. Just remember, IRedis\nsupports similar options like redis-cli, like `-h` for redis-server\'s host and\n`-p` for port.\n\n```\n$ iredis --help\n\nUsage: [OPTIONS] [CMD]...\n\n IRedis: Interactive Redis\
n\n When no command is given, IRedis starts in interactive mode.\n\n Examples:\n - iredis\n - iredis -d dsn\n - iredis -h 127.0.0.1 -p 6379\n - iredis -h 127.0.0.1 -p 6379 -a <password>\n - iredis --url redis://localhost:7890/3\n\n Type "help" in interactive mode for information on available commands and\n settings.\n\nOptions:\n -h TEXT Server hostname (default: 127.0.0.1).\n -p TEXT Server port (default: 6379).\n -s, --socket TEXT Server socket (overrides hostname and port).\n -n TEXT Database number.(overwrites dsn/url\'s db number)\n -a, --password TEXT Password to use when connecting to the server.\n --url TEXT Use Redis URL to indicate connection(Can set with\n env `IREDIS_URL`), Example:\n redis://[[username]:[password]]@localhost:6379/0\n rediss://[[username]:[password]]@localhost:6379/0\n
unix://[[username]:[password]]@/path/to/socket.soc\n k?db=0\n\n -d, --dsn TEXT Use DSN configured into the [alias_dsn] section of\n iredisrc file. (Can set with env `IREDIS_DSN`)\n\n --newbie / --no-newbie Show command hints and useful helps.\n --iredisrc TEXT Config file for iredis, default is ~/.iredisrc.\n --decode TEXT decode response, default is No decode, which will\n output all bytes literals.\n\n --client_name TEXT Assign a name to the current connection.\n --raw / --no-raw Use raw formatting for replies (default when\n STDOUT is not a tty). However, you can use --no-\n raw to force formatted output even when STDOUT is\n not a tty.\n\n --rainbow / --no-rainbow Display colorful prompt.\n --shell / --no-shell Allow to run she
ll commands, default to True.\n --pager / --no-pager Using pager when output is too tall for your\n window, default to True.\n\n --version Show the version and exit.\n --help Show this message and exit.\n```\n\n### Using DSN\n\nIRedis support storing server configuration in config file. Here is a DSN\nconfig:\n\n```\n[alias_dsn]\ndev=redis://localhost:6379/4\nstaging=redis://username:password@staging-redis.example.com:6379/1\n```\n\nPut this in your `iredisrc` then connect via `iredis -d staging` or\n`iredis -d dev`.\n\n### Configuration\n\nIRedis supports config files. Command-line options will always take precedence\nover config. Configuration resolution from highest to lowest precedence is:\n\n- _Options from command line_\n- `$PWD/.iredisrc`\n- `~/.iredisrc` (this path can be changed with `iredis --iredisrc $YOUR_PATH`)\n- `/etc/iredisrc`\n- default config in IRedis package.\n\nYou can copy the _self-explained
_ default config here:\n\nhttps://raw.githubusercontent.com/laixintao/iredis/master/iredis/d… then make your own changes.\n\n(If you are using an old versions of IRedis, please use the config file below,\nand change the version in URL):\n\nhttps://raw.githubusercontent.com/laixintao/iredis/v1.0.4/iredis/d… Keys\n\nIRedis support unix/readline-style REPL keyboard shortcuts, which means keys\nlike <kbd>Ctrl</kbd> + <kbd>F</kbd> to forward work.\n\nAlso:\n\n- <kbd>Ctrl</kbd> + <kbd>D</kbd> (i.e. EOF) to exit; you can also use the `exit`\n command.\n- <kbd>Ctrl</kbd> + <kbd>L</kbd> to clear screen; you can also use the `clear`\n command.\n- <kbd>Ctrl</kbd> + <kbd>X</kbd> <kbd>Ctrl</kbd> + <kbd>E</kbd> to open an\n editor to edit command, or <kbd>V</kbd> in vi-mode.\n\n## Development\n\n### Release Strategy\n\nIRedis is built and released by `GitHub Actions`. Whenever a tag is pushed to\nthe `master` branch, a new release is built and uploaded to py
pi.org, it\'s very\nconvenient.\n\nThus, we release as often as possible, so that users can always enjoy the new\nfeatures and bugfixes quickly. Any bugfix or new feature will get at least a\npatch release, whereas big features will get a minor release.\n\n### Setup Environment\n\nIRedis favors [poetry](https://github.com/sdispater/poetry) as package\nmanagement tool. To setup a develop environment on your computer:\n\nFirst, install poetry (you can do it in a python\'s virtualenv):\n\n```\npip install poetry\n```\n\nThen run (which is similar to `pip install -e .`):\n\n```\npoetry install\n```\n\n**Be careful running testcases locally, it may flush you db!!!**\n\n### Development Logs\n\nThis is a command-line tool, so we don\'t write logs to stdout.\n\nYou can `tail -f ~/.iredis.log` to see logs, the log is pretty clear, you can\nsee what actually happens from log files.\n\n### Catch Up with Latest Redis-doc\n\nIRedis use a git submodule to track current-up-to-date redis-doc versio
n. To\ncatch up with latest:\n\n1. Git pull in redis-doc\n2. Copy doc files to `/data`: `cp -r redis-doc/commands* iredis/data`\n3. Prettier\n markdown`prettier --prose-wrap always iredis/data/commands/*.md --write`\n4. Check the diff, update IRedis\' code if needed.\n\n## Related Projects\n\n- [redis-tui](https://github.com/mylxsw/redis-tui)\n\nIf you like iredis, you may also like other cli tools by\n[dbcli](https://www.dbcli.com/):\n\n- [pgcli](https://www.pgcli.com) - Postgres Client with Auto-completion and\n Syntax Highlighting\n- [mycli](https://www.mycli.net) - MySQL/MariaDB/Percona Client with\n Auto-completion and Syntax Highlighting\n- [litecli](https://litecli.com) - SQLite Client with Auto-completion and Syntax\n Highlighting\n- [mssql-cli](https://github.com/dbcli/mssql-cli) - Microsoft SQL Server Client\n with Auto-completion and Syntax Highlighting\n- [athenacli](https://github.com/dbcli/athenacli) - AWS Athena Client with\n Auto-completion and Syntax Highligh
ting\n- [vcli](https://github.com/dbcli/vcli) - VerticaDB client\n- [iredis](https://github.com/laixintao/iredis/) - Client for Redis with\n AutoCompletion and Syntax Highlighting\n\nIRedis is build on the top of\n[prompt_toolkit](https://github.com/jonathanslenders/python-prompt-tool…, a\nPython library (by [Jonathan Slenders](https://twitter.com/jonathan_s)) for\nbuilding rich commandline applications.\n',
'author': 'laixintao',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iredis-1.11.0/tests/unittests/test_client.py new/iredis-1.11.1/tests/unittests/test_client.py
--- old/iredis-1.11.0/tests/unittests/test_client.py 2022-01-25 16:15:23.419519000 +0100
+++ new/iredis-1.11.1/tests/unittests/test_client.py 2022-03-07 05:13:46.637405200 +0100
@@ -11,6 +11,7 @@
from iredis.completers import IRedisCompleter
from iredis.entry import Rainbow, prompt_message
from iredis.exceptions import NotSupport
+from iredis.commands import command2syntax
from ..helpers import formatted_text_rematch
@@ -508,3 +509,15 @@
print(call_args)
assert list(call_args[1:]) == ["set", "foo", "bar"]
assert call_args[0].password == "bar"
+
+
+def test_version_parse(iredis_client):
+ """
+ fix: https://github.com/laixintao/iredis/issues/418
+ """
+ iredis_client.auth_compat("6.1.0")
+ assert command2syntax["AUTH"] == "command_usernamex_password"
+ iredis_client.auth_compat("5.0")
+ assert command2syntax["AUTH"] == "command_password"
+ iredis_client.auth_compat("5.0.14.1")
+ assert command2syntax["AUTH"] == "command_password"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package zram-generator for openSUSE:Factory checked in at 2022-06-29 16:01:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zram-generator (Old)
and /work/SRC/openSUSE:Factory/.zram-generator.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zram-generator"
Wed Jun 29 16:01:52 2022 rev:6 rq:985726 version:1.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/zram-generator/zram-generator.changes 2022-05-05 23:08:04.457683196 +0200
+++ /work/SRC/openSUSE:Factory/.zram-generator.new.1548/zram-generator.changes 2022-06-29 16:03:13.388771646 +0200
@@ -1,0 +2,6 @@
+Wed Jun 29 07:44:43 UTC 2022 - Benjamin Brunner <bbrunner(a)suse.com>
+
+- Fixed typo in description (bsc#1200961)
+- Updated vendor.tar.xz
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zram-generator.spec ++++++
--- /var/tmp/diff_new_pack.2PgfrM/_old 2022-06-29 16:03:13.968772418 +0200
+++ /var/tmp/diff_new_pack.2PgfrM/_new 2022-06-29 16:03:13.972772423 +0200
@@ -44,7 +44,7 @@
(With zram, there is no physical swap device. Part of the avaialable RAM
is used to store compressed pages, essentially trading CPU cycles for memory.)
-To configure and activate swap and zram devices with file-systems, create a configuration file in /etc/systemd/zram.generator.conf. You can consult %{_datadir}/doc/%{name}/zram-generator.conf.example for an example and a list of available settings.
+To configure and activate swap and zram devices with file-systems, create a configuration file in /etc/systemd/zram-generator.conf. You can consult %{_datadir}/doc/%{name}/zram-generator.conf.example for an example and a list of available settings.
%prep
%autosetup -a1 -p1 -n %{name}-%{version}
++++++ vendor.tar.xz ++++++
++++ 10578 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package os-autoinst for openSUSE:Factory checked in at 2022-06-29 16:01:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
and /work/SRC/openSUSE:Factory/.os-autoinst.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-autoinst"
Wed Jun 29 16:01:50 2022 rev:306 rq:985708 version:4.6.1656323984.78d30a2
Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes 2022-06-27 11:25:39.330598999 +0200
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.1548/os-autoinst.changes 2022-06-29 16:03:12.352770267 +0200
@@ -1,0 +2,10 @@
+Wed Jun 29 07:11:51 UTC 2022 - okurz(a)suse.com
+
+- Update to version 4.6.1656323984.78d30a2:
+ * ci: Mark OpenQA directory as fully covered
+ * ci: Fully cover OpenQA::Qemu::Proc
+ * Remove unused variables in VNC code
+ * Remove unused method gen_runfile
+ * Remove unused method gen_qemu_img_commit
+
+-------------------------------------------------------------------
Old:
----
os-autoinst-4.6.1656152564.8735fa2.obscpio
New:
----
os-autoinst-4.6.1656323984.78d30a2.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.6iBP6O/_old 2022-06-29 16:03:13.068771220 +0200
+++ /var/tmp/diff_new_pack.6iBP6O/_new 2022-06-29 16:03:13.072771225 +0200
@@ -19,7 +19,7 @@
%define name_ext -test
%define short_name os-autoinst
Name: %{short_name}%{?name_ext}
-Version: 4.6.1656152564.8735fa2
+Version: 4.6.1656323984.78d30a2
Release: 0
Summary: test package for os-autoinst
License: GPL-2.0-or-later
++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.6iBP6O/_old 2022-06-29 16:03:13.100771262 +0200
+++ /var/tmp/diff_new_pack.6iBP6O/_new 2022-06-29 16:03:13.104771268 +0200
@@ -17,7 +17,7 @@
Name: os-autoinst
-Version: 4.6.1656152564.8735fa2
+Version: 4.6.1656323984.78d30a2
Release: 0
Summary: OS-level test automation
License: GPL-2.0-or-later
++++++ os-autoinst-4.6.1656152564.8735fa2.obscpio -> os-autoinst-4.6.1656323984.78d30a2.obscpio ++++++
/work/SRC/openSUSE:Factory/os-autoinst/os-autoinst-4.6.1656152564.8735fa2.obscpio /work/SRC/openSUSE:Factory/.os-autoinst.new.1548/os-autoinst-4.6.1656323984.78d30a2.obscpio differ: char 50, line 1
++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.6iBP6O/_old 2022-06-29 16:03:13.176771364 +0200
+++ /var/tmp/diff_new_pack.6iBP6O/_new 2022-06-29 16:03:13.180771369 +0200
@@ -1,5 +1,5 @@
name: os-autoinst
-version: 4.6.1656152564.8735fa2
-mtime: 1656152564
-commit: 8735fa2a8098b7ad14037d84538c9fd6a9515b0d
+version: 4.6.1656323984.78d30a2
+mtime: 1656323984
+commit: 78d30a2d0ee9af99822958a63df4fa882a856803
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pycryptodomex for openSUSE:Factory checked in at 2022-06-29 16:01:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pycryptodomex (Old)
and /work/SRC/openSUSE:Factory/.python-pycryptodomex.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pycryptodomex"
Wed Jun 29 16:01:49 2022 rev:16 rq:985713 version:3.15.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pycryptodomex/python-pycryptodomex.changes 2022-03-11 21:41:43.438091685 +0100
+++ /work/SRC/openSUSE:Factory/.python-pycryptodomex.new.1548/python-pycryptodomex.changes 2022-06-29 16:03:03.568758574 +0200
@@ -1,0 +2,9 @@
+Tue Jun 28 20:38:31 UTC 2022 - Torsten Gruner <simmphonie(a)opensuse.org>
+
+- update to 3.15.0:
+ * Add support for curves Ed25519 and Ed448, including export and import of keys.
+ * Add support for EdDSA signatures.
+ * Add support for Asymmetric Key Packages (RFC5958) to import private keys.
+ * GH#620: for Crypto.Util.number.getPrime , do not sequentially scan numbers searching for a prime.
+
+-------------------------------------------------------------------
Old:
----
v3.14.1.tar.gz
New:
----
v3.15.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pycryptodomex.spec ++++++
--- /var/tmp/diff_new_pack.HakbRy/_old 2022-06-29 16:03:07.848764272 +0200
+++ /var/tmp/diff_new_pack.HakbRy/_new 2022-06-29 16:03:07.852764277 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%global skip_python2 1
Name: python-pycryptodomex
-Version: 3.14.1
+Version: 3.15.0
Release: 0
Summary: Cryptographic library for Python
License: BSD-2-Clause
++++++ v3.14.1.tar.gz -> v3.15.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-pycryptodomex/v3.14.1.tar.gz /work/SRC/openSUSE:Factory/.python-pycryptodomex.new.1548/v3.15.0.tar.gz differ: char 12, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package shotcut for openSUSE:Factory checked in at 2022-06-29 16:01:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shotcut (Old)
and /work/SRC/openSUSE:Factory/.shotcut.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shotcut"
Wed Jun 29 16:01:47 2022 rev:50 rq:985707 version:22.06.23
Changes:
--------
--- /work/SRC/openSUSE:Factory/shotcut/shotcut.changes 2022-06-23 10:25:52.911845052 +0200
+++ /work/SRC/openSUSE:Factory/.shotcut.new.1548/shotcut.changes 2022-06-29 16:03:00.808754900 +0200
@@ -1,0 +2,39 @@
+Wed Jun 29 00:09:40 UTC 2022 - Aaron Stern <ukbeast89(a)protonmail.com>
+
+- Update to 22.06.23
+- Change the build system from qmake to CMake
+- add shotcut-libdir.patch
+- Upstream changes:
+ *Added Edit... to Timeline > Output > Properties.
+ *Added Timeline > menu > More > Align To Reference Track to synchronize clips based on similar audio.
+ See its documentation.
+ *Added support for reading Lottie and rawr JSON animation formats.
+ *Added Open Other > Animation.
+ *Added a Mask: Draw (Glaxnimate) video filter.
+ *Added Glaxnimate vector animation tool with a video preview of Shotcut.
+ *Added support for Keyframes to the following audio filters:
+ Low Pass
+ High Pass
+ Reverb
+ *Added keyboard shortcut Ctrl+Alt+A to select all clips on the current track.
+ (option+command+A on macOS)
+ *Added an options dialog to File > Export > Markers as Chapters to exclude colors or include range markers.
+ *Added support for fractional display scale (125%, 150%, 175%) on Windows.
+ *Fixed Text: Rich does not export the same as preview on system with fractional display scale on Windows.
+ *Fixed Record Audio and Open Other > Audio/Video Device crashing on macOS due to insufficient entitlements.
+ *Fixed Time Remap > Image mode > Blend not working.
+ *Fixed a crash combining two Size, Position & Rotate filters with a mask filter on a square video mode.
+ *Fixed a possible crash with an odd width video.
+ *Fixed dragging a clip leftward beyond other clips with Timeline > Ripple turned on.
+ *Fixed changing the color of a color clip resets a custom name.
+ *Fixed changing Properties > Speed drops a Crop: Source filter if added.
+ *Fixed prompting for a duration and possibly a crash when dragging non-seekable files to Playlist.
+ *Fixed filters on a clip are removed when Undo after a change to Properties.
+ *Fixed File > Export > Markers as Chapters incorrect text encoding resulting in corrupt unicode characters.
+ *Fixed video track blending may be broken after moving a track.
+ *Fixed repairing a project with Settings > Proxy > Use Proxy on saves proxy file paths into repaired project file.
+ *Fixed Ripple Markers not working with ripple trimming.
+ *Fixed trimming a clip on timeline may change the length of a neighboring clip.
+ *Converted the build system from qmake to CMake (qmake is removed).
+
+-------------------------------------------------------------------
Old:
----
shotcut-22.04.25.tar.gz
New:
----
shotcut-22.06.23.tar.gz
shotcut-libdir.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shotcut.spec ++++++
--- /var/tmp/diff_new_pack.2FI3MK/_old 2022-06-29 16:03:01.208755433 +0200
+++ /var/tmp/diff_new_pack.2FI3MK/_new 2022-06-29 16:03:01.224755453 +0200
@@ -25,7 +25,7 @@
%global __requires_exclude qmlimport\\((Shotcut\\.Controls|org\\.shotcut\\.qml).*
Name: shotcut
-Version: 22.04.25
+Version: 22.06.23
Release: 0
# This package creates a build time version from the current date and uses it to check
# for updates. See patch1 and prep/build section. For reproducible builds.
@@ -35,11 +35,13 @@
Group: Productivity/Multimedia/Video/Editors and Convertors
URL: http://www.shotcut.org/
Source: https://github.com/mltframework/shotcut/archive/v%{version}.tar.gz#/%{name}…
+Patch1: shotcut-libdir.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: libqt5-qtdeclarative-private-headers-devel
BuildRequires: mc
+BuildRequires: cmake
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Core) >= 5.9.0
@@ -54,6 +56,7 @@
BuildRequires: pkgconfig(Qt5WebSockets)
BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: pkgconfig(Qt5Xml)
+BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(mlt++-7)
BuildRequires: pkgconfig(mlt-framework-7)
BuildRequires: pkgconfig(sdl2)
@@ -87,26 +90,22 @@
%prep
%setup -q
echo "Qt5Core = %{qt5version}"
-%autopatch -p1
+%autosetup -p0
# Search for executable files
find . \
\( -name \*.html -o -name \*.js \) -type f -executable -exec chmod a-x {} + || :
%build
-##if LIBMLT_VERSION_INT >= MLT_VERSION_CPP_UPDATED 397568
-##define LIBMLT_VERSION_INT 397312 ((LIBMLT_VERSION_MAJOR<<16)+(LIBMLT_VERSION_MINOR<<8)+LIBMLT_VERSION_REVISION)
-%qmake5 \
- QMAKE_STRIP="" \
- PREFIX="%{_prefix}" -Wall -recursive \
- SHOTCUT_VERSION=%{version} \
- DEFINES+=SHOTCUT_NOUPGRADE
-
-make %{_smp_mflags} VERBOSE=1
+%cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DSHOTCUT_VERSION=%{version} \
+ -DDEFINES+=SHOTCUT_NOUPGRADE
+%cmake_build
# CC=gcc-8 CPP=cpp-8 CXX=g++-8
%install
-%qmake5_install
+%cmake_install
install -D icons/%{name}-logo-64.png %{buildroot}/%{_datadir}/pixmaps/%{name}.png
@@ -155,6 +154,8 @@
%{_datadir}/mime/packages/*
%{_datadir}/applications/org.%{name}.Shotcut.desktop
%exclude %{_datadir}/%{name}/translations
+%{_libdir}/libCuteLogger.so
+
%files lang -f %{name}.lang
%defattr(-,root,root)
++++++ shotcut-22.04.25.tar.gz -> shotcut-22.06.23.tar.gz ++++++
++++ 246260 lines of diff (skipped)
++++++ shotcut-libdir.patch ++++++
--- CuteLogger/CMakeLists.txt.orig 2022-06-07 20:54:20.000000000 +0200
+++ CuteLogger/CMakeLists.txt 2022-06-24 19:07:29.721554683 +0200
@@ -6,6 +6,8 @@
ADD_DEFINITIONS(-DCUTELOGGER_LIBRARY)
+include(GNUInstallDirs)
+
INCLUDE_DIRECTORIES(BEFORE include)
SET(sources
@@ -39,4 +41,4 @@
ADD_LIBRARY(${library_target} SHARED ${sources} ${includes})
TARGET_LINK_LIBRARIES(${library_target} Qt5::Core)
-INSTALL(TARGETS ${library_target} DESTINATION lib)
+INSTALL(TARGETS ${library_target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package yt-dlp for openSUSE:Factory checked in at 2022-06-29 16:01:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yt-dlp (Old)
and /work/SRC/openSUSE:Factory/.yt-dlp.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yt-dlp"
Wed Jun 29 16:01:45 2022 rev:8 rq:985695 version:2022.06.29
Changes:
--------
--- /work/SRC/openSUSE:Factory/yt-dlp/yt-dlp.changes 2022-06-23 10:24:56.875784163 +0200
+++ /work/SRC/openSUSE:Factory/.yt-dlp.new.1548/yt-dlp.changes 2022-06-29 16:02:57.672750726 +0200
@@ -1,0 +2,8 @@
+Wed Jun 29 05:40:07 UTC 2022 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2022.06.29
+ * Fix --downloader native
+ * Fix section_end of clips
+ * Fix playlist error handling
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yt-dlp.spec ++++++
--- /var/tmp/diff_new_pack.QvJtwO/_old 2022-06-29 16:02:59.072752589 +0200
+++ /var/tmp/diff_new_pack.QvJtwO/_new 2022-06-29 16:02:59.076752595 +0200
@@ -17,7 +17,7 @@
Name: yt-dlp
-Version: 2022.06.22.1
+Version: 2022.06.29
Release: 0
Summary: Enhanced fork of youtube-dl, a video site downloader for offline watching
License: CC-BY-SA-3.0 AND SUSE-Public-Domain
++++++ yt-dlp.tar.gz ++++++
++++ 33996 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lsp-plugins for openSUSE:Factory checked in at 2022-06-29 16:01:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lsp-plugins (Old)
and /work/SRC/openSUSE:Factory/.lsp-plugins.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lsp-plugins"
Wed Jun 29 16:01:44 2022 rev:17 rq:985692 version:1.2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/lsp-plugins/lsp-plugins.changes 2022-05-05 23:07:13.517619608 +0200
+++ /work/SRC/openSUSE:Factory/.lsp-plugins.new.1548/lsp-plugins.changes 2022-06-29 16:02:57.064749917 +0200
@@ -1,0 +2,26 @@
+Tue Jun 28 23:23:00 UTC 2022 - Konstantin Voinov <kv(a)kott.no-ip.biz>
+
+- add upstream patch:
+ 02-Fixed-the-improper-use-of-nanosleep.patch
+- fix build and vl2lint check:
+ 01-Append-CXXFLAGS.patch
+
+-------------------------------------------------------------------
+Mon Jun 27 09:15:05 UTC 2022 - Konstantin Voinov <kv(a)kott.no-ip.biz>
+
+- Version 1.2.2
+
+ * Implemented Multiband Dynamic Processor plugin series.
+ * Changed donation methods.
+ * Added german translations (contributed by Johannes Guenther).
+ * Added pitch control for the sample in the Sampler and Multisampler
+ plugin series (contributed by Vitalius Kuchalskis).
+ * Added pitch control for the sample in the Trigger plugin series.
+ * Fixed plugin version tracking which didn't save the updated version
+ to the configuration file.
+ * Fixed improper configuration file import in JACK headless mode.
+ * Fixed segmentation fault error in JACK headless mode when JACK
+ connection was lost.
+ * Added window scaling button function for plugin window.
+
+-------------------------------------------------------------------
Old:
----
lsp-plugins-1.2.1.tar.gz
New:
----
01-Append-CXXFLAGS.patch
02-Fixed-the-improper-use-of-nanosleep.patch
lsp-plugins-1.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lsp-plugins.spec ++++++
--- /var/tmp/diff_new_pack.jO9U8a/_old 2022-06-29 16:02:57.520750523 +0200
+++ /var/tmp/diff_new_pack.jO9U8a/_new 2022-06-29 16:02:57.524750529 +0200
@@ -19,14 +19,18 @@
%ifarch %arm aarch64
%define _lto_cflags %{nil}
%endif
+%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
+
Name: lsp-plugins
-Version: 1.2.1
+Version: 1.2.2
Release: 0
Summary: Linux Studio Plugins Project (Stand-alone)
License: LGPL-3.0-or-later
Group: Productivity/Multimedia/Sound/Utilities
URL: https://lsp-plug.in/
Source0: https://github.com/sadko4u/lsp-plugins/releases/download/%{version}/%{name}…
+Patch1: 01-Append-CXXFLAGS.patch
+Patch2: 02-Fixed-the-improper-use-of-nanosleep.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: ladspa
@@ -40,6 +44,7 @@
BuildRequires: pkgconfig(lv2)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xrandr)
Requires: %{name}-common = %{version}
%description
@@ -118,6 +123,9 @@
%prep
%setup -qn %{name}
+%patch1 -p1
+%patch2 -d modules/lsp-runtime-lib -p1
+
%build
#export PREFIX="%{_prefix}" DOC_PATH="%{_docdir}" LIB_PATH="%{_libdir}"
export CFLAGS="%{optflags}" CXXFLAGS="%{optflags}"
++++++ 01-Append-CXXFLAGS.patch ++++++
diff -ur lsp-plugins.orig/make/tools.mk lsp-plugins/make/tools.mk
--- lsp-plugins.orig/make/tools.mk 2022-06-23 08:18:02.677549495 +1000
+++ lsp-plugins/make/tools.mk 2022-06-29 09:18:03.229839836 +1000
@@ -110,7 +110,7 @@
endif
# Define flags for (cross) build
-CFLAGS ?= \
+CFLAGS += \
$(CFLAGS_EXT) \
-fdata-sections \
-ffunction-sections \
@@ -120,7 +120,7 @@
CDEFS += -DLSP_INSTALL_PREFIX=\\\"$(PREFIX)\\\"
-CXXFLAGS ?= \
+CXXFLAGS += \
$(CXXFLAGS_EXT) \
-std=c++98 \
-fno-exceptions \
++++++ 02-Fixed-the-improper-use-of-nanosleep.patch ++++++
From dbc16bcfb151c0b1d24f40e51316f8e3f34bb7da Mon Sep 17 00:00:00 2001
From: sadko4u <sadko4u(a)gmail.com>
Date: Fri, 24 Jun 2022 15:18:19 +0300
Subject: [PATCH] Fixed the improper use of nanosleep when introducing the
sleep function.
---
CHANGELOG | 1 +
src/main/runtime/system.cpp | 31 +++++++++++++++++--------------
2 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 798e4aa..c2ccbb6 100644
diff --git a/src/main/runtime/system.cpp b/src/main/runtime/system.cpp
index 46aaaea..1ced834 100644
--- a/src/main/runtime/system.cpp
+++ b/src/main/runtime/system.cpp
@@ -389,24 +389,27 @@ namespace lsp
struct timespec req, rem;
req.tv_nsec = (delay % 1000) * 1000000;
req.tv_sec = delay / 1000;
+ rem.tv_nsec = 0;
+ rem.tv_sec = 0;
- while ((req.tv_nsec > 0) && (req.tv_sec > 0))
+ while ((req.tv_nsec > 0) || (req.tv_sec > 0))
{
- int res = ::nanosleep(&req, &rem);
- if (res != 0)
+ // Perform nanosleep for the specific period of time.
+ // If function succeeded and waited the whole desired period
+ // of time, it should return 0.
+ if (::nanosleep(&req, &rem) == 0)
+ break;
+
+ // If the sleep was interrupted, we need to update
+ // the remained number of time to sleep.
+ switch (errno)
{
- switch (errno)
- {
- case EFAULT:
- case EINVAL:
- return STATUS_UNKNOWN_ERR;
- case EINTR:
- default:
- break;
- }
+ case EINTR:
+ req = rem;
+ break;
+ default:
+ return STATUS_UNKNOWN_ERR;
}
- else
- req = rem;
}
return STATUS_OK;
++++++ lsp-plugins-1.2.1.tar.gz -> lsp-plugins-1.2.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/lsp-plugins/lsp-plugins-1.2.1.tar.gz /work/SRC/openSUSE:Factory/.lsp-plugins.new.1548/lsp-plugins-1.2.2.tar.gz differ: char 12, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-branca for openSUSE:Factory checked in at 2022-06-29 16:01:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-branca (Old)
and /work/SRC/openSUSE:Factory/.python-branca.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-branca"
Wed Jun 29 16:01:43 2022 rev:5 rq:985685 version:0.4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-branca/python-branca.changes 2021-01-13 18:30:38.869874811 +0100
+++ /work/SRC/openSUSE:Factory/.python-branca.new.1548/python-branca.changes 2022-06-29 16:02:56.064748585 +0200
@@ -1,0 +2,5 @@
+Tue Jun 28 08:51:59 UTC 2022 - Daniel Garc��a Moreno <dani(a)danigm.net>
+
+- New BuildRequires for tests: ipykernel
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-branca.spec ++++++
--- /var/tmp/diff_new_pack.501Aay/_old 2022-06-29 16:02:56.460749112 +0200
+++ /var/tmp/diff_new_pack.501Aay/_new 2022-06-29 16:02:56.464749118 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-branca
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -35,6 +35,7 @@
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module Jinja2}
+BuildRequires: %{python_module ipykernel}
BuildRequires: %{python_module nbconvert}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module selenium}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-treq for openSUSE:Factory checked in at 2022-06-29 16:01:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-treq (Old)
and /work/SRC/openSUSE:Factory/.python-treq.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-treq"
Wed Jun 29 16:01:42 2022 rev:10 rq:985684 version:22.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-treq/python-treq.changes 2022-06-08 14:25:03.376512427 +0200
+++ /work/SRC/openSUSE:Factory/.python-treq.new.1548/python-treq.changes 2022-06-29 16:02:55.556747909 +0200
@@ -1,0 +2,5 @@
+Tue Jun 21 20:54:17 UTC 2022 - Ben Greiner <code(a)bnavigator.de>
+
+- Actually requires twisted[tls]: python-Twisted-tls on Tumbleweed
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-treq.spec ++++++
--- /var/tmp/diff_new_pack.d9wfNn/_old 2022-06-29 16:02:55.936748415 +0200
+++ /var/tmp/diff_new_pack.d9wfNn/_new 2022-06-29 16:02:55.940748420 +0200
@@ -26,7 +26,7 @@
Group: Development/Languages/Python
URL: https://github.com/twisted/treq
Source: https://files.pythonhosted.org/packages/source/t/treq/treq-%{version}.tar.gz
-BuildRequires: %{python_module Twisted >= 18.7.0}
+BuildRequires: %{python_module Twisted-tls >= 18.7.0}
BuildRequires: %{python_module attrs}
BuildRequires: %{python_module httpbin}
BuildRequires: %{python_module hyperlink >= 21.0.0}
@@ -38,7 +38,7 @@
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-Twisted >= 18.7.0
+Requires: python-Twisted-tls >= 18.7.0
Requires: python-attrs
Requires: python-hyperlink >= 21.0.0
Requires: python-incremental
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package pdfmixtool for openSUSE:Factory checked in at 2022-06-29 16:01:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pdfmixtool (Old)
and /work/SRC/openSUSE:Factory/.pdfmixtool.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdfmixtool"
Wed Jun 29 16:01:41 2022 rev:4 rq:985679 version:1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/pdfmixtool/pdfmixtool.changes 2021-06-25 15:02:13.676216714 +0200
+++ /work/SRC/openSUSE:Factory/.pdfmixtool.new.1548/pdfmixtool.changes 2022-06-29 16:02:54.872746998 +0200
@@ -1,0 +2,10 @@
+Tue Jun 28 19:09:16 UTC 2022 - Asterios Dramis <asterios.dramis(a)gmail.com>
+
+- Update to version 1.1:
+ * Add "Extract images" operation
+ * Improve GUI appearance and HiDPI support
+ * Add options to generate two booklets in one sheet
+- Added new build requirements: cmake(Qt5Svg), cmake(Qt5Xml) and
+ pkgconfig(Magick++).
+
+-------------------------------------------------------------------
Old:
----
pdfmixtool-v1.0.2.tar.bz2
New:
----
pdfmixtool-v1.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pdfmixtool.spec ++++++
--- /var/tmp/diff_new_pack.UpPoZD/_old 2022-06-29 16:02:55.260747515 +0200
+++ /var/tmp/diff_new_pack.UpPoZD/_new 2022-06-29 16:02:55.260747515 +0200
@@ -1,7 +1,7 @@
#
# spec file for package pdfmixtool
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: pdfmixtool
-Version: 1.0.2
+Version: 1.1
Release: 0
Summary: Split, Merge, Rotate and Mix PDF Files
License: GPL-3.0-only
@@ -31,7 +31,10 @@
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Gui)
BuildRequires: cmake(Qt5LinguistTools)
+BuildRequires: cmake(Qt5Svg)
BuildRequires: cmake(Qt5Widgets)
+BuildRequires: cmake(Qt5Xml)
+BuildRequires: pkgconfig(Magick++)
BuildRequires: pkgconfig(libqpdf)
%description
@@ -46,7 +49,7 @@
%install
%cmake_install
-%suse_update_desktop_file -r -G "PDF Mix Tool" eu.scarpetta.PDFMixTool Qt Office Publishing Graphics Viewer
+%suse_update_desktop_file -r -G "PDF Tools" eu.scarpetta.PDFMixTool Qt Office Publishing Graphics Viewer
%files
%license LICENSE
++++++ pdfmixtool-v1.0.2.tar.bz2 -> pdfmixtool-v1.1.tar.bz2 ++++++
++++ 11054 lines of diff (skipped)
1
0