New submission from Ilya <libbkmz....@gmail.com>:

I'm using my own implementation of the memoize by shelve module. In the 
attachment, there are 2 simple test cases which pass but the console there are 
a lot of messages like that:

Exception ignored in: <function Shelf.__del__ at 0x0000023202F363A0>
Traceback (most recent call last):
  File "C:\Miniconda2\envs\38_common\lib\shelve.py", line 162, in __del__
    self.close()
  File "C:\Miniconda2\envs\38_common\lib\shelve.py", line 144, in close
    self.sync()
  File "C:\Miniconda2\envs\38_common\lib\shelve.py", line 172, in sync
    self.dict.sync()
  File "C:\Miniconda2\envs\38_common\lib\dbm\dumb.py", line 129, in _commit
    with self._io.open(self._dirfile, 'w', encoding="Latin-1") as f:
PermissionError: [Errno 13] Permission denied: 
'C:\\project\\tests\\test_memoize_tmp_t5tai08p\\memoize_test_file.dat.dir'

Exception ignored in: <function _Database.close at 0x0000023202EF9040>
Traceback (most recent call last):
  File "C:\Miniconda2\envs\38_common\lib\dbm\dumb.py", line 274, in close
    self._commit()
  File "C:\Miniconda2\envs\38_common\lib\dbm\dumb.py", line 129, in _commit
    with self._io.open(self._dirfile, 'w', encoding="Latin-1") as f:
PermissionError: [Errno 13] Permission denied: 
'C:\\project\\tests\\test_memoize_tmp_t5tai08p\\memoize_test_file.dat.dir'


Basically, the main issue can be explained like that - Python 
dbm.dumb._Database should maintain self._modified the attribute in the right 
way(set it to False) after the _commit method. 

Later I will try to make changes in the dbm.dumb module and run Python internal 
tests for that modification to see any regression, if not will add PR here.

----------
components: Library (Lib)
files: test_python_shelve_issue.py
messages: 359242
nosy: libbkmz
priority: normal
severity: normal
status: open
title: Python shelve __del__ ignored exception
type: enhancement
versions: Python 3.8
Added file: https://bugs.python.org/file48826/test_python_shelve_issue.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue39202>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to