{ "info": { "author": "NodePing", "author_email": "support@nodeping.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "# python-nodeping-api\n\nA Python2/3 library for managing checks, schedules, and contacts\n\n\n**Table of Contents**\n\n- [python-nodeping-api](#python-nodeping-api)\n - [General Usage](#general-usage)\n - [Installation](#installation)\n - [Verify API token](#verify-api-token)\n - [Checking validity](#checking-validity)\n - [Sample Code](#sample-code)\n - [Retrieving Account Info](#retrieving-account-info)\n - [Checks](#checks)\n - [Get Checks](#get-checks)\n - [Create Checks](#create-checks)\n - [Update Checks](#update-checks)\n - [Updating one](#updating-one)\n - [Updating many](#updating-many)\n - [Disable Checks](#disable-checks)\n - [Disable by Label](#disable-by-label)\n - [Disable by Target](#disable-by-target)\n - [Disable by Type](#disable-by-type)\n - [Disable All](#disable-all)\n - [Delete Checks](#delete-checks)\n - [Contacts](#contacts)\n - [Getting Contacts](#getting-contacts)\n - [Get All Contacts](#get-all-contacts)\n - [Get Contacts by Type](#get-contacts-by-type)\n - [Create a Contact](#create-a-contact)\n - [Update a Contact](#update-a-contact)\n - [Delete a Contact](#delete-a-contact)\n - [Resetting a Password](#resetting-a-password)\n - [Contact Groups](#contact-groups)\n - [Get Groups](#get-groups)\n - [Create Groups](#create-groups)\n - [Update Group](#update-group)\n - [Delete Group](#delete-group)\n - [Schedules](#schedules)\n - [Get Schedules](#get-schedules)\n - [Create Schedules](#create-schedules)\n - [Update Schedules](#update-schedules)\n - [Delete Schedules](#delete-schedules)\n - [Notifications](#notifications)\n - [Notification Examples](#notification-examples)\n - [Results](#results)\n - [Getting Check Results](#getting-check-results)\n - [Get Uptime](#get-uptime)\n - [Getting Monthly Uptime Since 2019-02](#getting-monthly-uptime-since-2019-02)\n - [Getting Daily Uptime In Time Range](#getting-daily-uptime-in-time-range)\n - [Current Events](#current-events)\n - [Information](#information)\n - [Get Probe Info](#get-probe-info)\n - [Get NY Probe Info](#get-ny-probe-info)\n - [Get Location Information](#get-location-information)\n - [Get North America Info](#get-north-america-info)\n\n\n\n\n\n## General Usage\n\nTo use the NodePing API with Python2/3, you are required to use your\nprovided API token. You can find your API key on your NodePing account\nunder `Account Settings \u2192 API`.\n\nYou can also optionally provide a Sub Account ID which can be found\nunder `Account Settings \u2192 SubAccounts` and you will see the ID by its\nname.\n\nYou can set these variables, for example, like so:\n\n``` python\ntoken = 'my-api-token'\ncustomerid = 'your-subaccount-id'\n```\n\n## Installation\n\nTo install this package, run:\n\n```\npip install nodeping-api\n```\n\n## Verify API token\n\nThis module lets you check if your token is valid and return info about\nyour account.\n\n### Checking validity\n\nThe name of this function is `is_valid()`\n\nThis simply returns `True` or raises an exception if the key is not\nvalid.\n\n#### Sample Code\n\n``` python\n>>> from nodeping_api import check_token\n\n>>> valid_token = check_token.is_valid(token)\n>>> print(valid_token)\nTrue\n```\n\nOr if your key is invalid\n\n``` python\n>>> valid_token = check_token.is_valid(token)\nFalse\n```\n\n### Retrieving Account Info\n\nThe name of this function is `info()`\n\nThis will return the contents from NodePing in a dictionary format. If\nthe token isn\u2019t valid, nothing will be returned.\n\nExample:\n\n``` python\nfrom nodeping_api import check_token\n\ninfo = check_token.info(token)\n```\n\nThis will return basic information about your account. Optionally, you\ncan do the same with a subaccount:\n\n``` python\nfrom nodeping_api import check_token\n\nsubacc_info = check_token.info(token, customerid=customerid)\n```\n\n## Checks\n\n### Get Checks\n\nGet checks on your NodePing account via the `get_checks.py` module.\n\nThis module will get all checks that are specified, whether enabled or\ndisabled (excluding `disabled_checks()`, which will only get disabled\nchecks)\n\nLets you gather:\n\n - All checks\n\n - Passing checks\n\n - Failing checks\n\n - Disabled checks\n\n - Last result\n\nGetting check info examples:\n\n``` python\nfrom nodeping_api import get_checks\n\n# Optionally set customerid to your subaccount ID\nquery_nodeping = get_checks.GetChecks(token)\n\n# Get all checks\nall = query_nodeping.all_checks()\n\n# Get passing checks\npassing = query_nodeping.passing_checks()\n\n# Get failing checks\nfailing = query_nodeping.failing_checks()\n\n# Get disabled checks\ndisabled = query_nodeping.disabled_checks()\n\n# Get last result\nlast = query_nodeping.last_result()\n\n\n# Get check by ID\nquery_nodeping = get_checks.GetChecks(token, checkid=_id)\ncheck = query_nodeping.get_by_id()\n```\n\n### Create Checks\n\nCreate checks on your NodePing account via the `create_check.py` module.\n\nThis module lets you create a check of any type and with your specified\nparameters.\n\nExample of creating an HTTP check:\n\n``` python\ndef http():\n\n contacts = [{\"contactkey\": {\"delay\": 0, \"schedule\": \"Days\"}}]\n loc = \"NAM\"\n webserver = \"https://example.com\"\n\n result = create_check.http_check(\n token, webserver, label=\"http example.com\", enabled=True, follow=True, runlocations=loc, notifications=contacts)\n\n pprint(result)\n```\n\nExample of creating a PUSH check:\n\n``` python\ndef push(token, contacts, region):\n fields = {\n \"apcupsd\": {\n \"name\": \"apcupsd\",\n \"min\": 1,\n \"max\": 1\n },\n \"load1min\": {\n \"name\": \"load.1min\",\n \"min\": \"0\",\n \"max\": \"4\"\n },\n \"load5min\": {\n \"name\": \"load.5min\",\n \"min\": \"0\",\n \"max\": \"2\"\n },\n \"memavail\": {\n \"name\": \"memavail\",\n \"min\": \"100\",\n \"max\": \"10000\"\n }\n }\n\n results = create_check.push_check(\n token,\n label=\"Test PUSH\",\n fields=fields,\n interval=1,\n runlocations=region,\n notifications=contacts\n )\n\n pprint(results)\n```\n\n### Update Checks\n\nUpdate checks on your NodePing account via the `update_checks.py`\nmodule.\n\nThis module lets you update one or many checks at once. To upate one\ncheck, you will have to supply the Check ID, the type of check, and the fields you want to\nchange. To update many, you will have to create a dict of Check IDs.\n\n#### Updating one\n\n``` python\nfrom nodeping_api import update_checks\n\ncheckid = '201205050153W2Q4C-0J2HSIRF'\nchecktype = 'PING'\nfields = {\"public\": False, \"interval\": 15}\n\ndata = update_checks.update(token, checkid, checktype, fields)\n```\n\nThe returned data will be the information about the check (with updated\nvalues) in a dictionary format.\n\n#### Updating many\n\n``` python\nfrom nodeping_api import update_checks\n\ncheckids = {'201205050153W2Q4C-0J2HSIRF': 'PING', '201205050153W2Q4C-4RZT8MLN': 'HTTP'}\nfields = {\"public\": False, \"interval\": 15}\n\ndata = update_checks.update_many(token, checkids, fields)\n```\n\nThe returned data will be the information about the checks (with updated\nvalues) in a dictionary format.\n\n### Disable Checks\n\nDisable checks on your NodePing account via the `disable_check.py`\nmodule.\n\nThis module lets you disable checks in various ways:\n\n - By label\n\n - By target\n\n - By type\n\n - All\n\nThis will not disable checks on subaccounts.\n\nSet disable to True to disable checks, False to enable. Checks will only\nbe enabled if they have been disabled via this method.\n\n\n\n#### Disable by Label\n\nSpecify the label of the check to be enabled/disabled\n\n``` python\nfrom nodeping_api import disable_check\n\nlabel = \"I dont need this\"\n\n# Disables the check\ndisable_check.disable_by_label(token, label, disable=True)\n```\n\n#### Disable by Target\n\nSpecify the Check ID of the check to be enabled/disabled\n\n``` python\nfrom nodeping_api import disable_check\n\ncheckid = '201205050153W2Q4C-0J2HSIRF'\n\n# Disables the check by ID\ndisable_check.disable_by_target(token, checkid, disable=True)\n```\n\n#### Disable by Type\n\nSpecify the TYPE of checks to be disabled (such as PING checks)\n\n``` python\nfrom nodeping_api import disable_check\n\n_type = 'PING'\n\n# Disables the checks by type PING\ndisable_check.disable_by_type(token, _type, disable=True)\n```\n\n#### Disable All\n\nThis disables all checks on the account\n\n``` python\nfrom nodeping_api import disable_check\n\n# Disables the checks by type PING\ndisable_check.disable_all(token, disable=True)\n\n# Disable all checks on subaccount\ndisable_check.disable_all(token, disable=True, customerid=subacc)\n```\n\n### Delete Checks\n\nDelete checks on your NodePing account via the `delete_check.py` module.\n\nThis module will only remove checks one at a time by supplying your\nCheck ID.\n\nExample:\n\n``` python\nfrom nodeping_api import delete_checks\n\ncheckid = '201205050153W2Q4C-0J2HSIRF'\n\ndata = delete_checks.remove(token, checkid)\n```\n\nSample data returned:\n\n`{'ok': True, 'id': '201205050153W2Q4C-0J2HSIRF'}`\n\nOr if the check does not exist:\n\n`{'error': 'Unable to find that check'}`\n\n## Contacts\n\n\n### Getting Contacts\n\nGet contacts on your NodePing account via the `contacts.py` module.\n\nThis module allows you to get all contacts on your account or by type\nsuch as sms, email, webhook.\n\n#### Get All Contacts\n\n``` python\nfrom nodeping_api import contacts\n\nall_contacts = contacts.get_all(token)\n```\n\nSample data returned:\n\n {\n \"201205050153W2Q4C-BKPGH\": {\n \"_id\": \"201205050153W2Q4C-BKPGH\",\n \"type\": \"contact\",\n \"customer_id\": \"201205050153W2Q4C\",\n \"name\": \"Foo Bar\",\n \"custrole\": \"owner\",\n \"addresses\": {\n \"K5SP9CQP\": {\n \"address\": \"foo@example.com\",\n \"status\": \"new\"\n }\n }\n }\n }\n\nWhen providing contacts for creating checks, the `K5SP9CQP` in this\nexample is the contact id you will need.\n\n#### Get Contacts by Type\n\n``` python\nfrom nodeping_api import contacts\n\ncontact_type = 'sms'\n\ncontacts_by_type = contacts.get_by_type(token, contact_type)\n```\n\n### Create a Contact\n\nCreate a new contact on your account. When creating an account, supply the name,\ncustrole (such as if they have view permissions or owner), and the addresses that\ncontact will use.\n\n``` python\n>>> from nodeping_api import contacts\n>>> from pprint import pprint\n\n>>> token = 'my-api-token'\n>>> newaddresses = ['me@example.com', 'me2@example.com', '1235558888']\n>>> name = \"my new contact\"\n\n>>> new_contact = contacts.create_contact(token, name=name, newaddresses=newaddresses)\n\npprint(new_contact)\n{'_id': '2019052211307H0IX-KR9CO',\n 'addresses': {'JMMARFHQ': {'accountsuppressall': False,\n 'address': 'me2@example.com'},\n 'NMYW1XC1': {'accountsuppressall': False,\n 'address': 'me@example.com'},\n 'P080YGYO': {'accountsuppressall': False,\n 'address': '1235558888'}},\n 'customer_id': '2019052211307H0IX',\n 'custrole': 'view',\n 'name': 'my new contact',\n 'sdomain': 'nodeping.com',\n 'type': 'contact'}\n```\n\n\n### Update a Contact\n\nYou can also update existing created contacts based on their contact ID. You can\nchange its name, role, add contact addresses, or modify existing ones. Note that\nwhen you are modifying existing contacts, you must supply the entire list of\ncontacts for that user. Missing entries will be removed.\n\nIn the example below, the updated contact is exactly the same as the contact\nin the create contact example, but with the addresses updated as well as some\nnew addresses added.\n\nhttps://nodeping.com/docs-api-contacts.html\n\n``` python\n>>> from nodeping_api import contacts\n>>> from pprint import pprint\n\n>>> token = 'my-api-token'\n>>> contact_id = \"2019052211307H0IX-KR9CO\"\n>>> newaddresses = ['me@example.com', 'me2@example.com', '1235558888']\n>>> addresses = {'JMMARFHQ': {'address': 'newme@example.com', 'accountsupressall': False}, 'NMYW1XC1': {'address': 'newme2@example.com', 'accountsupressall': False}, 'P080YGYO': {'address': '321444777', 'accountsuppressall': False}}\n\n>>> pprint(contacts.update_contact(token, contact_id, addresses=addresses, newaddresses=newaddresses))\n\n{'_id': '2019052211307H0IX-KR9CO',\n 'addresses': {'8XK9OGNW': {'accountsuppressall': False,\n 'address': 'me2@example.com'},\n 'CUSR6CTF': {'accountsuppressall': False,\n 'address': 'me@example.com'},\n 'JMMARFHQ': {'accountsuppressall': False,\n 'address': 'newme@example.com'},\n 'NMYW1XC1': {'accountsuppressall': False,\n 'address': 'newme2@example.com'},\n 'P080YGYO': {'accountsuppressall': False,\n 'address': '321444777'},\n 'VZ5HY05B': {'accountsuppressall': False,\n 'address': '1235558888'}},\n 'customer_id': '2019052211307H0IX',\n 'custrole': 'view',\n 'name': 'my new contact',\n 'sdomain': 'nodeping.com',\n 'type': 'contact'}\n```\n\n\n### Delete a Contact\n\nIf you no longer need a contact, you can simply delete it by specifying its ID\n\n``` python\nfrom nodeping_api import contacts\nfrom pprint import pprint\n\ntoken = 'my-api-token'\ncontact_id = \"2019052211307H0IX-KR9CO\"\n\ndeleted = contacts.delete_contact(token, contact_id)\n```\n\nWith the resulting output:\n\n``` python\n{'id': '2019052211307H0IX-KR9CO', 'ok': True}\n```\n\n\n### Resetting a Password\n\nYou can reset passwords for a contact by specifying their contact ID:\n\n``` python\nfrom nodeping_api import contacts\n\ntoken = 'my-api-token'\ncontact_id = '2019052211307H0IX-KR9CO'\n\nreset = 'contacts.reset_password(token, contact_id)\n```\n\nThis will send a new password to the email address associated with that contact.\n\n\n## Contact Groups\n\nManage contact groups on your NodePing account via the `group_contacts.py` module.\n\n\n\nThis module lets you manage contact groups in these ways:\n\n - Get contact groups\n\n - Create contact groups\n\n - Update contact groups\n\n - Delete contact groups\n\n### Get Groups\n\n``` python\nfrom nodeping_api import group_contacts\n\n# Get contact groups\ngroups = group_contacts.get_all(token)\n\n# Get contact groups with SubAccount ID\nsubaccount_id = \"your-subaccount-id\"\n\ngroups = group_contacts.get_all(token, customerid=subaccount_id)\n```\n\n### Create Groups\n\nTo create a contact group, a name for the group is required. You can optionally\nprovide members for the contact group in a list. The member will be the key in\nthe addresses field for each contact. For example, if your contact data is this:\n\n```\n {\n \"201205050153W2Q4C-BKPGH\": {\n \"_id\": \"201205050153W2Q4C-BKPGH\",\n \"type\": \"contact\",\n \"customer_id\": \"201205050153W2Q4C\",\n \"name\": \"Foo Bar\",\n \"custrole\": \"owner\",\n \"addresses\": {\n \"K5SP9CQP\": {\n \"address\": \"foo@example.com\",\n \"status\": \"new\"\n }\n }\n }\n }\n```\n\nThen the contact ID you need is \"K5SP9CQP\".\n\nExample:\n\n``` python\nfrom nodeping_api import group_contacts\n\nname = \"sample_group\"\nmy_members = [\"K5SP9CQP\", \"D3RF9NQT\"]\n\n# Create group without members\nempty_group = group_contacts.create_group(token, name)\n\n# Create group with members\nnew_group = group_contacts.create_group(token, name, members=my_members)\n```\n\n### Update Group\n\nUpdating the group is the same idea as creating a group.\n\nExample:\n\n``` python\nfrom nodeping_api import group_contacts\n\nname = \"sample_group\"\nnew_name = \"renamed\"\nmy_members = [\"K5SP9CQP\", \"D3RF9NQT\"]\n\n# Update group with new members\nupdated_group = group_contacts.update_group(token, name, members=my_members)\n\n# Rename a group\nrenamed = group_contacts.update_group(token, new_name)\n```\n\n### Delete Group\n\nTo delete the group, you need to provide the group id, which can be found\nwhen you get the groups.\n\nExample:\n\n``` python\nfrom nodeping_api import group_contacts\n\ngroup_id = \"201205050153W2Q4C-G-1ZIYU\"\n\n# Delete the group\ndeleted = group_contacts.delete_group(token, group_id)\n```\n\nThis will return a dictionary stating that the group was deleted:\n\n`{'id': '201205050153W2Q4C-G-1ZIYU', 'ok': True}`\n\nIf it failed, a dictionary with the key error will be gathered.\n\n\n## Schedules\n\nManage schedules on your NodePing account via the `schedules.py` module.\n\n\n\nThis module lets you manage checks in these ways:\n\n - Get schedules\n\n - Create schedules\n\n - Update schedules\n\n - Delete schedules\n\n### Get Schedules\n\n``` python\nfrom nodeping_api import schedules\n\n# Get all schedules\nschedules = schedules.get_schedules(token)\n\n# Get schedule by name\nweekend_schedule = schedules.get_schedules(token, schedule=\"Weekends\")\n```\n\n### Create Schedules\n\nTo create a schedule, you need to provide data for each day and what its\nschedule will be like.\n\n``` python\nfrom nodeping_api import schedules\n\ndata = {'data': {'friday': {'exclude': False, 'time1': '8:00', 'time2': '23:00'},\n 'monday': {'allday': True},\n 'saturday': {'exclude': False, 'time1': '6:00', 'time2': '18:00'},\n 'sunday': {'disabled': True},\n 'thursday': {'exclude': False, 'time1': '8:00', 'time2': '22:00'},\n 'tuesday': {'disabled': True},\n 'wednesday': {'exclude': True, 'time1': '18:30', 'time2': '20:30'}}}\n\nschedule_name = 'myschedule'\n\ncreated = schedules.create_schedule(token, data, schedule_name)\n```\n\n### Update Schedules\n\nUpdating schedules lets you update an entire day or a portion of it\n\n``` python\nfrom nodeping_api import schedules\n\ndata = {'data': {'saturday': {'exclude': False, 'time1': '6:00', 'time2': '18:00'},}}\n\nschedule_name = 'myschedule'\n\nupdated = schedules.update_schedule(token, data, schedule_name)\n```\n\n### Delete Schedules\n\nTo delete a schedule, just provide its name\n\n``` python\nfrom nodeping_api import schedules\n\nschedule_name = 'myschedule'\n\ndeleted = schedules.delete_schedule(token, schedule)\n```\n\n## Notifications\n\nGet notifications for your NodePing account via the `notifications.py` module.\n\nWhen getting notifications, you can limit how many you get by the number of hours,\nnumber of notifications, if you want to collect from subaccounts or not, and by\ncheck ID\n\n### Notification Examples\n\n\nGetting the last 100\n``` python\nfrom nodeping_api import notifications\n\ntoken = 'my-api-token\nlimit = 100\n\nlast_notifications = notifications.get_notifications(token, limit=limit)\n```\n\nGetting results for a check ID for the last 2 hours\n``` python\nfrom nodeping_api import notifications\n\ntoken = 'my-api-token\nspan = 2\ncheck_id = '201205050153W2Q4C-0J2HSIRF'\n\nlast_notifications = notifications.get_notifications(token, check_id=check_id, span=span)\n```\n\n\n## Results\n\nThis module lets you get results and uptime for different checks at optionally given\ntime durations. To get an idea of what the output will look like from the API, you\ncan visit the documentation that shows what outputs you will get:\n\nhttps://nodeping.com/docs-api-results.html\n\n\n### Getting Check Results\n\nGet the last 100 results for a check.\n\n``` python\nfrom nodeping_api import results\n\ntoken = 'my-api-token\ncheck_id = '201205050153W2Q4C-0J2HSIRF'\nlimit = 100\n\nlast_results = results.get_results(token, check_id, limit=limit)\n```\n\nYour output will consist of a list of dictionaries that will look like this:\n\n``` python\n[{\n \"_id\":\"201205050153W2Q4C-0J2HSIRF-1345313038648\",\n \"ci\":\"201205050153W2Q4C\",\n \"t\":\"DNS\",\n \"tg\":\"8.8.8.8\",\n \"th\":\"5\",\n \"i\":\"5\",\n \"ra\":\"1345313029252\",\n \"q\":\"caRRa3op0v\",\n \"s\":1345313038648,\n \"sc\":\"Success\",\n \"su\":true,\n \"rt\":77,\n \"e\":1345313038725,\n \"l\":{\"1345313038648\":\"ca\"}\n}]\n```\n\n### Get Uptime\n\nThis lets you get the uptime percentages for the specified check. The output\nwill be a dictionary of the last days/months and their uptime and downtime.\n\n### Getting Monthly Uptime Since 2019-02\n\nWith the API, monthly is the default interval, so you do not need to\nspecify \"monthly\" unless you want to.\n\n``` python\nfrom nodeping_api import results\nfrom pprint import pprint\n\ntoken = 'my-api-token\ncheck_id = '201205050153W2Q4C-0J2HSIRF'\n\npprint(results.get_uptime(token, check_id, start=\"2019-02\"))\n```\n\nWith the output:\n\n``` python\n{'2019-02': {'down': 2808090, 'enabled': 2419200000, 'uptime': 99.884},\n '2019-03': {'down': 41679682, 'enabled': 2678398201, 'uptime': 98.444},\n '2019-04': {'down': 4511825, 'enabled': 2592000000, 'uptime': 99.826},\n '2019-05': {'down': 764817, 'enabled': 2678359942, 'uptime': 99.971},\n '2019-06': {'down': 5762929, 'enabled': 2592000000, 'uptime': 99.778},\n '2019-07': {'down': 3585847, 'enabled': 2661778859, 'uptime': 99.865},\n 'total': {'down': 59113190, 'enabled': 15621737002, 'uptime': 99.622}}\n```\n\n### Getting Daily Uptime In Time Range\n\nYou can also get daily results on uptime. In addition to that, you can\nspecify the start/end dates. In this case, we will start on\n2019-07-01 and collect to 2019-07-15\n\n``` python\nfrom nodeping_api import results\nfrom pprint import pprint\n\ntoken = 'my-api-token\ncheck_id = '201205050153W2Q4C-0J2HSIRF'\n\nstart=\"2019-07-01\"\nend=\"2019-07-25\"\n\npprint(results.get_uptime(token, check_id, interval=\"days\", start=start, end=end))\n```\n\nWith the output:\n\n``` python\n{'2019-07-01': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-02': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-03': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-04': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-05': {'down': 140740, 'enabled': 86400000, 'uptime': 99.837},\n '2019-07-06': {'down': 417545, 'enabled': 86400000, 'uptime': 99.517},\n '2019-07-07': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-08': {'down': 144979, 'enabled': 86400000, 'uptime': 99.832},\n '2019-07-09': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-10': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-11': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-12': {'down': 699479, 'enabled': 86400000, 'uptime': 99.19},\n '2019-07-13': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n '2019-07-14': {'down': 0, 'enabled': 86400000, 'uptime': 100},\n 'total': {'down': 1402743, 'enabled': 1209600000, 'uptime': 99.884}}\n```\n\nNote that all the results you get will also have a total downtime\nfor that give time range.\n\n\n### Current Events\n\nRetrieves information about current \"events\" for checks. Events include down events \nand disabled checks. If you need a list of all checks with their passing/failing \nstate, please use the 'checks' list rather than this 'current' call.\n\n``` python\nfrom nodeping_api import results\n\ntoken = 'my-api-token\n\ncurrent = results.get_current(token)\n```\n\n\n## Information\n\nGet probe and location information via the `information.py` module.\n\n### Get Probe Info\n\nYou can get information about all probes or a specific probe.\nThis information mirrors what is available on our FAQ:\n\nhttps://nodeping.com/faq.html#ip-addresses\n\n\n#### Get NY Probe Info\n\n``` python\nfrom nodeping_api import information\nfrom pprint import pprint\n\ntoken = 'my-api-token'\nprobe = \"ny\"\n\nny_probe = information.get_probe(token, probe=probe)\n```\n\nWith the output:\n\n``` python\n{'country': 'US',\n 'ipv4': '66.23.202.26',\n 'ipv6': '2605:9f80:c000:127::2',\n 'location': 'ny',\n 'locationname': 'New York City, New York',\n 'region': 'nam',\n 'regionname': 'North America'}\n```\n\n### Get Location Information\n\nWith this function, you can get all probe information oa\ninformation about probes in a region.\n\n#### Get North America Info\n\n``` python\nfrom nodeping_api import information\nfrom pprint import pprint\n\ntoken = 'my-api-token'\nlocation = 'nam'\n\nnam_location = information.get_location(token, location=location)\n\n```\n\nWith the output:\n\n``` python\n{'locations': ['il',\n 'tx',\n 'nj',\n 'ga',\n 'ca',\n 'co',\n 'wa',\n 'ny',\n 'py',\n 'oh',\n 'ut',\n 'or',\n 'fl'],\n 'regionname': 'North America'}\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/NodePing/python-nodeping-api", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "nodeping-api", "package_url": "https://pypi.org/project/nodeping-api/", "platform": "", "project_url": "https://pypi.org/project/nodeping-api/", "project_urls": { "Homepage": "https://github.com/NodePing/python-nodeping-api" }, "release_url": "https://pypi.org/project/nodeping-api/0.9.9-2/", "requires_dist": null, "requires_python": "", "summary": "Python package for querying the NodePing API", "version": "0.9.9-2" }, "last_serial": 5920549, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "655e2fd9935d31e50d9a8aeee83a7aaa", "sha256": "196c9b0dfd3ac9ba3cee5d179f22cf0fb66923243b17c4ac75c4ac7db61fbe3c" }, "downloads": -1, "filename": "nodeping_api-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "655e2fd9935d31e50d9a8aeee83a7aaa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22319, "upload_time": "2019-07-08T18:43:39", "url": "https://files.pythonhosted.org/packages/21/01/92527c98145909453fba3fd92d86a9c1e5497c316d344f68cb2560f2fee7/nodeping_api-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49f8922f8ecf548506afcb7e35a16da0", "sha256": "037eb38302960148f3bacba5655295d6a4f6028f640d32f41ab575ceab01ed74" }, "downloads": -1, "filename": "nodeping_api-0.9.0.tar.gz", "has_sig": false, "md5_digest": "49f8922f8ecf548506afcb7e35a16da0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19844, "upload_time": "2019-07-08T18:43:44", "url": "https://files.pythonhosted.org/packages/98/88/53365a39ff4f1b01724dd7051f8f26a1d1e7604af1d3cb34497e2b533b88/nodeping_api-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "eb198c36ebe9eb3610b55c6269c47063", "sha256": "ee2e64d1aac1b76c9866d6d04fea2ab07650cd33e12fbc49f3ce428a43cbd25b" }, "downloads": -1, "filename": "nodeping_api-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "eb198c36ebe9eb3610b55c6269c47063", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22317, "upload_time": "2019-07-08T18:43:42", "url": "https://files.pythonhosted.org/packages/37/da/8e58430defd8283a03aa42c50655de31569ae8bd1b33d557455cc3159c40/nodeping_api-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e629a6f5d31621d613a056102816ce7", "sha256": "da03de05ae7fde1f21cb9a7dd66a4fa2a4fef990bb6ed6ba90d5d8cd64410cab" }, "downloads": -1, "filename": "nodeping_api-0.9.1.tar.gz", "has_sig": false, "md5_digest": "8e629a6f5d31621d613a056102816ce7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19847, "upload_time": "2019-07-08T18:43:46", "url": "https://files.pythonhosted.org/packages/ca/d2/74519a1d89f1de5bc8b60be08636ab3995b36dbde964a25caa58b132ffbf/nodeping_api-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "e240bff2f829d8bc9fd3215c62fa4594", "sha256": "f02281e81db056e6795729bf27e4ea5e5d9105024129a162c4dcb2840ea80a70" }, "downloads": -1, "filename": "nodeping_api-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e240bff2f829d8bc9fd3215c62fa4594", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23991, "upload_time": "2019-07-08T22:38:55", "url": "https://files.pythonhosted.org/packages/d3/10/c6e963b68bac10c6d23217991d4ec68faa8857f0a7e6553d9151e6bc1138/nodeping_api-0.9.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd66a92e252d4318b75620244df5ef58", "sha256": "403945f5e819a74328f04f5e2a182bea4fc4afd60808603d11bd1c542709b3ae" }, "downloads": -1, "filename": "nodeping_api-0.9.2.tar.gz", "has_sig": false, "md5_digest": "bd66a92e252d4318b75620244df5ef58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20070, "upload_time": "2019-07-08T22:38:57", "url": "https://files.pythonhosted.org/packages/8b/5f/53744cf3831d259936afc81aa07abf3ea9422eaceffe1c69f88ba4706ccf/nodeping_api-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "b660c98562f9283eaedca71e68f0ddbf", "sha256": "e2b05c3eb47b3da5799277d2e6e3388ce28ed3ac441db3d52c950923f50e9de3" }, "downloads": -1, "filename": "nodeping_api-0.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b660c98562f9283eaedca71e68f0ddbf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24285, "upload_time": "2019-07-13T21:19:05", "url": "https://files.pythonhosted.org/packages/54/e4/3b4edf11b25df6b8bb8e44eab3decb63acc48a7544ae7600d09c904dd158/nodeping_api-0.9.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9771effbdd9b7f171aee5f18e0fd145b", "sha256": "76637e278fa41b2e6cddec017ec262a764de36b2c5debc191d741341b1aca58e" }, "downloads": -1, "filename": "nodeping_api-0.9.3.tar.gz", "has_sig": false, "md5_digest": "9771effbdd9b7f171aee5f18e0fd145b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20142, "upload_time": "2019-07-13T21:19:08", "url": "https://files.pythonhosted.org/packages/54/dd/4c363fbbdbcb83993103481f8c66b0aaa7eea6815ec5f6f881b605dac3f5/nodeping_api-0.9.3.tar.gz" } ], "0.9.3-1": [ { "comment_text": "", "digests": { "md5": "513beb87a4554c8287a7205dbb3ffdd3", "sha256": "c5174b6ee0475070ab3792cc8b1c2dedfa42d6b71f6643b1bf1b062141187f68" }, "downloads": -1, "filename": "nodeping_api-0.9.3-1.tar.gz", "has_sig": false, "md5_digest": "513beb87a4554c8287a7205dbb3ffdd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20169, "upload_time": "2019-07-17T23:17:31", "url": "https://files.pythonhosted.org/packages/f7/b5/c8aa839a27f9caf9d46eca0fa8f26fd74bb3501b164852e418cdb4aa8c37/nodeping_api-0.9.3-1.tar.gz" }, { "comment_text": "", "digests": { "md5": "64381d11d1998b23fe6d030d355c154e", "sha256": "a73f3875bbf86cd8e2a8a3d5c252ed18e53ca9c8ba104aac25c2aaff0be1244a" }, "downloads": -1, "filename": "nodeping_api-0.9.3.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "64381d11d1998b23fe6d030d355c154e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24349, "upload_time": "2019-07-17T23:17:27", "url": "https://files.pythonhosted.org/packages/84/06/58f91cd36d4e93ebbdef37a7fc30f37ba7c23f9a4aab4d0f7edccab30579/nodeping_api-0.9.3.post1-py3-none-any.whl" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "355e38d9f2be154506993058dcd422eb", "sha256": "7931d69577093e2b490fbe980bef43abc1dc3dd352435ead1c7f6d0577233061" }, "downloads": -1, "filename": "nodeping_api-0.9.4-py3-none-any.whl", "has_sig": false, "md5_digest": "355e38d9f2be154506993058dcd422eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26066, "upload_time": "2019-07-22T22:51:14", "url": "https://files.pythonhosted.org/packages/7d/9f/273568850f67f413657efd49a3c1b05483d0aff443e2bda4f00115e65a82/nodeping_api-0.9.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc767e230bd6047dadb79de3661c6544", "sha256": "ec3f42be703f2ea58ec6070f872be17cdd71fbc051d1eddb6dd2b48f83c40c7d" }, "downloads": -1, "filename": "nodeping_api-0.9.4.tar.gz", "has_sig": false, "md5_digest": "dc767e230bd6047dadb79de3661c6544", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21113, "upload_time": "2019-07-22T22:51:24", "url": "https://files.pythonhosted.org/packages/7f/bd/dba40cfa2c4fb893272a96f0b23a21998834e6cdaf0609a63640ae16f631/nodeping_api-0.9.4.tar.gz" } ], "0.9.4-1": [ { "comment_text": "", "digests": { "md5": "b6afcd4869629187bde7928008933d57", "sha256": "4e69b82312a96383ec376ed085e0b3017881a6550cb8b3d318668a72ee2793f7" }, "downloads": -1, "filename": "nodeping_api-0.9.4-1.tar.gz", "has_sig": false, "md5_digest": "b6afcd4869629187bde7928008933d57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21109, "upload_time": "2019-07-22T22:51:19", "url": "https://files.pythonhosted.org/packages/22/56/cf288bda97517ce30900c8c23dddc3a5d463c0f029355dd10b17e96e7926/nodeping_api-0.9.4-1.tar.gz" }, { "comment_text": "", "digests": { "md5": "640e23ab1d3b168a299092ae2407bee8", "sha256": "c8ea7211b3c816fb25644a68d83a784aba8a263c69a9a9c5c0be0da797e35799" }, "downloads": -1, "filename": "nodeping_api-0.9.4.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "640e23ab1d3b168a299092ae2407bee8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26135, "upload_time": "2019-07-22T22:51:08", "url": "https://files.pythonhosted.org/packages/95/5b/2c616d11b24674fda92f016b2e2e25c2c09b22f50ef1a315441b53f42a05/nodeping_api-0.9.4.post1-py3-none-any.whl" } ], "0.9.4-2": [ { "comment_text": "", "digests": { "md5": "bbd1e9da63a93ac5105462902dbde889", "sha256": "6afc7236456bdaed495745c020a506c2d66276f611ff47408eabec5630e2dec5" }, "downloads": -1, "filename": "nodeping_api-0.9.4-2.tar.gz", "has_sig": false, "md5_digest": "bbd1e9da63a93ac5105462902dbde889", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21103, "upload_time": "2019-07-22T22:51:20", "url": "https://files.pythonhosted.org/packages/64/b1/23ac9328ebbe57924dbbaa0ed84396257da1e4b3ec249a5a299cebce300a/nodeping_api-0.9.4-2.tar.gz" }, { "comment_text": "", "digests": { "md5": "618f6b57122f8731d6b8dc00ede8b45b", "sha256": "737c09143df59dc22421f38608a8f67e5fec9c46cdd896ca8af94a158e640314" }, "downloads": -1, "filename": "nodeping_api-0.9.4.post2-py3-none-any.whl", "has_sig": false, "md5_digest": "618f6b57122f8731d6b8dc00ede8b45b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26124, "upload_time": "2019-07-22T22:51:10", "url": "https://files.pythonhosted.org/packages/1c/40/7c9767462370baab7ceef458a5567e41ca63d77e831cf27a2618013458a8/nodeping_api-0.9.4.post2-py3-none-any.whl" } ], "0.9.4-3": [ { "comment_text": "", "digests": { "md5": "009d30b8ee3eeca352c2233a3d429f3d", "sha256": "ed87bc88aa9c34b422eda7dc485e5104fd8059ab3c19f0b8503e8498139446cf" }, "downloads": -1, "filename": "nodeping_api-0.9.4-3.tar.gz", "has_sig": false, "md5_digest": "009d30b8ee3eeca352c2233a3d429f3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21098, "upload_time": "2019-07-22T22:51:22", "url": "https://files.pythonhosted.org/packages/82/2d/c50961d2f2a5e0d22d245194c021748ba6f5456728b48a14b5637769cedc/nodeping_api-0.9.4-3.tar.gz" }, { "comment_text": "", "digests": { "md5": "f039d779e072cd1447b81d1f97829e4a", "sha256": "fd2c1cef4d248c191ee196d0933d4c07ce342a3f5a9ba51f70b594beb4a79056" }, "downloads": -1, "filename": "nodeping_api-0.9.4.post3-py3-none-any.whl", "has_sig": false, "md5_digest": "f039d779e072cd1447b81d1f97829e4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26124, "upload_time": "2019-07-22T22:51:12", "url": "https://files.pythonhosted.org/packages/36/43/3086145cb7c337a8dc3bc3b3af52e2e2e0dc0ff5ed71fcff028e10a14109/nodeping_api-0.9.4.post3-py3-none-any.whl" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "681135c0530f0a644b3dfa4ee543777a", "sha256": "c1242a3dad84e6332fc6dcc55c99bec9adf7dd8ef193e766fc95fc2a81796a6f" }, "downloads": -1, "filename": "nodeping_api-0.9.8-py3-none-any.whl", "has_sig": false, "md5_digest": "681135c0530f0a644b3dfa4ee543777a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33301, "upload_time": "2019-07-31T20:23:34", "url": "https://files.pythonhosted.org/packages/30/07/edad53c5f79dae0ee5a56a88dd43b34e4928f8377caff41e7fa38ccedb58/nodeping_api-0.9.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af81a3ac1932fe325582ccc47095302e", "sha256": "c724d8bf62c0aded1b1c656536304c1d5a9301cd85447a61938d62360a70a335" }, "downloads": -1, "filename": "nodeping_api-0.9.8.tar.gz", "has_sig": false, "md5_digest": "af81a3ac1932fe325582ccc47095302e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31456, "upload_time": "2019-07-31T20:23:47", "url": "https://files.pythonhosted.org/packages/fa/6e/4592ec7b59f4c09eeeff6060701a498e1a9da414e50607e2232bed49486a/nodeping_api-0.9.8.tar.gz" } ], "0.9.8-1": [ { "comment_text": "", "digests": { "md5": "065cb9e673e11fcc544cb155867b6d33", "sha256": "28ae622ab25e188b028612f7744f7a1b0ae4388f51467432329599d37cab34f3" }, "downloads": -1, "filename": "nodeping_api-0.9.8-1.tar.gz", "has_sig": false, "md5_digest": "065cb9e673e11fcc544cb155867b6d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31576, "upload_time": "2019-08-09T20:50:32", "url": "https://files.pythonhosted.org/packages/52/2e/df6c8c0e6787440b737bb7f677a982b7ad831dacfaf648387b702f7e60ab/nodeping_api-0.9.8-1.tar.gz" }, { "comment_text": "", "digests": { "md5": "64e927751f2330c5c2fc8172fd152fe1", "sha256": "17a9e915c03fcfe78adf4c7fc53c58e655c42be99ea48dc1ebd0df6f1ab85cad" }, "downloads": -1, "filename": "nodeping_api-0.9.8.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "64e927751f2330c5c2fc8172fd152fe1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33463, "upload_time": "2019-08-09T20:50:23", "url": "https://files.pythonhosted.org/packages/a6/6b/4518dfa6dcfa0fdc4b8001a5350435a39c70ead738c32f96ce9d6c2a75b2/nodeping_api-0.9.8.post1-py3-none-any.whl" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "9c7b735b62b7ffa1edc8f791d586ba55", "sha256": "24fe2a19b90c5a290a600c59b27a1bc8104eaab859e00059090797c483ea1836" }, "downloads": -1, "filename": "nodeping_api-0.9.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9c7b735b62b7ffa1edc8f791d586ba55", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33494, "upload_time": "2019-08-10T21:36:04", "url": "https://files.pythonhosted.org/packages/cf/80/91851be6538baeec97842384accdd8a39878e53daaed6ac5588c41ff77e8/nodeping_api-0.9.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2495b892212107cb064758e9ebb56e64", "sha256": "fcdffcaa53ab840ffb46e60461c0b3e5958b28ccce9c9f487ea4324dc528c0ee" }, "downloads": -1, "filename": "nodeping_api-0.9.9.tar.gz", "has_sig": false, "md5_digest": "2495b892212107cb064758e9ebb56e64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31696, "upload_time": "2019-08-10T21:36:15", "url": "https://files.pythonhosted.org/packages/17/dd/831afceea09ffc7c130cf1cfe1d3ef4f589d48f658be9ca6a62077f4968e/nodeping_api-0.9.9.tar.gz" } ], "0.9.9-1": [ { "comment_text": "", "digests": { "md5": "f2b1f924379abd32b6d721efadbed1f6", "sha256": "80a84ae6841eda1d089f1ff443eacbae1301b00adbc022b7b1716183fe579ec6" }, "downloads": -1, "filename": "nodeping_api-0.9.9-1.tar.gz", "has_sig": false, "md5_digest": "f2b1f924379abd32b6d721efadbed1f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31672, "upload_time": "2019-10-02T21:08:25", "url": "https://files.pythonhosted.org/packages/57/ab/d700c38e18118c8a699a82e41809c8ea98ecb53a66e20b27a6ef2664f3e2/nodeping_api-0.9.9-1.tar.gz" }, { "comment_text": "", "digests": { "md5": "f105792223b688648093ea3a3db5a32a", "sha256": "098a269bb6eab4660dc2f9d9ec92186ecdc75d6493904fb3e34a0f4791a427e3" }, "downloads": -1, "filename": "nodeping_api-0.9.9.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "f105792223b688648093ea3a3db5a32a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33518, "upload_time": "2019-10-02T21:08:21", "url": "https://files.pythonhosted.org/packages/3c/de/91ff8eda00db09231a9a32e5b4eb303da41df82d46768e0d86aa680be7e4/nodeping_api-0.9.9.post1-py3-none-any.whl" } ], "0.9.9-2": [ { "comment_text": "", "digests": { "md5": "a9c94dbc65f062ba115f18f52159da46", "sha256": "5fd06d9371c8493ac872b5b3d3390ea664bf488500b817dbaa8ef2310d0ed9e6" }, "downloads": -1, "filename": "nodeping_api-0.9.9-2.tar.gz", "has_sig": false, "md5_digest": "a9c94dbc65f062ba115f18f52159da46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31602, "upload_time": "2019-10-02T21:08:28", "url": "https://files.pythonhosted.org/packages/80/22/c912b2d83971f2e654d1290b988ccfc76f8e769be198fed29846bb51c0dd/nodeping_api-0.9.9-2.tar.gz" }, { "comment_text": "", "digests": { "md5": "2935335e52400c1531ac3f89b94fd5d0", "sha256": "6364dea01657471ca5722d392913a18def901590171ef20e212662b17ef8af87" }, "downloads": -1, "filename": "nodeping_api-0.9.9.post2-py3-none-any.whl", "has_sig": false, "md5_digest": "2935335e52400c1531ac3f89b94fd5d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33521, "upload_time": "2019-10-02T21:08:23", "url": "https://files.pythonhosted.org/packages/59/78/25b93ab3333265a029601d7348ce76dd32c758195710864ca58bb8d369e6/nodeping_api-0.9.9.post2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a9c94dbc65f062ba115f18f52159da46", "sha256": "5fd06d9371c8493ac872b5b3d3390ea664bf488500b817dbaa8ef2310d0ed9e6" }, "downloads": -1, "filename": "nodeping_api-0.9.9-2.tar.gz", "has_sig": false, "md5_digest": "a9c94dbc65f062ba115f18f52159da46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31602, "upload_time": "2019-10-02T21:08:28", "url": "https://files.pythonhosted.org/packages/80/22/c912b2d83971f2e654d1290b988ccfc76f8e769be198fed29846bb51c0dd/nodeping_api-0.9.9-2.tar.gz" }, { "comment_text": "", "digests": { "md5": "2935335e52400c1531ac3f89b94fd5d0", "sha256": "6364dea01657471ca5722d392913a18def901590171ef20e212662b17ef8af87" }, "downloads": -1, "filename": "nodeping_api-0.9.9.post2-py3-none-any.whl", "has_sig": false, "md5_digest": "2935335e52400c1531ac3f89b94fd5d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33521, "upload_time": "2019-10-02T21:08:23", "url": "https://files.pythonhosted.org/packages/59/78/25b93ab3333265a029601d7348ce76dd32c758195710864ca58bb8d369e6/nodeping_api-0.9.9.post2-py3-none-any.whl" } ] }