code: def register_package(pkg):
      
  
      root_pkg_dir = pkg
      if not os.path.isdir(pkg) and "." in pkg:
          root_pkg_dir = utils.get_pkg_resources_filename(pkg)
  
      template_path = os.path.join(root_pkg_dir, "templates")
      static_path = os.path.join(root_pkg_dir, "static")
  
      logging.info("Registering Package: " + pkg)
      if os.path.isdir(template_path):
          template_path = jinja2.FileSystemLoader(template_path)
          View._template_paths.add(template_path)
  
      if os.path.isdir(static_path):
          View._static_paths.add(static_path)
          View._add_asset_bundle(static_path)
  
      if os.path.isfile(os.path.join(root_pkg_dir, "exceptions.py")):
          exceptions = utils.import_string(pkg + ".exceptions")
          init_app(lambda x: abort.map_from_module(exceptions))
docs: Allow to register packages by loading and exposing: templates, static,
      and exceptions for abort()
  
      Structure of package
          root
              | $package_name
                  | __init__.py
                  |
                  | exceptions.py
                  |
                  | /templates
                      |
                      |
                  |
                  | /static
                      |
                      | assets.yml
  
      :param pkg: str - __package__
                      or __name__
                      or The root dir
                      or the dotted resource package (package.path.path,
                      usually __name__ of templates and static