Mercurial > hg > mercurial-crew-with-dirclash
view hgext/win32text.py @ 1826:f3abe0bdccdd
rewrite demandload module to be more flexible.
performance not affected.
old demandload module could only import top-level modules like os and
sys.
with rewrite, all of following syntax is emulated perfectly:
import foo, bar foo bar
import foo.bar.quux foo.bar.quux
from foo.bar import quux, blurfl foo.bar:quux,blurfl
only thing missing is "import foo as bar".
also, namespace clashes between placeholder object and demand loaded
module are no longer possible.
author | Vadim Gelfer <vadim.gelger@gmail.com> |
---|---|
date | Thu, 02 Mar 2006 11:38:03 -0800 |
parents | e58b1c9a0dec |
children | 30762680fcd2 |
line wrap: on
line source
import mercurial.util def dumbdecode(s, cmd): return s.replace('\n', '\r\n') def dumbencode(s, cmd): return s.replace('\r\n', '\n') def clevertest(s, cmd): if '\0' in s: return False return True def cleverdecode(s, cmd): if clevertest(s, cmd): return dumbdecode(s, cmd) return s def cleverencode(s, cmd): if clevertest(s, cmd): return dumbencode(s, cmd) return s mercurial.util.filtertable.update({ 'dumbdecode:': dumbdecode, 'dumbencode:': dumbencode, 'cleverdecode:': cleverdecode, 'cleverencode:': cleverencode, })