Skip to content

Commit 6894fc8

Browse files
committed
Use parent dir basename as Package name
* If no package name is detected in a README.* file, then use the parent directory basename as the package name * Update tests Signed-off-by: Jono Yang <[email protected]>
1 parent a086737 commit 6894fc8

File tree

11 files changed

+70
-13
lines changed

11 files changed

+70
-13
lines changed

src/packagedcode/readme.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,16 @@ def parse(location):
8282
with open(location, encoding='utf-8') as loc:
8383
readme_manifest = loc.read()
8484

85-
return build_package(readme_manifest)
85+
package = build_package(readme_manifest)
86+
87+
if not package.name:
88+
# If no name was detected for the Package, then we use the basename of
89+
# the parent directory as the Package name
90+
parent_dir = fileutils.parent_directory(location)
91+
parent_dir_basename = fileutils.file_base_name(parent_dir)
92+
package.name = parent_dir_basename
93+
94+
return package
8695

8796

8897
def build_package(readme_manifest):
@@ -97,7 +106,7 @@ def build_package(readme_manifest):
97106

98107
if not key or not value:
99108
continue
100-
109+
101110
# Map the key, value pairs to the Package
102111
key, value = key.lower(), value.strip()
103112
if key in README_MAPPING['name']:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Project URL: https://pypi.python.org/packages/source/s/setuptools/setuptools-18.5.tar.gz#md5=533c868f01169a3085177dffe5e768bb
2+
Project: setuptools
23
Version: 18.5
34
License: PSF or ZPL
45
Local modifications: kept only pkg_resources & _markerlib modules

tests/packagedcode/data/readme/facebook/basic/README.facebook.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "readme",
33
"namespace": null,
4-
"name": null,
4+
"name": "setuptools",
55
"version": "18.5",
66
"qualifiers": {},
77
"subpath": null,
@@ -28,7 +28,7 @@
2828
"dependencies": [],
2929
"contains_source_code": null,
3030
"source_packages": [],
31-
"purl": null,
31+
"purl": "pkg:readme/[email protected]",
3232
"repository_homepage_url": null,
3333
"repository_download_url": null,
3434
"api_data_url": null
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Project URL: https://pypi.python.org/packages/source/s/setuptools/setuptools-18.5.tar.gz#md5=533c868f01169a3085177dffe5e768bb
2+
Project: setuptools
23
Version: 18.5
34
License: PSF or ZPL
45
Local modifications: kept only pkg_resources & _markerlib modules

tests/packagedcode/data/readme/facebook/capital-filename/README.FACEBOOK.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "readme",
33
"namespace": null,
4-
"name": null,
4+
"name": "setuptools",
55
"version": "18.5",
66
"qualifiers": {},
77
"subpath": null,
@@ -28,7 +28,7 @@
2828
"dependencies": [],
2929
"contains_source_code": null,
3030
"source_packages": [],
31-
"purl": null,
31+
"purl": "pkg:readme/[email protected]",
3232
"repository_homepage_url": null,
3333
"repository_download_url": null,
3434
"api_data_url": null

tests/packagedcode/data/readme/facebook/missing-type/README.facebook.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "readme",
33
"namespace": null,
4-
"name": null,
4+
"name": "missing-type",
55
"version": null,
66
"qualifiers": {},
77
"subpath": null,
@@ -28,7 +28,7 @@
2828
"dependencies": [],
2929
"contains_source_code": null,
3030
"source_packages": [],
31-
"purl": null,
31+
"purl": "pkg:readme/missing-type",
3232
"repository_homepage_url": null,
3333
"repository_download_url": null,
3434
"api_data_url": null
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Project URL: https://pypi.python.org/packages/source/s/setuptools/setuptools-18.5.tar.gz#md5=533c868f01169a3085177dffe5e768bb
2+
Version: 18.5
3+
License: PSF or ZPL
4+
Local modifications: kept only pkg_resources & _markerlib modules
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"type": "readme",
3+
"namespace": null,
4+
"name": "setuptools",
5+
"version": "18.5",
6+
"qualifiers": {},
7+
"subpath": null,
8+
"primary_language": null,
9+
"description": null,
10+
"release_date": null,
11+
"parties": [],
12+
"keywords": [],
13+
"homepage_url": "https://pypi.python.org/packages/source/s/setuptools/setuptools-18.5.tar.gz#md5=533c868f01169a3085177dffe5e768bb",
14+
"download_url": null,
15+
"size": null,
16+
"sha1": null,
17+
"md5": null,
18+
"sha256": null,
19+
"sha512": null,
20+
"bug_tracking_url": null,
21+
"code_view_url": null,
22+
"vcs_url": null,
23+
"copyright": null,
24+
"license_expression": "unknown",
25+
"declared_license": "PSF or ZPL",
26+
"notice_text": null,
27+
"root_path": null,
28+
"dependencies": [],
29+
"contains_source_code": null,
30+
"source_packages": [],
31+
"purl": "pkg:readme/[email protected]",
32+
"repository_homepage_url": null,
33+
"repository_download_url": null,
34+
"api_data_url": null
35+
}

tests/packagedcode/data/readme/google/basic/README.google

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
URL: https://github.com/dcurrie/lunit
2+
Name: lunit
23
Version: 0.5
34
License: MIT
45
License File: LICENSE

tests/packagedcode/data/readme/google/basic/README.google.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "readme",
33
"namespace": null,
4-
"name": null,
4+
"name": "lunit",
55
"version": "0.5",
66
"qualifiers": {},
77
"subpath": null,
@@ -28,7 +28,7 @@
2828
"dependencies": [],
2929
"contains_source_code": null,
3030
"source_packages": [],
31-
"purl": null,
31+
"purl": "pkg:readme/[email protected]",
3232
"repository_homepage_url": null,
3333
"repository_download_url": null,
3434
"api_data_url": null

0 commit comments

Comments
 (0)