Skip to content

Commit bc20482

Browse files
committed
Pass "parties" to constructor in RustCargoCrate class
Signed-off-by: Ritiek Malhotra <[email protected]>
1 parent 1f3aac4 commit bc20482

File tree

1 file changed

+12
-18
lines changed

1 file changed

+12
-18
lines changed

src/packagedcode/cargo.py

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from __future__ import unicode_literals
2828

2929
from collections import OrderedDict
30-
from functools import partial
3130
import io
3231
import toml
3332
import logging
@@ -118,37 +117,32 @@ def build_package(package_data):
118117
for key in ('source_packages', 'dependencies', 'keywords'):
119118
ordered_dict_map[key] = OrderedDict()
120119

120+
authors = core_package_data.get('authors')
121+
parties = list(party_mapper(authors, party_role='author'))
122+
121123
package = RustCargoCrate(
122124
name=name,
123125
version=version,
124126
description=description,
125-
**ordered_dict_map
127+
parties=parties,
128+
**ordererd_dict_map,
126129
)
127130

128-
field_mappers = [
129-
('authors', partial(party_mapper, party_type='author')),
130-
]
131-
for source, func in field_mappers:
132-
value = core_package_data.get(source, [])
133-
func(value, package)
134-
135131
return package
136132

137133

138-
def party_mapper(party, package, party_type):
134+
def party_mapper(party, party_role):
139135
"""
140-
Update package parties with party of `party_type` and return package.
136+
Yields a Party object with party of `party_role`.
141137
https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field-optional
142138
"""
143-
for auth in party:
144-
name, email = parse_person(auth)
145-
package.parties.append(models.Party(
139+
for person in party:
140+
name, email = parse_person(person)
141+
yield models.Party(
146142
type=models.party_person,
147143
name=name,
148-
role=party_type,
149-
email=email))
150-
151-
return package
144+
role=party_role,
145+
email=email)
152146

153147

154148
def parse_person(person):

0 commit comments

Comments
 (0)