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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4910f368ce164078571a11126022b794abd47f7e5a1d073c060a3a8bd1bd0de9
|
|
| MD5 |
5de0b22b31e327bf5c0ac96d6da8225a
|
|
| BLAKE2b-256 |
a30e6930e052f20eb350600a79105ec2e8fdcbe676d3ab6f9fae24391f852fff
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5dc9ab686167ee57a8d24fd91814c70e4b8739f64f9c870358263e8651eb2134
|
|
| MD5 |
5186021fbf4262727d0e2d6a48cca591
|
|
| BLAKE2b-256 |
a4bf934faea6af2862743f8a6157a93f2ab9d16560be509d2f8c609fc9a588a3
|