class_docstr: Load an application directory which modifies a Document.
      
class_docstr_tok: ["Load","an","application","directory","which","modifies","a","Document","."]
docstr: The last path component for the basename of the path to the
  configured directory.
docstr_tok: ["The","last","path","component","for","the","basename","of","the","path","to","the","configured","directory","."]
code: def url_path(self) -> str | None:
      """The last path component for the basename of the path to the
      configured directory.
  
      """
      if self.failed:
          return None
      else:
          # TODO should fix invalid URL characters
          return "/" + basename(self._path)
  
imports: from __future__ import annotations
  import logging
  import sys
  from os.path import basename, dirname, exists, join
  from types import ModuleType
  from typing import TYPE_CHECKING, Any, Coroutine
  from jinja2 import Environment, FileSystemLoader, Template
  from ...core.types import PathLike
  from ...document import Document
  from ..application import ServerContext, SessionContext
  from .code_runner import CodeRunner
  from .handler import Handler
  from .notebook import NotebookHandler
  from .script import ScriptHandler
  from .server_lifecycle import ServerLifecycleHandler
  from .server_request_handler import ServerRequestHandler
label_desc: Use image node_id 12 for calling the DirectoryHandler obj's underlying member method code with example usage: obj.url_path() and returns: None, unknown