cucu 1.2.2__py3-none-any.whl → 1.2.4__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.

Potentially problematic release.


This version of cucu might be problematic. Click here for more details.

Files changed (95) hide show
  1. cucu/__init__.py +0 -0
  2. cucu/ansi_parser.py +0 -0
  3. cucu/behave_tweaks.py +0 -0
  4. cucu/browser/__init__.py +0 -0
  5. cucu/browser/core.py +12 -0
  6. cucu/browser/frames.py +0 -0
  7. cucu/browser/selenium.py +50 -0
  8. cucu/browser/selenium_tweaks.py +0 -0
  9. cucu/cli/__init__.py +0 -0
  10. cucu/cli/core.py +0 -0
  11. cucu/cli/run.py +0 -0
  12. cucu/cli/steps.py +0 -0
  13. cucu/cli/thread_dumper.py +0 -0
  14. cucu/config.py +8 -1
  15. cucu/edgedriver_autoinstaller/README.md +0 -0
  16. cucu/edgedriver_autoinstaller/__init__.py +0 -0
  17. cucu/edgedriver_autoinstaller/utils.py +0 -0
  18. cucu/environment.py +6 -6
  19. cucu/external/jquery/jquery-3.5.1.min.js +0 -0
  20. cucu/formatter/__init__.py +0 -0
  21. cucu/formatter/cucu.py +0 -0
  22. cucu/formatter/json.py +0 -0
  23. cucu/formatter/junit.py +0 -0
  24. cucu/fuzzy/__init__.py +0 -0
  25. cucu/fuzzy/core.py +0 -0
  26. cucu/fuzzy/fuzzy.js +0 -0
  27. cucu/helpers.py +0 -0
  28. cucu/hooks.py +0 -0
  29. cucu/init_data/.gitignore +0 -0
  30. cucu/init_data/README.md +0 -0
  31. cucu/init_data/cucurc.yml +0 -0
  32. cucu/init_data/data/www/example.html +0 -0
  33. cucu/init_data/features/cucurc.yml +0 -0
  34. cucu/init_data/features/environment.py +0 -0
  35. cucu/init_data/features/example.feature +0 -0
  36. cucu/init_data/features/lint_rules/sid.yaml +0 -0
  37. cucu/init_data/features/steps/__init__.py +0 -0
  38. cucu/init_data/features/steps/my_steps.py +0 -0
  39. cucu/language_server/__init__.py +0 -0
  40. cucu/language_server/core.py +0 -0
  41. cucu/lint/__init__.py +0 -0
  42. cucu/lint/linter.py +0 -0
  43. cucu/lint/rules/format.yaml +0 -0
  44. cucu/logger.py +0 -0
  45. cucu/matcher/__init__.py +0 -0
  46. cucu/matcher/core.py +0 -0
  47. cucu/page_checks.py +0 -0
  48. cucu/reporter/__init__.py +0 -0
  49. cucu/reporter/external/bootstrap.min.css +0 -0
  50. cucu/reporter/external/bootstrap.min.js +0 -0
  51. cucu/reporter/external/dataTables.bootstrap.min.css +0 -0
  52. cucu/reporter/external/dataTables.bootstrap.min.js +0 -0
  53. cucu/reporter/external/jquery-3.5.1.min.js +0 -0
  54. cucu/reporter/external/jquery.dataTables.min.js +0 -0
  55. cucu/reporter/external/popper.min.js +0 -0
  56. cucu/reporter/favicon.png +0 -0
  57. cucu/reporter/html.py +0 -0
  58. cucu/reporter/templates/feature.html +0 -0
  59. cucu/reporter/templates/flat.html +0 -0
  60. cucu/reporter/templates/index.html +0 -0
  61. cucu/reporter/templates/layout.html +0 -0
  62. cucu/reporter/templates/scenario.html +2 -2
  63. cucu/steps/__init__.py +0 -0
  64. cucu/steps/base_steps.py +0 -0
  65. cucu/steps/browser_steps.py +64 -2
  66. cucu/steps/button_steps.py +0 -0
  67. cucu/steps/checkbox_steps.py +0 -0
  68. cucu/steps/command_steps.py +0 -0
  69. cucu/steps/draggable_steps.py +0 -0
  70. cucu/steps/dropdown_steps.py +0 -0
  71. cucu/steps/file_input_steps.py +0 -0
  72. cucu/steps/filesystem_steps.py +0 -0
  73. cucu/steps/flow_control_steps.py +0 -0
  74. cucu/steps/image_steps.py +0 -0
  75. cucu/steps/input_steps.py +0 -0
  76. cucu/steps/link_steps.py +0 -0
  77. cucu/steps/menuitem_steps.py +0 -0
  78. cucu/steps/platform_steps.py +0 -0
  79. cucu/steps/radio_steps.py +0 -0
  80. cucu/steps/section_steps.py +0 -0
  81. cucu/steps/step_utils.py +0 -0
  82. cucu/steps/tab_steps.py +0 -0
  83. cucu/steps/table_steps.py +0 -0
  84. cucu/steps/tables.js +0 -0
  85. cucu/steps/text_steps.py +0 -0
  86. cucu/steps/variable_steps.py +0 -0
  87. cucu/steps/webserver_steps.py +0 -0
  88. cucu/utils.py +0 -13
  89. {cucu-1.2.2.dist-info → cucu-1.2.4.dist-info}/METADATA +12 -11
  90. cucu-1.2.4.dist-info/RECORD +92 -0
  91. cucu-1.2.4.dist-info/WHEEL +4 -0
  92. {cucu-1.2.2.dist-info → cucu-1.2.4.dist-info}/entry_points.txt +1 -0
  93. cucu-1.2.2.dist-info/RECORD +0 -93
  94. cucu-1.2.2.dist-info/WHEEL +0 -4
  95. cucu-1.2.2.dist-info/licenses/LICENSE +0 -32
cucu/__init__.py CHANGED
File without changes
cucu/ansi_parser.py CHANGED
File without changes
cucu/behave_tweaks.py CHANGED
File without changes
cucu/browser/__init__.py CHANGED
File without changes
cucu/browser/core.py CHANGED
@@ -55,6 +55,18 @@ class Browser:
55
55
  def close_window(self):
56
56
  raise RuntimeError("implement me")
57
57
 
58
+ def get_tab_info(self):
59
+ raise RuntimeError("implement me")
60
+
61
+ def get_all_tabs_info(self):
62
+ raise RuntimeError("implement me")
63
+
64
+ def switch_to_nth_tab(self, tab_index):
65
+ raise RuntimeError("implement me")
66
+
67
+ def switch_to_tab_that_matches_regex(self, text):
68
+ raise RuntimeError("implement me")
69
+
58
70
  def quit(self):
59
71
  raise RuntimeError("implement me")
60
72
 
cucu/browser/frames.py CHANGED
File without changes
cucu/browser/selenium.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import logging
2
2
  import os
3
+ import re
3
4
 
4
5
  import chromedriver_autoinstaller
5
6
  import geckodriver_autoinstaller
@@ -226,6 +227,55 @@ class Selenium(Browser):
226
227
  raise RuntimeError("no previous browser tab available")
227
228
  self.driver.switch_to.window(window_handles[window_handle_index - 1])
228
229
 
230
+ def switch_to_nth_tab(self, tab_number):
231
+ print(f"tab_number, {tab_number}")
232
+ window_handles = self.driver.window_handles
233
+ total_tabs = len(window_handles)
234
+ if tab_number > total_tabs:
235
+ raise RuntimeError(f"no {tab_number} browser tab available")
236
+ self.driver.switch_to.window(window_handles[tab_number])
237
+
238
+ def switch_to_tab_that_matches_regex(self, title_pattern):
239
+ window_handles = self.driver.window_handles
240
+
241
+ for handle in window_handles:
242
+ self.driver.switch_to.window(handle)
243
+ if re.search(title_pattern, self.driver.title):
244
+ return
245
+
246
+ raise Exception(f"No tab title matches pattern: {title_pattern}")
247
+
248
+ def get_tab_info(self):
249
+ window_handles = self.driver.window_handles
250
+ current_window = self.driver.current_window_handle
251
+ window_handle_index = window_handles.index(current_window)
252
+
253
+ return {
254
+ "tab_count": len(window_handles),
255
+ "index": window_handle_index,
256
+ "title": self.driver.title,
257
+ "url": self.driver.current_url,
258
+ }
259
+
260
+ def get_all_tabs_info(self):
261
+ window_handles = self.driver.window_handles
262
+ current_window = self.driver.current_window_handle
263
+ tabs_info = []
264
+
265
+ for handle in window_handles:
266
+ self.driver.switch_to.window(handle)
267
+ tabs_info.append(
268
+ {
269
+ "title": self.driver.title,
270
+ "url": self.driver.current_url,
271
+ }
272
+ )
273
+
274
+ # Switch back to the original window
275
+ self.driver.switch_to.window(current_window)
276
+
277
+ return tabs_info
278
+
229
279
  def back(self):
230
280
  self.driver.back()
231
281
  self.wait_for_page_to_load()
File without changes
cucu/cli/__init__.py CHANGED
File without changes
cucu/cli/core.py CHANGED
File without changes
cucu/cli/run.py CHANGED
File without changes
cucu/cli/steps.py CHANGED
File without changes
cucu/cli/thread_dumper.py CHANGED
File without changes
cucu/config.py CHANGED
@@ -313,7 +313,14 @@ class Config(dict):
313
313
  v = f"'{v}'"
314
314
  config[k] = v
315
315
 
316
- return yaml.dump(config)
316
+ # Resolve non-atomic classes to their string representation
317
+ yaml.representer.SafeRepresenter.add_representer(
318
+ None,
319
+ lambda dumper, data: dumper.represent_scalar(
320
+ "tag:yaml.org,2002:str", str(data)
321
+ ),
322
+ )
323
+ return yaml.safe_dump(config)
317
324
 
318
325
 
319
326
  # global config object
File without changes
File without changes
File without changes
cucu/environment.py CHANGED
@@ -10,7 +10,7 @@ from functools import partial
10
10
  from cucu import config, init_scenario_hook_variables, logger
11
11
  from cucu.config import CONFIG
12
12
  from cucu.page_checks import init_page_checks
13
- from cucu.utils import ellipsize_filename, get_tab_information, take_screenshot
13
+ from cucu.utils import ellipsize_filename, take_screenshot
14
14
 
15
15
  CONFIG.define(
16
16
  "FEATURE_RESULTS_DIR",
@@ -264,11 +264,11 @@ def after_step(ctx, step):
264
264
  if ctx.browser is not None and ctx.current_step.has_substeps is False:
265
265
  take_screenshot(ctx, step.name, label=f"After {step.name}")
266
266
 
267
- tab_info = get_tab_information(ctx)
268
- total_tabs = tab_info["window_count"]
269
- current_tab = tab_info["current_index"] + 1
270
- title = tab_info["current_title"]
271
- url = tab_info["current_url"]
267
+ tab_info = ctx.browser.get_tab_info()
268
+ total_tabs = tab_info["tab_count"]
269
+ current_tab = tab_info["index"] + 1
270
+ title = tab_info["title"]
271
+ url = tab_info["url"]
272
272
  log_message = (
273
273
  f"\ntab({current_tab} of {total_tabs}): {title}\nurl: {url}\n"
274
274
  )
File without changes
File without changes
cucu/formatter/cucu.py CHANGED
File without changes
cucu/formatter/json.py CHANGED
File without changes
cucu/formatter/junit.py CHANGED
File without changes
cucu/fuzzy/__init__.py CHANGED
File without changes
cucu/fuzzy/core.py CHANGED
File without changes
cucu/fuzzy/fuzzy.js CHANGED
File without changes
cucu/helpers.py CHANGED
File without changes
cucu/hooks.py CHANGED
File without changes
cucu/init_data/.gitignore CHANGED
File without changes
cucu/init_data/README.md CHANGED
File without changes
cucu/init_data/cucurc.yml CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
cucu/lint/__init__.py CHANGED
File without changes
cucu/lint/linter.py CHANGED
File without changes
File without changes
cucu/logger.py CHANGED
File without changes
cucu/matcher/__init__.py CHANGED
File without changes
cucu/matcher/core.py CHANGED
File without changes
cucu/page_checks.py CHANGED
File without changes
cucu/reporter/__init__.py CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
cucu/reporter/favicon.png CHANGED
File without changes
cucu/reporter/html.py CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -75,7 +75,7 @@
75
75
  {% endif %}
76
76
  </td>
77
77
  <td style="text-align: right; margin-top: auto;" class="col-2">
78
- <pre style="display: inline; color: gray;">Offset and Duration (s)</pre>
78
+ <pre style="display: inline; color: gray;">Start Time and Duration (s)</pre>
79
79
  </td>
80
80
  </tr>
81
81
  {% for step in steps %}
@@ -88,7 +88,7 @@
88
88
  {% if step['result'] is defined %}
89
89
  {% set step_status = step['result']['status'] %}
90
90
  {% if step['result']['status'] == 'failed' or step['result']['status'] == 'passed' %}
91
- {% set step_timing = "{} for {:.3f}s".format(step["result"]["time_offset"].strftime("%H:%M:%S"), step["result"]["duration"]) %}
91
+ {% set step_timing = "{} for {:.3f}s".format(step["result"]["timestamp"].strftime("%H:%M:%S"), step["result"]["duration"]) %}
92
92
  {% set step_start = step["result"]["timestamp"] %}
93
93
  {% endif %}
94
94
  {% else %}
cucu/steps/__init__.py CHANGED
File without changes
cucu/steps/base_steps.py CHANGED
File without changes
@@ -32,7 +32,7 @@ def open_a_browser(ctx, url):
32
32
  Given I open a browser at the url "https://www.google.com"
33
33
  """
34
34
  if ctx.browser is None:
35
- ctx.browser = open_browser(ctx)
35
+ ctx.browser = retry(open_browser)(ctx)
36
36
  ctx.browsers.append(ctx.browser)
37
37
  else:
38
38
  logger.debug("browser already open so using existing instance")
@@ -43,7 +43,7 @@ def open_a_browser(ctx, url):
43
43
 
44
44
  @step('I open a new browser at the url "{url}"')
45
45
  def open_a_new_browser(ctx, url):
46
- ctx.browser = open_browser(ctx)
46
+ ctx.browser = retry(open_browser)(ctx)
47
47
  ctx.browsers.append(ctx.browser)
48
48
  logger.debug(f"navigating to url #{url}")
49
49
  ctx.browser.navigate(url)
@@ -219,6 +219,68 @@ def wait_to_switch_to_previous_browser_tab(ctx):
219
219
  retry(switch_to_previous_tab)(ctx)
220
220
 
221
221
 
222
+ def switch_to_nth_tab(ctx, tab_number):
223
+ ctx.check_browser_initialized()
224
+ ctx.browser.switch_to_nth_tab(tab_number)
225
+
226
+
227
+ @step('I switch to the "{nth:nth}" browser tab')
228
+ def switch_to_nth_browser_tab(ctx, nth):
229
+ switch_to_nth_tab(ctx, nth)
230
+
231
+
232
+ @step('I wait to switch to the "{nth:nth}" browser tab')
233
+ def wait_to_switch_to_nth_browser_tab(ctx, nth):
234
+ retry(switch_to_nth_tab)(ctx, nth)
235
+
236
+
237
+ def switch_to_tab_matching_regex(ctx, regex):
238
+ ctx.check_browser_initialized()
239
+ ctx.browser.switch_to_tab_that_matches_regex(regex)
240
+
241
+
242
+ @step('I switch to the browser tab that matches "{regex}"')
243
+ def switch_to_browser_tab_matching_regex(ctx, regex):
244
+ switch_to_tab_matching_regex(ctx, regex)
245
+
246
+
247
+ @step('I wait to switch to the browser tab that matches "{regex}"')
248
+ def wait_to_switch_to_browser_tab_matching_regex(ctx, regex):
249
+ retry(switch_to_tab_matching_regex)(ctx, regex)
250
+
251
+
252
+ @step('I save the browser tabs info to the variable "{variable}"')
253
+ def save_browser_tabs_info_to_variable(ctx, variable):
254
+ ctx.check_browser_initialized()
255
+ tabs_info = ctx.browser.get_all_tabs_info()
256
+ lst_tab_info = [
257
+ f"tab({index + 1}): {tab['title']}, url: {tab['url']}"
258
+ for index, tab in enumerate(tabs_info)
259
+ ]
260
+ config.CONFIG[variable] = lst_tab_info
261
+
262
+
263
+ @step("I list the current browser tab info")
264
+ def list_current_browser_tab_info(ctx):
265
+ ctx.check_browser_initialized()
266
+ tab_info = ctx.browser.get_tab_info()
267
+ current_tab = tab_info["index"] + 1
268
+ title = tab_info["title"]
269
+ url = tab_info["url"]
270
+ print(f"\ntab({current_tab}): {title}\nurl: {url}\n")
271
+
272
+
273
+ @step("I list all browser tabs info")
274
+ def list_browser_tabs_info(ctx):
275
+ ctx.check_browser_initialized()
276
+ all_tabs_info = ctx.browser.get_all_tabs_info()
277
+ for index, tab in enumerate(all_tabs_info):
278
+ tab_index = index + 1
279
+ title = tab["title"]
280
+ url = tab["url"]
281
+ print(f"\ntab({tab_index}): {title}\nurl: {url}\n")
282
+
283
+
222
284
  def save_downloaded_file(ctx, filename):
223
285
  ctx.check_browser_initialized()
224
286
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
cucu/steps/image_steps.py CHANGED
File without changes
cucu/steps/input_steps.py CHANGED
File without changes
cucu/steps/link_steps.py CHANGED
File without changes
File without changes
File without changes
cucu/steps/radio_steps.py CHANGED
File without changes
File without changes
cucu/steps/step_utils.py CHANGED
File without changes
cucu/steps/tab_steps.py CHANGED
File without changes
cucu/steps/table_steps.py CHANGED
File without changes
cucu/steps/tables.js CHANGED
File without changes
cucu/steps/text_steps.py CHANGED
File without changes
File without changes
File without changes
cucu/utils.py CHANGED
@@ -274,19 +274,6 @@ def take_screenshot(ctx, step_name, label="", element=None):
274
274
  CONFIG["__STEP_SCREENSHOT_COUNT"] += 1
275
275
 
276
276
 
277
- def get_tab_information(ctx):
278
- driver = ctx.browser.driver
279
- window_handles = driver.window_handles
280
- current_window = driver.current_window_handle
281
- window_handle_index = window_handles.index(current_window)
282
- return {
283
- "window_count": len(window_handles),
284
- "current_index": window_handle_index,
285
- "current_title": driver.title,
286
- "current_url": driver.current_url,
287
- }
288
-
289
-
290
277
  def find_n_click_input_parent_label(ctx, input_element):
291
278
  """
292
279
  Clicks the nearest parent <label> of an input elemnt (if input is visually hidden or size is zero).
@@ -1,23 +1,18 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: cucu
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Easy BDD web testing
5
- Project-URL: Homepage, https://github.com/dominodatalab/cucu/wiki
6
- Project-URL: Download, https://pypi.org/project/cucu/
7
- Project-URL: Source Code, https://github.com/dominodatalab/cucu
5
+ Keywords: cucumber,selenium,behave
6
+ Author: Domino Data Lab, Rodney Gomes, Cedric Young, Xin Dong, Kavya, Kevin Garton, Joy Liao
8
7
  Author-email: Domino Data Lab <open-source@dominodatalab.com>, Rodney Gomes <107359+rlgomes@users.noreply.github.com>, Cedric Young <4129217+ccedricyoung@users.noreply.github.com>, Xin Dong <104880864+ddl-xin@users.noreply.github.com>, Kavya <91882851+ddl-kavya@users.noreply.github.com>, Kevin Garton <71028750+ddl-kgarton@users.noreply.github.com>, Joy Liao <107583686+ddl-joy-liao@users.noreply.github.com>
9
- Maintainer-email: Domino Data Lab <open-source@dominodatalab.com>, Cedric Young <4129217+ccedricyoung@users.noreply.github.com>, Kevin Garton <71028750+ddl-kgarton@users.noreply.github.com>, Brian Colby <92048365+ddl-bcolby@users.noreply.github.com>
10
8
  License: The Clear BSD License
11
- License-File: LICENSE
12
- Keywords: behave,cucumber,selenium
13
9
  Classifier: Development Status :: 4 - Beta
14
10
  Classifier: Environment :: Console
15
11
  Classifier: Intended Audience :: Developers
16
12
  Classifier: License :: OSI Approved :: BSD License
17
- Classifier: Natural Language :: English
18
13
  Classifier: Operating System :: OS Independent
14
+ Classifier: Natural Language :: English
19
15
  Classifier: Topic :: Software Development :: Testing :: BDD
20
- Requires-Python: >=3.10
21
16
  Requires-Dist: beautifulsoup4~=4.13.3
22
17
  Requires-Dist: behave==1.2.6
23
18
  Requires-Dist: chromedriver-autoinstaller~=0.6.2
@@ -33,10 +28,16 @@ Requires-Dist: mpire~=2.10.2
33
28
  Requires-Dist: psutil>=6.0
34
29
  Requires-Dist: pygls~=1.3.1
35
30
  Requires-Dist: pyyaml~=6.0.1
36
- Requires-Dist: requests<3.0.0,>=2.31.0
31
+ Requires-Dist: requests>=2.31.0,<3.0.0
37
32
  Requires-Dist: selenium~=4.31
38
33
  Requires-Dist: tabulate~=0.9.0
39
34
  Requires-Dist: tenacity>=9.0
35
+ Maintainer: Domino Data Lab, Cedric Young, Kevin Garton, Brian Colby
36
+ Maintainer-email: Domino Data Lab <open-source@dominodatalab.com>, Cedric Young <4129217+ccedricyoung@users.noreply.github.com>, Kevin Garton <71028750+ddl-kgarton@users.noreply.github.com>, Brian Colby <92048365+ddl-bcolby@users.noreply.github.com>
37
+ Requires-Python: >=3.10
38
+ Project-URL: Download, https://pypi.org/project/cucu/
39
+ Project-URL: Homepage, https://github.com/dominodatalab/cucu/wiki
40
+ Project-URL: Source Code, https://github.com/dominodatalab/cucu
40
41
  Description-Content-Type: text/markdown
41
42
 
42
43
  [![pypi](https://img.shields.io/pypi/v/cucu.svg)](https://pypi.org/project/cucu/)
@@ -0,0 +1,92 @@
1
+ cucu/__init__.py,sha256=62db9a8ec2418f7fc380da328077a7f602a88de405e76dce736ee4c82533a06d,1013
2
+ cucu/ansi_parser.py,sha256=ff24e5aabe8aaee2ecaa0591e819292540b76e6950cbff496e4bb1171e89adba,2213
3
+ cucu/behave_tweaks.py,sha256=32a20bf410c732f9b25f2ce45466c3df077c20fdfcffca60a7734f1835ae766f,6873
4
+ cucu/browser/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
5
+ cucu/browser/core.py,sha256=23172aafc978c6c873756e0029c9752241fdf311f0458b1bb78b2757bc140e5a,2692
6
+ cucu/browser/frames.py,sha256=216ee4cd1267e4f91b31aa2f21e94078258ef93fb6b0e4f0a9a601c3ed3e2ca5,3545
7
+ cucu/browser/selenium.py,sha256=7940b60d9921508662ef4b154da344ff40216a719371ecb1fe908b213ecf37aa,13299
8
+ cucu/browser/selenium_tweaks.py,sha256=a1422159584165b73daac99050932922bf6e5162b1b60641727c92594e98b6d9,879
9
+ cucu/cli/__init__.py,sha256=b975f9c951b59289c9fc835d96b71f320f93b7fe7f712c76f4477c47cbfdd3c0,62
10
+ cucu/cli/core.py,sha256=b00bd1222ff671de0e42228a21293b59e6f9faee4a58ad4335b6b2a9abfcb696,26915
11
+ cucu/cli/run.py,sha256=b9939fd5ce730174f44e1690beb6f99205c6c25f34940b476939b9743c289678,5909
12
+ cucu/cli/steps.py,sha256=960e62b551ff0bed3fdd17a5597bfd5f6a90507820771bb12c21b01f99756dfe,4210
13
+ cucu/cli/thread_dumper.py,sha256=6775e7612c62771ea9aa3950ef3bbe4ca3086195a4e33f5ce582dd3e471e9a25,1593
14
+ cucu/config.py,sha256=b0096acc17efe448b00b89ba04a70c264224906228cf67867760be2643f27f24,14305
15
+ cucu/edgedriver_autoinstaller/README.md,sha256=b43900588aa045d0a3b7ea17d6762a8a4202fc57e2384336fa97394b955b44ba,84
16
+ cucu/edgedriver_autoinstaller/__init__.py,sha256=7e8eb12493ef71ce57be78bc7a95dfc43a0fc491f9fdbe959368c3f494f07d1b,969
17
+ cucu/edgedriver_autoinstaller/utils.py,sha256=891293c30efb086693027b6dfd00efc6528fc69314e28b71f7939e0fdee485c3,6802
18
+ cucu/environment.py,sha256=353aaf8dd747aefe133e1f4536aab9c67c2adb5a297f91eb29925bdce8b6720e,9950
19
+ cucu/external/jquery/jquery-3.5.1.min.js,sha256=f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d,89476
20
+ cucu/formatter/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
21
+ cucu/formatter/cucu.py,sha256=2424ab0e3b9933b8aef37b35fa436e3f6bac0e43b1fd4e94d2fd797959a6cab2,9298
22
+ cucu/formatter/json.py,sha256=f17d67de3040973bfcac2fd2f89a7e5377233e7bc6cd733a3018c0b9d82b00f5,10596
23
+ cucu/formatter/junit.py,sha256=689f5d18b6da98c1fec148bf9ac17aebffbf73f614ab4efef3fc023448d48eee,10129
24
+ cucu/fuzzy/__init__.py,sha256=71ee0946668117aa1a6fa53df506e9b7b0eb0f77a5847df6ffff8d0fa7f0e717,104
25
+ cucu/fuzzy/core.py,sha256=b6640a5ff362fb6a21a31cdcb51520db1ef331e116f0c949266a54dcf7d39af4,3153
26
+ cucu/fuzzy/fuzzy.js,sha256=79ef93cad2122f2528edc30092e548e6a6cb5ddb747a81567334eca14e336218,11618
27
+ cucu/helpers.py,sha256=97f60c99bb978ed051a3e30447ea9eeaca142328edd1ecb60684a05ace336300,36285
28
+ cucu/hooks.py,sha256=dd9d666af538d97310d0367b9555b04c1f812581d1c9850ecf33ad9a4748b28c,7117
29
+ cucu/init_data/.gitignore,sha256=160328be6391746812bd11fa12814ae9c87f13208cc90a1feb5c9a9971b43f9d,137
30
+ cucu/init_data/README.md,sha256=33d9f1dc94c9c46904c47bb2efe24919c3e0951a8c144188d6b5f4c77e908a74,1596
31
+ cucu/init_data/cucurc.yml,sha256=de0bb38f772ed67d040da32ccef1431ac0208467de9aaba15c181feadc184466,424
32
+ cucu/init_data/data/www/example.html,sha256=481d14d459f52f6052d7d4dadd024a4007fd3a5321e2671b7849f6deb13adc30,788
33
+ cucu/init_data/features/cucurc.yml,sha256=38874ae9f6c3f1a2979b749dfeba1ee7f9446fc3a98a971907cd53f3a60ad44d,291
34
+ cucu/init_data/features/environment.py,sha256=b87bbe2223f2e18a1f93b47c6000070d398d288d249e8e889ff03cd06940365c,3021
35
+ cucu/init_data/features/example.feature,sha256=7fdf580dd6b09e2cece1c99425828d85fa5c821668a55adfe9742d08c7958dfe,1010
36
+ cucu/init_data/features/lint_rules/sid.yaml,sha256=b8d61bddfe7c5498912b3cfb6909d73ba8241f04d4d5899cd5e8b7a59a336bd5,877
37
+ cucu/init_data/features/steps/__init__.py,sha256=accdb9d8a9f99c44a88cf96d35ca7263d802c607b0984f5491c454ed41b3e677,267
38
+ cucu/init_data/features/steps/my_steps.py,sha256=d51722bb637489a929f5c00015c4661950386ce56a219248cf10898f8ca56440,804
39
+ cucu/language_server/__init__.py,sha256=2143bb157a510e0bc49a58d2b81fd6a53fc1a0145d806ee5853045594c26311f,75
40
+ cucu/language_server/core.py,sha256=99409d924e3ce257655d10bb85098b2971a7437ecdba6c2e111a8d644c8250de,3532
41
+ cucu/lint/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
42
+ cucu/lint/linter.py,sha256=11e794f431cbe2cd8c24382525bd66f305efe2ea2563b5c081f8272d8d47aa1f,13246
43
+ cucu/lint/rules/format.yaml,sha256=1a6eccc7f2a72fab3c10ec8a1ad65906044424faef8aff85b98cf26b7b7257f1,3168
44
+ cucu/logger.py,sha256=63878798d142a61a971335100fe0c9f1db1aa9336dab199a29209da3ae8e73e8,3349
45
+ cucu/matcher/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
46
+ cucu/matcher/core.py,sha256=a368f834d18e459d01b4711b053784d93fef8ba109956564ae33a84b62fb50d9,1032
47
+ cucu/page_checks.py,sha256=096d40a88c59eebacbc6991ff27105c1cc3a6a69e83774dbf9a72837c76ade0d,2179
48
+ cucu/reporter/__init__.py,sha256=9d2da5229e378227eca480e089e492dddcc132f9ca7ddfbe3bc3dbdd14ebe321,71
49
+ cucu/reporter/external/bootstrap.min.css,sha256=787332f421b621664e6d4c1902435559ce834c876cdce6afcd482e0d8d15b08a,163874
50
+ cucu/reporter/external/bootstrap.min.js,sha256=799a0572727d3a86a7c34c8fb2b6770878972185015beeff84d36a721e74b0b2,48945
51
+ cucu/reporter/external/dataTables.bootstrap.min.css,sha256=0158d66fd792190d3eddfe16362554d697e4ca836fb6125d6b0fc8c4af58d9cd,10611
52
+ cucu/reporter/external/dataTables.bootstrap.min.js,sha256=1ff6491e3f74d9ea86a1c349623903dce06eb63ebc9fe4f63520639df5764289,4401
53
+ cucu/reporter/external/jquery-3.5.1.min.js,sha256=f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d,89476
54
+ cucu/reporter/external/jquery.dataTables.min.js,sha256=5cd85a075b4139214c1eef7a052009a59389cdf6784992359f001b9f0af2d946,90265
55
+ cucu/reporter/external/popper.min.js,sha256=a52f7aa54d7bcaafa056ee0a050262dfc5694ae28dee8b4cac3429af37ff0d66,19188
56
+ cucu/reporter/favicon.png,sha256=f629172c09b37d0cf2d8d429b3ff0219a66883616f42b397f279d26747b55263,2161
57
+ cucu/reporter/html.py,sha256=3ac3069b0d8b46b74c254d7c454104f5afdd8bf9a73eb4fad00b601eee1ebb70,16677
58
+ cucu/reporter/templates/feature.html,sha256=2019301a2ba5fac44ee654fcabc5455cc509c75a30b0077561b743cf38928cac,3645
59
+ cucu/reporter/templates/flat.html,sha256=246b0cabe216cfa614a495fd85c37ae7ed791f1717dcd25c94e98c0ed5b71d91,2358
60
+ cucu/reporter/templates/index.html,sha256=2c5b61dd24bfffdf3cd4d2af3c8205767ad01087034d75af4e849628db63c8a2,2726
61
+ cucu/reporter/templates/layout.html,sha256=da20d16e6f1ab4ef268075a08a322f0c2ac130abdc3fa607ae6afde56b49884e,4561
62
+ cucu/reporter/templates/scenario.html,sha256=bd30c10d37ed146a1db4da337d5b7b3a5f9fa694ea3e1d5b5b7d7f10d7350964,10115
63
+ cucu/steps/__init__.py,sha256=b1e4a60120655aeebeeb06c56ef11b3f08a005c4578983f5f02e17ff6716f0d8,753
64
+ cucu/steps/base_steps.py,sha256=d1f3ef75a2a86a7f253002ab0e72b4fb3ac02e9c66d753f5cd5018e4237b8970,1893
65
+ cucu/steps/browser_steps.py,sha256=5e583f93bde8b1563918f158fcd063d922f6e4635cd5e319423b6711341d052d,12335
66
+ cucu/steps/button_steps.py,sha256=7a3deead66dd7df8bb1e29a63dbadd50191d2c803fc5871f2e5b2a385fb9ff9b,2713
67
+ cucu/steps/checkbox_steps.py,sha256=0761ca140faec2cac26b50e6cd2eeed68d571f5d9be41ccb3e0e6a635738e391,3386
68
+ cucu/steps/command_steps.py,sha256=9d509cf3e4c48ad7ad93ece1938cf5c1ad28c2a2d0c87790547e531e2a14c3e9,5094
69
+ cucu/steps/draggable_steps.py,sha256=96740b89ca7419925ac43fd09b63f5debb94640b25de6a6dc1a239f9243a5c9d,4655
70
+ cucu/steps/dropdown_steps.py,sha256=69bca41befa6efd9034382d4d6d9bbddf34b14f9ab2836afc85cc96f63180aed,15601
71
+ cucu/steps/file_input_steps.py,sha256=2cb300a3356971e2cc0fe909384f9ab8a1c07562db369ac7f1e09f550b8da068,5523
72
+ cucu/steps/filesystem_steps.py,sha256=f25dfb03ec8fc53e0ccdd8b524d4934a1664c32171812c2787a0b457e84cfd10,4741
73
+ cucu/steps/flow_control_steps.py,sha256=be55b40aca61552f4dbeb3a7a53f30492da780798edd9f3b1fdb22288430b00c,6365
74
+ cucu/steps/image_steps.py,sha256=e17e9b76e9ac2326dc241b9aa3cdd3511c56008b216720af2a2d6e4c9128cb59,941
75
+ cucu/steps/input_steps.py,sha256=4d842192691ef96e5d26de04b14f891e34709db77bcef5e78448f0e4f4385b1b,9679
76
+ cucu/steps/link_steps.py,sha256=3102f1ca309b885d9d3ac9a3e88aca2a545885aa898f10d43537f909abb8274c,1625
77
+ cucu/steps/menuitem_steps.py,sha256=f4995a3cee814a65b618f9a4e378311b2e52d37ac4b44c78284d2e0850648e4d,1133
78
+ cucu/steps/platform_steps.py,sha256=1bb1ed04c85d46ee7cfb6fcb7570b9ae424cf45d62bc676545af41cd388769a6,754
79
+ cucu/steps/radio_steps.py,sha256=17281434f084057ce6cc63072fc0d836d2def6ae2a8dec884e244b1fee4d6da8,5931
80
+ cucu/steps/section_steps.py,sha256=5de4af2e47fba3f548a15830cb1037ebef47ffd5c852200027a11b22a7ac8481,645
81
+ cucu/steps/step_utils.py,sha256=0a17743506cc9df004266424a1541131b5516c29c9201bd5787ec2997ac2326d,1417
82
+ cucu/steps/tab_steps.py,sha256=4d5572b648a1bc9d86610f5bc00b35095cdbfadc3352ad7540e36511b77ab8ed,1818
83
+ cucu/steps/table_steps.py,sha256=e5b053d8772e2f2fb027cbd4b1c86a9071040fefc63cf270a9da4b1654b87bd7,13744
84
+ cucu/steps/tables.js,sha256=3acd9aec5a3e720d375d5962ed44af72705569de0dee2757afe1c1bb374bbd54,945
85
+ cucu/steps/text_steps.py,sha256=263fc61e81de7a637055d50e76a71e840acda7b58cf96323963038c34a4b5eec,2576
86
+ cucu/steps/variable_steps.py,sha256=59272d1f7ff17318e28c63d8665c69f9fa02fd220000ab45fffb1a36d81925b9,2966
87
+ cucu/steps/webserver_steps.py,sha256=c169294af71231d8ac90f921e1caa57a95b1d6792f1294d4dad4574263c36f2a,1410
88
+ cucu/utils.py,sha256=60c04926b4065bb4da17e3a0d5cb4001af1150d48dcd0f602570f9930b2858c0,9464
89
+ cucu-1.2.4.dist-info/WHEEL,sha256=ab6157bc637547491fb4567cd7ddf26b04d63382916ca16c29a5c8e94c9c9ef7,79
90
+ cucu-1.2.4.dist-info/entry_points.txt,sha256=d7559122140cecbb949d0835940a1942836fbc1bd834dd666838104b8763c09a,40
91
+ cucu-1.2.4.dist-info/METADATA,sha256=848ee398aae88549ac768f9a21e9d05b52eb6f8e6a60dcffaaa28f81b1b5cb0e,16675
92
+ cucu-1.2.4.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.7.22
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  cucu = cucu.cli:main
3
+
@@ -1,93 +0,0 @@
1
- cucu/__init__.py,sha256=YtuajsJBj3_DgNoygHen9gKojeQF523Oc27kyCUzoG0,1013
2
- cucu/ansi_parser.py,sha256=_yTlqr6KruLsqgWR6BkpJUC3bmlQy_9JbkuxFx6Jrbo,2213
3
- cucu/behave_tweaks.py,sha256=MqIL9BDHMvmyXyzkVGbD3wd8IP38_8pgp3NPGDWudm8,6873
4
- cucu/config.py,sha256=12SXNtBSnD3N6K9DnCDYHZDA4_Wrh4g7whdgHDKSuPw,14022
5
- cucu/environment.py,sha256=Glhs2Gq2YGHYaIbhozljZse9Q2QkXK0jzPxnychBLGU,9996
6
- cucu/helpers.py,sha256=l_YMmbuXjtBRo-MER-qe6soUIyjt0ey2BoSgWs4zYwA,36285
7
- cucu/hooks.py,sha256=3Z1mavU42XMQ0DZ7lVWwTB-BJYHRyYUOzzOtmkdIsow,7117
8
- cucu/logger.py,sha256=Y4eHmNFCphqXEzUQD-DJ8dsaqTNtqxmaKSCdo66Oc-g,3349
9
- cucu/page_checks.py,sha256=CW1AqIxZ7rrLxpkf8nEFwcw6amnoN3Tb-acoN8dq3g0,2179
10
- cucu/utils.py,sha256=-L0N-LdW1VxUEpzfSOiZ9nVUhKnYfb1ncE90CQWmQxw,9876
11
- cucu/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- cucu/browser/core.py,sha256=5_eXBvYGv6egKnIbdtxLQsbkgQJWx9qWGl1vn4xYEw4,2357
13
- cucu/browser/frames.py,sha256=IW7kzRJn5PkbMaovIelAeCWO-T-2sOTwqaYBw-0-LKU,3545
14
- cucu/browser/selenium.py,sha256=oyXnf8jNPX3EqvaFYDhZuxoxGnK8cw__7CxMZTG1hfU,11603
15
- cucu/browser/selenium_tweaks.py,sha256=oUIhWVhBZbc9qsmQUJMpIr9uUWKxtgZBcnySWU6Yttk,879
16
- cucu/cli/__init__.py,sha256=uXX5yVG1konJ_INdlrcfMg-Tt_5_cSx29Ed8R8v908A,62
17
- cucu/cli/core.py,sha256=sAvRIi_2cd4OQiKKISk7Web5-u5KWK1DNbayqav8tpY,26915
18
- cucu/cli/run.py,sha256=uZOf1c5zAXT0ThaQvrb5kgXGwl80lAtHaTm5dDwolng,5909
19
- cucu/cli/steps.py,sha256=lg5itVH_C-0_3RelWXv9X2qQUHggdxuxLCGwH5l1bf4,4210
20
- cucu/cli/thread_dumper.py,sha256=Z3XnYSxidx6pqjlQ7zu-TKMIYZWk4z9c5YLdPkcemiU,1593
21
- cucu/edgedriver_autoinstaller/README.md,sha256=tDkAWIqgRdCjt-oX1nYqikIC_FfiOEM2-pc5S5VbRLo,84
22
- cucu/edgedriver_autoinstaller/__init__.py,sha256=fo6xJJPvcc5Xvni8epXfxDoPxJH5_b6Vk2jD9JTwfRs,969
23
- cucu/edgedriver_autoinstaller/utils.py,sha256=iRKTww77CGaTAntt_QDvxlKPxpMU4otx95OeD97khcM,6802
24
- cucu/external/jquery/jquery-3.5.1.min.js,sha256=9_aliU8dGd2tb6OSsuzixeV4y_faTqgFtohetphbbj0,89476
25
- cucu/formatter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- cucu/formatter/cucu.py,sha256=JCSrDjuZM7iu83s1-kNuP2usDkOx_U6U0v15eVmmyrI,9298
27
- cucu/formatter/json.py,sha256=8X1n3jBAlzv8rC_S-Jp-U3cjPnvGzXM6MBjAudgrAPU,10596
28
- cucu/formatter/junit.py,sha256=aJ9dGLbamMH-wUi_msF66_-_c_YUq07-8_wCNEjUju4,10129
29
- cucu/fuzzy/__init__.py,sha256=ce4JRmaBF6oab6U99Qbpt7DrD3elhH32__-ND6fw5xc,104
30
- cucu/fuzzy/core.py,sha256=tmQKX_Ni-2ohoxzctRUg2x7zMeEW8MlJJmpU3PfTmvQ,3153
31
- cucu/fuzzy/fuzzy.js,sha256=ee-TytISLyUo7cMAkuVI5qbLXdt0eoFWczTsoU4zYhg,11618
32
- cucu/init_data/.gitignore,sha256=FgMovmORdGgSvRH6EoFK6ch_EyCMyQof61yamXG0P50,137
33
- cucu/init_data/README.md,sha256=M9nx3JTJxGkExHuy7-JJGcPglRqMFEGI1rX0x36QinQ,1596
34
- cucu/init_data/cucurc.yml,sha256=3guzj3cu1n0EDaMszvFDGsAghGfemquhXBgf6twYRGY,424
35
- cucu/init_data/data/www/example.html,sha256=SB0U1Fn1L2BS19Ta3QJKQAf9OlMh4mcbeEn23rE63DA,788
36
- cucu/init_data/features/cucurc.yml,sha256=OIdK6fbD8aKXm3Sd_roe5_lEb8OpipcZB81T86YK1E0,291
37
- cucu/init_data/features/environment.py,sha256=uHu-IiPy4Yofk7R8YAAHDTmNKI0kno6In_A80GlANlw,3021
38
- cucu/init_data/features/example.feature,sha256=f99YDdawnizs4cmUJYKNhfpcghZopVrf6XQtCMeVjf4,1010
39
- cucu/init_data/features/lint_rules/sid.yaml,sha256=uNYb3f58VJiRKzz7aQnXO6gkHwTU1Ymc1ei3pZoza9U,877
40
- cucu/init_data/features/steps/__init__.py,sha256=rM252Kn5nESojPltNcpyY9gCxgewmE9UkcRU7UGz5nc,267
41
- cucu/init_data/features/steps/my_steps.py,sha256=1Rciu2N0iakp9cAAFcRmGVA4bOVqIZJIzxCJj4ylZEA,804
42
- cucu/language_server/__init__.py,sha256=IUO7FXpRDgvEmljSuB_WpT_BoBRdgG7lhTBFWUwmMR8,75
43
- cucu/language_server/core.py,sha256=mUCdkk484ldlXRC7hQmLKXGnQ37NumwuERqNZEyCUN4,3532
44
- cucu/lint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- cucu/lint/linter.py,sha256=EeeU9DHL4s2MJDglJb1m8wXv4uolY7XAgfgnLY1Hqh8,13246
46
- cucu/lint/rules/format.yaml,sha256=Gm7Mx_KnL6s8EOyKGtZZBgREJPrviv-FuYzya3tyV_E,3168
47
- cucu/matcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- cucu/matcher/core.py,sha256=o2j4NNGORZ0BtHEbBTeE2T_vi6EJlWVkrjOoS2L7UNk,1032
49
- cucu/reporter/__init__.py,sha256=nS2lIp43gifspIDgieSS3dzBMvnKfd--O8Pb3RTr4yE,71
50
- cucu/reporter/favicon.png,sha256=9ikXLAmzfQzy2NQps_8CGaZog2FvQrOX8nnSZ0e1UmM,2161
51
- cucu/reporter/html.py,sha256=OsMGmw2LRrdMJU18RUEE9a_di_mnPrT60AtgHu4eu3A,16677
52
- cucu/reporter/external/bootstrap.min.css,sha256=eHMy9CG2IWZObUwZAkNVWc6DTIds3OavzUguDY0VsIo,163874
53
- cucu/reporter/external/bootstrap.min.js,sha256=eZoFcnJ9Ooanw0yPsrZ3CHiXIYUBW-7_hNNqch50sLI,48945
54
- cucu/reporter/external/dataTables.bootstrap.min.css,sha256=AVjWb9eSGQ0-3f4WNiVU1pfkyoNvthJdaw_IxK9Y2c0,10611
55
- cucu/reporter/external/dataTables.bootstrap.min.js,sha256=H_ZJHj902eqGocNJYjkD3OButj68n-T2NSBjnfV2Qok,4401
56
- cucu/reporter/external/jquery-3.5.1.min.js,sha256=9_aliU8dGd2tb6OSsuzixeV4y_faTqgFtohetphbbj0,89476
57
- cucu/reporter/external/jquery.dataTables.min.js,sha256=XNhaB1tBOSFMHu96BSAJpZOJzfZ4SZI1nwAbnwry2UY,90265
58
- cucu/reporter/external/popper.min.js,sha256=pS96pU17yq-gVu4KBQJi38VpSuKN7otMrDQprzf_DWY,19188
59
- cucu/reporter/templates/feature.html,sha256=IBkwGiul-sRO5lT8q8VFXMUJx1owsAd1YbdDzziSjKw,3645
60
- cucu/reporter/templates/flat.html,sha256=JGsMq-IWz6YUpJX9hcN65-15HxcX3NJclOmMDtW3HZE,2358
61
- cucu/reporter/templates/index.html,sha256=LFth3SS__9881NKvPIIFdnrQEIcDTXWvToSWKNtjyKI,2726
62
- cucu/reporter/templates/layout.html,sha256=2iDRbm8atO8mgHWgijIvDCrBMKvcP6YHrmr95WtJiE4,4561
63
- cucu/reporter/templates/scenario.html,sha256=Eomxn7_gxrOeWPXKQrnUt3pgKlWeC3PTiM04LMtDI44,10113
64
- cucu/steps/__init__.py,sha256=seSmASBlWu6-6wbFbvEbPwigBcRXiYP18C4X_2cW8Ng,753
65
- cucu/steps/base_steps.py,sha256=0fPvdaKoan8lMAKrDnK0-zrALpxm11P1zVAY5CN7iXA,1893
66
- cucu/steps/browser_steps.py,sha256=RJmQcvA7S5toiJSBCOzhwZwFP4YCA4cxO36HSk4wiHY,10381
67
- cucu/steps/button_steps.py,sha256=ej3urWbdffi7HimmPbrdUBkdLIA_xYcfLlsqOF-5_5s,2713
68
- cucu/steps/checkbox_steps.py,sha256=B2HKFA-uwsrCa1DmzS7u1o1XH12b5BzLPg5qY1c445E,3386
69
- cucu/steps/command_steps.py,sha256=nVCc8-TEitetk-zhk4z1wa0owqLQyHeQVH5THioUw-k,5094
70
- cucu/steps/draggable_steps.py,sha256=lnQLicp0GZJaxD_Qm2P13ruUZAsl3mptwaI5-SQ6XJ0,4655
71
- cucu/steps/dropdown_steps.py,sha256=abykG--m79kDQ4LU1tm73fNLFPmrKDavyFzJb2MYCu0,15601
72
- cucu/steps/file_input_steps.py,sha256=LLMAozVpceLMD-kJOE-auKHAdWLbNprH8eCfVQuNoGg,5523
73
- cucu/steps/filesystem_steps.py,sha256=8l37A-yPxT4Mzdi1JNSTShZkwyFxgSwnh6C0V-hM_RA,4741
74
- cucu/steps/flow_control_steps.py,sha256=vlW0CsphVS9NvrOnpT8wSS2ngHmO3Z87H9siKIQwsAw,6365
75
- cucu/steps/image_steps.py,sha256=4X6bdumsIybcJBuao83TURxWAIshZyCvKi1uTJEoy1k,941
76
- cucu/steps/input_steps.py,sha256=TYQhkmke-W5dJt4EsU-JHjRwnbd7zvXnhEjw5PQ4Wxs,9679
77
- cucu/steps/link_steps.py,sha256=MQLxyjCbiF2dOsmj6IrKKlRYhaqJjxDUNTf5Cau4J0w,1625
78
- cucu/steps/menuitem_steps.py,sha256=9JlaPO6BSmW2GPmk43gxGy5S03rEtEx4KE0uCFBkjk0,1133
79
- cucu/steps/platform_steps.py,sha256=G7HtBMhdRu58-2_LdXC5rkJM9F1ivGdlRa9BzTiHaaY,754
80
- cucu/steps/radio_steps.py,sha256=FygUNPCEBXzmzGMHL8DYNtLe9q4qjeyITiRLH-5Nbag,5931
81
- cucu/steps/section_steps.py,sha256=XeSvLkf7o_VIoVgwyxA36-9H_9XIUiAAJ6EbIqeshIE,645
82
- cucu/steps/step_utils.py,sha256=Chd0NQbMnfAEJmQkoVQRMbVRbCnJIBvVeH7CmXrCMm0,1417
83
- cucu/steps/tab_steps.py,sha256=TVVytkihvJ2GYQ9bwAs1CVzb-twzUq11QONlEbd6uO0,1818
84
- cucu/steps/table_steps.py,sha256=5bBT2HcuLy-wJ8vUschqkHEED-_GPPJwqdpLFlS4e9c,13744
85
- cucu/steps/tables.js,sha256=Os2a7Fo-cg03XVli7USvcnBVad4N7idXr-HBuzdLvVQ,945
86
- cucu/steps/text_steps.py,sha256=Jj_GHoHeemNwVdUOdqcehArNp7WM-WMjljA4w0pLXuw,2576
87
- cucu/steps/variable_steps.py,sha256=WSctH3_xcxjijGPYZlxp-foC_SIAAKtF__saNtgZJbk,2966
88
- cucu/steps/webserver_steps.py,sha256=wWkpSvcSMdiskPkh4cqlepWx1nkvEpTU2tRXQmPDbyo,1410
89
- cucu-1.2.2.dist-info/METADATA,sha256=VSlGlTNi1IGBXUz3pB6Bx7MvwUgJ5bMw2LESVv0HKqs,16535
90
- cucu-1.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
91
- cucu-1.2.2.dist-info/entry_points.txt,sha256=YEXTyEfIZbcV0GJ9R3Gfu3j6DcOJJK7_XHkJqE3Yiao,39
92
- cucu-1.2.2.dist-info/licenses/LICENSE,sha256=WfgJYF9EaQoL_OeWr2Qd0MxhhFegDfzWSUmvDTwFxis,1721
93
- cucu-1.2.2.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any
@@ -1,32 +0,0 @@
1
- The Clear BSD License
2
-
3
- Copyright (c) 2023 "Domino Data Lab <open-source@dominodatalab.com>"
4
- All rights reserved.
5
-
6
- Redistribution and use in source and binary forms, with or without
7
- modification, are permitted (subject to the limitations in the disclaimer
8
- below) provided that the following conditions are met:
9
-
10
- * Redistributions of source code must retain the above copyright notice,
11
- this list of conditions and the following disclaimer.
12
-
13
- * Redistributions in binary form must reproduce the above copyright
14
- notice, this list of conditions and the following disclaimer in the
15
- documentation and/or other materials provided with the distribution.
16
-
17
- * Neither the name of the copyright holder nor the names of its
18
- contributors may be used to endorse or promote products derived from this
19
- software without specific prior written permission.
20
-
21
- NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
22
- THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
23
- CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
26
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
29
- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
30
- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
- POSSIBILITY OF SUCH DAMAGE.