Skip to main content

Piapy

Python wrapper around the command line interface for The Private Internet Access Desktop Client. Intended to facilitate the operation of the PIA client from within Python.

Python 3.7, no additional dependencies.

Upload to Pypi

Installation

Use the package manager pip to install piapy.

pip install piapy

Usage

  • PIA Desktop client must be installed.

  • Command piactl must be available from your terminal. Try running piactl --version. Iif you get something like 2.0.1+04518 you are good to go.

    If it does not run, please check PIA Desktop: Command Line Interface documentation.

  • PIA client must be running to use the connect method.

Available Methods

  • regions() Returns list of strings with available servers.

    i.e.: ['us-florida', 'us-atlanta', 'us-houston', 'us-washington-dc', 'us-east', 'us-chicago', 'us-new-york-city', 'us-texas', 'us-west', ...]

  • region() Returns string of current selected server name.

    i.e. 'us-houston'

  • set_region(server='auto') Cause the client to connect to selected server next time it connects. If client is already connected will disconnect and connect to new selected server.

    • server (type: str)
      • 'auto': use client auto select feature to set server with least latency.
      • 'random': set a random server from the available list.
      • '[server name]': set the server to a specific name, must be in the available list.
  • connect(verbose=False, timeout=20) Cause the client to connect

    • verbose (type: bool) cause to display connecting status in stdout
    • timeout (type: int) will disconnect if connection not possible before timeout
  • disconnect() Cause client to disconnect

  • ip() Returns the current VPN IP address, if connected and the address is known

  • status() Returns client conection status.

    Disconnected, Connecting, StillConnecting, Connected, Interrupted, Reconnecting, StillReconnecting, DisconnectingToReconnect, Disconnecting

  • reset_settings() Resets settings to the defaults. As per the documentation this only resets daemon settings, no GUI settings.

  • set_debug_logging(value=False) Enable client debug logging.

Example

from piapy import PiaVpn

# Instantiate
vpn = PiaVpn()

# Get connection status
vpn.status() # equivalent to `piactl get connectionstate`

# Will connect to server, displaying status in stdout
vpn.connect(verbose=True, timeout=20)

# Disconnect
vpn.disconnect()

Contributing

Pull requests are welcome. Please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

About this software

The piapy software is a personal project. I have no prior or existing relationship with Private Internet Access

If you have any information regarding its software, you can visit them:

License

with MIT open source license.

Metadata

Release files for piapy 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for piapy 0.2.0
File Size Uploaded
piapy-0.2.0.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for piapy 0.2.0
File Interpreter ABI Platform
piapy-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.6 kB

Release files / piapy-0.2.0.tar.gz

Download URL piapy-0.2.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
cdf7f2e394c5eee353fcc6df15af3f232d6126fce639076d3f479ea9cea7515e
BLAKE2b-256 checksum
How to use checksums
8df42153300af658bfa2b094a0893bb2aea95f576057239a9263ff513b7d4931
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release files / piapy-0.2.0-py3-none-any.whl

Download URL piapy-0.2.0-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6188e03c1c5cf0cc0bf94f182700dc633646136529cc53c9238328bf34692cc
BLAKE2b-256 checksum
How to use checksums
3b5b4a253019cfe67e5ed2608a60b687ffc030d3b618ea7d2aea8dd975487ad4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page