DIRACCommon 9.1.7__tar.gz → 9.1.9__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 (55) hide show
  1. {diraccommon-9.1.7 → diraccommon-9.1.9}/PKG-INFO +1 -1
  2. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/ReturnValues.py +37 -2
  3. {diraccommon-9.1.7 → diraccommon-9.1.9}/.gitignore +0 -0
  4. {diraccommon-9.1.7 → diraccommon-9.1.9}/LICENSE +0 -0
  5. {diraccommon-9.1.7 → diraccommon-9.1.9}/README.md +0 -0
  6. {diraccommon-9.1.7 → diraccommon-9.1.9}/pyproject.toml +0 -0
  7. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/ConfigurationSystem/Client/Helpers/Resources.py +0 -0
  8. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/ConfigurationSystem/Client/Helpers/__init__.py +0 -0
  9. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/ConfigurationSystem/Client/__init__.py +0 -0
  10. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/ConfigurationSystem/__init__.py +0 -0
  11. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/ClassAd/ClassAdLight.py +0 -0
  12. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/ClassAd/__init__.py +0 -0
  13. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/DErrno.py +0 -0
  14. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/JDL.py +0 -0
  15. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/List.py +0 -0
  16. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/StateMachine.py +0 -0
  17. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/TimeUtilities.py +0 -0
  18. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/Utilities/__init__.py +0 -0
  19. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/Core/__init__.py +0 -0
  20. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Client/JobState/JobManifest.py +0 -0
  21. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Client/JobState/__init__.py +0 -0
  22. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Client/JobStatus.py +0 -0
  23. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Client/__init__.py +0 -0
  24. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/DB/JobDBUtils.py +0 -0
  25. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/DB/__init__.py +0 -0
  26. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Utilities/JobModel.py +0 -0
  27. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Utilities/JobStatusUtility.py +0 -0
  28. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Utilities/ParametricJob.py +0 -0
  29. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/Utilities/__init__.py +0 -0
  30. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/WorkloadManagementSystem/__init__.py +0 -0
  31. {diraccommon-9.1.7 → diraccommon-9.1.9}/src/DIRACCommon/__init__.py +0 -0
  32. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/ConfigurationSystem/Client/Helpers/__init__.py +0 -0
  33. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/ConfigurationSystem/Client/Helpers/test_Resources.py +0 -0
  34. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/ConfigurationSystem/Client/__init__.py +0 -0
  35. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/ConfigurationSystem/__init__.py +0 -0
  36. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/ClassAd/__init__.py +0 -0
  37. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/ClassAd/test_ClassAdLight.py +0 -0
  38. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/__init__.py +0 -0
  39. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/test_DErrno.py +0 -0
  40. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/test_JDL.py +0 -0
  41. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/test_List.py +0 -0
  42. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/test_ReturnValues.py +0 -0
  43. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/Utilities/test_TimeUtilities.py +0 -0
  44. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/Core/__init__.py +0 -0
  45. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Client/JobState/__init__.py +0 -0
  46. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Client/JobState/test_JobManifest.py +0 -0
  47. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Client/__init__.py +0 -0
  48. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/DB/__init__.py +0 -0
  49. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/DB/test_JobDBUtils.py +0 -0
  50. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Utilities/__init__.py +0 -0
  51. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Utilities/test_JobModel.py +0 -0
  52. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Utilities/test_JobStatusUtility.py +0 -0
  53. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/Utilities/test_ParametricJob.py +0 -0
  54. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/WorkloadManagementSystem/__init__.py +0 -0
  55. {diraccommon-9.1.7 → diraccommon-9.1.9}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DIRACCommon
3
- Version: 9.1.7
3
+ Version: 9.1.9
4
4
  Summary: Stateless utilities extracted from DIRAC for use by DiracX and other projects
5
5
  Project-URL: Homepage, https://github.com/DIRACGrid/DIRAC
6
6
  Project-URL: Documentation, https://dirac.readthedocs.io/
@@ -8,6 +8,7 @@
8
8
  from __future__ import annotations
9
9
 
10
10
  import functools
11
+ import linecache
11
12
  import sys
12
13
  import traceback
13
14
  from types import TracebackType
@@ -41,6 +42,41 @@ class DErrorReturnType(TypedDict):
41
42
  DReturnType = Union[DOKReturnType[T], DErrorReturnType]
42
43
 
43
44
 
45
+ def _formatStackCached(skip: int = 1) -> list[str]:
46
+ """Like ``traceback.format_stack()`` but without the per-frame ``stat()``.
47
+
48
+ Source files are read into ``linecache`` once and reused; cached lines may
49
+ therefore lag behind a mid-process source edit.
50
+ """
51
+ frame = sys._getframe(skip)
52
+ frames = []
53
+ while frame is not None:
54
+ code = frame.f_code
55
+ frames.append((code.co_filename, frame.f_lineno, code.co_name))
56
+ frame = frame.f_back
57
+ frames.reverse()
58
+
59
+ cache = linecache.cache
60
+ out = []
61
+ for filename, lineno, name in frames:
62
+ if filename not in cache:
63
+ try:
64
+ linecache.updatecache(filename)
65
+ except OSError:
66
+ pass
67
+ cached = cache.get(filename)
68
+ line_text = ""
69
+ if cached is not None:
70
+ file_lines = cached[2]
71
+ if 0 < lineno <= len(file_lines):
72
+ line_text = file_lines[lineno - 1].strip()
73
+ formatted = f' File "{filename}", line {lineno}, in {name}\n'
74
+ if line_text:
75
+ formatted += f" {line_text}\n"
76
+ out.append(formatted)
77
+ return out
78
+
79
+
44
80
  def S_ERROR(*args: Any, **kwargs: Any) -> DErrorReturnType:
45
81
  """return value on error condition
46
82
 
@@ -69,8 +105,7 @@ def S_ERROR(*args: Any, **kwargs: Any) -> DErrorReturnType:
69
105
 
70
106
  if callStack is None:
71
107
  try:
72
- callStack = traceback.format_stack()
73
- callStack.pop()
108
+ callStack = _formatStackCached(skip=2)
74
109
  except Exception:
75
110
  callStack = []
76
111
 
File without changes
File without changes
File without changes
File without changes