Тимур
это если у приложения есть открытое АПИ?
Maxim
тертерически, можно реверснуть приложеньку, конечно
Maxim
но это долго, муторно, без гарантий и оффтопик вообще
Тимур
я думал мож есть что готовое на питоне под это дело
Anonymous
это если у приложения есть открытое АПИ?
Да, если сяоми какое-нибуль
Anonymous
Много китайских смарт-браслетов ноунеймов, которые не то что реверснуть - прочесть сложно
Maxim
ничего, что браслеты разные, и что протоколы у них тоже разные?
Anonymous
Поэтому я спросил какой фирмы часы
Тимур
задача то стоит так что бы получать данные с умного бралеста или часов, не важно какой производитель..найти тот который даст это делать
Сережа
Для мибанда от сяоми вродь апи свободного нет
Сережа
А у гармина нада разрешение просить
Anonymous
Для мибанда от сяоми вродь апи свободного нет
Но оно фораардит измерения на аккаунт же
Сережа
Но оно фораардит измерения на аккаунт же
Ннно на прямую ты от браслета ничего не получишь
Anonymous
Тебе скорее показания с аккаунта надо брать, если такой функционал у часов поддерживается
Anonymous
это если у приложения есть открытое АПИ?
M
Привет всем здраствуйте всем
Олег
def get_client_1(): wsdl = 'http://136.243.67.133/brom_ut/ws/brom_api?wsdl' session = Session() session.auth = HTTPBasicAuth(username='Brom', password='Brompass') client = Client(wsdl, transport=Transport(session=session)) order_type = client.get_type('ns0:ValueArray') order = order_type(Item='Мебель') ExecuteMethod = client.service.ExecuteMethod('Справочники.Номенклатура', 'НайтиПоНименованию', order) print(ExecuteMethod) if __name__ == '__main__': get_client_1()
Олег
zeep.exceptions.Fault: Неизвестная ошибка. Ошибка создания объекта: Попытка создания объекта абстрактного типа '{https://brom.itworks.group}ValueBase' по причине: Ошибка создания объекта: Попытка создания объекта абстрактного типа '{https://brom.itworks.group}ValueBase
Олег
ребзи можете помочь?
Олег
не могу настроить третий параметр
Олег
Источник: webtelegram.net
Олег
но знаю что на шарпе третий параметр должен выглядеть вот так вот:
Forevka ÐΞV
судя по ошибке ты пытаешься создаеть оббьект абстрактного класса
vvk
А есть какие-то best practices по добавлению асинхронных версий модулей в библиотеки? Интересует как избегать дублирования кода #asyncio #question
Олег
судя по ошибке ты пытаешься создаеть оббьект абстрактного класса
ну точнее создаю но получаю ошибку от zeep TypeError: argument of type 'ValueArray' is not iterable
koder
А есть какие-то best practices по добавлению асинхронных версий модулей в библиотеки? Интересует как избегать дублирования кода #asyncio #question
ахахаха, никак :D. Нативно одну кодовую базу не выйдет использовать. Но можно или дергать синхронную версию из асинхронной через th pool или запускать асинхронную в лупе из синхронного кода и ждать окончания
Anonymous
Можно в дотнете это посмотреть
Anonymous
Там большая часть апи имеет методы с ...асинк()
Anonymous
Но дупликации действительно не избежать
koder
и в котлине тоже стаклесс асинк, но проблемы те же и кодовая база полностью отдельная между асинхронными и синхронными либами в питоне можно посмотреть что делают в urllib3 - они тащат ее на async. переписывая ну а так вариантов нет - это понятно хотя бы по тому, что ни один крупынй фреймворк пока не собрался (AFAIK) поддержать async в кодовой базе
vvk
ахахаха, никак :D. Нативно одну кодовую базу не выйдет использовать. Но можно или дергать синхронную версию из асинхронной через th pool или запускать асинхронную в лупе из синхронного кода и ждать окончания
Не, это всё понятно. Не годится. Пока я придумал только что в те методы, которые дёргают например 1 IO вызов, сделать kwarg, который говорит не делать вызов, а вместо этого подготовить данные, которые уже дальше будут отправлены асинхронно, типа так: async def foo(): data = parent_class.foo(return_data=True) await self.do_async_stuff(data)
koder
тогда уже можно слить foo & do_async_stuff в одну функцию
koder
В дотнете не стаклесс
точно? а я видел что они компилируют все в стейтмашины, которые стаклесом исполняются
Alex
оу и ты здесь? как же тебя угораздило =)
vvk
тогда уже можно слить foo & do_async_stuff в одну функцию
Это нюансы, я про сам принцип, интересно как другие выкручиваются
koder
оу и ты здесь? как же тебя угораздило =)
пришел посмотреть что там за тесты асинхронных фреймворков запостили
Anonymous
точно? а я видел что они компилируют все в стейтмашины, которые стаклесом исполняются
В дотнете вообще треды ебошат на асинк вызовы, за этим цлр следит
Anonymous
Не знаю как может быть стеклесс тред
Anonymous
Что-то типа джавовского форк/джоин это и есть асинк в дотнете
koder
не, сори, там точно стаклесс
koder
стаклесс означает что у тебя нет много параллельно исполняемых микропотоков со своим стеком
Anonymous
Здрасте
koder
когда код видит асинк - он формирует future/task и возвращает его наверх в луп
Anonymous
Ну так то да микропотоков нет, но есть потоки лол
koder
ну так вот stackless async это ровно это, лол
koder
у потока стек, ессно, если
Anonymous
Ааа, понел. Сорян
koder
но отдельных стекров у микропотоков, как в go - нет
Anonymous
Спасибо что объяснил
koder
😊
Tishka17
ну так вот stackless async это ровно это, лол
А что, в асинк коде нельзя вызывать функции?
Denis
В дотнете функции с yield stackless
Tishka17
В дотнете функции с yield stackless
В них нельзя вызывать другие функции?
Tishka17
Даже принт?
Fred
Ребята, как лучше писать простыни с длинным if elif elif elif ... else ? Вроде и нормально, но как-будто просится рефакторинг?
koder
можно, но все async шарят общий стек. когда ты делаешь await - ты возвращяешь управление на самый верх, до самого шедулера. а потом все происходит обратно, когда шедулер у тебя дергает await
Denis
Но стек при возврате не сохраняется
Denis
И yield from, соответственно, нет
Tishka17
Можно
А как это сделать без стека?
Anonymous
Один то стек есть
Anonymous
В котором шедулер крутится
Denis
А как это сделать без стека?
Стек у них есть, но он не сохраняется при yield
koder
А как это сделать без стека?
отладь в pycharm как все исполняется - сам увидишь
Tishka17
Ну то есть пока я вызвал другую функцию, меня не могут переключить на другую корутину?
Denis
Тебя переключить вообще не могут
Tishka17
Удобно
Denis
Это питоновский генератор по сути
Tishka17
Тогда что там асинк?
Denis
Асинк другой, я его не шарю
Anonymous
Асинк другой, я его не шарю
Выше кодер расписал
Denis
можно, но все async шарят общий стек. когда ты делаешь await - ты возвращяешь управление на самый верх, до самого шедулера. а потом все происходит обратно, когда шедулер у тебя дергает await
Если у меня async функция сделала await, а из вложенной мы вернулись в шедулер, откуда возьмется стек, когда мы в нее вернемся?
Anonymous
Насколько я помню там твоя функция колбеком/континуацией цепляется к авейтабле
Anonymous
Если про дотнет