5
5
import importlib
6
6
import os
7
7
import sys
8
+ from pathlib import Path
8
9
from typing import TYPE_CHECKING , Optional , Type , Union
9
10
10
11
if TYPE_CHECKING :
@@ -143,6 +144,118 @@ def user_log_dir(
143
144
return PlatformDirs (appname = appname , appauthor = appauthor , version = version , opinion = opinion ).user_log_dir
144
145
145
146
147
+ def user_data_path (
148
+ appname : Optional [str ] = None ,
149
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
150
+ version : Optional [str ] = None ,
151
+ roaming : bool = False ,
152
+ ) -> Path :
153
+ """
154
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
155
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
156
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
157
+ :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.version>`.
158
+ :returns: data directory tied to the user
159
+ """
160
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , roaming = roaming ).user_data_path
161
+
162
+
163
+ def site_data_path (
164
+ appname : Optional [str ] = None ,
165
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
166
+ version : Optional [str ] = None ,
167
+ multipath : bool = False ,
168
+ ) -> Path :
169
+ """
170
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
171
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
172
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
173
+ :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
174
+ :returns: data directory shared by users
175
+ """
176
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , multipath = multipath ).site_data_path
177
+
178
+
179
+ def user_config_path (
180
+ appname : Optional [str ] = None ,
181
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
182
+ version : Optional [str ] = None ,
183
+ roaming : bool = False ,
184
+ ) -> Path :
185
+ """
186
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
187
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
188
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
189
+ :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.version>`.
190
+ :returns: config directory tied to the user
191
+ """
192
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , roaming = roaming ).user_config_path
193
+
194
+
195
+ def site_config_path (
196
+ appname : Optional [str ] = None ,
197
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
198
+ version : Optional [str ] = None ,
199
+ multipath : bool = False ,
200
+ ) -> Path :
201
+ """
202
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
203
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
204
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
205
+ :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
206
+ :returns: config directory shared by the users
207
+ """
208
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , multipath = multipath ).site_config_path
209
+
210
+
211
+ def user_cache_path (
212
+ appname : Optional [str ] = None ,
213
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
214
+ version : Optional [str ] = None ,
215
+ opinion : bool = True ,
216
+ ) -> Path :
217
+ """
218
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
219
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
220
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
221
+ :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
222
+ :returns: cache directory tied to the user
223
+ """
224
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , opinion = opinion ).user_cache_path
225
+
226
+
227
+ def user_state_path (
228
+ appname : Optional [str ] = None ,
229
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
230
+ version : Optional [str ] = None ,
231
+ roaming : bool = False ,
232
+ ) -> Path :
233
+ """
234
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
235
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
236
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
237
+ :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.version>`.
238
+ :returns: state directory tied to the user
239
+ """
240
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , roaming = roaming ).user_state_path
241
+
242
+
243
+ def user_log_path (
244
+ appname : Optional [str ] = None ,
245
+ appauthor : Union [str , None , "Literal[False]" ] = None ,
246
+ version : Optional [str ] = None ,
247
+ opinion : bool = True ,
248
+ ) -> Path :
249
+ """
250
+ :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
251
+ :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
252
+ :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
253
+ :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
254
+ :returns: log directory tied to the user
255
+ """
256
+ return PlatformDirs (appname = appname , appauthor = appauthor , version = version , opinion = opinion ).user_log_path
257
+
258
+
146
259
__all__ = [
147
260
"__version__" ,
148
261
"__version_info__" ,
@@ -156,4 +269,11 @@ def user_log_dir(
156
269
"user_log_dir" ,
157
270
"site_data_dir" ,
158
271
"site_config_dir" ,
272
+ "user_data_path" ,
273
+ "user_config_path" ,
274
+ "user_cache_path" ,
275
+ "user_state_path" ,
276
+ "user_log_path" ,
277
+ "site_data_path" ,
278
+ "site_config_path" ,
159
279
]
0 commit comments