class_docstr: Decorator to keep backward compatibility support for old methods without exposing them (non-discoverable, non-documented).
  
  :example:
      @backwards_compatibility(
          class_attrs=dict(
            counter=1
          ),
          instance_attrs=dict(
            getincr=local_function_with_legacy_logic
          )
      )
      class Foo(metaclass=H2OMeta):
          global_counter = 0
  
          def __init__(self):
              self._counter = 0
  
          def incr_and_get(self):
              Foo.counter += 1
              self._counter += 1
              return self._counter
class_docstr_tok: ["Decorator","to","keep","backward","compatibility","support","for","old","methods","without","exposing","them","(","non-discoverable",",","non-documented",")",".",":","example",":","@","backwards_compatibility","(","class_attrs=dict","(","counter=1",")",",","instance_attrs=dict","(","getincr=local_function_with_legacy_logic",")",")","class","Foo","(","metaclass=H2OMeta",")",":","global_counter","=","0","def","__init__","(","self",")",":","self._counter","=","0","def","incr_and_get","(","self",")",":","Foo.counter","+=","1","self._counter","+=","1","return","self._counter"]
code: def __init__(self, class_attrs=None, instance_attrs=None):
      self._class_attrs = class_attrs or {}
      self._instance_attrs = instance_attrs or {}
  
imports: from h2o.utils.compatibility import *
  from functools import wraps
  import inspect
  import warnings
  from h2o.exceptions import H2ODeprecationWarning
label_desc: Use image node_id 1 to create a new _BackwardsCompatible object from inherited base classes: MetaFeature with example: obj = _BackwardsCompatible(class_attrs, instance_attrs)