pure module loading issues with stable tip
Martin Geisler
martin at geisler.net
Fri Aug 24 10:01:10 CDT 2012
Adrian Buehlmann <adrian at cadifra.com> writes:
> On 2012-08-24 13:04, Martin Geisler wrote:
>> Steve Borho <steve at borho.org> writes:
>>
>>> Hello,
>>>
>>> obsolete.py is importing the base85 module with a "from" statement:
>>> from mercurial import util, base85
>>>
>>> If one is using the pure Python extensions by adding mercurial/pure to
>>> sys.path, this import statement breaks.
>>
>> As far as I know, this isn't how --pure works -- the files in
>> mercurial/pure are copied into mercurial/ and so sys.path is not
>> supposed to be modified.
>
> setup.py does it:
> http://selenic.com/repo/hg/file/a0cf8f4cd38b/setup.py#l159
>
> Steve's patch looks good to me.
Okay, I see now -- I knew that setup.py used the pure code to bootstrap
Mercurial, but I had not thought about how it would change things if a C
extension is imported with 'from mercurial import X'.
This suggests that we should use relative imports everywhere: instead of
from mercurial import X
we use
import X
when the importing module is already in mercurial. Older code already
does this, but I think there is a tendency for new code to use the
(IMHO) more logical and explicit 'from mercurial import X' style.
--
Martin Geisler
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20120824/42aee02f/attachment.pgp>
More information about the Mercurial-devel
mailing list