◐ Shell
clean mode source ↗

Message 63230 - Python tracker

I would say filename/lineno are excluded from hash on purpose because
they are ignored in comparisons:

>>> compile("0", "a", "eval") == compile("0", "b", "eval")
True

Include/code.h has the following comment:

   /* The rest doesn't count for hash/cmp */ 
    PyObject *co_filename;      /* string (where it was loaded from) */ 
    PyObject *co_name;          /* string (name, for reference) */ 
    int co_firstlineno;         /* first source line number */ 
..

Can you describe your specific problem in more detail?  Why does your
debugger need to hash/compare code objects?