seleniumbase 4.40.0__py3-none-any.whl → 4.40.1__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.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.40.0"
2
+ __version__ = "4.40.1"
@@ -131,7 +131,7 @@ def override_driver_dir(driver_dir):
131
131
  bad_dir = os.path.realpath(driver_dir)
132
132
  log_d(
133
133
  "\n* Warning: Cannot set driver_dir to nonexistent directory:\n%s"
134
- "\n* Will use the default folder instead:\n%s)"
134
+ "\n* Will use the default folder instead:\n%s"
135
135
  % (bad_dir, DRIVER_DIR)
136
136
  )
137
137
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.40.0
3
+ Version: 4.40.1
4
4
  Summary: A complete web automation framework for end-to-end testing.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -108,7 +108,7 @@ Requires-Dist: wsproto==1.2.0
108
108
  Requires-Dist: websocket-client==1.8.0
109
109
  Requires-Dist: selenium==4.27.1; python_version < "3.9"
110
110
  Requires-Dist: selenium==4.32.0; python_version >= "3.9" and python_version < "3.10"
111
- Requires-Dist: selenium==4.34.0; python_version >= "3.10"
111
+ Requires-Dist: selenium==4.34.1; python_version >= "3.10"
112
112
  Requires-Dist: cssselect==1.2.0; python_version < "3.9"
113
113
  Requires-Dist: cssselect==1.3.0; python_version >= "3.9"
114
114
  Requires-Dist: sortedcontainers==2.4.0
@@ -339,7 +339,7 @@ class MyTestClass(BaseCase):
339
339
 
340
340
  <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_coffee_cart.py" target="_blank">test_coffee_cart.py</a>, which verifies an e-commerce site:</p>
341
341
 
342
- ```bash
342
+ ```zsh
343
343
  pytest test_coffee_cart.py --demo
344
344
  ```
345
345
 
@@ -353,7 +353,7 @@ pytest test_coffee_cart.py --demo
353
353
 
354
354
  <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py" target="_blank">test_demo_site.py</a>, which covers several actions:</p>
355
355
 
356
- ```bash
356
+ ```zsh
357
357
  pytest test_demo_site.py
358
358
  ```
359
359
 
@@ -501,7 +501,7 @@ finally:
501
501
 
502
502
  🔵 **How to install ``seleniumbase`` from PyPI:**
503
503
 
504
- ```bash
504
+ ```zsh
505
505
  pip install seleniumbase
506
506
  ```
507
507
 
@@ -511,7 +511,7 @@ pip install seleniumbase
511
511
 
512
512
  🔵 **How to install ``seleniumbase`` from a GitHub clone:**
513
513
 
514
- ```bash
514
+ ```zsh
515
515
  git clone https://github.com/seleniumbase/SeleniumBase.git
516
516
  cd SeleniumBase/
517
517
  pip install -e .
@@ -519,14 +519,14 @@ pip install -e .
519
519
 
520
520
  🔵 **How to upgrade an existing install from a GitHub clone:**
521
521
 
522
- ```bash
522
+ ```zsh
523
523
  git pull
524
524
  pip install -e .
525
525
  ```
526
526
 
527
527
  🔵 **Type ``seleniumbase`` or ``sbase`` to verify that SeleniumBase was installed successfully:**
528
528
 
529
- ```bash
529
+ ```zsh
530
530
  ___ _ _ ___
531
531
  / __| ___| |___ _ _ (_)_ _ _ __ | _ ) __ _ ______
532
532
  \__ \/ -_) / -_) ' \| | \| | ' \ | _ \/ _` (_-< -_)
@@ -580,7 +580,7 @@ pip install -e .
580
580
  <details>
581
581
  <summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
582
582
 
583
- ```bash
583
+ ```zsh
584
584
  *** chromedriver to download = 131.0.6778.108 (Latest Stable)
585
585
 
586
586
  Downloading chromedriver-mac-arm64.zip from:
@@ -608,7 +608,7 @@ Making [chromedriver 131.0.6778.108] executable ...
608
608
 
609
609
  <p align="left">Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</p>
610
610
 
611
- ```bash
611
+ ```zsh
612
612
  cd examples/
613
613
  pytest my_first_test.py
614
614
  ```
@@ -709,7 +709,7 @@ self.type("input", "dogs\n") # (The "\n" presses ENTER)
709
709
 
710
710
  Most SeleniumBase scripts can be run with <code translate="no">pytest</code>, <code translate="no">pynose</code>, or pure <code translate="no">python</code>. Not all test runners can run all test formats. For example, tests that use the ``sb`` pytest fixture can only be run with ``pytest``. (See <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a>) There's also a <a href="https://behave.readthedocs.io/en/stable/gherkin.html#features" target="_blank">Gherkin</a> test format that runs with <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/behave_bdd/ReadMe.md">behave</a>.
711
711
 
712
- ```bash
712
+ ```zsh
713
713
  pytest coffee_cart_tests.py --rs
714
714
  pytest test_sb_fixture.py --demo
715
715
  pytest test_suite.py --rs --html=report.html --dashboard
@@ -733,13 +733,13 @@ With a SeleniumBase [pytest.ini](https://github.com/seleniumbase/SeleniumBase/bl
733
733
 
734
734
  <p>✅ You can do a pre-flight check to see which tests would get discovered by <code translate="no">pytest</code> before the actual run:</p>
735
735
 
736
- ```bash
736
+ ```zsh
737
737
  pytest --co -q
738
738
  ```
739
739
 
740
740
  <p>✅ You can be more specific when calling <code translate="no">pytest</code> or <code translate="no">pynose</code> on a file:</p>
741
741
 
742
- ```bash
742
+ ```zsh
743
743
  pytest [FILE_NAME.py]::[CLASS_NAME]::[METHOD_NAME]
744
744
 
745
745
  pynose [FILE_NAME.py]:[CLASS_NAME].[METHOD_NAME]
@@ -767,7 +767,7 @@ pynose [FILE_NAME.py]:[CLASS_NAME].[METHOD_NAME]
767
767
 
768
768
  🔵 <b>Demo Mode</b> helps you see what a test is doing. If a test is moving too fast for your eyes, run it in <b>Demo Mode</b> to pause the browser briefly between actions, highlight page elements being acted on, and display assertions:
769
769
 
770
- ```bash
770
+ ```zsh
771
771
  pytest my_first_test.py --demo
772
772
  ```
773
773
 
@@ -789,13 +789,13 @@ breakpoint() # Shortcut for "import pdb; pdb.set_trace()"
789
789
 
790
790
  🔵 To pause an active test that throws an exception or error, (*and keep the browser window open while **Debug Mode** begins in the console*), add **``--pdb``** as a ``pytest`` option:
791
791
 
792
- ```bash
792
+ ```zsh
793
793
  pytest test_fail.py --pdb
794
794
  ```
795
795
 
796
796
  🔵 To start tests in Debug Mode, add **``--trace``** as a ``pytest`` option:
797
797
 
798
- ```bash
798
+ ```zsh
799
799
  pytest test_coffee_cart.py --trace
800
800
  ```
801
801
 
@@ -808,7 +808,7 @@ pytest test_coffee_cart.py --trace
808
808
  <a id="pytest_options"></a>
809
809
  ✅ Here are some useful command-line options that come with <code translate="no">pytest</code>:
810
810
 
811
- ```bash
811
+ ```zsh
812
812
  -v # Verbose mode. Prints the full name of each test and shows more details.
813
813
  -q # Quiet mode. Print fewer details in the console output when running tests.
814
814
  -x # Stop running the tests after the first failure is reached.
@@ -826,7 +826,7 @@ pytest test_coffee_cart.py --trace
826
826
  <a id="new_pytest_options"></a>
827
827
  ✅ SeleniumBase provides additional <code translate="no">pytest</code> command-line options for tests:
828
828
 
829
- ```bash
829
+ ```zsh
830
830
  --browser=BROWSER # (The web browser to use. Default: "chrome".)
831
831
  --chrome # (Shortcut for "--browser=chrome". On by default.)
832
832
  --edge # (Shortcut for "--browser=edge".)
@@ -936,7 +936,7 @@ pytest test_coffee_cart.py --trace
936
936
 
937
937
  🔵 During test failures, logs and screenshots from the most recent test run will get saved to the ``latest_logs/`` folder. Those logs will get moved to ``archived_logs/`` if you add --archive_logs to command-line options, or have ``ARCHIVE_EXISTING_LOGS`` set to True in [settings.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/settings.py), otherwise log files with be cleaned up at the start of the next test run. The ``test_suite.py`` collection contains tests that fail on purpose so that you can see how logging works.
938
938
 
939
- ```bash
939
+ ```zsh
940
940
  cd examples/
941
941
 
942
942
  pytest test_suite.py --chrome
@@ -959,13 +959,13 @@ Inside your tests, you can use ``self.data`` to access that.
959
959
 
960
960
  🔵 ``sbase mkdir DIR`` creates a folder with config files and sample tests:
961
961
 
962
- ```bash
962
+ ```zsh
963
963
  sbase mkdir ui_tests
964
964
  ```
965
965
 
966
966
  > That new folder will have these files:
967
967
 
968
- ```bash
968
+ ```zsh
969
969
  ui_tests/
970
970
  ├── __init__.py
971
971
  ├── my_first_test.py
@@ -991,13 +991,13 @@ ui_tests/
991
991
 
992
992
  <b>ProTip™:</b> You can also create a boilerplate folder without any sample tests in it by adding ``-b`` or ``--basic`` to the ``sbase mkdir`` command:
993
993
 
994
- ```bash
994
+ ```zsh
995
995
  sbase mkdir ui_tests --basic
996
996
  ```
997
997
 
998
998
  > That new folder will have these files:
999
999
 
1000
- ```bash
1000
+ ```zsh
1001
1001
  ui_tests/
1002
1002
  ├── __init__.py
1003
1003
  ├── pytest.ini
@@ -1027,7 +1027,7 @@ class MyTestClass(BaseCase):
1027
1027
 
1028
1028
  You can run it from the ``examples/`` folder like this:
1029
1029
 
1030
- ```bash
1030
+ ```zsh
1031
1031
  pytest test_fail.py
1032
1032
  ```
1033
1033
 
@@ -1040,7 +1040,7 @@ pytest test_fail.py
1040
1040
 
1041
1041
  🔵 The ``--dashboard`` option for pytest generates a SeleniumBase Dashboard located at ``dashboard.html``, which updates automatically as tests run and produce results. Example:
1042
1042
 
1043
- ```bash
1043
+ ```zsh
1044
1044
  pytest --dashboard --rs --headless
1045
1045
  ```
1046
1046
 
@@ -1048,7 +1048,7 @@ pytest --dashboard --rs --headless
1048
1048
 
1049
1049
  🔵 Additionally, you can host your own SeleniumBase Dashboard Server on a port of your choice. Here's an example of that using Python's ``http.server``:
1050
1050
 
1051
- ```bash
1051
+ ```zsh
1052
1052
  python -m http.server 1948
1053
1053
  ```
1054
1054
 
@@ -1056,7 +1056,7 @@ python -m http.server 1948
1056
1056
 
1057
1057
  🔵 Here's a full example of what the SeleniumBase Dashboard may look like:
1058
1058
 
1059
- ```bash
1059
+ ```zsh
1060
1060
  pytest test_suite.py test_image_saving.py --dashboard --rs --headless
1061
1061
  ```
1062
1062
 
@@ -1071,7 +1071,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
1071
1071
 
1072
1072
  ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
1073
1073
 
1074
- ```bash
1074
+ ```zsh
1075
1075
  pytest test_suite.py --html=report.html
1076
1076
  ```
1077
1077
 
@@ -1081,7 +1081,7 @@ pytest test_suite.py --html=report.html
1081
1081
 
1082
1082
  ✅ Here's an example of an upgraded html report:
1083
1083
 
1084
- ```bash
1084
+ ```zsh
1085
1085
  pytest test_suite.py --dashboard --html=report.html
1086
1086
  ```
1087
1087
 
@@ -1091,7 +1091,7 @@ If viewing pytest html reports in [Jenkins](https://www.jenkins.io/), you may ne
1091
1091
 
1092
1092
  You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkins can use this file to display better reporting for your tests.
1093
1093
 
1094
- ```bash
1094
+ ```zsh
1095
1095
  pytest test_suite.py --junit-xml=report.xml
1096
1096
  ```
1097
1097
 
@@ -1099,7 +1099,7 @@ pytest test_suite.py --junit-xml=report.xml
1099
1099
 
1100
1100
  The ``--report`` option gives you a fancy report after your test suite completes.
1101
1101
 
1102
- ```bash
1102
+ ```zsh
1103
1103
  pynose test_suite.py --report
1104
1104
  ```
1105
1105
 
@@ -1111,7 +1111,7 @@ pynose test_suite.py --report
1111
1111
 
1112
1112
  (The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
1113
1113
 
1114
- ```bash
1114
+ ```zsh
1115
1115
  behave behave_bdd/features/ -D dashboard -D headless
1116
1116
  ```
1117
1117
 
@@ -1119,7 +1119,7 @@ behave behave_bdd/features/ -D dashboard -D headless
1119
1119
 
1120
1120
  You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
1121
1121
 
1122
- ```bash
1122
+ ```zsh
1123
1123
  behave behave_bdd/features/ --junit -D rs -D headless
1124
1124
  ```
1125
1125
 
@@ -1129,13 +1129,13 @@ See: [https://allurereport.org/docs/pytest/](https://allurereport.org/docs/pytes
1129
1129
 
1130
1130
  SeleniumBase no longer includes ``allure-pytest`` as part of installed dependencies. If you want to use it, install it first:
1131
1131
 
1132
- ```bash
1132
+ ```zsh
1133
1133
  pip install allure-pytest
1134
1134
  ```
1135
1135
 
1136
1136
  Now your tests can create Allure results files, which can be processed by Allure Reports.
1137
1137
 
1138
- ```bash
1138
+ ```zsh
1139
1139
  pytest test_suite.py --alluredir=allure_results
1140
1140
  ```
1141
1141
 
@@ -1145,19 +1145,19 @@ pytest test_suite.py --alluredir=allure_results
1145
1145
 
1146
1146
  If you wish to use a proxy server for your browser tests (Chromium or Firefox), you can add ``--proxy=IP_ADDRESS:PORT`` as an argument on the command line.
1147
1147
 
1148
- ```bash
1148
+ ```zsh
1149
1149
  pytest proxy_test.py --proxy=IP_ADDRESS:PORT
1150
1150
  ```
1151
1151
 
1152
1152
  If the proxy server that you wish to use requires authentication, you can do the following (Chromium only):
1153
1153
 
1154
- ```bash
1154
+ ```zsh
1155
1155
  pytest proxy_test.py --proxy=USERNAME:PASSWORD@IP_ADDRESS:PORT
1156
1156
  ```
1157
1157
 
1158
1158
  SeleniumBase also supports SOCKS4 and SOCKS5 proxies:
1159
1159
 
1160
- ```bash
1160
+ ```zsh
1161
1161
  pytest proxy_test.py --proxy="socks4://IP_ADDRESS:PORT"
1162
1162
 
1163
1163
  pytest proxy_test.py --proxy="socks5://IP_ADDRESS:PORT"
@@ -1165,7 +1165,7 @@ pytest proxy_test.py --proxy="socks5://IP_ADDRESS:PORT"
1165
1165
 
1166
1166
  To make things easier, you can add your frequently-used proxies to PROXY_LIST in [proxy_list.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/proxy_list.py), and then use ``--proxy=KEY_FROM_PROXY_LIST`` to use the IP_ADDRESS:PORT of that key.
1167
1167
 
1168
- ```bash
1168
+ ```zsh
1169
1169
  pytest proxy_test.py --proxy=proxy1
1170
1170
  ```
1171
1171
 
@@ -1174,7 +1174,7 @@ pytest proxy_test.py --proxy=proxy1
1174
1174
 
1175
1175
  🔵 If you wish to change the User-Agent for your browser tests (Chromium and Firefox only), you can add ``--agent="USER AGENT STRING"`` as an argument on the command-line.
1176
1176
 
1177
- ```bash
1177
+ ```zsh
1178
1178
  pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7412.EU"
1179
1179
  ```
1180
1180
 
@@ -1212,7 +1212,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
1212
1212
 
1213
1213
  Here's an example of running tests with some additional features enabled:
1214
1214
 
1215
- ```bash
1215
+ ```zsh
1216
1216
  pytest [YOUR_TEST_FILE.py] --with-db-reporting --with-s3-logging
1217
1217
  ```
1218
1218
 
@@ -1559,7 +1559,7 @@ self.driver.find_elements("partial link text", "GitHub")
1559
1559
 
1560
1560
  <p>You can use <code translate="no">pytest --reruns=NUM</code> to retry failing tests that many times. Add <code translate="no">--reruns-delay=SECONDS</code> to wait that many seconds between retries. Example:</p>
1561
1561
 
1562
- ```bash
1562
+ ```zsh
1563
1563
  pytest --reruns=1 --reruns-delay=1
1564
1564
  ```
1565
1565
 
@@ -3,7 +3,7 @@ sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
3
3
  sbase/steps.py,sha256=_WvAjydKqZfTdnZW9LPKkRty-g-lfdUPmLqnZj6ulcs,43013
4
4
  seleniumbase/__init__.py,sha256=JFEY9P5QJqsa1M6ghzLMH2eIPQyh85iglCaQwg8Y8z4,2498
5
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
6
- seleniumbase/__version__.py,sha256=pMAS-quZG7eJq-UJj2_PwHtJ6UFU5P25fHqLxADwCbM,46
6
+ seleniumbase/__version__.py,sha256=-yI_EbTAoSA-4bx2PJ3MMzIxhYRoE314euG41GQuyRg,46
7
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
9
9
  seleniumbase/behave/behave_sb.py,sha256=guLihFsr1uJ4v2AR3r3Vy_BTeHrHwy2JEJxhp-MVnZA,59872
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
36
36
  seleniumbase/console_scripts/sb_recorder.py,sha256=DH-n2fN7N9qyHMl7wjtn8MiliBgfw-1kwgmfg1GUuhk,10772
37
37
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
39
- seleniumbase/core/browser_launcher.py,sha256=CgGWnRbwY1l_364yLlu-OSH2KG3MDS3W7C2yPfkIxOc,247485
39
+ seleniumbase/core/browser_launcher.py,sha256=0NUGq4IdmS3L0vW7PW3RZZpiPr4468g5umtTGSZgLho,247484
40
40
  seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
41
41
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
42
42
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
@@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
137
137
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
138
138
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
140
- seleniumbase-4.40.0.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
141
- seleniumbase-4.40.0.dist-info/METADATA,sha256=RHyEIu3Afr4QxFoM3wW4jE_wEVLXYdtSaW7SfNBJMjw,87335
142
- seleniumbase-4.40.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
- seleniumbase-4.40.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.40.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.40.0.dist-info/RECORD,,
140
+ seleniumbase-4.40.1.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
141
+ seleniumbase-4.40.1.dist-info/METADATA,sha256=uBB3zk9j5RzNQikjWZtVebswfSe5W1SYxsegKY9TBaA,87295
142
+ seleniumbase-4.40.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
+ seleniumbase-4.40.1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.40.1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.40.1.dist-info/RECORD,,