Skip to main content

Python bindings for proton vpn's cli.

Project description

protonne

Python bindings for proton vpn's linux cli.

Installation

Install with:

pip install protonne

NOTE: This package requires that you have a Proton VPN account and that you've installed and set up the Proton VPN Linux CLI.

Usage

from protonne import Proton
proton = Proton()
proton.connect_fastest()
proton.enable_permanent_killswitch()

# If you want to execute the commands "silently", you can set 'capture_output' to True in the class constructor or after creation through the 'capture_output' property
proton.capture_output = True
proton.capture_output = False
# Almost every function returns an 'Output' object that contains 3 fields: 'return_code', 'stdout', and 'stderr'.
# When 'capture_output' is True, 'stdout' and 'stderr' can be accessed through the 'Output' object, otherwise they are empty strings.
# The 'capturing_output()' context manager can also be used.
with proton.capturing_output():
    output = proton.connect_random()
    print(output.stdout)

# Once you're connected, info about the connection is available through the 'connection' property.
# Accessing this property invokes the cli's 'status' command and parses the output into a 'Connection' object.
# For performance, it's best to store this property in a local variable for repeated access until you need an updated 'Connection' object.
ip_history = []
connection = proton.connection
ip_history.append((connection.IP, connection.server.name))
proton.connect_random()
connection = proton.connection
ip_history.append((connection.IP, connection.server.name))
proton.connect(server=ip_history[0][1])

# Full 'Connection' annotation:
connection.IP: str
connection.killswitch.active: bool
connection.killswitch.on: bool
connection.killswitch.permanent: bool
connection.raw: str # The raw output string of the 'status' cli command
connection.server.name: str
connection.server.country: str
connection.server.protocol: str
connection.server.load: str
connection.server.plan: str
connection.server.features: str | None
connection.time: str

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protonne-1.0.0.tar.gz (4.4 kB view hashes)

Uploaded Source

Built Distribution

protonne-1.0.0-py3-none-any.whl (5.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page