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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file protonne-1.0.0.tar.gz.

File metadata

  • Download URL: protonne-1.0.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for protonne-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4910f368ce164078571a11126022b794abd47f7e5a1d073c060a3a8bd1bd0de9
MD5 5de0b22b31e327bf5c0ac96d6da8225a
BLAKE2b-256 a30e6930e052f20eb350600a79105ec2e8fdcbe676d3ab6f9fae24391f852fff

See more details on using hashes here.

File details

Details for the file protonne-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: protonne-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for protonne-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5dc9ab686167ee57a8d24fd91814c70e4b8739f64f9c870358263e8651eb2134
MD5 5186021fbf4262727d0e2d6a48cca591
BLAKE2b-256 a4bf934faea6af2862743f8a6157a93f2ab9d16560be509d2f8c609fc9a588a3

See more details on using hashes here.

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