Tishka17
а. ну так он его для отправки взял
Tishka17
из файла
Tishka17
в который получает данные
Alex
а. ну так он его для отправки взял
ну если для отправки из файла ок
Tishka17
то есть он пишет в файл и потом делает sendfile
Alex
просто непонятно нахуй, ему ж вроде стриминг нужен
Tishka17
и второй раз файл не использует
Alex
а не буфер
Slam!
В общем, задача после начала загрузки сразу же начать выгрузку получаемых кусков, имея в качестве функции-отправителя sendfile
Alex
sendfile не будет ждать пока ты полностью запишешь файл
Slam!
sendfile не будет ждать пока ты полностью запишешь файл
Но он же читает из объекта, который я туда засунул. Так нельзя ли в процессе его чтения класть сбоку новые куски?
Alex
Но он же читает из объекта, который я туда засунул. Так нельзя ли в процессе его чтения класть сбоку новые куски?
из какого нахуй объекта, дибил. sendfile это системный вызов, который работает с файловыми дескрипторами
Alex
файловый дескриптор это число (integer), а не высокоуровневый файловый объект аля BytesIO
maxlunar
так давно еще сказали что fd нужен
Alex
Дяд, не обзывайся, так и скажи
в socket есть обвязка для питоновских файлов socket.sendfile
Tishka17
да не нужен ему этот вызов просто
Alex
только она не работает с объектами у которых нет системного файлового дескриптора
Tishka17
@spooti давай уже ответь
Alex
не ну никто тебе не мешает вызывать sendfile много раз, указывая offset, только я не понимаю зачем
Kirill
Может ему нужно что-то такое? def put_view(request): requests.put( 'http://bla.com', data=request.content )
Kirill
Тогда я уже дал выше ответ про написание класса который выглядит как питонячий file-like объект. Тот же requests вроде как умеет принимать такие объекты и чанками из них вычитывать данные. Главное как-то ему заранее сообщить о длине файла, а то он может и передумать чанками читать 😊
Дмитрий
надо сообщить что transfer encoding chunked
Kirill
Ну если заранее длину файла не узнать, то вероятно придётся юзать transfer encoding chunked. Но лучше без неё по возможности. Не факт что принимающая сторона поддерживает такие запросы.
tfhx8
народ а cython может работать с бибиотеками обычного ппитона?
Slam!
Ну если заранее длину файла не узнать, то вероятно придётся юзать transfer encoding chunked. Но лучше без неё по возможности. Не факт что принимающая сторона поддерживает такие запросы.
Может быть такое, что файл ещё не скачался, а отправитель успел уже отправить все куски, которые получатель ему передал
Vika
#vacancy #вакансия #python #ML #МО #MachineLearning #релокация #relocation #office #fulltime #Tallinn #Таллинн #AI #microservices # Hi! Veriff is looking for a Lead Software Engineer 👨‍💻 We are in #Tallinn, Kalamaja #офис занятость #полная Salary rate 4000+ eur net (we will discuss our offer after tech interview) Veriff is an invisible digital guardian capable of converting physical identity to online while verifying its validity. We are looking for people who are: – Experts in Python, Kubernetes, Tensorflow – Fans of Microservices – Familiar with SQL and event queues – Motivated and passionate about startup life, with no corporate BS What you’ll be doing: • Supporting and coaching a team of engineers building trust in the internet • Building a culture that balances execution with engineering excellence • Hiring for talent and experience From Veriff you will get: 🤩 Opportunity to work in an awesome (we really don’t use this word lightly) up-and-coming company with a lot of career opportunities (Veriff is backed by investors such as Mosaic Ventures, Taavet Hinrikus, Ashton Kutcher and Paul Buchheit) 🚀 An international friendly and flexible work environment where you are in charge of balancing freedom and responsibility 🎁 All the perks that go with a world-changing tech start-up such as 40 euro sports compensation, full health insurance, health days, snacks/coffee in the office, team events etc 💰 Nice salary + stock options 🌏 Help with relocation Vacancy text https://veriff.me/careers/position/4272083002 You can reach me here @Life1over or using viktoriia.pentina@veriff.com
Kirill
Может быть такое, что файл ещё не скачался, а отправитель успел уже отправить все куски, которые получатель ему передал
"Отправитель" вызывает метод read у "читателя", когда ему нужны данные. Если они ему не нужны - он не вызывает его.
Tishka17
блин
Tishka17
так сложно было ответить про sendfile
Kirill
Читатель может вернуть сколько угодно данных, но не больше чем аргумент n
Slam!
так сложно было ответить про sendfile
Тишка, я просто предположил, что кроме сендфайл у меня ничего нет
Danil
Тишка, я просто предположил, что кроме сендфайл у меня ничего нет
разберись с сокетами и как они работают, будет тебе счастье
Alex
этот вечер перестает быть томным
tfhx8
да
я просто не вкурсе, если переписать обычный код python на cython, его сможет запускать тот же uwsgi?
Kirill
а как получатель что-то отправляет отправителю когда он тащемто получатель
Читатель ничего не отправляет, он "сидит" и ждёт когда у него дёрнут метод read, из которого он и должен вернуть пачку данных
Tishka17
https://t.me/ru_python/982214 а вот это вот что?
Slam!
"Отправитель" вызывает метод read у "читателя", когда ему нужны данные. Если они ему не нужны - он не вызывает его.
Отправитель к читателю никакого доступа не имеет, между ними посредник в лице file-like объекта
tfhx8
да, можно. почему нет?
просто не находил примеров как это сделать. А ты про бовал использовать cython? Сильные с ним изменения по сравнению с обычным питоном?
Slam!
https://t.me/ru_python/982214 а вот это вот что?
Там нет другого метода для отправки файла
Kirill
Отправитель к читателю никакого доступа не имеет, между ними посредник в лице file-like объекта
Ну и что тебя тут смущает. Ты программист или философ? Никто не мешает сделать такой file-like объект, который внутри себя содержит "поток входящих данных" из которых он будет тянуть байтики
Andrey
Простите у меня горит >>> import fractions >>> fractions.gcd(4,-2) -2 >>> import math >>> math.gcd(4, -2) 2
tfhx8
зависит от того какую задачу ты пытаешься решить
находил примеры как просто переписывают обычные методы питона на ситон. Но как просто переписать метод питона который находится в классе? Ведь у него первый аргумент self, знаешькак?
tfhx8
нахуя тебе cython ты можешь объяснить?
чтобы ускорить выполнение некоторых методов)
Julian 🏳️‍🌈
Шобы код никто глянуть не мог
Julian 🏳️‍🌈
Kirill
Так этот "поток входящих данных" создаёт "получатель"
Так, херня уже какая-то. Надо переходит к конкретному коду, объяснения на словах заводят только в тупик. Покажи свой код, который "принимает" данные, которые он дальше должен отправить куда-то ещё.
Alex
> Ведь у него первый аргумент self, и что? примеров описания классов на cython есть в документации
Alex
чтобы ускорить выполнение некоторых методов)
ты уверен в том что их нужно ускорять?
Alex
ты уверен что переписывание на cython их ускорит?
tfhx8
Шобы код никто глянуть не мог
вот это тоже было бы не плохо)
tfhx8
> Ведь у него первый аргумент self, и что? примеров описания классов на cython есть в документации
тут тогда весь класс переделывать придется, а мне надо то только метод к примеру)
tfhx8
tfhx8
ты уверен что переписывание на cython их ускорит?
хз, но обычно пишут, что ситон всегда быстере обычного питона
Julian 🏳️‍🌈
хз, но обычно пишут, что ситон всегда быстере обычного питона
И обычно делают это на примере какого-то факториала
Tishka17
ты уверен что переписывание на cython их ускорит?
вот мне бы ускорить, но так лень
Julian 🏳️‍🌈
хз, но обычно пишут, что ситон всегда быстере обычного питона
А еще пишут, что код на go быстрее кода на питоне
Tishka17
я когда ткнул в cython без изменений кода у меня метод стал работать процентов на 30 сразу быстрее
tfhx8
И обычно делают это на примере какого-то факториала
да, я этот пример и видел). А сдругими не так? Не пробовал?