Size: a a a

Django [ru] #STAY HOME

2021 March 11

N

Nonverbis in Django [ru] #STAY HOME
permitted_extensions = list(map(lambda item: item.value, RasterImageExtensions))


Получаю предупреждение:

Expected type 'Iterable' (matched generic type 'Iterable[_T1]'), got 'RasterImageExtensions' instead

class RasterImageExtensions(Enum):
   WEBP = 'webp'
   PNG = 'png'
   JPG = 'jpg'
   TIFF = 'tif'

Результат работы: ['webp', 'png', 'jpg', 'tif']

Т.е. работает, но вот предупреждение выскакивает.

Мне не нравятся предупреждения, хочу его побороть. Скажите, пожалуйста, как это можно в данном случае сделать?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
permitted_ext_type это что ?
источник

N

Nonverbis in Django [ru] #STAY HOME
Dan Tyan
permitted_ext_type это что ?
Это enum. Я его привел. ниже. В данном конкретном случае прилетел RasterImageExtensions.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
просто если это экзепляр класса это одно
если это
RasterImageExtensions.values - это другое
источник

DT

Dan Tyan in Django [ru] #STAY HOME
у Enum нет values =)
источник

N

Nonverbis in Django [ru] #STAY HOME
Dan Tyan
у Enum нет values =)
так там value, а не values. Я отредактировал пример. Так более наглядно, мне кажется.
источник

G

Gas in Django [ru] #STAY HOME
for s in Raster.... :
   print(s.value)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Nonverbis
так там value, а не values. Я отредактировал пример. Так более наглядно, мне кажется.
может не там ошибка ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
источник

N

Nonverbis in Django [ru] #STAY HOME
Dan Tyan
может не там ошибка ?
Ошибки нет. Есть варнинг.
источник

G

Gas in Django [ru] #STAY HOME
for r in RasterImageExtensions:
   print(r.value)
   
webp
png
jpg
tif
источник

N

Nonverbis in Django [ru] #STAY HOME
Gas
for r in RasterImageExtensions:
   print(r.value)
   
webp
png
jpg
tif
Так и есть. Все работает. Но варнинг присутствует.
источник

G

Gas in Django [ru] #STAY HOME
а так?

[r.value for r in RasterImageExtensions]
источник

А

Алексей in Django [ru] #STAY HOME
протокол итерации тот же применяется по идее
источник

N

Nonverbis in Django [ru] #STAY HOME
Gas
а так?

[r.value for r in RasterImageExtensions]
Так еще хуже варнинг выскочил: вообще красный. Но он работает, конечно.

Варнинг:

Expected type 'collections.Iterable', got 'RasterImageExtensions' instead
Inspection info: This inspection detects type errors in function call expressions. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Types of function parameters can be specified in docstrings or in Python 3 function annotations.
источник

G

Gas in Django [ru] #STAY HOME
никаких варнингов
```
from enum import Enum

class RasterImageExtensions(Enum):
   WEBP = 'webp'
   PNG = 'png'
   JPG = 'jpg'
   TIFF = 'tif'


rie = RasterImageExtensions
assert rie == RasterImageExtensions

print([r.value for r in rie])

```
источник

G

Gas in Django [ru] #STAY HOME
попробуй вынести в отдельный файл и запустить.
источник

IK

Ivan Karniyenka in Django [ru] #STAY HOME
всем привет.
делаю тесты. при создании экземпляра у него устанавливается data (1970, 1, 1, 0, 0, tzinfo=<UTC>)
хотя мне удалось как то переопределить время при обращении datetime.date.today() - (2012, 1, 14)
мне непонятно - почему все равно при создании экземпляра устанвилвается время жет кто знает?
источник

G

Gas in Django [ru] #STAY HOME
Nonverbis
Так еще хуже варнинг выскочил: вообще красный. Но он работает, конечно.

Варнинг:

Expected type 'collections.Iterable', got 'RasterImageExtensions' instead
Inspection info: This inspection detects type errors in function call expressions. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Types of function parameters can be specified in docstrings or in Python 3 function annotations.
источник

N

Nonverbis in Django [ru] #STAY HOME
Да, похоже на баг в пайчарме.
источник