Skip to content

Commit 24458c5

Browse files
committed
Move functions to utils.py #2929
Signed-off-by: Jono Yang <[email protected]>
1 parent a13f81e commit 24458c5

File tree

3 files changed

+30
-49
lines changed

3 files changed

+30
-49
lines changed

src/packagedcode/npm.py

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
from packagedcode import models
2020
from packagedcode.utils import combine_expressions
2121
from packagedcode.utils import normalize_vcs_url
22+
from packagedcode.utils import yield_dependencies_from_package_data
23+
from packagedcode.utils import yield_dependencies_from_package_resource
2224
import saneyaml
2325

2426
"""
@@ -36,29 +38,6 @@
3638
# TODO: add support for "lockfileVersion": 2 for package-lock.json and lockfileVersion: 3
3739

3840

39-
def yield_npm_dependencies_from_package_data(package_data, datafile_path, package_uid):
40-
"""
41-
Yield a Dependency for each dependency from ``package_data.dependencies``
42-
"""
43-
dependent_packages = package_data.dependencies
44-
if dependent_packages:
45-
yield from models.Dependency.from_dependent_packages(
46-
dependent_packages=dependent_packages,
47-
datafile_path=datafile_path,
48-
datasource_id=package_data.datasource_id,
49-
package_uid=package_uid,
50-
)
51-
52-
53-
def yield_npm_dependencies_from_package_resource(resource, package_uid=None):
54-
"""
55-
Yield a Dependency for each dependency from each package from``resource.package_data``
56-
"""
57-
for pkg_data in resource.package_data:
58-
pkg_data = models.PackageData.from_dict(pkg_data)
59-
yield_npm_dependencies_from_package_data(pkg_data, resource.location, package_uid)
60-
61-
6241
class BaseNpmHandler(models.DatafileHandler):
6342

6443
@classmethod
@@ -120,22 +99,22 @@ def assemble(cls, package_data, resource, codebase):
12099
package_uid = None
121100

122101
# in all cases yield possible dependencies
123-
yield from yield_npm_dependencies_from_package_data(package_data, package_resource.path, package_uid)
102+
yield from yield_dependencies_from_package_data(package_data, package_resource.path, package_uid)
124103

125104
# we yield this as we do not want this further processed
126105
yield package_resource
127106

128107
for sibling in package_resource.siblings(codebase):
129108
if sibling.name in datafile_name_patterns:
130-
yield_npm_dependencies_from_package_resource(sibling, package_uid)
109+
yield_dependencies_from_package_resource(sibling, package_uid)
131110

132111
if package_uid not in sibling.for_packages:
133112
sibling.for_packages.append(package_uid)
134113
sibling.save(codebase)
135114
yield sibling
136115
else:
137116
# we do not have a package.json
138-
yield_npm_dependencies_from_package_resource(resource)
117+
yield_dependencies_from_package_resource(resource)
139118

140119
@classmethod
141120
def walk_npm(cls, resource, codebase, depth=0):

src/packagedcode/pypi.py

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
from packagedcode import models
3131
from packagedcode.utils import build_description
3232
from packagedcode.utils import combine_expressions
33+
from packagedcode.utils import yield_dependencies_from_package_data
34+
from packagedcode.utils import yield_dependencies_from_package_resource
3335

3436
# FIXME: we always want to use the external library rather than the built-in for now
3537
import importlib_metadata
@@ -118,29 +120,6 @@ def assign_package_to_resources(cls, package, resource, codebase):
118120
return models.DatafileHandler.assign_package_to_parent_tree(package, resource, codebase)
119121

120122

121-
def yield_dependencies_from_package_data(package_data, datafile_path, package_uid):
122-
"""
123-
Yield a Dependency for each dependency from ``package_data.dependencies``
124-
"""
125-
dependent_packages = package_data.dependencies
126-
if dependent_packages:
127-
yield from models.Dependency.from_dependent_packages(
128-
dependent_packages=dependent_packages,
129-
datafile_path=datafile_path,
130-
datasource_id=package_data.datasource_id,
131-
package_uid=package_uid,
132-
)
133-
134-
135-
def yield_dependencies_from_package_resource(resource, package_uid=None):
136-
"""
137-
Yield a Dependency for each dependency from each package from``resource.package_data``
138-
"""
139-
for pkg_data in resource.package_data:
140-
pkg_data = models.PackageData.from_dict(pkg_data)
141-
yield_dependencies_from_package_data(pkg_data, resource.location, package_uid)
142-
143-
144123
class BaseExtractedPythonLayout(BasePypiHandler):
145124
"""
146125
Base class for development repos, sdist tarballs and other related extracted

src/packagedcode/utils.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,26 @@ def find_root_resource(path, resource, codebase):
184184
return resource
185185

186186

187+
def yield_dependencies_from_package_data(package_data, datafile_path, package_uid):
188+
"""
189+
Yield a Dependency for each dependency from ``package_data.dependencies``
190+
"""
191+
from packagedcode import models
192+
dependent_packages = package_data.dependencies
193+
if dependent_packages:
194+
yield from models.Dependency.from_dependent_packages(
195+
dependent_packages=dependent_packages,
196+
datafile_path=datafile_path,
197+
datasource_id=package_data.datasource_id,
198+
package_uid=package_uid,
199+
)
200+
201+
202+
def yield_dependencies_from_package_resource(resource, package_uid=None):
203+
"""
204+
Yield a Dependency for each dependency from each package from``resource.package_data``
205+
"""
206+
from packagedcode import models
207+
for pkg_data in resource.package_data:
208+
pkg_data = models.PackageData.from_dict(pkg_data)
209+
yield_dependencies_from_package_data(pkg_data, resource.location, package_uid)

0 commit comments

Comments
 (0)