# subscribe_api.py
from typing import Any
from pybraries.subscription_helpers import sub_api
[docs]class Subscribe(object):
"""Class for libraries.io API for changing user's libraries.io subscriptions"""
[docs] def __init__(self):
pass
[docs] def list_subscribed(self) -> Any:
"""
Return a list of packages a user is subscribed to for release notifications.
Returns:
Dict with info for each package subscribed to at libraries.io.
"""
return sub_api("list_subscribed")
[docs] def subscribe(self, manager: str, package: str) -> str:
"""
Subscribe to receive notifications about new releases of a project.
Not working yet, but hope to include - possible bug at libraries.io:
include_prerelease: default = True. Include prerelease notifications.
Args:
manager: package manager name (e.g. PyPI).
package: package name.
Returns:
Subscription confirmation message.
"""
return str(sub_api("subscribe", manager, package))
[docs] def check_subscribed(self, manager: str, package: str) -> bool:
"""
Check if a user is subscribed to notifications for new project releases.
Args:
manager: package manager name (e.g. PyPI).
package: package name.
Returns:
True if subscribed to the package indicated, else False.
"""
return bool(sub_api("check_subscribed", manager, package))
[docs] def update_subscribe(
self, manager: str, package: str, include_prerelease: bool = True
) -> str:
"""
NOT IMPLEMENTED due to possible bug in libraries.io
Update the options for a subscription.
Args:
manager: package manager name (e.g. PyPI).
package: package name.
include_prerelease (bool): default = True. Include prerelease notifications.
Returns:
Update confirmation message.
"""
return str(sub_api("update_subscribe", manager, package, include_prerelease))
[docs] def unsubscribe(self, manager: str, package: str) -> str:
"""
Stop receiving release notifications from a project.
Args:
manager: package manager name (e.g. PyPI).
package: package name.
Returns:
Message confirming deleted or deletion unnecessary.
"""
return str(sub_api("delete_subscribe", manager, package))