bowser/main.py
Benedikt Willi c9ef5e5c44 Refactor test files to remove unnecessary imports and improve readability
- Removed unused imports from various test files to streamline code.
- Cleaned up whitespace in test cases for better consistency.
- Updated dependency management in `uv.lock` to reflect changes in optional dependencies.
- Ensured all tests maintain functionality while enhancing clarity and organization.
2026-01-12 10:22:34 +01:00

47 lines
1.3 KiB
Python

"""Entry point for Bowser browser."""
import argparse
import logging
from src.browser.browser import Browser
def _parse_args():
parser = argparse.ArgumentParser(prog="bowser", description="Bowser educational browser")
parser.add_argument("url", nargs="?", default=None, help="URL to open (optional, defaults to startpage)")
parser.add_argument("--debug", action="store_true", help="Enable debug output (alias for --log-level=DEBUG)")
parser.add_argument(
"--log-level",
choices=["ERROR", "WARNING", "INFO", "DEBUG"],
default="INFO",
help="Set logging level",
)
return parser.parse_args()
def _configure_logging(args):
level = logging.DEBUG if args.debug else getattr(logging, args.log_level)
logging.basicConfig(
level=level,
format="%(asctime)s %(name)s %(levelname)s: %(message)s",
datefmt="%H:%M:%S",
)
def main():
args = _parse_args()
_configure_logging(args)
browser = Browser()
# Enable debug mode in chrome if --debug flag is set
if args.debug:
browser.chrome.debug_mode = True
# If no URL provided, use startpage
url = args.url if args.url else "about:startpage"
browser.new_tab(url)
browser.run()
if __name__ == "__main__":
main()