parsagon 0.15.2__tar.gz → 0.16.0__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.
Files changed (38) hide show
  1. {parsagon-0.15.2 → parsagon-0.16.0}/PKG-INFO +6 -5
  2. {parsagon-0.15.2 → parsagon-0.16.0}/pyproject.toml +6 -5
  3. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/executor.py +3 -45
  4. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon.egg-info/PKG-INFO +6 -5
  5. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon.egg-info/requires.txt +5 -4
  6. {parsagon-0.15.2 → parsagon-0.16.0}/README.md +0 -0
  7. {parsagon-0.15.2 → parsagon-0.16.0}/setup.cfg +0 -0
  8. {parsagon-0.15.2 → parsagon-0.16.0}/src/__init__.py +0 -0
  9. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/__init__.py +0 -0
  10. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/api.py +0 -0
  11. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/assistant.py +0 -0
  12. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/create.py +0 -0
  13. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/custom_function.py +0 -0
  14. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/edit.py +0 -0
  15. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/exceptions.py +0 -0
  16. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/gui/__init__.py +0 -0
  17. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/gui/controller.py +0 -0
  18. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/gui/menu.py +0 -0
  19. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/gui/window.py +0 -0
  20. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/gui_entry.py +0 -0
  21. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/highlights.js +0 -0
  22. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/main.py +0 -0
  23. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/print.py +0 -0
  24. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/runs.py +0 -0
  25. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/secrets.py +0 -0
  26. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/settings.py +0 -0
  27. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/__init__.py +0 -0
  28. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/api_mocks.py +0 -0
  29. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/conftest.py +0 -0
  30. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/test_executor.py +0 -0
  31. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/test_invalid_args.py +0 -0
  32. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/test_pipeline_operations.py +0 -0
  33. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/test_print.py +0 -0
  34. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon/tests/test_secrets.py +0 -0
  35. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon.egg-info/SOURCES.txt +0 -0
  36. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon.egg-info/dependency_links.txt +0 -0
  37. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon.egg-info/entry_points.txt +0 -0
  38. {parsagon-0.15.2 → parsagon-0.16.0}/src/parsagon.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsagon
3
- Version: 0.15.2
3
+ Version: 0.16.0
4
4
  Summary: Allows you to create browser automations with natural language
5
5
  Author-email: Sandy Suh <sandy@parsagon.io>
6
6
  Project-URL: Homepage, https://parsagon.io
@@ -8,14 +8,15 @@ Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Operating System :: OS Independent
9
9
  Requires-Python: >=3.8
10
10
  Description-Content-Type: text/markdown
11
- Requires-Dist: selenium==4.9.1
11
+ Requires-Dist: seleniumbase==4.38.0
12
+ Requires-Dist: selenium>=4.9.1
12
13
  Requires-Dist: lxml[html_clean]==5.3.2
13
14
  Requires-Dist: httpx>=0.27.0
14
- Requires-Dist: psutil==5.9.6
15
- Requires-Dist: rich==13.6.0
15
+ Requires-Dist: psutil==7.0.0
16
+ Requires-Dist: rich>=13.6.0
16
17
  Requires-Dist: PyVirtualDisplay==3.0
17
18
  Requires-Dist: selenium-wire==5.1.0
18
- Requires-Dist: cssselect==1.2.0
19
+ Requires-Dist: cssselect>=1.2.0
19
20
  Requires-Dist: undetected-chromedriver==3.5.5
20
21
  Requires-Dist: webdriver-manager==4.0.2
21
22
  Requires-Dist: jsonpath-ng==1.5.3
@@ -16,7 +16,7 @@ line-length = 120
16
16
 
17
17
  [project]
18
18
  name = "parsagon"
19
- version = "0.15.2"
19
+ version = "0.16.0"
20
20
  description = "Allows you to create browser automations with natural language"
21
21
  readme = "README.md"
22
22
  requires-python = ">=3.8"
@@ -29,16 +29,17 @@ classifiers = [
29
29
  ]
30
30
 
31
31
  dependencies = [
32
- 'selenium == 4.9.1',
32
+ 'seleniumbase == 4.38.0',
33
+ 'selenium >= 4.9.1',
33
34
  'lxml[html_clean] == 5.3.2',
34
35
  'httpx >= 0.27.0',
35
- 'psutil == 5.9.6',
36
- 'rich == 13.6.0',
36
+ 'psutil == 7.0.0',
37
+ 'rich >= 13.6.0',
37
38
 
38
39
  # Used only in pipeline code execution
39
40
  'PyVirtualDisplay==3.0',
40
41
  'selenium-wire==5.1.0',
41
- 'cssselect==1.2.0',
42
+ 'cssselect>=1.2.0',
42
43
  'undetected-chromedriver==3.5.5',
43
44
  'webdriver-manager==4.0.2',
44
45
  'jsonpath-ng==1.5.3',
@@ -17,17 +17,11 @@ from lxml import etree
17
17
  import lxml.html
18
18
  from lxml.html.clean import Cleaner
19
19
  from pypdf import PdfReader
20
- from pyvirtualdisplay import Display
21
- import undetected_chromedriver as uc
22
- from selenium import webdriver
23
- from selenium.webdriver.chrome.service import Service as ChromeService
24
- from selenium.webdriver.chrome.options import Options
20
+ from seleniumbase import Driver
25
21
  from selenium.webdriver.common.action_chains import ActionChains
26
22
  from selenium.webdriver.common.by import By
27
23
  from selenium.webdriver.common.keys import Keys
28
24
  from selenium.webdriver.support.select import Select
29
- from webdriver_manager.chrome import ChromeDriverManager
30
- from webdriver_manager.core.driver_cache import DriverCacheManager
31
25
 
32
26
  from parsagon import settings
33
27
  from parsagon.api import (
@@ -82,7 +76,6 @@ class Executor:
82
76
  infer=False,
83
77
  use_uc=False,
84
78
  driver_path=None,
85
- options=[],
86
79
  page_load_timeout=None,
87
80
  script_timeout=None,
88
81
  function_bank={},
@@ -90,43 +83,8 @@ class Executor:
90
83
  self.task = task
91
84
  self.headless = headless
92
85
  self.function_bank = function_bank
93
- if self.headless:
94
- self.display = Display(visible=False, size=(1280, 1050)).start()
95
- if driver_path:
96
- cache_manager = DriverCacheManager(root_dir=driver_path)
97
- driver_executable_path = ChromeDriverManager(cache_manager=cache_manager).install()
98
- else:
99
- driver_executable_path = ChromeDriverManager().install()
100
- if use_uc:
101
- chrome_options = uc.ChromeOptions()
102
- chrome_options.add_argument("--start-maximized")
103
- for option in options:
104
- chrome_options.add_argument(option)
105
- chrome_options.add_experimental_option(
106
- "prefs",
107
- {
108
- "download.default_directory": os.getcwd(),
109
- "download.prompt_for_download": False,
110
- "download.directory_upgrade": True,
111
- "plugins.always_open_pdf_externally": True,
112
- },
113
- )
114
- self.driver = uc.Chrome(driver_executable_path=driver_executable_path, options=chrome_options)
115
- else:
116
- chrome_options = webdriver.ChromeOptions()
117
- chrome_options.add_argument("--start-maximized")
118
- for option in options:
119
- chrome_options.add_argument(option)
120
- chrome_options.add_experimental_option(
121
- "prefs",
122
- {
123
- "download.default_directory": os.getcwd(),
124
- "download.prompt_for_download": False,
125
- "download.directory_upgrade": True,
126
- "plugins.always_open_pdf_externally": True,
127
- },
128
- )
129
- self.driver = webdriver.Chrome(service=ChromeService(driver_executable_path), options=chrome_options)
86
+ self.driver = Driver(external_pdf=True, undetectable=use_uc)
87
+ self.driver.maximize_window()
130
88
  if page_load_timeout:
131
89
  self.driver.set_page_load_timeout(page_load_timeout)
132
90
  if script_timeout:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsagon
3
- Version: 0.15.2
3
+ Version: 0.16.0
4
4
  Summary: Allows you to create browser automations with natural language
5
5
  Author-email: Sandy Suh <sandy@parsagon.io>
6
6
  Project-URL: Homepage, https://parsagon.io
@@ -8,14 +8,15 @@ Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Operating System :: OS Independent
9
9
  Requires-Python: >=3.8
10
10
  Description-Content-Type: text/markdown
11
- Requires-Dist: selenium==4.9.1
11
+ Requires-Dist: seleniumbase==4.38.0
12
+ Requires-Dist: selenium>=4.9.1
12
13
  Requires-Dist: lxml[html_clean]==5.3.2
13
14
  Requires-Dist: httpx>=0.27.0
14
- Requires-Dist: psutil==5.9.6
15
- Requires-Dist: rich==13.6.0
15
+ Requires-Dist: psutil==7.0.0
16
+ Requires-Dist: rich>=13.6.0
16
17
  Requires-Dist: PyVirtualDisplay==3.0
17
18
  Requires-Dist: selenium-wire==5.1.0
18
- Requires-Dist: cssselect==1.2.0
19
+ Requires-Dist: cssselect>=1.2.0
19
20
  Requires-Dist: undetected-chromedriver==3.5.5
20
21
  Requires-Dist: webdriver-manager==4.0.2
21
22
  Requires-Dist: jsonpath-ng==1.5.3
@@ -1,11 +1,12 @@
1
- selenium==4.9.1
1
+ seleniumbase==4.38.0
2
+ selenium>=4.9.1
2
3
  lxml[html_clean]==5.3.2
3
4
  httpx>=0.27.0
4
- psutil==5.9.6
5
- rich==13.6.0
5
+ psutil==7.0.0
6
+ rich>=13.6.0
6
7
  PyVirtualDisplay==3.0
7
8
  selenium-wire==5.1.0
8
- cssselect==1.2.0
9
+ cssselect>=1.2.0
9
10
  undetected-chromedriver==3.5.5
10
11
  webdriver-manager==4.0.2
11
12
  jsonpath-ng==1.5.3
File without changes
File without changes
File without changes
File without changes