class_docstr: Temporary holder object for registering a blueprint with the
  application.  An instance of this class is created by the
  :meth:`~flask.Blueprint.make_setup_state` method and later passed
  to all register callback functions.
code: def __init__(
      self,
      blueprint: Blueprint,
      app: App,
      options: t.Any,
      first_registration: bool,
  ) -> None:
      #: a reference to the current application
      self.app = app
  
      #: a reference to the blueprint that created this setup state.
      self.blueprint = blueprint
  
      #: a dictionary with all options that were passed to the
      #: :meth:`~flask.Flask.register_blueprint` method.
      self.options = options
  
      #: as blueprints can be registered multiple times with the
      #: application and not everything wants to be registered
      #: multiple times on it, this attribute can be used to figure
      #: out if the blueprint was registered in the past already.
      self.first_registration = first_registration
  
      subdomain = self.options.get("subdomain")
      if subdomain is None:
          subdomain = self.blueprint.subdomain
  
      #: The subdomain that the blueprint should be active for, ``None``
      #: otherwise.
      self.subdomain = subdomain
  
      url_prefix = self.options.get("url_prefix")
      if url_prefix is None:
          url_prefix = self.blueprint.url_prefix
      #: The prefix that should be used for all URLs defined on the
      #: blueprint.
      self.url_prefix = url_prefix
  
      self.name = self.options.get("name", blueprint.name)
      self.name_prefix = self.options.get("name_prefix", "")
  
      #: A dictionary with URL defaults that is added to each and every
      #: URL that was defined with the blueprint.
      self.url_defaults = dict(self.blueprint.url_values_defaults)
      self.url_defaults.update(self.options.get("url_defaults", ()))
  
imports: from __future__ import annotations
  import os
  import typing
  from collections import defaultdict
  from functools import update_wrapper
  from ..None import typing
  from .scaffold import _endpoint_from_view_func
  from .scaffold import _sentinel
  from .scaffold import Scaffold
  from .scaffold import setupmethod
label_desc: Use image node_id 1 to create a new BlueprintSetupState object  with example: obj = BlueprintSetupState(blueprint, app, options, first_registration)