# HG changeset patch # User Franz Glasner # Date 1688682750 -7200 # Node ID 2352d14ae261aee460fea6ceb8b431bf8c05359a # Parent 72f8dd2ce0babdaa01a66223e651db949f03da15 Make the packagedata automatic subdir customizable diff -r 72f8dd2ce0ba -r 2352d14ae261 data_schema/util.py --- 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 ".packagedata". + "data:" URIs are resolve within ".". 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")