From 61eeb421416595f042e4733fd6d7d8372a5de23f Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 12 Oct 2021 20:18:25 +1000 Subject: [PATCH] python-packaging: honor add_context.include for non-stdlib extension modules The setting was previously indiscriminately ignored, meaning it wasn't possible to prevent third-party extension modules from being included in the build. Related: #405 --- .../pyoxidizer_config_type_python_extension_module.rst | 3 +++ python-packaging/src/resource_collection.rs | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pyoxidizer/docs/pyoxidizer_config_type_python_extension_module.rst b/pyoxidizer/docs/pyoxidizer_config_type_python_extension_module.rst index 5551b0d1b..633719572 100644 --- a/pyoxidizer/docs/pyoxidizer_config_type_python_extension_module.rst +++ b/pyoxidizer/docs/pyoxidizer_config_type_python_extension_module.rst @@ -26,3 +26,6 @@ (various) See :ref:`config_resource_add_attributes`. + + Note: `add_include` is currently ignored for builtin modules, and can not + be used to control their inclusion. diff --git a/python-packaging/src/resource_collection.rs b/python-packaging/src/resource_collection.rs index 7a371ea05..657a590f4 100644 --- a/python-packaging/src/resource_collection.rs +++ b/python-packaging/src/resource_collection.rs @@ -1301,10 +1301,10 @@ impl PythonResourceCollector { extension_module: &PythonExtensionModule, add_context: &PythonResourceAddCollectionContext, ) -> Result> { - // TODO consult this attribute (it isn't set for built-ins for some reason) - //if !add_context.include { - // return Ok(None); - // } + // TODO: investigate why `include` is always false for stdlib modules + if !add_context.include && !extension_module.is_stdlib { + return Ok(None); + } // Whether we can load extension modules as standalone shared library files. let can_load_standalone = self