diff mbox series

[1/6] meta/lib/oe/sbom30.py: correct python list comprehension

Message ID 20241026032519.1968518-2-hongxu.jia@windriver.com
State Accepted, archived
Commit e13c54645bf716ddfb19606fd212cc349b570ad4
Headers show
Series Support SPDX include source for work-share directory | expand

Commit Message

Hongxu Jia Oct. 26, 2024, 3:25 a.m. UTC
The python list comprehension is not right for list:
>>> license_text_map = {'LicenseRef-FSF-Unlimited': 'http://spdx.org/spdxdocs/gettext-minimal-native-1fa0d5cb-2bb8-5631-9fab-cd219801733f/8d31e22acc4a8979f24dc24042692fb548fc8fc8d85d775ddac406abb122ceea/license-text/FSF-Unlimited'}
>>> license_text = ((k, license_text_map[k]) for k in sorted(license_text_map.keys()))
>>> print(license_text)
<generator object <genexpr> at 0x7f8575173270>
>>> [(k,v) for k, v in license_text]
[]

After apply this commit, as expected
>>> license_text = []
>>> for k in sorted(license_text_map.keys()):
...     license_text.append((k, license_text_map[k]))
...
>>> license_text
[('LicenseRef-FSF-Unlimited', 'http://spdx.org/spdxdocs/gettext-minimal-native-1fa0d5cb-2bb8-5631-9fab-cd219801733f/8d31e22acc4a8979f24dc24042692fb548fc8fc8d85d775ddac406abb122ceea/license-text/FSF-Unlimited')]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta/lib/oe/sbom30.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Joshua Watt Oct. 28, 2024, 7:45 p.m. UTC | #1
On Fri, Oct 25, 2024 at 9:25 PM Hongxu Jia <hongxu.jia@windriver.com> wrote:
>
> The python list comprehension is not right for list:
> >>> license_text_map = {'LicenseRef-FSF-Unlimited': 'http://spdx.org/spdxdocs/gettext-minimal-native-1fa0d5cb-2bb8-5631-9fab-cd219801733f/8d31e22acc4a8979f24dc24042692fb548fc8fc8d85d775ddac406abb122ceea/license-text/FSF-Unlimited'}
> >>> license_text = ((k, license_text_map[k]) for k in sorted(license_text_map.keys()))
> >>> print(license_text)
> <generator object <genexpr> at 0x7f8575173270>
> >>> [(k,v) for k, v in license_text]
> []
>
> After apply this commit, as expected
> >>> license_text = []
> >>> for k in sorted(license_text_map.keys()):
> ...     license_text.append((k, license_text_map[k]))
> ...
> >>> license_text
> [('LicenseRef-FSF-Unlimited', 'http://spdx.org/spdxdocs/gettext-minimal-native-1fa0d5cb-2bb8-5631-9fab-cd219801733f/8d31e22acc4a8979f24dc24042692fb548fc8fc8d85d775ddac406abb122ceea/license-text/FSF-Unlimited')]
>
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>  meta/lib/oe/sbom30.py | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py
> index 27ab5e45ac..73a957a20c 100644
> --- a/meta/lib/oe/sbom30.py
> +++ b/meta/lib/oe/sbom30.py
> @@ -577,9 +577,9 @@ class ObjectSet(oe.spdx30.SHACLObjectSet):
>              re.sub(r"[^a-zA-Z0-9_-]", "_", license_expression),
>          ]
>
> -        license_text = (
> -            (k, license_text_map[k]) for k in sorted(license_text_map.keys())
> -        )

Probably just change the () to [] to make it a list instead of a
generator expression (I probably was trying to make it a tuple, but
forgot that it would be a generator instead; it doesn't need to be a
tuple).

> +        license_text = []
> +        for k in sorted(license_text_map.keys()):
> +            license_text.append((k, license_text_map[k]))
>
>          if not license_text:
>              lic = self.find_filter(
> --
> 2.25.1
>
Hongxu Jia Oct. 29, 2024, 3:23 a.m. UTC | #2
Confirm, V2 incoming

//Hongxu

On Fri, Oct 25, 2024 at 9:25 PM Hongxu Jia <hongxu.jia@windriver.com> wrote:
>
> The python list comprehension is not right for list:
> >>> license_text_map = {'LicenseRef-FSF-Unlimited': 'http://spdx.org/spdxdocs/gettext-minimal-native-1fa0d5cb-2bb8-5631-9fab-cd219801733f/8d31e22acc4a8979f24dc24042692fb548fc8fc8d85d775ddac406abb122ceea/license-text/FSF-Unlimited'}
> >>> license_text = ((k, license_text_map[k]) for k in sorted(license_text_map.keys()))
> >>> print(license_text)
> <generator object <genexpr> at 0x7f8575173270>
> >>> [(k,v) for k, v in license_text]
> []
>
> After apply this commit, as expected
> >>> license_text = []
> >>> for k in sorted(license_text_map.keys()):
> ...     license_text.append((k, license_text_map[k]))
> ...
> >>> license_text
> [('LicenseRef-FSF-Unlimited', 'http://spdx.org/spdxdocs/gettext-minimal-native-1fa0d5cb-2bb8-5631-9fab-cd219801733f/8d31e22acc4a8979f24dc24042692fb548fc8fc8d85d775ddac406abb122ceea/license-text/FSF-Unlimited')]
>
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>  meta/lib/oe/sbom30.py | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py
> index 27ab5e45ac..73a957a20c 100644
> --- a/meta/lib/oe/sbom30.py
> +++ b/meta/lib/oe/sbom30.py
> @@ -577,9 +577,9 @@ class ObjectSet(oe.spdx30.SHACLObjectSet):
>              re.sub(r"[^a-zA-Z0-9_-]", "_", license_expression),
>          ]
>
> -        license_text = (
> -            (k, license_text_map[k]) for k in sorted(license_text_map.keys())
> -        )

Probably just change the () to [] to make it a list instead of a
generator expression (I probably was trying to make it a tuple, but
forgot that it would be a generator instead; it doesn't need to be a
tuple).

> +        license_text = []
> +        for k in sorted(license_text_map.keys()):
> +            license_text.append((k, license_text_map[k]))
>
>          if not license_text:
>              lic = self.find_filter(
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py
index 27ab5e45ac..73a957a20c 100644
--- a/meta/lib/oe/sbom30.py
+++ b/meta/lib/oe/sbom30.py
@@ -577,9 +577,9 @@  class ObjectSet(oe.spdx30.SHACLObjectSet):
             re.sub(r"[^a-zA-Z0-9_-]", "_", license_expression),
         ]
 
-        license_text = (
-            (k, license_text_map[k]) for k in sorted(license_text_map.keys())
-        )
+        license_text = []
+        for k in sorted(license_text_map.keys()):
+            license_text.append((k, license_text_map[k]))
 
         if not license_text:
             lic = self.find_filter(