diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index b04728e..0bd3096 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -15,11 +15,11 @@ PyHamTools 0.5.0 * improved callsign decoding alogrithm [CallInfo] * added special case to decode location of VK9 callsigns [CallInfo] + + * added handling of special callsigns which can't be decoded properly inside a separate callsign exception file (e.g. 7QAA) [CallInfo] * added ValueError when LOTW data from file contains too many errors [qsl] - * added handling of special callsigns which can't be decoded properly inside a separate - callsign exception file (e.g. 7QAA) PyHamTools 0.4.2 ================ diff --git a/docs/source/index.rst b/docs/source/index.rst index 43d512f..a3207a1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -16,14 +16,20 @@ with some modules and classes which are frequently needed: - Locator based calculations (distance, heading, sunrise/sunset, Locator to Lat/Long conversion) - - Checking frequencies against the IARU bandplan or + - Checking frequencies against the IARU bandplan - - Parsing Amateur Radio callsigns using Clublog.org_'s or AD1C's Country-Files.com_ database + - Parsing Amateur Radio callsigns using Clublog.org_'s, AD1C's Country-Files.com_ or QRZ.com_ database + + - Download list of current eQSL_ or LOTW_ users -PyHamTools is used in production at the DXHeat.com DXCluster_, performing several thousand lookups and calculations per day. +PyHamTools is used in production at the DXHeat.com DXCluster_, performing several thousand lookups and +calculations per day. .. _Clublog.org: https://secure.clublog.org/ .. _Country-Files.com: http://www.country-files.com/ +.. _QRZ.com: http://qrz.com +.. _eQSL: http://eqsl.cc +.. _LOTW: http://www.arrl.org/logbook-of-the-world .. _DXCluster: https://dxheat.com diff --git a/pyhamtools/callinfo.py b/pyhamtools/callinfo.py index b8d03e6..0635c68 100644 --- a/pyhamtools/callinfo.py +++ b/pyhamtools/callinfo.py @@ -371,7 +371,7 @@ class Callinfo(object): Note: Unfortunately, in most cases the returned Latitude and Longitude are not very precise. Clublog and Country-files.com use the country's capital coordinates in most cases, if no - dedicated entry in the database exists. + dedicated entry in the database exists. Best results will be retrieved with QRZ.com Lookup. """ callsign_data = self.get_all(callsign, timestamp=timestamp) diff --git a/pyhamtools/callsign_exceptions.py b/pyhamtools/callsign_exceptions.py index 911c000..0c46d49 100644 --- a/pyhamtools/callsign_exceptions.py +++ b/pyhamtools/callsign_exceptions.py @@ -1,4 +1,4 @@ - +"""In this files, strange special callsigns are located which can't be resolved with any other rule""" callsign_exceptions={ '7QAA' : '7Q', diff --git a/pyhamtools/lookuplib.py b/pyhamtools/lookuplib.py index 5def8e3..977a775 100644 --- a/pyhamtools/lookuplib.py +++ b/pyhamtools/lookuplib.py @@ -36,6 +36,7 @@ class LookupLib(object): 1. Clublog.org (daily updated XML File) 2. Clublog.org (HTTPS lookup) 3. Country-files.com (infrequently updated PLIST File) + 4. QRZ.com (HTTP / XML Lookup) It's aim is to provide a homogeneous interface to different databases. @@ -46,15 +47,15 @@ class LookupLib(object): The documentation of the various methods provide more detail. By default, LookupLib requires an Internet connection to download the libraries or perform the - lookup against the Clublog API. + lookup against the Clublog API or QRZ.com. - The entire lookup data can also be copied into Redis, which an extremely fast in-memory Key/Value store. - A LookupLib object can be instanciated to perform then all lookups in Redis, instead processing and loading - the data from Internet / File. This saves some time and allows several instances of :py:class:`LookupLib` - to query the same data concurrently. + The entire lookup data (where database files are downloaded) can also be copied into Redis, which an extremely + fast in-memory Key/Value store. A LookupLib object can be instanciated to perform then all lookups in Redis, + instead processing and loading the data from Internet / File. This saves some time and allows several instances + of :py:class:`LookupLib` to query the same data concurrently. Args: - lookuptype (str) : "clublogxml" or "clublogapi" or "countryfile" or "redis" + lookuptype (str) : "clublogxml" or "clublogapi" or "countryfile" or "redis" or "qrz" apikey (str): Clublog API Key username (str): QRZ.com username pwd (str): QRZ.com password @@ -267,6 +268,7 @@ class LookupLib(object): - clublogxml - redis + - qrz.com """ if self._lookuptype == "clublogxml":