~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/symbol_versioning.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-06-18 05:22:35 UTC
  • mfrom: (1551.15.27 Aaron's mergeable stuff)
  • Revision ID: pqm@pqm.ubuntu.com-20070618052235-mvns8j28szyzscy0
Turn list-weave into list-versionedfile

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
           'zero_sixteen',
38
38
           'zero_seventeen',
39
39
           'zero_eighteen',
40
 
           'zero_ninety',
41
 
           'zero_ninetyone',
42
 
           'zero_ninetytwo',
43
 
           'zero_ninetythree',
44
 
           'one_zero',
45
 
           'one_one',
46
40
           ]
47
41
 
48
42
from warnings import warn
61
55
zero_sixteen = "%s was deprecated in version 0.16."
62
56
zero_seventeen = "%s was deprecated in version 0.17."
63
57
zero_eighteen = "%s was deprecated in version 0.18."
64
 
zero_ninety = "%s was deprecated in version 0.90."
65
 
zero_ninetyone = "%s was deprecated in version 0.91."
66
 
zero_ninetytwo = "%s was deprecated in version 0.92."
67
 
one_zero = "%s was deprecated in version 1.0."
68
 
zero_ninetythree = one_zero # Maintained for backwards compatibility
69
 
one_one = "%s was deprecated in version 1.1."
70
58
 
71
59
 
72
60
def set_warning_method(method):
92
80
        have a single %s operator in it. a_callable will be turned into a nice
93
81
        python symbol and then substituted into deprecation_version.
94
82
    """
95
 
    # We also want to handle old-style classes, in particular exception, and
96
 
    # they don't have an im_class attribute.
97
83
    if getattr(a_callable, 'im_class', None) is None:
98
84
        symbol = "%s.%s" % (a_callable.__module__,
99
85
                            a_callable.__name__)
124
110
 
125
111
def deprecated_method(deprecation_version):
126
112
    """Decorate a method so that use of it will trigger a warning.
127
 
 
128
 
    To deprecate a static or class method, use 
129
 
 
130
 
        @staticmethod
131
 
        @deprecated_function
132
 
        def ...
133
113
    
134
114
    To deprecate an entire class, decorate __init__.
135
115
    """
139
119
        
140
120
        def decorated_method(self, *args, **kwargs):
141
121
            """This is the decorated method."""
142
 
            if callable.__name__ == '__init__':
143
 
                symbol = "%s.%s" % (self.__class__.__module__,
144
 
                                    self.__class__.__name__,
145
 
                                    )
146
 
            else:
147
 
                symbol = "%s.%s.%s" % (self.__class__.__module__,
148
 
                                       self.__class__.__name__,
149
 
                                       callable.__name__
150
 
                                       )
 
122
            symbol = "%s.%s.%s" % (self.__class__.__module__,
 
123
                                   self.__class__.__name__,
 
124
                                   callable.__name__
 
125
                                   )
151
126
            warn(deprecation_version % symbol, DeprecationWarning, stacklevel=2)
152
127
            return callable(self, *args, **kwargs)
153
128
        _populate_decorated(callable, deprecation_version, "method",