Open zeevro opened 1 year ago
Also, the construct-typing
package must be installed for properly type checking a project that uses construct
. Unfortunately, construct-typing
requires construct>=2.10
.
Looking at the changelog, it doesn't seem like there were big removals or changes in the API. The only removal are Embedded
and EmbeddedSwitch
, but they don't seem to be in use in pdbparse
, according to grep
.
@moyix given your recent activity on this repo, do you think that would be doable for you to release a new version of pdbparse
with the construct<2.10
constraint loosened? I can help provide feedback on this if need be.
Just to let people know, here is how I fixed the problem on my side:
setup.py
with a new version and install_requires=["construct>=2.10", "construct<2.11", "pefile"]
python3 -m build
the built wheel and source package (in ./dist
) both work fine in my use-case, which is only getting a PDB's GUID:
def get_pdb_guid(filename_path: Path) -> str:
try:
p = pdbparse.parse(filename_path, fast_load=True)
pdb = p.streams[pdbparse.PDB_STREAM_PDB]
pdb.load()
return (
"%08x%04x%04x%s%x"
% (
pdb.GUID.Data1,
pdb.GUID.Data2,
pdb.GUID.Data3,
binascii.hexlify(pdb.GUID.Data4).decode("ascii"),
pdb.Age,
)
).upper()
except Exception as e:
raise RuntimeError(e)
I've no idea if the rest of the pdbparse
package work fine with a newer construct
, but at least that's a start.
For those interested, you can put this line in your requirements.txt
to use the version I mentioned just above:
pdbparse @ https://github.com/tetrane/pdbparse/raw/f29816285a5cbaf00bfe8c10379e664a5e4118ac/dist/pdbparse-1.5.1.tar.gz#sha256=1b046f137bc5b807983b15c1a1c71360faffad658be0ee4ba05763b0ab428486
construct<2.10
uses theimp
module, which was removed on Python 3.12. Is there a reason not to use a more recentconstruct
version?