Fix cyclic import (#781)
This commit is contained in:
@@ -659,7 +659,6 @@ class WorkflowService:
|
|||||||
tasks = await self.get_tasks_by_workflow_run_id(workflow_run.workflow_run_id)
|
tasks = await self.get_tasks_by_workflow_run_id(workflow_run.workflow_run_id)
|
||||||
all_workflow_task_ids = [task.task_id for task in tasks]
|
all_workflow_task_ids = [task.task_id for task in tasks]
|
||||||
browser_state = await app.BROWSER_MANAGER.cleanup_for_workflow_run(
|
browser_state = await app.BROWSER_MANAGER.cleanup_for_workflow_run(
|
||||||
workflow,
|
|
||||||
workflow_run.workflow_run_id,
|
workflow_run.workflow_run_id,
|
||||||
all_workflow_task_ids,
|
all_workflow_task_ids,
|
||||||
close_browser_on_completion,
|
close_browser_on_completion,
|
||||||
@@ -667,6 +666,13 @@ class WorkflowService:
|
|||||||
if browser_state:
|
if browser_state:
|
||||||
await self.persist_video_data(browser_state, workflow, workflow_run)
|
await self.persist_video_data(browser_state, workflow, workflow_run)
|
||||||
await self.persist_debug_artifacts(browser_state, tasks[-1], workflow, workflow_run)
|
await self.persist_debug_artifacts(browser_state, tasks[-1], workflow, workflow_run)
|
||||||
|
if workflow.persist_browser_session and browser_state.browser_artifacts.browser_session_dir:
|
||||||
|
await app.STORAGE.store_browser_session(
|
||||||
|
workflow.organization_id,
|
||||||
|
workflow.workflow_permanent_id,
|
||||||
|
browser_state.browser_artifacts.browser_session_dir,
|
||||||
|
)
|
||||||
|
LOG.info("Persisted browser session for workflow run", workflow_run_id=workflow_run.workflow_run_id)
|
||||||
|
|
||||||
await app.ARTIFACT_MANAGER.wait_for_upload_aiotasks_for_tasks(all_workflow_task_ids)
|
await app.ARTIFACT_MANAGER.wait_for_upload_aiotasks_for_tasks(all_workflow_task_ids)
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ from skyvern.exceptions import (
|
|||||||
UnknownBrowserType,
|
UnknownBrowserType,
|
||||||
UnknownErrorWhileCreatingBrowserContext,
|
UnknownErrorWhileCreatingBrowserContext,
|
||||||
)
|
)
|
||||||
from skyvern.forge import app
|
|
||||||
from skyvern.forge.sdk.core.skyvern_context import current
|
from skyvern.forge.sdk.core.skyvern_context import current
|
||||||
from skyvern.forge.sdk.schemas.tasks import ProxyLocation
|
from skyvern.forge.sdk.schemas.tasks import ProxyLocation
|
||||||
from skyvern.forge.sdk.settings_manager import SettingsManager
|
from skyvern.forge.sdk.settings_manager import SettingsManager
|
||||||
@@ -390,9 +389,3 @@ class BrowserState:
|
|||||||
async def take_screenshot(self, full_page: bool = False, file_path: str | None = None) -> bytes:
|
async def take_screenshot(self, full_page: bool = False, file_path: str | None = None) -> bytes:
|
||||||
page = await self.__assert_page()
|
page = await self.__assert_page()
|
||||||
return await SkyvernFrame.take_screenshot(page=page, full_page=full_page, file_path=file_path)
|
return await SkyvernFrame.take_screenshot(page=page, full_page=full_page, file_path=file_path)
|
||||||
|
|
||||||
async def store_browser_session(self, organization_id: str, workflow_permanent_id: str) -> None:
|
|
||||||
if self.browser_artifacts.browser_session_dir:
|
|
||||||
await app.STORAGE.store_browser_session(
|
|
||||||
organization_id, workflow_permanent_id, self.browser_artifacts.browser_session_dir
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from playwright.async_api import async_playwright
|
|||||||
from skyvern.constants import BROWSER_CLOSE_TIMEOUT
|
from skyvern.constants import BROWSER_CLOSE_TIMEOUT
|
||||||
from skyvern.exceptions import MissingBrowserState
|
from skyvern.exceptions import MissingBrowserState
|
||||||
from skyvern.forge.sdk.schemas.tasks import ProxyLocation, Task
|
from skyvern.forge.sdk.schemas.tasks import ProxyLocation, Task
|
||||||
from skyvern.forge.sdk.workflow.models.workflow import Workflow, WorkflowRun
|
from skyvern.forge.sdk.workflow.models.workflow import WorkflowRun
|
||||||
from skyvern.webeye.browser_factory import BrowserContextFactory, BrowserState, VideoArtifact
|
from skyvern.webeye.browser_factory import BrowserContextFactory, BrowserState, VideoArtifact
|
||||||
|
|
||||||
LOG = structlog.get_logger()
|
LOG = structlog.get_logger()
|
||||||
@@ -182,7 +182,6 @@ class BrowserManager:
|
|||||||
|
|
||||||
async def cleanup_for_workflow_run(
|
async def cleanup_for_workflow_run(
|
||||||
self,
|
self,
|
||||||
workflow: Workflow,
|
|
||||||
workflow_run_id: str,
|
workflow_run_id: str,
|
||||||
task_ids: list[str],
|
task_ids: list[str],
|
||||||
close_browser_on_completion: bool = True,
|
close_browser_on_completion: bool = True,
|
||||||
@@ -196,13 +195,6 @@ class BrowserManager:
|
|||||||
await browser_state_to_close.browser_context.tracing.stop(path=trace_path)
|
await browser_state_to_close.browser_context.tracing.stop(path=trace_path)
|
||||||
LOG.info("Stopped tracing", trace_path=trace_path)
|
LOG.info("Stopped tracing", trace_path=trace_path)
|
||||||
|
|
||||||
if workflow.persist_browser_session:
|
|
||||||
await browser_state_to_close.store_browser_session(
|
|
||||||
organization_id=workflow.organization_id,
|
|
||||||
workflow_permanent_id=workflow.workflow_permanent_id,
|
|
||||||
)
|
|
||||||
LOG.info("Persisted browser session for workflow run", workflow_run_id=workflow_run_id)
|
|
||||||
|
|
||||||
await browser_state_to_close.close(close_browser_on_completion=close_browser_on_completion)
|
await browser_state_to_close.close(close_browser_on_completion=close_browser_on_completion)
|
||||||
for task_id in task_ids:
|
for task_id in task_ids:
|
||||||
self.pages.pop(task_id, None)
|
self.pages.pop(task_id, None)
|
||||||
|
|||||||
Reference in New Issue
Block a user