@@ -567,27 +567,47 @@ def inner():
567
567
568
568
return inner ()
569
569
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
+
570
581
def end_session (self ):
571
582
# type: (...) -> None
572
583
"""Ends the current session if there is one."""
573
584
client , scope = self ._stack [- 1 ]
574
- session = scope .session
585
+ session = scope ._session
575
586
if session is not None :
576
587
session .close ()
577
588
if client is not None :
578
589
client .capture_session (session )
579
- self ._stack [- 1 ][1 ].session = None
590
+ self ._stack [- 1 ][1 ]._session = None
580
591
581
- def start_session (self ):
592
+ def stop_auto_session_tracking (self ):
582
593
# 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
+ """
584
599
self .end_session ()
585
600
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
591
611
592
612
def flush (
593
613
self ,
0 commit comments