This seems like a noble pursuit. File a bug on bugs.python.org with the results you posted here, and submit a PR via GitHub ( github.com/python/cpython/).
On Sat, Apr 11, 2020 at 9:09 AM Barry Scott <ba...@barrys-emacs.org> wrote: > modulefinder.py does not open source files in "rb" which > prevents compile() from applying the encoding rules. > > This first showed up for me on Windows with Python 3.8. > > I'd like to provide patches for 3.8 (if any more releases) > and 3.9. > > What is the process I should follow? > I have signed the Contributor Agreement. > > Here is my test case and the results on Windows with 3.7. > > import modulefinder > > with open('import_functools.py', 'w') as f: > f.write('import functools\n') > > mf = modulefinder.ModuleFinder() > mf.run_script('import_functools.py') > print('Test passed') > > py -3.8-32 modulefinder_test.py > Traceback (most recent call last): > File "modulefinder_test.py", line 7, in <module> > mf.run_script('import_functools.py') > File "C:\Python38.win32\lib\modulefinder.py", line 165, in run_script > self.load_module('__main__', fp, pathname, stuff) > File "C:\Python38.win32\lib\modulefinder.py", line 360, in load_module > self.scan_code(co, m) > File "C:\Python38.win32\lib\modulefinder.py", line 433, in scan_code > self._safe_import_hook(name, m, fromlist, level=0) > File "C:\Python38.win32\lib\modulefinder.py", line 378, in > _safe_import_hook > self.import_hook(name, caller, level=level) > File "C:\Python38.win32\lib\modulefinder.py", line 177, in import_hook > q, tail = self.find_head_package(parent, name) > File "C:\Python38.win32\lib\modulefinder.py", line 233, in > find_head_package > q = self.import_module(head, qname, parent) > File "C:\Python38.win32\lib\modulefinder.py", line 326, in import_module > m = self.load_module(fqname, fp, pathname, stuff) > File "C:\Python38.win32\lib\modulefinder.py", line 343, in load_module > co = compile(fp.read()+'\n', pathname, 'exec') > File "C:\Python38.win32\lib\encodings\cp1252.py", line 23, in decode > return codecs.charmap_decode(input,self.errors,decoding_table)[0] > UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position > 308: character maps to <undefined> > > Barry > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/6IWG2SXTZAWEWYIBQ5LUR5G5S7MUODMV/ > Code of Conduct: http://python.org/psf/codeofconduct/ > -- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/EIBRS7XK7T7EFAZV4CQX6I3ASIA7RTLK/ Code of Conduct: http://python.org/psf/codeofconduct/