183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh"""Something just to look at via pydoc."""
283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehimport types
483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass A_classic:
683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A classic class."
783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def A_method(self):
883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A."
983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AB_method(self):
1083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and B."
1183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AC_method(self):
1283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and C."
1383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AD_method(self):
1483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and D."
1583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABC_method(self):
1683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and C."
1783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABD_method(self):
1883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and D."
1983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ACD_method(self):
2083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, C and D."
2183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
2283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
2383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
2483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
2583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass B_classic(A_classic):
2683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A classic class, derived from A_classic."
2783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AB_method(self):
2883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and B."
2983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABC_method(self):
3083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and C."
3183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABD_method(self):
3283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and D."
3383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
3483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
3583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def B_method(self):
3683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B."
3783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BC_method(self):
3883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and C."
3983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BD_method(self):
4083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and D."
4183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BCD_method(self):
4283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B, C and D."
4383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
4483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass C_classic(A_classic):
4583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A classic class, derived from A_classic."
4683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AC_method(self):
4783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and C."
4883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABC_method(self):
4983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and C."
5083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ACD_method(self):
5183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, C and D."
5283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
5383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
5483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BC_method(self):
5583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and C."
5683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BCD_method(self):
5783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B, C and D."
5883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def C_method(self):
5983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in C."
6083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def CD_method(self):
6183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in C and D."
6283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
6383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass D_classic(B_classic, C_classic):
6483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A classic class, derived from B_classic and C_classic."
6583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AD_method(self):
6683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and D."
6783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABD_method(self):
6883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and D."
6983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ACD_method(self):
7083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, C and D."
7183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
7283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
7383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BD_method(self):
7483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and D."
7583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BCD_method(self):
7683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B, C and D."
7783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def CD_method(self):
7883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in C and D."
7983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def D_method(self):
8083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in D."
8183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
8283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
8383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass A_new(object):
8483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A new-style class."
8583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
8683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def A_method(self):
8783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A."
8883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AB_method(self):
8983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and B."
9083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AC_method(self):
9183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and C."
9283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AD_method(self):
9383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and D."
9483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABC_method(self):
9583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and C."
9683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABD_method(self):
9783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and D."
9883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ACD_method(self):
9983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, C and D."
10083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
10183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
10283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
10383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def A_classmethod(cls, x):
10483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "A class method defined in A."
10583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    A_classmethod = classmethod(A_classmethod)
10683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
10783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def A_staticmethod():
10883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "A static method defined in A."
10983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    A_staticmethod = staticmethod(A_staticmethod)
11083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
11183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def _getx(self):
11283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "A property getter function."
11383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def _setx(self, value):
11483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "A property setter function."
11583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def _delx(self):
11683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "A property deleter function."
11783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    A_property = property(fdel=_delx, fget=_getx, fset=_setx,
11883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh                          doc="A sample property defined in A.")
11983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
12083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    A_int_alias = int
12183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
12283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass B_new(A_new):
12383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A new-style class, derived from A_new."
12483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
12583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AB_method(self):
12683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and B."
12783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABC_method(self):
12883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and C."
12983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABD_method(self):
13083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and D."
13183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
13283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
13383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def B_method(self):
13483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B."
13583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BC_method(self):
13683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and C."
13783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BD_method(self):
13883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and D."
13983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BCD_method(self):
14083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B, C and D."
14183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
14283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass C_new(A_new):
14383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    "A new-style class, derived from A_new."
14483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
14583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AC_method(self):
14683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and C."
14783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABC_method(self):
14883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and C."
14983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ACD_method(self):
15083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, C and D."
15183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
15283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
15383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BC_method(self):
15483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and C."
15583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BCD_method(self):
15683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B, C and D."
15783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def C_method(self):
15883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in C."
15983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def CD_method(self):
16083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in C and D."
16183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
16283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass D_new(B_new, C_new):
16383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    """A new-style class, derived from B_new and C_new.
16483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    """
16583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
16683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def AD_method(self):
16783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A and D."
16883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABD_method(self):
16983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B and D."
17083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ACD_method(self):
17183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, C and D."
17283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def ABCD_method(self):
17383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in A, B, C and D."
17483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BD_method(self):
17583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B and D."
17683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def BCD_method(self):
17783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in B, C and D."
17883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def CD_method(self):
17983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in C and D."
18083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def D_method(self):
18183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        "Method defined in D."
18283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
18383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehclass FunkyProperties(object):
18483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    """From SF bug 472347, by Roeland Rengelink.
18583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
18683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    Property getters etc may not be vanilla functions or methods,
18783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    and this used to make GUI pydoc blow up.
18883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    """
18983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
19083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    def __init__(self):
19183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        self.desc = {'x':0}
19283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
19383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    class get_desc:
19483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        def __init__(self, attr):
19583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            self.attr = attr
19683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        def __call__(self, inst):
19783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            print 'Get called', self, inst
19883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            return inst.desc[self.attr]
19983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    class set_desc:
20083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        def __init__(self, attr):
20183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            self.attr = attr
20283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        def __call__(self, inst, val):
20383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            print 'Set called', self, inst, val
20483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            inst.desc[self.attr] = val
20583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    class del_desc:
20683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        def __init__(self, attr):
20783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            self.attr = attr
20883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        def __call__(self, inst):
20983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            print 'Del called', self, inst
21083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            del inst.desc[self.attr]
21183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
21283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    x = property(get_desc('x'), set_desc('x'), del_desc('x'), 'prop x')
21383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
21483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
21583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehsubmodule = types.ModuleType(__name__ + '.submodule',
21683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    """A submodule, which should appear in its parent's summary""")
217