def isMixedCase (tok):
    """Returns true if the token contains at least one upper-case letter and another character type,
       which may be either a lower-case letter or a non-letter.  Examples: ProSys, eBay """
    # Clojure original:
    #     (fn [token]    ;; ProSys, eBay
    #        (if-not (empty? token)
    #              (->> (map #(Character/isUpperCase %) token)
    #                   distinct
    #                   count
    #                   (= 2))
    #              false))
    hasUpper = False
    hasLower = False
    for c in tok:
        if (c.isupper()):
            hasUpper = True
        else:
            hasLower = True
    return hasUpper and hasLower