|
5 | 5 | import ast |
6 | 6 | import importlib |
7 | 7 | import inspect |
| 8 | +import os |
8 | 9 | import pathlib |
9 | 10 | import site |
10 | 11 | import warnings |
@@ -102,57 +103,71 @@ def _enable(): |
102 | 103 | raise |
103 | 104 |
|
104 | 105 |
|
105 | | -def _clear(): |
| 106 | +def _clear(cache_dir=None): |
106 | 107 | """ |
107 | 108 | Clear numba cache |
108 | 109 |
|
109 | 110 | Parameters |
110 | 111 | ---------- |
111 | | - None |
| 112 | + cache_dir : str |
| 113 | + The path to the numba cache directory |
112 | 114 |
|
113 | 115 | Returns |
114 | 116 | ------- |
115 | 117 | None |
116 | 118 | """ |
117 | | - site_pkg_dir = site.getsitepackages()[0] |
118 | | - numba_cache_dir = site_pkg_dir + "/stumpy/__pycache__" |
| 119 | + if cache_dir is not None: # pragma: no cover |
| 120 | + numba_cache_dir = str(cache_dir) |
| 121 | + elif "PYTEST_CURRENT_TEST" in os.environ: |
| 122 | + numba_cache_dir = "stumpy/__pycache__" |
| 123 | + else: # pragma: no cover |
| 124 | + site_pkg_dir = site.getsitepackages()[0] |
| 125 | + numba_cache_dir = site_pkg_dir + "/stumpy/__pycache__" |
| 126 | + |
119 | 127 | [f.unlink() for f in pathlib.Path(numba_cache_dir).glob("*nb*") if f.is_file()] |
120 | 128 |
|
121 | 129 |
|
122 | | -def clear(): |
| 130 | +def clear(cache_dir=None): |
123 | 131 | """ |
124 | 132 | Clear numba cache directory |
125 | 133 |
|
126 | 134 | Parameters |
127 | 135 | ---------- |
128 | | - None |
| 136 | + cache_dir : str |
| 137 | + The path to the numba cache directory |
129 | 138 |
|
130 | 139 | Returns |
131 | 140 | ------- |
132 | 141 | None |
133 | 142 | """ |
134 | 143 | warnings.warn(CACHE_WARNING) |
135 | | - _clear() |
| 144 | + _clear(cache_dir) |
136 | 145 |
|
137 | 146 | return |
138 | 147 |
|
139 | 148 |
|
140 | | -def _get_cache(): |
| 149 | +def _get_cache(cache_dir=None): |
141 | 150 | """ |
142 | 151 | Retrieve a list of cached numba functions |
143 | 152 |
|
144 | 153 | Parameters |
145 | 154 | ---------- |
146 | | - None |
| 155 | + cache_dir : str |
| 156 | + The path to the numba cache directory |
147 | 157 |
|
148 | 158 | Returns |
149 | 159 | ------- |
150 | 160 | out : list |
151 | 161 | A list of cached numba functions |
152 | 162 | """ |
153 | 163 | warnings.warn(CACHE_WARNING) |
154 | | - site_pkg_dir = site.getsitepackages()[0] |
155 | | - numba_cache_dir = site_pkg_dir + "/stumpy/__pycache__" |
| 164 | + if cache_dir is not None: # pragma: no cover |
| 165 | + numba_cache_dir = str(cache_dir) |
| 166 | + if "PYTEST_CURRENT_TEST" in os.environ: |
| 167 | + numba_cache_dir = "stumpy/__pycache__" |
| 168 | + else: # pragma: no cover |
| 169 | + site_pkg_dir = site.getsitepackages()[0] |
| 170 | + numba_cache_dir = site_pkg_dir + "/stumpy/__pycache__" |
156 | 171 | return [f.name for f in pathlib.Path(numba_cache_dir).glob("*nb*") if f.is_file()] |
157 | 172 |
|
158 | 173 |
|
|
0 commit comments