xlwings-utils 25.1.2.post0__tar.gz → 25.1.3__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.

Potentially problematic release.


This version of xlwings-utils might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xlwings_utils
3
- Version: 25.1.2.post0
3
+ Version: 25.1.3
4
4
  Summary: xlwings_utils
5
5
  Author-email: Ruud van der Ham <rt.van.der.ham@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/salabim/xlwings_utils
@@ -10,7 +10,7 @@ authors = [
10
10
  { name = "Ruud van der Ham", email = "rt.van.der.ham@gmail.com" },
11
11
  ]
12
12
  description = "xlwings_utils"
13
- version = "25.1.2.post0"
13
+ version = "25.1.3"
14
14
  readme = "README.md"
15
15
  requires-python = ">=3.9"
16
16
  dependencies = [
@@ -5,7 +5,7 @@
5
5
  # /_/\_\|_| \_/\_/ |_||_| |_| \__, ||___/ _____ \__,_| \__||_||_||___/
6
6
  # |___/ |_____|
7
7
 
8
- __version__ = "25.1.2"
8
+ __version__ = "25.1.3"
9
9
 
10
10
 
11
11
  from pathlib import Path
@@ -15,6 +15,8 @@ import math
15
15
  import base64
16
16
  import requests
17
17
  import json
18
+ import datetime
19
+ import functools
18
20
 
19
21
  Pythonista = sys.platform == "ios"
20
22
 
@@ -214,7 +216,7 @@ def write_dropbox(dropbox_path, contents):
214
216
  try:
215
217
  response.raise_for_status()
216
218
  except requests.exceptions.HTTPError as e:
217
- raise FileNotFoundError(f"file {str(dropbox_path)} could not be written. Original message is {e}") from None
219
+ raise FileNotFoundError(f"file {str(dropbox_path)} could not be written. Original message is {e}") from None
218
220
 
219
221
 
220
222
  def delete_from_dropbox(dropbox_path):
@@ -1041,6 +1043,29 @@ def trigger_macro(sheet):
1041
1043
  sheet["A1"].value = "=NOW()"
1042
1044
 
1043
1045
 
1046
+ def timer(func):
1047
+ """
1048
+ this decorator should be placed after the @xw.script decorator
1049
+
1050
+ it will show the name, entry time, exit time and the duration, like
1051
+ Done MyScript 11:51:13.24 - 11:51:20.28 (7.04s)
1052
+
1053
+ """
1054
+
1055
+ @functools.wraps(func)
1056
+ def wrapper(*args, **kwargs):
1057
+ result = func(*args, **kwargs)
1058
+ now1 = datetime.datetime.now()
1059
+ t0 = now0.second + now0.microsecond / 1_000_000
1060
+ t1 = now1.second + now1.microsecond / 1_000_000
1061
+ print(
1062
+ f"Done {func.__name__} {now0:%H:%M:%S.}{int(now0.microsecond / 10000):02d} - {now1:%H:%M:%S.}{int(now1.microsecond / 10000):02d} ({t1 - t0:.2f}s)"
1063
+ )
1064
+ return result
1065
+
1066
+ now0 = datetime.datetime.now()
1067
+ return wrapper
1068
+
1069
+
1044
1070
  if __name__ == "__main__":
1045
1071
  ...
1046
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xlwings_utils
3
- Version: 25.1.2.post0
3
+ Version: 25.1.3
4
4
  Summary: xlwings_utils
5
5
  Author-email: Ruud van der Ham <rt.van.der.ham@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/salabim/xlwings_utils