import platform


def generate_user_agent(package_name: str, package_version: str) -> str:
    """Generate a user-agent string in the form <package info> <python info> <os info>.

    Parameters
    ----------
    package_name : str
        Name of the package to include in the user-agent string.
    package_version : str
        Version of the package to include in the user-agent string.

    Returns
    -------
    str
        User-agent string.
    """


    python_implementation = platform.python_implementation()
    python_version = platform.python_version()
    os_version = platform.platform()
    return f"{package_name}/{package_version} {python_implementation}/{python_version} ({os_version})"