env-canada 0.11.3__tar.gz → 0.12.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {env_canada-0.11.3/env_canada.egg-info → env_canada-0.12.1}/PKG-INFO +1 -1
- env_canada-0.12.1/env_canada/constants.py +1 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_weather.py +32 -1
- {env_canada-0.11.3 → env_canada-0.12.1/env_canada.egg-info}/PKG-INFO +1 -1
- {env_canada-0.11.3 → env_canada-0.12.1}/pyproject.toml +5 -1
- env_canada-0.11.3/env_canada/constants.py +0 -1
- {env_canada-0.11.3 → env_canada-0.12.1}/LICENSE +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/MANIFEST.in +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/README.md +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/10x20.pbm +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/10x20.pil +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/__init__.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_aqhi.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_cache.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_exc.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_historical.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_hydro.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_map.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada/ec_radar.py +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada.egg-info/SOURCES.txt +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada.egg-info/dependency_links.txt +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada.egg-info/requires.txt +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/env_canada.egg-info/top_level.txt +0 -0
- {env_canada-0.11.3 → env_canada-0.12.1}/setup.cfg +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
USER_AGENT = "env_canada/0.12.1"
|
@@ -37,7 +37,7 @@ ATTRIBUTION = {
|
|
37
37
|
}
|
38
38
|
|
39
39
|
|
40
|
-
__all__ = ["ECWeather", "ECWeatherUpdateFailed"]
|
40
|
+
__all__ = ["ECWeather", "ECWeatherUpdateFailed", "get_ec_sites_list"]
|
41
41
|
|
42
42
|
|
43
43
|
@dataclass
|
@@ -279,6 +279,37 @@ async def get_ec_sites():
|
|
279
279
|
return sites
|
280
280
|
|
281
281
|
|
282
|
+
async def get_ec_sites_list():
|
283
|
+
"""
|
284
|
+
Get list of sites formatted for selection dropdowns.
|
285
|
+
|
286
|
+
Returns a list of dictionaries with the form:
|
287
|
+
{"label": "Toronto, ON", "value": "458"}
|
288
|
+
where the value is the last three digits of the site code.
|
289
|
+
"""
|
290
|
+
LOG.debug("get_ec_sites_list() started")
|
291
|
+
sites_list = []
|
292
|
+
|
293
|
+
async with ClientSession(raise_for_status=True) as session:
|
294
|
+
response = await session.get(
|
295
|
+
SITE_LIST_URL, headers={"User-Agent": USER_AGENT}, timeout=CLIENT_TIMEOUT
|
296
|
+
)
|
297
|
+
sites_csv_string = await response.text()
|
298
|
+
|
299
|
+
sites_reader = csv.DictReader(sites_csv_string.splitlines()[1:])
|
300
|
+
|
301
|
+
for site in sites_reader:
|
302
|
+
if site["Province Codes"] != "HEF":
|
303
|
+
# Extract last 3 digits from site code (e.g., "s0000106" -> "106")
|
304
|
+
site_value = site["Codes"][5:]
|
305
|
+
# Create label with city name and province (e.g., "Toronto, ON")
|
306
|
+
label = f"{site['English Names']}, {site['Province Codes']}"
|
307
|
+
sites_list.append({"label": label, "value": site_value})
|
308
|
+
|
309
|
+
LOG.debug("get_ec_sites_list() done, retrieved %d sites", len(sites_list))
|
310
|
+
return sites_list
|
311
|
+
|
312
|
+
|
282
313
|
def find_province_for_station(site_list, station_number):
|
283
314
|
"""Find the province code for a given station number."""
|
284
315
|
for site in site_list:
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
5
5
|
[project]
|
6
6
|
name = "env_canada"
|
7
7
|
description="A package to access meteorological data from Environment Canada"
|
8
|
-
version="0.
|
8
|
+
version="0.12.1"
|
9
9
|
authors = [
|
10
10
|
{name = "Michael Davie", email = "michael.davie@gmail.com"},
|
11
11
|
]
|
@@ -63,6 +63,10 @@ asyncio_default_fixture_loop_scope = "function"
|
|
63
63
|
|
64
64
|
[tool.setuptools]
|
65
65
|
include-package-data = true
|
66
|
+
packages = ["env_canada"]
|
67
|
+
|
68
|
+
[tool.setuptools.package-data]
|
69
|
+
env_canada = ["*.pil", "*.pbm"]
|
66
70
|
|
67
71
|
[tool.ruff.lint]
|
68
72
|
select = ["E4", "E7", "E9", "F", "B", "T201", "PD", "RUF", "ERA", "LOG", "G"]
|
@@ -1 +0,0 @@
|
|
1
|
-
USER_AGENT = "env_canada/0.11.3"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|