mypy: Add annotations for weather.
This commit is contained in:
		
							parent
							
								
									f7f54d159f
								
							
						
					
					
						commit
						ab9128d939
					
				
					 3 changed files with 13 additions and 7 deletions
				
			
		|  | @ -48,6 +48,8 @@ force_include = [ | |||
|     "zulip_bots/zulip_bots/bots/help/test_help.py", | ||||
|     "zulip_bots/zulip_bots/bots/virtual_fs/virtual_fs.py", | ||||
|     "zulip_bots/zulip_bots/bots/virtual_fs/test_virtual_fs.py", | ||||
|     "zulip_bots/zulip_bots/bots/weather/test_weather.py", | ||||
|     "zulip_bots/zulip_bots/bots/weather/weather.py", | ||||
| ] | ||||
| 
 | ||||
| parser = argparse.ArgumentParser(description="Run mypy on files tracked by git.") | ||||
|  |  | |||
|  | @ -5,10 +5,12 @@ from __future__ import print_function | |||
| 
 | ||||
| from zulip_bots.test_lib import BotTestCase | ||||
| 
 | ||||
| from typing import Any | ||||
| 
 | ||||
| class TestWeatherBot(BotTestCase): | ||||
|     bot_name = "weather" | ||||
| 
 | ||||
|     def test_bot(self): | ||||
|     def test_bot(self) -> None: | ||||
| 
 | ||||
|         # City query | ||||
|         bot_response = "Weather in New York, US:\n71.33 F / 21.85 C\nMist" | ||||
|  |  | |||
|  | @ -3,17 +3,19 @@ from __future__ import print_function | |||
| import requests | ||||
| import json | ||||
| 
 | ||||
| from typing import Any, Dict | ||||
| 
 | ||||
| class WeatherHandler(object): | ||||
|     def initialize(self, bot_handler): | ||||
|     def initialize(self, bot_handler: Any) -> None: | ||||
|         self.api_key = bot_handler.get_config_info('weather')['key'] | ||||
|         self.response_pattern = 'Weather in {}, {}:\n{:.2f} F / {:.2f} C\n{}' | ||||
| 
 | ||||
|     def usage(self): | ||||
|     def usage(self) -> str: | ||||
|         return ''' | ||||
|             This plugin will give info about weather in a specified city | ||||
|             ''' | ||||
| 
 | ||||
|     def handle_message(self, message, bot_handler): | ||||
|     def handle_message(self, message: Dict[str, str], bot_handler: Any) -> None: | ||||
|         help_content = ''' | ||||
|             This bot returns weather info for specified city. | ||||
|             You specify city in the following format: | ||||
|  | @ -37,7 +39,7 @@ class WeatherHandler(object): | |||
|         bot_handler.send_reply(message, response) | ||||
| 
 | ||||
| 
 | ||||
| def format_response(text, city, response_pattern): | ||||
| def format_response(text: Any, city: str, response_pattern: str) -> str: | ||||
|     j = text.json() | ||||
|     city = j['name'] | ||||
|     country = j['sys']['country'] | ||||
|  | @ -48,11 +50,11 @@ def format_response(text, city, response_pattern): | |||
|     return response_pattern.format(city, country, fahrenheit, celsius, description) | ||||
| 
 | ||||
| 
 | ||||
| def to_celsius(temp_kelvin): | ||||
| def to_celsius(temp_kelvin: float) -> float: | ||||
|     return int(temp_kelvin) - 273.15 | ||||
| 
 | ||||
| 
 | ||||
| def to_fahrenheit(temp_kelvin): | ||||
| def to_fahrenheit(temp_kelvin: float) -> float: | ||||
|     return int(temp_kelvin) * (9. / 5.) - 459.67 | ||||
| 
 | ||||
| handler_class = WeatherHandler | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 fredfishgames
						fredfishgames