Skip to main content

Python library for Vultr API

Project description

Python Library for Vultr API

The unofficial python library for the Vultr API.

CI PyPI

Python 3.6.8

pre-commit

security: bandit Imports: isort Code style: black

Installation

pip install -U pyvultr

Usage

Configuration

from pyvultr import VultrV2

# Set your api key or we'll get it from env `VULTR_API_KEY`.
VULTR_API_KEY = '...'

v2 = VultrV2(api_key=VULTR_API_KEY)

Get Account

account = v2.account.get()
print(account)

List Region

regions: VultrPagination[BackupItem] = v2.region.list()

# Here `regions` is a VultrPagination object, you can use it like list, eg: get by index or slice.
# VultrPagination will help you automatically get the next page when you need it.

print(regions[3:5])
# >>> [RegionItem(id='dfw', country='US', options=['ddos_protection'], continent='North America', city='Dallas'), RegionItem(id='ewr', country='US', options=['ddos_protection', 'block_storage'], continent='North America', city='New Jersey')]

print(regions[12])
# >>> RegionItem(id='ord', country='US', options=['ddos_protection'], continent='North America', city='Chicago')

# Of course you can use `for` to iterate all items.
# But be careful, it will cause a lot of requests if it's has a lot of data.
for region in regions:
    print(region)

# A smarter way to iterate is to determine the number of iterations you want.
smart_regions: VultrPagination[RegionItem] = v2.region.list(capacity=3)
for region in smart_regions:
    print(region)
# >>> RegionItem(id='ams', country='NL', options=['ddos_protection'], continent='Europe', city='Amsterdam')
# >>> RegionItem(id='atl', country='US', options=['ddos_protection'], continent='North America', city='Atlanta')
# >>> RegionItem(id='cdg', country='FR', options=['ddos_protection'], continent='Europe', city='Paris')

# At last, you can get all data just like calling attributes (better programming experience if you use IDE):
first_region: RegionItem = regions.first()
print(first_region.country, first_region.city)
# >>> NL Amsterdam

CLI

PyVultr also provides a command line interface.
It's a simple wrapper of the python library using Fire, and it has a beautiful output by using Pygments.
It registered a command pyvultr in the system, so you can just type pyvultr to use it:

# please setup Your API Key first:
# you can generate your API Key from https://my.vultr.com/settings/#settingsapi
# export VULTR_API_KEY="..."

# show help by type `pyvultr`
$ pyvultr

pyvultr cli usage is very similar to the python library usage. let's explain this with get account information api :

In Python:

from pyvultr import VultrV2

# here we get api key from env `VULTR_API_KEY`
VultrV2().account.get()
>>> AccountInfo(name='test man', email='test@xxx.xxx', acls=['manage_users', 'subscriptions_view', 'subscriptions', 'billing', 'support', 'provisioning', 'dns', 'abuse', 'upgrade', 'firewall', 'alerts', 'objstore', 'loadbalancer', 'vke'], balance=11.2, pending_charges=3.4, last_payment_date='2019-07-16T05:19:50+00:00', last_payment_amount=-10)

In CLI:

$ pyvultr account get
{
    "name": "test man",
    "email": "test@xxx.xxx",
    "acls": [
        "manage_users",
        "subscriptions_view",
        "subscriptions",
        "billing",
        "support",
        "provisioning",
        "dns",
        "abuse",
        "upgrade",
        "firewall",
        "alerts",
        "objstore",
        "loadbalancer",
        "vke"
    ],
    "balance": 11.2,
    "pending_charges": 3.4,
    "last_payment_date": "2019-07-16T05:19:50+00:00",
    "last_payment_amount": -10
}

Actually, we have a beautiful output:

CLI Example

Testing

python -m pytest -v

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

pyvultr-0.1.4.tar.gz (38.5 kB view details)

Uploaded Source

Built Distribution

pyvultr-0.1.4-py3-none-any.whl (56.9 kB view details)

Uploaded Python 3

File details

Details for the file pyvultr-0.1.4.tar.gz.

File metadata

  • Download URL: pyvultr-0.1.4.tar.gz
  • Upload date:
  • Size: 38.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.6.8 Darwin/21.1.0

File hashes

Hashes for pyvultr-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3f1889491886a0582ff307275508424024c200592cb83112ed86b4a3c5938efc
MD5 f24008ffa315e8614d45fc4f2c327648
BLAKE2b-256 a0fdff00b4380eea7bf681c945cb44591075a7114fefd16fb1564a55ed241aad

See more details on using hashes here.

File details

Details for the file pyvultr-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pyvultr-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 56.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.6.8 Darwin/21.1.0

File hashes

Hashes for pyvultr-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 346d870335b679e71399bcb5ddf6aaea69526366fed3b5e13cb7292bf3ea66d4
MD5 36053fbed8b28d165c65ac3fd9c7f03a
BLAKE2b-256 387bfa71f0848b521fc6bc6899ed6a46b2a8f6109079d1c72fc106ec5606da65

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