#19 this is base, bro #24
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
bug
enhancement
question
techdebt
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DD/Pogodnik!24
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issues-19"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
пиши название как
fix #19чтобы автозакрылась задача после мержа https://docs.gitea.io/en-us/automatically-linked-references/#actionable-references-in-pull-requests-and-commit-messagesfix #19
@ -1,5 +1,6 @@{"city_name": "Saint Petersburg","timeout": 30,Так как кеширование у нас сейчас работает через жопу, ставь таймаут в 0
А еще меняй томл тогда тоже
@ -28,0 +29,4 @@def sql_file(city_data: dict) -> None:file = "db.sqlite3"Для путей используем
pathlib.PathТакже, подобные переменные лучше делать глобальными константами, или передавать в функцию как в
to_file@ -28,0 +36,4 @@try:sqlite_connection = sqlite3.connect(file)headers = ("create table if not exists weather_results ("Для таких строк удобно использовать создание через тройные кавычки
@ -28,0 +51,4 @@cursor = sqlite_connection.cursor()cursor.execute(headers)cursor.execute("insert into weather_results values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", valuesХорошая практика писать ключевые слова sql капсом
INSERT INTO weather_results@ -11,9 +11,10 @@ from src.output.compas import directionclass WeatherProvider(abc.ABC):url: strpayload: dictЭтот класс теперь не только к сетевым провайдерам относится.
Если хочешь рефакторить - выделяй отдельный класс типа NetworkWeatherProvider как обсуждали, и делай там такое
@ -78,6 +81,7 @@ class CSVWeatherProvider(WeatherProvider):def weather_data(self, _=None) -> dict:with open(self.file, "r", newline="") as f:text = csv.DictReader(f)row = dict()А это кстати не спасет если файл пустой, потому что
row["datetime"]сломается@ -79,3 +82,4 @@with open(self.file, "r", newline="") as f:text = csv.DictReader(f)row = dict()for row in text:как насчет
row = text[-1]? вроде должно сработатьНе сработало
@ -40,2 +44,2 @@conclusion.to_file(city_data, file_out)return conclusion.printing(city_data)create_output_format(city_data, file_out).weather_outputs(city_data, file_out)create_output_format(city_data, file_db).weather_outputs(city_data, file_db)А зачем в методы передавать то, что уже передано в класс?
@ -8,0 +11,4 @@def __init__(self, city_data: dict, file_out: Path):self.city_data = city_dataself.file_out = file_outprint(1)???
@ -8,0 +31,4 @@writer.writerow(self.city_data.values())class ToDataBase(WeatherData):Названия классов обычно не начинаются с to, т.к. представляют собой сущности (существительные). С to могут начинаться функции. Этот класс можно назвать DatabaseWriter, например
@ -8,0 +37,4 @@try:sqlite_connection = sqlite3.connect(self.file_out)headers = """CREATE TABLE if not exists weather_results (IF NOT EXISTS
@ -8,0 +66,4 @@FORMATS = {".csv": ToCSVFile, ".sqlite3": ToDataBase}def create_output_format(city_data: dict, file_out: Path) -> WeatherData:название format что-то не откликается, лучше назвать writer