Skip to content

ProfileController

Create a separate controller for independent session ownership. For the shared controller, use profile.

class linescope.api.ProfileController()[source]

Manage context blocks and explicit profiling sessions.

The shared instance is exported as profile and profiler. Create a separate controller for independent session ownership.

Attributes

result : ProfileResult

Read-only access to the latest explicit session's session.result. Finalized by stop().


See Also

Config

Configure a single profiling session.

ProfileResult

Combine portable source snapshots with backend-independent run data.

Session

Collect source measurements and render an HTML report.


Example

>>> from linescope import ProfileController

>>> controller = ProfileController()
>>> with controller(
...     backend="trace", display="none", notebooks=False, spark=False
... ) as session:
...     total = sum(range(10))

>>> (total, str(session.state), str(session.result.backend))
(45, 'stopped', 'trace')


Methods

start Start a new session using explicit Config options.
stop Stop the current explicit session without returning its result.
save Save the current session without displaying it.
show Display the current session.


method start(**options)[source]

Start a new session using explicit Config options.

Example

>>> from linescope import ProfileController

>>> controller = ProfileController()
>>> session = controller.start(
...     backend="trace", display="none", notebooks=False, spark=False
... )
>>> total = sum(range(10))
>>> controller.stop()
>>> result = controller.result
>>> (total, str(session.state), str(result.backend))
(45, 'stopped', 'trace')
Parameters

**options

Configuration fields for the new session. Use display="none" to collect without displaying a report automatically at stop.

Returns

Session

The running session retained by this controller.



method stop()[source]

Stop the current explicit session without returning its result.

Instrumentation is restored before any configured report display. Retrieve the completed result through profile.result or session.result. Repeated calls do nothing without displaying again.



method save(path)[source]

Save the current session without displaying it.

Parameters

path : str | Path

Destination HTML filename. Missing parent directories are created. Stop collection first when saving a finalized sampling result.

Returns

Path

Absolute path of the self-contained report.



method show(inline=None)[source]

Display the current session.

Reports display inside notebook cells automatically and open a browser elsewhere. Use inline to choose the destination for this report. Return None; retrieve the HTML string through session.html(). Stop collection first when displaying a finalized sampling result.

Parameters

inline : bool | None, default=None

Choose the destination for this report. None detects the environment; True requires a notebook, and False opens a browser.