from collections import Counter

def modes(nums):
    # returns a sorted list of frequency tuples (element, frequency)
    freqs = Counter(nums).most_common()
    if(len(freqs) == 0):
        return []
    max = freqs[0][1] # get the max frequency
    return [num for (num, f) in freqs if f == max]

print(mode([1,2,2])) # returns [2]
print(mode([1,2,2,3,3])) # returns [2,3]
print(mode([])) # returns []
print(mode(None)) # returns []
print(mode(5)) # TypeError: 'int' object is not iterable