Fix Sonar issue, formatting (#99)

* Fix Sonar issue, formatting

* Remove dev dependencies from requirements.tzt

* Fix unit test failure
This commit is contained in:
2023-06-04 12:06:30 +01:00
committed by GitHub
parent dd8411d726
commit 950d1164eb
10 changed files with 48 additions and 58 deletions

View File

@ -3,8 +3,9 @@
"""MODULE: Provides functions that ensure an IP address is
available to query the APIs for."""
import socket
import ipaddress
import socket
import requests
@ -17,16 +18,17 @@ def is_ip_address(query: str) -> bool:
return False
def resolve_domain_name(domain_name: str) -> ipaddress.IPv4Address:
def resolve_domain_name(domain_name: str) -> ipaddress.IPv4Address | None:
"""Resolve a domain name via DNS or return None."""
try:
ip_address = socket.gethostbyname(domain_name)
except socket.gaierror:
ip_address = None
return ip_address
result: str = socket.gethostbyname(domain_name)
ip_address: ipaddress.IPv4Address = ipaddress.IPv4Address(result)
return ip_address
except (socket.gaierror, ipaddress.AddressValueError):
return None
def get_public_ip() -> ipaddress.IPv4Address:
"""Get the user's current public IPv4 address."""
ip_address = requests.get("https://api.ipify.org", timeout=10).text
return ip_address
ip_address: str = requests.get("https://api.ipify.org", timeout=10).text
return ipaddress.IPv4Address(ip_address)