xlin 0.1.8__py2.py3-none-any.whl → 0.1.10__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
xlin/__init__.py CHANGED
@@ -0,0 +1,9 @@
1
+ from .ischinese import *
2
+ from .jsonl import *
3
+ from .metric import *
4
+ from .multiprocess_mapping import *
5
+ from .read_as_dataframe import *
6
+ from .statistic import *
7
+ from .util import *
8
+ from .xls2xlsx import *
9
+ from .yaml import *
xlin/metric.py ADDED
@@ -0,0 +1,53 @@
1
+
2
+ def stream_average(avg_pre, cur_num_index, cur_num):
3
+ """
4
+ calculate the average of number in a stream
5
+ given nums: List[float], calculate avg[n] = sum(nums[:n]) / len(nums[:n]) = sum(nums[:n]) / n
6
+ however, we don't know the length of the stream, so we use a moving average
7
+ so avg[n-1] = sum(nums[:n-1]) / (n-1)
8
+ so n * avg[n] = (n-1) * avg[n-1] + nums[n]
9
+ so avg[n] = avg[n-1] + (nums[n] - avg[n-1]) / n
10
+ we don't need to remember every nums before n
11
+
12
+ Usage:
13
+ >>> acc = 0
14
+ >>> nums = [1, 0, 1, 0, 0, 1, 1, 1, 0, 1]
15
+ >>> for i, num in enumerate(nums):
16
+ ... acc = stream_average(acc, i, num)
17
+
18
+ :param avg_pre: (initially 0) average of previous numbers from index 0 to cur_num_index-1, i.e. avg[n-1]
19
+ :param cur_num_index: current number index starting from 0, i.e. n
20
+ :param cur_num: current number, i.e. nums[n]
21
+ :return: average of current number and previous numbers, i.e. avg[n]
22
+ """
23
+ return avg_pre + (cur_num - avg_pre) / (cur_num_index + 1)
24
+
25
+
26
+ class AverageMeter:
27
+ """Computes and stores the average and current value"""
28
+
29
+ def __init__(self, name, fmt=':f'):
30
+ self.name = name
31
+ self.fmt = fmt
32
+ self.val = 0
33
+ self.avg = 0
34
+ self.sum = 0
35
+ self.count = 0
36
+ self.reset()
37
+
38
+ def reset(self):
39
+ self.val = 0
40
+ self.avg = 0
41
+ self.sum = 0
42
+ self.count = 0
43
+
44
+ def update(self, val, n=1):
45
+ self.val = val
46
+ self.sum += val * n
47
+ self.count += n
48
+ self.avg = self.sum / self.count
49
+
50
+ def __str__(self):
51
+ fmtstr = '{name} {val' + self.fmt + '} ({avg' + self.fmt + '})'
52
+ return fmtstr.format(**self.__dict__)
53
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xlin
3
- Version: 0.1.8
3
+ Version: 0.1.10
4
4
  Summary: toolbox for LinXueyuan
5
5
  License: MIT
6
6
  Author: XiChen
@@ -1,15 +1,14 @@
1
- xlin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1
+ xlin/__init__.py,sha256=xH5nS8y2RhQ8IDMM2pVkD5W0lxEFuymUSpzSWKo-358,226
2
2
  xlin/ischinese.py,sha256=Ia9IMQ6q-UHkdLwqS70L1fTnfSPbluFrv_I1UqsKquo,293
3
3
  xlin/jsonl.py,sha256=DvVM241a9VgQlp5WIMPRv-JIolT0RdSxw47IG_fc7xE,6690
4
+ xlin/metric.py,sha256=N7wJ35y-C-IaBr1I1CJ_37lTG7gA69zmn9Xg6xSwKoI,1690
4
5
  xlin/multiprocess_mapping.py,sha256=pmzyEUYpbpIZ_ezyvWWWRpr7D7n4t3E3jW1nGXBbVck,7652
5
6
  xlin/read_as_dataframe.py,sha256=ir3HUT6dt3crqa3xnlcNn8j3wqjSIGJgiIVLP3KkBaQ,8678
6
7
  xlin/statistic.py,sha256=BLj8hszlbBT5xDIfd70_YtOb8QgZEvYXiFJDGXBwCfw,881
7
- xlin/terminal_color.py,sha256=nfE-CY2BzjY2eZbm9yk8r-AuyJ-hchmLXhASCb4HAIA,191
8
8
  xlin/util.py,sha256=SOQUh506GQlljJYLYuI6nScSTOrgRQnMq2xfxSvKIlI,11303
9
- xlin/uuid.py,sha256=gouvm7_DL22sIhXl-g4e6S2qzIZtmE3SEp00xy1upyg,271
10
9
  xlin/xls2xlsx.py,sha256=5zfcM0gmunFQOcOj9nYd9Dj0HMhU7-cPKnPIy6Ot9iU,930
11
10
  xlin/yaml.py,sha256=kICi7G3Td5q2MaSXXt85qNTWoHMgjzt7pvn7r3C4dME,183
12
- xlin-0.1.8.dist-info/LICENSE,sha256=KX0dDCYlO4DskqMZY8qeY94EZMrDRNnNqlGLkXVlKyM,1063
13
- xlin-0.1.8.dist-info/METADATA,sha256=XRXH6JMQMlIhnRbalOxAze0QmkZRIy6lunDVXp2jyXg,1046
14
- xlin-0.1.8.dist-info/WHEEL,sha256=IrRNNNJ-uuL1ggO5qMvT1GGhQVdQU54d6ZpYqEZfEWo,92
15
- xlin-0.1.8.dist-info/RECORD,,
11
+ xlin-0.1.10.dist-info/LICENSE,sha256=KX0dDCYlO4DskqMZY8qeY94EZMrDRNnNqlGLkXVlKyM,1063
12
+ xlin-0.1.10.dist-info/METADATA,sha256=to4m4VItekZ4FH89aOWoe-RH5KfBkJJMKCX2ApdQAVI,1047
13
+ xlin-0.1.10.dist-info/WHEEL,sha256=IrRNNNJ-uuL1ggO5qMvT1GGhQVdQU54d6ZpYqEZfEWo,92
14
+ xlin-0.1.10.dist-info/RECORD,,
xlin/terminal_color.py DELETED
@@ -1,10 +0,0 @@
1
-
2
- blue = "\x1b[34m"
3
- cyan = "\x1b[36;21m"
4
- green = "\x1b[32;21m"
5
- orange = "\x1b[33;21m"
6
- grey = "\x1b[38;21m"
7
- yellow = "\x1b[33;21m"
8
- red = "\x1b[31;21m"
9
- bold_red = "\x1b[31;1m"
10
- reset = "\x1b[0m"
xlin/uuid.py DELETED
@@ -1,13 +0,0 @@
1
- from typing import *
2
- import uuid
3
-
4
- import pandas as pd
5
-
6
-
7
- def append_uuid_column(df: pd.DataFrame, uuid_key="uuid"):
8
- rows = []
9
- for i, row in df.iterrows():
10
- row[uuid_key] = str(uuid.uuid4())
11
- rows.append(row)
12
- df = pd.DataFrame(rows)
13
- return df
File without changes
File without changes