Use shorter encoding of UUID when using UUID as id

This commit is contained in:
Kovid Goyal 2015-11-06 22:41:54 +05:30
parent 5935c435ea
commit 620262d6b8
3 changed files with 7 additions and 6 deletions

View File

@ -6,7 +6,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>' __copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import os, re, uuid, logging import os, re, logging
from collections import defaultdict from collections import defaultdict
from itertools import count from itertools import count
from urlparse import urldefrag, urlparse, urlunparse, urljoin from urlparse import urldefrag, urlparse, urlunparse, urljoin
@ -21,6 +21,7 @@ from calibre import (isbytestring, as_unicode, get_types_map)
from calibre.ebooks.oeb.parse_utils import (barename, XHTML_NS, RECOVER_PARSER, from calibre.ebooks.oeb.parse_utils import (barename, XHTML_NS, RECOVER_PARSER,
namespace, XHTML, parse_html, NotHTML) namespace, XHTML, parse_html, NotHTML)
from calibre.utils.cleantext import clean_xml_chars from calibre.utils.cleantext import clean_xml_chars
from calibre.utils.short_uuid import uuid4
XML_NS = 'http://www.w3.org/XML/1998/namespace' XML_NS = 'http://www.w3.org/XML/1998/namespace'
OEB_DOC_NS = 'http://openebook.org/namespaces/oeb-document/1.0/' OEB_DOC_NS = 'http://openebook.org/namespaces/oeb-document/1.0/'
@ -100,7 +101,7 @@ def close_self_closing_tags(raw):
return _self_closing_pat.sub(r'<\g<tag>\g<arg>></\g<tag>>', raw) return _self_closing_pat.sub(r'<\g<tag>\g<arg>></\g<tag>>', raw)
def uuid_id(): def uuid_id():
return 'u'+unicode(uuid.uuid4()) return u'u'+uuid4()
def itercsslinks(raw): def itercsslinks(raw):
for match in _css_url_re.finditer(raw): for match in _css_url_re.finditer(raw):

View File

@ -191,9 +191,9 @@ class NoUID(BaseError):
BaseError.__init__(self, _('The OPF has no unique identifier'), name) BaseError.__init__(self, _('The OPF has no unique identifier'), name)
def __call__(self, container): def __call__(self, container):
import uuid from calibre.ebooks.oeb.base import uuid_id
opf = container.opf opf = container.opf
uid = 'u' + str(uuid.uuid4()) uid = uuid_id()
opf.set('unique-identifier', uid) opf.set('unique-identifier', uid)
m = container.opf_xpath('/opf:package/opf:metadata') m = container.opf_xpath('/opf:package/opf:metadata')
if not m: if not m:

View File

@ -344,9 +344,9 @@ class InvalidId(BaseError):
self.invalid_id = eid self.invalid_id = eid
def __call__(self, container): def __call__(self, container):
import uuid from calibre.ebooks.oeb.base import uuid_id
from calibre.ebooks.oeb.polish.replace import replace_ids from calibre.ebooks.oeb.polish.replace import replace_ids
newid = 'g' + uuid.uuid4().hex newid = uuid_id()
changed = False changed = False
elems = (e for e in container.parsed(self.name).xpath('//*[@id]') if e.get('id') == self.invalid_id) elems = (e for e in container.parsed(self.name).xpath('//*[@id]') if e.get('id') == self.invalid_id)
for e in elems: for e in elems: