Discussion:
[Gramps-devel] Fwd: Problem deleting tree
Paul Franklin
2017-03-23 20:52:34 UTC
Permalink
A Greek user recently posted this on gramps-users.

132898: ERROR: grampsapp.py: line 140: Unhandled exception
Traceback (most recent call last):
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 552, in __remove_db
self.__really_delete_db, parent=self.top)
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dialog.py",
line 110, in __init__
task()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 584, in __really_delete_db
file_name_to_delete=name_file.read()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\encodings\cp1253.py", line 23,
in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9c in position
1: character maps to <undefined>


My guess is that it would be solved by changing gui/dbman.py
from:

try:
name_file = open(filename, "r")
file_name_to_delete=name_file.read()
name_file.close()

to:

try:
name_file = open(filename, "r", encoding='utf-8')
file_name_to_delete=name_file.read()
name_file.close()

But master has:

try:
with open(filename, "r") as name_file:
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)

so should I change the gramps42 lines to be like master,
and make them both be:

try:
with open(filename, "r", encoding='utf-8') as name_file:
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)


Thanks.
Paul Franklin
2017-06-18 18:08:40 UTC
Permalink
This is somewhat old but since (I believe) no fix has yet
been committed, I'd still appreciate your comments.

Especially if you run on Windows (maybe only non-English?).

Thanks.

---------- Forwarded message ----------
From: Paul Franklin <***@gmail.com>
Date: Thu, 23 Mar 2017 13:52:34 -0700
Subject: Fwd: Problem deleting tree
To: gramps-***@lists.sourceforge.net
Cc: ***@gmail.com

A Greek user recently posted this on gramps-users.

132898: ERROR: grampsapp.py: line 140: Unhandled exception
Traceback (most recent call last):
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 552, in __remove_db
self.__really_delete_db, parent=self.top)
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dialog.py",
line 110, in __init__
task()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 584, in __really_delete_db
file_name_to_delete=name_file.read()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\encodings\cp1253.py", line 23,
in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9c in position
1: character maps to <undefined>


My guess is that it would be solved by changing gui/dbman.py
from:

try:
name_file = open(filename, "r")
file_name_to_delete=name_file.read()
name_file.close()

to:

try:
name_file = open(filename, "r", encoding='utf-8')
file_name_to_delete=name_file.read()
name_file.close()

But master has:

try:
with open(filename, "r") as name_file:
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)

so should I change the gramps42 lines to be like master,
and make them both be:

try:
with open(filename, "r", encoding='utf-8') as name_file:
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)


Thanks.
Josip
2017-06-18 20:51:54 UTC
Permalink
Post by Paul Franklin
This is somewhat old but since (I believe) no fix has yet
been committed, I'd still appreciate your comments.
Especially if you run on Windows (maybe only non-English?).
Thanks.
---------- Forwarded message ----------
Date: Thu, 23 Mar 2017 13:52:34 -0700
Subject: Fwd: Problem deleting tree
A Greek user recently posted this on gramps-users.
132898: ERROR: grampsapp.py: line 140: Unhandled exception
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 552, in __remove_db
self.__really_delete_db, parent=self.top)
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dialog.py",
line 110, in __init__
task()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 584, in __really_delete_db
file_name_to_delete=name_file.read()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\encodings\cp1253.py", line 23,
in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9c in position
1: character maps to <undefined>
My guess is that it would be solved by changing gui/dbman.py
name_file = open(filename, "r")
file_name_to_delete=name_file.read()
name_file.close()
name_file = open(filename, "r", encoding='utf-8')
file_name_to_delete=name_file.read()
name_file.close()
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)
so should I change the gramps42 lines to be like master,
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)
Thanks.
You are right that adding "encoding='utf-8'" will fix that for Windows
users. Does not matter in which language gramps is run on Windows if you
name your family tree with name which contains characters who is outside
of your code page then you will get this crash when try to delete them
from family tree manager.

Both version are same in old version file is closed by "close()", in new
version is closed by context manager. Both will not leak file descriptors!

IMHO use last version, commit it to gramps50 then it will later be
merged in master, cherry-pick to maintenance/gramps42
--
Josip
Paul Franklin
2017-06-19 06:03:09 UTC
Permalink
Post by Josip
Post by Paul Franklin
This is somewhat old but since (I believe) no fix has yet
been committed, I'd still appreciate your comments.
Especially if you run on Windows (maybe only non-English?).
Thanks.
---------- Forwarded message ----------
Date: Thu, 23 Mar 2017 13:52:34 -0700
Subject: Fwd: Problem deleting tree
A Greek user recently posted this on gramps-users.
132898: ERROR: grampsapp.py: line 140: Unhandled exception
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 552, in __remove_db
self.__really_delete_db, parent=self.top)
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dialog.py",
line 110, in __init__
task()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\site-packages\gramps\gui\dbman.py",
line 584, in __really_delete_db
file_name_to_delete=name_file.read()
File "C:\Program
Files\GrampsAIO64-4.2.4\lib\python3.5\encodings\cp1253.py", line 23,
in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9c in position
1: character maps to <undefined>
My guess is that it would be solved by changing gui/dbman.py
name_file = open(filename, "r")
file_name_to_delete=name_file.read()
name_file.close()
name_file = open(filename, "r", encoding='utf-8')
file_name_to_delete=name_file.read()
name_file.close()
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)
so should I change the gramps42 lines to be like master,
file_name_to_delete = name_file.read()
remove_filename(file_name_to_delete)
Thanks.
You are right that adding "encoding='utf-8'" will fix that for Windows
users. Does not matter in which language gramps is run on Windows if you
name your family tree with name which contains characters who is outside
of your code page then you will get this crash when try to delete them
from family tree manager.
Both version are same in old version file is closed by "close()", in new
version is closed by context manager. Both will not leak file descriptors!
IMHO use last version, commit it to gramps50 then it will later be
merged in master, cherry-pick to maintenance/gramps42
Thank you. I'll do that, probably after filing a bug about it.

Loading...