#19 this is base, bro #24

Merged
Idvon merged 12 commits from issues-19 into main 2023-04-09 19:22:53 +00:00
Member
No description provided.
Owner

пиши название как fix #19 чтобы автозакрылась задача после мержа https://docs.gitea.io/en-us/automatically-linked-references/#actionable-references-in-pull-requests-and-commit-messages

пиши название как `fix #19` чтобы автозакрылась задача после мержа https://docs.gitea.io/en-us/automatically-linked-references/#actionable-references-in-pull-requests-and-commit-messages
Author
Member

fix #19

fix #19
d requested changes 2023-04-01 11:54:29 +00:00
@ -1,5 +1,6 @@
{
"city_name": "Saint Petersburg",
"timeout": 30,
Owner

Так как кеширование у нас сейчас работает через жопу, ставь таймаут в 0

Так как кеширование у нас сейчас работает через жопу, ставь таймаут в 0
Owner

А еще меняй томл тогда тоже

А еще меняй томл тогда тоже
Idvon marked this conversation as resolved
@ -28,0 +29,4 @@
def sql_file(city_data: dict) -> None:
file = "db.sqlite3"
Owner

Для путей используем pathlib.Path
Также, подобные переменные лучше делать глобальными константами, или передавать в функцию как в to_file

Для путей используем `pathlib.Path` Также, подобные переменные лучше делать глобальными константами, или передавать в функцию как в `to_file`
Idvon marked this conversation as resolved
@ -28,0 +36,4 @@
try:
sqlite_connection = sqlite3.connect(file)
headers = (
"create table if not exists weather_results ("
Owner

Для таких строк удобно использовать создание через тройные кавычки

headers = """
CREATE TABLE ...
"""
Для таких строк удобно использовать создание через тройные кавычки ``` headers = """ CREATE TABLE ... """ ```
Idvon marked this conversation as resolved
@ -28,0 +51,4 @@
cursor = sqlite_connection.cursor()
cursor.execute(headers)
cursor.execute(
"insert into weather_results values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", values
Owner

Хорошая практика писать ключевые слова sql капсом INSERT INTO weather_results

Хорошая практика писать ключевые слова sql капсом `INSERT INTO weather_results`
Idvon marked this conversation as resolved
@ -11,9 +11,10 @@ from src.output.compas import direction
class WeatherProvider(abc.ABC):
url: str
payload: dict
Owner

зачем

Этот класс теперь не только к сетевым провайдерам относится.
Если хочешь рефакторить - выделяй отдельный класс типа NetworkWeatherProvider как обсуждали, и делай там такое

![зачем](https://www.startpage.com/av/proxy-image?piurl=https%3A%2F%2Fmemesmix.net%2Fmedia%2Fcreated%2F250%2F4hqfij.jpg&sp=1680306053T16b21049fffc95f691ae3a91188a1618b170423fdd7838a0f673d2d9e21041cf) Этот класс теперь не только к сетевым провайдерам относится. Если хочешь рефакторить - выделяй отдельный класс типа NetworkWeatherProvider как обсуждали, и делай там такое
Idvon marked this conversation as resolved
@ -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()
Owner

А это кстати не спасет если файл пустой, потому что row["datetime"] сломается

А это кстати не спасет если файл пустой, потому что `row["datetime"]` сломается
Idvon marked this conversation as resolved
@ -79,3 +82,4 @@
with open(self.file, "r", newline="") as f:
text = csv.DictReader(f)
row = dict()
for row in text:
Owner

как насчет row = text[-1]? вроде должно сработать

как насчет `row = text[-1]`? вроде должно сработать
Author
Member

Не сработало

Не сработало
Idvon marked this conversation as resolved
add generator for weather data csv
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
9e430fcd83
refactoring conclusion
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
a671fe5742
d requested changes 2023-04-05 13:52:18 +00:00
@ -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)
Owner

А зачем в методы передавать то, что уже передано в класс?

А зачем в методы передавать то, что уже передано в класс?
Idvon marked this conversation as resolved
@ -8,0 +11,4 @@
def __init__(self, city_data: dict, file_out: Path):
self.city_data = city_data
self.file_out = file_out
print(1)
Owner

???

???
Idvon marked this conversation as resolved
@ -8,0 +31,4 @@
writer.writerow(self.city_data.values())
class ToDataBase(WeatherData):
Owner

Названия классов обычно не начинаются с to, т.к. представляют собой сущности (существительные). С to могут начинаться функции. Этот класс можно назвать DatabaseWriter, например

Названия классов обычно не начинаются с to, т.к. представляют собой сущности (существительные). С to могут начинаться функции. Этот класс можно назвать DatabaseWriter, например
Idvon marked this conversation as resolved
@ -8,0 +37,4 @@
try:
sqlite_connection = sqlite3.connect(self.file_out)
headers = """
CREATE TABLE if not exists weather_results (
Owner

IF NOT EXISTS

IF NOT EXISTS
Idvon marked this conversation as resolved
@ -8,0 +66,4 @@
FORMATS = {".csv": ToCSVFile, ".sqlite3": ToDataBase}
def create_output_format(city_data: dict, file_out: Path) -> WeatherData:
Owner

название format что-то не откликается, лучше назвать writer

название format что-то не откликается, лучше назвать writer
Idvon marked this conversation as resolved
fix refactoring
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
05663fd52f
fix unitests
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
85c9cfa1bd
fix test_geocoding
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
e6cbbeda73
d approved these changes 2023-04-09 19:21:18 +00:00
Idvon merged commit 7276cf8bc0 into main 2023-04-09 19:22:53 +00:00
Idvon deleted branch issues-19 2023-04-09 19:22:53 +00:00
Idvon referenced this pull request from a commit 2023-04-09 19:22:53 +00:00
Sign in to join this conversation.
No description provided.