「TypeError: 'str' object is not callable」 ってエラー出るのに原因がわからず苦戦しました
原因はこういうコードがあったこと

if __name__ == "__main__":
for x in getvalues():
hex = conv(x)
fn(hex)

この hex はビルトイン関数名で ここはグローバルスコープなんですよね
同じファイル内の関数で hex() を使っていて その呼び出し時には hex には文字列が入っているので not callable となっていました

Python のビルトイン関数って hex とか bin とか str とか変数名に使いそうなものが揃ってます
それでいてブロックスコープじゃないので 意図せず上書きしてることが多いです

JavaScript の場合は上書きしていてもエラーメッセージがこうなります
「TypeError: parseInt is not a function」
関数として呼び出そうとしたものの名前が出てきます
それで parseInt をどこかで上書きしてるなってわかるのですが Python のエラーメッセージだとどの変数かわかりません

いっそビルトイン関数は builtins をインポートして

import builtins as b

b.hex(100)

のように使おうかとも思いましたが print などの多用する関数もこれだと不便なのでやめました