Вопросы по теме 'conduit'
Бесконечная петля в источнике с каналом
Я решил попробовать разобраться с каналом, и я думал, что у меня все хорошо, но когда я пытаюсь сделать этот простой источник с каналом 4, я получаю бесконечный цикл, и я не понимаю, почему. Это упрощено, исходная версия создавала бы временное имя...
212 просмотров
schedule
28.05.2023
WAI/Warp ResponseSource очистка
Не могу понять, как выполнить очистку, когда HTTP-клиент разрывает соединение (или происходит что-то другое в реальном мире ). Я пытался обернуть свой Source в addCleanup , но он не вызывается.
Вот мой минимальный пример бесконечной строки...
237 просмотров
schedule
29.11.2022
Преобразование запроса Haskell WAI в запрос Network.HTTP.Conduit
Я пишу сервер, и мне нужно переслать определенное сообщение запроса. Это сообщение в основном представляет собой сообщение POST (или GET), возможно, содержащее файл размером в несколько мегабайт. Это сообщение перенаправляется на другой сервер,...
201 просмотров
schedule
08.01.2023
Как объединить несколько каналов в один или наоборот
Можно ли объединить несколько каналов в один или наоборот?
Я борюсь с реализацией следующих функций.
merge :: (Monad m) => [Pipe l i o u m r] -> Pipe [l] [i] [o] m [r]
split :: (Monad m) => Pipe [l] [i] [o] m [r] -> [Pipe l i o u m...
1123 просмотров
schedule
09.10.2022
Объединение строк из файлов с отметками времени, полученными из имен файлов
У меня есть каталог, полный файлов дампа CSV, которые мне нужно проанализировать и обработать. Каждое имя файла содержит отметку времени, которую я знаю, как извлечь. Затем мне нужно обработать все строки из дампов, но для каждой строки мне нужно...
147 просмотров
schedule
01.06.2023
Как прочитать содержимое загруженного файла
Я пытаюсь загрузить файл CSV и проанализировать его в таблице, которая в конечном итоге будет сохранена в БД. Я играл с примером загрузки файлов Yesod, но не могу заставить его работать с последней версией Yesod. Я использую Yesod 1.2.5.2 and GHC...
328 просмотров
schedule
12.06.2022
Невозможно восстановить ошибки в Conduit
Я пытаюсь понять, как ловить ошибки, возникающие в каналах. Я полагал, что, применив catchC к каналу, я смогу создать новый канал, который будет работать повторно в случае отказа.
В приведенном ниже примере у нас есть источник, который, в...
96 просмотров
schedule
30.03.2023
Haskell Conduit: наличие Sink, возвращающего значение на основе значений из восходящего потока
Я пытался использовать библиотеку Conduit для простого ввода-вывода с использованием файлов, но у меня возникли трудности.
У меня есть текстовый файл, содержащий только несколько цифр, таких как 1234 . У меня есть функция, которая читает файл,...
332 просмотров
schedule
14.02.2023
Почему await всегда возвращает Nothing при использовании сетевых каналов?
Я пытаюсь научиться пользоваться проводниками. У меня есть канал, который принимает строки байтов и группирует их в пакеты, представляющие действия, отправляемые на сервер. Затем у меня есть канал, который принимает эти пакеты, обрабатывает их и...
95 просмотров
schedule
14.03.2023
Data.ByteString.Char8 не экспортирует stripSuffix
Я работаю над потоком ByteStrings. Я импортировал ByteString через:
import qualified Data.ByteString as B
Я могу вызвать любую функцию из библиотеки ByteString, например:
reverseBS :: Monad m => Conduit B.ByteString m B.ByteString...
190 просмотров
schedule
26.07.2022
Исключение канала
Я не мог понять, как заставить работать sourceDirectory и catchC .
src = (sourceDirectory "/does/not/exist/input.txt" $$ C.print) `catchC` \e ->
yield (pack $ "Could not read input file: " ++ show (e :: IOException))
Идея состоит в...
226 просмотров
schedule
22.04.2022
Идиоматическая предварительная выборка в потоковой библиотеке
Я работаю с библиотекой потоковой передачи , но приму ответ, используя каналы или канал.
Скажи, что у меня есть
import Streaming (Stream, Of)
import qualified Streaming.Prelude as S
streamChunks :: Int -> Stream (Of Thing) IO ()...
198 просмотров
schedule
29.07.2022
Решение No instance for с однопроходным каналом
Учитывая следующий код:
import Data.Attoparsec.Text
import qualified Conduit as C
import qualified Data.Conduit.Combinators as CC
f :: FilePath -> FilePath -> IO ()
f infile outfile =
runResourceT $
CC.sourceFile infile $$...
133 просмотров
schedule
31.05.2023
какова связь между Haskell FreeT и типом Coroutine
В статье «Конвейеры сопрограмм» в Monad.Reader Issue 19 автор определяет универсальный тип Coroutine :
newtype Coroutine f m a = Coroutine
{ resume :: m (Either (f (Coroutine f m a)) a)
}
Я заметил, что этот тип очень похож на версию...
513 просмотров
schedule
10.05.2023
Как преобразовать монады в кондуитный конвейер?
Я пытаюсь скопировать файл с диска в файл в MongoDB GridFS с пакетами Database.MongoDB.
main :: IO ()
main = do
pipe <- MDB.connect (host "127.0.0.1")
_ <- access pipe master "baseball" run
close pipe
run :: MDB.Action IO GFS.File
run...
94 просмотров
schedule
22.02.2023
Нетривиальный протокол с использованием канала Haskell
Я пытаюсь понять, как реализовать нетривиальный протокол (через TCP) с использованием канала Haskell. Примеры того, что я считаю нетривиальным:
Прочитайте некоторые байты заголовка и, если они соответствуют ожидаемому, проигнорируйте их и...
118 просмотров
schedule
12.05.2022