from typing import Optional
def freq(arr: list, digit: int = 1) -> Optional[float]:
count = 1
res = []
for x in arr:
if x == digit:
res.append(count)
count = 0
count += 1
try:
return sum(res) / len(res)
except ZeroDivisionError:
return None
a = [0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
print(a, ' --> ', freq(a))
a = [0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0]
print(a, ' --> ', freq(a))
.pyi файлы - это стабы (stubs), их назначение и формат описаны в PEP 484. Эти файлы вообще никак не используются интерпретатором, их назначение - предоставлять информацию о типизации кода. К примеру, у тебя есть сторонний модуль без типизации, который не твой, редактировать его ты не можешь, а прописать типы хотелось бы:
# fizz.py def greet(who): return f'Hello {who}'
Выход находится с помощью стаба: создаешь файл fizz.pyi, который содержит типизированную сигнатуру greet без имплементации:
# fizz.pyi def greet(who: str) -> str: ...
.annotate(
title_contains=Case(
When(
Q(title__icontains='test'),
then=V('True')
),
default=(V(False)),
output_field=BooleanField()
),
desc_contains=Case(
When(
Q(desc__icontains='test'),
then=V('True')
),
default=(V(False)),
output_field=BooleanField()
),
...
for obj in result:
print(obj.title_contains) # триггернулось ли по title
print(obj.desc_contains) # триггернулось ли по desc
find ./ -type f -name "*.py" -exec cat {} \; | sed 's/ /\n/g' | grep -o -E '[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW]+' | sort | uniq -c | sort -nr | head -n 10
4133 self
3383 name
2669 user
2525 models
2258 import
2172 get
2103 status
2053 True
1971 from
1890 response