Alex
в этот код можно впихнуть реализацию валидации схемы
Alex
то есть да, руками
Tishka17
валидация схемы предполагает написание ненулевого количества кода
Ну вообще, надо сначала парсер json-schema сделать, потом его поддержать нормально. А потом уже вызывать
Aragaer
а я вроде пробовал какой-то валидатор жсона
Aragaer
https://github.com/aragaer/pa-core/blob/master/core/config.py - вот. Но у меня там схема была простенькая
Aragaer
точнее как - я этим делом валидировал словарь, который в свою очеред загружался из yaml
Aragaer
вот его и использовал
M.
{ "hash": "3a998cf656cc95e3ed44a444205eac4c", "name": "Alex", "age": "31" } hash этого произведения = 2f66c0981fae158f69c9d9287210b23e Меняю значение "age" = "32", hash = 13419a6a07cb62067ca5f3c08df5c2cb Возращаю предыдущее значение - 31, hash = 641b257ea50d6e5dda72c983e4f502a0 Вопрос, почему при возращении на 31 hash не равен первоначальному значению 2f66c0981fae158f69c9d9287210b23e
Anonymous
Почему так выводит?
Anonymous
Alex
как ты считаешь “хеш”?
M.
как ты считаешь “хеш”?
with open('2', 'rb') as f: f = f.read() print(hashlib.md5(f).hexdigest())
M.
чего? какого “произведения”?
{ "hash": "3a998cf656cc95e3ed44a444205eac4c", "name": "Alex", "age": "31" }
Alex
{ "hash": "3a998cf656cc95e3ed44a444205eac4c", "name": "Alex", "age": "31" }
ну так и сравни побайтно свои файлы. вдруг ты где пробельный символ добавил или наоборот убрал.
Ruslan
с чего вы взяли?
с того что 2+2=-4?
Alex
с того что 2+2=-4?
эм.. при чем тут 2+2 если у нас битовые операции над флагами?
M.
ну так и сравни побайтно свои файлы. вдруг ты где пробельный символ добавил или наоборот убрал.
Вряд ли, проверил текущий хэш, одну цыфру добавил - получил новое значение, вернул все как было = новое значение
Alex
GENERIC_READ имеет значение 0x80000000 GENERIC_WRITE имеет значение 0x40000000 что для unsigned типов имеет целочисленное представление 1073741824 2147483648 для signed 1073741824 -2147483648 соответственно
Ruslan
эм.. при чем тут 2+2 если у нас битовые операции над флагами?
вроде вы правы но >>> import win32file >>> hex(win32file.GENERIC_READ | win32file.GENERIC_WRITE) '-0x40000000' >>> hex(0x80000000 | 0x40000000) '0xc0000000' >>> hex(win32file.GENERIC_READ) '-0x80000000' >>> hex(win32file.GENERIC_WRITE) '0x40000000' >>>
🤔
Source: print(hex(0x80000000 | 0x40000000)) Result: 0xc0000000
Alex
вроде вы правы но >>> import win32file >>> hex(win32file.GENERIC_READ | win32file.GENERIC_WRITE) '-0x40000000' >>> hex(0x80000000 | 0x40000000) '0xc0000000' >>> hex(win32file.GENERIC_READ) '-0x80000000' >>> hex(win32file.GENERIC_WRITE) '0x40000000' >>>
ты смотри на представления этих чисел в памяти: >>> -2147483648 | 1073741824 -1073741824 >>> 2147483648 | 1073741824 3221225472 >>> struct.pack('i', -1073741824) b'\x00\x00\x00\xc0' >>> struct.pack('I', 3221225472) b'\x00\x00\x00\xc0'
Ruslan
из win32file
Alex
из win32file
кто сказал отклоняться от документации? например затем, чтобы получить правильные значения констант при преобразовании в сишный signed int.
Alex
видимо это особенность SWIG который использовали для генерации враппера, тут уже хз.
Alex
а может быть вообще код автогенеренный
Ruslan
логично, благодарю за пояснения)
рофлоДуня
Укажите на ошибку Массив целых чисел отсортировать по возрастанию и определить число соседствующих простых чисел с разными знаками и суммой равной 0. Вывести исходный , отсортированный массив и пары чисел. import random a = (random.randint(2, 30) for _ in range(10)) #все числа list = sorted(a) print(a) print(list)
рофлоДуня
где отрицательные числа?
import random a = (random.randint(-30, 30) for _ in range(20)) #все числа list = sorted(a) print(a) print(list)
🤔
Source: import random a = (random.randint(-30, 30) for _ in range(20)) print(a) print(sorted(a)) Result: <generator object <genexpr> at 0x7fe3f063e938> [-25, -20, -18, -18, -17, -14, -12, -11, -6, -5, 1, 2, 4, 5, 10, 16, 18, 27, 30, 30]
🤔
ничего что list это built-in?
рофлоДуня
ничего что list это built-in?
import random a = (random.randint(-30, 30) for _ in range(20)) #все числа alist = sorted(a) print(a) print(alist)
рофлоДуня
и? что не так?
должно выводить два списка - один отсортированный, другой нет и как определить число соседних простых чисел с разными знаками и суммой равной 0?
рофлоДуня
koder
> как определить число соседних простых чисел с разными знаками и суммой равной 0? я не могу понять задачу. Соседних где? В отсортированным массиве?
🤔
другую переменную?
иди в бегиннерсы
рофлоДуня
там бан
koder
а ты опасен
koder
ну с разными знаками их максимум 2
koder
потому что в отсортированном массиве только два числа соседние числа могут иметь разыне знаки
рофлоДуня
а ты опасен
не, там просто некоторые немного неадекватны
koder
pos = bisect.bisect_left(sorted_arr, 0)
koder
если что-то и есть, то оно в позициях pos & pos + 1
koder
сортируешь массив находишь куда в нем вставили бы 0, проверяешь очевидные проблемы (например pos+1 больше длинны массива, потому что все числа - отрицательные)
Anonymous
Ребята, я новичок в программировании. С данного сайта https://on55.ru/articles/2 нужно спарсить город потом как я понимаю через if проверять соотвествует ли заданная переменная city ему. Все что я смог вытащить это: coords=soup.findAll("td", class_="xl63") А как дальше?
Valerii
как получить список всех идентификаторов которые привязаны к даному тегу. tkinter
Mikhail
Если запускаю проект через докер компз + гуникорн + нгинкс, можно через пайчарм как-то заатачится к гуникорну?
Mikhail
Nikita
Пришел рассказать, что питон не нужен?)
Andrey
Ребяты, есть ли здесь пользователи библиотеки https://github.com/kkroening/ffmpeg-python? чёт я не вдупляю, как ей пользоваться. Могу сделать нужное с просто ffmpeg из командной строки, но не могу перевести это на язык ffmpeg-python, а хотелось бы. Например: ffmpeg -i 1-ne/full_name.ogg -i 1-ne/chapter_1/chapter_name.ogg -f lavfi -i anullsrc -filter_complex \ "[2]atrim=duration=10[g1];[0][g1][1]concat=n=3:v=0:a=1" out.mp3 Если словами, то я хочу склеить два opus ogg файла, а между ними вставить паузу, затем всё это сохранить в mp3. Проблемы с ffmpeg-python начались на том этапе, чтобы объяснить ему, что я хочу пустой аудио поток anullsrc, он пытается открыть его как файл.
Anonymous
Здравствуйте, подскажите пожалуйста, как запилить боту функцию, что бы отвечал на команды без слеша. Тоесть в ответ на собеседника "бан" - получил бан.
Anonymous
Связано ли это с АI тегами?
Timofey
Есть метод, который возвращает tuple переменного размера, при этом его первые несколько элементов зафиксированны, а остальные - нет. Надо в type hint в возращаемом значении написать что-то более-менее адекватное. На данный момент имею примерно следующее: from typing import Any from typing import Iterable from typing import Optional # some code ... def method(some_input: Any) -> Tuple[ Optional[int], None, Iterable[Optional[int]], ]: Но при этом, третий возвращаемый аргумент - это не Iterable, а продолжение этого же Tuple, просто размер этого продолжения не зафиксирован. Как это явно указать? (И да, раз я тут только что появился, то всем привет!)
Andrey
телебот
думаю, это лучше спросить в тематическом чате: https://t.me/botoid
Timofey
Ну, да. В общем, я не знаю, есть ли в typing вообще функционал, чтобы это сделать. А поменять возвращаемую сигнатуру я не могу - привязан к внешней библиотеке.
Je
Ну, да. В общем, я не знаю, есть ли в typing вообще функционал, чтобы это сделать. А поменять возвращаемую сигнатуру я не могу - привязан к внешней библиотеке.
а смысл какой подобной типизации, где типы могут быть разными? это вряд ли кому-то поможет, ты покрываешь тайпинг с целью покрыть тайпинг?
Timofey
в крайнем случае всегда можно сделать Tuple[Any, ...]
Да, такой вариант я рассматривал как возможный выход из ситуации. Кстати, а Tuple[Any, ...] - это же то же самое, что и Tuple?
Timofey
а смысл какой подобной типизации, где типы могут быть разными? это вряд ли кому-то поможет, ты покрываешь тайпинг с целью покрыть тайпинг?
Ну, в целом так глубоко в мою библиотеку вряд ли кто-то будет зарываться, поэтому можно и забить, да. Просто если был простой выход, который я не видел - хотелось бы о нем узнать. Ну значит мой выход это Tuple[Optional[int], ...]
Tishka17
Вообще сомнительный тип
Tishka17
Там точно тупл нужен?