From aabde0e1921e844cc9acbf08d5e78222b62d439b Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Mon, 22 Jul 2024 21:16:08 +0200 Subject: [PATCH 1/2] Fix duplicated includes --- python/podio_gen/cpp_generator.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/python/podio_gen/cpp_generator.py b/python/podio_gen/cpp_generator.py index 21ec9d97e..8987e9949 100644 --- a/python/podio_gen/cpp_generator.py +++ b/python/podio_gen/cpp_generator.py @@ -591,17 +591,24 @@ def _build_include_for_class(self, classname, include_from: IncludeFrom) -> str: def _sort_includes(self, includes): """Sort the includes in order to try to have the std includes at the bottom""" - package_includes = sorted(i for i in includes if self.package_name in i) - podio_includes = sorted(i for i in includes if "podio" in i) - stl_includes = sorted(i for i in includes if "<" in i and ">" in i) - + package_includes = [] + podio_includes = [] + stl_includes = [] upstream_includes = [] - if self.upstream_edm: - upstream_includes = sorted( - i for i in includes if self.upstream_edm.options["includeSubfolder"] in i - ) - - # Are their includes that fulfill more than one of the above conditions? Are - # there includes that fulfill none? + for include in includes: + if self.package_name in include: + package_includes.append(include) + elif "podio" in include: + podio_includes.append(include) + elif "<" in include and ">" in include: + stl_includes.append(include) + elif self.upstream_edm and self.upstream_edm.options["includeSubfolder"] in include: + upstream_includes.append(include) + else: + print(f"Warning: unable to include '{include}'") + package_includes.sort() + podio_includes.sort() + stl_includes.sort() + upstream_includes.sort() return package_includes + upstream_includes + podio_includes + stl_includes From 37bc0a85a53292d24fdeaaa7cd01113f0ca6183e Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Tue, 23 Jul 2024 08:00:53 +0200 Subject: [PATCH 2/2] Only process non-empty includes --- python/podio_gen/cpp_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/podio_gen/cpp_generator.py b/python/podio_gen/cpp_generator.py index 8987e9949..bfc16e50e 100644 --- a/python/podio_gen/cpp_generator.py +++ b/python/podio_gen/cpp_generator.py @@ -595,7 +595,7 @@ def _sort_includes(self, includes): podio_includes = [] stl_includes = [] upstream_includes = [] - for include in includes: + for include in (inc for inc in includes if inc): if self.package_name in include: package_includes.append(include) elif "podio" in include: