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 +13 -1
- parsagon/executor.py +9 -0
- parsagon/runs.py +5 -2
- {parsagon-0.14.26.dist-info → parsagon-0.14.28.dist-info}/METADATA +1 -1
- {parsagon-0.14.26.dist-info → parsagon-0.14.28.dist-info}/RECORD +8 -8
- {parsagon-0.14.26.dist-info → parsagon-0.14.28.dist-info}/WHEEL +0 -0
- {parsagon-0.14.26.dist-info → parsagon-0.14.28.dist-info}/entry_points.txt +0 -0
- {parsagon-0.14.26.dist-info → parsagon-0.14.28.dist-info}/top_level.txt +0 -0
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(
|
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,16 +1,16 @@
|
|
1
1
|
parsagon/__init__.py,sha256=_S5MlYHBViB4iY96_UbGo3mfGndE8MmFmb1EORJppK8,452
|
2
|
-
parsagon/api.py,sha256=
|
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=
|
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=
|
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.
|
29
|
-
parsagon-0.14.
|
30
|
-
parsagon-0.14.
|
31
|
-
parsagon-0.14.
|
32
|
-
parsagon-0.14.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|