@@ -103,24 +103,30 @@ class RuntimeWarning (Warning):
103103
104104#__pragma__ ('kwargs')
105105
106- def __sort__ (iterable , key = None , reverse = False ): # Used by py_sort, can deal with kwargs
106+ def _sort (iterable , key = None , reverse = False ): # Used by py_sort and sorted , can deal with kwargs
107107 if key :
108108 iterable .sort (lambda a , b : 1 if key (a ) > key (b ) else - 1 ) # JavaScript sort, case '==' is irrelevant for sorting
109109 else :
110- iterable .sort (lambda a , b : 1 if a > b else - 1 ) # JavaScript sort
111-
110+ iterable .sort (lambda a , b : 1 if a > b else - 1 ) # JavaScript sort - key needed to properly sort non-string values
111+
112112 if reverse :
113113 iterable .reverse ()
114-
115- def sorted (iterable , key = None , reverse = False ):
116- if type (iterable ) == dict :
117- result = _copy (iterable .keys ())
118- else :
119- result = _copy (iterable )
120-
121- __sort__ (result , key , reverse )
114+
115+
116+ def sorted (iterable , * , key = None , reverse = False ):
117+ if type (iterable ) == dict :
118+ result = _copy (iterable .keys ())
119+ else :
120+ result = _copy (iterable )
121+
122+ _sort (result , key , reverse )
122123 return result
123124
125+
126+ # Used by py_sort
127+ def __sort__ (iterable , * , key = None , reverse = False ):
128+ _sort (iterable , key , reverse )
129+
124130#__pragma__ ('nokwargs')
125131
126132def map (func , * iterables ):
0 commit comments