~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/symbol_versioning.py

  • Committer: John Arbash Meinel
  • Date: 2008-05-28 23:08:34 UTC
  • mto: This revision was merged to the branch mainline in revision 3458.
  • Revision ID: john@arbash-meinel.com-20080528230834-m1qw9peoydd3koty
Disable suppression if there is already a filter present for Warnings

Show diffs side-by-side

added added

removed removed

Lines of Context:
333
333
    return _DeprecatedList(initial_value)
334
334
 
335
335
 
 
336
def _check_for_filter(error_only):
 
337
    """Check if there is already a filter for deprecation warnings.
 
338
    
 
339
    :param error_only: Only match an 'error' filter
 
340
    :return: True if a filter is found, False otherwise
 
341
    """
 
342
    import warnings
 
343
    for filter in warnings.filters:
 
344
        if issubclass(DeprecationWarning, filter[2]):
 
345
            # This filter will effect DeprecationWarning
 
346
            if not error_only or filter[0] == 'error':
 
347
                return True
 
348
    return False
 
349
 
 
350
 
336
351
def suppress_deprecation_warnings():
337
352
    """Call this function to suppress all deprecation warnings.
338
353
 
341
356
    running a dev or release candidate.
342
357
    """
343
358
    import warnings
 
359
    if _check_for_filter(False):
 
360
        # If there is already a filter effecting suppress_deprecation_warnings,
 
361
        # then skip it.
 
362
        return
344
363
    warnings.filterwarnings('ignore', category=DeprecationWarning)
345
364
 
346
365
 
359
378
        to be turned into errors. If True, then do not override with 'default'.
360
379
    """
361
380
    import warnings
362
 
    if not always:
363
 
        for filter in warnings.filters:
364
 
            if (filter[0] == 'error'
365
 
                and issubclass(DeprecationWarning, filter[2])):
366
 
                # DeprecationWarnings are already turned into errors, don't
367
 
                # downgrade them to 'default'.
368
 
                return
 
381
    if not always and _check_for_filter(True):
 
382
        # DeprecationWarnings are already turned into errors, don't downgrade
 
383
        # them to 'default'.
 
384
        return
369
385
    warnings.filterwarnings('default', category=DeprecationWarning)