seleniumbase 4.15.14__py3-none-any.whl → 4.16.0__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.
Files changed (56) hide show
  1. sbase/__init__.py +1 -0
  2. seleniumbase/__init__.py +1 -0
  3. seleniumbase/__version__.py +1 -1
  4. seleniumbase/behave/behave_sb.py +12 -19
  5. seleniumbase/common/exceptions.py +5 -0
  6. seleniumbase/config/settings.py +7 -0
  7. seleniumbase/console_scripts/ReadMe.md +2 -2
  8. seleniumbase/console_scripts/run.py +5 -4
  9. seleniumbase/console_scripts/sb_behave_gui.py +6 -9
  10. seleniumbase/console_scripts/sb_caseplans.py +2 -5
  11. seleniumbase/console_scripts/sb_commander.py +5 -8
  12. seleniumbase/console_scripts/sb_install.py +43 -54
  13. seleniumbase/console_scripts/sb_mkchart.py +12 -7
  14. seleniumbase/console_scripts/sb_mkfile.py +1 -2
  15. seleniumbase/console_scripts/sb_mkpres.py +6 -1
  16. seleniumbase/console_scripts/sb_print.py +2 -0
  17. seleniumbase/console_scripts/sb_recorder.py +3 -2
  18. seleniumbase/core/browser_launcher.py +13 -27
  19. seleniumbase/core/capabilities_parser.py +2 -3
  20. seleniumbase/core/detect_b_ver.py +3 -4
  21. seleniumbase/core/jqc_helper.py +2 -4
  22. seleniumbase/core/mysql.py +1 -1
  23. seleniumbase/core/proxy_helper.py +65 -0
  24. seleniumbase/core/recorder_helper.py +1 -1
  25. seleniumbase/core/s3_manager.py +29 -23
  26. seleniumbase/core/session_helper.py +2 -6
  27. seleniumbase/core/settings_parser.py +2 -0
  28. seleniumbase/fixtures/base_case.py +31 -13
  29. seleniumbase/fixtures/constants.py +1 -1
  30. seleniumbase/fixtures/css_to_xpath.py +1 -2
  31. seleniumbase/fixtures/errors.py +2 -7
  32. seleniumbase/fixtures/js_utils.py +8 -16
  33. seleniumbase/fixtures/page_actions.py +3 -6
  34. seleniumbase/fixtures/page_utils.py +1 -1
  35. seleniumbase/fixtures/shared_utils.py +26 -79
  36. seleniumbase/fixtures/xpath_to_css.py +1 -3
  37. seleniumbase/plugins/base_plugin.py +1 -1
  38. seleniumbase/plugins/basic_test_info.py +1 -1
  39. seleniumbase/plugins/db_reporting_plugin.py +2 -2
  40. seleniumbase/plugins/driver_manager.py +2 -1
  41. seleniumbase/plugins/page_source.py +2 -4
  42. seleniumbase/plugins/pytest_plugin.py +9 -8
  43. seleniumbase/plugins/s3_logging_plugin.py +20 -9
  44. seleniumbase/plugins/sb_manager.py +2 -2
  45. seleniumbase/plugins/screen_shots.py +2 -2
  46. seleniumbase/plugins/selenium_plugin.py +5 -8
  47. seleniumbase/translate/translator.py +397 -396
  48. seleniumbase/undetected/__init__.py +17 -37
  49. seleniumbase/utilities/selenium_grid/grid_hub.py +2 -1
  50. seleniumbase/utilities/selenium_grid/grid_node.py +2 -1
  51. {seleniumbase-4.15.14.dist-info → seleniumbase-4.16.0.dist-info}/METADATA +8 -8
  52. {seleniumbase-4.15.14.dist-info → seleniumbase-4.16.0.dist-info}/RECORD +56 -56
  53. {seleniumbase-4.15.14.dist-info → seleniumbase-4.16.0.dist-info}/LICENSE +0 -0
  54. {seleniumbase-4.15.14.dist-info → seleniumbase-4.16.0.dist-info}/WHEEL +0 -0
  55. {seleniumbase-4.15.14.dist-info → seleniumbase-4.16.0.dist-info}/entry_points.txt +0 -0
  56. {seleniumbase-4.15.14.dist-info → seleniumbase-4.16.0.dist-info}/top_level.txt +0 -0
@@ -27,7 +27,6 @@ Output:
27
27
  (Example: Translating "test_1.py" into Japanese with
28
28
  "-c" will create a new file called "test_1_ja.py".)
29
29
  """
30
-
31
30
  import codecs
32
31
  import colorama
33
32
  import os
@@ -551,6 +550,9 @@ def main():
551
550
  save_line = save_line.replace("]]]", cr + "")
552
551
 
553
552
  if print_only:
553
+ from rich.console import Console
554
+ from rich.syntax import Syntax
555
+
554
556
  console_width = None # width of console output when running script
555
557
  used_width = None # code_width and few spaces on right for padding
556
558
  magic_console = None
@@ -562,438 +564,437 @@ def main():
562
564
  except Exception:
563
565
  console_width = None
564
566
 
565
- if sys.version_info[0] == 3 and sys.version_info[1] >= 6:
566
- from rich.console import Console
567
- from rich.syntax import Syntax
568
-
569
- python_code = "\n".join(seleniumbase_lines)
570
- code_width = 1
567
+ python_code = "\n".join(seleniumbase_lines)
568
+ code_width = 1
571
569
 
572
- w = 0 # line number whitespace
573
- if line_numbers:
574
- w = 4
575
- num_lines = len(code_lines)
576
- if num_lines >= 10:
577
- w = 5
578
- if num_lines >= 100:
579
- w = 6
580
- if num_lines >= 1000:
581
- w = 7
570
+ w = 0 # line number whitespace
571
+ if line_numbers:
572
+ w = 4
573
+ num_lines = len(code_lines)
574
+ if num_lines >= 10:
575
+ w = 5
576
+ if num_lines >= 100:
577
+ w = 6
578
+ if num_lines >= 1000:
579
+ w = 7
580
+ if num_lines >= 10000:
581
+ w = 8
582
582
 
583
- new_sb_lines = []
584
- for line in seleniumbase_lines:
585
- if line.endswith(" # noqa") and line.count(" # noqa") == 1:
586
- line = line.replace(" # noqa", "")
587
- line_length2 = len(line) # Normal Python string length used
588
- line_length = get_width(line) # Special characters count 2X
589
- if line_length > code_width:
590
- code_width = line_length
583
+ new_sb_lines = []
584
+ for line in seleniumbase_lines:
585
+ if line.endswith(" # noqa") and line.count(" # noqa") == 1:
586
+ line = line.replace(" # noqa", "")
587
+ line_length2 = len(line) # Normal Python string length used
588
+ line_length = get_width(line) # Special characters count 2X
589
+ if line_length > code_width:
590
+ code_width = line_length
591
591
 
592
- if console_width:
593
- # If line is larger than console_width, try to optimize it.
594
- # Smart Python word wrap to be used with valid indentation.
595
- if line_length + w > console_width: # 5 is line number ws
596
- if line.strip().startswith("#"):
597
- new_sb_lines.append(line)
598
- continue
599
- elif (
600
- line.count(" # ") == 1
601
- and get_width(line.split(" # ")[0]) + w
602
- <= console_width
603
- ):
604
- # Line is short enough once comment is removed
605
- line = line.split(" # ")[0]
606
- new_sb_lines.append(line)
607
- continue
608
- elif (
609
- line.count(" # ") == 1
610
- and get_width(line.split(" # ")[0]) + w
611
- <= console_width
612
- ):
613
- # L-Length good if removing bad flake8 comment
614
- line = line.split(" # ")[0]
615
- new_sb_lines.append(line)
616
- continue
617
- if line.startswith("from") and " import " in line:
618
- line1 = line.split(" import ")[0] + " \\"
619
- line2 = " import " + line.split(" import ")[1]
592
+ if console_width:
593
+ # If line is larger than console_width, try to optimize it.
594
+ # Smart Python word wrap to be used with valid indentation.
595
+ if line_length + w > console_width: # 5 is line number ws
596
+ if line.strip().startswith("#"):
597
+ new_sb_lines.append(line)
598
+ continue
599
+ elif (
600
+ line.count(" # ") == 1
601
+ and get_width(line.split(" # ")[0]) + w
602
+ <= console_width
603
+ ):
604
+ # Line is short enough once comment is removed
605
+ line = line.split(" # ")[0]
606
+ new_sb_lines.append(line)
607
+ continue
608
+ elif (
609
+ line.count(" # ") == 1
610
+ and get_width(line.split(" # ")[0]) + w
611
+ <= console_width
612
+ ):
613
+ # L-Length good if removing bad flake8 comment
614
+ line = line.split(" # ")[0]
615
+ new_sb_lines.append(line)
616
+ continue
617
+ if line.startswith("from") and " import " in line:
618
+ line1 = line.split(" import ")[0] + " \\"
619
+ line2 = " import " + line.split(" import ")[1]
620
+ new_sb_lines.append(line1)
621
+ new_sb_lines.append(line2)
622
+ continue
623
+ if line.count("(") == 1 and line.count(")") == 1:
624
+ whitespace = line_length2 - len(line.lstrip())
625
+ new_ws = line[0:whitespace] + " "
626
+ line1 = line.split("(")[0] + "("
627
+ line2 = new_ws + line.split("(")[1]
628
+ if not ("):") in line2:
620
629
  new_sb_lines.append(line1)
621
- new_sb_lines.append(line2)
622
- continue
623
- if line.count("(") == 1 and line.count(")") == 1:
624
- whitespace = line_length2 - len(line.lstrip())
625
- new_ws = line[0:whitespace] + " "
626
- line1 = line.split("(")[0] + "("
627
- line2 = new_ws + line.split("(")[1]
628
- if not ("):") in line2:
629
- new_sb_lines.append(line1)
630
- if get_width(line2) + w > console_width:
631
- if line2.count('", "') == 1:
632
- line2a = line2.split('", "')[0] + '",'
633
- line2b = (
634
- new_ws
635
- + '"'
636
- + (line2.split('", "')[1])
637
- )
638
- new_sb_lines.append(line2a)
639
- new_sb_lines.append(line2b)
640
- continue
641
- elif line2.count("', '") == 1:
642
- line2a = line2.split("', '")[0] + "',"
643
- line2b = (
644
- new_ws
645
- + "'"
646
- + (line2.split("', '")[1])
647
- )
648
- new_sb_lines.append(line2a)
649
- new_sb_lines.append(line2b)
650
- continue
651
- elif line2.count("://") == 1 and (
652
- line2.count('")') == 1
630
+ if get_width(line2) + w > console_width:
631
+ if line2.count('", "') == 1:
632
+ line2a = line2.split('", "')[0] + '",'
633
+ line2b = (
634
+ new_ws
635
+ + '"'
636
+ + (line2.split('", "')[1])
637
+ )
638
+ new_sb_lines.append(line2a)
639
+ new_sb_lines.append(line2b)
640
+ continue
641
+ elif line2.count("', '") == 1:
642
+ line2a = line2.split("', '")[0] + "',"
643
+ line2b = (
644
+ new_ws
645
+ + "'"
646
+ + (line2.split("', '")[1])
647
+ )
648
+ new_sb_lines.append(line2a)
649
+ new_sb_lines.append(line2b)
650
+ continue
651
+ elif line2.count("://") == 1 and (
652
+ line2.count('")') == 1
653
+ ):
654
+ line2a = line2.split("://")[0] + '://"'
655
+ line2b = (
656
+ new_ws
657
+ + '"'
658
+ + (line2.split("://")[1])
659
+ )
660
+ new_sb_lines.append(line2a)
661
+ if get_width(line2b) + w > (
662
+ console_width
653
663
  ):
654
- line2a = line2.split("://")[0] + '://"'
655
- line2b = (
656
- new_ws
657
- + '"'
658
- + (line2.split("://")[1])
659
- )
660
- new_sb_lines.append(line2a)
661
- if get_width(line2b) + w > (
662
- console_width
663
- ):
664
- if line2b.count("/") > 0:
665
- slash_one = line2b.find("/")
666
- slash_one_p1 = slash_one + 1
667
- line2b1 = (
668
- line2b[:slash_one_p1] + '"'
669
- )
664
+ if line2b.count("/") > 0:
665
+ slash_one = line2b.find("/")
666
+ slash_one_p1 = slash_one + 1
667
+ line2b1 = (
668
+ line2b[:slash_one_p1] + '"'
669
+ )
670
+ line2b2 = (
671
+ new_ws
672
+ + '"'
673
+ + (line2b[slash_one_p1:])
674
+ )
675
+ new_sb_lines.append(line2b1)
676
+ if line2b2.count(") # ") == 1:
670
677
  line2b2 = (
671
- new_ws
672
- + '"'
673
- + (line2b[slash_one_p1:])
678
+ line2b2.split(") # ")[
679
+ 0
680
+ ]
681
+ + ")"
674
682
  )
675
- new_sb_lines.append(line2b1)
676
- if line2b2.count(") # ") == 1:
677
- line2b2 = (
678
- line2b2.split(") # ")[
679
- 0
680
- ]
681
- + ")"
682
- )
683
- new_sb_lines.append(line2b2)
684
- continue
685
- new_sb_lines.append(line2b)
686
- continue
687
- elif line2.count("://") == 1 and (
688
- line2.count("')") == 1
683
+ new_sb_lines.append(line2b2)
684
+ continue
685
+ new_sb_lines.append(line2b)
686
+ continue
687
+ elif line2.count("://") == 1 and (
688
+ line2.count("')") == 1
689
+ ):
690
+ line2a = line2.split("://")[0] + "://'"
691
+ line2b = (
692
+ new_ws
693
+ + "'"
694
+ + (line2.split("://")[1])
695
+ )
696
+ new_sb_lines.append(line2a)
697
+ if get_width(line2b) + w > (
698
+ console_width
689
699
  ):
690
- line2a = line2.split("://")[0] + "://'"
691
- line2b = (
692
- new_ws
693
- + "'"
694
- + (line2.split("://")[1])
695
- )
696
- new_sb_lines.append(line2a)
697
- if get_width(line2b) + w > (
698
- console_width
699
- ):
700
- if line2b.count("/") > 0:
701
- slash_one = line2b.find("/")
702
- slash_one_p1 = slash_one + 1
703
- line2b1 = (
704
- line2b[:slash_one_p1] + "'"
705
- )
700
+ if line2b.count("/") > 0:
701
+ slash_one = line2b.find("/")
702
+ slash_one_p1 = slash_one + 1
703
+ line2b1 = (
704
+ line2b[:slash_one_p1] + "'"
705
+ )
706
+ line2b2 = (
707
+ new_ws
708
+ + "'"
709
+ + (line2b[slash_one_p1:])
710
+ )
711
+ new_sb_lines.append(line2b1)
712
+ if line2b2.count(") # ") == 1:
706
713
  line2b2 = (
707
- new_ws
708
- + "'"
709
- + (line2b[slash_one_p1:])
714
+ line2b2.split(") # ")[
715
+ 0
716
+ ]
717
+ + ")"
710
718
  )
711
- new_sb_lines.append(line2b1)
712
- if line2b2.count(") # ") == 1:
713
- line2b2 = (
714
- line2b2.split(") # ")[
715
- 0
716
- ]
717
- + ")"
718
- )
719
- new_sb_lines.append(line2b2)
720
- continue
721
- new_sb_lines.append(line2b)
722
- continue
723
- elif line2.count(", ") == 1:
724
- line2a = line2.split(", ")[0] + ","
725
- line2b = new_ws + (
726
- line2.split(", ")[1]
727
- )
728
- new_sb_lines.append(line2a)
729
- new_sb_lines.append(line2b)
730
- continue
731
- elif line2.count('="') == 1 and (
732
- line2.lstrip().startswith("'")
733
- ):
734
- line2a = line2.split('="')[0] + "='"
735
- line2b = (
736
- new_ws
737
- + "'\""
738
- + (line2.split('="')[1])
739
- )
740
- new_sb_lines.append(line2a)
741
- new_sb_lines.append(line2b)
742
- continue
743
- elif line2.count("='") == 1 and (
744
- line2.lstrip().startswith('"')
745
- ):
746
- line2a = line2.split("='")[0] + '="'
747
- line2b = (
748
- new_ws
749
- + "\"'"
750
- + (line2.split("='")[1])
751
- )
752
- new_sb_lines.append(line2a)
753
- new_sb_lines.append(line2b)
754
- continue
755
- new_sb_lines.append(line2)
756
- elif get_width(line2) + 4 + w <= console_width:
757
- line2 = " " + line2
758
- new_sb_lines.append(line1)
759
- new_sb_lines.append(line2)
760
- else:
761
- new_sb_lines.append(line)
762
- continue
763
- if line.count('("') == 1:
764
- whitespace = line_length2 - len(line.lstrip())
765
- new_ws = line[0:whitespace] + " "
766
- line1 = line.split('("')[0] + "("
767
- line2 = new_ws + '"' + line.split('("')[1]
768
- if not ("):") in line2:
769
- new_sb_lines.append(line1)
770
- if get_width(line2) + w > console_width:
771
- if line2.count('" in self.') == 1:
772
- line2a = (
773
- line2.split('" in self.')[0]
774
- + '" in'
775
- )
776
- line2b = (
777
- new_ws
778
- + "self."
779
- + (line2.split('" in self.')[1])
780
- )
781
- new_sb_lines.append(line2a)
782
- new_sb_lines.append(line2b)
783
- continue
784
- new_sb_lines.append(line2)
785
- elif get_width(line2) + 4 + w <= console_width:
786
- line2 = " " + line2
787
- new_sb_lines.append(line1)
788
- new_sb_lines.append(line2)
789
- else:
790
- new_sb_lines.append(line)
791
- continue
792
- if line.count("('") == 1:
793
- whitespace = line_length2 - len(line.lstrip())
794
- new_ws = line[0:whitespace] + " "
795
- line1 = line.split("('")[0] + "("
796
- line2 = new_ws + "'" + line.split("('")[1]
797
- if not ("):") in line2:
798
- new_sb_lines.append(line1)
799
- if get_width(line2) + w > console_width:
800
- if line2.count("' in self.") == 1:
801
- line2a = (
802
- line2.split("' in self.")[0]
803
- + "' in"
804
- )
805
- line2b = (
806
- new_ws
807
- + "self."
808
- + (line2.split("' in self.")[1])
809
- )
810
- new_sb_lines.append(line2a)
811
- new_sb_lines.append(line2b)
812
- continue
813
- new_sb_lines.append(line2)
814
- elif get_width(line2) + 4 + w <= console_width:
815
- line2 = " " + line2
816
- new_sb_lines.append(line1)
817
- new_sb_lines.append(line2)
818
- else:
819
- new_sb_lines.append(line)
820
- continue
821
- if line.count('= "') == 1 and line.count("://") == 1:
822
- whitespace = line_length2 - len(line.lstrip())
823
- new_ws = line[0:whitespace] + " "
824
- line1 = line.split("://")[0] + '://" \\'
825
- line2 = new_ws + '"' + line.split("://")[1]
719
+ new_sb_lines.append(line2b2)
720
+ continue
721
+ new_sb_lines.append(line2b)
722
+ continue
723
+ elif line2.count(", ") == 1:
724
+ line2a = line2.split(", ")[0] + ","
725
+ line2b = new_ws + (
726
+ line2.split(", ")[1]
727
+ )
728
+ new_sb_lines.append(line2a)
729
+ new_sb_lines.append(line2b)
730
+ continue
731
+ elif line2.count('="') == 1 and (
732
+ line2.lstrip().startswith("'")
733
+ ):
734
+ line2a = line2.split('="')[0] + "='"
735
+ line2b = (
736
+ new_ws
737
+ + "'\""
738
+ + (line2.split('="')[1])
739
+ )
740
+ new_sb_lines.append(line2a)
741
+ new_sb_lines.append(line2b)
742
+ continue
743
+ elif line2.count("='") == 1 and (
744
+ line2.lstrip().startswith('"')
745
+ ):
746
+ line2a = line2.split("='")[0] + '="'
747
+ line2b = (
748
+ new_ws
749
+ + "\"'"
750
+ + (line2.split("='")[1])
751
+ )
752
+ new_sb_lines.append(line2a)
753
+ new_sb_lines.append(line2b)
754
+ continue
755
+ new_sb_lines.append(line2)
756
+ elif get_width(line2) + 4 + w <= console_width:
757
+ line2 = " " + line2
758
+ new_sb_lines.append(line1)
759
+ new_sb_lines.append(line2)
760
+ else:
761
+ new_sb_lines.append(line)
762
+ continue
763
+ if line.count('("') == 1:
764
+ whitespace = line_length2 - len(line.lstrip())
765
+ new_ws = line[0:whitespace] + " "
766
+ line1 = line.split('("')[0] + "("
767
+ line2 = new_ws + '"' + line.split('("')[1]
768
+ if not ("):") in line2:
826
769
  new_sb_lines.append(line1)
827
770
  if get_width(line2) + w > console_width:
828
- if line2.count("/") > 0:
829
- slash_one = line2.find("/")
830
- slash_one_p1 = slash_one + 1
831
- line2a = line2[:slash_one_p1] + '" \\'
771
+ if line2.count('" in self.') == 1:
772
+ line2a = (
773
+ line2.split('" in self.')[0]
774
+ + '" in'
775
+ )
832
776
  line2b = (
833
- new_ws + '"' + line2[slash_one_p1:]
777
+ new_ws
778
+ + "self."
779
+ + (line2.split('" in self.')[1])
834
780
  )
835
781
  new_sb_lines.append(line2a)
836
782
  new_sb_lines.append(line2b)
837
783
  continue
838
784
  new_sb_lines.append(line2)
839
- continue
840
- if line.count("= '") == 1 and line.count("://") == 1:
841
- whitespace = line_length2 - len(line.lstrip())
842
- new_ws = line[0:whitespace] + " "
843
- line1 = line.split("://")[0] + "://' \\"
844
- line2 = new_ws + "'" + line.split("://")[1]
785
+ elif get_width(line2) + 4 + w <= console_width:
786
+ line2 = " " + line2
787
+ new_sb_lines.append(line1)
788
+ new_sb_lines.append(line2)
789
+ else:
790
+ new_sb_lines.append(line)
791
+ continue
792
+ if line.count("('") == 1:
793
+ whitespace = line_length2 - len(line.lstrip())
794
+ new_ws = line[0:whitespace] + " "
795
+ line1 = line.split("('")[0] + "("
796
+ line2 = new_ws + "'" + line.split("('")[1]
797
+ if not ("):") in line2:
845
798
  new_sb_lines.append(line1)
846
799
  if get_width(line2) + w > console_width:
847
- if line2.count("/") > 0:
848
- slash_one = line2.find("/")
849
- slash_one_p1 = slash_one + 1
850
- line2a = line2[:slash_one_p1] + "' \\"
800
+ if line2.count("' in self.") == 1:
801
+ line2a = (
802
+ line2.split("' in self.")[0]
803
+ + "' in"
804
+ )
851
805
  line2b = (
852
- new_ws + "'" + line2[slash_one_p1:]
806
+ new_ws
807
+ + "self."
808
+ + (line2.split("' in self.")[1])
853
809
  )
854
810
  new_sb_lines.append(line2a)
855
811
  new_sb_lines.append(line2b)
856
812
  continue
857
813
  new_sb_lines.append(line2)
858
- continue
859
- if line.count("(self.") == 1 and not ("):") in line:
860
- whitespace = line_length2 - len(line.lstrip())
861
- new_ws = line[0:whitespace] + " "
862
- line1 = line.split("(self.")[0] + "("
863
- line2 = new_ws + "self." + line.split("(self.")[1]
864
- if get_width(line1) + w <= console_width:
865
- new_sb_lines.append(line1)
866
- new_sb_lines.append(line2)
867
- continue
868
- if line.count(" == ") == 1 and not (
869
- line.endswith(":") or (": #") in line
870
- ):
871
- whitespace = line_length2 - len(line.lstrip())
872
- new_ws = line[0:whitespace] + " "
873
- line1 = line.split(" == ")[0] + " == ("
874
- line2 = new_ws + line.split(" == ")[1] + ")"
875
- if get_width(line1) + w <= console_width and (
876
- get_width(line2) + w <= console_width
877
- ):
878
- new_sb_lines.append(line1)
879
- new_sb_lines.append(line2)
814
+ elif get_width(line2) + 4 + w <= console_width:
815
+ line2 = " " + line2
816
+ new_sb_lines.append(line1)
817
+ new_sb_lines.append(line2)
818
+ else:
819
+ new_sb_lines.append(line)
820
+ continue
821
+ if line.count('= "') == 1 and line.count("://") == 1:
822
+ whitespace = line_length2 - len(line.lstrip())
823
+ new_ws = line[0:whitespace] + " "
824
+ line1 = line.split("://")[0] + '://" \\'
825
+ line2 = new_ws + '"' + line.split("://")[1]
826
+ new_sb_lines.append(line1)
827
+ if get_width(line2) + w > console_width:
828
+ if line2.count("/") > 0:
829
+ slash_one = line2.find("/")
830
+ slash_one_p1 = slash_one + 1
831
+ line2a = line2[:slash_one_p1] + '" \\'
832
+ line2b = (
833
+ new_ws + '"' + line2[slash_one_p1:]
834
+ )
835
+ new_sb_lines.append(line2a)
836
+ new_sb_lines.append(line2b)
880
837
  continue
881
- if line.count(" == ") == 1 and line.endswith(":"):
882
- whitespace = line_length2 - len(line.lstrip())
883
- new_ws = line[0:whitespace] + " "
884
- line1 = line.split(" == ")[0] + " == ("
885
- line2 = new_ws + line.split(" == ")[1][:-1] + "):"
886
- if get_width(line1) + w <= console_width and (
887
- get_width(line2) + w <= console_width
888
- ):
889
- new_sb_lines.append(line1)
890
- new_sb_lines.append(line2)
838
+ new_sb_lines.append(line2)
839
+ continue
840
+ if line.count("= '") == 1 and line.count("://") == 1:
841
+ whitespace = line_length2 - len(line.lstrip())
842
+ new_ws = line[0:whitespace] + " "
843
+ line1 = line.split("://")[0] + "://' \\"
844
+ line2 = new_ws + "'" + line.split("://")[1]
845
+ new_sb_lines.append(line1)
846
+ if get_width(line2) + w > console_width:
847
+ if line2.count("/") > 0:
848
+ slash_one = line2.find("/")
849
+ slash_one_p1 = slash_one + 1
850
+ line2a = line2[:slash_one_p1] + "' \\"
851
+ line2b = (
852
+ new_ws + "'" + line2[slash_one_p1:]
853
+ )
854
+ new_sb_lines.append(line2a)
855
+ new_sb_lines.append(line2b)
891
856
  continue
892
- if (
893
- line.count(" == ") == 1
894
- and (line.count(": #") == 1)
895
- and (line.find(" == ") < line.find(": #"))
857
+ new_sb_lines.append(line2)
858
+ continue
859
+ if line.count("(self.") == 1 and not ("):") in line:
860
+ whitespace = line_length2 - len(line.lstrip())
861
+ new_ws = line[0:whitespace] + " "
862
+ line1 = line.split("(self.")[0] + "("
863
+ line2 = new_ws + "self." + line.split("(self.")[1]
864
+ if get_width(line1) + w <= console_width:
865
+ new_sb_lines.append(line1)
866
+ new_sb_lines.append(line2)
867
+ continue
868
+ if line.count(" == ") == 1 and not (
869
+ line.endswith(":") or (": #") in line
870
+ ):
871
+ whitespace = line_length2 - len(line.lstrip())
872
+ new_ws = line[0:whitespace] + " "
873
+ line1 = line.split(" == ")[0] + " == ("
874
+ line2 = new_ws + line.split(" == ")[1] + ")"
875
+ if get_width(line1) + w <= console_width and (
876
+ get_width(line2) + w <= console_width
877
+ ):
878
+ new_sb_lines.append(line1)
879
+ new_sb_lines.append(line2)
880
+ continue
881
+ if line.count(" == ") == 1 and line.endswith(":"):
882
+ whitespace = line_length2 - len(line.lstrip())
883
+ new_ws = line[0:whitespace] + " "
884
+ line1 = line.split(" == ")[0] + " == ("
885
+ line2 = new_ws + line.split(" == ")[1][:-1] + "):"
886
+ if get_width(line1) + w <= console_width and (
887
+ get_width(line2) + w <= console_width
896
888
  ):
897
- whitespace = line_length2 - len(line.lstrip())
898
- new_ws = line[0:whitespace] + " "
899
- comments = " #" + line.split(": #")[1]
900
- line0 = line.split(": #")[0] + ":"
901
- line1 = line0.split(" == ")[0] + " == ("
902
- line2 = new_ws + line0.split(" == ")[1][:-1] + "):"
903
- if get_width(line1) + w <= console_width and (
904
- get_width(line2) + w <= console_width
889
+ new_sb_lines.append(line1)
890
+ new_sb_lines.append(line2)
891
+ continue
892
+ if (
893
+ line.count(" == ") == 1
894
+ and (line.count(": #") == 1)
895
+ and (line.find(" == ") < line.find(": #"))
896
+ ):
897
+ whitespace = line_length2 - len(line.lstrip())
898
+ new_ws = line[0:whitespace] + " "
899
+ comments = " #" + line.split(": #")[1]
900
+ line0 = line.split(": #")[0] + ":"
901
+ line1 = line0.split(" == ")[0] + " == ("
902
+ line2 = new_ws + line0.split(" == ")[1][:-1] + "):"
903
+ if get_width(line1) + w <= console_width and (
904
+ get_width(line2) + w <= console_width
905
+ ):
906
+ new_sb_lines.append(line1)
907
+ if (
908
+ get_width(line2 + comments) + w
909
+ <= console_width
905
910
  ):
906
- new_sb_lines.append(line1)
907
- if (
908
- get_width(line2 + comments) + w
909
- <= console_width
910
- ):
911
- new_sb_lines.append(line2 + comments)
912
- else:
913
- new_sb_lines.append(line2)
914
- continue
915
- if line.count(" % ") == 1 and not ("):") in line:
916
- whitespace = line_length2 - len(line.lstrip())
917
- new_ws = line[0:whitespace] + " "
918
- line1 = line.split(" % ")[0] + " \\"
919
- line2 = new_ws + "% " + line.split(" % ")[1]
920
- if get_width(line1) + w <= console_width:
921
- new_sb_lines.append(line1)
911
+ new_sb_lines.append(line2 + comments)
912
+ else:
922
913
  new_sb_lines.append(line2)
923
- continue
924
- if line.count(" = ") == 1 and not (" # ") in line:
925
- whitespace = line_length2 - len(line.lstrip())
926
- new_ws = line[0:whitespace] + " "
927
- line1 = line.split(" = ")[0] + " = ("
928
- line2 = new_ws + line.split(" = ")[1] + ")"
929
- if get_width(line1) + w <= console_width and (
930
- get_width(line2) + w <= console_width
914
+ continue
915
+ if line.count(" % ") == 1 and not ("):") in line:
916
+ whitespace = line_length2 - len(line.lstrip())
917
+ new_ws = line[0:whitespace] + " "
918
+ line1 = line.split(" % ")[0] + " \\"
919
+ line2 = new_ws + "% " + line.split(" % ")[1]
920
+ if get_width(line1) + w <= console_width:
921
+ new_sb_lines.append(line1)
922
+ new_sb_lines.append(line2)
923
+ continue
924
+ if line.count(" = ") == 1 and not (" # ") in line:
925
+ whitespace = line_length2 - len(line.lstrip())
926
+ new_ws = line[0:whitespace] + " "
927
+ line1 = line.split(" = ")[0] + " = ("
928
+ line2 = new_ws + line.split(" = ")[1] + ")"
929
+ if get_width(line1) + w <= console_width and (
930
+ get_width(line2) + w <= console_width
931
+ ):
932
+ new_sb_lines.append(line1)
933
+ new_sb_lines.append(line2)
934
+ continue
935
+ elif get_width(line1) + w <= console_width:
936
+ if line2.count(" % ") == 1 and not (
937
+ line2.endswith(":")
931
938
  ):
932
- new_sb_lines.append(line1)
933
- new_sb_lines.append(line2)
934
- continue
935
- elif get_width(line1) + w <= console_width:
936
- if line2.count(" % ") == 1 and not (
937
- line2.endswith(":")
938
- ):
939
- whitespace = line_length2 - len(
940
- line2.lstrip()
941
- )
942
- line2a = line2.split(" % ")[0] + " \\"
943
- line2b = (
944
- new_ws + "% " + line2.split(" % ")[1]
945
- )
946
- if get_width(line2a) + w <= console_width:
947
- if (
948
- get_width(line2b) + w
949
- <= console_width
950
- ):
951
- new_sb_lines.append(line1)
952
- new_sb_lines.append(line2a)
953
- new_sb_lines.append(line2b)
954
- continue
955
- if (
956
- line.count(" = ") == 1
957
- and (line.count(" # ") == 1)
958
- and (line.find(" = ") < line.find(" # "))
939
+ whitespace = line_length2 - len(
940
+ line2.lstrip()
941
+ )
942
+ line2a = line2.split(" % ")[0] + " \\"
943
+ line2b = (
944
+ new_ws + "% " + line2.split(" % ")[1]
945
+ )
946
+ if get_width(line2a) + w <= console_width:
947
+ if (
948
+ get_width(line2b) + w
949
+ <= console_width
950
+ ):
951
+ new_sb_lines.append(line1)
952
+ new_sb_lines.append(line2a)
953
+ new_sb_lines.append(line2b)
954
+ continue
955
+ if (
956
+ line.count(" = ") == 1
957
+ and (line.count(" # ") == 1)
958
+ and (line.find(" = ") < line.find(" # "))
959
+ ):
960
+ whitespace = line_length2 - len(line.lstrip())
961
+ new_ws = line[0:whitespace] + " "
962
+ comments = " # " + line.split(" # ")[1]
963
+ line0 = line.split(" # ")[0]
964
+ line1 = line0.split(" = ")[0] + " = ("
965
+ line2 = new_ws + line0.split(" = ")[1] + ")"
966
+ if get_width(line1) + w <= console_width and (
967
+ get_width(line2) + w <= console_width
959
968
  ):
960
- whitespace = line_length2 - len(line.lstrip())
961
- new_ws = line[0:whitespace] + " "
962
- comments = " # " + line.split(" # ")[1]
963
- line0 = line.split(" # ")[0]
964
- line1 = line0.split(" = ")[0] + " = ("
965
- line2 = new_ws + line0.split(" = ")[1] + ")"
966
- if get_width(line1) + w <= console_width and (
967
- get_width(line2) + w <= console_width
969
+ new_sb_lines.append(line1)
970
+ if (
971
+ get_width(line2 + comments) + w
972
+ <= console_width
968
973
  ):
969
- new_sb_lines.append(line1)
970
- if (
971
- get_width(line2 + comments) + w
972
- <= console_width
973
- ):
974
- new_sb_lines.append(line2 + comments)
975
- else:
976
- new_sb_lines.append(line2)
977
- continue
978
- new_sb_lines.append(line)
974
+ new_sb_lines.append(line2 + comments)
975
+ else:
976
+ new_sb_lines.append(line2)
977
+ continue
978
+ new_sb_lines.append(line)
979
979
 
980
- if new_sb_lines:
981
- seleniumbase_lines = new_sb_lines
982
- python_code = "\n".join(seleniumbase_lines)
980
+ if new_sb_lines:
981
+ seleniumbase_lines = new_sb_lines
982
+ python_code = "\n".join(seleniumbase_lines)
983
983
 
984
- extra_r_spaces = 2
985
- if console_width and (code_width + extra_r_spaces < console_width):
986
- used_width = code_width + extra_r_spaces
984
+ extra_r_spaces = 2
985
+ if console_width and (code_width + extra_r_spaces < console_width):
986
+ used_width = code_width + extra_r_spaces
987
+
988
+ magic_syntax = Syntax(
989
+ python_code,
990
+ "python",
991
+ theme="monokai",
992
+ line_numbers=line_numbers,
993
+ code_width=used_width,
994
+ word_wrap=word_wrap,
995
+ )
996
+ magic_console = Console()
987
997
 
988
- magic_syntax = Syntax(
989
- python_code,
990
- "python",
991
- theme="monokai",
992
- line_numbers=line_numbers,
993
- code_width=used_width,
994
- word_wrap=word_wrap,
995
- )
996
- magic_console = Console()
997
998
  print("")
998
999
  print(save_line)
999
1000
  print(" " + c1 + " *** Here are the results: >>> " + cr)