halib 0.1.53__tar.gz → 0.1.55__tar.gz

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.
Files changed (42) hide show
  1. {halib-0.1.53 → halib-0.1.55}/PKG-INFO +2 -2
  2. {halib-0.1.53 → halib-0.1.55}/README.md +1 -1
  3. {halib-0.1.53 → halib-0.1.55}/halib/filetype/csvfile.py +5 -1
  4. {halib-0.1.53 → halib-0.1.55}/halib/research/perftb.py +16 -2
  5. {halib-0.1.53 → halib-0.1.55}/halib.egg-info/PKG-INFO +2 -2
  6. {halib-0.1.53 → halib-0.1.55}/setup.py +1 -1
  7. {halib-0.1.53 → halib-0.1.55}/.gitignore +0 -0
  8. {halib-0.1.53 → halib-0.1.55}/GDriveFolder.txt +0 -0
  9. {halib-0.1.53 → halib-0.1.55}/LICENSE.txt +0 -0
  10. {halib-0.1.53 → halib-0.1.55}/MANIFEST.in +0 -0
  11. {halib-0.1.53 → halib-0.1.55}/guide_publish_pip.pdf +0 -0
  12. {halib-0.1.53 → halib-0.1.55}/halib/__init__.py +0 -0
  13. {halib-0.1.53 → halib-0.1.55}/halib/common.py +0 -0
  14. {halib-0.1.53 → halib-0.1.55}/halib/cuda.py +0 -0
  15. {halib-0.1.53 → halib-0.1.55}/halib/filetype/__init__.py +0 -0
  16. {halib-0.1.53 → halib-0.1.55}/halib/filetype/jsonfile.py +0 -0
  17. {halib-0.1.53 → halib-0.1.55}/halib/filetype/textfile.py +0 -0
  18. {halib-0.1.53 → halib-0.1.55}/halib/filetype/videofile.py +0 -0
  19. {halib-0.1.53 → halib-0.1.55}/halib/filetype/yamlfile.py +0 -0
  20. {halib-0.1.53 → halib-0.1.55}/halib/online/__init__.py +0 -0
  21. {halib-0.1.53 → halib-0.1.55}/halib/online/gdrive.py +0 -0
  22. {halib-0.1.53 → halib-0.1.55}/halib/online/gdrive_mkdir.py +0 -0
  23. {halib-0.1.53 → halib-0.1.55}/halib/online/gdrive_test.py +0 -0
  24. {halib-0.1.53 → halib-0.1.55}/halib/online/projectmake.py +0 -0
  25. {halib-0.1.53 → halib-0.1.55}/halib/research/__init__.py +0 -0
  26. {halib-0.1.53 → halib-0.1.55}/halib/research/dataset.py +0 -0
  27. {halib-0.1.53 → halib-0.1.55}/halib/research/plot.py +0 -0
  28. {halib-0.1.53 → halib-0.1.55}/halib/research/torchloader.py +0 -0
  29. {halib-0.1.53 → halib-0.1.55}/halib/research/wandb_op.py +0 -0
  30. {halib-0.1.53 → halib-0.1.55}/halib/rich_color.py +0 -0
  31. {halib-0.1.53 → halib-0.1.55}/halib/system/__init__.py +0 -0
  32. {halib-0.1.53 → halib-0.1.55}/halib/system/cmd.py +0 -0
  33. {halib-0.1.53 → halib-0.1.55}/halib/system/filesys.py +0 -0
  34. {halib-0.1.53 → halib-0.1.55}/halib/utils/__init__.py +0 -0
  35. {halib-0.1.53 → halib-0.1.55}/halib/utils/dataclass_util.py +0 -0
  36. {halib-0.1.53 → halib-0.1.55}/halib/utils/listop.py +0 -0
  37. {halib-0.1.53 → halib-0.1.55}/halib/utils/tele_noti.py +0 -0
  38. {halib-0.1.53 → halib-0.1.55}/halib.egg-info/SOURCES.txt +0 -0
  39. {halib-0.1.53 → halib-0.1.55}/halib.egg-info/dependency_links.txt +0 -0
  40. {halib-0.1.53 → halib-0.1.55}/halib.egg-info/requires.txt +0 -0
  41. {halib-0.1.53 → halib-0.1.55}/halib.egg-info/top_level.txt +0 -0
  42. {halib-0.1.53 → halib-0.1.55}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: halib
3
- Version: 0.1.53
3
+ Version: 0.1.55
4
4
  Summary: Small library for common tasks
5
5
  Author: Hoang Van Ha
6
6
  Author-email: hoangvanhauit@gmail.com
@@ -15,7 +15,7 @@ License-File: LICENSE.txt
15
15
 
16
16
  Helper package for coding and automation
17
17
 
18
- **Version 0.1.53**
18
+ **Version 0.1.55**
19
19
 
20
20
  + add `util/dataclass_util` to help dynamically create `dataclass` classes from dictionary or YAML file, including support for nested dataclasses. From there, we can use `dataclass_wizard` to create a list of `dataclass` classes with the help from ChatGPT.
21
21
 
@@ -1,6 +1,6 @@
1
1
  Helper package for coding and automation
2
2
 
3
- **Version 0.1.53**
3
+ **Version 0.1.55**
4
4
 
5
5
  + add `util/dataclass_util` to help dynamically create `dataclass` classes from dictionary or YAML file, including support for nested dataclasses. From there, we can use `dataclass_wizard` to create a list of `dataclass` classes with the help from ChatGPT.
6
6
 
@@ -49,7 +49,11 @@ def auto_wrap(cell, width=40):
49
49
 
50
50
  def fn_display_df(df, max_col_width=40):
51
51
  # Apply wrapping; tablefmt="psql" for PostgreSQL-like output
52
- wrapped_df = df.applymap(lambda x: auto_wrap(x, width=max_col_width))
52
+ # wrapped_df = df.applymap(lambda x: auto_wrap(x, width=max_col_width))
53
+ # fix the future warning of applymap
54
+ wrapped_df = df.apply(
55
+ lambda col: col.map(lambda x: auto_wrap(x, width=max_col_width))
56
+ )
53
57
  print(tabulate(wrapped_df, headers="keys", tablefmt="grid", numalign="right"))
54
58
 
55
59
  def showdf(df, display_mode="itable", in_jupyter=True, all_interactive=False):
@@ -249,12 +249,15 @@ class PerfTB:
249
249
 
250
250
  current_our_method = -1 # Start with -1 to avoid index error
251
251
  exp_pattern_dict = {}
252
+ shown_legends = set()
252
253
  for row_idx, metric in enumerate(metric_list, start=1):
253
254
  metric_df = df[df["Metric"] == metric]
254
255
  list_exp = list(metric_df["Experiment"].unique())
255
256
  if custom_sort_exp_fn:
256
257
  list_exp = custom_sort_exp_fn(list_exp)
257
258
  for exp in list_exp:
259
+ showlegend = exp not in shown_legends
260
+ shown_legends.add(exp) # since it is a set, it will only keep unique values
258
261
  should_highlight = (
259
262
  custom_highlight_method_fn is not None and custom_highlight_method_fn(exp)
260
263
  )
@@ -274,7 +277,7 @@ class PerfTB:
274
277
  y=exp_df["Value"],
275
278
  name=f"{exp}",
276
279
  legendgroup=exp,
277
- showlegend=(row_idx == 1), # Show legend only for the first row
280
+ showlegend=showlegend, # Show legend only for the first row
278
281
  marker=dict(
279
282
  color=color_map[exp],
280
283
  pattern=(
@@ -749,8 +752,19 @@ def test_mics() -> None:
749
752
  custom_sort_exp_fn=lambda exps: sorted(exps, reverse=True),
750
753
  open_plot=True,
751
754
  )
755
+ def test_bench2():
756
+ perftb = PerfTB.from_csv(
757
+ "test/bench2.csv",
758
+ sep=";")
759
+ perftb.display()
760
+ perftb.plot(
761
+ save_path="zout/bench2_plot.svg",
762
+ title="Bench2 Performance Comparison",
763
+ open_plot=True,
764
+ )
752
765
 
753
766
 
754
767
  # Example usage
755
768
  if __name__ == "__main__":
756
- test_mics()
769
+ # test_mics()
770
+ test_bench2()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: halib
3
- Version: 0.1.53
3
+ Version: 0.1.55
4
4
  Summary: Small library for common tasks
5
5
  Author: Hoang Van Ha
6
6
  Author-email: hoangvanhauit@gmail.com
@@ -15,7 +15,7 @@ License-File: LICENSE.txt
15
15
 
16
16
  Helper package for coding and automation
17
17
 
18
- **Version 0.1.53**
18
+ **Version 0.1.55**
19
19
 
20
20
  + add `util/dataclass_util` to help dynamically create `dataclass` classes from dictionary or YAML file, including support for nested dataclasses. From there, we can use `dataclass_wizard` to create a list of `dataclass` classes with the help from ChatGPT.
21
21
 
@@ -8,7 +8,7 @@ with open("requirements.txt") as f:
8
8
 
9
9
  setuptools.setup(
10
10
  name="halib",
11
- version="0.1.53",
11
+ version="0.1.55",
12
12
  author="Hoang Van Ha",
13
13
  author_email="hoangvanhauit@gmail.com",
14
14
  description="Small library for common tasks",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes