%PDF- %PDF-
Direktori : /lib/calibre/calibre/db/cli/ |
Current File : //lib/calibre/calibre/db/cli/cmd_remove_custom_column.py |
#!/usr/bin/env python3 # License: GPLv3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net> import sys from calibre import prints from calibre.db.legacy import LibraryDatabase readonly = False version = 0 # change this if you change signature of implementation() no_remote = True def implementation(db, notify_changes, *args): raise NotImplementedError() def option_parser(get_parser, args): parser = get_parser( _( '''\ %prog remove_custom_column [options] label Remove the custom column identified by label. You can see available columns with the custom_columns command. ''' ) ) parser.add_option( '-f', '--force', default=False, action='store_true', help=_('Do not ask for confirmation') ) return parser def input_unicode(prompt): ans = input(prompt) if isinstance(ans, bytes): ans = ans.decode(sys.stdin.encoding) return ans def do_remove_custom_column(db, label, force): if not force: q = input_unicode( _('You will lose all data in the column: %s.' ' Are you sure (y/n)? ') % label ) if q.lower().strip() != _('y'): return try: db.delete_custom_column(label=label) except KeyError: raise SystemExit( _( 'No column named %s found. You must use column labels, not titles.' ' Use calibredb custom_columns to get a list of labels.' ) % label ) prints('Column %r removed.' % label) def main(opts, args, dbctx): if len(args) < 1: raise SystemExit(_('Error: You must specify a column label')) do_remove_custom_column(dbctx.db, args[0], opts.force) # Update the stored field_metadata dbctx.db.close() db = LibraryDatabase(dbctx.db.library_path) m = db.field_metadata.all_metadata() db.new_api.set_pref('field_metadata', m) return 0