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.3.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.3-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_net_diags-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 74c3853f43aa84af9a1d30206e355c096a2c2bbcdc459648a9af25f65279e14a
MD5 203f968d7ff3d66d786d9db8d81d56f5
BLAKE2b-256 c804cb00a27dfc6f1e3c736d8d1e42a5e70f01433926c1bd78197b2fcae956ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: py_net_diags-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5e4fa65a047b3a4d9ceb11ae53722aaa6286a703ac14ce0e51fbabf9c16102fa
MD5 dc5e0c710db00fb9c38c90f6ee3660d6
BLAKE2b-256 6f1d79efe1359b7e8aefc6730012b704c4365c44e5f0dc4d2e15ae492eb99c8f

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