1010from ..console_write import console_write
1111from ..package_manager import PackageManager
1212from ..show_error import show_message
13+ from ..sys_path import python_versions
1314
1415USE_QUICK_PANEL_ITEM = hasattr (sublime , "QuickPanelItem" )
1516
@@ -48,11 +49,41 @@ def show_quick_panel():
4849
4950 threading .Thread (target = show_quick_panel ).start ()
5051
52+ @staticmethod
53+ def latest_releases (releases ):
54+ versions = []
55+ for pyver in python_versions ():
56+ for release in releases :
57+ if pyver in release ["python_versions" ]:
58+ versions .append ([release ["version" ], pyver ])
59+ break
60+
61+ if not versions :
62+ return ""
63+
64+ if len (versions ) > 1 and versions [0 ][0 ] != versions [1 ][0 ]:
65+ return "," .join (
66+ " v{} (py{})" .format (ver , pyver )
67+ for ver , pyver in versions
68+ )
69+
70+ return " v" + versions [0 ][0 ]
71+
72+ @staticmethod
73+ def latest_release_date (releases ):
74+ pyver = python_versions ()[- 1 ]
75+ for release in releases :
76+ if pyver in release ["python_versions" ]:
77+ return release ["date" ].split (" " , 1 )[0 ]
78+
79+ return releases [0 ]["date" ].split (" " , 1 )[0 ]
80+
5181 def show_quick_panel_st3 (self , libraries ):
52- items = [
53- [info ["name" ] + " v" + info ["releases" ][0 ]["version" ], info ["description" ]]
54- for info in libraries
55- ]
82+ items = []
83+ for info in libraries :
84+ versions = self .latest_releases (info ["releases" ])
85+ if versions :
86+ items .append ([info ["name" ] + versions , info ["description" ]])
5687
5788 def on_done (picked ):
5889 if picked > - 1 :
@@ -63,11 +94,13 @@ def on_done(picked):
6394 )
6495
6596 def show_quick_panel_st4 (self , libraries ):
66- # TODO: display supported python versions
67-
6897 items = []
6998 for info in libraries :
70- display_name = info ["name" ] + " v" + info ["releases" ][0 ]["version" ]
99+ versions = self .latest_releases (info ["releases" ])
100+ if not versions :
101+ continue
102+
103+ display_name = info ["name" ] + versions
71104
72105 details = [html .escape (info ["description" ])]
73106
@@ -79,7 +112,7 @@ def show_quick_panel_st4(self, libraries):
79112 )
80113
81114 try :
82- date = info ["releases" ][ 0 ][ "date" ]. split ( " " , 1 )[ 0 ]
115+ date = self . latest_release_date ( info ["releases" ])
83116 annotation = datetime .strptime (date , "%Y-%m-%d" ).strftime (
84117 "Updated on %a %b %d, %Y"
85118 )
0 commit comments