mirror of
https://github.com/Jylpah/blitz-tools.git
synced 2026-10-24 11:39:52 +02:00
Bug fixes. RC 1
This commit is contained in:
1 parent
8cceb7d31b
commit
495d8b650a
1 file changed
+31
-22
+31
-22
@@ -133,9 +133,9 @@ class BattleCategorizationList():
|
|||||||
'player_name' : [ 'Player', 'string' ],
|
'player_name' : [ 'Player', 'string' ],
|
||||||
'protagonist' : [ 'account_id', 'number' ],
|
'protagonist' : [ 'account_id', 'number' ],
|
||||||
'battle_i' : [ 'Battle #', 'number' ],
|
'battle_i' : [ 'Battle #', 'number' ],
|
||||||
'player_wins' : [ 'Player WR', 'bucket', [ 0, .35, .45, .50, .55, .65], '%'],
|
'player_wins' : [ 'Player WR', 'bucket', [ 0, .35, .45, .50, .55, .65], '%' ],
|
||||||
'player_battles' : [ 'Player Battles', 'bucket', [ 0, 500, 1000, 2500, 5e3, 10e3, 15e3, 25e3]],
|
'player_battles' : [ 'Player Battles', 'bucket', [ 0, 500, 1000, 2500, 5e3, 10e3, 15e3, 25e3], 'int' ],
|
||||||
'player_damage_dealt' : [ 'Player Avg Dmg', 'bucket', [ 0, 500, 1000, 1250, 1500, 1750, 2000, 2500]]
|
'player_damage_dealt' : [ 'Player Avg Dmg', 'bucket', [ 0, 500, 1000, 1250, 1500, 1750, 2000, 2500], 'int' ]
|
||||||
}
|
}
|
||||||
|
|
||||||
_categorizations_default = [
|
_categorizations_default = [
|
||||||
@@ -503,11 +503,13 @@ class BattleBucketCategorization(BattleCategorization):
|
|||||||
"""Class for categorization by buckets based on value"""
|
"""Class for categorization by buckets based on value"""
|
||||||
|
|
||||||
def __init__(self, cat_key : str, title: str, breaks: list, bucket_format = ''):
|
def __init__(self, cat_key : str, title: str, breaks: list, bucket_format = ''):
|
||||||
super().__init__(cat_key, title)
|
try:
|
||||||
self.breaks = breaks
|
super().__init__(cat_key, title)
|
||||||
self.bucket_format = bucket_format
|
self.breaks = breaks
|
||||||
self.category_labels = self.mk_category_labels(breaks, bucket_format)
|
self.bucket_format = bucket_format
|
||||||
|
self.category_labels = self.mk_category_labels(breaks, bucket_format)
|
||||||
|
except Exception as err:
|
||||||
|
bu.error('BattleBucketCategorization()', exception=err)
|
||||||
|
|
||||||
def get_category(self, result: dict) -> str:
|
def get_category(self, result: dict) -> str:
|
||||||
"""Get category"""
|
"""Get category"""
|
||||||
@@ -516,9 +518,9 @@ class BattleBucketCategorization(BattleCategorization):
|
|||||||
cat_id = self.find_bucket(result[self.category_key], self.breaks)
|
cat_id = self.find_bucket(result[self.category_key], self.breaks)
|
||||||
return self.category_labels[cat_id]
|
return self.category_labels[cat_id]
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
bu.error('Category: ' + str(self.category_key) + 'cat ID: ' + str(cat_id), exception=err)
|
bu.error('Category: ' + str(self.category_key) + ' cat ID: ' + str(cat_id), exception=err)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
bu.error('Category: ' + str(self.category_key) + 'cat ID: ' + str(cat_id), exception=err)
|
bu.error('Category: ' + str(self.category_key) + ' cat ID: ' + str(cat_id), exception=err)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@@ -538,20 +540,28 @@ class BattleBucketCategorization(BattleCategorization):
|
|||||||
|
|
||||||
def find_bucket(self, value, bucket_breaks: list):
|
def find_bucket(self, value, bucket_breaks: list):
|
||||||
"""Find bucket for value"""
|
"""Find bucket for value"""
|
||||||
max = len(bucket_breaks)
|
try:
|
||||||
if max <= 1:
|
max = len(bucket_breaks)
|
||||||
return 0
|
if max <= 1:
|
||||||
ndx = int(max//2)
|
return 0
|
||||||
if value > bucket_breaks[ndx]:
|
ndx = int(max//2)
|
||||||
return ndx + self.find_bucket(value, bucket_breaks[ndx:])
|
if value > bucket_breaks[ndx]:
|
||||||
elif value < bucket_breaks[ndx]:
|
return ndx + self.find_bucket(value, bucket_breaks[ndx:])
|
||||||
return self.find_bucket(value, bucket_breaks[:ndx])
|
elif value < bucket_breaks[ndx]:
|
||||||
else:
|
return self.find_bucket(value, bucket_breaks[:ndx])
|
||||||
return ndx
|
else:
|
||||||
|
return ndx
|
||||||
|
except KeyError as err:
|
||||||
|
bu.error('Key not found ndx=' + str(ndx) + ', value=' + str(value), exception = err)
|
||||||
|
except Exception as err:
|
||||||
|
bu.error('ndx=' + str(ndx) + ', value=' + str(value), exception = err)
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def mk_category_labels(self, bucket_breaks: list, bucket_format: str) -> list:
|
def mk_category_labels(self, bucket_breaks: list, bucket_format: str) -> list:
|
||||||
try:
|
try:
|
||||||
|
# add open-ended last category. list.append() modifies by reference self.breaks (not OK)!!
|
||||||
|
bucket_breaks = bucket_breaks + [ None ]
|
||||||
multiplier = 1
|
multiplier = 1
|
||||||
prefix = ''
|
prefix = ''
|
||||||
if bucket_format == '%':
|
if bucket_format == '%':
|
||||||
@@ -564,7 +574,6 @@ class BattleBucketCategorization(BattleCategorization):
|
|||||||
frmt = '{:.0f}'
|
frmt = '{:.0f}'
|
||||||
else:
|
else:
|
||||||
frmt = '{:.0f}'
|
frmt = '{:.0f}'
|
||||||
|
|
||||||
labels = list()
|
labels = list()
|
||||||
for ndx in range(0,len(bucket_breaks) - 1):
|
for ndx in range(0,len(bucket_breaks) - 1):
|
||||||
low = bucket_breaks[ndx]
|
low = bucket_breaks[ndx]
|
||||||
@@ -582,7 +591,7 @@ class BattleBucketCategorization(BattleCategorization):
|
|||||||
label = label + frmt.format(high*multiplier)
|
label = label + frmt.format(high*multiplier)
|
||||||
|
|
||||||
label = label + prefix
|
label = label + prefix
|
||||||
labels.append(labels)
|
labels.append(label)
|
||||||
return labels
|
return labels
|
||||||
|
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
|
|||||||
Reference in new issue
Block a user