Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[py] Fix installing most of the data from source distributions #15128

Merged
merged 7 commits into from
Jan 23, 2025

Conversation

mgorny
Copy link
Contributor

@mgorny mgorny commented Jan 21, 2025

User description

Description

Change namespaces to true to fix installing
selenium.webdriver.common.devtools.* packages, and fix package-data to fix installing .js and .json data files. The latter would specify a non-existing selenium_package package name -- instead, specify * to apply it to all Python packages found.

With these changes, the result of installing the source distribution is almost identical to the result of installing the wheel. One remaining problem is that selenium-manager is not included -- my guess is that there is no logic copying the built Rust executable into the expected location.

Another problem is that these changes do not work when installing from a VCS checkout -- since all the relevant data files are explicitly excluded by .gitignore and that takes precedence over data-files. However, this was broken before, so it should not really matter.

Motivation and Context

Fixes #15125 -- install from source distribution resulting in missing data files

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

Bug fix


Description

  • Enabled namespaces to fix package installation issues.

  • Updated package-data to include .js and .json files.

  • Resolved discrepancies between source distribution and wheel installation.

  • Addressed missing data files during source distribution installation.


Changes walkthrough 📝

Relevant files
Bug fix
pyproject.toml
Fix package and data file installation issues                       

py/pyproject.toml

  • Changed namespaces to true to fix package installation.
  • Updated package-data to apply to all Python packages.
  • Ensured inclusion of .py, .rst, .json, and .xpi files.
  • +2/-2     

    Need help?
  • Type /help how to ... in the comments thread for any question about Qodo Merge usage.
  • Check out the documentation for more information.
  • Change `namespaces` to true to fix installing
    `selenium.webdriver.common.devtools.*` packages, and fix `package-data`
    to fix installing `.js` and `.json` data files.  The latter would
    specify a non-existing `selenium_package` package name -- instead,
    specify `*` to apply it to all Python packages found.
    
    With these changes, the result of installing the source distribution is
    almost identical to the result of installing the wheel.  One remaining
    problem is that `selenium-manager` is not included -- my guess is that
    there is no logic copying the built Rust executable into the expected
    location.
    
    Another problem is that these changes do not work when installing from
    a VCS checkout -- since all the relevant data files are explicitly
    excluded by `.gitignore` and that takes precedence over `data-files`.
    However, this was broken before, so it should not really matter.
    
    Fixes SeleniumHQ#15125
    @CLAassistant
    Copy link

    CLAassistant commented Jan 21, 2025

    CLA assistant check
    All committers have signed the CLA.

    Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Package Data

    The wildcard "*" for package-data is very broad and might include unnecessary files. Consider being more specific about which packages need these data files.

    "*" = [
        "*.py",
        "*.rst",
        "*.json",
        "*.xpi",

    Copy link
    Contributor

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    Possible issue
    Fix missing array closing bracket

    Consider adding a closing bracket for the package-data array. The current
    configuration is missing the closing bracket for the array of file patterns.

    py/pyproject.toml [56-61]

     [tool.setuptools.package-data]
     "*" = [
         "*.py",
         "*.rst",
         "*.json",
         "*.xpi",
    +]
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: The suggestion correctly identifies a critical syntax error in the TOML file where the array is not properly closed, which could cause package configuration issues and build failures.

    9

    @mgorny
    Copy link
    Contributor Author

    mgorny commented Jan 21, 2025

    That linter seems to not "see" the whole file?

    @VietND96
    Copy link
    Member

    This is source dist is built from this PR https://test.pypi.org/project/selenium/4.29.0.202501211759/#files
    @mgorny, can you double check this before we release a patch?

    @mgorny
    Copy link
    Contributor Author

    mgorny commented Jan 21, 2025

    Yep, I can confirm it looks good (modulo what was said above):

     ----
     Name
    -selenium-4.28.0.dist-info/LICENSE
    -selenium-4.28.0.dist-info/METADATA
    -selenium-4.28.0.dist-info/RECORD
    -selenium-4.28.0.dist-info/WHEEL
    +selenium-4.29.0.202501211759.dist-info/LICENSE
    +selenium-4.29.0.202501211759.dist-info/METADATA
    +selenium-4.29.0.202501211759.dist-info/RECORD
    +selenium-4.29.0.202501211759.dist-info/top_level.txt
    +selenium-4.29.0.202501211759.dist-info/WHEEL
     selenium/common/exceptions.py
     selenium/common/__init__.py
     selenium/__init__.py
    @@ -265,9 +266,7 @@ selenium/webdriver/common/fedcm/dialog.p
     selenium/webdriver/common/fedcm/__init__.py
     selenium/webdriver/common/__init__.py
     selenium/webdriver/common/keys.py
    -selenium/webdriver/common/linux/selenium-manager
     selenium/webdriver/common/log.py
    -selenium/webdriver/common/macos/selenium-manager
     selenium/webdriver/common/mutation-listener.js
     selenium/webdriver/common/options.py
     selenium/webdriver/common/print_page_options.py
    @@ -278,7 +277,6 @@ selenium/webdriver/common/timeouts.py
     selenium/webdriver/common/utils.py
     selenium/webdriver/common/virtual_authenticator.py
     selenium/webdriver/common/window.py
    -selenium/webdriver/common/windows/selenium-manager.exe
     selenium/webdriver/edge/__init__.py
     selenium/webdriver/edge/options.py
     selenium/webdriver/edge/remote_connection.py

    @VietND96
    Copy link
    Member

    @diemol, the fix is verified and ready for patch 4.28.1

    @VietND96 VietND96 requested a review from diemol January 22, 2025 04:54
    @VietND96
    Copy link
    Member

    @mgorny, can you also check this source dist? https://test.pypi.org/project/selenium/4.29.0.202501230540/#files

    @VietND96
    Copy link
    Member

    Looks like it works

    % python -m zipfile --list selenium-4.28.1-py3-none-any.whl | grep manager
    selenium/webdriver/common/linux/selenium-manager 1980-01-01 00:00:00      5445056
    selenium/webdriver/common/macos/selenium-manager 1980-01-01 00:00:00      8060816
    selenium/webdriver/common/selenium_manager.py  1980-01-01 00:00:00         5335
    selenium/webdriver/common/windows/selenium-manager.exe 1980-01-01 00:00:00      3691008
    

    @VietND96
    Copy link
    Member

    @mgorny, if having time, can you do one more check in the latest source dist with new changes before merging the PR and release patch.

    Signed-off-by: Viet Nguyen Duc <[email protected]>
    @VietND96 VietND96 merged commit 0f497d7 into SeleniumHQ:trunk Jan 23, 2025
    17 checks passed
    @mgorny
    Copy link
    Contributor Author

    mgorny commented Jan 23, 2025

    @mgorny, can you also check this source dist? https://test.pypi.org/project/selenium/4.29.0.202501230540/#files

    This one seems broken to me:

    $ python -m build -w
    * Creating isolated environment: venv+pip...
    * Installing packages in isolated environment:
      - setuptools
      - setuptools-rust
    * Getting build dependencies for wheel...
    running egg_info
    creating selenium.egg-info
    writing selenium.egg-info/PKG-INFO
    writing dependency_links to selenium.egg-info/dependency_links.txt
    writing requirements to selenium.egg-info/requires.txt
    writing top-level names to selenium.egg-info/top_level.txt
    writing manifest file 'selenium.egg-info/SOURCES.txt'
    reading manifest file 'selenium.egg-info/SOURCES.txt'
    adding license file 'LICENSE'
    writing manifest file 'selenium.egg-info/SOURCES.txt'
    * Building wheel...
    running bdist_wheel
    running build
    running build_py
    creating build/lib.linux-x86_64-cpython-312/selenium
    copying selenium/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium
    copying selenium/types.py -> build/lib.linux-x86_64-cpython-312/selenium
    creating build/lib.linux-x86_64-cpython-312/selenium/common
    copying selenium/common/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/common
    copying selenium/common/exceptions.py -> build/lib.linux-x86_64-cpython-312/selenium/common
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver
    copying selenium/webdriver/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/chrome
    copying selenium/webdriver/chrome/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chrome
    copying selenium/webdriver/chrome/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chrome
    copying selenium/webdriver/chrome/remote_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chrome
    copying selenium/webdriver/chrome/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chrome
    copying selenium/webdriver/chrome/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chrome
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/chromium
    copying selenium/webdriver/chromium/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chromium
    copying selenium/webdriver/chromium/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chromium
    copying selenium/webdriver/chromium/remote_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chromium
    copying selenium/webdriver/chromium/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chromium
    copying selenium/webdriver/chromium/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/chromium
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/action_chains.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/alert.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/by.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/desired_capabilities.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/driver_finder.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/keys.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/log.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/print_page_options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/proxy.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/selenium_manager.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/timeouts.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/utils.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/virtual_authenticator.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/common/window.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/edge
    copying selenium/webdriver/edge/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/edge
    copying selenium/webdriver/edge/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/edge
    copying selenium/webdriver/edge/remote_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/edge
    copying selenium/webdriver/edge/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/edge
    copying selenium/webdriver/edge/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/edge
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/firefox_binary.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/firefox_profile.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/remote_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/firefox/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/ie
    copying selenium/webdriver/ie/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/ie
    copying selenium/webdriver/ie/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/ie
    copying selenium/webdriver/ie/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/ie
    copying selenium/webdriver/ie/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/ie
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/bidi_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/client_config.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/command.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/errorhandler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/fedcm.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/file_detector.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/locator_converter.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/mobile.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/remote_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/script_key.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/shadowroot.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/switch_to.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/utils.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/webelement.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/websocket_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    copying selenium/webdriver/safari/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    copying selenium/webdriver/safari/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    copying selenium/webdriver/safari/permissions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    copying selenium/webdriver/safari/remote_connection.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    copying selenium/webdriver/safari/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    copying selenium/webdriver/safari/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/safari
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/abstract_event_listener.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/color.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/event_firing_webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/events.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/expected_conditions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/relative_locator.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/select.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/ui.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    copying selenium/webdriver/support/wait.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/support
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/webkitgtk
    copying selenium/webdriver/webkitgtk/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/webkitgtk
    copying selenium/webdriver/webkitgtk/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/webkitgtk
    copying selenium/webdriver/webkitgtk/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/webkitgtk
    copying selenium/webdriver/webkitgtk/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/webkitgtk
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/wpewebkit
    copying selenium/webdriver/wpewebkit/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/wpewebkit
    copying selenium/webdriver/wpewebkit/options.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/wpewebkit
    copying selenium/webdriver/wpewebkit/service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/wpewebkit
    copying selenium/webdriver/wpewebkit/webdriver.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/wpewebkit
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/action_builder.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/input_device.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/interaction.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/key_actions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/key_input.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/mouse_button.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/pointer_actions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/pointer_input.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/wheel_actions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    copying selenium/webdriver/common/actions/wheel_input.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/actions
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/bidi
    copying selenium/webdriver/common/bidi/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/bidi
    copying selenium/webdriver/common/bidi/cdp.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/bidi
    copying selenium/webdriver/common/bidi/console.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/bidi
    copying selenium/webdriver/common/bidi/script.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/bidi
    copying selenium/webdriver/common/bidi/session.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/bidi
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/fedcm
    copying selenium/webdriver/common/fedcm/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/fedcm
    copying selenium/webdriver/common/fedcm/account.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/fedcm
    copying selenium/webdriver/common/fedcm/dialog.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/fedcm
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/accessibility.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/animation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/audits.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/autofill.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/background_service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/bluetooth_emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/browser.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/cache_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/cast.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/console.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/css.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/database.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/device_access.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/device_orientation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/dom.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/dom_debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/dom_snapshot.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/dom_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/event_breakpoints.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/extensions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/fed_cm.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/fetch.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/file_system.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/headless_experimental.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/heap_profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/indexed_db.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/input_.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/inspector.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/io.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/layer_tree.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/log.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/media.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/memory.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/network.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/overlay.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/page.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/performance.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/performance_timeline.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/preload.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/pwa.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/runtime.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/schema.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/security.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/service_worker.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/system_info.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/target.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/tethering.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/tracing.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/util.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/web_audio.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v130/web_authn.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/accessibility.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/animation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/audits.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/autofill.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/background_service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/bluetooth_emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/browser.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/cache_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/cast.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/console.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/css.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/database.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/device_access.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/device_orientation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/dom.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/dom_debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/dom_snapshot.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/dom_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/event_breakpoints.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/extensions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/fed_cm.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/fetch.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/file_system.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/headless_experimental.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/heap_profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/indexed_db.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/input_.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/inspector.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/io.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/layer_tree.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/log.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/media.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/memory.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/network.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/overlay.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/page.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/performance.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/performance_timeline.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/preload.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/pwa.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/runtime.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/schema.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/security.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/service_worker.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/system_info.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/target.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/tethering.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/tracing.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/util.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/web_audio.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v131/web_authn.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/accessibility.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/animation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/audits.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/autofill.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/background_service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/bluetooth_emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/browser.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/cache_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/cast.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/console.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/css.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/database.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/device_access.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/device_orientation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/dom.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/dom_debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/dom_snapshot.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/dom_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/event_breakpoints.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/extensions.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/fed_cm.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/fetch.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/file_system.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/headless_experimental.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/heap_profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/indexed_db.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/input_.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/inspector.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/io.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/layer_tree.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/log.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/media.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/memory.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/network.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/overlay.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/page.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/performance.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/performance_timeline.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/preload.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/pwa.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/runtime.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/schema.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/security.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/service_worker.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/system_info.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/target.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/tethering.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/tracing.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/util.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/web_audio.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v132/web_authn.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    creating build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/__init__.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/accessibility.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/animation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/application_cache.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/audits.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/background_service.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/browser.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/cache_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/cast.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/console.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/css.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/database.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/device_orientation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/dom.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/dom_debugger.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/dom_snapshot.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/dom_storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/emulation.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/fetch.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/headless_experimental.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/heap_profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/indexed_db.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/input_.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/inspector.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/io.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/layer_tree.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/log.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/media.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/memory.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/network.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/overlay.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/page.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/performance.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/profiler.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/runtime.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/schema.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/security.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/service_worker.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/storage.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/system_info.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/target.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/tethering.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/tracing.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/util.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/web_audio.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    copying selenium/webdriver/common/devtools/v85/web_authn.py -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    running egg_info
    writing selenium.egg-info/PKG-INFO
    writing dependency_links to selenium.egg-info/dependency_links.txt
    writing requirements to selenium.egg-info/requires.txt
    writing top-level names to selenium.egg-info/top_level.txt
    reading manifest file 'selenium.egg-info/SOURCES.txt'
    adding license file 'LICENSE'
    writing manifest file 'selenium.egg-info/SOURCES.txt'
    copying selenium/py.typed -> build/lib.linux-x86_64-cpython-312/selenium
    copying selenium/webdriver/common/mutation-listener.js -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common
    copying selenium/webdriver/firefox/webdriver_prefs.json -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/firefox
    copying selenium/webdriver/remote/findElements.js -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/getAttribute.js -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/remote/isDisplayed.js -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/remote
    copying selenium/webdriver/common/devtools/v130/py.typed -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v130
    copying selenium/webdriver/common/devtools/v131/py.typed -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v131
    copying selenium/webdriver/common/devtools/v132/py.typed -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v132
    copying selenium/webdriver/common/devtools/v85/py.typed -> build/lib.linux-x86_64-cpython-312/selenium/webdriver/common/devtools/v85
    running build_ext
    running build_rust
    cargo rustc --lib --message-format=json-render-diagnostics --manifest-path Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib --
    error: the package 'selenium-manager' does not contain this feature: pyo3/extension-module
    error: `cargo rustc --lib --message-format=json-render-diagnostics --manifest-path Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib --` failed with code 101
    
    ERROR Backend subprocess exited when trying to invoke build_wheel
    

    @VietND96
    Copy link
    Member

    Oops, looks like it needs Cargo.toml change also https://stackoverflow.com/a/71757467/14532601
    So, we must remove that config as of now?

    @VietND96
    Copy link
    Member

    @mgorny, sorry for disturbing last minute, but package 4.28.1 was already out with this error. Do you have any workaround from your end to remove those 2 lines from pyproject.toml? Or we need a commit to remove it and release 4.28.2?

    @mgorny mgorny deleted the fix-install-data branch January 24, 2025 06:49
    @mgorny
    Copy link
    Contributor Author

    mgorny commented Jan 24, 2025

    @mgorny, sorry for disturbing last minute, but package 4.28.1 was already out with this error. Do you have any workaround from your end to remove those 2 lines from pyproject.toml? Or we need a commit to remove it and release 4.28.2?

    Yes, we build selenium-manager separately, so it's fine for me. However, it will fail for users who do, e.g.:

    pip install --no-binary selenium selenium
    

    But I don't have a stake here, so it's up to you.

    @kbipinkumar
    Copy link

    Oops, looks like it needs Cargo.toml change also https://stackoverflow.com/a/71757467/14532601 So, we must remove that config as of now?

    any idea whether this will be fixed? i am encountering the build error as menetioned here while attempting to build python-selenium package from arch user repository.

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    [🐛 Bug]: 4.28.0 does not install Python package data when installing from source distribution
    4 participants