Skip to main content

Gets various network diagnostics for a pc

Project description

py-net-diags

A Python package for network diagnostics that collects various metrics about your machine's network connection.

Installation

Basic Installation

pip install py-net-diags

With Optional speedcheck Support

pip install py-net-diags[speedcheck]

Configuration

Environment Variables

Create a .env file based on the provided .env-sample:

# ConnectWise API Configuration
RUNNING_IN_ASIO=true/false    # Set to true if running in ASIO environment
CW_BASE_URL=your_cw_url       # ConnectWise base URL
AUTHORIZATION=your_auth_token # ConnectWise authorization token
CLIENTID=your_client_id       # ConnectWise client ID

# Retry Configuration
RETRY_ATTEMPTS=3              # Number of retry attempts for operations
RETRY_DELAY=2                 # Delay in seconds between retry attempts

Usage Examples

from py_net_diags import NetworkDiagnostics

# Initialize the diagnostics tool
diag = NetworkDiagnostics()

# Run all diagnostics
results = diag.run_diagnostics()
print(results)

# Save the results to a file (txt, json, pdf)
paths = {
    "txt": "/path/to/output.txt",
    "json": "/path/to/output.json",
    "pdf": "/path/to/output.pdf"
}

diag.save_results_as_txt(paths["txt"])
diag.save_results_as_json(paths["json"])
diag.save_results_as_pdf(paths["pdf"])

# Optional: Upload to CW_PSA
import logging
from py_net_diags import ConnectWiseServiceAPI

logger = logging.getLogger(__name__)

service_api = ConnectWiseServiceAPI(log=logger)

# Makes sure the ticket id is an integer
ticket_id = diag.parse_ticket_id(ticket_id)

# Add an internal note:
note_response = service_api.add_ticket_note(ticket_id=ticket_id, note_text=md_msg, internal=True)
print(note_response)

# Add the PDF as an attachment on the ticket:
attachment_response = service_api.upload_attachment(ticket_id=ticket_id, file_path=paths["pdf"])
print(attachment_response)

Conda Environment Setup

Basic Environment

name: net-diags
channels:
  - defaults
  - conda-forge
dependencies:
  - python=3.11
  - pip
  - pip:
      - py-net-diags

With speedcheck Support

name: net-diags-full
channels:
  - defaults
  - conda-forge
dependencies:
  - python=3.11
  - pip
  - pip:
      - "py-net-diags[speedcheck]"

Save either of these as environment.yml and create the environment with:

conda env create -f environment.yml

License

MIT

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

py_net_diags-0.1.2.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_net_diags-0.1.2-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file py_net_diags-0.1.2.tar.gz.

File metadata

  • Download URL: py_net_diags-0.1.2.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for py_net_diags-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3fd93a2e952f5ff46508dbbbc302d448ac4af3e8ab63934d983b63b2623c9620
MD5 d52fc4c5c94e795456e4ed3b39a8ade0
BLAKE2b-256 38c5fc3b5bec36a82403dbe2b5bad88386bd871fd0767e52defd734f659adedb

See more details on using hashes here.

File details

Details for the file py_net_diags-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: py_net_diags-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for py_net_diags-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a2237973684b58eaf5213c65f65694d40975b09e275245103dfe613bfb2f03dc
MD5 75625dacacf4703149e0c8ebf1af8ccd
BLAKE2b-256 06b5326edd4fdc4fb491b20f26fc0b4a264f8076a6627207ac851bce53957f24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page