parsagon 0.14.6__py3-none-any.whl → 0.14.8__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/executor.py CHANGED
@@ -215,30 +215,22 @@ class Executor:
215
215
  id_to_elem = {}
216
216
  for elem in root.iter():
217
217
  elem_id = elem.get("data-psgn-id")
218
- if elem_id is not None:
218
+ if elem_id:
219
219
  id_to_elem[elem_id] = elem
220
- visible_elem_ids = driver.execute_script(
221
- "return Array.from(document.getElementsByTagName('*')).filter((elem) => { const style = getComputedStyle(elem); const rect = elem.getBoundingClientRect(); return style.opacity > 0.1 && style.display !== 'none' && style.visibility === 'visible' && elem.offsetWidth && elem.offsetHeight && elem.getClientRects().length && rect.left + window.scrollX >= 0 && rect.top + window.scrollY >= 0 }).map((elem) => elem.getAttribute('data-psgn-id'))"
220
+ visible_elem_ids = set(
221
+ driver.execute_script(
222
+ "return Array.from(document.getElementsByTagName('*')).filter((elem) => { const style = getComputedStyle(elem); return style.opacity > 0.1 && style.display !== 'none' && style.visibility === 'visible' && elem.offsetWidth && elem.offsetHeight && elem.getClientRects().length }).map((elem) => elem.getAttribute('data-psgn-id'))"
223
+ )
222
224
  )
223
- visible_elems = set()
224
- for elem_id in visible_elem_ids[::-1]:
225
- elem = id_to_elem[elem_id]
226
- if elem in visible_elems:
227
- continue
228
- visible_elems.add(elem)
229
- # visible_elems.update(elem.iterancestors())
230
225
  max_elem_id = self.max_elem_ids[self.driver.current_window_handle]
231
226
  with Progress() as progress:
232
227
  for elem_id in progress.track(range(max_elem_id), description="[green]Analyzing page"):
233
228
  elem_id = str(elem_id)
234
- if elem_id not in id_to_elem:
235
- continue
236
- elem = id_to_elem[elem_id]
237
- is_visible = elem in visible_elems
238
- if not is_visible:
239
- parent = elem.getparent()
229
+ if elem_id in id_to_elem and elem_id not in visible_elem_ids:
230
+ lxml_elem = id_to_elem[elem_id]
231
+ parent = lxml_elem.getparent()
240
232
  if parent is not None:
241
- parent.remove(elem)
233
+ parent.remove(lxml_elem)
242
234
 
243
235
  return lxml.html.tostring(root).decode()
244
236
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsagon
3
- Version: 0.14.6
3
+ Version: 0.14.8
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
@@ -5,7 +5,7 @@ parsagon/create.py,sha256=UiX6ffLPw2zF4atQxHFKBXpnlX05G1HHSn7Xi4K7tBM,3921
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=svZGqFTPea1i06H7kQBoZS0o4i61nYMPOA8eInuvxUU,24604
8
+ parsagon/executor.py,sha256=u5cJ75tv4eGXHqi5kvwdVsKX7v_sK3ecReB3heQKThw,24179
9
9
  parsagon/gui_entry.py,sha256=bqG9K0CArXWWwDGoT8aV17YLNM8MfjSf6SJ_B3QbNeA,671
10
10
  parsagon/highlights.js,sha256=2UDfUApblU9xtGgTLCq4X7rHRV0wcqDSSFZPmJS6fJg,16643
11
11
  parsagon/main.py,sha256=3BskD1QPqDOfSwLGJBIn0-npNxRy5KZUtKIVNAKYwtA,9349
@@ -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.6.dist-info/METADATA,sha256=DAniRhFWe253KGzQ-NL8VHnncLID0rl_10OLhWH48gw,2431
29
- parsagon-0.14.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
30
- parsagon-0.14.6.dist-info/entry_points.txt,sha256=I1UlPUb4oY2k9idkI8kvdkEcrjKGRSOl5pMbA6uu6kw,48
31
- parsagon-0.14.6.dist-info/top_level.txt,sha256=ih5uYQzW4qjhRKppys-WiHLIbXVZ99YdqDcfAtlcQwk,9
32
- parsagon-0.14.6.dist-info/RECORD,,
28
+ parsagon-0.14.8.dist-info/METADATA,sha256=MXyhzpzhKURpirSGKw7blpCGu60WHQmQO6bhcpjYK74,2431
29
+ parsagon-0.14.8.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
30
+ parsagon-0.14.8.dist-info/entry_points.txt,sha256=I1UlPUb4oY2k9idkI8kvdkEcrjKGRSOl5pMbA6uu6kw,48
31
+ parsagon-0.14.8.dist-info/top_level.txt,sha256=ih5uYQzW4qjhRKppys-WiHLIbXVZ99YdqDcfAtlcQwk,9
32
+ parsagon-0.14.8.dist-info/RECORD,,