class_docstr: Internal class used to parse kwargs for server URL, app_path, and session_id.
class_docstr_tok: ["Internal","class","used","to","parse","kwargs","for","server","URL",",","app_path",",","and","session_id","."]
docstr: Session ID provided in kwargs, keeping it None if it hasn't been generated yet.
  
  The purpose of this is to preserve ``None`` as long as possible... in some cases
  we may never generate the session ID because we generate it on the server.
docstr_tok: ["Session","ID","provided","in","kwargs",",","keeping","it","None","if","it","has","n't","been","generated","yet",".","The","purpose","of","this","is","to","preserve","``","None","``","as","long","as","possible","...","in","some","cases","we","may","never","generate","the","session","ID","because","we","generate","it","on","the","server","."]
code: def session_id_allowing_none(self) -> ID | None:
      """Session ID provided in kwargs, keeping it None if it hasn't been generated yet.
  
      The purpose of this is to preserve ``None`` as long as possible... in some cases
      we may never generate the session ID because we generate it on the server.
      """
      return self._session_id
  
imports: from __future__ import annotations
  import logging
  import json
  import os
  import re
  from os.path import relpath
  from pathlib import Path
  from typing import TYPE_CHECKING, Callable, ClassVar, Literal, Protocol, TypedDict, Union, cast, get_args
  from .None import __version__
  from .core.templates import CSS_RESOURCES, JS_RESOURCES
  from .core.types import ID, PathLike
  from .model import Model
  from .settings import LogLevel, settings
  from .util.dataclasses import dataclass, field
  from .util.paths import ROOT_DIR
  from .util.token import generate_session_id
  from .util.version import is_full_release
label_desc: Use image node_id 4 for calling the SessionCoordinates obj's underlying member method code with example usage: obj.session_id_allowing_none() and returns: self