xbrowser 0.5.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ __pycache__/
2
+ *.pyc
3
+ dist/
4
+ .env
@@ -0,0 +1,39 @@
1
+ Metadata-Version: 2.5
2
+ Name: xbrowser
3
+ Version: 0.5.10
4
+ Summary: Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches.
5
+ Project-URL: Homepage, https://github.com/DevKuroX/XBrowser
6
+ Project-URL: Documentation, https://github.com/DevKuroX/XBrowser#readme
7
+ Project-URL: Repository, https://github.com/DevKuroX/XBrowser
8
+ Project-URL: Issues, https://github.com/DevKuroX/XBrowser/issues
9
+ Author-email: DevKuroX <devkurox@pm.me>
10
+ License-Expression: MIT
11
+ Keywords: ai-agent,anti-detect,antidetect,automation,bot-detection,browser,captcha,chromium,cloudflare,datadome,fingerprint,headless,playwright,puppeteer,recaptcha,scraping,stealth,turnstile,undetected,web-scraping
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
22
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
+ Classifier: Topic :: Software Development :: Testing
24
+ Requires-Python: >=3.9
25
+ Requires-Dist: cryptography>=41.0
26
+ Requires-Dist: httpx>=0.24
27
+ Requires-Dist: playwright>=1.40
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
30
+ Requires-Dist: pytest>=7.0; extra == 'dev'
31
+ Provides-Extra: geoip
32
+ Requires-Dist: geoip2>=4.0; extra == 'geoip'
33
+ Requires-Dist: socksio>=1.0; extra == 'geoip'
34
+ Provides-Extra: serve
35
+ Requires-Dist: aiohttp>=3.9; extra == 'serve'
36
+ Requires-Dist: websockets>=12.0; extra == 'serve'
37
+ Description-Content-Type: text/markdown
38
+
39
+ # Xbrowser
@@ -0,0 +1 @@
1
+ # Xbrowser
@@ -0,0 +1,77 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "xbrowser"
7
+ dynamic = ["version"]
8
+ description = "Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.9"
12
+ authors = [
13
+ { name = "DevKuroX", email = "devkurox@pm.me" },
14
+ ]
15
+ keywords = [
16
+ "stealth",
17
+ "browser",
18
+ "chromium",
19
+ "playwright",
20
+ "puppeteer",
21
+ "scraping",
22
+ "web-scraping",
23
+ "anti-detect",
24
+ "antidetect",
25
+ "undetected",
26
+ "bot-detection",
27
+ "fingerprint",
28
+ "recaptcha",
29
+ "cloudflare",
30
+ "turnstile",
31
+ "datadome",
32
+ "captcha",
33
+ "headless",
34
+ "automation",
35
+ "ai-agent",
36
+ ]
37
+ classifiers = [
38
+ "Development Status :: 5 - Production/Stable",
39
+ "Intended Audience :: Developers",
40
+ "License :: OSI Approved :: MIT License",
41
+ "Programming Language :: Python :: 3",
42
+ "Programming Language :: Python :: 3.9",
43
+ "Programming Language :: Python :: 3.10",
44
+ "Programming Language :: Python :: 3.11",
45
+ "Programming Language :: Python :: 3.12",
46
+ "Programming Language :: Python :: 3.13",
47
+ "Topic :: Internet :: WWW/HTTP :: Browsers",
48
+ "Topic :: Software Development :: Libraries :: Python Modules",
49
+ "Topic :: Software Development :: Testing",
50
+ ]
51
+ dependencies = [
52
+ "playwright>=1.40",
53
+ "httpx>=0.24",
54
+ "cryptography>=41.0", # verify Ed25519 signature on SHA256SUMS before trusting it
55
+ ]
56
+
57
+ [project.optional-dependencies]
58
+ geoip = ["geoip2>=4.0", "socksio>=1.0"] # socksio: SOCKS5 transport for httpx
59
+ serve = ["aiohttp>=3.9", "websockets>=12.0"]
60
+ dev = ["pytest>=7.0", "pytest-asyncio>=0.23"]
61
+
62
+ [project.scripts]
63
+ xbrowser = "xbrowser.__main__:main"
64
+
65
+ [project.urls]
66
+ Homepage = "https://github.com/DevKuroX/XBrowser"
67
+ Documentation = "https://github.com/DevKuroX/XBrowser#readme"
68
+ Repository = "https://github.com/DevKuroX/XBrowser"
69
+ Issues = "https://github.com/DevKuroX/XBrowser/issues"
70
+
71
+ [tool.hatch.version]
72
+ path = "xbrowser/_version.py"
73
+
74
+ [tool.pytest.ini_options]
75
+ testpaths = ["tests"]
76
+ asyncio_mode = "auto"
77
+ markers = ["slow: marks tests that hit live detection sites (deselect with '-m \"not slow\"')"]
@@ -0,0 +1,55 @@
1
+ """xbrowser — Stealth Chromium that passes every bot detection test.
2
+
3
+ Drop-in Playwright replacement with source-level fingerprint patches.
4
+
5
+ Usage:
6
+ from xbrowser import launch
7
+
8
+ browser = launch()
9
+ page = browser.new_page()
10
+ page.goto("https://protected-site.com")
11
+ browser.close()
12
+ """
13
+
14
+ from .browser import launch, launch_async, launch_context, launch_context_async, launch_persistent_context, launch_persistent_context_async, ProxySettings, build_args, maybe_resolve_geoip
15
+ from .config import CHROMIUM_VERSION, get_default_stealth_args
16
+ from .download import binary_info, check_for_update, clear_cache, ensure_binary
17
+ from .license import XBrowserLicenseError, LicenseInfo, validate_license
18
+ from ._version import __version__
19
+
20
+ # Human-like behavioral layer (optional)
21
+ def __getattr__(name):
22
+ if name == "HumanConfig":
23
+ from .human.config import HumanConfig
24
+ globals()["HumanConfig"] = HumanConfig
25
+ return HumanConfig
26
+ if name == "resolve_human_config":
27
+ from .human.config import resolve_config
28
+ globals()["resolve_human_config"] = resolve_config
29
+ return resolve_config
30
+ raise AttributeError(f"module 'xbrowser' has no attribute {name}")
31
+
32
+ __all__ = [
33
+ "launch",
34
+ "launch_async",
35
+ "launch_context",
36
+ "launch_context_async",
37
+ "launch_persistent_context",
38
+ "launch_persistent_context_async",
39
+ "ensure_binary",
40
+ "clear_cache",
41
+ "binary_info",
42
+ "check_for_update",
43
+ "CHROMIUM_VERSION",
44
+ "get_default_stealth_args",
45
+ "build_args",
46
+ "maybe_resolve_geoip",
47
+ "ProxySettings",
48
+ "validate_license",
49
+ "LicenseInfo",
50
+ "XBrowserLicenseError",
51
+ "HumanConfig",
52
+ "resolve_human_config",
53
+ "__version__",
54
+ ]
55
+