docs: def decorate(package):
      """Decorates all the methods in the specified package to have logging
      enabled according to the configuration for the package.
      """
      from os import sep
      global _decor_count, _decorated_packs, _decorated_o, _pack_paths
      global decorating
      if "acorn" not in _decorated_packs:
          _decorated_packs.append("acorn")
          packpath = "acorn{}".format(sep)
          if packpath not in _pack_paths:
              #We initialize _pack_paths to include common packages that people
              #use without decorating. Otherwise those slow *way* down and the
              #notebook becomes unusable.
              _pack_paths.append(packpath)
          
      npack = package.__name__
      #Since scipy includes numpy (for example), we don't want to run the numpy
      #decoration twice if the person also chooses to import numpy. In that case,
      #we just skip it; the memory references in scipy point to the same numpy
      #modules and libraries.
      if npack not in _decorated_packs:
          _decor_count[npack] = [0, 0, 0]
          _decorated_o[npack] = {}
          _load_subclasses(npack)
          
          packsplit = _split_object(package, package.__name__)
          origdecor = decorating
          decorating = True
          
          for ot, ol in packsplit.items():
              for name, obj in ol:
                  decorate_obj(package, name, obj, ot)
  
          #Now that we have actually decorated all the objects, we can load the
          #call wraps to point to the new decorated objects.
          _load_callwraps(npack, package)
          _load_streamlines(npack, package)
          _load_logging(npack, package)
          decorating = origdecor
          _decorated_packs.append(npack)
          _pack_paths.append("{}{}".format(npack, sep))
          msg.info("{}: {} (Decor/Skip/NA)".format(npack, _decor_count[npack]))