Skip to content

Commit

Permalink
fix:(client) lint fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
BrianLusina committed Aug 18, 2023
1 parent df0f002 commit 99a5480
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 112 deletions.
15 changes: 14 additions & 1 deletion .releaserc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,19 @@
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/github"
"@semantic-release/github",
[
"@semantic-release/changelog",
{
"changelogFile": "docs/CHANGELOG.md"
}
],
[
"@semantic-release/git",
{
"assets": ["docs/CHANGELOG.md"],
"message": "chore(release): releasing ${nextRelease.version} \n\n${nextRelease.notes}"
}
],
]
}
18 changes: 12 additions & 6 deletions cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@


def get_option_parser():
"""
Provides a parser with options
"""
parser = optparse.OptionParser()
parser.add_option('-d', '--debug', action='store_true', dest='debug',
help='Log debug messages.')
Expand All @@ -26,21 +29,24 @@ def get_option_parser():


def load_extensions(server, extensions):
"""
Load provided extensions and include them as modules for the server to use
:param server: Instance of server
:param extensions: list of extensions to use
"""
for extension in extensions:
try:
module = importlib.import_module(extension)
except ImportError:
logger.exception('Could not import extension %s' % extension)
logger.exception(f'Could not import extension {extension}')
else:
try:
initialize = getattr(module, 'initialize')
except AttributeError:
logger.exception('Could not find "initialize" function in '
'extension %s' % extension)
logger.exception(f'Could not find "initialize" function in extension {extension}')
raise
else:
initialize(server)
logger.info('Loaded %s extension.' % extension)
initialize(server)
logger.info('Loaded %s extension.' % extension)


if __name__ == '__main__':
Expand Down
160 changes: 83 additions & 77 deletions client/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
"""
Kvault client that communicates via protocol handler to the server
"""
import logging
from kvault.protocol_handler import ProtocolHandler
from kvault.socket_pool import SocketPool
Expand All @@ -7,6 +10,9 @@


class Client:
"""
KCault Client
"""

def __init__(self, host='127.0.0.1', port=31337, pool_max_age=60):
self._host = host
Expand All @@ -25,12 +31,12 @@ def execute(self, *args):
self._protocol.write_response(conn, args)
try:
resp = self._protocol.handle_request(conn)
except EOFError:
except EOFError as exc:
self._socket_pool.close()
raise ServerDisconnect('server went away')
except Exception:
raise ServerDisconnect('server went away') from exc
except Exception as exc:
self._socket_pool.close()
raise ServerInternalError('internal server error')
raise ServerInternalError('internal server error') from exc
else:
if close_conn:
self._socket_pool.close()
Expand Down Expand Up @@ -60,79 +66,79 @@ def method(self, *args):

return method

lpush = command('LPUSH')
rpush = command('RPUSH')
lpop = command('LPOP')
rpop = command('RPOP')
lrem = command('LREM')
llen = command('LLEN')
lindex = command('LINDEX')
lrange = command('LRANGE')
lset = command('LSET')
ltrim = command('LTRIM')
rpoplpush = command('RPOPLPUSH')
lflush = command('LFLUSH')

append = command('APPEND')
decr = command('DECR')
decrby = command('DECRBY')
delete = command('DELETE')
exists = command('EXISTS')
get = command('GET')
getset = command('GETSET')
incr = command('INCR')
incrby = command('INCRBY')
mdelete = command('MDELETE')
mget = command('MGET')
mpop = command('MPOP')
mset = command('MSET')
msetex = command('MSETEX')
pop = command('POP')
set = command('SET')
setex = command('SETEX')
setnx = command('SETNX')
length = command('LEN')
flush = command('FLUSH')

hdel = command('HDEL')
hexists = command('HEXISTS')
hget = command('HGET')
hgetall = command('HGETALL')
hincrby = command('HINCRBY')
hkeys = command('HKEYS')
hlen = command('HLEN')
hmget = command('HMGET')
hmset = command('HMSET')
hset = command('HSET')
hsetnx = command('HSETNX')
hvals = command('HVALS')

sadd = command('SADD')
scard = command('SCARD')
sdiff = command('SDIFF')
sdiffstore = command('SDIFFSTORE')
sinter = command('SINTER')
sinterstore = command('SINTERSTORE')
sismember = command('SISMEMBER')
smembers = command('SMEMBERS')
spop = command('SPOP')
srem = command('SREM')
sunion = command('SUNION')
sunionstore = command('SUNIONSTORE')

add = command('ADD')
read = command('READ')
flush_schedule = command('FLUSH_SCHEDULE')
length_schedule = command('LENGTH_SCHEDULE')

expire = command('EXPIRE')
info = command('INFO')
flushall = command('FLUSHALL')
save = command('SAVE')
restore = command('RESTORE')
merge = command('MERGE')
quit = command('QUIT')
shutdown = command('SHUTDOWN')
lpush = command(cmd='LPUSH')
rpush = command(cmd='RPUSH')
lpop = command(cmd='LPOP')
rpop = command(cmd='RPOP')
lrem = command(cmd='LREM')
llen = command(cmd='LLEN')
lindex = command(cmd='LINDEX')
lrange = command(cmd='LRANGE')
lset = command(cmd='LSET')
ltrim = command(cmd='LTRIM')
rpoplpush = command(cmd='RPOPLPUSH')
lflush = command(cmd='LFLUSH')

append = command(cmd='APPEND')
decr = command(cmd='DECR')
decrby = command(cmd='DECRBY')
delete = command(cmd='DELETE')
exists = command(cmd='EXISTS')
get = command(cmd='GET')
getset = command(cmd='GETSET')
incr = command(cmd='INCR')
incrby = command(cmd='INCRBY')
mdelete = command(cmd='MDELETE')
mget = command(cmd='MGET')
mpop = command(cmd='MPOP')
mset = command(cmd='MSET')
msetex = command(cmd='MSETEX')
pop = command(cmd='POP')
set = command(cmd='SET')
setex = command(cmd='SETEX')
setnx = command(cmd='SETNX')
length = command(cmd='LEN')
flush = command(cmd='FLUSH')

hdel = command(cmd='HDEL')
hexists = command(cmd='HEXISTS')
hget = command(cmd='HGET')
hgetall = command(cmd='HGETALL')
hincrby = command(cmd='HINCRBY')
hkeys = command(cmd='HKEYS')
hlen = command(cmd='HLEN')
hmget = command(cmd='HMGET')
hmset = command(cmd='HMSET')
hset = command(cmd='HSET')
hsetnx = command(cmd='HSETNX')
hvals = command(cmd='HVALS')

sadd = command(cmd='SADD')
scard = command(cmd='SCARD')
sdiff = command(cmd='SDIFF')
sdiffstore = command(cmd='SDIFFSTORE')
sinter = command(cmd='SINTER')
sinterstore = command(cmd='SINTERSTORE')
sismember = command(cmd='SISMEMBER')
smembers = command(cmd='SMEMBERS')
spop = command(cmd='SPOP')
srem = command(cmd='SREM')
sunion = command(cmd='SUNION')
sunionstore = command(cmd='SUNIONSTORE')

add = command(cmd='ADD')
read = command(cmd='READ')
flush_schedule = command(cmd='FLUSH_SCHEDULE')
length_schedule = command(cmd='LENGTH_SCHEDULE')

expire = command(cmd='EXPIRE')
info = command(cmd='INFO')
flushall = command(cmd='FLUSHALL')
save = command(cmd='SAVE')
restore = command(cmd='RESTORE')
merge = command(cmd='MERGE')
quit = command(cmd='QUIT')
shutdown = command(cmd='SHUTDOWN')

def __getitem__(self, key):
if isinstance(key, (list, tuple)):
Expand Down
Empty file added docs/.gitkeep
Empty file.
18 changes: 9 additions & 9 deletions tests/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,28 @@ def timed(s):


def run_benchmark(client):
n = 10000
number = 10000
with timed('get/set'):
for i in range(n):
for i in range(number):
client.set('k%d' % i, 'v%d' % i)

for i in range(n + int(n * 0.1)):
for i in range(number + int(number * 0.1)):
client.get('k%d' % i)

with timed('serializing arrays'):
arr = [1, 2, 3, 4, 5, 6, [7, 8, 9, [10, 11, 12], 13], 14, 15]
for i in range(n):
for i in range(number):
client.set('k%d' % i, arr)

for i in range(n):
for i in range(number):
client.get('k%d' % i)

with timed('serializing dicts'):
d = {'k1': 'v1', 'k2': 'v2', 'k3': {'v3': {'v4': 'v5'}}}
for i in range(n):
client.set('k%d' % i, d)
key_value_pairs = {'k1': 'v1', 'k2': 'v2', 'k3': {'v3': {'v4': 'v5'}}}
for i in range(number):
client.set('k%d' % i, key_value_pairs)

for i in range(n):
for i in range(number):
client.get('k%d' % i)


Expand Down
38 changes: 19 additions & 19 deletions tests/test_kvault.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def run_queue_server():
return greenlet, queue_server


class KeyPartial(object):
class KeyPartial:
def __init__(self, client, key):
self.client = client
self.key = key
Expand All @@ -44,31 +44,31 @@ def tearDown(self) -> None:
self.c.flush()

def test_list(self):
lq = KeyPartial(self.c, 'queue')
key_partial = KeyPartial(self.c, 'queue')

lq.lpush('i1')
lq.lpush('i2')
lq.rpush('i3')
lq.rpush('i4')
result = lq.lrange(0)
key_partial.lpush('i1')
key_partial.lpush('i2')
key_partial.rpush('i3')
key_partial.rpush('i4')
result = key_partial.lrange(0)
self.assertEqual(result, ['i2', 'i1', 'i3', 'i4'])

self.assertEqual(lq.lpop(), 'i2')
self.assertEqual(lq.rpop(), 'i4')
self.assertEqual(lq.llen(), 2)
self.assertEqual(key_partial.lpop(), 'i2')
self.assertEqual(key_partial.rpop(), 'i4')
self.assertEqual(key_partial.llen(), 2)

self.assertEqual(lq.lrem('i3'), 1)
self.assertEqual(lq.lrem('i3'), 0)
self.assertEqual(key_partial.lrem('i3'), 1)
self.assertEqual(key_partial.lrem('i3'), 0)

lq.lpush('a1', 'a2', 'a3', 'a4')
self.assertEqual(lq.lindex(2), 'a2')
key_partial.lpush('a1', 'a2', 'a3', 'a4')
self.assertEqual(key_partial.lindex(2), 'a2')

lq.lset(2, 'x')
self.assertEqual(lq.lrange(1, 3), ['a3', 'x'])
key_partial.lset(2, 'x')
self.assertEqual(key_partial.lrange(1, 3), ['a3', 'x'])

lq.ltrim(1, 4)
self.assertEqual(lq.lrange(0), ['a3', 'x', 'a1'])
self.assertEqual(lq.lflush(), 3)
key_partial.ltrim(1, 4)
self.assertEqual(key_partial.lrange(0), ['a3', 'x', 'a1'])
self.assertEqual(key_partial.lflush(), 3)

def test_kv(self):
kp = KeyPartial(self.c, 'k1')
Expand Down

0 comments on commit 99a5480

Please sign in to comment.