2008-02-18 Raphael Ackermann <raphael.ackermann@gmail.com>

* src/GrampsDbUtils/_GedcomParse.py: remove encode_filename() as filename 
	is already unicode encoded.
	* src/GrampsDbUtils/_GrampsDbWRFactories.py: doc fix
	* src/GrampsDbUtils/_ReadGedcom.py: doc and pylint fixes
	* src/GrampsDbUtils/importdbdir.py: pep8 fix  ''' --> """
	* src/ArgHandler.py: in method cl_import(self, filename, format): add call 
	filename = Utils.get_unicode_path(filename) before calling 
	ReadGedcom._import2(...,filename,...). +pylint fixes
	* src/DbLoader.py: doc fix. change variable choose to choose_db_dialog

svn: r10047
This commit is contained in:
Raphael Ackermann 2008-02-18 12:31:31 +00:00
parent de5edf9f29
commit 17ce1638d2
7 changed files with 74 additions and 71 deletions

View File

@ -1,3 +1,14 @@
2008-02-18 Raphael Ackermann <raphael.ackermann@gmail.com>
* src/GrampsDbUtils/_GedcomParse.py: remove encode_filename() as filename
is already unicode encoded.
* src/GrampsDbUtils/_GrampsDbWRFactories.py: doc fix
* src/GrampsDbUtils/_ReadGedcom.py: doc and pylint fixes
* src/GrampsDbUtils/importdbdir.py: pep8 fix ''' --> """
* src/ArgHandler.py: in method cl_import(self, filename, format): add call
filename = Utils.get_unicode_path(filename) before calling
ReadGedcom._import2(...,filename,...). +pylint fixes
* src/DbLoader.py: doc fix. change variable choose to choose_db_dialog
2008-02-18 Raphael Ackermann <raphael.ackermann@gmail.com>
* src/DataViews/PersonView.py
* src/ViewManager.py

View File

@ -224,8 +224,8 @@ class ArgHandler:
print "Input file does not exist: %s" % fullpath
continue
elif os.path.isdir(fullpath):
ftype = const.APP_FAMTREE
fname = fullpath
ftype = const.APP_FAMTREE
fname = fullpath
elif opt_ix<len(options)-1 \
and options[opt_ix+1][0] in ( '-f', '--format'):
format = options[opt_ix+1][1]
@ -267,7 +267,7 @@ class ArgHandler:
else:
print "Will skip the output file: %s" % fullpath
continue
if opt_ix<len(options)-1 \
if opt_ix < len(options)-1 \
and options[opt_ix+1][0] in ( '-f', '--format'):
outformat = options[opt_ix+1][1]
if outformat not in ('gedcom',
@ -296,17 +296,17 @@ class ArgHandler:
print "Unrecognized format for output file %s" % outfname
print "Ignoring output file: %s" % outfname
continue
self.exports.append((fullpath,outformat))
self.exports.append((fullpath, outformat))
elif option in ( '-a', '--action' ):
action = value
if action not in ( 'check', 'summary', 'report', 'tool' ):
print "Unknown action: %s. Ignoring." % action
continue
options_str = ""
if opt_ix<len(options)-1 \
if opt_ix < len(options)-1 \
and options[opt_ix+1][0] in ( '-p', '--options' ):
options_str = options[opt_ix+1][1]
self.actions.append((action,options_str))
self.actions.append((action, options_str))
elif option in ('-d', '--debug'):
logger = logging.getLogger(value)
logger.setLevel(logging.DEBUG)
@ -395,7 +395,7 @@ class ArgHandler:
#see if not just a name of a database is given
data = self.dbman.family_tree(self.open_gui)
if data is not None:
filename, filetype= data[0], data[1]
filename, filetype = data[0], data[1]
success = True
else:
ErrorDialog(
@ -474,15 +474,15 @@ class ArgHandler:
print "Launching interactive session..."
if self.cl:
for (action,options_str) in self.actions:
for (action, options_str) in self.actions:
print "Performing action: %s." % action
if options_str:
print "Using options string: %s" % options_str
self.cl_action(action,options_str)
self.cl_action(action, options_str)
for expt in self.exports:
print "Exporting: file %s, format %s." % expt
self.cl_export(expt[0],expt[1])
self.cl_export(expt[0], expt[1])
print "Cleaning up."
# remove files in import db subdir after use
@ -526,7 +526,7 @@ class ArgHandler:
if format == 'famtree':
#3.x database
if not self.__check_db(filename):
sys.exit(0)
sys.exit(0)
try:
GrampsDbUtils.gramps_db_reader_factory(const.APP_FAMTREE)(
self.state.db, filename, empty)
@ -547,10 +547,11 @@ class ArgHandler:
sys.exit(1)
elif format == 'gedcom':
filename = os.path.normpath(os.path.abspath(filename))
filename = Utils.get_unicode_path(filename)
try:
# Cheating here to use default encoding
from GrampsDbUtils._ReadGedcom import import2
import2(self.state.db,filename,None,"",False)
import2(self.state.db, filename, None, "", False)
except:
print "Error importing %s" % filename
sys.exit(1)
@ -565,7 +566,7 @@ class ArgHandler:
import ImportGeneWeb
filename = os.path.normpath(os.path.abspath(filename))
try:
ImportGeneWeb.importData(self.state.db,filename,None)
ImportGeneWeb.importData(self.state.db, filename, None)
except:
print "Error importing %s" % filename
sys.exit(1)
@ -575,7 +576,7 @@ class ArgHandler:
import tarfile
archive = tarfile.open(filename)
for tarinfo in archive:
archive.extract(tarinfo,tmpdir_path)
archive.extract(tarinfo, tmpdir_path)
archive.close()
except tarfile.ReadError, msg:
print "Error reading archive:", msg
@ -587,7 +588,7 @@ class ArgHandler:
print "Error extracting into %s" % tmpdir_path
sys.exit(1)
dbname = os.path.join(tmpdir_path,const.XMLFILE)
dbname = os.path.join(tmpdir_path, const.XMLFILE)
try:
GrampsDbUtils.gramps_db_reader_factory(const.APP_GRAMPS_XML)(
@ -625,7 +626,7 @@ class ArgHandler:
# Export handler
#
#-------------------------------------------------------------------------
def cl_export(self,filename,format):
def cl_export(self, filename, format):
"""
Command-line export routine.
Try to write into filename using the format.
@ -647,7 +648,7 @@ class ArgHandler:
filename = os.path.normpath(os.path.abspath(filename))
if filename:
try:
g = GrampsDbUtils.XmlWriter(self.state.db,None,0,1)
g = GrampsDbUtils.XmlWriter(self.state.db, None, 0, 1)
ret = g.write(filename)
print "... finished writing %s" % filename
except:
@ -702,14 +703,14 @@ class ArgHandler:
# Action handler
#
#-------------------------------------------------------------------------
def cl_action(self,action,options_str):
def cl_action(self, action, options_str):
"""
Command-line action routine. Try to perform specified action.
Any errors will cause the sys.exit(1) call.
"""
if action == 'check':
import Check
checker = Check.CheckIntegrity(self.state.db,None,None)
checker = Check.CheckIntegrity(self.state.db, None, None)
checker.check_for_broken_family_links()
checker.cleanup_missing_photos(1)
checker.check_parent_relationships()
@ -719,7 +720,7 @@ class ArgHandler:
checker.report(1)
elif action == 'summary':
import Summary
text = Summary.build_report(self.state.db,None)
text = Summary.build_report(self.state.db, None)
print text
elif action == "report":
try:
@ -729,7 +730,7 @@ class ArgHandler:
options_str_dict = {}
print "Ignoring invalid options string."
name = options_str_dict.pop('name',None)
name = options_str_dict.pop('name', None)
if not name:
print "Report name not given. Please use name=reportname"
sys.exit(1)
@ -739,13 +740,12 @@ class ArgHandler:
category = item[1]
report_class = item[2]
options_class = item[3]
if category in (CATEGORY_BOOK,CATEGORY_CODE,CATEGORY_WEB):
options_class(self.state.db,name,
category,options_str_dict)
if category in (CATEGORY_BOOK, CATEGORY_CODE, CATEGORY_WEB):
options_class(self.state.db, name, category,
options_str_dict)
else:
cl_report(self.state.db,name,category,
report_class,options_class,
options_str_dict)
cl_report(self.state.db, name, category, report_class,
options_class, options_str_dict)
return
print "Unknown report name. Available names are:"
@ -759,7 +759,7 @@ class ArgHandler:
options_str_dict = {}
print "Ignoring invalid options string."
name = options_str_dict.pop('name',None)
name = options_str_dict.pop('name', None)
if not name:
print "Tool name not given. Please use name=toolname"
sys.exit(1)
@ -769,8 +769,8 @@ class ArgHandler:
category = item[1]
tool_class = item[2]
options_class = item[3]
Tool.cli_tool(self.state,name,category,
tool_class,options_class,options_str_dict)
Tool.cli_tool(self.state, name, category, tool_class,
options_class, options_str_dict)
return
print "Unknown tool name. Available names are:"

View File

@ -105,19 +105,18 @@ class DbLoader:
if not warn_dialog.run():
return False
choose = gtk.FileChooserDialog(
_('GRAMPS: Import database'),
self.uistate.window,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,
'gramps-import',gtk.RESPONSE_OK))
choose.set_local_only(False)
choose_db_dialog = gtk.FileChooserDialog(_('GRAMPS: Import database'),
self.uistate.window,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
'gramps-import', gtk.RESPONSE_OK))
choose_db_dialog.set_local_only(False)
# Always add automatic (match all files) filter
add_all_files_filter(choose)
add_grdb_filter(choose)
add_xml_filter(choose)
add_gedcom_filter(choose)
add_all_files_filter(choose_db_dialog)
add_grdb_filter(choose_db_dialog)
add_xml_filter(choose_db_dialog)
add_gedcom_filter(choose_db_dialog)
format_list = OPEN_FORMATS[:]
@ -129,12 +128,12 @@ class DbLoader:
format_name = data[4]
if not native_format:
choose.add_filter(mime_filter)
choose_db_dialog.add_filter(mime_filter)
format_list.append(mime_type)
_KNOWN_FORMATS[mime_type] = format_name
(box, type_selector) = format_maker(format_list)
choose.set_extra_widget(box)
choose_db_dialog.set_extra_widget(box)
# Suggested folder: try last open file, import, then last export,
# then home.
@ -142,10 +141,10 @@ class DbLoader:
if len(default_dir)<=1:
default_dir = get_default_dir()
choose.set_current_folder(default_dir)
response = choose.run()
choose_db_dialog.set_current_folder(default_dir)
response = choose_db_dialog.run()
if response == gtk.RESPONSE_OK:
filename = Utils.get_unicode_path(choose.get_filename())
filename = Utils.get_unicode_path(choose_db_dialog.get_filename())
if self.check_errors(filename):
return False
@ -158,15 +157,14 @@ class DbLoader:
try:
filetype = Mime.get_type(filename)
except RuntimeError, msg:
ErrorDialog(
_("Could not open file: %s") % filename,
str(msg))
ErrorDialog(_("Could not open file: %s") % filename,
str(msg))
return False
# First we try our best formats
if filetype in OPEN_FORMATS:
importer = GrampsDbUtils.gramps_db_reader_factory(filetype)
self.do_import(choose, importer, filename)
self.do_import(choose_db_dialog, importer, filename)
return True
# Then we try all the known plugins
@ -175,7 +173,7 @@ class DbLoader:
for (importData, mime_filter, mime_type, native_format,
format_name) in import_list:
if filetype == mime_type or the_file == mime_type:
self.do_import(choose, importData, filename)
self.do_import(choose_db_dialog, importData, filename)
return True
# Finally, we give up and declare this an unknown format
@ -185,13 +183,15 @@ class DbLoader:
'Valid types are: GRAMPS database, GRAMPS XML, '
'GRAMPS package, and GEDCOM.') % filetype)
choose.destroy()
choose_db_dialog.destroy()
return False
def check_errors(self, filename):
"""
This methods runs common error checks and returns True if any found.
In this process, warning dialog can pop up.
Run common error checks and return True if any found.
In this process, a warning dialog can pop up.
"""
if type(filename) not in (str, unicode):

View File

@ -275,8 +275,7 @@ class GedcomParser(UpdateCallback):
if self.use_def_src:
self.def_src = gen.lib.Source()
fname = os.path.basename(filename).split('\\')[-1]
self.def_src.set_title(_("Import from GEDCOM (%s)") %
encode_filename(fname))
self.def_src.set_title(_("Import from GEDCOM (%s)") % fname)
self.dir_path = os.path.dirname(filename)
self.is_ftw = False
self.is_ancestry_com = False
@ -4423,10 +4422,3 @@ def family_event_name(event, family, dbase):
'family' : Utils.family_name(family, dbase),
}
event.set_description(text)
def encode_filename(name):
enc = sys.getfilesystemencoding()
if enc == "UTF-8":
return name
else:
return unicode(name, encoding=enc, errors='replace')

View File

@ -18,7 +18,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id$
# $Id:_GrampsDbWRFactories.py 9912 2008-01-22 09:17:46Z acraphae $
"""
This module contains factory methods for accessing the different
@ -46,7 +46,7 @@ from gen.db import GrampsDbException
from PluginUtils import import_list
def gramps_db_reader_factory(db_type):
"""Factory class for obtaining a Gramps database importers.
"""Factory class for obtaining a Gramps database importer.
@param db_type: the type of backend required.
@type db_type: one of the app_* constants in const.py

View File

@ -18,7 +18,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id$
# $Id:_ReadGedcom.py 9912 2008-01-22 09:17:46Z acraphae $
"Import from GEDCOM"
@ -84,7 +84,7 @@ def importData(database, filename, callback=None, use_trans=False):
if not gramps and ansel:
glade_file = "%s/gedcomimport.glade" % os.path.dirname(__file__)
top = gtk.glade.XML(glade_file, 'encoding','gramps')
top = gtk.glade.XML(glade_file, 'encoding', 'gramps')
code = top.get_widget('codeset')
code.set_active(0)
dialog = top.get_widget('encoding')
@ -103,13 +103,13 @@ def importData(database, filename, callback=None, use_trans=False):
#-------------------------------------------------------------------------
def import2(database, filename, callback, code_set, use_trans):
"""
Do the actual import of data
Import the gedcom file.
"""
assert(type(code_set) == str or type(code_set) == unicode)
try:
ifile = open(filename,"rU")
ifile = open(filename, "rU")
stage_one = StageOne(ifile)
stage_one.parse()

View File

@ -48,9 +48,9 @@ from BasicUtils import name_displayer
#
#-------------------------------------------------------------------------
def importData(database, dirname, callback=None, cl=0, use_trans=True):
'''
"""
Import dbdir database in dirname into dbdir database.
'''
"""
name = os.path.normpath(dirname)
other_database = GrampsDBDir()