Thanks, nice. bytes.fromhex is really reading bytes from a hex string, so perhaps a better name should be bytes.fromhexstring, but since python names are short I understand the trade-off. Also, my first impression is that hex should be called bytes.tohexstring, but for those using python daily I understand the need of shorter names.
a="53414e544120414e442048495320574f524b53484f50"
"".join([chr(int(a[i:(i+2)],16)) for i in range(0,len(a),2)])
=> 'SANTA AND HIS WORKSHOP'
a = 'SANTA AND HIS WORKSHOP'
"".join([hex(ord(c)) for c in a]).replace('0x','')
=> '53414e544120414e442048495320574f524b53484f50'