expect key as lambda in tsstats.utils.sort_clients
* kwarg renamed to key_l (from key) * add possibility to modify attribute
This commit is contained in:
parent
9d5197d813
commit
89906d04c7
|
@ -54,9 +54,9 @@ author = 'Thor77'
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.6'
|
version = '0.7'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.6.8'
|
release = '0.7.0'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -2,7 +2,7 @@ from setuptools import setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='tsstats',
|
name='tsstats',
|
||||||
version='0.6.8',
|
version='0.7.0',
|
||||||
author='Thor77',
|
author='Thor77',
|
||||||
author_email='thor77@thor77.org',
|
author_email='thor77@thor77.org',
|
||||||
description='A simple Teamspeak stats-generator',
|
description='A simple Teamspeak stats-generator',
|
||||||
|
|
|
@ -26,16 +26,18 @@ def render_template(clients, output, title='TeamspeakStats'):
|
||||||
:type title: str
|
:type title: str
|
||||||
'''
|
'''
|
||||||
# prepare clients
|
# prepare clients
|
||||||
clients_onlinetime_ = sort_clients(clients, 'onlinetime')
|
clients_onlinetime_ = sort_clients(
|
||||||
|
clients, lambda c: c.onlinetime
|
||||||
|
)
|
||||||
clients_onlinetime = [
|
clients_onlinetime = [
|
||||||
(client, seconds_to_text(onlinetime))
|
(client, seconds_to_text(onlinetime))
|
||||||
for client, onlinetime in clients_onlinetime_
|
for client, onlinetime in clients_onlinetime_
|
||||||
]
|
]
|
||||||
|
|
||||||
clients_kicks = sort_clients(clients, 'kicks')
|
clients_kicks = sort_clients(clients, lambda c: c.kicks)
|
||||||
clients_pkicks = sort_clients(clients, 'pkicks')
|
clients_pkicks = sort_clients(clients, lambda c: c.pkicks)
|
||||||
clients_bans = sort_clients(clients, 'bans')
|
clients_bans = sort_clients(clients, lambda c: c.bans)
|
||||||
clients_pbans = sort_clients(clients, 'pbans')
|
clients_pbans = sort_clients(clients, lambda c: c.pbans)
|
||||||
objs = [('Onlinetime', clients_onlinetime), ('Kicks', clients_kicks),
|
objs = [('Onlinetime', clients_onlinetime), ('Kicks', clients_kicks),
|
||||||
('passive Kicks', clients_pkicks),
|
('passive Kicks', clients_pkicks),
|
||||||
('Bans', clients_bans), ('passive Bans', clients_pbans)]
|
('Bans', clients_bans), ('passive Bans', clients_pbans)]
|
||||||
|
|
|
@ -1,20 +1,22 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
def sort_clients(clients, key):
|
def sort_clients(clients, key_l):
|
||||||
'''
|
'''
|
||||||
sort `clients` by `key`
|
sort `clients` by `key`
|
||||||
|
|
||||||
:param clients: clients to sort
|
:param clients: clients to sort
|
||||||
:param key: key to sort clients with
|
:param key_l: lambda/function returning the value of `key` for a client
|
||||||
|
|
||||||
:type clients: tsstats.client.Clients
|
:type clients: tsstats.client.Clients
|
||||||
:type key: str
|
:type key_l: function
|
||||||
|
|
||||||
:return: sorted `clients`
|
:return: sorted `clients`
|
||||||
:rtype: list
|
:rtype: list
|
||||||
'''
|
'''
|
||||||
cl_data = [(client, client[key]) for client in clients if client[key] > 0]
|
cl_data = [
|
||||||
|
(client, key_l(client)) for client in clients if key_l(client) > 0
|
||||||
|
]
|
||||||
return sorted(cl_data, key=lambda data: data[1], reverse=True)
|
return sorted(cl_data, key=lambda data: data[1], reverse=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue