Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GLOBAL variables changed to GLOBAL constants #1710

Merged
merged 7 commits into from
Mar 27, 2023
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 33 additions & 23 deletions mslib/utils/airdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,30 @@
if not os.path.exists(os.path.join(OSDIR, "downloads", "aip")):
os.makedirs(os.path.join(OSDIR, "downloads", "aip"))

_airspaces = []
_airports = []
_airports_mtime = 0
_airspaces_mtime = {}
_airspace_url = "https://storage.googleapis.com/29f98e10-a489-4c82-ae5e-489dbcd4912f"
_airspace_download_url = "https://storage.googleapis.com/storage/v1/b/29f98e10-a489-4c82-ae5e-489dbcd4912f/o/" \
"{}_asp.xml?alt=media"
# Updated Dec 01 2022
_airspace_cache = [('ad_asp.xml', '377'), ('ae_asp.xml', '110238'), ('af_asp.xml', '377'), ('ag_asp.xml', '377'),
('ai_asp.xml', '377'), ('al_asp.xml', '11360'), ('am_asp.xml', '377'), ('ao_asp.xml', '377'),
('aq_asp.xml', '377'), ('ar_asp.xml', '975402'), ('as_asp.xml', '377'), ('at_asp.xml', '1059077'),
('au_asp.xml', '9667669'), ('aw_asp.xml', '377'), ('ax_asp.xml', '377'), ('az_asp.xml', '377'),
('ba_asp.xml', '76717'), ('bb_asp.xml', '377'), ('bd_asp.xml', '377'), ('be_asp.xml', '462667'),
('bf_asp.xml', '377'), ('bg_asp.xml', '440690'), ('bh_asp.xml', '68519'), ('bi_asp.xml', '377'),
('bj_asp.xml', '377'), ('bl_asp.xml', '377')
]

class Global_Constants:
airports = []

airports_mtime = 0

airspaces = []

airspaces_mtime = {}

airspace_url = "https://storage.googleapis.com/29f98e10-a489-4c82-ae5e-489dbcd4912f"

airspace_download_url = "https://storage.googleapis.com/storage/v1/b/29f98e10-a489-4c82-ae5e-489dbcd4912f/o/" \
"{}_asp.xml?alt=media"

airspace_cache = [('ad_asp.xml', '377'), ('ae_asp.xml', '110238'), ('af_asp.xml', '377'), ('ag_asp.xml', '377'),
('ai_asp.xml', '377'), ('al_asp.xml', '11360'), ('am_asp.xml', '377'), ('ao_asp.xml', '377'),
('aq_asp.xml', '377'), ('ar_asp.xml', '975402'), ('as_asp.xml', '377'),
('at_asp.xml', '1059077'),
('au_asp.xml', '9667669'), ('aw_asp.xml', '377'), ('ax_asp.xml', '377'), ('az_asp.xml', '377'),
('ba_asp.xml', '76717'), ('bb_asp.xml', '377'), ('bd_asp.xml', '377'), ('be_asp.xml', '462667'),
('bf_asp.xml', '377'), ('bg_asp.xml', '440690'), ('bh_asp.xml', '68519'), ('bi_asp.xml', '377'),
('bj_asp.xml', '377'), ('bl_asp.xml', '377')
]


def download_progress(file_path, url, progress_callback=lambda f: logging.info("%sKB Downloaded", int(f))):
Expand Down Expand Up @@ -87,7 +95,9 @@ def get_airports(force_download=False, url=None):
"""
Gets or downloads the airports.csv in ~/.config/msui/downloads/aip and returns all airports within
"""
global _airports, _airports_mtime
_airports = Global_Constants().airports
_airports_mtime = Global_Constants().airports_mtime

if url is None:
url = "https://ourairports.com/data/airports.csv"

Expand Down Expand Up @@ -124,15 +134,15 @@ def get_available_airspaces():
Gets and returns all available airspaces and their sizes from openaip
"""
try:
directory = requests.get(_airspace_url, timeout=5)
directory = requests.get(Global_Constants.airspace_url, timeout=5)
if directory.status_code == 404:
return _airspace_cache
return Global_Constants.airspace_cache
airspaces = regex.findall(r">(.._asp\.xml)<", directory.text)
sizes = regex.findall(r".._asp.xml.*?<Size>([0-9]+)<\/Size", directory.text)
airspaces = [airspace for airspace in zip(airspaces, sizes) if airspace[-1] != "0"]
return airspaces
except requests.exceptions.RequestException:
return _airspace_cache
return Global_Constants.airspace_cache


def update_airspace(force_download=False, countries=None):
Expand All @@ -141,11 +151,10 @@ def update_airspace(force_download=False, countries=None):
"""
if countries is None:
countries = ["de"]
global _airspaces, _airspaces_mtime

for country in countries:
location = os.path.join(OSDIR, "downloads", "aip", f"{country}_asp.xml")
url = _airspace_download_url.format(country)
url = Global_Constants.airspace_download_url.format(country)
available = get_available_airspaces()
try:
data = [airspace for airspace in available if airspace[0].startswith(country)][0]
Expand All @@ -172,7 +181,8 @@ def get_airspaces(countries=None):
"""
if countries is None:
countries = []
global _airspaces, _airspaces_mtime
_airspaces = Global_Constants().airspaces
_airspaces_mtime = Global_Constants().airspaces_mtime

reload = False
files = [f"{country}_asp.xml" for country in countries]
Expand Down