@@ -567,27 +567,47 @@ def inner():
567567
568568 return inner ()
569569
570+ def start_session (self ):
571+ # type: (...) -> None
572+ """Starts a new session."""
573+ self .end_session ()
574+ client , scope = self ._stack [- 1 ]
575+ scope ._session = Session (
576+ release = client .options ["release" ] if client else None ,
577+ environment = client .options ["environment" ] if client else None ,
578+ user = scope ._user ,
579+ )
580+
570581 def end_session (self ):
571582 # type: (...) -> None
572583 """Ends the current session if there is one."""
573584 client , scope = self ._stack [- 1 ]
574- session = scope .session
585+ session = scope ._session
575586 if session is not None :
576587 session .close ()
577588 if client is not None :
578589 client .capture_session (session )
579- self ._stack [- 1 ][1 ].session = None
590+ self ._stack [- 1 ][1 ]._session = None
580591
581- def start_session (self ):
592+ def stop_auto_session_tracking (self ):
582593 # type: (...) -> None
583- """Starts a new session."""
594+ """Stops automatic session tracking.
595+
596+ This temporarily session tracking for the current scope when called.
597+ To resume session tracking call `resume_auto_session_tracking`.
598+ """
584599 self .end_session ()
585600 client , scope = self ._stack [- 1 ]
586- scope .session = Session (
587- release = client .options ["release" ] if client else None ,
588- environment = client .options ["environment" ] if client else None ,
589- user = scope ._user ,
590- )
601+ scope ._force_auto_session_tracking = False
602+
603+ def resume_auto_session_tracking (self ):
604+ # type: (...) -> None
605+ """Resumes automatic session tracking for the current scope if
606+ disabled earlier. This requires that generally automatic session
607+ tracking is enabled.
608+ """
609+ client , scope = self ._stack [- 1 ]
610+ scope ._force_auto_session_tracking = None
591611
592612 def flush (
593613 self ,
0 commit comments