import-checker: check modules for pure Python build correctly
Before this patch, "import-checker.py" just replaces "/" in specified
filenames by ".". This makes modules for pure Python build belong to
"mercurial.pure" package, and prevents "import-checker.py" from
correctly checking about cyclic dependency in them.
This patch discards "pure" component from fully qualified name of such
modules.
To avoid discarding "pure" from the module name of standard libraries
unexpectedly, this patch allows "dotted_name_of_path" to discard
"pure" only from Mercurial specific modules, which are specified via
command line arguments.
% ancestors of [] and not of [1]
[]
% ancestors of [] and not of []
[]
% ancestors of [12] and not of []
[0, 1, 2, 4, 6, 7, 9, 12]
% ancestors of [0] and not of [0]
[]
% ancestors of [4, 5, 6] and not of [6, 5, 4]
[]
% ancestors of [-1] and not of [12]
[]
% ancestors of [12] and not of [-1]
[0, 1, 2, 4, 6, 7, 9, 12]
% ancestors of [12] and not of [9]
[12]
% ancestors of [9] and not of [12]
[]
% ancestors of [12, 9] and not of [7]
[6, 9, 12]
% ancestors of [7, 6] and not of [12]
[]
% ancestors of [10] and not of [11, 12]
[5, 10]
% ancestors of [11] and not of [10]
[3, 7, 11]
% ancestors of [11] and not of [10, 12]
[3, 11]
% ancestors of [12] and not of [10]
[6, 7, 9, 12]
% ancestors of [12] and not of [11]
[6, 9, 12]
% ancestors of [10, 11, 12] and not of [13]
[0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12]
% ancestors of [13] and not of [10, 11, 12]
[8, 13]
% lazy ancestor set for [], stoprev = 0, inclusive = False
[]
% lazy ancestor set for [11, 13], stoprev = 0, inclusive = False
[7, 8, 3, 4, 1, 0]
% lazy ancestor set for [1, 3], stoprev = 0, inclusive = False
[1, 0]
% lazy ancestor set for [11, 13], stoprev = 0, inclusive = True
[11, 13, 7, 8, 3, 4, 1, 0]
% lazy ancestor set for [11, 13], stoprev = 6, inclusive = False
[7, 8]
% lazy ancestor set for [11, 13], stoprev = 6, inclusive = True
[11, 13, 7, 8]