1515
1616from _packagedcode .models import PackageData
1717from _packagedcode .pypi import get_declared_license
18+ from _packagedcode .pypi import get_description
1819from _packagedcode .pypi import get_keywords
1920from _packagedcode .pypi import get_parties
2021from python_inspector import utils_pypi
2324from python_inspector .utils_pypi import PypiSimpleRepository
2425
2526
26- def get_pypi_bugtracker_url (project_urls ):
27- bug_tracking_url = project_urls .get ("Tracker" )
28- if not (bug_tracking_url ):
29- bug_tracking_url = project_urls .get ("Issue Tracker" )
30- if not (bug_tracking_url ):
31- bug_tracking_url = project_urls .get ("Bug Tracker" )
32- return bug_tracking_url
33-
34-
35- def get_pypi_codeview_url (project_urls ):
36- code_view_url = project_urls .get ("Source" )
37- if not (code_view_url ):
38- code_view_url = project_urls .get ("Code" )
39- if not (code_view_url ):
40- code_view_url = project_urls .get ("Source Code" )
41- return code_view_url
42-
43-
44- def get_wheel_download_urls (
45- purl : PackageURL ,
46- repos : List [PypiSimpleRepository ],
47- environment : Environment ,
48- python_version : str ,
49- ) -> List [str ]:
50- """
51- Return a list of download urls for the given purl.
52- """
53- for repo in repos :
54- for wheel in utils_pypi .get_supported_and_valid_wheels (
55- repo = repo ,
56- name = purl .name ,
57- version = purl .version ,
58- environment = environment ,
59- python_version = python_version ,
60- ):
61- yield wheel .download_url
62-
63-
64- def get_sdist_download_url (
65- purl : PackageURL , repos : List [PypiSimpleRepository ], python_version : str
66- ) -> str :
67- """
68- Return a list of download urls for the given purl.
69- """
70- for repo in repos :
71- sdist = utils_pypi .get_valid_sdist (
72- repo = repo ,
73- name = purl .name ,
74- version = purl .version ,
75- python_version = python_version ,
76- )
77- if sdist :
78- return sdist .download_url
79-
80-
8127def get_pypi_data_from_purl (
8228 purl : str , environment : Environment , repos : List [PypiSimpleRepository ]
8329) -> PackageData :
8430 """
85- Generate `Package` object from the `purl` string of npm type
31+ Generate `Package` object from the `purl` string of pypi type
32+
33+ ``purl`` is a package-url of pypi type
34+ ``environment`` is a `Environment` object defaulting Python version 3.8 and linux OS
35+ ``repos`` is a list of `PypiSimpleRepository` objects
8636 """
8737 purl = PackageURL .from_string (purl )
8838 name = purl .name
@@ -129,7 +79,7 @@ def get_pypi_data_from_purl(
12979
13080 yield PackageData (
13181 primary_language = "Python" ,
132- description = info . get ( "summary" ) or info . get ( "description" ),
82+ description = get_description ( info ),
13383 homepage_url = homepage_url ,
13484 api_data_url = api_url ,
13585 bug_tracking_url = bug_tracking_url ,
@@ -149,4 +99,59 @@ def get_pypi_data_from_purl(
14999 maintainer_email_key = "maintainer_email" ,
150100 ),
151101 ** purl .to_dict (),
152- ).to_dict ()
102+ )
103+
104+
105+ def get_pypi_bugtracker_url (project_urls ):
106+ bug_tracking_url = project_urls .get ("Tracker" )
107+ if not (bug_tracking_url ):
108+ bug_tracking_url = project_urls .get ("Issue Tracker" )
109+ if not (bug_tracking_url ):
110+ bug_tracking_url = project_urls .get ("Bug Tracker" )
111+ return bug_tracking_url
112+
113+
114+ def get_pypi_codeview_url (project_urls ):
115+ code_view_url = project_urls .get ("Source" )
116+ if not (code_view_url ):
117+ code_view_url = project_urls .get ("Code" )
118+ if not (code_view_url ):
119+ code_view_url = project_urls .get ("Source Code" )
120+ return code_view_url
121+
122+
123+ def get_wheel_download_urls (
124+ purl : PackageURL ,
125+ repos : List [PypiSimpleRepository ],
126+ environment : Environment ,
127+ python_version : str ,
128+ ) -> List [str ]:
129+ """
130+ Return a list of download urls for the given purl.
131+ """
132+ for repo in repos :
133+ for wheel in utils_pypi .get_supported_and_valid_wheels (
134+ repo = repo ,
135+ name = purl .name ,
136+ version = purl .version ,
137+ environment = environment ,
138+ python_version = python_version ,
139+ ):
140+ yield wheel .download_url
141+
142+
143+ def get_sdist_download_url (
144+ purl : PackageURL , repos : List [PypiSimpleRepository ], python_version : str
145+ ) -> str :
146+ """
147+ Return a list of download urls for the given purl.
148+ """
149+ for repo in repos :
150+ sdist = utils_pypi .get_valid_sdist (
151+ repo = repo ,
152+ name = purl .name ,
153+ version = purl .version ,
154+ python_version = python_version ,
155+ )
156+ if sdist :
157+ return sdist .download_url
0 commit comments