Typographic apostrophes can lead to formatting or encoding issues in technical documents.
Straight quotes are preferred in source-controlled files to ensure consistency and portability.
Refactors the project to use `uv` for dependency management
instead of `poetry` and `requirements.txt`.
Updates `pyproject.toml` to remove unnecessary fields, and adds
`uv.lock` to specify exact versions of dependencies.
Updates the README with `uv` command to execute the application.
Adds retry logic to handle `ElementClickInterceptedException`.
This change enhances the robustness of element clicking by implementing a retry mechanism with a timeout.
It addresses the issue where clicks are sometimes intercepted (such as scrolling up and down on the page), preventing the action from succeeding.
Ability to further handle pop-up windows when login attempts are unsuccessful.
Modified the return value of the `keep_login_status` function to indicate whether the operation was successful or failed.
In case of a failure, no further command actions will be executed.
Updates the screen clearing function to provide a more robust cross-platform solution. It now attempts to reset text attributes on Windows and uses `shutil.which` to locate the `clear` command on Unix-like systems, falling back to ANSI escape codes if necessary.
This change improves the screen-clearing function, ensuring its effectiveness regardless of the operating system or available commands.
Refactors the code to use constants for EIP URL and HTML element IDs, improving code maintainability and readability.
This change replaces hardcoded strings with named constants, making it easier to update element identifiers if they change on the EIP website.
Adds validation to ensure that all required fields ("lang", "login_ID", "login_passwd", "company_ID") are present in the login_info section of the configuration file.
Raises a ValueError if any required field is missing, improving error handling and preventing potential issues
due to incomplete configuration.
Uses `tomllib` when available for Python 3.11+ and falls back to `tomli` for older versions.
This avoids deprecation warnings and ensures compatibility across different Python versions.
Introduces an example TOML configuration file.
This file defines the structure and default values for login-related settings, including language, login ID, password, and company ID.
Updates the ChromeDriver setup to use `webdriver_manager` instead of relying on a local executable. This ensures the correct ChromeDriver version is automatically downloaded and managed, improving reliability and reducing manual configuration.
Removes the now unnecessary `chromedriver.exe` from the `.gitignore` file.