Mercurial > hgrepos > Python > libs > data-schema
diff data_schema/util.py @ 8:2352d14ae261
Make the packagedata automatic subdir customizable
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 07 Jul 2023 00:32:30 +0200 |
| parents | 84dfd1a94926 |
| children | 0ef7141030ca |
line wrap: on
line diff
--- a/data_schema/util.py Fri Jul 07 00:00:50 2023 +0200 +++ b/data_schema/util.py Fri Jul 07 00:32:30 2023 +0200 @@ -32,7 +32,8 @@ return True -def get_data_stream(uri, basedir=None, basepackage=None): +def get_data_stream(uri, basedir=None, + basepackage=None, packagesubdir="packagedata"): """ "data:" URIs are resolved as Python package resources for packages @@ -41,7 +42,7 @@ "file:" URIs are resolved by prepending `basedir` to the URI path. - "data:" URIs are resolve within "<basepackage>.packagedata". + "data:" URIs are resolve within "<basepackage>.<packagesubdir>". The returned stream needs to be closes as usual. @@ -79,13 +80,17 @@ datapath_sep = '.' else: datapath_sep = '' + if packagesubdir: + psubdir = "." + packagesubdir return il_resources.open_binary( - datapackage + '.packagedata' + datapath_sep + datapackage + psubdir + datapath_sep + '.'.join(datapath_dirs), # noqa: E131 datapath_file) else: + if packagesubdir: + psubdir = packagesubdir + "/" return pkg_resources.resource_stream( # noqa:E501 # pylint:disable=used-before-assignment - datapackage, "packagedata/" + datapath) + datapackage, psubdir + datapath) else: raise ValueError( "URI path for the `data' scheme must not be absolute")
