@@ -120,6 +120,16 @@ def assign_package_to_resources(cls, package, resource, codebase):
120120 return models .DatafileHandler .assign_package_to_parent_tree (package , resource , codebase )
121121
122122
123+ def create_package_from_package_data (package_data , datafile_path ):
124+ package = models .Package .from_package_data (
125+ package_data = package_data ,
126+ datafile_path = datafile_path ,
127+ )
128+ if not package .license_expression :
129+ package .license_expression = compute_normalized_license (package .declared_license )
130+ return package
131+
132+
123133class BaseExtractedPythonLayout (BasePypiHandler ):
124134 """
125135 Base class for development repos, sdist tarballs and other related extracted
@@ -152,10 +162,12 @@ def assemble(cls, package_data, resource, codebase):
152162 pkg_data = package_resource .package_data [0 ]
153163 pkg_data = models .PackageData .from_dict (pkg_data )
154164 if pkg_data .purl :
155- package = models . Package . from_package_data (
165+ package = create_package_from_package_data (
156166 package_data = pkg_data ,
157- datafile_path = package_resource .path ,
167+ datafile_path = package_resource .path
158168 )
169+ yield package
170+
159171 package_resource .for_packages .append (package .package_uid )
160172 package_resource .save (codebase )
161173 yield package_resource
@@ -183,10 +195,11 @@ def assemble(cls, package_data, resource, codebase):
183195 for setup_resource , setup_pkg_data in setup_package_data :
184196 if setup_pkg_data .purl :
185197 if not package :
186- package = models . Package . from_package_data (
198+ package = create_package_from_package_data (
187199 package_data = setup_pkg_data ,
188- datafile_path = setup_resource .path ,
200+ datafile_path = setup_resource .path
189201 )
202+ yield package
190203 package_resource = setup_resource
191204 else :
192205 package .update (setup_pkg_data , setup_resource .path )
@@ -203,8 +216,6 @@ def assemble(cls, package_data, resource, codebase):
203216 )
204217
205218 if package :
206- if not package .license_expression :
207- package .license_expression = compute_normalized_license (package .declared_license )
208219 package_uid = package .package_uid
209220
210221 root = package_resource .parent (codebase )
@@ -221,8 +232,6 @@ def assemble(cls, package_data, resource, codebase):
221232 package_resource .for_packages .append (package_uid )
222233 package_resource .save (codebase )
223234
224- yield package
225-
226235 else :
227236 package_uid = None
228237
0 commit comments