Skip to content

Commit bec73d3

Browse files
authored
Merge pull request #116 from SentienceAPI/scale_factor2
add device_scale_factor support & bump version
2 parents 51f4350 + 391d9e0 commit bec73d3

File tree

5 files changed

+25
-4
lines changed

5 files changed

+25
-4
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "sentienceapi"
7-
version = "0.92.0"
7+
version = "0.92.1"
88
description = "Python SDK for Sentience AI Agent Browser Automation"
99
readme = "README.md"
1010
requires-python = ">=3.11"

sentience/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
from .utils.formatting import format_snapshot_for_llm
7373
from .wait import wait_for
7474

75-
__version__ = "0.92.0"
75+
__version__ = "0.92.1"
7676

7777
__all__ = [
7878
# Core SDK

sentience/browser.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def __init__(
4343
record_video_dir: str | Path | None = None,
4444
record_video_size: dict[str, int] | None = None,
4545
viewport: Viewport | dict[str, int] | None = None,
46+
device_scale_factor: float | None = None,
4647
):
4748
"""
4849
Initialize Sentience browser
@@ -115,6 +116,9 @@ def __init__(
115116
else:
116117
self.viewport = viewport
117118

119+
# Device scale factor for high-DPI emulation
120+
self.device_scale_factor = device_scale_factor
121+
118122
self.playwright: Playwright | None = None
119123
self.context: BrowserContext | None = None
120124
self.page: Page | None = None
@@ -217,6 +221,10 @@ def start(self) -> None:
217221
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
218222
}
219223

224+
# Add device scale factor if configured
225+
if self.device_scale_factor is not None:
226+
launch_params["device_scale_factor"] = self.device_scale_factor
227+
220228
# Add proxy if configured
221229
if proxy_config:
222230
launch_params["proxy"] = proxy_config.to_playwright_dict()
@@ -596,6 +604,7 @@ def __init__(
596604
record_video_dir: str | Path | None = None,
597605
record_video_size: dict[str, int] | None = None,
598606
viewport: Viewport | dict[str, int] | None = None,
607+
device_scale_factor: float | None = None,
599608
):
600609
"""
601610
Initialize Async Sentience browser
@@ -615,6 +624,11 @@ def __init__(
615624
Viewport(width=1920, height=1080) (Full HD)
616625
{"width": 1280, "height": 800} (dict also supported)
617626
If None, defaults to Viewport(width=1280, height=800).
627+
device_scale_factor: Optional device scale factor to emulate high-DPI (Retina) screens.
628+
Examples: 1.0 (default, standard DPI)
629+
2.0 (Retina/high-DPI, like MacBook Pro)
630+
3.0 (very high DPI)
631+
If None, defaults to 1.0 (standard DPI).
618632
"""
619633
self.api_key = api_key
620634
# Only set api_url if api_key is provided, otherwise None (free tier)
@@ -649,6 +663,9 @@ def __init__(
649663
else:
650664
self.viewport = viewport
651665

666+
# Device scale factor for high-DPI emulation
667+
self.device_scale_factor = device_scale_factor
668+
652669
self.playwright: AsyncPlaywright | None = None
653670
self.context: AsyncBrowserContext | None = None
654671
self.page: AsyncPage | None = None
@@ -741,6 +758,10 @@ async def start(self) -> None:
741758
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
742759
}
743760

761+
# Add device scale factor if configured
762+
if self.device_scale_factor is not None:
763+
launch_params["device_scale_factor"] = self.device_scale_factor
764+
744765
# Add proxy if configured
745766
if proxy_config:
746767
launch_params["proxy"] = proxy_config.to_playwright_dict()

sentience/tracer_factory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
import gzip
88
import os
99
import uuid
10+
from collections.abc import Callable
1011
from pathlib import Path
1112
from typing import Any, Optional
12-
from collections.abc import Callable
1313

1414
import requests
1515

sentience/tracing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
import time
88
from abc import ABC, abstractmethod
9+
from collections.abc import Callable
910
from dataclasses import dataclass, field
1011
from datetime import datetime
1112
from pathlib import Path
1213
from typing import Any, Optional
13-
from collections.abc import Callable
1414

1515
from .models import TraceStats
1616
from .trace_file_manager import TraceFileManager

0 commit comments

Comments
 (0)