Zac Medico [Tue, 22 Sep 2009 19:48:26 +0000 (19:48 -0000)]
Do manual unicode handling (instead of using the wrapped os module) in
portdbapi.findname2(), since it's a hotspot. Thanks to Marat Radchenko
<marat@slonopotamus.org> for the initial patch.
svn path=/main/trunk/; revision=14378
Zac Medico [Tue, 22 Sep 2009 18:54:27 +0000 (18:54 -0000)]
For python 3.x with boolean target, len() results in TypeError, so
make __len__ return 0 or 1 in this case.
svn path=/main/trunk/; revision=14377
Zac Medico [Tue, 22 Sep 2009 18:37:31 +0000 (18:37 -0000)]
Optimize unicode wrappers. Thanks to Marat Radchenko <marat@slonopotamus.org>
for this patch from bug #276813.
svn path=/main/trunk/; revision=14376
Zac Medico [Tue, 22 Sep 2009 03:57:58 +0000 (03:57 -0000)]
Fix another potential 'RuntimeError: dictionary changed size during iteration'
exception in _owners_db._populate() for py3k.
svn path=/main/trunk/; revision=14375
Zac Medico [Tue, 22 Sep 2009 03:51:12 +0000 (03:51 -0000)]
Fix 'iteritems' attribute detection to look for 'items' instead.
svn path=/main/trunk/; revision=14374
Zac Medico [Tue, 22 Sep 2009 03:44:27 +0000 (03:44 -0000)]
Fix 'RuntimeError: dictionary changed size during iteration' in
bindbapi.aux_update() with py3k.
svn path=/main/trunk/; revision=14373
Zac Medico [Tue, 22 Sep 2009 02:46:02 +0000 (02:46 -0000)]
Remove redundant list() since starred expressions work with iterators.
svn path=/main/trunk/; revision=14372
Zac Medico [Tue, 22 Sep 2009 02:02:45 +0000 (02:02 -0000)]
Fix items to prevent infinite recursion.
svn path=/main/trunk/; revision=14371
Zac Medico [Mon, 21 Sep 2009 22:26:56 +0000 (22:26 -0000)]
Fix 'RuntimeError: dictionary changed size during iteration' in
_owners_db._populate() with py3k.
svn path=/main/trunk/; revision=14370
Zac Medico [Mon, 21 Sep 2009 22:20:28 +0000 (22:20 -0000)]
Don't wrap os.statvfs since it requires unicode string args in py3k.
svn path=/main/trunk/; revision=14369
Zac Medico [Mon, 21 Sep 2009 22:08:33 +0000 (22:08 -0000)]
Fix sorted() keyword arg for py3k.
svn path=/main/trunk/; revision=14368
Zac Medico [Mon, 21 Sep 2009 22:02:09 +0000 (22:02 -0000)]
Encode/decode names from the xpak index where appropriate.
svn path=/main/trunk/; revision=14367
Zac Medico [Mon, 21 Sep 2009 20:50:59 +0000 (20:50 -0000)]
In _unicode_func_wrapper, only encode keyword argument values, and not the
keys.
svn path=/main/trunk/; revision=14366
Zac Medico [Mon, 21 Sep 2009 20:44:30 +0000 (20:44 -0000)]
Fix PORTAGE_WORKDIR_MODE parsing code so it doesn't store python's octal
syntax in the environment variable.
svn path=/main/trunk/; revision=14365
Zac Medico [Mon, 21 Sep 2009 20:29:30 +0000 (20:29 -0000)]
Make find_binary() use os.environ.get instead of os.getenv, since os.getenv
isn't behaving correctly in py3k (maybe a unicode wrapper issue?).
svn path=/main/trunk/; revision=14364
Zac Medico [Mon, 21 Sep 2009 20:12:40 +0000 (20:12 -0000)]
Don't encode the env in py3k since it expects strings for the env that's
passed into os.execve().
svn path=/main/trunk/; revision=14363
Zac Medico [Mon, 21 Sep 2009 19:56:26 +0000 (19:56 -0000)]
Temporarily disable use of pty in py3k since it triggers an unresolved
issue, http://bugs.python.org/issue5380. With this workaround,
portage.tests.ebuild.test_spawn.SpawnTestCase.testLogfile() does
not raise IOError.
svn path=/main/trunk/; revision=14362
Zac Medico [Mon, 21 Sep 2009 19:51:02 +0000 (19:51 -0000)]
Fix decodeint() for py3k compat, since bytes are a sequence of integers
instead of characters.
svn path=/main/trunk/; revision=14361
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 18:34:38 +0000 (18:34 -0000)]
Use input() instead of raw_input() when Python 3 is used.
svn path=/main/trunk/; revision=14358
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 18:19:39 +0000 (18:19 -0000)]
Decode database name passed to portage.cache.sqlite.database._db_module.connect() for compatibility with Python 3.
svn path=/main/trunk/; revision=14357
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 18:14:01 +0000 (18:14 -0000)]
Use next(iterator) instead of iterator.next() for compatibility with Python 3.
(2to3-3.1 -f next -nw ${FILES})
svn path=/main/trunk/; revision=14355
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 18:02:08 +0000 (18:02 -0000)]
Decode all keys in dictionary containing environment passed to os.execve() in portage.process._exec() for compatibility with Python 3.
svn path=/main/trunk/; revision=14352
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 17:46:21 +0000 (17:46 -0000)]
'filtered_auxdbkeys' should be a list to allow sorting.
svn path=/main/trunk/; revision=14347
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 17:41:45 +0000 (17:41 -0000)]
Define long as int when Python 3 is used.
svn path=/main/trunk/; revision=14343
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 17:03:17 +0000 (17:03 -0000)]
Support bytes in portage.util.normalize_path() with Python 3.
svn path=/main/trunk/; revision=14333
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 17:00:59 +0000 (17:00 -0000)]
Fix portage._unicode_func_wrapper.__call__() to properly handle bytes with Python 3.
svn path=/main/trunk/; revision=14331
Zac Medico [Mon, 21 Sep 2009 16:57:17 +0000 (16:57 -0000)]
Fix dep_expand so that it doesn't use deprecated dep_getcpv() usage
(with missing category).
svn path=/main/trunk/; revision=14330
Zac Medico [Mon, 21 Sep 2009 16:25:27 +0000 (16:25 -0000)]
Fix infinite recursion in items and values methods.
svn path=/main/trunk/; revision=14329
Zac Medico [Mon, 21 Sep 2009 16:23:20 +0000 (16:23 -0000)]
Fix infinite recursion in items and values methods.
svn path=/main/trunk/; revision=14328
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 16:07:07 +0000 (16:07 -0000)]
Use dict.(keys|values|items)() instead of dict.(iterkeys|itervalues|iteritems)() for compatibility with Python 3.
(2to3-3.1 -f dict -nw ${FILES})
svn path=/main/trunk/; revision=14327
Zac Medico [Mon, 21 Sep 2009 15:44:51 +0000 (15:44 -0000)]
Fix case for 0 args in args unicode conversion.
svn path=/main/trunk/; revision=14326
Zac Medico [Mon, 21 Sep 2009 15:29:25 +0000 (15:29 -0000)]
Simplify match_to_list(). Thanks to Marat Radchenko <marat@slonopotamus.org>
for this patch from bug #276813.
svn path=/main/trunk/; revision=14325
Zac Medico [Mon, 21 Sep 2009 15:24:12 +0000 (15:24 -0000)]
Show deprecation warnings when dep_* legacy code is triggered.
svn path=/main/trunk/; revision=14324
Zac Medico [Mon, 21 Sep 2009 14:47:40 +0000 (14:47 -0000)]
Fix breakage in _unicode_encode() for non-string types.
svn path=/main/trunk/; revision=14323
Zac Medico [Mon, 21 Sep 2009 14:34:13 +0000 (14:34 -0000)]
Deprecate key_expand and portage.dbapi.porttree.portagetree.resolve_specific
which calls it.
svn path=/main/trunk/; revision=14322
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 14:15:49 +0000 (14:15 -0000)]
Support both Python 2 and 3 in portage._unicode_encode() and portage._unicode_decode().
Update decoding in some files.
svn path=/main/trunk/; revision=14321
Zac Medico [Mon, 21 Sep 2009 13:48:15 +0000 (13:48 -0000)]
Use dep_expand instead of key_expand in the blocker display, since it seems
like a better fit. Also, use str(atom) since we don't want to assume that
Atoms are string type (though they happen to be now). This assumption is
what caused the traceback in bug 285637, comment #5.
svn path=/main/trunk/; revision=14320
Zac Medico [Mon, 21 Sep 2009 13:16:12 +0000 (13:16 -0000)]
Make key_expand() always return Atom type.
svn path=/main/trunk/; revision=14319
Zac Medico [Mon, 21 Sep 2009 13:06:29 +0000 (13:06 -0000)]
Add deprecation warnings to vartree.exists_specific_cat(), getnode(), and
hasnode(). Use dbapi methods instead.
svn path=/main/trunk/; revision=14318
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 12:49:33 +0000 (12:49 -0000)]
Use range() instead of xrange() for compatibility with Python 3.
(2to3-3.1 -f xrange -nw ${FILES})
svn path=/main/trunk/; revision=14317
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 12:44:37 +0000 (12:44 -0000)]
Define basestring as str when Python 3 is used.
svn path=/main/trunk/; revision=14316
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 12:16:07 +0000 (12:16 -0000)]
Fix all remaining SyntaxErrors with Python 3.
svn path=/main/trunk/; revision=14315
Arfrever Frehtes Taifersar Arahesis [Mon, 21 Sep 2009 11:49:13 +0000 (11:49 -0000)]
Use filter() and zip() instead of itertools.ifilter() and itertools.izip() for compatibility with Python 3.
(2to3-3.1 -f itertools -f itertools_imports -nw ${FILES})
svn path=/main/trunk/; revision=14314
Zac Medico [Mon, 21 Sep 2009 02:06:49 +0000 (02:06 -0000)]
Make Atom.__init__ call the base class constructor, though it doesn't seem
to matter.
svn path=/main/trunk/; revision=14313
Zac Medico [Mon, 21 Sep 2009 02:04:47 +0000 (02:04 -0000)]
When generating config.prevmaskdict, only call the Atom constructor when
necessary.
svn path=/main/trunk/; revision=14312
Zac Medico [Mon, 21 Sep 2009 01:54:01 +0000 (01:54 -0000)]
Fix AtomArg constructor calls to pass in Atom instances, so the constructor
never has to construct one.
svn path=/main/trunk/; revision=14311
Zac Medico [Mon, 21 Sep 2009 01:43:35 +0000 (01:43 -0000)]
Tread blockers as invalid.
svn path=/main/trunk/; revision=14310
Zac Medico [Mon, 21 Sep 2009 01:20:49 +0000 (01:20 -0000)]
Fix redundant Atom construtor call in _show_unsatisfied_dep().
svn path=/main/trunk/; revision=14309
Zac Medico [Sun, 20 Sep 2009 23:31:28 +0000 (23:31 -0000)]
Remove virtuals from the cache because they're unused since portage-2.1.6
and it won't hurt older portage.
svn path=/main/trunk/; revision=14308
Zac Medico [Sun, 20 Sep 2009 23:14:08 +0000 (23:14 -0000)]
Fix typos in http.client imports.
svn path=/main/trunk/; revision=14307
Zac Medico [Sun, 20 Sep 2009 23:01:21 +0000 (23:01 -0000)]
Fix typo from previous commit.
svn path=/main/trunk/; revision=14306
Zac Medico [Sun, 20 Sep 2009 22:59:04 +0000 (22:59 -0000)]
Fix depgraph._validate_blockers() so that it doesn't do prohibited Atom(Atom)
constructor calls.
svn path=/main/trunk/; revision=14305
Zac Medico [Sun, 20 Sep 2009 22:45:32 +0000 (22:45 -0000)]
Add fallback in ImportError for io.StringIO. This is needed for python-2.6
with USE=build since io imports threading which imports thread which is
unavailable.
svn path=/main/trunk/; revision=14304
Zac Medico [Sun, 20 Sep 2009 22:23:58 +0000 (22:23 -0000)]
Add support in ConsoleStyleFile.write() for unicode encoding when writing to
stdout/stderr in python-2.x.
svn path=/main/trunk/; revision=14303
Zac Medico [Sun, 20 Sep 2009 22:08:22 +0000 (22:08 -0000)]
Misc unicode fixes for repoman.
svn path=/main/trunk/; revision=14302
Zac Medico [Sun, 20 Sep 2009 20:00:57 +0000 (20:00 -0000)]
Use _unicode_encode() to ensure that only unicode strings are passed into
io.StringIO text streams.
svn path=/main/trunk/; revision=14301
Zac Medico [Sun, 20 Sep 2009 19:34:34 +0000 (19:34 -0000)]
Make Atom inherit from str. Thanks to Marat Radchenko
<marat@slonopotamus.org> for this patch from bug #276813.
svn path=/main/trunk/; revision=14300
Zac Medico [Sun, 20 Sep 2009 18:54:57 +0000 (18:54 -0000)]
Make _unicode_module_wrapper cache wrappers and reuse them. Thanks to
Marat Radchenko <marat@slonopotamus.org> for this patch from bug #276813.
svn path=/main/trunk/; revision=14299
Zac Medico [Sun, 20 Sep 2009 18:38:00 +0000 (18:38 -0000)]
In doebuild_environment(), detect if setcpv() hasn't been called properly,
and call it if necessary (mainly for api consumers).
svn path=/main/trunk/; revision=14298
Zac Medico [Sun, 20 Sep 2009 18:13:06 +0000 (18:13 -0000)]
Add back a line which I erroneously removed when committing the patch for
bug 203733. Thanks to Alexis Ballier <aballier@g.o> for reporting the related
KeyError.
svn path=/main/trunk/; revision=14297
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 16:48:13 +0000 (16:48 -0000)]
Fix position of imports from __future__.
svn path=/main/trunk/; revision=14296
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 16:41:30 +0000 (16:41 -0000)]
Support print() function with Python 2 in more files.
svn path=/main/trunk/; revision=14295
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 16:22:08 +0000 (16:22 -0000)]
Update system imports for compatibility with Python 3.
svn path=/main/trunk/; revision=14294
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 12:39:22 +0000 (12:39 -0000)]
Update syntax of numbers in some files which were missing in previous commit.
svn path=/main/trunk/; revision=14293
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 11:47:45 +0000 (11:47 -0000)]
Update syntax of numbers for compatibility with Python 3.
(2to3-3.1 -f numliterals -nw ${FILES})
svn path=/main/trunk/; revision=14292
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 11:28:14 +0000 (11:28 -0000)]
Support print() function with Python 2 in some files.
svn path=/main/trunk/; revision=14291
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 11:08:30 +0000 (11:08 -0000)]
Update syntax of calls to print() for compatibility with Python 3.
(2to3-3.1 -f print -nw ${FILES})
svn path=/main/trunk/; revision=14290
Arfrever Frehtes Taifersar Arahesis [Sun, 20 Sep 2009 10:57:44 +0000 (10:57 -0000)]
Update syntax of 'except' statements for compatibility with Python 3.
(2to3-3.1 -f except -nw ${FILES})
svn path=/main/trunk/; revision=14289
Zac Medico [Sun, 20 Sep 2009 06:56:46 +0000 (06:56 -0000)]
Bug #285637 - Fix NameError exception triggered by InvalidAtom in
grabfile_package().
svn path=/main/trunk/; revision=14288
Zac Medico [Sat, 19 Sep 2009 23:05:24 +0000 (23:05 -0000)]
Add isinstance(mydep, Atom) checks to the dep_* functions since we don't use a
metaclass to do that anymore (due to performance).
svn path=/main/trunk/; revision=14286
Zac Medico [Sat, 19 Sep 2009 21:30:08 +0000 (21:30 -0000)]
Fix config.setinst() to add Atom instances to the provider lists instead of
plain str.
svn path=/main/trunk/; revision=14285
Zac Medico [Sat, 19 Sep 2009 20:14:25 +0000 (20:14 -0000)]
Revert accidental changes _unicode_module_wrapper.__getattribute__ from
previous commit.
svn path=/main/trunk/; revision=14284
Zac Medico [Sat, 19 Sep 2009 20:10:56 +0000 (20:10 -0000)]
Remove obsolete InvalidAtom handler in _add_pkg_dep_string().
svn path=/main/trunk/; revision=14283
Zac Medico [Sat, 19 Sep 2009 17:05:52 +0000 (17:05 -0000)]
Avoid lots of redundant Atom constructor calls. Thanks to Marat Radchenko
<marat@slonopotamus.org> for the initial patch from bug #276813.
svn path=/main/trunk/; revision=14282
Zac Medico [Sat, 19 Sep 2009 14:57:18 +0000 (14:57 -0000)]
Fix _expand_new_virtuals() to preserve USE deps in atoms for new-style
virtuals, and update the corresponding depgraph code.
svn path=/main/trunk/; revision=14281
Zac Medico [Sat, 19 Sep 2009 12:58:52 +0000 (12:58 -0000)]
Use a dict for Package.metadata, because it's faster. Thanks to Marat
Radchenko <marat@slonopotamus.org> for this patch from bug #276813.
svn path=/main/trunk/; revision=14280
Zac Medico [Fri, 18 Sep 2009 15:18:34 +0000 (15:18 -0000)]
Atom optimizations. Remove the metaclass and cache since it just slows it
down. Thanks to Marat Radchenko <marat@slonopotamus.org> for this patch.
svn path=/main/trunk/; revision=14279
Arfrever Frehtes Taifersar Arahesis [Tue, 15 Sep 2009 21:39:57 +0000 (21:39 -0000)]
Update documentation of inherit. Reported by Jeremy Olexa.
svn path=/main/trunk/; revision=14274
Zac Medico [Mon, 14 Sep 2009 13:44:53 +0000 (13:44 -0000)]
Fix broken virtual depth code from previous commit.
svn path=/main/trunk/; revision=14273
Zac Medico [Mon, 14 Sep 2009 13:35:01 +0000 (13:35 -0000)]
Add support in depgraph._add_pkg_dep_string() for adding indirect virtual
deps to the graph. This takes advantage of circular dependency avoidance
that's done by dep_zapdeps, while avoiding the dependency graph distortion
reported in bug #283795.
svn path=/main/trunk/; revision=14272
Zac Medico [Mon, 14 Sep 2009 12:51:31 +0000 (12:51 -0000)]
Make depgraph._select_atoms() return a dict, in order to separate selected
direct deps from indirect virtual deps.
svn path=/main/trunk/; revision=14271
Zac Medico [Mon, 14 Sep 2009 11:18:21 +0000 (11:18 -0000)]
When _expand_new_virtuals() is called by repoman, skip expansion of new-style
virtuals.
svn path=/main/trunk/; revision=14270
Zac Medico [Mon, 14 Sep 2009 11:05:16 +0000 (11:05 -0000)]
Reimplement the code from bug #283795 so that indirect deps are preserved
for later use. TODO: Write code to add selected indirect virtual deps to
the graph. This will take advantage of circular dependency avoidance that's
done by dep_zapdeps.
svn path=/main/trunk/; revision=14269
Zac Medico [Mon, 14 Sep 2009 08:24:30 +0000 (08:24 -0000)]
Simplify cpv_getkey() by just calling dep_getkey('=' + mycpv).
svn path=/main/trunk/; revision=14264
Zac Medico [Mon, 14 Sep 2009 08:11:22 +0000 (08:11 -0000)]
Make dep_getcpv() use Atom, and fall back to legacy code for backward compat.
svn path=/main/trunk/; revision=14262
Zac Medico [Mon, 14 Sep 2009 07:59:47 +0000 (07:59 -0000)]
Insice match_from_list(), use remove_slot() instead of dep_getcpv() where
appropriate.
svn path=/main/trunk/; revision=14261
Zac Medico [Mon, 14 Sep 2009 07:52:45 +0000 (07:52 -0000)]
Use a regular expression for cpv_getkey(), and fall back to legacy code if
no match is found.
svn path=/main/trunk/; revision=14259
Zac Medico [Mon, 14 Sep 2009 07:02:18 +0000 (07:02 -0000)]
Make get_operator() use Atom, and remove unnecessary reflection code from
dep_getkey(). Thanks to Marat Radchenko <marat@slonopotamus.org> for
suggestions.
svn path=/main/trunk/; revision=14256
Zac Medico [Mon, 14 Sep 2009 06:49:01 +0000 (06:49 -0000)]
Make isspecific() use the Atom class and fall back to legacy code if the
atom is invalid. Also, optimize called isjustname() legacy code to only
check the last 2 components.
svn path=/main/trunk/; revision=14255
Zac Medico [Mon, 14 Sep 2009 06:02:36 +0000 (06:02 -0000)]
Use the Atom class to implement dep_getkey(), and fall back to legacy code
when necessary for backward compatibility.
svn path=/main/trunk/; revision=14254
Zac Medico [Mon, 14 Sep 2009 05:54:39 +0000 (05:54 -0000)]
Add more test cases.
svn path=/main/trunk/; revision=14253
Zac Medico [Mon, 14 Sep 2009 05:51:28 +0000 (05:51 -0000)]
Simplify isvalidatom() to simply use the Atom class. Thanks to Marat
Radchenko <marat@slonopotamus.org> for the suggestion.
svn path=/main/trunk/; revision=14252
Zac Medico [Mon, 14 Sep 2009 05:46:21 +0000 (05:46 -0000)]
Simplify the _pkg regex and fix validation for some cases by using the
_version regex to match unwanted version-like components which can not
be at the end of a _pkg match. For example
isvalidatom('app-doc/php-docs-
20071125-r2') now correctly returns False.
svn path=/main/trunk/; revision=14251
Zac Medico [Mon, 14 Sep 2009 03:32:30 +0000 (03:32 -0000)]
Bug #240656 - Unmerge broken symlinks where a directory was expected.
(merged from branches/prefix r14248)
svn path=/main/trunk/; revision=14250
Zac Medico [Mon, 14 Sep 2009 02:45:33 +0000 (02:45 -0000)]
Simlify the Atom regex. Thanks to Marat Radchenko <marat@slonopotamus.org>
for this patch.
svn path=/main/trunk/; revision=14249
Zac Medico [Sun, 13 Sep 2009 00:07:50 +0000 (00:07 -0000)]
Use cpv_getkey() instead of dep_getkey() where appropriate.
svn path=/main/trunk/; revision=14242
Zac Medico [Sun, 13 Sep 2009 00:01:18 +0000 (00:01 -0000)]
Make the Atom constructor use regular expression match groups for
initialization. Thanks to Marat Radchenko <marat@slonopotamus.org> for this
patch.
svn path=/main/trunk/; revision=14241
Zac Medico [Sat, 12 Sep 2009 23:21:32 +0000 (23:21 -0000)]
Fix docs for isjustname() since it doesn't raise InvalidAtom now.
svn path=/main/trunk/; revision=14240
Zac Medico [Sat, 12 Sep 2009 23:18:56 +0000 (23:18 -0000)]
Add backward compatibility to isjustname(), so the tests don't fail.
svn path=/main/trunk/; revision=14239
Zac Medico [Sat, 12 Sep 2009 22:52:19 +0000 (22:52 -0000)]
Add tests for the Atom class.
svn path=/main/trunk/; revision=14238