Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 204883 Details for
Bug 276813
sys-apps/portage Performance improvement
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Optimizes unicode wrappers by avoiding redundant isinstance checks
faster_unicode_wrappers.patch (text/plain), 2.34 KB, created by
Marat Radchenko
on 2009-09-22 06:42:31 UTC
(
hide
)
Description:
Optimizes unicode wrappers by avoiding redundant isinstance checks
Filename:
MIME Type:
Creator:
Marat Radchenko
Created:
2009-09-22 06:42:31 UTC
Size:
2.34 KB
patch
obsolete
>diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py >index 5141e98..b47b999 100644 >--- a/pym/portage/__init__.py >+++ b/pym/portage/__init__.py >@@ -141,22 +141,26 @@ _encodings = { > if _encodings['merge'] is None: > _encodings['merge'] = 'ascii' > >-def _unicode_encode(s, encoding=_encodings['content'], >- errors='backslashreplace'): >- if sys.hexversion >= 0x3000000: >+if sys.hexversion >= 0x3000000: >+ def _unicode_encode(s, encoding=_encodings['content'], errors='backslashreplace'): > if isinstance(s, str): > s = s.encode(encoding, errors) >- elif isinstance(s, unicode): >- s = s.encode(encoding, errors) >- return s >+ return s > >-def _unicode_decode(s, encoding=_encodings['content'], errors='replace'): >- if isinstance(s, bytes): >- if sys.hexversion >= 0x3000000: >+ def _unicode_decode(s, encoding=_encodings['content'], errors='replace'): >+ if isinstance(s, bytes): > s = str(s, encoding=encoding, errors=errors) >- else: >+ return s >+else: >+ def _unicode_encode(s, encoding=_encodings['content'], errors='backslashreplace'): >+ if isinstance(s, unicode): >+ s = s.encode(encoding, errors) >+ return s >+ >+ def _unicode_decode(s, encoding=_encodings['content'], errors='replace'): >+ if isinstance(s, bytes): > s = unicode(s, encoding=encoding, errors=errors) >- return s >+ return s > > class _unicode_func_wrapper(object): > """ >@@ -189,24 +193,22 @@ class _unicode_func_wrapper(object): > > rval = self._func(*wrapped_args, **wrapped_kwargs) > >- if isinstance(rval, (bytes, basestring, list, tuple)): >- if isinstance(rval, (bytes, basestring)): >- rval = _unicode_decode(rval, >- encoding=encoding, errors='replace') >- else: >- decoded_rval = [] >- for x in rval: >- try: >- x = _unicode_decode(x, encoding=encoding, errors='strict') >- except UnicodeDecodeError: >- pass >- else: >- decoded_rval.append(x) >- >- if isinstance(rval, tuple): >- rval = tuple(decoded_rval) >+ if isinstance(rval, (list, tuple)): >+ decoded_rval = [] >+ for x in rval: >+ try: >+ x = _unicode_decode(x, encoding=encoding, errors='strict') >+ except UnicodeDecodeError: >+ pass > else: >- rval = decoded_rval >+ decoded_rval.append(x) >+ >+ if isinstance(rval, tuple): >+ rval = tuple(decoded_rval) >+ else: >+ rval = decoded_rval >+ else: >+ rval = _unicode_decode(rval, encoding=encoding, errors='replace') > > return rval >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 276813
:
196987
|
197434
|
197437
|
197827
|
198253
|
203267
|
203269
|
203406
|
203509
|
203512
|
203515
|
203519
|
204572
|
204597
|
204673
|
204685
|
204770
|
204883
|
204996
|
205039