parsagon 0.14.26__py3-none-any.whl → 0.14.28__py3-none-any.whl

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.
parsagon/api.py CHANGED
@@ -235,7 +235,19 @@ def get_pipelines():
235
235
  return _api_call(httpx.get, f"/pipelines/")
236
236
 
237
237
 
238
- def get_pipeline_code(pipeline_name, variables, headless, use_uc, optimize, use_proxy):
238
+ def get_pipeline_code(pipeline_name, variables, headless, use_uc, optimize, use_proxy, pipeline_id=None):
239
+ if pipeline_id:
240
+ return _api_call(
241
+ httpx.post,
242
+ f"/pipelines/{pipeline_id}/code/",
243
+ json={
244
+ "variables": variables,
245
+ "headless": headless,
246
+ "use_uc": use_uc,
247
+ "optimize": optimize,
248
+ "use_proxy": use_proxy,
249
+ },
250
+ )
239
251
  escaped_pipeline_name = double_quote(pipeline_name)
240
252
  with RaiseProgramNotFound(pipeline_name):
241
253
  return _api_call(
parsagon/executor.py CHANGED
@@ -141,6 +141,7 @@ class Executor:
141
141
  "join_text": self.join_text,
142
142
  "wait": self.wait,
143
143
  "get_inner_text": self.get_inner_text,
144
+ "get_inner_text_by_id": self.get_inner_text_by_id,
144
145
  "scrape_data": self.scrape_data,
145
146
  "get_str_about_data": get_str_about_data,
146
147
  "get_bool_about_data": get_bool_about_data,
@@ -566,8 +567,16 @@ class Executor:
566
567
  self.inject_highlights_script()
567
568
 
568
569
  def get_inner_text(self, window_id):
570
+ if self.driver.current_window_handle != window_id:
571
+ self.driver.switch_to.window(window_id)
569
572
  return self.driver.execute_script("return document.body.innerText;")
570
573
 
574
+ def get_inner_text_by_id(self, elem_id, window_id):
575
+ if self.driver.current_window_handle != window_id:
576
+ self.driver.switch_to.window(window_id)
577
+ elem = self._id_to_elem(elem_id)
578
+ return elem.get_attribute("innerText")
579
+
571
580
  def scrape_data(self, schema, window_id, call_id):
572
581
  """
573
582
  Scrapes data from the current page.
parsagon/runs.py CHANGED
@@ -22,6 +22,7 @@ logger = logging.getLogger(__name__)
22
22
 
23
23
  def run(
24
24
  program_name,
25
+ program_id=None,
25
26
  variables={},
26
27
  headless=False,
27
28
  remote=False,
@@ -42,7 +43,7 @@ def run(
42
43
  raise ParsagonException("Variables must be a dictionary")
43
44
 
44
45
  logger.info("Preparing to run program %s", program_name)
45
- pipeline_id = get_pipeline(program_name)["id"]
46
+ pipeline_id = program_id or get_pipeline(program_name)["id"]
46
47
 
47
48
  if remote:
48
49
  result = create_pipeline_run(pipeline_id, variables, False)
@@ -81,7 +82,9 @@ def run(
81
82
  time.sleep(5)
82
83
 
83
84
  run = create_pipeline_run(pipeline_id, variables, True)
84
- code = get_pipeline_code(program_name, variables, headless, undetected, optimize, use_proxy)["code"]
85
+ code = get_pipeline_code(
86
+ program_name, variables, headless, undetected, optimize, use_proxy, pipeline_id=program_id
87
+ )["code"]
85
88
  start_time = datetime.datetime.now(datetime.timezone.utc).isoformat()
86
89
  run_data = {"start_time": start_time}
87
90
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsagon
3
- Version: 0.14.26
3
+ Version: 0.14.28
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
@@ -1,16 +1,16 @@
1
1
  parsagon/__init__.py,sha256=_S5MlYHBViB4iY96_UbGo3mfGndE8MmFmb1EORJppK8,452
2
- parsagon/api.py,sha256=z52b5zBMTaIpWw9tu5-fF0Ngt58Vtm5TFnreUm8O_XU,9834
2
+ parsagon/api.py,sha256=DpnHmbP61je3qeX9_6mUFt44Ps0f4TwaSRUsWVueAIM,10203
3
3
  parsagon/assistant.py,sha256=V3NL6UdDqe74W_X3wPQ1qwFuJRvHzitXtOt-XSCXvds,4065
4
4
  parsagon/create.py,sha256=igrJN8jVP5p3P9-dPSabrHGOQOlG2Flx7ep4SqEDB14,4373
5
5
  parsagon/custom_function.py,sha256=oEj28qItaHUnsvLIHD7kg5QL3J3aO6rW6xKKP-H-Drs,770
6
6
  parsagon/edit.py,sha256=aLeAcp1hFHm29qh6do21cfYykK76CsHC4tc9Uh2_2bk,3006
7
7
  parsagon/exceptions.py,sha256=tG1vnpmUN1GdJ1GSpe1MaWH3zWmFLZCwtOfEGu8qPP0,910
8
- parsagon/executor.py,sha256=Vijqx5fbYmglC1EFxMp4K0oqDTOmCy0ruBxZ784X0Uk,26932
8
+ parsagon/executor.py,sha256=9Jctnv4u2fOgBDp3QqhVd_z3p5AsuMflBxyeW5RnjDk,27362
9
9
  parsagon/gui_entry.py,sha256=bqG9K0CArXWWwDGoT8aV17YLNM8MfjSf6SJ_B3QbNeA,671
10
10
  parsagon/highlights.js,sha256=2UDfUApblU9xtGgTLCq4X7rHRV0wcqDSSFZPmJS6fJg,16643
11
11
  parsagon/main.py,sha256=WPxrT1ZyPe6wNSFP7GnnKIGisgPM2dFieHP2TC5TGVQ,9467
12
12
  parsagon/print.py,sha256=-7iVKil0W9e8zX1EJMcdlqNdfpmfPxKTBtZfwzWpGYU,4106
13
- parsagon/runs.py,sha256=XXbk3eUJjBBETBq6AUyBrNPIR18svCRTSCSnhN2GpOc,8560
13
+ parsagon/runs.py,sha256=gi36oak3RxKo1BxB0Bc6GV8K06vrrBrEXu3NYkIVPwY,8633
14
14
  parsagon/secrets.py,sha256=72dr-6q1q2ATBkE75fT18tcvwDM-4nymTb9NDVwjHTE,545
15
15
  parsagon/settings.py,sha256=ejd9wGCOEB68n8a0M2SyzlmlwPofnzMKaxpBqYhcs34,3552
16
16
  parsagon/gui/__init__.py,sha256=ZvKZfcchSnBh__UY_XeMnQJACd1EG99ix3_SfSHth8g,68
@@ -25,8 +25,8 @@ parsagon/tests/test_invalid_args.py,sha256=TAFdHGy92lUxjljPrtODOuEGVss6rn-F5GvEK
25
25
  parsagon/tests/test_pipeline_operations.py,sha256=aEwZNtIwOl9X7jdLDLB4YEdgMp7_x8PXCINAE7RT4NY,805
26
26
  parsagon/tests/test_print.py,sha256=BG7f55YDBoL0S7k291-so_Gje_hUAQOkB-jh-bEYsJY,198
27
27
  parsagon/tests/test_secrets.py,sha256=Ctsscl2tmMTZcFAy5dnyqUlgTov2UharZgLpbRCLdEg,2662
28
- parsagon-0.14.26.dist-info/METADATA,sha256=beaG5po0hkamZx4Frl-B94LQVWEvzr_afeXG13j73Ko,2461
29
- parsagon-0.14.26.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
30
- parsagon-0.14.26.dist-info/entry_points.txt,sha256=I1UlPUb4oY2k9idkI8kvdkEcrjKGRSOl5pMbA6uu6kw,48
31
- parsagon-0.14.26.dist-info/top_level.txt,sha256=ih5uYQzW4qjhRKppys-WiHLIbXVZ99YdqDcfAtlcQwk,9
32
- parsagon-0.14.26.dist-info/RECORD,,
28
+ parsagon-0.14.28.dist-info/METADATA,sha256=MCKYF-3T0z2MkuTS90Afil6PTFNbe4jLKT4cGEwTJKQ,2461
29
+ parsagon-0.14.28.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
30
+ parsagon-0.14.28.dist-info/entry_points.txt,sha256=I1UlPUb4oY2k9idkI8kvdkEcrjKGRSOl5pMbA6uu6kw,48
31
+ parsagon-0.14.28.dist-info/top_level.txt,sha256=ih5uYQzW4qjhRKppys-WiHLIbXVZ99YdqDcfAtlcQwk,9
32
+ parsagon-0.14.28.dist-info/RECORD,,