summaryrefslogtreecommitdiff
path: root/Modules/clinic
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2018-01-24 15:36:21 -0500
committerGitHub <noreply@github.com>2018-01-24 15:36:21 -0500
commit6f6eb35f9bee18f54945f09664344f2d118ed89f (patch)
treee1e7432ccc9f7755d85da2803181f04504ac3894 /Modules/clinic
parent789e359f51d2b27bea01b8c6c3bf090aaedf8839 (diff)
downloadcpython-git-6f6eb35f9bee18f54945f09664344f2d118ed89f.tar.gz
bpo-32248 - Implement `ResourceReader` and `get_resource_reader()` for zipimport (#5248)
Diffstat (limited to 'Modules/clinic')
-rw-r--r--Modules/clinic/zipimport.c.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/Modules/clinic/zipimport.c.h b/Modules/clinic/zipimport.c.h
index 548aade6ef..565b065303 100644
--- a/Modules/clinic/zipimport.c.h
+++ b/Modules/clinic/zipimport.c.h
@@ -291,4 +291,35 @@ zipimport_zipimporter_get_source(ZipImporter *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=93cb62a3a9752b9f input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(zipimport_zipimporter_get_resource_reader__doc__,
+"get_resource_reader($self, fullname, /)\n"
+"--\n"
+"\n"
+"Return the ResourceReader for a package in a zip file.\n"
+"\n"
+"If \'fullname\' is a package within the zip file, return the \'ResourceReader\'\n"
+"object for the package. Otherwise return None.");
+
+#define ZIPIMPORT_ZIPIMPORTER_GET_RESOURCE_READER_METHODDEF \
+ {"get_resource_reader", (PyCFunction)zipimport_zipimporter_get_resource_reader, METH_O, zipimport_zipimporter_get_resource_reader__doc__},
+
+static PyObject *
+zipimport_zipimporter_get_resource_reader_impl(ZipImporter *self,
+ PyObject *fullname);
+
+static PyObject *
+zipimport_zipimporter_get_resource_reader(ZipImporter *self, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *fullname;
+
+ if (!PyArg_Parse(arg, "U:get_resource_reader", &fullname)) {
+ goto exit;
+ }
+ return_value = zipimport_zipimporter_get_resource_reader_impl(self, fullname);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=0b57adfe21373512 input=a9049054013a1b77]*/