Add cookies to cookiejar and returns a merged CookieJar. :param cookiejar: CookieJar object to add the cookies to. :param cookies: Dictionary or CookieJar object to be added. :rtype: CookieJar
(
cookiejar: CookieJar, cookies: dict[str, str] | CookieJar | None
)
| 602 | |
| 603 | |
| 604 | def merge_cookies( |
| 605 | cookiejar: CookieJar, cookies: dict[str, str] | CookieJar | None |
| 606 | ) -> CookieJar: |
| 607 | """Add cookies to cookiejar and returns a merged CookieJar. |
| 608 | |
| 609 | :param cookiejar: CookieJar object to add the cookies to. |
| 610 | :param cookies: Dictionary or CookieJar object to be added. |
| 611 | :rtype: CookieJar |
| 612 | """ |
| 613 | if not isinstance(cookiejar, cookielib.CookieJar): # type: ignore[reportUnnecessaryIsInstance] # runtime guard |
| 614 | raise ValueError("You can only merge into CookieJar") |
| 615 | |
| 616 | if isinstance(cookies, dict): |
| 617 | cookiejar = cookiejar_from_dict(cookies, cookiejar=cookiejar, overwrite=False) |
| 618 | elif isinstance(cookies, cookielib.CookieJar): |
| 619 | if update_method := getattr(cookiejar, "update", None): |
| 620 | update_method(cookies) |
| 621 | else: |
| 622 | for cookie_in_jar in cookies: |
| 623 | cookiejar.set_cookie(cookie_in_jar) |
| 624 | |
| 625 | return cookiejar |
no test coverage detected