[{"data":1,"prerenderedAt":7105},["ShallowReactive",2],{"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpulsar-app":3,"navigation-developers":2830,"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpulsar":4820,"surr-\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpulsar":7102},{"id":4,"title":5,"author":6,"body":7,"description":2820,"extension":2821,"meta":2822,"navigation":2824,"path":2825,"seo":2826,"sitemap":2827,"stem":2828,"__hash__":2829},"content\u002F2.developers\u002F5.API-docs\u002F7.pathway-io\u002F385.pulsar.md","pw.io.pulsar",null,{"type":8,"value":9,"toc":2803},"minimark",[10,14,28,33,53,76,99,103,112,122,145,156,160,167,185,195,200,282,289,299,303,371,379,383,437,440,456,475,481,668,681,685,756,765,781,791,794,807,820,830,1178,1180,1194,1333,1346,1412,1418,1509,1512,1636,1639,1778,1781,1872,1883,2073,2082,2094,2113,2313,2315,2322,2391,2403,2449,2458,2542,2551,2625,2631,2711,2716,2799],[11,12,5],"h1",{"id":13},"pwiopulsar",[15,16,17,21,22,27],"p",{},[18,19,20],"strong",{},"This module is available when using one of the following licenses only:"," ",[23,24,26],"a",{"href":25},"\u002Fpricing","Pathway Scale, Pathway Enterprise",".",[29,30,32],"h2",{"id":31},"authentication","Authentication",[15,34,35,36,40,41,44,45,48,49,52],{},"The connectors support the two most common Pulsar authentication mechanisms.\nThe mechanism is passed in the ",[37,38,39],"code",{},"auth"," parameter of both ",[37,42,43],{},"read"," and\n",[37,46,47],{},"write","; ",[37,50,51],{},"None"," (the default) connects without authentication:",[54,55,56,67],"ul",{},[57,58,59,62,63,66],"li",{},[18,60,61],{},"Token authentication",": ",[37,64,65],{},"auth=TokenAuthentication(token)"," presents the\ntoken (for example, a JWT) to the broker.",[57,68,69,62,72,75],{},[18,70,71],{},"OAuth2 client credentials",[37,73,74],{},"auth=OAuth2Authentication(issuer_url,   credentials_url, audience=..., scope=...)"," obtains an access token from the\nprovider and refreshes it automatically.",[15,77,78,79,82,83,86,87,90,91,94,95,98],{},"Whether the connection is encrypted is determined by the scheme of the service\nURI passed as ",[37,80,81],{},"uri"," (the ",[37,84,85],{},"pulsar+ssl"," scheme enables TLS). For encrypted\nconnections, the CA certificate used to verify the broker can be given in\n",[37,88,89],{},"tls_settings"," (",[37,92,93],{},"TLSSettings.root_cert_path",");\n",[37,96,97],{},"TLSSettings.trust_certificates"," disables the verification for development\nsetups. Mutual TLS (client certificate) authentication is not supported.",[29,100,102],{"id":101},"delivery-semantics","Delivery semantics",[15,104,105,106,109,110,27],{},"The input connector has two reading mechanisms, selected by the\n",[37,107,108],{},"subscription_type"," parameter of ",[37,111,43],{},[15,113,114,115,90,118,121],{},"The ",[18,116,117],{},"partition-reader mode",[37,119,120],{},"subscription_type=\"reader\"",") treats every\npartition of the topic as an independent replayable log, the way Kafka\nconsumers treat theirs: the partitions are split between the workers, each is\nconsumed from an explicit position, and the per-partition positions of the\ndelivered messages are recorded in the persistence checkpoint. A restarted\npipeline resumes every partition exactly after the last checkpointed position,\nre-reading the uncheckpointed tail from the topic itself — so the recovery\nneither loses messages nor processes them twice, regardless of how many\nworkers the pipeline runs or where the crash landed. This is the only\nmechanism allowed with persistence (and the implicit choice when persistence\nis enabled), because it is the only one whose recovery does not depend on\nbroker-side state. The operational requirement it inherits from the Kafka\nmodel: the topic retention must be long enough to still hold the\nuncheckpointed tail when the pipeline restarts.",[15,123,114,124,90,127,130,131,130,134,137,138,141,142,144],{},[18,125,126],{},"subscription modes",[37,128,129],{},"\"shared\"",", ",[37,132,133],{},"\"key_shared\"",[37,135,136],{},"\"exclusive\"",",\n",[37,139,140],{},"\"failover\"",") read through a broker-side subscription whose cursor advances\nas the messages are consumed. They are the right choice for non-persistent\nstreaming — ",[37,143,129],{}," in particular scales beyond the partition count —\nbut a subscription cursor cannot replay a precise message range, so these\nmodes are rejected when persistence is enabled.",[15,146,147,148,151,152,155],{},"The output connector attaches the Pathway minibatch time and the type of each\nupdate as the ",[37,149,150],{},"pathway_time"," and ",[37,153,154],{},"pathway_diff"," message properties, and\nassigns every message a partition key, so the updates of a single row stay in\none partition and keep their order. The write delivery is at-least-once: a\nretried send after a broker hiccup may duplicate a message.",[29,157,159],{"id":158},"performance","Performance",[15,161,162,163,166],{},"The numbers below come from end-to-end benchmarks: for the write side,\nPathway reads a CSV dataset, does basic per-row processing, and publishes\nevery row to a Pulsar topic as one JSON message; for the read side, Pathway\ndrains a prefilled topic into a null sink. They therefore reflect ",[18,164,165],{},"Pathway +\nthe input source + Pulsar together, out of the box",", not Pulsar’s standalone\nceiling. Every run is verified for correctness: the number of messages\ncommitted to (or delivered from) the topic must equal the row count exactly.",[15,168,169,172,173,176,177,180,181,184],{},[18,170,171],{},"Hardware."," A single-socket ",[18,174,175],{},"AMD Ryzen 9 5900X"," (Zen 3, 12 cores \u002F 24\nthreads, one NUMA node), 125 GiB of RAM, with an ",[18,178,179],{},"NVMe SSD"," backing the\nbroker storage. Pulsar ran as the stock ",[37,182,183],{},"apachepulsar\u002Fpulsar:4.0.4"," Docker\nimage in the standalone mode, at its default configuration. The Pathway and\nPulsar containers were each pinned to their own core-complex die (6 cores\nwith a private 32 MiB L3).",[15,186,187,190,191,194],{},[18,188,189],{},"Write throughput."," End-to-end wall-clock time to read a 20 M-row, 64-shard\nCSV dataset (",[18,192,193],{},"≈ 0.93 GB",") and publish every row to a Pulsar topic, swept\nover the number of Pathway workers (median of 3 runs):",[196,197,199],"h3",{"id":198},"pulsar-publish-throughput-by-worker-count","Pulsar publish throughput by worker count",[201,202,203,222],"table",{},[204,205,206],"thead",{},[207,208,209,213,216,219],"tr",{},[210,211,212],"th",{},"Pathway workers",[210,214,215],{},"End-to-end time",[210,217,218],{},"Throughput",[210,220,221],{},"Speedup",[223,224,225,240,254,268],"tbody",{},[207,226,227,231,234,237],{},[228,229,230],"td",{},"1",[228,232,233],{},"64.9 s",[228,235,236],{},"≈ 308 300 rows\u002Fs",[228,238,239],{},"1.00×",[207,241,242,245,248,251],{},[228,243,244],{},"2",[228,246,247],{},"54.2 s",[228,249,250],{},"≈ 369 300 rows\u002Fs",[228,252,253],{},"1.20×",[207,255,256,259,262,265],{},[228,257,258],{},"4",[228,260,261],{},"39.3 s",[228,263,264],{},"≈ 509 400 rows\u002Fs",[228,266,267],{},"1.65×",[207,269,270,273,276,279],{},[228,271,272],{},"8",[228,274,275],{},"32.2 s",[228,277,278],{},"≈ 622 100 rows\u002Fs",[228,280,281],{},"2.02×",[15,283,284,285,288],{},"Publishing to a partitioned topic performs about the same at 1–2 workers and\n10–12% better at 4–8 workers, where the parallel per-partition write paths\nrelieve the broker (",[18,286,287],{},"≈ 694 000 rows\u002Fs"," on 8 workers with 8 partitions).",[15,290,291,294,295,298],{},[18,292,293],{},"Read throughput."," Time to drain a topic prefilled with the same 20 M\nmessages (median of 3 runs). The two reading mechanisms differ considerably.\nThrough a ",[18,296,297],{},"shared subscription"," on a non-partitioned topic:",[196,300,302],{"id":301},"pulsar-read-throughput-shared-subscription","Pulsar read throughput, shared subscription",[201,304,305,318],{},[204,306,307],{},[207,308,309,311,314,316],{},[210,310,212],{},[210,312,313],{},"Drain time",[210,315,218],{},[210,317,221],{},[223,319,320,332,345,358],{},[207,321,322,324,327,330],{},[228,323,230],{},[228,325,326],{},"119.8 s",[228,328,329],{},"≈ 167 000 rows\u002Fs",[228,331,239],{},[207,333,334,336,339,342],{},[228,335,244],{},[228,337,338],{},"66.4 s",[228,340,341],{},"≈ 301 200 rows\u002Fs",[228,343,344],{},"1.80×",[207,346,347,349,352,355],{},[228,348,258],{},[228,350,351],{},"42.8 s",[228,353,354],{},"≈ 466 900 rows\u002Fs",[228,356,357],{},"2.80×",[207,359,360,362,365,368],{},[228,361,272],{},[228,363,364],{},"35.9 s",[228,366,367],{},"≈ 557 300 rows\u002Fs",[228,369,370],{},"3.34×",[15,372,373,374,90,376,378],{},"In the ",[18,375,117],{},[37,377,120],{},") on a topic\nwith 8 partitions, both without and with persistence enabled:",[196,380,382],{"id":381},"pulsar-read-throughput-partition-reader-mode-8-partitions","Pulsar read throughput, partition-reader mode, 8 partitions",[201,384,385,396],{},[204,386,387],{},[207,388,389,391,393],{},[210,390,212],{},[210,392,218],{},[210,394,395],{},"Throughput with persistence",[223,397,398,407,417,427],{},[207,399,400,402,405],{},[228,401,230],{},[228,403,404],{},"≈ 688 100 rows\u002Fs",[228,406,404],{},[207,408,409,411,414],{},[228,410,244],{},[228,412,413],{},"≈ 1 245 600 rows\u002Fs",[228,415,416],{},"≈ 1 260 900 rows\u002Fs",[207,418,419,421,424],{},[228,420,258],{},[228,422,423],{},"≈ 1 877 100 rows\u002Fs",[228,425,426],{},"≈ 1 507 800 rows\u002Fs",[207,428,429,431,434],{},[228,430,272],{},[228,432,433],{},"≈ 1 986 100 rows\u002Fs",[228,435,436],{},"≈ 1 693 200 rows\u002Fs",[15,438,439],{},"The reader mode is about 4× faster per worker because a shared subscription\nmust acknowledge every delivered message individually to the broker, while\nthe reader mode tracks the read positions on the client side and sends no\nacknowledgements at all. Persistence comes for free at 1–2 workers and costs\n15–20% at 4–8 workers, where the drain is short enough for the fixed\nsnapshotting overhead to show.",[15,441,442,443,449,450,455],{},"For the full methodology, dataset generator, and reproduction steps, see the\n",[23,444,448],{"href":445,"rel":446},"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway-benchmarks\u002Ftree\u002Fmain\u002Fconnectors\u002Fpulsar-bulk-write",[447],"nofollow","pulsar-bulk-write","\nand ",[23,451,454],{"href":452,"rel":453},"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway-benchmarks\u002Ftree\u002Fmain\u002Fconnectors\u002Fpulsar-bulk-read",[447],"pulsar-bulk-read","\ndirectories of the Pathway benchmarks repository.",[29,457,459,21,465,468,469,474],{"id":458},"pathway.io.pulsar.OAuth2Authentication",[460,461,464],"span",{"className":462},[463],"sphinx-class-annotation","class ",[18,466,467],{},"OAuth2Authentication","(",[460,470,473],{"className":471},[472],"sphinx-paramslist","issuer_url, credentials_url, audience=None, scope=None",")",[23,476,480],{"className":477,"href":479},[478],"sphinx-source-url","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fpython\u002Fpathway\u002Fio\u002Fpulsar\u002F__init__.py#L50-L94","[source]",[482,483,486,489,492,546,549],"div",{"className":484},[485],"sphinx-class-content",[15,487,488],{},"OAuth2 client-credentials authentication for the Pulsar connectors.",[15,490,491],{},"An access token is obtained from the OAuth2 authentication provider and\nrefreshed automatically. This mechanism is used by StreamNative Cloud and\nsimilar managed installations.",[54,493,494],{},[57,495,496,499],{},[18,497,498],{},"Parameters",[54,500,501,510,525,536],{},[57,502,503,90,506,509],{},[18,504,505],{},"issuer_url",[37,507,508],{},"str",") – The URL of the OAuth2 authentication provider.",[57,511,512,90,515,517,518,151,521,524],{},[18,513,514],{},"credentials_url",[37,516,508],{},") – The URL of the OAuth2 credentials file. Both\n",[37,519,520],{},"file:\u002F\u002F",[37,522,523],{},"data:\u002F\u002F"," URLs are supported.",[57,526,527,90,530,532,533,535],{},[18,528,529],{},"audience",[37,531,508],{}," | ",[37,534,51],{},") – The audience identifier of the Pulsar cluster, if required\nby the provider.",[57,537,538,90,541,532,543,545],{},[18,539,540],{},"scope",[37,542,508],{},[37,544,51],{},") – The OAuth2 scope to request, if required by the provider.",[15,547,548],{},"Example:",[550,551,556],"pre",{"className":552,"code":553,"language":554,"meta":555,"style":555},"language-python shiki shiki-themes material-theme-palenight","import pathway as pw\nauth = pw.io.pulsar.OAuth2Authentication(\n    issuer_url=\"https:\u002F\u002Fauth.streamnative.cloud\u002F\",\n    credentials_url=\"file:\u002F\u002F\u002Fpath\u002Fto\u002Fcredentials.json\",\n    audience=\"urn:sn:pulsar:my-org:my-instance\",\n)\n","python","",[37,557,558,576,608,628,645,662],{"__ignoreMap":555},[460,559,562,566,570,573],{"class":560,"line":561},"line",1,[460,563,565],{"class":564},"s6cf3","import",[460,567,569],{"class":568},"s0W1g"," pathway ",[460,571,572],{"class":564},"as",[460,574,575],{"class":568}," pw\n",[460,577,579,582,586,589,591,595,597,600,602,605],{"class":560,"line":578},2,[460,580,581],{"class":568},"auth ",[460,583,585],{"class":584},"sAklC","=",[460,587,588],{"class":568}," pw",[460,590,27],{"class":584},[460,592,594],{"class":593},"s-wAU","io",[460,596,27],{"class":584},[460,598,599],{"class":593},"pulsar",[460,601,27],{"class":584},[460,603,467],{"class":604},"sdLwU",[460,606,607],{"class":584},"(\n",[460,609,611,615,617,620,624,626],{"class":560,"line":610},3,[460,612,614],{"class":613},"s7ZW3","    issuer_url",[460,616,585],{"class":584},[460,618,619],{"class":584},"\"",[460,621,623],{"class":622},"sfyAc","https:\u002F\u002Fauth.streamnative.cloud\u002F",[460,625,619],{"class":584},[460,627,137],{"class":584},[460,629,631,634,636,638,641,643],{"class":560,"line":630},4,[460,632,633],{"class":613},"    credentials_url",[460,635,585],{"class":584},[460,637,619],{"class":584},[460,639,640],{"class":622},"file:\u002F\u002F\u002Fpath\u002Fto\u002Fcredentials.json",[460,642,619],{"class":584},[460,644,137],{"class":584},[460,646,648,651,653,655,658,660],{"class":560,"line":647},5,[460,649,650],{"class":613},"    audience",[460,652,585],{"class":584},[460,654,619],{"class":584},[460,656,657],{"class":622},"urn:sn:pulsar:my-org:my-instance",[460,659,619],{"class":584},[460,661,137],{"class":584},[460,663,665],{"class":560,"line":664},6,[460,666,667],{"class":584},")\n",[29,669,671,21,674,468,677,474],{"id":670},"pathway.io.pulsar.TokenAuthentication",[460,672,464],{"className":673},[463],[18,675,676],{},"TokenAuthentication",[460,678,680],{"className":679},[472],"token",[23,682,480],{"className":683,"href":684},[478],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fpython\u002Fpathway\u002Fio\u002Fpulsar\u002F__init__.py#L26-L47",[482,686,688,691,694,708,710],{"className":687},[485],[15,689,690],{},"Token-based authentication for the Pulsar connectors.",[15,692,693],{},"The token (for example, a JWT) is presented to the broker when the\nconnection is established. This is the most common authentication\nmechanism, supported by most managed Pulsar installations.",[54,695,696],{},[57,697,698,700,703,90,705,707],{},[18,699,498],{},[701,702],"br",{},[18,704,680],{},[37,706,508],{},") – The authentication token.",[15,709,548],{},[550,711,713],{"className":552,"code":712,"language":554,"meta":555,"style":555},"import pathway as pw\nauth = pw.io.pulsar.TokenAuthentication(\"my-jwt-token\")\n",[37,714,715,725],{"__ignoreMap":555},[460,716,717,719,721,723],{"class":560,"line":561},[460,718,565],{"class":564},[460,720,569],{"class":568},[460,722,572],{"class":564},[460,724,575],{"class":568},[460,726,727,729,731,733,735,737,739,741,743,745,747,749,752,754],{"class":560,"line":578},[460,728,581],{"class":568},[460,730,585],{"class":584},[460,732,588],{"class":568},[460,734,27],{"class":584},[460,736,594],{"class":593},[460,738,27],{"class":584},[460,740,599],{"class":593},[460,742,27],{"class":584},[460,744,676],{"class":604},[460,746,468],{"class":584},[460,748,619],{"class":584},[460,750,751],{"class":622},"my-jwt-token",[460,753,619],{"class":584},[460,755,667],{"class":584},[29,757,759,468,761,474],{"id":758},"pathway.io.pulsar.read",[18,760,43],{},[460,762,764],{"className":763},[472],"uri, topic, *, schema=None, format='raw', mode='streaming', subscription_name=None, subscription_type=None, autocommit_duration_ms=1500, json_field_paths=None, start_from='beginning', start_from_timestamp_ms=None, auth=None, tls_settings=None, name=None, max_backlog_size=None, debug_data=None, **kwargs",[15,766,767,774,775,780],{},[23,768,771],{"className":769,"href":770},[478],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fpython\u002Fpathway\u002Fio\u002Fpulsar\u002F__init__.py#L125-L393",[460,772,773],{},"source","Reads data from an ",[23,776,779],{"href":777,"rel":778},"https:\u002F\u002Fpulsar.apache.org\u002F",[447],"Apache Pulsar"," topic.",[15,782,783,784,786,787,790],{},"The connector has two reading mechanisms, chosen by ",[37,785,108],{},":\nthe Kafka-like partition-reader mode (the only one allowed with\npersistence, where it recovers without losing or duplicating messages)\nand the broker-side subscription modes. Their semantics and trade-offs\nare described in the ",[788,789,102],"em",{}," section above.",[15,792,793],{},"In the static mode the connector reads the messages that exist in the topic at\nthe start of the computation and finishes afterwards, always through the\npartition-reader mechanism; no cursor is left behind on the broker.",[15,795,796,797,130,800,803,804,27],{},"There are three formats supported: ",[37,798,799],{},"\"plaintext\"",[37,801,802],{},"\"raw\"",", and ",[37,805,806],{},"\"json\"",[15,808,809,810,812,813,815,816,819],{},"For the ",[37,811,802],{}," format, the payload is read as raw bytes and added directly to\nthe table. In the ",[37,814,799],{}," format, the payload is decoded from UTF-8 and\nstored as plain text. In both cases, the table will have a ",[37,817,818],{},"\"data\""," column\nrepresenting the payload.",[15,821,822,823,825,826,829],{},"If ",[37,824,806],{}," is chosen, the connector parses the message payload as JSON and\ncreates table columns based on the schema provided in the ",[37,827,828],{},"schema"," parameter.",[54,831,832,1167],{},[57,833,834,836],{},[18,835,498],{},[54,837,838,853,861,882,907,929,944,993,1007,1034,1073,1085,1110,1141,1151,1161],{},[57,839,840,90,842,844,845,848,849,852],{},[18,841,81],{},[37,843,508],{},") – The Pulsar service URI, e.g. ",[37,846,847],{},"pulsar:\u002F\u002Flocalhost:6650"," or\n",[37,850,851],{},"pulsar+ssl:\u002F\u002Fmy-cluster:6651"," for a TLS-encrypted connection.",[57,854,855,90,858,860],{},[18,856,857],{},"topic",[37,859,508],{},") – The name of the topic to read from.",[57,862,863,90,865,868,869,875,876,878,879,881],{},[18,864,828],{},[37,866,867],{},"type","[",[23,870,872],{"href":871},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway#pathway.Schema",[37,873,874],{},"Schema","] | ",[37,877,51],{},") – Schema of the resulting table. Required for the ",[37,880,806],{}," format.",[57,883,884,90,887,868,890,130,893,130,896,899,900,130,902,904,905,27],{},[18,885,886],{},"format",[37,888,889],{},"Literal",[37,891,892],{},"'plaintext'",[37,894,895],{},"'raw'",[37,897,898],{},"'json'","]) – Format of the incoming messages: ",[37,901,799],{},[37,903,802],{},", or\n",[37,906,806],{},[57,908,909,90,912,868,914,130,917,920,921,924,925,928],{},[18,910,911],{},"mode",[37,913,889],{},[37,915,916],{},"'streaming'",[37,918,919],{},"'static'","]) – Denotes how the engine polls the topic for the new data. If set to\n",[37,922,923],{},"\"streaming\"",", it waits for new messages indefinitely. Otherwise, in\nthe ",[37,926,927],{},"\"static\""," mode, it reads the messages that are present in the\ntopic at the start of the computation and finishes.",[57,930,931,90,934,532,936,938,939,151,941,943],{},[18,932,933],{},"subscription_name",[37,935,508],{},[37,937,51],{},") – The name of the Pulsar subscription to attach to, for\nthe subscription-based reading mechanisms. Providing an explicit\nname creates a durable subscription: its cursor survives pipeline\nredeployments and can be inspected by external tools, but it also\npins the topic backlog on the broker until the subscription is\nremoved, so its lifecycle is the user’s responsibility. If not\nset, the connector generates a per-run name and subscribes\nnon-durably, leaving no state behind on the broker; multi-process\nruns of the ",[37,940,129],{},[37,942,133],{}," types require an\nexplicit name, because every process must attach to one shared\nsubscription. The partition-reader mode does not create\nbroker-side subscriptions and ignores this parameter.",[57,945,946,90,948,868,951,868,953,130,956,130,959,130,962,130,965,968,969,972,973,975,976,978,979,151,981,983,984,986,987,989,990,992],{},[18,947,108],{},[37,949,950],{},"Optional",[37,952,889],{},[37,954,955],{},"'reader'",[37,957,958],{},"'shared'",[37,960,961],{},"'key_shared'",[37,963,964],{},"'exclusive'",[37,966,967],{},"'failover'","]]) – The reading mechanism. ",[37,970,971],{},"\"reader\""," is the\nKafka-like partition-reader mode — required for (and implied by)\npersistence. The subscription modes are ",[37,974,129],{}," (messages\ndistributed between the workers without ordering guarantees),\n",[37,977,133],{}," (distributed by the hash of the message key, so\nthe messages with equal keys are processed in order by one\nworker), ",[37,980,136],{},[37,982,140],{}," (a single active\nconsumer, full order, one reading worker). ",[37,985,51],{}," (the\ndefault) selects ",[37,988,971],{}," when persistence is enabled and\n",[37,991,129],{}," otherwise. The static mode always uses the\npartition-reader mechanism and ignores this parameter.",[57,994,995,90,998,532,1001,1003,1004,1006],{},[18,996,997],{},"autocommit_duration_ms",[37,999,1000],{},"int",[37,1002,51],{},") – The maximum time between two commits. Every\n",[37,1005,997],{}," milliseconds, the updates received by the\nconnector are committed and pushed into Pathway’s computation graph.",[57,1008,1009,90,1012,868,1015,130,1017,875,1019,1021,1022,1024,1025,1028,1029,27],{},[18,1010,1011],{},"json_field_paths",[37,1013,1014],{},"dict",[37,1016,508],{},[37,1018,508],{},[37,1020,51],{},") – If the format is ",[37,1023,806],{},", this field allows to map field\nnames into path in the read json object. For the field which require such\nmapping, it should be given in the format ",[37,1026,1027],{},"\u003Cfield_name>: \u003Cpath to be   mapped>",", where the path to be mapped needs to be a\n",[23,1030,1033],{"href":1031,"rel":1032},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc6901",[447],"JSON Pointer (RFC 6901)",[57,1035,1036,90,1039,868,1041,130,1044,130,1047,1050,1051,1054,1055,1058,1059,1062,1063,1066,1067,1069,1070,1072],{},[18,1037,1038],{},"start_from",[37,1040,889],{},[37,1042,1043],{},"'beginning'",[37,1045,1046],{},"'end'",[37,1048,1049],{},"'timestamp'","]) – The position to start reading from, if the subscription does not\nexist yet: ",[37,1052,1053],{},"\"beginning\""," reads the topic from the earliest available\nmessage, ",[37,1056,1057],{},"\"end\""," reads only the messages published after the\ncomputation start, and ",[37,1060,1061],{},"\"timestamp\""," delivers only the messages whose\npublish timestamp is at least ",[37,1064,1065],{},"start_from_timestamp_ms"," (the earlier\nmessages are consumed and skipped). If the subscription already exists,\nthe reading continues from its cursor and the earlier messages are not\nre-read. ",[37,1068,1057],{}," cannot be combined with persistence — its position\nwould be re-resolved at every restart, losing the downtime window; use\n",[37,1071,1061],{}," with an explicit timestamp instead.",[57,1074,1075,90,1077,532,1079,1081,1082,27],{},[18,1076,1065],{},[37,1078,1000],{},[37,1080,51],{},") – The publish timestamp, in milliseconds since the\nUNIX epoch, to start reading from. Requires\n",[37,1083,1084],{},"start_from=\"timestamp\"",[57,1086,1087,90,1089,532,1094,532,1099,1101,1102,137,1104,1106,1107,1109],{},[18,1088,39],{},[23,1090,1092],{"href":1091},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io-pulsar#pathway.io.pulsar.TokenAuthentication",[37,1093,676],{},[23,1095,1097],{"href":1096},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io-pulsar#pathway.io.pulsar.OAuth2Authentication",[37,1098,467],{},[37,1100,51],{},") – The authentication mechanism: ",[37,1103,676],{},[37,1105,467],{},", or ",[37,1108,51],{}," for clusters without\nauthentication.",[57,1111,1112,90,1114,532,1120,1122,1123,1125,1126,1129,1130,1133,1134,1136,1137,1140],{},[18,1113,89],{},[23,1115,1117],{"href":1116},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io#pathway.io.TLSSettings",[37,1118,1119],{},"TLSSettings",[37,1121,51],{},") – TLS connection settings. Use ",[37,1124,1119],{}," to provide the CA\ncertificate used to verify the broker (",[37,1127,1128],{},"root_cert_path",") or, for\ndevelopment setups, to accept any broker certificate\n(",[37,1131,1132],{},"trust_certificates=True","). The connection is encrypted when the\n",[37,1135,81],{}," uses the ",[37,1138,1139],{},"pulsar+ssl:\u002F\u002F"," scheme. Mutual TLS (client\ncertificate) authentication is not supported.",[57,1142,1143,90,1146,532,1148,1150],{},[18,1144,1145],{},"name",[37,1147,508],{},[37,1149,51],{},") – A unique name for the connector. If provided, this name will be used in\nlogs and monitoring dashboards. Additionally, if persistence is enabled,\nit will be used as the name for the snapshot that stores the connector’s\nprogress.",[57,1152,1153,90,1156,532,1158,1160],{},[18,1154,1155],{},"max_backlog_size",[37,1157,1000],{},[37,1159,51],{},") – Limit on the number of entries read from the input source\nand kept in processing at any moment. Reading pauses when the limit is\nreached and resumes as processing of some entries completes. Useful with\nlarge sources that emit an initial burst of data to avoid memory\nspikes.",[57,1162,1163,1166],{},[18,1164,1165],{},"debug_data"," – Static data replacing original one when debug mode is active.",[57,1168,1169,1172,1174,1177],{},[18,1170,1171],{},"Returns",[701,1173],{},[788,1175,1176],{},"Table"," – The table read.",[15,1179,548],{},[15,1181,1182,1183,1186,1187,1190,1191,1193],{},"Consider a topic ",[37,1184,1185],{},"\"measurements\""," on a broker running locally, with JSON\nmessages of the form ",[37,1188,1189],{},"{\"sensor_id\": \"front-door\", \"temperature\": 21.5}",".\nTo parse such messages into a two-column table, describe their fields with\na schema and pass it together with the ",[37,1192,806],{}," format — the connector\nthen creates one column per schema field:",[550,1195,1197],{"className":552,"code":1196,"language":554,"meta":555,"style":555},"import pathway as pw\nclass InputSchema(pw.Schema):\n    sensor_id: str\n    temperature: float\ntable = pw.io.pulsar.read(\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"measurements\",\n    format=\"json\",\n    schema=InputSchema,\n)\n",[37,1198,1199,1209,1231,1242,1252,1275,1286,1298,1315,1328],{"__ignoreMap":555},[460,1200,1201,1203,1205,1207],{"class":560,"line":561},[460,1202,565],{"class":564},[460,1204,569],{"class":568},[460,1206,572],{"class":564},[460,1208,575],{"class":568},[460,1210,1211,1215,1219,1221,1224,1226,1228],{"class":560,"line":578},[460,1212,1214],{"class":1213},"sJ14y","class",[460,1216,1218],{"class":1217},"s5Dmg"," InputSchema",[460,1220,468],{"class":584},[460,1222,1223],{"class":1217},"pw",[460,1225,27],{"class":584},[460,1227,874],{"class":1217},[460,1229,1230],{"class":584},"):\n",[460,1232,1233,1236,1239],{"class":560,"line":610},[460,1234,1235],{"class":568},"    sensor_id",[460,1237,1238],{"class":584},":",[460,1240,1241],{"class":1217}," str\n",[460,1243,1244,1247,1249],{"class":560,"line":630},[460,1245,1246],{"class":568},"    temperature",[460,1248,1238],{"class":584},[460,1250,1251],{"class":1217}," float\n",[460,1253,1254,1257,1259,1261,1263,1265,1267,1269,1271,1273],{"class":560,"line":647},[460,1255,1256],{"class":568},"table ",[460,1258,585],{"class":584},[460,1260,588],{"class":568},[460,1262,27],{"class":584},[460,1264,594],{"class":593},[460,1266,27],{"class":584},[460,1268,599],{"class":593},[460,1270,27],{"class":584},[460,1272,43],{"class":604},[460,1274,607],{"class":584},[460,1276,1277,1280,1282,1284],{"class":560,"line":664},[460,1278,1279],{"class":584},"    \"",[460,1281,847],{"class":622},[460,1283,619],{"class":584},[460,1285,137],{"class":584},[460,1287,1289,1291,1294,1296],{"class":560,"line":1288},7,[460,1290,1279],{"class":584},[460,1292,1293],{"class":622},"measurements",[460,1295,619],{"class":584},[460,1297,137],{"class":584},[460,1299,1301,1304,1306,1308,1311,1313],{"class":560,"line":1300},8,[460,1302,1303],{"class":613},"    format",[460,1305,585],{"class":584},[460,1307,619],{"class":584},[460,1309,1310],{"class":622},"json",[460,1312,619],{"class":584},[460,1314,137],{"class":584},[460,1316,1318,1321,1323,1326],{"class":560,"line":1317},9,[460,1319,1320],{"class":613},"    schema",[460,1322,585],{"class":584},[460,1324,1325],{"class":604},"InputSchema",[460,1327,137],{"class":584},[460,1329,1331],{"class":560,"line":1330},10,[460,1332,667],{"class":584},[15,1334,1335,1336,1338,1339,1342,1343,1345],{},"If the payloads are not JSON, the ",[37,1337,799],{}," format reads each message\ninto a single ",[37,1340,1341],{},"data"," column as a UTF-8 string (and ",[37,1344,802],{}," does the\nsame without decoding, producing bytes). No schema is needed:",[550,1347,1349],{"className":552,"code":1348,"language":554,"meta":555,"style":555},"table = pw.io.pulsar.read(\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"measurements\",\n    format=\"plaintext\",\n)\n",[37,1350,1351,1373,1383,1393,1408],{"__ignoreMap":555},[460,1352,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371],{"class":560,"line":561},[460,1354,1256],{"class":568},[460,1356,585],{"class":584},[460,1358,588],{"class":568},[460,1360,27],{"class":584},[460,1362,594],{"class":593},[460,1364,27],{"class":584},[460,1366,599],{"class":593},[460,1368,27],{"class":584},[460,1370,43],{"class":604},[460,1372,607],{"class":584},[460,1374,1375,1377,1379,1381],{"class":560,"line":578},[460,1376,1279],{"class":584},[460,1378,847],{"class":622},[460,1380,619],{"class":584},[460,1382,137],{"class":584},[460,1384,1385,1387,1389,1391],{"class":560,"line":610},[460,1386,1279],{"class":584},[460,1388,1293],{"class":622},[460,1390,619],{"class":584},[460,1392,137],{"class":584},[460,1394,1395,1397,1399,1401,1404,1406],{"class":560,"line":630},[460,1396,1303],{"class":613},[460,1398,585],{"class":584},[460,1400,619],{"class":584},[460,1402,1403],{"class":622},"plaintext",[460,1405,619],{"class":584},[460,1407,137],{"class":584},[460,1409,1410],{"class":560,"line":647},[460,1411,667],{"class":584},[15,1413,1414,1415,1417],{},"By default the reading starts from the earliest available message and\ncontinues indefinitely. For a bounded, batch-style computation, the\n",[37,1416,927],{}," mode reads only the messages present in the topic at the\nstart and then finishes the pipeline:",[550,1419,1421],{"className":552,"code":1420,"language":554,"meta":555,"style":555},"table = pw.io.pulsar.read(\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"measurements\",\n    format=\"json\",\n    schema=InputSchema,\n    mode=\"static\",\n)\n",[37,1422,1423,1445,1455,1465,1479,1489,1505],{"__ignoreMap":555},[460,1424,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443],{"class":560,"line":561},[460,1426,1256],{"class":568},[460,1428,585],{"class":584},[460,1430,588],{"class":568},[460,1432,27],{"class":584},[460,1434,594],{"class":593},[460,1436,27],{"class":584},[460,1438,599],{"class":593},[460,1440,27],{"class":584},[460,1442,43],{"class":604},[460,1444,607],{"class":584},[460,1446,1447,1449,1451,1453],{"class":560,"line":578},[460,1448,1279],{"class":584},[460,1450,847],{"class":622},[460,1452,619],{"class":584},[460,1454,137],{"class":584},[460,1456,1457,1459,1461,1463],{"class":560,"line":610},[460,1458,1279],{"class":584},[460,1460,1293],{"class":622},[460,1462,619],{"class":584},[460,1464,137],{"class":584},[460,1466,1467,1469,1471,1473,1475,1477],{"class":560,"line":630},[460,1468,1303],{"class":613},[460,1470,585],{"class":584},[460,1472,619],{"class":584},[460,1474,1310],{"class":622},[460,1476,619],{"class":584},[460,1478,137],{"class":584},[460,1480,1481,1483,1485,1487],{"class":560,"line":647},[460,1482,1320],{"class":613},[460,1484,585],{"class":584},[460,1486,1325],{"class":604},[460,1488,137],{"class":584},[460,1490,1491,1494,1496,1498,1501,1503],{"class":560,"line":664},[460,1492,1493],{"class":613},"    mode",[460,1495,585],{"class":584},[460,1497,619],{"class":584},[460,1499,1500],{"class":622},"static",[460,1502,619],{"class":584},[460,1504,137],{"class":584},[460,1506,1507],{"class":560,"line":1288},[460,1508,667],{"class":584},[15,1510,1511],{},"A token-authenticated read from a TLS-protected cluster, interested only\nin the messages published after the computation start:",[550,1513,1515],{"className":552,"code":1514,"language":554,"meta":555,"style":555},"table = pw.io.pulsar.read(\n    \"pulsar+ssl:\u002F\u002Fmy-cluster.example.com:6651\",\n    \"measurements\",\n    format=\"json\",\n    schema=InputSchema,\n    auth=pw.io.pulsar.TokenAuthentication(\"my-jwt-token\"),\n    start_from=\"end\",\n)\n",[37,1516,1517,1539,1550,1560,1574,1584,1616,1632],{"__ignoreMap":555},[460,1518,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537],{"class":560,"line":561},[460,1520,1256],{"class":568},[460,1522,585],{"class":584},[460,1524,588],{"class":568},[460,1526,27],{"class":584},[460,1528,594],{"class":593},[460,1530,27],{"class":584},[460,1532,599],{"class":593},[460,1534,27],{"class":584},[460,1536,43],{"class":604},[460,1538,607],{"class":584},[460,1540,1541,1543,1546,1548],{"class":560,"line":578},[460,1542,1279],{"class":584},[460,1544,1545],{"class":622},"pulsar+ssl:\u002F\u002Fmy-cluster.example.com:6651",[460,1547,619],{"class":584},[460,1549,137],{"class":584},[460,1551,1552,1554,1556,1558],{"class":560,"line":610},[460,1553,1279],{"class":584},[460,1555,1293],{"class":622},[460,1557,619],{"class":584},[460,1559,137],{"class":584},[460,1561,1562,1564,1566,1568,1570,1572],{"class":560,"line":630},[460,1563,1303],{"class":613},[460,1565,585],{"class":584},[460,1567,619],{"class":584},[460,1569,1310],{"class":622},[460,1571,619],{"class":584},[460,1573,137],{"class":584},[460,1575,1576,1578,1580,1582],{"class":560,"line":647},[460,1577,1320],{"class":613},[460,1579,585],{"class":584},[460,1581,1325],{"class":604},[460,1583,137],{"class":584},[460,1585,1586,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613],{"class":560,"line":664},[460,1587,1588],{"class":613},"    auth",[460,1590,585],{"class":584},[460,1592,1223],{"class":604},[460,1594,27],{"class":584},[460,1596,594],{"class":593},[460,1598,27],{"class":584},[460,1600,599],{"class":593},[460,1602,27],{"class":584},[460,1604,676],{"class":604},[460,1606,468],{"class":584},[460,1608,619],{"class":584},[460,1610,751],{"class":622},[460,1612,619],{"class":584},[460,1614,1615],{"class":584},"),\n",[460,1617,1618,1621,1623,1625,1628,1630],{"class":560,"line":1288},[460,1619,1620],{"class":613},"    start_from",[460,1622,585],{"class":584},[460,1624,619],{"class":584},[460,1626,1627],{"class":622},"end",[460,1629,619],{"class":584},[460,1631,137],{"class":584},[460,1633,1634],{"class":560,"line":1300},[460,1635,667],{"class":584},[15,1637,1638],{},"To replay the history from a specific moment instead — for example, the\nlast hour — pass the publish timestamp to start from. The messages\npublished earlier are skipped:",[550,1640,1642],{"className":552,"code":1641,"language":554,"meta":555,"style":555},"import time\ntable = pw.io.pulsar.read(\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"measurements\",\n    format=\"json\",\n    schema=InputSchema,\n    start_from=\"timestamp\",\n    start_from_timestamp_ms=int(time.time() * 1000) - 3600 * 1000,\n)\n",[37,1643,1644,1651,1673,1683,1693,1707,1717,1732,1774],{"__ignoreMap":555},[460,1645,1646,1648],{"class":560,"line":561},[460,1647,565],{"class":564},[460,1649,1650],{"class":568}," time\n",[460,1652,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671],{"class":560,"line":578},[460,1654,1256],{"class":568},[460,1656,585],{"class":584},[460,1658,588],{"class":568},[460,1660,27],{"class":584},[460,1662,594],{"class":593},[460,1664,27],{"class":584},[460,1666,599],{"class":593},[460,1668,27],{"class":584},[460,1670,43],{"class":604},[460,1672,607],{"class":584},[460,1674,1675,1677,1679,1681],{"class":560,"line":610},[460,1676,1279],{"class":584},[460,1678,847],{"class":622},[460,1680,619],{"class":584},[460,1682,137],{"class":584},[460,1684,1685,1687,1689,1691],{"class":560,"line":630},[460,1686,1279],{"class":584},[460,1688,1293],{"class":622},[460,1690,619],{"class":584},[460,1692,137],{"class":584},[460,1694,1695,1697,1699,1701,1703,1705],{"class":560,"line":647},[460,1696,1303],{"class":613},[460,1698,585],{"class":584},[460,1700,619],{"class":584},[460,1702,1310],{"class":622},[460,1704,619],{"class":584},[460,1706,137],{"class":584},[460,1708,1709,1711,1713,1715],{"class":560,"line":664},[460,1710,1320],{"class":613},[460,1712,585],{"class":584},[460,1714,1325],{"class":604},[460,1716,137],{"class":584},[460,1718,1719,1721,1723,1725,1728,1730],{"class":560,"line":1288},[460,1720,1620],{"class":613},[460,1722,585],{"class":584},[460,1724,619],{"class":584},[460,1726,1727],{"class":622},"timestamp",[460,1729,619],{"class":584},[460,1731,137],{"class":584},[460,1733,1734,1737,1739,1741,1743,1746,1748,1750,1753,1756,1760,1762,1765,1768,1770,1772],{"class":560,"line":1300},[460,1735,1736],{"class":613},"    start_from_timestamp_ms",[460,1738,585],{"class":584},[460,1740,1000],{"class":1217},[460,1742,468],{"class":584},[460,1744,1745],{"class":604},"time",[460,1747,27],{"class":584},[460,1749,1745],{"class":604},[460,1751,1752],{"class":584},"()",[460,1754,1755],{"class":584}," *",[460,1757,1759],{"class":1758},"sx098"," 1000",[460,1761,474],{"class":584},[460,1763,1764],{"class":584}," -",[460,1766,1767],{"class":1758}," 3600",[460,1769,1755],{"class":584},[460,1771,1759],{"class":1758},[460,1773,137],{"class":584},[460,1775,1776],{"class":560,"line":1317},[460,1777,667],{"class":584},[15,1779,1780],{},"The reading position lives in the broker-side subscription. By default the\nconnector generates a subscription name; providing an explicit one makes\nthe position survive pipeline redeployments (the next run continues from\nwhere the previous one stopped) and lets external tools inspect the\nsubscription’s backlog:",[550,1782,1784],{"className":552,"code":1783,"language":554,"meta":555,"style":555},"table = pw.io.pulsar.read(\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"measurements\",\n    format=\"json\",\n    schema=InputSchema,\n    subscription_name=\"my-pipeline\",\n)\n",[37,1785,1786,1808,1818,1828,1842,1852,1868],{"__ignoreMap":555},[460,1787,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806],{"class":560,"line":561},[460,1789,1256],{"class":568},[460,1791,585],{"class":584},[460,1793,588],{"class":568},[460,1795,27],{"class":584},[460,1797,594],{"class":593},[460,1799,27],{"class":584},[460,1801,599],{"class":593},[460,1803,27],{"class":584},[460,1805,43],{"class":604},[460,1807,607],{"class":584},[460,1809,1810,1812,1814,1816],{"class":560,"line":578},[460,1811,1279],{"class":584},[460,1813,847],{"class":622},[460,1815,619],{"class":584},[460,1817,137],{"class":584},[460,1819,1820,1822,1824,1826],{"class":560,"line":610},[460,1821,1279],{"class":584},[460,1823,1293],{"class":622},[460,1825,619],{"class":584},[460,1827,137],{"class":584},[460,1829,1830,1832,1834,1836,1838,1840],{"class":560,"line":630},[460,1831,1303],{"class":613},[460,1833,585],{"class":584},[460,1835,619],{"class":584},[460,1837,1310],{"class":622},[460,1839,619],{"class":584},[460,1841,137],{"class":584},[460,1843,1844,1846,1848,1850],{"class":560,"line":647},[460,1845,1320],{"class":613},[460,1847,585],{"class":584},[460,1849,1325],{"class":604},[460,1851,137],{"class":584},[460,1853,1854,1857,1859,1861,1864,1866],{"class":560,"line":664},[460,1855,1856],{"class":613},"    subscription_name",[460,1858,585],{"class":584},[460,1860,619],{"class":584},[460,1862,1863],{"class":622},"my-pipeline",[460,1865,619],{"class":584},[460,1867,137],{"class":584},[460,1869,1870],{"class":560,"line":1288},[460,1871,667],{"class":584},[15,1873,1874,1875,1878,1879,1882],{},"Finally, deduplication. The partition-reader recovery itself introduces no\nduplicates, but the topic may contain them for other reasons — a producer\nthat retried a send (including ",[37,1876,1877],{},"pw.io.pulsar.write",", whose delivery is\nat-least-once), or an upstream system that emits the same event twice. If\nthis matters for the downstream logic — for example, the pipeline counts\nevents — and the events carry a unique identifier, the duplicates can be\nremoved by grouping on that identifier: every copy of an event has the\nsame ",[37,1880,1881],{},"event_id",", so the group produces exactly one row regardless of how\nmany copies arrive:",[550,1884,1886],{"className":552,"code":1885,"language":554,"meta":555,"style":555},"class EventSchema(pw.Schema):\n    event_id: str\n    temperature: float\nevents = pw.io.pulsar.read(\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"measurements\",\n    format=\"json\",\n    schema=EventSchema,\n)\ndeduplicated = events.groupby(events.event_id).reduce(\n    events.event_id,\n    temperature=pw.reducers.earliest(events.temperature),\n)\n",[37,1887,1888,1905,1914,1922,1945,1955,1965,1979,1990,1994,2026,2038,2068],{"__ignoreMap":555},[460,1889,1890,1892,1895,1897,1899,1901,1903],{"class":560,"line":561},[460,1891,1214],{"class":1213},[460,1893,1894],{"class":1217}," EventSchema",[460,1896,468],{"class":584},[460,1898,1223],{"class":1217},[460,1900,27],{"class":584},[460,1902,874],{"class":1217},[460,1904,1230],{"class":584},[460,1906,1907,1910,1912],{"class":560,"line":578},[460,1908,1909],{"class":568},"    event_id",[460,1911,1238],{"class":584},[460,1913,1241],{"class":1217},[460,1915,1916,1918,1920],{"class":560,"line":610},[460,1917,1246],{"class":568},[460,1919,1238],{"class":584},[460,1921,1251],{"class":1217},[460,1923,1924,1927,1929,1931,1933,1935,1937,1939,1941,1943],{"class":560,"line":630},[460,1925,1926],{"class":568},"events ",[460,1928,585],{"class":584},[460,1930,588],{"class":568},[460,1932,27],{"class":584},[460,1934,594],{"class":593},[460,1936,27],{"class":584},[460,1938,599],{"class":593},[460,1940,27],{"class":584},[460,1942,43],{"class":604},[460,1944,607],{"class":584},[460,1946,1947,1949,1951,1953],{"class":560,"line":647},[460,1948,1279],{"class":584},[460,1950,847],{"class":622},[460,1952,619],{"class":584},[460,1954,137],{"class":584},[460,1956,1957,1959,1961,1963],{"class":560,"line":664},[460,1958,1279],{"class":584},[460,1960,1293],{"class":622},[460,1962,619],{"class":584},[460,1964,137],{"class":584},[460,1966,1967,1969,1971,1973,1975,1977],{"class":560,"line":1288},[460,1968,1303],{"class":613},[460,1970,585],{"class":584},[460,1972,619],{"class":584},[460,1974,1310],{"class":622},[460,1976,619],{"class":584},[460,1978,137],{"class":584},[460,1980,1981,1983,1985,1988],{"class":560,"line":1300},[460,1982,1320],{"class":613},[460,1984,585],{"class":584},[460,1986,1987],{"class":604},"EventSchema",[460,1989,137],{"class":584},[460,1991,1992],{"class":560,"line":1317},[460,1993,667],{"class":584},[460,1995,1996,1999,2001,2004,2006,2009,2011,2014,2016,2018,2021,2024],{"class":560,"line":1330},[460,1997,1998],{"class":568},"deduplicated ",[460,2000,585],{"class":584},[460,2002,2003],{"class":568}," events",[460,2005,27],{"class":584},[460,2007,2008],{"class":604},"groupby",[460,2010,468],{"class":584},[460,2012,2013],{"class":604},"events",[460,2015,27],{"class":584},[460,2017,1881],{"class":593},[460,2019,2020],{"class":584},").",[460,2022,2023],{"class":604},"reduce",[460,2025,607],{"class":584},[460,2027,2029,2032,2034,2036],{"class":560,"line":2028},11,[460,2030,2031],{"class":604},"    events",[460,2033,27],{"class":584},[460,2035,1881],{"class":593},[460,2037,137],{"class":584},[460,2039,2041,2043,2045,2047,2049,2052,2054,2057,2059,2061,2063,2066],{"class":560,"line":2040},12,[460,2042,1246],{"class":613},[460,2044,585],{"class":584},[460,2046,1223],{"class":604},[460,2048,27],{"class":584},[460,2050,2051],{"class":593},"reducers",[460,2053,27],{"class":584},[460,2055,2056],{"class":604},"earliest",[460,2058,468],{"class":584},[460,2060,2013],{"class":604},[460,2062,27],{"class":584},[460,2064,2065],{"class":593},"temperature",[460,2067,1615],{"class":584},[460,2069,2071],{"class":560,"line":2070},13,[460,2072,667],{"class":584},[29,2074,2076,468,2078,474],{"id":2075},"pathway.io.pulsar.write",[18,2077,47],{},[460,2079,2081],{"className":2080},[472],"table, uri, topic, *, format='json', delimiter=',', key=None, value=None, headers=None, auth=None, tls_settings=None, name=None, sort_by=None",[15,2083,2084,2090,2091,780],{},[23,2085,2088],{"className":2086,"href":2087},[478],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fpython\u002Fpathway\u002Fio\u002Fpulsar\u002F__init__.py#L396-L568",[460,2089,773],{},"Writes data into an ",[23,2092,779],{"href":777,"rel":2093},[447],[15,2095,2096,2097,2099,2100,2102,2103,2105,2106,2109,2110,2112],{},"Every update of the table becomes a Pulsar message: an insertion carries the\n",[37,2098,154],{}," property equal to ",[37,2101,230],{},", and a deletion of a previously sent\nrow carries ",[37,2104,154],{}," equal to ",[37,2107,2108],{},"-1"," (the attached properties and the\npartition key are described in the ",[788,2111,102],{}," section above).",[54,2114,2115,2307],{},[57,2116,2117,2119],{},[18,2118,498],{},[54,2120,2121,2131,2141,2154,2190,2201,2213,2229,2244,2264,2284,2293],{},[57,2122,2123,90,2125,2130],{},[18,2124,201],{},[23,2126,2128],{"href":2127},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-table#pathway.Table",[37,2129,1176],{},") – The table to write.",[57,2132,2133,90,2135,844,2137,848,2139,852],{},[18,2134,81],{},[37,2136,508],{},[37,2138,847],{},[37,2140,851],{},[57,2142,2143,90,2145,532,2147,2153],{},[18,2144,857],{},[37,2146,508],{},[23,2148,2150],{"href":2149},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway#pathway.ColumnReference",[37,2151,2152],{},"ColumnReference",") – The name of the topic to write to. It can also be a reference to\na string column of the table: then each row is produced into the topic\ngiven by the value of this column, and the column itself is excluded\nfrom the message payload.",[57,2155,2156,90,2158,868,2160,130,2162,130,2165,130,2167,2169,2170,130,2172,130,2175,2177,2178,2180,2181,151,2183,2185,2186,2189],{},[18,2157,886],{},[37,2159,889],{},[37,2161,898],{},[37,2163,2164],{},"'dsv'",[37,2166,895],{},[37,2168,892],{},"]) – Format in which the message payload is produced. Can be\n",[37,2171,806],{},[37,2173,2174],{},"\"dsv\"",[37,2176,799],{}," or ",[37,2179,802],{},". For\n",[37,2182,799],{},[37,2184,802],{},", the table must consist of a single\ncolumn of the string or binary type respectively, unless the ",[37,2187,2188],{},"value","\nparameter points at the payload column explicitly.",[57,2191,2192,90,2195,2197,2198,2200],{},[18,2193,2194],{},"delimiter",[37,2196,508],{},") – The delimiter separating the fields, if the ",[37,2199,2174],{}," format is\nused.",[57,2202,2203,90,2206,532,2210,2212],{},[18,2204,2205],{},"key",[23,2207,2208],{"href":2149},[37,2209,2152],{},[37,2211,51],{},") – The column carrying the partition key of the messages. The column must\nbe of the string or binary type. If not specified, the key is derived\nfrom the row’s primary key.",[57,2214,2215,90,2217,532,2221,2223,2224,2177,2226,2228],{},[18,2216,2188],{},[23,2218,2219],{"href":2149},[37,2220,2152],{},[37,2222,51],{},") – The column carrying the payload of the messages in the\n",[37,2225,799],{},[37,2227,802],{}," formats. Can be omitted if the table has\nexactly one column, which then becomes the payload.",[57,2230,2231,90,2234,868,2236,868,2239,2243],{},[18,2232,2233],{},"headers",[37,2235,950],{},[37,2237,2238],{},"Iterable",[23,2240,2241],{"href":2149},[37,2242,2152],{},"]]) – Columns to attach to every message as its properties. The values\nare serialized to JSON strings, because Pulsar message properties are\nstring-to-string pairs.",[57,2245,2246,90,2248,532,2252,532,2256,1101,2258,137,2260,1106,2262,1109],{},[18,2247,39],{},[23,2249,2250],{"href":1091},[37,2251,676],{},[23,2253,2254],{"href":1096},[37,2255,467],{},[37,2257,51],{},[37,2259,676],{},[37,2261,467],{},[37,2263,51],{},[57,2265,2266,90,2268,532,2272,1122,2274,1125,2276,1129,2278,1133,2280,1136,2282,1140],{},[18,2267,89],{},[23,2269,2270],{"href":1116},[37,2271,1119],{},[37,2273,51],{},[37,2275,1119],{},[37,2277,1128],{},[37,2279,1132],{},[37,2281,81],{},[37,2283,1139],{},[57,2285,2286,90,2288,532,2290,2292],{},[18,2287,1145],{},[37,2289,508],{},[37,2291,51],{},") – A unique name for the connector. If provided, this name will be used\nin logs and monitoring dashboards.",[57,2294,2295,90,2298,868,2300,868,2302,2306],{},[18,2296,2297],{},"sort_by",[37,2299,950],{},[37,2301,2238],{},[23,2303,2304],{"href":2149},[37,2305,2152],{},"]]) – If specified, the output will be sorted in ascending order based on\nthe values of the given columns within each minibatch. When multiple\ncolumns are provided, the corresponding value tuples will be compared\nlexicographically.",[57,2308,2309,2311,51],{},[18,2310,1171],{},[701,2312],{},[15,2314,548],{},[15,2316,2317,2318,2321],{},"Suppose you want to send a stream of updates of the table ",[37,2319,2320],{},"t"," to a locally\nrunning Pulsar instance. First, create a sample table:",[550,2323,2325],{"className":552,"code":2324,"language":554,"meta":555,"style":555},"import pathway as pw\nt = pw.debug.table_from_markdown(\n    '''\n    age | owner | pet\n    10  | Alice | dog\n    9   | Bob   | cat\n    8   | Alice | cat\n    '''\n)\n",[37,2326,2327,2337,2358,2363,2368,2373,2378,2383,2387],{"__ignoreMap":555},[460,2328,2329,2331,2333,2335],{"class":560,"line":561},[460,2330,565],{"class":564},[460,2332,569],{"class":568},[460,2334,572],{"class":564},[460,2336,575],{"class":568},[460,2338,2339,2342,2344,2346,2348,2351,2353,2356],{"class":560,"line":578},[460,2340,2341],{"class":568},"t ",[460,2343,585],{"class":584},[460,2345,588],{"class":568},[460,2347,27],{"class":584},[460,2349,2350],{"class":593},"debug",[460,2352,27],{"class":584},[460,2354,2355],{"class":604},"table_from_markdown",[460,2357,607],{"class":584},[460,2359,2360],{"class":560,"line":610},[460,2361,2362],{"class":584},"    '''\n",[460,2364,2365],{"class":560,"line":630},[460,2366,2367],{"class":622},"    age | owner | pet\n",[460,2369,2370],{"class":560,"line":647},[460,2371,2372],{"class":622},"    10  | Alice | dog\n",[460,2374,2375],{"class":560,"line":664},[460,2376,2377],{"class":622},"    9   | Bob   | cat\n",[460,2379,2380],{"class":560,"line":1288},[460,2381,2382],{"class":622},"    8   | Alice | cat\n",[460,2384,2385],{"class":560,"line":1300},[460,2386,2362],{"class":584},[460,2388,2389],{"class":560,"line":1317},[460,2390,667],{"class":584},[15,2392,2393,2394,2397,2398,151,2400,2402],{},"The simplest write sends every update of the table into the topic\n",[37,2395,2396],{},"\"clients\""," as a JSON message. Each message contains all the columns of\nthe table, plus the ",[37,2399,150],{},[37,2401,154],{}," properties\ndescribing the update:",[550,2404,2406],{"className":552,"code":2405,"language":554,"meta":555,"style":555},"pw.io.pulsar.write(t, \"pulsar:\u002F\u002Flocalhost:6650\", \"clients\")\n",[37,2407,2408],{"__ignoreMap":555},[460,2409,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2431,2434,2436,2438,2440,2442,2445,2447],{"class":560,"line":561},[460,2411,1223],{"class":568},[460,2413,27],{"class":584},[460,2415,594],{"class":593},[460,2417,27],{"class":584},[460,2419,599],{"class":593},[460,2421,27],{"class":584},[460,2423,47],{"class":604},[460,2425,468],{"class":584},[460,2427,2320],{"class":604},[460,2429,2430],{"class":584},",",[460,2432,2433],{"class":584}," \"",[460,2435,847],{"class":622},[460,2437,619],{"class":584},[460,2439,2430],{"class":584},[460,2441,2433],{"class":584},[460,2443,2444],{"class":622},"clients",[460,2446,619],{"class":584},[460,2448,667],{"class":584},[15,2450,2451,2452,2454,2455,2457],{},"If the receiving side expects a plain string instead of JSON, use the\n",[37,2453,799],{}," format and point ",[37,2456,2188],{}," at the column that carries the\npayload:",[550,2459,2461],{"className":552,"code":2460,"language":554,"meta":555,"style":555},"pw.io.pulsar.write(\n    t,\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"clients\",\n    format=\"plaintext\",\n    value=t.owner,\n)\n",[37,2462,2463,2481,2488,2498,2508,2522,2538],{"__ignoreMap":555},[460,2464,2465,2467,2469,2471,2473,2475,2477,2479],{"class":560,"line":561},[460,2466,1223],{"class":568},[460,2468,27],{"class":584},[460,2470,594],{"class":593},[460,2472,27],{"class":584},[460,2474,599],{"class":593},[460,2476,27],{"class":584},[460,2478,47],{"class":604},[460,2480,607],{"class":584},[460,2482,2483,2486],{"class":560,"line":578},[460,2484,2485],{"class":604},"    t",[460,2487,137],{"class":584},[460,2489,2490,2492,2494,2496],{"class":560,"line":610},[460,2491,1279],{"class":584},[460,2493,847],{"class":622},[460,2495,619],{"class":584},[460,2497,137],{"class":584},[460,2499,2500,2502,2504,2506],{"class":560,"line":630},[460,2501,1279],{"class":584},[460,2503,2444],{"class":622},[460,2505,619],{"class":584},[460,2507,137],{"class":584},[460,2509,2510,2512,2514,2516,2518,2520],{"class":560,"line":647},[460,2511,1303],{"class":613},[460,2513,585],{"class":584},[460,2515,619],{"class":584},[460,2517,1403],{"class":622},[460,2519,619],{"class":584},[460,2521,137],{"class":584},[460,2523,2524,2527,2529,2531,2533,2536],{"class":560,"line":664},[460,2525,2526],{"class":613},"    value",[460,2528,585],{"class":584},[460,2530,2320],{"class":604},[460,2532,27],{"class":584},[460,2534,2535],{"class":593},"owner",[460,2537,137],{"class":584},[460,2539,2540],{"class":560,"line":1288},[460,2541,667],{"class":584},[15,2543,2544,2545,2547,2548,2550],{},"The topic doesn’t have to be fixed: if it is given as a column reference,\neach row is produced into the topic named by that column’s value, and the\ncolumn itself is excluded from the payload. Combined with ",[37,2546,2205],{},", which\npins the partition of a partitioned topic (rows with equal keys keep their\norder), one ",[37,2549,47],{}," call can route a single table into many topics:",[550,2552,2554],{"className":552,"code":2553,"language":554,"meta":555,"style":555},"pw.io.pulsar.write(\n    t,\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    topic=t.owner,\n    key=t.pet,\n)\n",[37,2555,2556,2574,2580,2590,2605,2621],{"__ignoreMap":555},[460,2557,2558,2560,2562,2564,2566,2568,2570,2572],{"class":560,"line":561},[460,2559,1223],{"class":568},[460,2561,27],{"class":584},[460,2563,594],{"class":593},[460,2565,27],{"class":584},[460,2567,599],{"class":593},[460,2569,27],{"class":584},[460,2571,47],{"class":604},[460,2573,607],{"class":584},[460,2575,2576,2578],{"class":560,"line":578},[460,2577,2485],{"class":604},[460,2579,137],{"class":584},[460,2581,2582,2584,2586,2588],{"class":560,"line":610},[460,2583,1279],{"class":584},[460,2585,847],{"class":622},[460,2587,619],{"class":584},[460,2589,137],{"class":584},[460,2591,2592,2595,2597,2599,2601,2603],{"class":560,"line":630},[460,2593,2594],{"class":613},"    topic",[460,2596,585],{"class":584},[460,2598,2320],{"class":604},[460,2600,27],{"class":584},[460,2602,2535],{"class":593},[460,2604,137],{"class":584},[460,2606,2607,2610,2612,2614,2616,2619],{"class":560,"line":647},[460,2608,2609],{"class":613},"    key",[460,2611,585],{"class":584},[460,2613,2320],{"class":604},[460,2615,27],{"class":584},[460,2617,2618],{"class":593},"pet",[460,2620,137],{"class":584},[460,2622,2623],{"class":560,"line":664},[460,2624,667],{"class":584},[15,2626,2627,2628,2630],{},"Additional per-message metadata can travel in the message properties. The\n",[37,2629,2233],{}," columns are attached to every message as JSON-serialized\nstring properties, so the consumer can inspect them without parsing the\npayload:",[550,2632,2634],{"className":552,"code":2633,"language":554,"meta":555,"style":555},"pw.io.pulsar.write(\n    t,\n    \"pulsar:\u002F\u002Flocalhost:6650\",\n    \"clients\",\n    headers=[t.age, t.pet],\n)\n",[37,2635,2636,2654,2660,2670,2680,2707],{"__ignoreMap":555},[460,2637,2638,2640,2642,2644,2646,2648,2650,2652],{"class":560,"line":561},[460,2639,1223],{"class":568},[460,2641,27],{"class":584},[460,2643,594],{"class":593},[460,2645,27],{"class":584},[460,2647,599],{"class":593},[460,2649,27],{"class":584},[460,2651,47],{"class":604},[460,2653,607],{"class":584},[460,2655,2656,2658],{"class":560,"line":578},[460,2657,2485],{"class":604},[460,2659,137],{"class":584},[460,2661,2662,2664,2666,2668],{"class":560,"line":610},[460,2663,1279],{"class":584},[460,2665,847],{"class":622},[460,2667,619],{"class":584},[460,2669,137],{"class":584},[460,2671,2672,2674,2676,2678],{"class":560,"line":630},[460,2673,1279],{"class":584},[460,2675,2444],{"class":622},[460,2677,619],{"class":584},[460,2679,137],{"class":584},[460,2681,2682,2685,2688,2690,2692,2695,2697,2700,2702,2704],{"class":560,"line":647},[460,2683,2684],{"class":613},"    headers",[460,2686,2687],{"class":584},"=[",[460,2689,2320],{"class":604},[460,2691,27],{"class":584},[460,2693,2694],{"class":593},"age",[460,2696,2430],{"class":584},[460,2698,2699],{"class":604}," t",[460,2701,27],{"class":584},[460,2703,2618],{"class":593},[460,2705,2706],{"class":584},"],\n",[460,2708,2709],{"class":560,"line":664},[460,2710,667],{"class":584},[15,2712,2713,2714,1238],{},"Finally, for a token-protected cluster pass the authentication object —\nthe same way as in ",[37,2715,43],{},[550,2717,2719],{"className":552,"code":2718,"language":554,"meta":555,"style":555},"pw.io.pulsar.write(\n    t,\n    \"pulsar+ssl:\u002F\u002Fmy-cluster.example.com:6651\",\n    \"clients\",\n    auth=pw.io.pulsar.TokenAuthentication(\"my-jwt-token\"),\n)\n",[37,2720,2721,2739,2745,2755,2765,2795],{"__ignoreMap":555},[460,2722,2723,2725,2727,2729,2731,2733,2735,2737],{"class":560,"line":561},[460,2724,1223],{"class":568},[460,2726,27],{"class":584},[460,2728,594],{"class":593},[460,2730,27],{"class":584},[460,2732,599],{"class":593},[460,2734,27],{"class":584},[460,2736,47],{"class":604},[460,2738,607],{"class":584},[460,2740,2741,2743],{"class":560,"line":578},[460,2742,2485],{"class":604},[460,2744,137],{"class":584},[460,2746,2747,2749,2751,2753],{"class":560,"line":610},[460,2748,1279],{"class":584},[460,2750,1545],{"class":622},[460,2752,619],{"class":584},[460,2754,137],{"class":584},[460,2756,2757,2759,2761,2763],{"class":560,"line":630},[460,2758,1279],{"class":584},[460,2760,2444],{"class":622},[460,2762,619],{"class":584},[460,2764,137],{"class":584},[460,2766,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793],{"class":560,"line":647},[460,2768,1588],{"class":613},[460,2770,585],{"class":584},[460,2772,1223],{"class":604},[460,2774,27],{"class":584},[460,2776,594],{"class":593},[460,2778,27],{"class":584},[460,2780,599],{"class":593},[460,2782,27],{"class":584},[460,2784,676],{"class":604},[460,2786,468],{"class":584},[460,2788,619],{"class":584},[460,2790,751],{"class":622},[460,2792,619],{"class":584},[460,2794,1615],{"class":584},[460,2796,2797],{"class":560,"line":664},[460,2798,667],{"class":584},[2800,2801,2802],"style",{},"html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .s0W1g, html code.shiki .s0W1g{--shiki-default:#BABED8}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html pre.shiki code .s7ZW3, html code.shiki .s7ZW3{--shiki-default:#BABED8;--shiki-default-font-style:italic}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}",{"title":555,"searchDepth":578,"depth":578,"links":2804},[2805,2806,2807,2812,2814,2816,2818],{"id":31,"depth":578,"text":32},{"id":101,"depth":578,"text":102},{"id":158,"depth":578,"text":159,"children":2808},[2809,2810,2811],{"id":198,"depth":610,"text":199},{"id":301,"depth":610,"text":302},{"id":381,"depth":610,"text":382},{"id":458,"depth":578,"text":2813},"class  OAuth2Authentication(issuer_url, credentials_url, audience=None, scope=None)",{"id":670,"depth":578,"text":2815},"class  TokenAuthentication(token)",{"id":758,"depth":578,"text":2817},"read(uri, topic, *, schema=None, format='raw', mode='streaming', subscription_name=None, subscription_type=None, autocommit_duration_ms=1500, json_field_paths=None, start_from='beginning', start_from_timestamp_ms=None, auth=None, tls_settings=None, name=None, max_backlog_size=None, debug_data=None, **kwargs)",{"id":2075,"depth":578,"text":2819},"write(table, uri, topic, *, format='json', delimiter=',', key=None, value=None, headers=None, auth=None, tls_settings=None, name=None, sort_by=None)","This module is available when using one of the following licenses only: Pathway Scale, Pathway Enterprise.","md",{"sidebar":2823},"API",true,"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpulsar",{"title":5,"description":2820},{"loc":2825},"2.developers\u002F5.API-docs\u002F7.pathway-io\u002F385.pulsar","hHlqFJP5zPoiyo4qlR2BO9ZWdEmwvzTKoHl_dMdrBmc",[2831],{"title":2832,"path":2833,"stem":2834,"children":2835,"page":2853},"Developers","\u002Fdevelopers","2.developers",[2836,3715,4068],{"title":2837,"path":2838,"stem":2839,"children":2840,"page":2853},"User Guide","\u002Fdevelopers\u002Fuser-guide","2.developers\u002F4.user-guide",[2841,2896,3165,3284,3362,3487,3619,3635,3694],{"title":2842,"meta":2843,"icon":2844,"path":2845,"stem":2846,"children":2847,"page":2853},"Introduction",{"icon":2844},"heroicons:book-open","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction","2.developers\u002F4.user-guide\u002F10.introduction",[2848,2854,2859,2864,2869,2874,2879,2884,2889],{"title":2849,"path":2850,"stem":2851,"meta":2852},"Welcome","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwelcome","2.developers\u002F4.user-guide\u002F10.introduction\u002F10.welcome",{"heading":2853,"toc":2853},false,{"title":2855,"path":2856,"stem":2857,"meta":2858},"Installation","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Finstallation","2.developers\u002F4.user-guide\u002F10.introduction\u002F20.installation",{"heading":2853,"toc":2853},{"title":2860,"path":2861,"stem":2862,"meta":2863},"Overview","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flive-data-framework-overview","2.developers\u002F4.user-guide\u002F10.introduction\u002F30.live-data-framework-overview",{},{"title":2865,"path":2866,"stem":2867,"meta":2868},"Starting Examples","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst-realtime-app","2.developers\u002F4.user-guide\u002F10.introduction\u002F40.first-realtime-app",{},{"title":2870,"path":2871,"stem":2872,"meta":2873},"Core Concepts","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fconcepts","2.developers\u002F4.user-guide\u002F10.introduction\u002F50.concepts",{},{"title":2875,"path":2876,"stem":2877,"meta":2878},"Why Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwhy-live-data-framework","2.developers\u002F4.user-guide\u002F10.introduction\u002F60.why-live-data-framework",{},{"title":2880,"path":2881,"stem":2882,"meta":2883},"Licensing Guide","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flicensing-guide","2.developers\u002F4.user-guide\u002F10.introduction\u002F65.licensing-guide",{"heading":2853,"toc":2853},{"title":2885,"path":2886,"stem":2887,"meta":2888},"Streaming and Static Modes","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fstreaming-and-static-modes","2.developers\u002F4.user-guide\u002F10.introduction\u002F70.streaming-and-static-modes",{},{"title":2890,"path":2891,"stem":2892,"meta":2893},"Batch Processing in Python","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fbatch-processing","2.developers\u002F4.user-guide\u002F10.introduction\u002F80.batch-processing",{"thumbnail":2894,"thumbnailFit":2895},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fpathway-batch.png","contain",{"title":2897,"path":2898,"stem":2899,"children":2900,"page":2853},"Connect","\u002Fdevelopers\u002Fuser-guide\u002Fconnect","2.developers\u002F4.user-guide\u002F20.connect",[2901,2911,2916,2922,2927,2932,2945,2955,2960,2981],{"title":2902,"path":2903,"stem":2904,"meta":2905},"Basic Data Types","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fdatatypes","2.developers\u002F4.user-guide\u002F20.connect\u002F20.datatypes",{"date":2906,"tags":2907,"keywords":2909,"notebook_export_path":2910},"2024-01-26",[2908,201],"tutorial",[867,828],"notebooks\u002Ftutorials\u002Fbasic_datatypes.ipynb",{"title":2912,"path":2913,"stem":2914,"meta":2915},"Connectors in Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors-overview","2.developers\u002F4.user-guide\u002F20.connect\u002F30.connectors-overview",{},{"title":2917,"path":2918,"stem":2919,"meta":2920},"Connectors list","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Flive-data-framework-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F35.live-data-framework-connectors",{"layout":2921,"aside":2824,"toc":2853,"single":2824},"default",{"title":2923,"path":2924,"stem":2925,"meta":2926},"Defining Schema","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema","2.developers\u002F4.user-guide\u002F20.connect\u002F40.schema",{},{"title":2928,"path":2929,"stem":2930,"meta":2931},"Generate Data Streams with the demo Module","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fartificial-streams","2.developers\u002F4.user-guide\u002F20.connect\u002F50.artificial-streams",{},{"title":2933,"path":2934,"stem":2935,"meta":2936},"Automatic Generation of Schema Class","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema-generation","2.developers\u002F4.user-guide\u002F20.connect\u002F60.schema-generation",{"date":2937,"thumbnail":2938,"tags":2940,"keywords":2941,"notebook_export_path":2944},"2023-11-08",{"src":2939},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-custom-connectors.png",[2908,201],[828,867,2942,2943],"JSON","connectors","notebooks\u002Ftutorials\u002Fschema-generation.ipynb",{"title":2946,"path":2947,"stem":2948,"meta":2949},"Dealing with JSON Data Type","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fjson_type","2.developers\u002F4.user-guide\u002F20.connect\u002F70.json_type",{"date":2950,"thumbnail":2951,"tags":2952,"keywords":2953,"notebook_export_path":2954},"2023-12-22","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-json.png",[2908,201],[2942,867,828],"notebooks\u002Ftutorials\u002Fjson_type.ipynb",{"title":2956,"path":2957,"stem":2958,"meta":2959},"Switching from Batch to Streaming","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fswitch-from-batch-to-streaming","2.developers\u002F4.user-guide\u002F20.connect\u002F80.switch-from-batch-to-streaming",{},{"title":2961,"path":2962,"stem":2963,"meta":2964},"Live Web Scraping","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fpython-web-scraping","2.developers\u002F4.user-guide\u002F20.connect\u002F90.python-web-scraping",{"date":2965,"tags":2966,"keywords":2967,"tech_icons":2975,"thumbnail":2977,"deployment_tag":2978,"docker_github_link":2980},"2025-03-13",[2908,2943],[2968,2969,2970,2971,2972,2973,2974],"connector","scraping","WEB","Python","input","streaming","web scraping",[2976],"streamline:web","\u002Fassets\u002Fcontent\u002Fshowcases\u002Fweb_scraping\u002Fweb-scraping-th.png",[2979],"docker","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fweb-scraping",{"title":2982,"path":2983,"stem":2984,"children":2985,"page":2853},"Connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors",[2986,3001,3013,3025,3034,3053,3064,3077,3091,3099,3111,3121,3130,3142,3155],{"title":2987,"path":2988,"stem":2989,"meta":2990},"File System Connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Ffs-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F05.fs-connector",{"date":2906,"tags":2991,"tech_icons":2992,"deployment_tag":2994,"keywords":2996,"notebook_export_path":3000},[2908,201],[2993],"lets-icons:file-fill",[2995,2979],"jupyter",[2968,2997,2998,1310,2972,2999,1500,2973],"file system","csv","output","notebooks\u002Ftutorials\u002Ffs_connector.ipynb",{"title":3002,"path":3003,"stem":3004,"meta":3005},"CSV connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcsv_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F10.csv_connectors",{"date":3006,"thumbnail":3007,"tags":3008,"keywords":3009,"tech_icons":3011},"2023-01-12","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-csv-connectors.png",[2908,2943],[2968,3010,2972,2999,1500,2973],"CSV",[3012],"mdi:file-csv",{"title":3014,"path":3015,"stem":3016,"meta":3017},"Sending alerts to Slack","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fslack_send_alerts","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F100.slack_send_alerts",{"date":3018,"tags":3019,"keywords":3020,"tech_icons":3023},"2024-02-16",[2908,2943],[2968,3021,3022,2999,2973],"Slack","alerts",[3024],"mdi:slack",{"title":3026,"path":3027,"stem":3028,"meta":3029},"Airbyte connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fairbyte-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F110.airbyte-connectors",{"tags":3030,"keywords":3031},[2908,2943],[2968,3032,3033,2972,1500,2973],"Airbyte","cloud",{"title":3035,"path":3036,"stem":3037,"meta":3038},"Using Pathway Debezium Connector for MongoDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fmongodb-debezium","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F115.mongodb-debezium",{"date":3039,"tags":3040,"keywords":3041,"tech_icons":3049,"deployment_tag":3051,"docker_github_link":3052,"hideInConnectorList":2824},"2024-10-30",[2908,2943],[2968,3042,3043,3044,3045,3046,3047,3048,2972,2999,2973],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[3050],"material-symbols-light:database",[2979],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-mongodb-example",{"title":3054,"path":3055,"stem":3056,"meta":3057},"JSON Lines connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fjsonlines-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F15.jsonlines-connector",{"date":3058,"tags":3059,"keywords":3060,"tech_icons":3062},"2024-02-20",[2908,2943],[2968,3061,2942,2972,2999,1500,2973],"JSON Lines",[3063],"lets-icons:json",{"title":3065,"path":3066,"stem":3067,"meta":3068},"Database connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fdatabase-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F20.database-connectors",{"date":3069,"thumbnail":3070,"tags":3071,"keywords":3072,"tech_icons":3074,"deployment_tag":3075,"docker_github_link":3076},"2023-01-19","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-database-connectors.png",[2908,2943],[2968,3042,3073,3044,3045,3046,3047,3048,2972,2999,2973],"PostgreSQL",[3050],[2979],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-postgres-example",{"title":3078,"path":3079,"stem":3080,"meta":3081},"Connecting Pathway to NeonDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fneondb-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F23.neondb-connector",{"date":3082,"tags":3083,"keywords":3084,"tech_icons":3090,"hideInConnectorList":2824},"2026-06-03",[2908,2943],[2968,3042,3085,3086,3073,3087,3044,3088,3089,2972,2999,2973],"NeonDB","Neon","serverless","logical replication","SSL",[3050],{"title":3092,"path":3093,"stem":3094,"meta":3095},"Custom Python connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcustom-python-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.custom-python-connectors",{"date":3096,"thumbnail":2939,"tags":3097,"keywords":3098},"2023-04-13",[2908,2943],[2968,2971,2972,2973],{"title":3100,"path":3101,"stem":3102,"meta":3103},"Kafka connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fkafka_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.kafka_connectors",{"date":3104,"thumbnail":3105,"tags":3106,"tech_icons":3107,"deployment_tag":3109,"keywords":3110},"2023-01-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-kafka-connectors.png",[2908,2943],[3108],"mdi:apache-kafka",[2979],[2968,3046,3048,2972,2999,2973],{"title":3112,"path":3113,"stem":3114,"meta":3115},"NATS connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fnats-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F33.nats-connectors",{"date":3116,"tags":3117,"deployment_tag":3118,"keywords":3119},"2024-12-06",[2908,2943],[2979],[2968,3120,3048,2972,2999,2973],"NATS",{"title":3122,"path":3123,"stem":3124,"meta":3125},"Python output connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fpython-output-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F35.python-output-connectors",{"date":3126,"thumbnail":3127,"tags":3128,"keywords":3129},"2023-08-31","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-output-connector.png",[2908,2943],[2968,2971,2999,2973],{"title":3131,"path":3132,"stem":3133,"meta":3134},"Google Drive connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fgdrive-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F70.gdrive-connector",{"date":3135,"thumbnail":3136,"tags":3137,"keywords":3138,"tech_icons":3140},"2023-12-14","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-gdrive-connector.png",[2908,2943],[2968,3139,3033,2972,1500,2973],"Google Drive",[3141],"simple-icons:googledrive",{"title":3143,"path":3144,"stem":3145,"meta":3146},"Switching from Kafka to Redpanda","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fswitching-to-redpanda","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F80.switching-to-redpanda",{"date":3147,"thumbnail":3148,"tags":3149,"keywords":3150,"deployment_tag":3152,"tech_icons":3153,"docker_github_link":3154,"hideInConnectorList":2824},"2023-03-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fredpanda\u002Fth-Kafka_vs_Redpanda.png",[2908,2943],[2968,3151,3046,3047,3048,2972,2999,2973],"Redpanda",[2979],[3108],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fbest-movies-example\u002Fredpanda-version",{"title":3156,"path":3157,"stem":3158,"meta":3159},"Custom WebSockets connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fwebsockets-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F90.websockets-connectors",{"date":3160,"tags":3161,"keywords":3162,"tech_icons":3164},"2023-01-24",[2908,2943],[2968,3163,2971,2972,2999,2973],"WebSockets",[2976],{"title":3166,"meta":3167,"path":3168,"stem":3169,"children":3170,"page":2853},"Transform",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation","2.developers\u002F4.user-guide\u002F30.data-transformation",[3171,3176,3190,3196,3202,3214,3230,3251,3266,3271],{"title":3172,"path":3173,"stem":3174,"meta":3175},"Table Operations Overview","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Ftable-operations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F10.table-operations",{},{"title":3177,"path":3178,"stem":3179,"meta":3180},"Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fasynchronous-transformations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F100.asynchronous-transformations",{"date":3058,"thumbnail":555,"tags":3181,"keywords":3183,"notebook_export_path":3189},[2908,3182],"engineering",[554,3184,3185,3186,3187,3188],"function","asynchronous","transformation","query","AsyncTransformer","notebooks\u002Ftutorials\u002Fasynctransformer.ipynb",{"title":3191,"path":3192,"stem":3193,"meta":3194},"Simple Join","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fjoin-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F20.join-manual",{"notebook_export_path":3195},"notebooks\u002Ftutorials\u002Fjoin_manual.ipynb",{"title":3197,"path":3198,"stem":3199,"meta":3200},"Groupby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fgroupby-reduce-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F30.groupby-reduce-manual",{"notebook_export_path":3201},"notebooks\u002Ftutorials\u002Fgroupby_reduce_manual.ipynb",{"title":3203,"path":3204,"stem":3205,"meta":3206},"Writing Stateful Reducers","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fcustom-reducers","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F40.custom-reducers",{"date":3207,"thumbnail":2951,"tags":3208,"keywords":3209,"notebook_export_path":3213},"2024-01-17",[2908],[2051,3210,3211,3212],"aggregate","sumofsquares","median","notebooks\u002Ftutorials\u002Fcustom_reducers.ipynb",{"title":3215,"path":3216,"stem":3217,"meta":3218},"Iterative Computations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fiterate","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F50.iterate",{"date":3219,"thumbnail":555,"tags":3220,"keywords":3221,"notebook_export_path":3229},"2023-12-28",[2908,3182],[3222,3223,3224,3225,3226,3227,3228],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks\u002Ftutorials\u002Fiterate.ipynb",{"title":3231,"path":3232,"stem":3233,"children":3234,"meta":3248},"Indexes in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexes","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F60.indexes",[3235],{"title":3231,"path":3232,"stem":3233,"meta":3236},{"date":3237,"thumbnail":3238,"tags":3239,"keywords":3240,"notebook_export_path":3247},"2023-11-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-computing-pagerank.png",[2908,3182],[3241,3242,3243,3244,3245,3246],"index","indexing","join","asof join","asof_now","KNN","notebooks\u002Ftutorials\u002Findexes.ipynb",{"date":3237,"thumbnail":3238,"tags":3249,"keywords":3250,"notebook_export_path":3247},[2908,3182],[3241,3242,3243,3244,3245,3246],{"title":3252,"path":3253,"stem":3254,"children":3255,"meta":3263},"Indexing from 'groupby' and Single-row Tables","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexing-grouped-tables","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F70.indexing-grouped-tables",[3256],{"title":3252,"path":3253,"stem":3254,"meta":3257},{"date":3258,"thumbnail":3238,"tags":3259,"keywords":3260},"2023-03-31",[2908,201],[2008,3261,3262],"ix_ref","single-row table",{"date":3258,"thumbnail":3238,"tags":3264,"keywords":3265},[2908,201],[2008,3261,3262],{"title":3267,"path":3268,"stem":3269,"meta":3270},"SQL API","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fsql","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F80.sql",{"redirection":2824},{"title":3272,"path":3273,"stem":3274,"meta":3275},"User-defined Functions","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fuser-defined-functions","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F90.user-defined-functions",{"date":3276,"thumbnail":555,"tags":3277,"keywords":3278,"notebook_export_path":3283},"2024-02-21",[2908,3182],[554,3279,3184,3280,3186,3281,3282],"udf","apply","cache","timeout","notebooks\u002Ftutorials\u002Fudf.ipynb",{"title":3285,"path":3286,"stem":3287,"children":3288,"page":2853},"Temporal Data","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data","2.developers\u002F4.user-guide\u002F40.temporal-data",[3289,3295,3300,3315,3327,3339,3353],{"title":3290,"path":3291,"stem":3292,"meta":3293},"Windowby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows-manual","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F10.windows-manual",{"notebook_export_path":3294},"notebooks\u002Ftutorials\u002Fwindowby_manual.ipynb",{"title":3296,"path":3297,"stem":3298,"meta":3299},"Late Data and Cutoffs","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fbehaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F20.behaviors",{},{"title":3301,"path":3302,"stem":3303,"meta":3304},"Controlling Temporal Behavior of Windows","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows_with_behaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F30.windows_with_behaviors",{"date":3305,"thumbnail":3306,"keywords":3307,"notebook_export_path":3314},"2024-01-08","assets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[3308,3309,3310,3311,3312,3313],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks\u002Ftutorials\u002Fwindows_temporal_behavior.ipynb",{"title":3316,"path":3317,"stem":3318,"meta":3319},"ASOF Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fasof-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F40.asof-join",{"date":3320,"thumbnail":3321,"tags":3322,"keywords":3323,"notebook_export_path":3326},"2023-05-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Ffinance_ts_asof_join\u002Fasof-join-tutorial-th.png",[2908,3182],[3244,3324,3325],"stock prices","financial data analysis","notebooks\u002Ftutorials\u002Fasof_join.ipynb",{"title":3328,"path":3329,"stem":3330,"meta":3331},"Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Finterval-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F50.interval-join",{"date":3332,"thumbnail":3333,"tags":3334,"keywords":3335,"notebook_export_path":3338},"2023-05-22","assets\u002Fcontent\u002Ftutorials\u002Ffleet_eta_interval_join\u002Ffleet-eta-interval-join-th.png",[2908,3182],[3336,3337],"interval join","ETA","notebooks\u002Ftutorials\u002Finterval_join.ipynb",{"title":3340,"path":3341,"stem":3342,"meta":3343},"Window Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindow-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F60.window-join",{"date":3344,"thumbnail":3345,"tags":3346,"keywords":3347,"notebook_export_path":3352},"2023-06-14","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[2908,3182],[3348,3349,3350,3351],"window","behavior analysis","clickstream","conversion rate","notebooks\u002Ftutorials\u002Fwindow_join.ipynb",{"title":3354,"path":3355,"stem":3356,"meta":3357},"Controlling Temporal Behavior of Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Ftemporal_behavior","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F70.temporal_behavior",{"date":3358,"thumbnail":3333,"tags":3359,"keywords":3360,"notebook_export_path":3361},"2023-11-28",[2908,3182],[3336,3309,3310,3311,3312,3313],"notebooks\u002Ftutorials\u002Finterval_join_temporal_behavior.ipynb",{"title":3363,"meta":3364,"path":3365,"stem":3366,"children":3367,"page":2853},"LLM tooling",{},"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack","2.developers\u002F4.user-guide\u002F50.llm-xpack",[3368,3380,3389,3398,3413,3424,3436,3448,3458,3468,3478],{"title":3369,"path":3370,"stem":3371,"meta":3372},"Introduction to the LLM xpack","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Foverview","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F10.overview",{"date":3373,"thumbnail":555,"tags":3374,"keywords":3376},"2024-02-14",[2908,3375],"LLM",[3375,3377,3378,3379],"GPT","OpenAI","Gemini",{"title":3381,"path":3382,"stem":3383,"meta":3384},"Create your own RAG","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-app","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F20.llm-app",{"date":3385,"thumbnail":555,"tags":3386,"keywords":3388},"2025-03-28",[2908,3375,3387],"RAG",[3375,3377,3378,3242],{"title":3390,"path":3391,"stem":3392,"meta":3393},"Pathway Live Data Framework as a Vector Store","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-vector-store","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F25.live-data-framework-vector-store",{"date":3394,"thumbnail":555,"tags":3395,"keywords":3396},"2025-05-07",[2908,3375,3387],[3375,3377,3378,3242,3397],"Vector Store",{"title":3399,"path":3400,"stem":3401,"children":3402,"meta":3410},"Document Indexing","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fdocs-indexing","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F30.docs-indexing",[3403],{"title":3399,"path":3400,"stem":3401,"meta":3404},{"date":3405,"thumbnail":555,"tags":3406,"keywords":3409},"2025-01-13",[2908,3242,3407,3408],"document storage","retrieval",[3375,3377,3378,3379],{"date":3405,"thumbnail":555,"tags":3411,"keywords":3412},[2908,3242,3407,3408],[3375,3377,3378,3379],{"title":3414,"path":3415,"stem":3416,"meta":3417},"Pathway Live Data Framework MCP Server","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-server","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F40.live-data-framework-mcp-server",{"date":3418,"thumbnail":555,"tags":3419,"keywords":3420},"2025-08-01",[2908,3182],[3421,3422,2823,3423],"MCP","MCP server","protocol",{"title":3425,"path":3426,"stem":3427,"meta":3428},"Claude Desktop","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-claude-desktop","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F41.live-data-framework-mcp-claude-desktop",{"date":3429,"thumbnail":555,"tags":3430,"keywords":3432},"2025-08-19",[2908,3182,3431],"claude",[3421,3425,3433,3434,3435],"real-time data","document store","statistics",{"title":3437,"path":3438,"stem":3439,"meta":3440},"Parsers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fparsers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F50.parsers",{"date":3441,"tags":3442,"keywords":3443},"2024-06-04",[2908,3375],[3375,3444,3445,3446,3447],"unstructured","docling","parsers","ocr",{"title":3449,"path":3450,"stem":3451,"meta":3452},"Chunking text","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fsplitters","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F60.splitters",{"date":3453,"thumbnail":555,"tags":3454,"keywords":3457},"2025-02-04",[3455,3456],"splitters","chunking",[3446,3456],{"title":3459,"path":3460,"stem":3461,"meta":3462},"Embedders","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fembedders","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F70.embedders",{"date":3453,"thumbnail":555,"tags":3463,"keywords":3465},[2908,3464],"embedder",[3375,3377,3378,3379,3466,3467],"LiteLLM","Embedder",{"title":3469,"path":3470,"stem":3471,"meta":3472},"LLM Chats","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-chats","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F80.llm-chats",{"date":3473,"thumbnail":555,"tags":3474,"keywords":3476},"2025-01-30",[2908,3375,3475,3469],"LLM Wrappers",[3375,3377,3378,3379,3466,3477],"Wrapper",{"title":3479,"path":3480,"stem":3481,"meta":3482},"Rerankers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Frerankers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F90.rerankers",{"date":3453,"thumbnail":555,"tags":3483,"keywords":3485},[2908,3484],"reranker",[3375,3486],"Reranker",{"title":3488,"meta":3489,"path":3490,"stem":3491,"children":3492,"page":2853},"Deploy",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdeployment","2.developers\u002F4.user-guide\u002F60.deployment",[3493,3498,3503,3520,3536,3541,3546,3551,3558,3563,3568,3581,3593,3598,3609],{"title":3494,"path":3495,"stem":3496,"meta":3497},"Cloud Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fcloud-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F10.cloud-deployment",{},{"title":3499,"path":3500,"stem":3501,"meta":3502},"Deploy to GCP","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fgcp-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F15.gcp-deploy",{},{"title":3504,"path":3505,"stem":3506,"meta":3507},"Deploy to AWS Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Faws-fargate-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F20.aws-fargate-deploy",{"date":3508,"tags":3509,"thumbnail":3512,"keywords":3514,"docker_github_link":3519,"deployButtons":2853},"2024-08-16",[3510,3511],"showcase","data-pipeline",{"src":3513},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Faws\u002Faws-fargate-overview-th.png",[3515,3516,3517,3048,3518],"AWS","Fargate","cloud deployment","AWS Fargate","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Faws-fargate-deploy",{"title":3521,"path":3522,"stem":3523,"meta":3524},"Deploy to Azure","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fazure-aci-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F25.azure-aci-deploy",{"date":3525,"tags":3526,"thumbnail":3527,"keywords":3529,"docker_github_link":3535,"deployButtons":2853},"2024-11-20",[3510,3511],{"src":3528,"contain":2824},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fazure\u002Fazure-aci-overview-th.png",[3530,3531,3517,3048,3532,3533,3534],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fazure-aci-deploy",{"title":3537,"path":3538,"stem":3539,"meta":3540},"Deploy with Render","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Frender-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F30.render-deploy",{},{"title":3542,"path":3543,"stem":3544,"meta":3545},"Deploy to Nebius AI Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fnebius-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F32.nebius-deploy",{},{"title":3547,"path":3548,"stem":3549,"meta":3550},"Notebook-to-Docker Conversion","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fjupyter-docker","2.developers\u002F4.user-guide\u002F60.deployment\u002F35.jupyter-docker",{},{"title":3552,"path":3553,"stem":3554,"meta":3555},"Tutorial: From Jupyter to Deploy","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Ffrom-jupyter-to-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F40.from-jupyter-to-deploy",{"date":3556,"project_github_link":3557},"2023-11-29","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy",{"title":3559,"path":3560,"stem":3561,"meta":3562},"CI\u002FCD","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fintegration","2.developers\u002F4.user-guide\u002F60.deployment\u002F45.integration",{},{"title":3564,"path":3565,"stem":3566,"meta":3567},"Docker Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fdocker-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F5.docker-deployment",{},{"title":3569,"path":3570,"stem":3571,"meta":3572},"Monitoring a Pathway Live Data Framework Instance","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Flive-data-framework-monitoring","2.developers\u002F4.user-guide\u002F60.deployment\u002F50.live-data-framework-monitoring",{"date":3573,"thumbnail":3574,"tags":3575,"keywords":3576},"2024-05-27","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-prometheus.png",[2908,3182],[3577,3578,3579,3580],"monitoring","OpenTelemetry","Grafana","metrics",{"title":3582,"path":3583,"stem":3584,"meta":3585},"Pathway Live Data Framework Web Dashboard","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fweb-dashboard","2.developers\u002F4.user-guide\u002F60.deployment\u002F52.web-dashboard",{"date":3586,"tags":3587,"keywords":3588},"2026-01-13",[2908,3182],[3589,3590,3577,3591,3592,3580],"Web Dashboard","UI","graph","charts",{"title":3594,"path":3595,"stem":3596,"meta":3597},"Persistence in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence","2.developers\u002F4.user-guide\u002F60.deployment\u002F55.persistence",{},{"title":3599,"path":3600,"stem":3601,"meta":3602},"Persistence in Pathway Live Data Framework: How to Resume the Interrupted Computation","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_recovery","2.developers\u002F4.user-guide\u002F60.deployment\u002F60.persistence_recovery",{"date":3603,"thumbnail":555,"tags":3604,"keywords":3606},"2023-11-02",[2908,3182,3605],"dataflow management",[3607,3608],"persistence","recovery",{"title":3610,"path":3611,"stem":3612,"meta":3613},"Persistence in Pathway Live Data Framework: How to Add New Data without Full Computation Restart","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_restart_with_new_data","2.developers\u002F4.user-guide\u002F60.deployment\u002F65.persistence_restart_with_new_data",{"date":3614,"thumbnail":555,"tags":3615,"keywords":3616},"2023-11-14",[2908,3182,3605],[3607,3617,3618],"optimization","restart",{"title":3620,"path":3621,"stem":3622,"children":3623,"page":2853},"Migrating","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating","2.developers\u002F4.user-guide\u002F70.migrating",[3624,3630],{"title":3625,"path":3626,"stem":3627,"meta":3628},"Coming from Pandas","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fmigrate-from-pandas","2.developers\u002F4.user-guide\u002F70.migrating\u002F10.migrate-from-pandas",{"notebook_export_path":3629},"notebooks\u002Ftutorials\u002Ffrom_pandas.ipynb",{"title":3631,"path":3632,"stem":3633,"meta":3634},"Pandas Cheat Sheet","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fpandas-cheat-sheet","2.developers\u002F4.user-guide\u002F70.migrating\u002F20.pandas-cheat-sheet",{},{"title":3636,"path":3637,"stem":3638,"children":3639,"page":2853},"Advanced","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced","2.developers\u002F4.user-guide\u002F80.advanced",[3640,3645,3655,3661,3674,3679,3684,3689],{"title":3641,"path":3642,"stem":3643,"meta":3644},"Architecture","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker-architecture","2.developers\u002F4.user-guide\u002F80.advanced\u002F10.worker-architecture",{},{"title":3646,"path":3647,"stem":3648,"meta":3649},"Setting up Cache in Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Ffunction_calls_caching","2.developers\u002F4.user-guide\u002F80.advanced\u002F20.function_calls_caching",{"date":3650,"thumbnail":555,"tags":3651,"keywords":3652},"2023-11-30",[2908,3182,3605],[3607,3617,3653,3654],"async_transformer","caching",{"title":3656,"path":3657,"stem":3658,"meta":3659},"Data Model Consistency","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fconsistency","2.developers\u002F4.user-guide\u002F80.advanced\u002F30.consistency",{"notebook_export_path":3660},"notebooks\u002Ftutorials\u002Fconsistency.ipynb",{"title":3662,"path":3663,"stem":3664,"meta":3665},"Writing declarative over imperative pipelines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fdeclarative_vs_imperative","2.developers\u002F4.user-guide\u002F80.advanced\u002F40.declarative_vs_imperative",{"date":3666,"thumbnail":555,"tags":3667,"keywords":3668,"notebook_export_path":3673},"2025-11-25",[2908,3182],[3669,3670,3671,3672,3222],"declarative","imperative","ordered","splitting","notebooks\u002Ftutorials\u002Fdeclarative_vs_imperative.ipynb",{"title":3675,"path":3676,"stem":3677,"meta":3678},"Best Practices","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fbest-practices","2.developers\u002F4.user-guide\u002F80.advanced\u002F5.best-practices",{},{"title":3680,"path":3681,"stem":3682,"meta":3683},"How Pathway Live Data Framework Connectors Work","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fhow-live-data-framework-connectors-work","2.developers\u002F4.user-guide\u002F80.advanced\u002F50.how-live-data-framework-connectors-work",{},{"title":3685,"path":3686,"stem":3687,"meta":3688},"Dynamic Worker Scaling","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker_count_scaling","2.developers\u002F4.user-guide\u002F80.advanced\u002F60.worker_count_scaling",{},{"title":3690,"path":3691,"stem":3692,"meta":3693},"Running on Multiple Machines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Frunning_on_multiple_machines","2.developers\u002F4.user-guide\u002F80.advanced\u002F70.running_on_multiple_machines",{},{"title":3695,"meta":3696,"path":3697,"stem":3698,"children":3699,"page":2853},"Help And Updates",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment","2.developers\u002F4.user-guide\u002F90.development",[3700,3705,3710],{"title":3701,"path":3702,"stem":3703,"meta":3704},"Troubleshooting","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Ftroubleshooting","2.developers\u002F4.user-guide\u002F90.development\u002F10.troubleshooting",{},{"title":3706,"path":3707,"stem":3708,"meta":3709},"Changelog","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fchangelog","2.developers\u002F4.user-guide\u002F90.development\u002F20.changelog",{"toc":2853},{"title":3711,"path":3712,"stem":3713,"meta":3714},"Get help","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fget-help","2.developers\u002F4.user-guide\u002F90.development\u002F30.get-help",{},{"title":3716,"meta":3717,"path":3718,"stem":3719,"children":3720,"page":2853},"API docs",{},"\u002Fdevelopers\u002Fapi-docs","2.developers\u002F5.API-docs",[3721,3726,3731,3737,3742,3747,3752,3820,3825,3830,3835,3843,4058,4063],{"title":3722,"path":3723,"stem":3724,"meta":3725},"Pathway Live Data Framework API","\u002Fdevelopers\u002Fapi-docs\u002Fpathway","2.developers\u002F5.API-docs\u002F1.pathway",{"sidebar":2823},{"title":3727,"path":3728,"stem":3729,"meta":3730},"pw.reducers","\u002Fdevelopers\u002Fapi-docs\u002Freducers","2.developers\u002F5.API-docs\u002F10.reducers",{"sidebar":2823},{"title":3732,"path":3733,"stem":3734,"meta":3735},"pw.sql","\u002Fdevelopers\u002Fapi-docs\u002Fsql-api","2.developers\u002F5.API-docs\u002F11.SQL-API",{"notebook_export_path":3736},"notebooks\u002Ftutorials\u002Fsql_api.ipynb",{"title":3738,"path":3739,"stem":3740,"meta":3741},"pw.temporal","\u002Fdevelopers\u002Fapi-docs\u002Ftemporal","2.developers\u002F5.API-docs\u002F12.temporal",{"sidebar":2823},{"title":3743,"path":3744,"stem":3745,"meta":3746},"pw.udfs","\u002Fdevelopers\u002Fapi-docs\u002Fudfs","2.developers\u002F5.API-docs\u002F13.udfs",{"sidebar":2823},{"title":3748,"path":3749,"stem":3750,"meta":3751},"pw.xpacks.connectors","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-sharepoint","2.developers\u002F5.API-docs\u002F14.pathway-xpacks-sharepoint",{"sidebar":2823},{"title":3753,"path":3754,"stem":3755,"children":3756,"meta":3819},"pw.xpacks.llm","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002Findex",[3757,3759,3764,3769,3774,3779,3784,3789,3794,3799,3804,3809,3814],{"title":3753,"path":3754,"stem":3755,"meta":3758},{"sidebar":2823},{"title":3760,"path":3761,"stem":3762,"meta":3763},"pw.xpacks.llm.llms","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fllms","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F1.llms",{"sidebar":2823},{"title":3765,"path":3766,"stem":3767,"meta":3768},"pw.xpacks.llm.servers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fservers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F10.servers",{"sidebar":2823},{"title":3770,"path":3771,"stem":3772,"meta":3773},"pw.xpacks.llm.utils","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Futils","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F11.utils",{"sidebar":2823},{"title":3775,"path":3776,"stem":3777,"meta":3778},"pw.xpacks.llm.mcp_server","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fmcp_server","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F12.mcp_server",{"sidebar":2823},{"title":3780,"path":3781,"stem":3782,"meta":3783},"pw.xpacks.llm.embedders","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fembedders","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F2.embedders",{"sidebar":2823},{"title":3785,"path":3786,"stem":3787,"meta":3788},"pw.xpacks.llm.parsers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fparsers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F3.parsers",{"sidebar":2823},{"title":3790,"path":3791,"stem":3792,"meta":3793},"pw.xpacks.llm.splitters","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fsplitters","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F4.splitters",{"sidebar":2823},{"title":3795,"path":3796,"stem":3797,"meta":3798},"pw.xpacks.llm.vector_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fvectorstore","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F5.vectorstore",{"sidebar":2823},{"title":3800,"path":3801,"stem":3802,"meta":3803},"pw.xpacks.llm.document_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fdocument_store","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F6.document_store",{"sidebar":2823},{"title":3805,"path":3806,"stem":3807,"meta":3808},"pw.xpacks.llm.question_answering","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fquestion_answering","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F7.question_answering",{"sidebar":2823},{"title":3810,"path":3811,"stem":3812,"meta":3813},"pw.xpacks.llm.prompts","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fprompts","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F8.prompts",{"sidebar":2823},{"title":3815,"path":3816,"stem":3817,"meta":3818},"pw.xpacks.llm.rerankers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Frerankers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F9.rerankers",{"sidebar":2823},{"sidebar":2823},{"title":3821,"path":3822,"stem":3823,"meta":3824},"pw.Table","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-table","2.developers\u002F5.API-docs\u002F2.pathway-table",{"sidebar":2823},{"title":3826,"path":3827,"stem":3828,"meta":3829},"pw.debug","\u002Fdevelopers\u002Fapi-docs\u002Fdebug","2.developers\u002F5.API-docs\u002F4.debug",{"sidebar":2823},{"title":3831,"path":3832,"stem":3833,"meta":3834},"pw.demo","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-demo","2.developers\u002F5.API-docs\u002F5.pathway-demo",{"sidebar":2823},{"title":3836,"path":3837,"stem":3838,"children":3839,"meta":3842},"pw.indexing","\u002Fdevelopers\u002Fapi-docs\u002Findexing","2.developers\u002F5.API-docs\u002F6.indexing",[3840],{"title":3836,"path":3837,"stem":3838,"meta":3841},{"sidebar":2823},{"sidebar":2823},{"title":3844,"path":3845,"stem":3846,"children":3847,"meta":4057},"pw.io","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io","2.developers\u002F5.API-docs\u002F7.pathway-io\u002Findex",[3848,3850,3855,3860,3865,3870,3875,3880,3885,3890,3895,3900,3905,3910,3915,3920,3925,3930,3935,3940,3945,3950,3955,3960,3965,3970,3975,3980,3985,3990,3995,4000,4005,4007,4012,4017,4022,4027,4032,4037,4042,4047,4052],{"title":3844,"path":3845,"stem":3846,"meta":3849},{"sidebar":2823},{"title":3851,"path":3852,"stem":3853,"meta":3854},"pw.io.airbyte","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fairbyte","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F110.airbyte",{"sidebar":2823},{"title":3856,"path":3857,"stem":3858,"meta":3859},"pw.io.bigquery","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fbigquery","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F120.bigquery",{"sidebar":2823},{"title":3861,"path":3862,"stem":3863,"meta":3864},"pw.io.chroma","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fchroma","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F125.chroma",{"sidebar":2823},{"title":3866,"path":3867,"stem":3868,"meta":3869},"pw.io.clickhouse","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F130.clickhouse",{"sidebar":2823},{"title":3871,"path":3872,"stem":3873,"meta":3874},"pw.io.csv","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fcsv","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F140.csv",{"sidebar":2823},{"title":3876,"path":3877,"stem":3878,"meta":3879},"pw.io.debezium","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdebezium","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F150.debezium",{"sidebar":2823},{"title":3881,"path":3882,"stem":3883,"meta":3884},"pw.io.deltalake","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdeltalake","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F160.deltalake",{"sidebar":2823},{"title":3886,"path":3887,"stem":3888,"meta":3889},"pw.io.duckdb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fduckdb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F165.duckdb",{"sidebar":2823},{"title":3891,"path":3892,"stem":3893,"meta":3894},"pw.io.dynamodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdynamodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F170.dynamodb",{"sidebar":2823},{"title":3896,"path":3897,"stem":3898,"meta":3899},"pw.io.elasticsearch","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Felasticsearch","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F180.elasticsearch",{"sidebar":2823},{"title":3901,"path":3902,"stem":3903,"meta":3904},"pw.io.fs","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ffs","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F190.fs",{"sidebar":2823},{"title":3906,"path":3907,"stem":3908,"meta":3909},"pw.io.gdrive","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fgdrive","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F200.gdrive",{"sidebar":2823},{"title":3911,"path":3912,"stem":3913,"meta":3914},"pw.io.http","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fhttp","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F210.http",{"sidebar":2823},{"title":3916,"path":3917,"stem":3918,"meta":3919},"pw.io.iceberg","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ficeberg","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F220.iceberg",{"sidebar":2823},{"title":3921,"path":3922,"stem":3923,"meta":3924},"pw.io.jsonlines","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fjsonlines","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F230.jsonlines",{"sidebar":2823},{"title":3926,"path":3927,"stem":3928,"meta":3929},"pw.io.kafka","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkafka","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F240.kafka",{"sidebar":2823},{"title":3931,"path":3932,"stem":3933,"meta":3934},"pw.io.kinesis","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkinesis","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F250.kinesis",{"sidebar":2823},{"title":3936,"path":3937,"stem":3938,"meta":3939},"pw.io.leann","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fleann","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F260.leann",{"sidebar":2823},{"title":3941,"path":3942,"stem":3943,"meta":3944},"pw.io.logstash","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Flogstash","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F270.logstash",{"sidebar":2823},{"title":3946,"path":3947,"stem":3948,"meta":3949},"pw.io.milvus","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmilvus","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F280.milvus",{"sidebar":2823},{"title":3951,"path":3952,"stem":3953,"meta":3954},"pw.io.minio","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fminio","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F290.minio",{"sidebar":2823},{"title":3956,"path":3957,"stem":3958,"meta":3959},"pw.io.mongodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmongodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F300.mongodb",{"sidebar":2823},{"title":3961,"path":3962,"stem":3963,"meta":3964},"pw.io.mqtt","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmqtt","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F310.mqtt",{"sidebar":2823},{"title":3966,"path":3967,"stem":3968,"meta":3969},"pw.io.mssql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmssql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F320.mssql",{"sidebar":2823},{"title":3971,"path":3972,"stem":3973,"meta":3974},"pw.io.mysql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmysql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F330.mysql",{"sidebar":2823},{"title":3976,"path":3977,"stem":3978,"meta":3979},"pw.io.nats","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnats","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F340.nats",{"sidebar":2823},{"title":3981,"path":3982,"stem":3983,"meta":3984},"pw.io.null","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnull","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F350.null",{"sidebar":2823},{"title":3986,"path":3987,"stem":3988,"meta":3989},"pw.io.pinecone","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpinecone","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F355.pinecone",{"sidebar":2823},{"title":3991,"path":3992,"stem":3993,"meta":3994},"pw.io.plaintext","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fplaintext","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F360.plaintext",{"sidebar":2823},{"title":3996,"path":3997,"stem":3998,"meta":3999},"pw.io.postgres","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpostgres","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F370.postgres",{"sidebar":2823},{"title":4001,"path":4002,"stem":4003,"meta":4004},"pw.io.pubsub","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpubsub","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F380.pubsub",{"sidebar":2823},{"title":5,"path":2825,"stem":2828,"meta":4006},{"sidebar":2823},{"title":4008,"path":4009,"stem":4010,"meta":4011},"pw.io.pyfilesystem","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpyfilesystem","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F390.pyfilesystem",{"sidebar":2823},{"title":4013,"path":4014,"stem":4015,"meta":4016},"pw.io.python","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpython","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F400.python",{"sidebar":2823},{"title":4018,"path":4019,"stem":4020,"meta":4021},"pw.io.qdrant","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fqdrant","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F405.qdrant",{"sidebar":2823},{"title":4023,"path":4024,"stem":4025,"meta":4026},"pw.io.questdb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fquestdb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F410.questdb",{"sidebar":2823},{"title":4028,"path":4029,"stem":4030,"meta":4031},"pw.io.rabbitmq","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Frabbitmq","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F420.rabbitmq",{"sidebar":2823},{"title":4033,"path":4034,"stem":4035,"meta":4036},"pw.io.redpanda","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fredpanda","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F430.redpanda",{"sidebar":2823},{"title":4038,"path":4039,"stem":4040,"meta":4041},"pw.io.s3","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fs3","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F440.s3",{"sidebar":2823},{"title":4043,"path":4044,"stem":4045,"meta":4046},"pw.io.slack","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fslack","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F450.slack",{"sidebar":2823},{"title":4048,"path":4049,"stem":4050,"meta":4051},"pw.io.sqlite","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fsqlite","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F460.sqlite",{"sidebar":2823},{"title":4053,"path":4054,"stem":4055,"meta":4056},"pw.io.weaviate","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fweaviate","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F470.weaviate",{"sidebar":2823},{"sidebar":2823},{"title":4059,"path":4060,"stem":4061,"meta":4062},"pw.ml","\u002Fdevelopers\u002Fapi-docs\u002Fml","2.developers\u002F5.API-docs\u002F8.ML",{"sidebar":2823},{"title":4064,"path":4065,"stem":4066,"meta":4067},"pw.persistence","\u002Fdevelopers\u002Fapi-docs\u002Fpersistence-api","2.developers\u002F5.API-docs\u002F9.persistence-api",{"sidebar":2823},{"title":4069,"path":4070,"stem":4071,"children":4072,"meta":4819},"Pathway Live Data Framework Templates","\u002Fdevelopers\u002Ftemplates","2.developers\u002F7.templates\u002F1.index",[4073,4075,4080,4085,4090,4094,4115,4154,4180,4612],{"title":4069,"path":4070,"stem":4071,"meta":4074},{"navTitle":2849,"layout":2921,"aside":2824,"toc":2853,"single":2824},{"title":4076,"path":4077,"stem":4078,"meta":4079},"Run a template","\u002Fdevelopers\u002Ftemplates\u002Frun-a-template","2.developers\u002F7.templates\u002F20.run-a-template",{"heading":2853,"toc":2853},{"title":4081,"path":4082,"stem":4083,"meta":4084},"Customizing a RAG Template with YAML","\u002Fdevelopers\u002Ftemplates\u002Fconfigure-yaml","2.developers\u002F7.templates\u002F30.configure-yaml",{"heading":2853},{"title":4086,"path":4087,"stem":4088,"meta":4089},"How to Use Your Own Components in YAML Configuration","\u002Fdevelopers\u002Ftemplates\u002Fcustom-components","2.developers\u002F7.templates\u002F35.custom-components",{"heading":2853},{"title":2880,"path":4091,"stem":4092,"meta":4093},"\u002Fdevelopers\u002Ftemplates\u002Flicensing-guide","2.developers\u002F7.templates\u002F38.licensing-guide",{"heading":2853,"toc":2853},{"title":4095,"meta":4096,"path":4097,"stem":4098,"children":4099,"page":2853},"YAML Snippets",{},"\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets","2.developers\u002F7.templates\u002F39.yaml-snippets",[4100,4105,4110],{"title":4101,"path":4102,"stem":4103,"meta":4104},"Data Sources Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Fdata-sources-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F10.data-sources-examples",{"heading":2853,"toc":2824},{"title":4106,"path":4107,"stem":4108,"meta":4109},"RAG configuration Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Frag-configuration-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F20.rag-configuration-examples",{"heading":2853,"toc":2824},{"title":4111,"path":4112,"stem":4113,"meta":4114},"Full Templates Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Ffull-pipelines-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F30.full-pipelines-examples",{"heading":2853,"toc":2824},{"title":4116,"path":4117,"stem":4118,"children":4119,"page":2853},"Rag Customization","\u002Fdevelopers\u002Ftemplates\u002Frag-customization","2.developers\u002F7.templates\u002F40.rag-customization",[4120,4125,4130,4136,4142,4148],{"title":4121,"path":4122,"stem":4123,"meta":4124},"REST API","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Frest-api","2.developers\u002F7.templates\u002F40.rag-customization\u002F10.REST-API",{"heading":2853,"toc":2853},{"title":4126,"path":4127,"stem":4128,"meta":4129},"Customizing prompt","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fcustom-prompt","2.developers\u002F7.templates\u002F40.rag-customization\u002F20.custom-prompt",{"heading":2853},{"title":3437,"path":4131,"stem":4132,"meta":4133},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fparsers","2.developers\u002F7.templates\u002F40.rag-customization\u002F30.parsers",{"date":3441,"tags":4134,"keywords":4135},[2908,3375],[3375,3444,3445,3446,3447],{"title":3449,"path":4137,"stem":4138,"meta":4139},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fsplitters","2.developers\u002F7.templates\u002F40.rag-customization\u002F40.splitters",{"date":3453,"thumbnail":555,"tags":4140,"keywords":4141},[3455,3456],[3446,3456],{"title":3459,"path":4143,"stem":4144,"meta":4145},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fembedders","2.developers\u002F7.templates\u002F40.rag-customization\u002F50.embedders",{"date":3453,"thumbnail":555,"tags":4146,"keywords":4147},[2908,3464],[3375,3377,3378,3379,3466,3467],{"title":3469,"path":4149,"stem":4150,"meta":4151},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fllm-chats","2.developers\u002F7.templates\u002F40.rag-customization\u002F60.llm-chats",{"date":3473,"thumbnail":555,"tags":4152,"keywords":4153},[2908,3375,3475,3469],[3375,3377,3378,3379,3466,3477],{"title":3488,"path":4155,"stem":4156,"children":4157,"page":2853},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy","2.developers\u002F7.templates\u002F60.deploy",[4158,4162,4166,4173],{"title":3494,"path":4159,"stem":4160,"meta":4161},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fcloud-deployment","2.developers\u002F7.templates\u002F60.deploy\u002F10.cloud-deployment",{},{"title":3499,"path":4163,"stem":4164,"meta":4165},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fgcp-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F15.gcp-deploy",{},{"title":3504,"path":4167,"stem":4168,"meta":4169},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Faws-fargate-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F20.aws-fargate-deploy",{"date":3508,"tags":4170,"thumbnail":4171,"keywords":4172,"docker_github_link":3519,"deployButtons":2853},[3510,3511],{"src":3513},[3515,3516,3517,3048,3518],{"title":3521,"path":4174,"stem":4175,"meta":4176},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F25.azure-aci-deploy",{"date":3525,"tags":4177,"thumbnail":4178,"keywords":4179,"docker_github_link":3535,"deployButtons":2853},[3510,3511],{"src":3528,"contain":2824},[3530,3531,3517,3048,3532,3533,3534],{"title":4181,"meta":4182,"path":4183,"stem":4184,"children":4185,"page":2853},"ETL Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Fetl","2.developers\u002F7.templates\u002FETL",[4186,4200,4216,4235,4255,4266,4280,4291,4301,4316,4331,4345,4360,4378,4394,4408,4424,4440,4452,4465,4475,4487,4499,4513],{"title":4187,"path":4188,"stem":4189,"meta":4190},"EL Pipeline: Move your data around with Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fel-pipeline","2.developers\u002F7.templates\u002FETL\u002F10.el-pipeline",{"layout":4191,"date":4192,"tags":4193,"thumbnail":4194,"keywords":4196,"popular":2824},"template","2025-05-22",[3510,3511],{"src":4195,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fel-template\u002Fel-template-thumbnail.png",[4197,4198,4199,3046,3073,3048],"ETL","EL","YAML",{"title":4201,"path":4202,"stem":4203,"meta":4204},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fsuspicious_activity_tumbling_window","2.developers\u002F7.templates\u002FETL\u002F10.suspicious_activity_tumbling_window",{"notebook_export_path":4205,"aside":2824,"date":4206,"thumbnail":4207,"tags":4210,"keywords":4212,"layout":4191},"notebooks\u002Ftutorials\u002Fsuspicious_user_activity.ipynb","2023-05-30",{"src":4208,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-shield.png","s3",[2908,4211],"machine-learning",[3348,4213,4214,4215],"tumbling","alert","notebook",{"title":4217,"path":4218,"stem":4219,"meta":4220},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fgaussian_filtering_python","2.developers\u002F7.templates\u002FETL\u002F100.gaussian_filtering_python",{"notebook_export_path":4221,"aside":2824,"date":4222,"layout":4191,"thumbnail":4223,"tags":4225,"related":4227,"keywords":4230},"notebooks\u002Ftutorials\u002Fgaussian-filtering-python.ipynb","2023-10-17",{"src":4224},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-gaussian.png",[2908,4226],"Time Series",[4228,4229],"\u002Fblog\u002Fsignal-processing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fupsampling",[4231,4232,3313,4233,4234,3348,4215],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":4236,"path":4237,"stem":4238,"meta":4239},"Computing the Option Greeks using Pathway Live Data Framework and Databento","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F105.option-greeks",{"thumbnail":4240,"date":4242,"tags":4243,"keywords":4244,"notebook_export_path":4253,"docker_github_link":4254,"aside":2824,"layout":4191},{"src":4241,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Foption-greeks\u002Foption-greeks.png","2024-08-06",[2908,3511],[4245,4246,4247,4248,4249,4250,4251,4252,4215],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks\u002Ftutorials\u002Foption-greeks.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Foption-greeks",{"title":4256,"path":4257,"stem":4258,"meta":4259},"Automating reconciliation of messy financial transaction logs using the Pathway Live Data Framework real-time fuzzy join","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter1","2.developers\u002F7.templates\u002FETL\u002F11.fuzzy_join_chapter1",{"notebook_export_path":4260,"aside":2824,"date":4261,"tags":4262,"keywords":4263,"layout":4191},"notebooks\u002Fshowcases\u002Ffuzzy_join_part1.ipynb","2022-10-18",[2908,3511],[4264,4265,3444,4215],"Fuzzy join","reconciliation",{"title":4267,"path":4229,"stem":4268,"meta":4269},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers\u002F7.templates\u002FETL\u002F110.upsampling",{"notebook_export_path":4270,"aside":2824,"date":4271,"layout":4191,"thumbnail":4272,"tags":4274,"related":4275,"popular":2824,"keywords":4276},"notebooks\u002Ftutorials\u002Fupsampling.ipynb","2023-10-18",{"src":4273},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-time-series.png",[2908,4226],[4228,4218],[4231,4277,3313,4278,4279,4234,3348,4215],"upsampling","resampling","interpolation",{"title":4281,"path":4282,"stem":4283,"meta":4284},"Interaction with a Feedback Loop.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter2","2.developers\u002F7.templates\u002FETL\u002F12.fuzzy_join_chapter2",{"notebook_export_path":4285,"aside":2824,"date":4286,"thumbnail":4287,"tags":4289,"keywords":4290,"layout":4191},"notebooks\u002Fshowcases\u002Ffuzzy_join_part2.ipynb","2022-10-19",{"src":4288,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Ffuzzy_join\u002Freconciliation_chapter3_trim.png",[2908,3511],[4264,4265,3444,4215],{"title":4292,"path":4293,"stem":4294,"meta":4295},"Smart real-time monitoring application with alert deduplication","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Falerting-significant-changes","2.developers\u002F7.templates\u002FETL\u002F130.alerting-significant-changes",{"notebook_export_path":4296,"aside":2824,"date":4297,"tags":4298,"keywords":4299,"layout":4191},"notebooks\u002Ftutorials\u002Falert-deduplication.ipynb","2023-11-16",[2908,3511],[4214,4300,3577,4215],"deduplication",{"title":4302,"path":4303,"stem":4304,"meta":4305},"Kafka ETL: Processing event streams in Python","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F140.kafka-etl",{"layout":4191,"date":4306,"tags":4307,"thumbnail":4308,"keywords":4310,"docker_github_link":4315,"popular":2824},"2024-02-15",[3510,3511],{"src":4309,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002FETL-Kafka\u002FETL-Kafka.png",[4197,3046,4311,4312,4313,4314,3048],"datetime","time zone","timezone","concat_reindex","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-ETL",{"title":4317,"path":4318,"stem":4319,"meta":4320},"Streaming ETL pipelines in Python with Airbyte and Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fetl-python-airbyte","2.developers\u002F7.templates\u002FETL\u002F150.etl-python-airbyte",{"layout":4191,"date":4321,"tags":4322,"thumbnail":4323,"keywords":4325},"2024-02-28",[3510,3511],{"src":4324},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fairbyte\u002Fairbyte-diagram-th.png",[4326,4327,4328,4329,4330],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":4332,"path":4333,"stem":4334,"meta":4335},"Delta Lake ETL with Pathway Live Data Framework for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fdelta_lake_etl","2.developers\u002F7.templates\u002FETL\u002F175.delta_lake_etl",{"layout":4191,"date":4336,"tags":4337,"thumbnail":4338,"keywords":4340,"docker_github_link":4344},"2024-07-23",[3510,3511],{"src":4339,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fdeltalake\u002Fdelta_lake_diagram_th.png",[4341,4342,4343,4329,4330,3048],"delta lake etl","spark delta lake","spark etl","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fspark-data-preparation",{"title":4346,"path":4347,"stem":4348,"meta":4349},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-alternative","2.developers\u002F7.templates\u002FETL\u002F180.kafka-alternative",{"layout":4191,"thumbnail":4350,"date":4352,"tags":4353,"keywords":4354},{"src":4351,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fkafka-alternatives\u002Fkafka-alternatives-thumbnail.png","2024-08-27",[3510,3511],[4197,3046,4355,4356,4357,4313,4358,4359],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":4361,"path":4362,"stem":4363,"meta":4364},"Jupyter \u002F Colab: visualizing and transforming live data streams in Python notebooks with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flive_data_jupyter","2.developers\u002F7.templates\u002FETL\u002F2.live_data_jupyter",{"aside":2824,"date":3556,"tags":4365,"keywords":4366,"notebook_export_path":4376,"docker_github_link":4377,"popular":2824,"layout":4191},[2908,3511,3510],[4367,4368,4369,4370,4371,4372,4373,4374,4375,4215,3048],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks\u002Fshowcases\u002Flive-data-jupyter.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy\u002Fpart4_deployment",{"title":4379,"path":4380,"stem":4381,"meta":4382},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F2.twitter",{"aside":2824,"layout":4191,"date":4383,"thumbnail":4384,"tags":4386,"keywords":4387,"docker_github_link":4393},"2022-10-31",{"src":4385},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-twitter.png",[2908,4211,3510],[4388,4389,4390,4391,4392,3444,3048],"Twitter","tweets","sentiment analysis","geolocation","influence","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ftwitter",{"title":4395,"path":4396,"stem":4397,"meta":4398},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fevent_stream_processing_time_between_occurrences","2.developers\u002F7.templates\u002FETL\u002F20.event_stream_processing_time_between_occurrences",{"aside":2824,"date":4399,"layout":4191,"thumbnail":4400,"tags":4402,"keywords":4403},"2022-11-01",{"src":4401},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-time-between-events-in-a-multi-topic-event-stream.png",[2908,3511],[4404,4405,3045,4406,4407],"event stream","multi-topic","ordering","sort",{"title":4409,"path":4410,"stem":4411,"meta":4412},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flsh_chapter1","2.developers\u002F7.templates\u002FETL\u002F3.lsh_chapter1",{"notebook_export_path":4413,"aside":2824,"date":4414,"thumbnail":4415,"tags":4417,"keywords":4418,"layout":4191},"notebooks\u002Fshowcases\u002Flsh.ipynb","2022-10-25",{"src":4416},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-realtime-classification.png",[2908,4211],[4419,3246,4420,3241,4421,4422,4423,3444,4215],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":4425,"path":4426,"stem":4427,"meta":4428},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fuser_pairs_fuzzy_join","2.developers\u002F7.templates\u002FETL\u002F30.user_pairs_fuzzy_join",{"aside":2824,"date":4429,"thumbnail":4430,"tags":4432,"keywords":4433,"layout":4191},"2023-01-09",{"src":4431,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-mining-hidden-user-pair-activity-with-fuzzy-join.png",[2908,3511],[4434,4214,4435,4436,4437,4438,4439],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":4441,"path":4442,"stem":4443,"meta":4444},"Pathway Live Data Framework Logistics Application: Streamlined Insights for Real-Time Asset Management","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flogistics","2.developers\u002F7.templates\u002FETL\u002F4.logistics",{"aside":2824,"layout":4191,"date":4383,"thumbnail":4445,"tags":4447,"enterprise":2824,"keywords":4448},{"src":4446},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-logictics-app.png",[2908,4211],[4449,4450,4451],"Logistics","IoT","Dashboard",{"title":4453,"path":4454,"stem":4455,"meta":4456},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fbellman_ford","2.developers\u002F7.templates\u002FETL\u002F40.bellman_ford",{"aside":2824,"date":4457,"layout":4191,"thumbnail":4458,"tags":4460,"notebook_export_path":4461,"keywords":4462},"2022-11-03",{"src":4459,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-bellman-ford.png",[2908,4211],"notebooks\u002Ftutorials\u002Fbellman_ford.ipynb",[3222,4463,4464,3591,4215],"fixed-point","shortest-path",{"title":4466,"path":4467,"stem":4468,"meta":4469},"Linear regression on a Kafka stream","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flinear_regression_with_kafka","2.developers\u002F7.templates\u002FETL\u002F5.linear_regression_with_kafka",{"aside":2824,"layout":4191,"date":4470,"tags":4471,"keywords":4472,"docker_github_link":4474},"2022-12-23",[2908,3511],[4473,3046,2979],"linear regression","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-linear-regression",{"title":4476,"path":4477,"stem":4478,"meta":4479},"Real-Time PageRank on Dynamic Graphs with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fpagerank","2.developers\u002F7.templates\u002FETL\u002F50.pagerank",{"notebook_export_path":4480,"aside":2824,"date":4481,"thumbnail":4482,"tags":4484,"keywords":4485,"layout":4191},"notebooks\u002Ftutorials\u002Fpagerank.ipynb","2022-11-07",{"src":4483,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-computing-pagerank.png",[2908,4211],[4486,3591,4215],"pagerank",{"title":4488,"path":4489,"stem":4490,"meta":4491},"Sensor Fusion in real-time: combining time series data with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fcombining_time_series","2.developers\u002F7.templates\u002FETL\u002F65.combining_time_series",{"aside":2824,"date":4492,"thumbnail":4493,"tags":4494,"keywords":4495,"notebook_export_path":4498,"layout":4191},"2023-04-28",{"src":4273},[4226],[4496,4497,4279,2943,4215],"time series","multiple data sources","notebooks\u002Ftutorials\u002Fcombining-time-series.ipynb",{"title":4500,"path":4501,"stem":4502,"meta":4503},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Frealtime-log-monitoring","2.developers\u002F7.templates\u002FETL\u002F7.realtime-log-monitoring",{"aside":2824,"layout":4191,"date":4504,"thumbnail":4505,"tags":4507,"keywords":4508,"docker_github_link":4512},"2023-02-27",{"src":4506,"contain":2824},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Frealtime_log_monitoring\u002Fmeme.jpg",[2908,3511],[4509,4214,3046,4510,3021,4511,3048],"log monitoring","Filebeat","ElasticSearch","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Frealtime-log-monitoring\u002Ffilebeat-pathway-slack",{"title":4514,"path":4515,"stem":4516,"children":4517,"page":2853},"Readmes","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes","2.developers\u002F7.templates\u002FETL\u002F_readmes",[4518,4523,4528,4533,4538,4543,4548,4553,4558,4563,4568,4572,4577,4582,4587,4592,4597,4602,4607],{"title":4519,"path":4520,"stem":4521,"meta":4522},"AG2 Multi-Agent Conversations with Pathway Live Data Framework Real-Time RAG","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fag2-multiagent-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fag2-multiagent-rag",{},{"title":4524,"path":4525,"stem":4526,"meta":4527},"Azure ACI Deployment Example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fazure-aci-deploy",{},{"title":4529,"path":4530,"stem":4531,"meta":4532},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbenchmarks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbenchmarks",{},{"title":4534,"path":4535,"stem":4536,"meta":4537},"Best-rated movies examples","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbest-movies-example","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbest-movies-example",{},{"title":4539,"path":4540,"stem":4541,"meta":4542},"Make your LLM app sane again: Forgetting incorrect data in real time","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fconf42","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fconf42",{},{"title":4544,"path":4545,"stem":4546,"meta":4547},"Custom python connector example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fcustom-python-connector-twitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fcustom-python-connector-twitter",{},{"title":4549,"path":4550,"stem":4551,"meta":4552},"Realtime monitoring of logs","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffilebeat-pathway-slack","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffilebeat-pathway-slack",{},{"title":4554,"path":4555,"stem":4556,"meta":4557},"Tutorial: From interactive data exploration to deployment","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffrom_jupyter_to_deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffrom_jupyter_to_deploy",{},{"title":4559,"path":4560,"stem":4561,"meta":4562},"ETL with Kafka in\u002FKafka out","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-ETL",{},{"title":4564,"path":4565,"stem":4566,"meta":4567},"Best-rated movies example - Kafka version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-version",{},{"title":4549,"path":4569,"stem":4570,"meta":4571},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Flogstash-pathway-elastic","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Flogstash-pathway-elastic",{},{"title":4573,"path":4574,"stem":4575,"meta":4576},"Pathway Live Data Framework Monitoring using OpenTelemetry Collector and Grafana Cloud","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fmonitoring","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fmonitoring",{},{"title":4578,"path":4579,"stem":4580,"meta":4581},"Computing Option Greeks with Pathway Live Data Framework and Databento.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Foption-greeks",{},{"title":4583,"path":4584,"stem":4585,"meta":4586},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fquestion-answering-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fquestion-answering-rag",{},{"title":4588,"path":4589,"stem":4590,"meta":4591},"Best-rated movies example - Redpanda version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fredpanda-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fredpanda-version",{},{"title":4593,"path":4594,"stem":4595,"meta":4596},"Sample Pathway Live Data Framework program for SharePoint connection testing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fsharepoint-test","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fsharepoint-test",{},{"title":4598,"path":4599,"stem":4600,"meta":4601},"Data Preparation for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fspark-data-preparation","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fspark-data-preparation",{},{"title":4603,"path":4604,"stem":4605,"meta":4606},"Realtime Twitter Analysis App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ftwitter",{},{"title":4608,"path":4609,"stem":4610,"meta":4611},"Web Scraping with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fweb-scraping","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fweb-scraping",{},{"title":4613,"meta":4614,"path":4615,"stem":4616,"children":4617,"page":2853},"LLM-RAG Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Frag","2.developers\u002F7.templates\u002Frag",[4618,4631,4646,4662,4675,4693,4703,4718,4728,4738,4749,4762],{"title":4619,"path":4620,"stem":4621,"meta":4622},"Question-Answering RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdemo-question-answering","2.developers\u002F7.templates\u002Frag\u002F1000.demo-question-answering",{"redirection":4623,"thumbnail":4624,"layout":4191,"tags":4626,"date":3441,"keywords":4628,"docker_github_link":4623,"popular":2824},"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fquestion_answering_rag",{"src":4625,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fqna-th.png",[3510,4627],"ai-pipelines",[3375,3387,3377,3378,4629,3242,2979,4630],"vector store","yaml",{"title":4632,"path":4633,"stem":4634,"meta":4635},"Adaptive RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-adaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1001.template-adaptive-rag",{"thumbnail":4636,"tags":4638,"date":4639,"layout":4191,"keywords":4640,"docker_github_link":4645},{"src":4637,"contain":2824},"\u002Fassets\u002Fcontent\u002Fblog\u002Fadaptive-rag-plots\u002Fvisual-abstract.png",[3510,4627],"2024-03-29",[3375,3387,4641,4642,4643,4644,2979,4630],"Adaptive RAG","prompt engineering","prompt","explainability","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fadaptive_rag",{"title":4647,"path":4648,"stem":4649,"meta":4650},"Private RAG App with Mistral and Ollama","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-private-rag","2.developers\u002F7.templates\u002Frag\u002F1002.template-private-rag",{"tags":4651,"date":4652,"thumbnail":4653,"layout":4191,"keywords":4655,"docker_github_link":4661},[3510,4627],"2024-04-22",{"src":4654,"contain":2824},"\u002Fassets\u002Fcontent\u002Fblog\u002Flocal-adaptive-rag\u002Flocal_adaptive.png",[3375,3387,4641,4642,4644,4656,4657,4658,4659,4660,2979,4630],"mistral","ollama","private rag","local rag","ollama rag","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fprivate_rag",{"title":4663,"path":4664,"stem":4665,"meta":4666},"Multimodal RAG pipeline with GPT4o","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-multimodal-rag","2.developers\u002F7.templates\u002Frag\u002F1003.template-multimodal-rag",{"tags":4667,"date":4668,"thumbnail":4669,"layout":4191,"keywords":4671,"docker_github_link":4674,"popular":2824},[3510,4627],"2024-01-01",{"src":4670,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fmultimodal-RAG\u002FmultimodalRAG-blog-banner.png",[3375,3387,3377,3378,4672,4673,3444,2979,4630],"GPT-4o","multimodal RAG","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fmultimodal_rag",{"title":4676,"path":4677,"stem":4678,"children":4679,"meta":4689},"Live Document Indexing (Vector Store \u002F Retriever)","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-demo-document-indexing","2.developers\u002F7.templates\u002Frag\u002F1008.template-demo-document-indexing",[4680],{"title":4676,"path":4677,"stem":4678,"meta":4681},{"thumbnail":4682,"tags":4684,"date":4668,"layout":4191,"keywords":4685,"docker_github_link":4688},{"src":4683,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Flive-document-indexing-th.png",[3510,4627],[3375,3387,3377,3378,4629,3242,4686,3139,4687,2979,4630],"SharePoint","Gdrive","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdocument_indexing",{"thumbnail":4690,"tags":4691,"date":4668,"layout":4191,"keywords":4692,"docker_github_link":4688},{"src":4683,"provider":4209},[3510,4627],[3375,3387,3377,3378,4629,3242,4686,3139,4687,2979,4630],{"title":4694,"path":4695,"stem":4696,"meta":4697},"Alerting when answers change on Google Drive","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdrive-alert","2.developers\u002F7.templates\u002Frag\u002F1009.drive-alert",{"tags":4698,"date":4699,"layout":4191,"keywords":4700,"docker_github_link":4702,"hide":2824},[3510,4627],"2024-11-07",[3375,3387,3377,3378,4701,3242,3139,4687,2979],"slack","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdrive_alert",{"title":4704,"path":4705,"stem":4706,"meta":4707},"Slides AI Search App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-slides-search","2.developers\u002F7.templates\u002Frag\u002F1010.template-slides-search",{"thumbnail":4708,"tags":4710,"date":4711,"layout":4191,"keywords":4712,"docker_github_link":4717},{"src":4709,"provider":4209},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fslides-search-th.png",[3510,4627],"2024-11-14",[3375,3387,3377,3378,3139,4713,2979,4630,4714,4715,4716],"slides","multimodal","VLM","image-to-text","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fslides_ai_search",{"title":4719,"path":4720,"stem":4721,"meta":4722},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fadaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1015.adaptive-rag",{"aside":2824,"thumbnail":4723,"tags":4724,"date":4725,"notebook_export_path":4726,"keywords":4727,"run_template":4633,"hide":2824},{"src":4637,"contain":2824},[3510,4627],"2024-03-28","notebooks\u002Fshowcases\u002Fadaptive_rag_question_answering.ipynb",[3375,3387,4641,4642,4643,4644,4215,3048],{"title":4729,"path":4730,"stem":4731,"meta":4732},"Multimodal RAG for PDFs with Text, Images, and Charts","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fmultimodal-rag","2.developers\u002F7.templates\u002Frag\u002F120.multimodal-rag",{"aside":2824,"thumbnail":4733,"date":4734,"tags":4735,"keywords":4736,"notebook_export_path":4737,"run_template":4664,"popular":2824,"hide":2824},{"src":4670,"contain":2824},"2024-06-20",[3510,4627],[3375,3387,3377,3378,4672,4673,3444,4215,2979],"notebooks\u002Fshowcases\u002Fmultimodal-rag.ipynb",{"title":4739,"path":4740,"stem":4741,"meta":4742},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fprivate-rag-ollama-mistral","2.developers\u002F7.templates\u002Frag\u002F161.private-rag-ollama-mistral",{"aside":2824,"thumbnail":4743,"tags":4744,"date":4745,"related":4746,"notebook_export_path":4747,"keywords":4748,"run_template":4648,"hide":2824},{"src":4654,"contain":2824},[3510,4627],"2024-04-23",[4720,4620],"notebooks\u002Fshowcases\u002Fmistral_adaptive_rag_question_answering.ipynb",[3375,3387,4641,4642,4644,4656,4657,4658,4659,4660,4215,2979],{"title":4750,"path":4751,"stem":4752,"meta":4753},"Pathway Live Data Framework + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Funstructured-to-structured","2.developers\u002F7.templates\u002Frag\u002F5.unstructured-to-structured",{"aside":2824,"layout":4191,"date":3358,"thumbnail":4754,"tags":4756,"keywords":4757,"docker_github_link":4761},{"src":4755,"contain":2824},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fllm-app\u002Farchitecture_unst_to_st.png",[3510,4627],[3375,4758,3444,3073,3377,4759,4760,2942,3444,3048],"SQL","Entity extraction","Document parsing","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Funstructured_to_sql_on_the_fly",{"title":4514,"path":4763,"stem":4764,"children":4765,"page":2853},"\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes","2.developers\u002F7.templates\u002Frag\u002F_readmes",[4766,4771,4779,4784,4789,4794,4799,4804,4809,4814],{"title":4767,"path":4768,"stem":4769,"meta":4770},"AdaptiveRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fadaptive_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fadaptive_rag",{},{"title":4772,"path":4773,"stem":4774,"children":4775,"meta":4778},"DocumentIndexing","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_indexing","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_indexing",[4776],{"title":4772,"path":4773,"stem":4774,"meta":4777},{},{},{"title":4780,"path":4781,"stem":4782,"meta":4783},"DocumentStoreMcpServer","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server",{},{"title":4785,"path":4786,"stem":4787,"meta":4788},"Pathway Live Data Framework + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdrive_alert","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdrive_alert",{},{"title":4790,"path":4791,"stem":4792,"meta":4793},"MultimodalRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fmultimodal_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fmultimodal_rag",{},{"title":4795,"path":4796,"stem":4797,"meta":4798},"PrivateRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fprivate_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fprivate_rag",{},{"title":4800,"path":4801,"stem":4802,"meta":4803},"QuestionAnsweringRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fquestion_answering_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fquestion_answering_rag",{},{"title":4805,"path":4806,"stem":4807,"meta":4808},"SlidesAiSearch","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fslides_ai_search","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fslides_ai_search",{},{"title":4810,"path":4811,"stem":4812,"meta":4813},"UnstructuredToSqlOnTheFly","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly",{},{"title":4815,"path":4816,"stem":4817,"meta":4818},"VideoRagTwelvelabs","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fvideo_rag_twelvelabs","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fvideo_rag_twelvelabs",{},{"navTitle":2849,"layout":2921,"aside":2824,"toc":2853,"single":2824},{"id":4,"title":5,"author":6,"body":4821,"description":2820,"extension":2821,"meta":7099,"navigation":2824,"path":2825,"seo":7100,"sitemap":7101,"stem":2828,"__hash__":2829},{"type":8,"value":4822,"toc":7086},[4823,4825,4831,4833,4843,4857,4869,4871,4877,4883,4897,4903,4905,4909,4919,4925,4927,4983,4987,4993,4995,5051,5057,5059,5105,5107,5115,5125,5128,5259,5269,5272,5337,5344,5354,5360,5362,5370,5378,5384,5631,5633,5641,5757,5765,5829,5833,5921,5923,6041,6043,6171,6173,6261,6267,6439,6446,6456,6468,6642,6644,6648,6708,6716,6758,6764,6844,6850,6920,6924,6998,7002,7084],[11,4824,5],{"id":13},[15,4826,4827,21,4829,27],{},[18,4828,20],{},[23,4830,26],{"href":25},[29,4832,32],{"id":31},[15,4834,35,4835,40,4837,44,4839,48,4841,52],{},[37,4836,39],{},[37,4838,43],{},[37,4840,47],{},[37,4842,51],{},[54,4844,4845,4851],{},[57,4846,4847,62,4849,66],{},[18,4848,61],{},[37,4850,65],{},[57,4852,4853,62,4855,75],{},[18,4854,71],{},[37,4856,74],{},[15,4858,78,4859,82,4861,86,4863,90,4865,94,4867,98],{},[37,4860,81],{},[37,4862,85],{},[37,4864,89],{},[37,4866,93],{},[37,4868,97],{},[29,4870,102],{"id":101},[15,4872,105,4873,109,4875,27],{},[37,4874,108],{},[37,4876,43],{},[15,4878,114,4879,90,4881,121],{},[18,4880,117],{},[37,4882,120],{},[15,4884,114,4885,90,4887,130,4889,130,4891,137,4893,141,4895,144],{},[18,4886,126],{},[37,4888,129],{},[37,4890,133],{},[37,4892,136],{},[37,4894,140],{},[37,4896,129],{},[15,4898,147,4899,151,4901,155],{},[37,4900,150],{},[37,4902,154],{},[29,4904,159],{"id":158},[15,4906,162,4907,166],{},[18,4908,165],{},[15,4910,4911,172,4913,176,4915,180,4917,184],{},[18,4912,171],{},[18,4914,175],{},[18,4916,179],{},[37,4918,183],{},[15,4920,4921,190,4923,194],{},[18,4922,189],{},[18,4924,193],{},[196,4926,199],{"id":198},[201,4928,4929,4941],{},[204,4930,4931],{},[207,4932,4933,4935,4937,4939],{},[210,4934,212],{},[210,4936,215],{},[210,4938,218],{},[210,4940,221],{},[223,4942,4943,4953,4963,4973],{},[207,4944,4945,4947,4949,4951],{},[228,4946,230],{},[228,4948,233],{},[228,4950,236],{},[228,4952,239],{},[207,4954,4955,4957,4959,4961],{},[228,4956,244],{},[228,4958,247],{},[228,4960,250],{},[228,4962,253],{},[207,4964,4965,4967,4969,4971],{},[228,4966,258],{},[228,4968,261],{},[228,4970,264],{},[228,4972,267],{},[207,4974,4975,4977,4979,4981],{},[228,4976,272],{},[228,4978,275],{},[228,4980,278],{},[228,4982,281],{},[15,4984,284,4985,288],{},[18,4986,287],{},[15,4988,4989,294,4991,298],{},[18,4990,293],{},[18,4992,297],{},[196,4994,302],{"id":301},[201,4996,4997,5009],{},[204,4998,4999],{},[207,5000,5001,5003,5005,5007],{},[210,5002,212],{},[210,5004,313],{},[210,5006,218],{},[210,5008,221],{},[223,5010,5011,5021,5031,5041],{},[207,5012,5013,5015,5017,5019],{},[228,5014,230],{},[228,5016,326],{},[228,5018,329],{},[228,5020,239],{},[207,5022,5023,5025,5027,5029],{},[228,5024,244],{},[228,5026,338],{},[228,5028,341],{},[228,5030,344],{},[207,5032,5033,5035,5037,5039],{},[228,5034,258],{},[228,5036,351],{},[228,5038,354],{},[228,5040,357],{},[207,5042,5043,5045,5047,5049],{},[228,5044,272],{},[228,5046,364],{},[228,5048,367],{},[228,5050,370],{},[15,5052,373,5053,90,5055,378],{},[18,5054,117],{},[37,5056,120],{},[196,5058,382],{"id":381},[201,5060,5061,5071],{},[204,5062,5063],{},[207,5064,5065,5067,5069],{},[210,5066,212],{},[210,5068,218],{},[210,5070,395],{},[223,5072,5073,5081,5089,5097],{},[207,5074,5075,5077,5079],{},[228,5076,230],{},[228,5078,404],{},[228,5080,404],{},[207,5082,5083,5085,5087],{},[228,5084,244],{},[228,5086,413],{},[228,5088,416],{},[207,5090,5091,5093,5095],{},[228,5092,258],{},[228,5094,423],{},[228,5096,426],{},[207,5098,5099,5101,5103],{},[228,5100,272],{},[228,5102,433],{},[228,5104,436],{},[15,5106,439],{},[15,5108,442,5109,449,5112,455],{},[23,5110,448],{"href":445,"rel":5111},[447],[23,5113,454],{"href":452,"rel":5114},[447],[29,5116,5117,21,5120,468,5122,474],{"id":458},[460,5118,464],{"className":5119},[463],[18,5121,467],{},[460,5123,473],{"className":5124},[472],[23,5126,480],{"className":5127,"href":479},[478],[482,5129,5131,5133,5135,5175,5177],{"className":5130},[485],[15,5132,488],{},[15,5134,491],{},[54,5136,5137],{},[57,5138,5139,5141],{},[18,5140,498],{},[54,5142,5143,5149,5159,5167],{},[57,5144,5145,90,5147,509],{},[18,5146,505],{},[37,5148,508],{},[57,5150,5151,90,5153,517,5155,151,5157,524],{},[18,5152,514],{},[37,5154,508],{},[37,5156,520],{},[37,5158,523],{},[57,5160,5161,90,5163,532,5165,535],{},[18,5162,529],{},[37,5164,508],{},[37,5166,51],{},[57,5168,5169,90,5171,532,5173,545],{},[18,5170,540],{},[37,5172,508],{},[37,5174,51],{},[15,5176,548],{},[550,5178,5179],{"className":552,"code":553,"language":554,"meta":555,"style":555},[37,5180,5181,5191,5213,5227,5241,5255],{"__ignoreMap":555},[460,5182,5183,5185,5187,5189],{"class":560,"line":561},[460,5184,565],{"class":564},[460,5186,569],{"class":568},[460,5188,572],{"class":564},[460,5190,575],{"class":568},[460,5192,5193,5195,5197,5199,5201,5203,5205,5207,5209,5211],{"class":560,"line":578},[460,5194,581],{"class":568},[460,5196,585],{"class":584},[460,5198,588],{"class":568},[460,5200,27],{"class":584},[460,5202,594],{"class":593},[460,5204,27],{"class":584},[460,5206,599],{"class":593},[460,5208,27],{"class":584},[460,5210,467],{"class":604},[460,5212,607],{"class":584},[460,5214,5215,5217,5219,5221,5223,5225],{"class":560,"line":610},[460,5216,614],{"class":613},[460,5218,585],{"class":584},[460,5220,619],{"class":584},[460,5222,623],{"class":622},[460,5224,619],{"class":584},[460,5226,137],{"class":584},[460,5228,5229,5231,5233,5235,5237,5239],{"class":560,"line":630},[460,5230,633],{"class":613},[460,5232,585],{"class":584},[460,5234,619],{"class":584},[460,5236,640],{"class":622},[460,5238,619],{"class":584},[460,5240,137],{"class":584},[460,5242,5243,5245,5247,5249,5251,5253],{"class":560,"line":647},[460,5244,650],{"class":613},[460,5246,585],{"class":584},[460,5248,619],{"class":584},[460,5250,657],{"class":622},[460,5252,619],{"class":584},[460,5254,137],{"class":584},[460,5256,5257],{"class":560,"line":664},[460,5258,667],{"class":584},[29,5260,5261,21,5264,468,5266,474],{"id":670},[460,5262,464],{"className":5263},[463],[18,5265,676],{},[460,5267,680],{"className":5268},[472],[23,5270,480],{"className":5271,"href":684},[478],[482,5273,5275,5277,5279,5291,5293],{"className":5274},[485],[15,5276,690],{},[15,5278,693],{},[54,5280,5281],{},[57,5282,5283,5285,5287,90,5289,707],{},[18,5284,498],{},[701,5286],{},[18,5288,680],{},[37,5290,508],{},[15,5292,548],{},[550,5294,5295],{"className":552,"code":712,"language":554,"meta":555,"style":555},[37,5296,5297,5307],{"__ignoreMap":555},[460,5298,5299,5301,5303,5305],{"class":560,"line":561},[460,5300,565],{"class":564},[460,5302,569],{"class":568},[460,5304,572],{"class":564},[460,5306,575],{"class":568},[460,5308,5309,5311,5313,5315,5317,5319,5321,5323,5325,5327,5329,5331,5333,5335],{"class":560,"line":578},[460,5310,581],{"class":568},[460,5312,585],{"class":584},[460,5314,588],{"class":568},[460,5316,27],{"class":584},[460,5318,594],{"class":593},[460,5320,27],{"class":584},[460,5322,599],{"class":593},[460,5324,27],{"class":584},[460,5326,676],{"class":604},[460,5328,468],{"class":584},[460,5330,619],{"class":584},[460,5332,751],{"class":622},[460,5334,619],{"class":584},[460,5336,667],{"class":584},[29,5338,5339,468,5341,474],{"id":758},[18,5340,43],{},[460,5342,764],{"className":5343},[472],[15,5345,5346,774,5351,780],{},[23,5347,5349],{"className":5348,"href":770},[478],[460,5350,773],{},[23,5352,779],{"href":777,"rel":5353},[447],[15,5355,783,5356,786,5358,790],{},[37,5357,108],{},[788,5359,102],{},[15,5361,793],{},[15,5363,796,5364,130,5366,803,5368,27],{},[37,5365,799],{},[37,5367,802],{},[37,5369,806],{},[15,5371,809,5372,812,5374,815,5376,819],{},[37,5373,802],{},[37,5375,799],{},[37,5377,818],{},[15,5379,822,5380,825,5382,829],{},[37,5381,806],{},[37,5383,828],{},[54,5385,5386,5623],{},[57,5387,5388,5390],{},[18,5389,498],{},[54,5391,5392,5402,5408,5422,5440,5454,5466,5500,5510,5529,5553,5563,5583,5603,5611,5619],{},[57,5393,5394,90,5396,844,5398,848,5400,852],{},[18,5395,81],{},[37,5397,508],{},[37,5399,847],{},[37,5401,851],{},[57,5403,5404,90,5406,860],{},[18,5405,857],{},[37,5407,508],{},[57,5409,5410,90,5412,868,5414,875,5418,878,5420,881],{},[18,5411,828],{},[37,5413,867],{},[23,5415,5416],{"href":871},[37,5417,874],{},[37,5419,51],{},[37,5421,806],{},[57,5423,5424,90,5426,868,5428,130,5430,130,5432,899,5434,130,5436,904,5438,27],{},[18,5425,886],{},[37,5427,889],{},[37,5429,892],{},[37,5431,895],{},[37,5433,898],{},[37,5435,799],{},[37,5437,802],{},[37,5439,806],{},[57,5441,5442,90,5444,868,5446,130,5448,920,5450,924,5452,928],{},[18,5443,911],{},[37,5445,889],{},[37,5447,916],{},[37,5449,919],{},[37,5451,923],{},[37,5453,927],{},[57,5455,5456,90,5458,532,5460,938,5462,151,5464,943],{},[18,5457,933],{},[37,5459,508],{},[37,5461,51],{},[37,5463,129],{},[37,5465,133],{},[57,5467,5468,90,5470,868,5472,868,5474,130,5476,130,5478,130,5480,130,5482,968,5484,972,5486,975,5488,978,5490,151,5492,983,5494,986,5496,989,5498,992],{},[18,5469,108],{},[37,5471,950],{},[37,5473,889],{},[37,5475,955],{},[37,5477,958],{},[37,5479,961],{},[37,5481,964],{},[37,5483,967],{},[37,5485,971],{},[37,5487,129],{},[37,5489,133],{},[37,5491,136],{},[37,5493,140],{},[37,5495,51],{},[37,5497,971],{},[37,5499,129],{},[57,5501,5502,90,5504,532,5506,1003,5508,1006],{},[18,5503,997],{},[37,5505,1000],{},[37,5507,51],{},[37,5509,997],{},[57,5511,5512,90,5514,868,5516,130,5518,875,5520,1021,5522,1024,5524,1028,5526,27],{},[18,5513,1011],{},[37,5515,1014],{},[37,5517,508],{},[37,5519,508],{},[37,5521,51],{},[37,5523,806],{},[37,5525,1027],{},[23,5527,1033],{"href":1031,"rel":5528},[447],[57,5530,5531,90,5533,868,5535,130,5537,130,5539,1050,5541,1054,5543,1058,5545,1062,5547,1066,5549,1069,5551,1072],{},[18,5532,1038],{},[37,5534,889],{},[37,5536,1043],{},[37,5538,1046],{},[37,5540,1049],{},[37,5542,1053],{},[37,5544,1057],{},[37,5546,1061],{},[37,5548,1065],{},[37,5550,1057],{},[37,5552,1061],{},[57,5554,5555,90,5557,532,5559,1081,5561,27],{},[18,5556,1065],{},[37,5558,1000],{},[37,5560,51],{},[37,5562,1084],{},[57,5564,5565,90,5567,532,5571,532,5575,1101,5577,137,5579,1106,5581,1109],{},[18,5566,39],{},[23,5568,5569],{"href":1091},[37,5570,676],{},[23,5572,5573],{"href":1096},[37,5574,467],{},[37,5576,51],{},[37,5578,676],{},[37,5580,467],{},[37,5582,51],{},[57,5584,5585,90,5587,532,5591,1122,5593,1125,5595,1129,5597,1133,5599,1136,5601,1140],{},[18,5586,89],{},[23,5588,5589],{"href":1116},[37,5590,1119],{},[37,5592,51],{},[37,5594,1119],{},[37,5596,1128],{},[37,5598,1132],{},[37,5600,81],{},[37,5602,1139],{},[57,5604,5605,90,5607,532,5609,1150],{},[18,5606,1145],{},[37,5608,508],{},[37,5610,51],{},[57,5612,5613,90,5615,532,5617,1160],{},[18,5614,1155],{},[37,5616,1000],{},[37,5618,51],{},[57,5620,5621,1166],{},[18,5622,1165],{},[57,5624,5625,5627,5629,1177],{},[18,5626,1171],{},[701,5628],{},[788,5630,1176],{},[15,5632,548],{},[15,5634,1182,5635,1186,5637,1190,5639,1193],{},[37,5636,1185],{},[37,5638,1189],{},[37,5640,806],{},[550,5642,5643],{"className":552,"code":1196,"language":554,"meta":555,"style":555},[37,5644,5645,5655,5671,5679,5687,5709,5719,5729,5743,5753],{"__ignoreMap":555},[460,5646,5647,5649,5651,5653],{"class":560,"line":561},[460,5648,565],{"class":564},[460,5650,569],{"class":568},[460,5652,572],{"class":564},[460,5654,575],{"class":568},[460,5656,5657,5659,5661,5663,5665,5667,5669],{"class":560,"line":578},[460,5658,1214],{"class":1213},[460,5660,1218],{"class":1217},[460,5662,468],{"class":584},[460,5664,1223],{"class":1217},[460,5666,27],{"class":584},[460,5668,874],{"class":1217},[460,5670,1230],{"class":584},[460,5672,5673,5675,5677],{"class":560,"line":610},[460,5674,1235],{"class":568},[460,5676,1238],{"class":584},[460,5678,1241],{"class":1217},[460,5680,5681,5683,5685],{"class":560,"line":630},[460,5682,1246],{"class":568},[460,5684,1238],{"class":584},[460,5686,1251],{"class":1217},[460,5688,5689,5691,5693,5695,5697,5699,5701,5703,5705,5707],{"class":560,"line":647},[460,5690,1256],{"class":568},[460,5692,585],{"class":584},[460,5694,588],{"class":568},[460,5696,27],{"class":584},[460,5698,594],{"class":593},[460,5700,27],{"class":584},[460,5702,599],{"class":593},[460,5704,27],{"class":584},[460,5706,43],{"class":604},[460,5708,607],{"class":584},[460,5710,5711,5713,5715,5717],{"class":560,"line":664},[460,5712,1279],{"class":584},[460,5714,847],{"class":622},[460,5716,619],{"class":584},[460,5718,137],{"class":584},[460,5720,5721,5723,5725,5727],{"class":560,"line":1288},[460,5722,1279],{"class":584},[460,5724,1293],{"class":622},[460,5726,619],{"class":584},[460,5728,137],{"class":584},[460,5730,5731,5733,5735,5737,5739,5741],{"class":560,"line":1300},[460,5732,1303],{"class":613},[460,5734,585],{"class":584},[460,5736,619],{"class":584},[460,5738,1310],{"class":622},[460,5740,619],{"class":584},[460,5742,137],{"class":584},[460,5744,5745,5747,5749,5751],{"class":560,"line":1317},[460,5746,1320],{"class":613},[460,5748,585],{"class":584},[460,5750,1325],{"class":604},[460,5752,137],{"class":584},[460,5754,5755],{"class":560,"line":1330},[460,5756,667],{"class":584},[15,5758,1335,5759,1338,5761,1342,5763,1345],{},[37,5760,799],{},[37,5762,1341],{},[37,5764,802],{},[550,5766,5767],{"className":552,"code":1348,"language":554,"meta":555,"style":555},[37,5768,5769,5791,5801,5811,5825],{"__ignoreMap":555},[460,5770,5771,5773,5775,5777,5779,5781,5783,5785,5787,5789],{"class":560,"line":561},[460,5772,1256],{"class":568},[460,5774,585],{"class":584},[460,5776,588],{"class":568},[460,5778,27],{"class":584},[460,5780,594],{"class":593},[460,5782,27],{"class":584},[460,5784,599],{"class":593},[460,5786,27],{"class":584},[460,5788,43],{"class":604},[460,5790,607],{"class":584},[460,5792,5793,5795,5797,5799],{"class":560,"line":578},[460,5794,1279],{"class":584},[460,5796,847],{"class":622},[460,5798,619],{"class":584},[460,5800,137],{"class":584},[460,5802,5803,5805,5807,5809],{"class":560,"line":610},[460,5804,1279],{"class":584},[460,5806,1293],{"class":622},[460,5808,619],{"class":584},[460,5810,137],{"class":584},[460,5812,5813,5815,5817,5819,5821,5823],{"class":560,"line":630},[460,5814,1303],{"class":613},[460,5816,585],{"class":584},[460,5818,619],{"class":584},[460,5820,1403],{"class":622},[460,5822,619],{"class":584},[460,5824,137],{"class":584},[460,5826,5827],{"class":560,"line":647},[460,5828,667],{"class":584},[15,5830,1414,5831,1417],{},[37,5832,927],{},[550,5834,5835],{"className":552,"code":1420,"language":554,"meta":555,"style":555},[37,5836,5837,5859,5869,5879,5893,5903,5917],{"__ignoreMap":555},[460,5838,5839,5841,5843,5845,5847,5849,5851,5853,5855,5857],{"class":560,"line":561},[460,5840,1256],{"class":568},[460,5842,585],{"class":584},[460,5844,588],{"class":568},[460,5846,27],{"class":584},[460,5848,594],{"class":593},[460,5850,27],{"class":584},[460,5852,599],{"class":593},[460,5854,27],{"class":584},[460,5856,43],{"class":604},[460,5858,607],{"class":584},[460,5860,5861,5863,5865,5867],{"class":560,"line":578},[460,5862,1279],{"class":584},[460,5864,847],{"class":622},[460,5866,619],{"class":584},[460,5868,137],{"class":584},[460,5870,5871,5873,5875,5877],{"class":560,"line":610},[460,5872,1279],{"class":584},[460,5874,1293],{"class":622},[460,5876,619],{"class":584},[460,5878,137],{"class":584},[460,5880,5881,5883,5885,5887,5889,5891],{"class":560,"line":630},[460,5882,1303],{"class":613},[460,5884,585],{"class":584},[460,5886,619],{"class":584},[460,5888,1310],{"class":622},[460,5890,619],{"class":584},[460,5892,137],{"class":584},[460,5894,5895,5897,5899,5901],{"class":560,"line":647},[460,5896,1320],{"class":613},[460,5898,585],{"class":584},[460,5900,1325],{"class":604},[460,5902,137],{"class":584},[460,5904,5905,5907,5909,5911,5913,5915],{"class":560,"line":664},[460,5906,1493],{"class":613},[460,5908,585],{"class":584},[460,5910,619],{"class":584},[460,5912,1500],{"class":622},[460,5914,619],{"class":584},[460,5916,137],{"class":584},[460,5918,5919],{"class":560,"line":1288},[460,5920,667],{"class":584},[15,5922,1511],{},[550,5924,5925],{"className":552,"code":1514,"language":554,"meta":555,"style":555},[37,5926,5927,5949,5959,5969,5983,5993,6023,6037],{"__ignoreMap":555},[460,5928,5929,5931,5933,5935,5937,5939,5941,5943,5945,5947],{"class":560,"line":561},[460,5930,1256],{"class":568},[460,5932,585],{"class":584},[460,5934,588],{"class":568},[460,5936,27],{"class":584},[460,5938,594],{"class":593},[460,5940,27],{"class":584},[460,5942,599],{"class":593},[460,5944,27],{"class":584},[460,5946,43],{"class":604},[460,5948,607],{"class":584},[460,5950,5951,5953,5955,5957],{"class":560,"line":578},[460,5952,1279],{"class":584},[460,5954,1545],{"class":622},[460,5956,619],{"class":584},[460,5958,137],{"class":584},[460,5960,5961,5963,5965,5967],{"class":560,"line":610},[460,5962,1279],{"class":584},[460,5964,1293],{"class":622},[460,5966,619],{"class":584},[460,5968,137],{"class":584},[460,5970,5971,5973,5975,5977,5979,5981],{"class":560,"line":630},[460,5972,1303],{"class":613},[460,5974,585],{"class":584},[460,5976,619],{"class":584},[460,5978,1310],{"class":622},[460,5980,619],{"class":584},[460,5982,137],{"class":584},[460,5984,5985,5987,5989,5991],{"class":560,"line":647},[460,5986,1320],{"class":613},[460,5988,585],{"class":584},[460,5990,1325],{"class":604},[460,5992,137],{"class":584},[460,5994,5995,5997,5999,6001,6003,6005,6007,6009,6011,6013,6015,6017,6019,6021],{"class":560,"line":664},[460,5996,1588],{"class":613},[460,5998,585],{"class":584},[460,6000,1223],{"class":604},[460,6002,27],{"class":584},[460,6004,594],{"class":593},[460,6006,27],{"class":584},[460,6008,599],{"class":593},[460,6010,27],{"class":584},[460,6012,676],{"class":604},[460,6014,468],{"class":584},[460,6016,619],{"class":584},[460,6018,751],{"class":622},[460,6020,619],{"class":584},[460,6022,1615],{"class":584},[460,6024,6025,6027,6029,6031,6033,6035],{"class":560,"line":1288},[460,6026,1620],{"class":613},[460,6028,585],{"class":584},[460,6030,619],{"class":584},[460,6032,1627],{"class":622},[460,6034,619],{"class":584},[460,6036,137],{"class":584},[460,6038,6039],{"class":560,"line":1300},[460,6040,667],{"class":584},[15,6042,1638],{},[550,6044,6045],{"className":552,"code":1641,"language":554,"meta":555,"style":555},[37,6046,6047,6053,6075,6085,6095,6109,6119,6133,6167],{"__ignoreMap":555},[460,6048,6049,6051],{"class":560,"line":561},[460,6050,565],{"class":564},[460,6052,1650],{"class":568},[460,6054,6055,6057,6059,6061,6063,6065,6067,6069,6071,6073],{"class":560,"line":578},[460,6056,1256],{"class":568},[460,6058,585],{"class":584},[460,6060,588],{"class":568},[460,6062,27],{"class":584},[460,6064,594],{"class":593},[460,6066,27],{"class":584},[460,6068,599],{"class":593},[460,6070,27],{"class":584},[460,6072,43],{"class":604},[460,6074,607],{"class":584},[460,6076,6077,6079,6081,6083],{"class":560,"line":610},[460,6078,1279],{"class":584},[460,6080,847],{"class":622},[460,6082,619],{"class":584},[460,6084,137],{"class":584},[460,6086,6087,6089,6091,6093],{"class":560,"line":630},[460,6088,1279],{"class":584},[460,6090,1293],{"class":622},[460,6092,619],{"class":584},[460,6094,137],{"class":584},[460,6096,6097,6099,6101,6103,6105,6107],{"class":560,"line":647},[460,6098,1303],{"class":613},[460,6100,585],{"class":584},[460,6102,619],{"class":584},[460,6104,1310],{"class":622},[460,6106,619],{"class":584},[460,6108,137],{"class":584},[460,6110,6111,6113,6115,6117],{"class":560,"line":664},[460,6112,1320],{"class":613},[460,6114,585],{"class":584},[460,6116,1325],{"class":604},[460,6118,137],{"class":584},[460,6120,6121,6123,6125,6127,6129,6131],{"class":560,"line":1288},[460,6122,1620],{"class":613},[460,6124,585],{"class":584},[460,6126,619],{"class":584},[460,6128,1727],{"class":622},[460,6130,619],{"class":584},[460,6132,137],{"class":584},[460,6134,6135,6137,6139,6141,6143,6145,6147,6149,6151,6153,6155,6157,6159,6161,6163,6165],{"class":560,"line":1300},[460,6136,1736],{"class":613},[460,6138,585],{"class":584},[460,6140,1000],{"class":1217},[460,6142,468],{"class":584},[460,6144,1745],{"class":604},[460,6146,27],{"class":584},[460,6148,1745],{"class":604},[460,6150,1752],{"class":584},[460,6152,1755],{"class":584},[460,6154,1759],{"class":1758},[460,6156,474],{"class":584},[460,6158,1764],{"class":584},[460,6160,1767],{"class":1758},[460,6162,1755],{"class":584},[460,6164,1759],{"class":1758},[460,6166,137],{"class":584},[460,6168,6169],{"class":560,"line":1317},[460,6170,667],{"class":584},[15,6172,1780],{},[550,6174,6175],{"className":552,"code":1783,"language":554,"meta":555,"style":555},[37,6176,6177,6199,6209,6219,6233,6243,6257],{"__ignoreMap":555},[460,6178,6179,6181,6183,6185,6187,6189,6191,6193,6195,6197],{"class":560,"line":561},[460,6180,1256],{"class":568},[460,6182,585],{"class":584},[460,6184,588],{"class":568},[460,6186,27],{"class":584},[460,6188,594],{"class":593},[460,6190,27],{"class":584},[460,6192,599],{"class":593},[460,6194,27],{"class":584},[460,6196,43],{"class":604},[460,6198,607],{"class":584},[460,6200,6201,6203,6205,6207],{"class":560,"line":578},[460,6202,1279],{"class":584},[460,6204,847],{"class":622},[460,6206,619],{"class":584},[460,6208,137],{"class":584},[460,6210,6211,6213,6215,6217],{"class":560,"line":610},[460,6212,1279],{"class":584},[460,6214,1293],{"class":622},[460,6216,619],{"class":584},[460,6218,137],{"class":584},[460,6220,6221,6223,6225,6227,6229,6231],{"class":560,"line":630},[460,6222,1303],{"class":613},[460,6224,585],{"class":584},[460,6226,619],{"class":584},[460,6228,1310],{"class":622},[460,6230,619],{"class":584},[460,6232,137],{"class":584},[460,6234,6235,6237,6239,6241],{"class":560,"line":647},[460,6236,1320],{"class":613},[460,6238,585],{"class":584},[460,6240,1325],{"class":604},[460,6242,137],{"class":584},[460,6244,6245,6247,6249,6251,6253,6255],{"class":560,"line":664},[460,6246,1856],{"class":613},[460,6248,585],{"class":584},[460,6250,619],{"class":584},[460,6252,1863],{"class":622},[460,6254,619],{"class":584},[460,6256,137],{"class":584},[460,6258,6259],{"class":560,"line":1288},[460,6260,667],{"class":584},[15,6262,1874,6263,1878,6265,1882],{},[37,6264,1877],{},[37,6266,1881],{},[550,6268,6269],{"className":552,"code":1885,"language":554,"meta":555,"style":555},[37,6270,6271,6287,6295,6303,6325,6335,6345,6359,6369,6373,6399,6409,6435],{"__ignoreMap":555},[460,6272,6273,6275,6277,6279,6281,6283,6285],{"class":560,"line":561},[460,6274,1214],{"class":1213},[460,6276,1894],{"class":1217},[460,6278,468],{"class":584},[460,6280,1223],{"class":1217},[460,6282,27],{"class":584},[460,6284,874],{"class":1217},[460,6286,1230],{"class":584},[460,6288,6289,6291,6293],{"class":560,"line":578},[460,6290,1909],{"class":568},[460,6292,1238],{"class":584},[460,6294,1241],{"class":1217},[460,6296,6297,6299,6301],{"class":560,"line":610},[460,6298,1246],{"class":568},[460,6300,1238],{"class":584},[460,6302,1251],{"class":1217},[460,6304,6305,6307,6309,6311,6313,6315,6317,6319,6321,6323],{"class":560,"line":630},[460,6306,1926],{"class":568},[460,6308,585],{"class":584},[460,6310,588],{"class":568},[460,6312,27],{"class":584},[460,6314,594],{"class":593},[460,6316,27],{"class":584},[460,6318,599],{"class":593},[460,6320,27],{"class":584},[460,6322,43],{"class":604},[460,6324,607],{"class":584},[460,6326,6327,6329,6331,6333],{"class":560,"line":647},[460,6328,1279],{"class":584},[460,6330,847],{"class":622},[460,6332,619],{"class":584},[460,6334,137],{"class":584},[460,6336,6337,6339,6341,6343],{"class":560,"line":664},[460,6338,1279],{"class":584},[460,6340,1293],{"class":622},[460,6342,619],{"class":584},[460,6344,137],{"class":584},[460,6346,6347,6349,6351,6353,6355,6357],{"class":560,"line":1288},[460,6348,1303],{"class":613},[460,6350,585],{"class":584},[460,6352,619],{"class":584},[460,6354,1310],{"class":622},[460,6356,619],{"class":584},[460,6358,137],{"class":584},[460,6360,6361,6363,6365,6367],{"class":560,"line":1300},[460,6362,1320],{"class":613},[460,6364,585],{"class":584},[460,6366,1987],{"class":604},[460,6368,137],{"class":584},[460,6370,6371],{"class":560,"line":1317},[460,6372,667],{"class":584},[460,6374,6375,6377,6379,6381,6383,6385,6387,6389,6391,6393,6395,6397],{"class":560,"line":1330},[460,6376,1998],{"class":568},[460,6378,585],{"class":584},[460,6380,2003],{"class":568},[460,6382,27],{"class":584},[460,6384,2008],{"class":604},[460,6386,468],{"class":584},[460,6388,2013],{"class":604},[460,6390,27],{"class":584},[460,6392,1881],{"class":593},[460,6394,2020],{"class":584},[460,6396,2023],{"class":604},[460,6398,607],{"class":584},[460,6400,6401,6403,6405,6407],{"class":560,"line":2028},[460,6402,2031],{"class":604},[460,6404,27],{"class":584},[460,6406,1881],{"class":593},[460,6408,137],{"class":584},[460,6410,6411,6413,6415,6417,6419,6421,6423,6425,6427,6429,6431,6433],{"class":560,"line":2040},[460,6412,1246],{"class":613},[460,6414,585],{"class":584},[460,6416,1223],{"class":604},[460,6418,27],{"class":584},[460,6420,2051],{"class":593},[460,6422,27],{"class":584},[460,6424,2056],{"class":604},[460,6426,468],{"class":584},[460,6428,2013],{"class":604},[460,6430,27],{"class":584},[460,6432,2065],{"class":593},[460,6434,1615],{"class":584},[460,6436,6437],{"class":560,"line":2070},[460,6438,667],{"class":584},[29,6440,6441,468,6443,474],{"id":2075},[18,6442,47],{},[460,6444,2081],{"className":6445},[472],[15,6447,6448,2090,6453,780],{},[23,6449,6451],{"className":6450,"href":2087},[478],[460,6452,773],{},[23,6454,779],{"href":777,"rel":6455},[447],[15,6457,2096,6458,2099,6460,2102,6462,2105,6464,2109,6466,2112],{},[37,6459,154],{},[37,6461,230],{},[37,6463,154],{},[37,6465,2108],{},[788,6467,102],{},[54,6469,6470,6636],{},[57,6471,6472,6474],{},[18,6473,498],{},[54,6475,6476,6484,6494,6504,6532,6540,6550,6564,6576,6596,6616,6624],{},[57,6477,6478,90,6480,2130],{},[18,6479,201],{},[23,6481,6482],{"href":2127},[37,6483,1176],{},[57,6485,6486,90,6488,844,6490,848,6492,852],{},[18,6487,81],{},[37,6489,508],{},[37,6491,847],{},[37,6493,851],{},[57,6495,6496,90,6498,532,6500,2153],{},[18,6497,857],{},[37,6499,508],{},[23,6501,6502],{"href":2149},[37,6503,2152],{},[57,6505,6506,90,6508,868,6510,130,6512,130,6514,130,6516,2169,6518,130,6520,130,6522,2177,6524,2180,6526,151,6528,2185,6530,2189],{},[18,6507,886],{},[37,6509,889],{},[37,6511,898],{},[37,6513,2164],{},[37,6515,895],{},[37,6517,892],{},[37,6519,806],{},[37,6521,2174],{},[37,6523,799],{},[37,6525,802],{},[37,6527,799],{},[37,6529,802],{},[37,6531,2188],{},[57,6533,6534,90,6536,2197,6538,2200],{},[18,6535,2194],{},[37,6537,508],{},[37,6539,2174],{},[57,6541,6542,90,6544,532,6548,2212],{},[18,6543,2205],{},[23,6545,6546],{"href":2149},[37,6547,2152],{},[37,6549,51],{},[57,6551,6552,90,6554,532,6558,2223,6560,2177,6562,2228],{},[18,6553,2188],{},[23,6555,6556],{"href":2149},[37,6557,2152],{},[37,6559,51],{},[37,6561,799],{},[37,6563,802],{},[57,6565,6566,90,6568,868,6570,868,6572,2243],{},[18,6567,2233],{},[37,6569,950],{},[37,6571,2238],{},[23,6573,6574],{"href":2149},[37,6575,2152],{},[57,6577,6578,90,6580,532,6584,532,6588,1101,6590,137,6592,1106,6594,1109],{},[18,6579,39],{},[23,6581,6582],{"href":1091},[37,6583,676],{},[23,6585,6586],{"href":1096},[37,6587,467],{},[37,6589,51],{},[37,6591,676],{},[37,6593,467],{},[37,6595,51],{},[57,6597,6598,90,6600,532,6604,1122,6606,1125,6608,1129,6610,1133,6612,1136,6614,1140],{},[18,6599,89],{},[23,6601,6602],{"href":1116},[37,6603,1119],{},[37,6605,51],{},[37,6607,1119],{},[37,6609,1128],{},[37,6611,1132],{},[37,6613,81],{},[37,6615,1139],{},[57,6617,6618,90,6620,532,6622,2292],{},[18,6619,1145],{},[37,6621,508],{},[37,6623,51],{},[57,6625,6626,90,6628,868,6630,868,6632,2306],{},[18,6627,2297],{},[37,6629,950],{},[37,6631,2238],{},[23,6633,6634],{"href":2149},[37,6635,2152],{},[57,6637,6638,6640,51],{},[18,6639,1171],{},[701,6641],{},[15,6643,548],{},[15,6645,2317,6646,2321],{},[37,6647,2320],{},[550,6649,6650],{"className":552,"code":2324,"language":554,"meta":555,"style":555},[37,6651,6652,6662,6680,6684,6688,6692,6696,6700,6704],{"__ignoreMap":555},[460,6653,6654,6656,6658,6660],{"class":560,"line":561},[460,6655,565],{"class":564},[460,6657,569],{"class":568},[460,6659,572],{"class":564},[460,6661,575],{"class":568},[460,6663,6664,6666,6668,6670,6672,6674,6676,6678],{"class":560,"line":578},[460,6665,2341],{"class":568},[460,6667,585],{"class":584},[460,6669,588],{"class":568},[460,6671,27],{"class":584},[460,6673,2350],{"class":593},[460,6675,27],{"class":584},[460,6677,2355],{"class":604},[460,6679,607],{"class":584},[460,6681,6682],{"class":560,"line":610},[460,6683,2362],{"class":584},[460,6685,6686],{"class":560,"line":630},[460,6687,2367],{"class":622},[460,6689,6690],{"class":560,"line":647},[460,6691,2372],{"class":622},[460,6693,6694],{"class":560,"line":664},[460,6695,2377],{"class":622},[460,6697,6698],{"class":560,"line":1288},[460,6699,2382],{"class":622},[460,6701,6702],{"class":560,"line":1300},[460,6703,2362],{"class":584},[460,6705,6706],{"class":560,"line":1317},[460,6707,667],{"class":584},[15,6709,2393,6710,2397,6712,151,6714,2402],{},[37,6711,2396],{},[37,6713,150],{},[37,6715,154],{},[550,6717,6718],{"className":552,"code":2405,"language":554,"meta":555,"style":555},[37,6719,6720],{"__ignoreMap":555},[460,6721,6722,6724,6726,6728,6730,6732,6734,6736,6738,6740,6742,6744,6746,6748,6750,6752,6754,6756],{"class":560,"line":561},[460,6723,1223],{"class":568},[460,6725,27],{"class":584},[460,6727,594],{"class":593},[460,6729,27],{"class":584},[460,6731,599],{"class":593},[460,6733,27],{"class":584},[460,6735,47],{"class":604},[460,6737,468],{"class":584},[460,6739,2320],{"class":604},[460,6741,2430],{"class":584},[460,6743,2433],{"class":584},[460,6745,847],{"class":622},[460,6747,619],{"class":584},[460,6749,2430],{"class":584},[460,6751,2433],{"class":584},[460,6753,2444],{"class":622},[460,6755,619],{"class":584},[460,6757,667],{"class":584},[15,6759,2451,6760,2454,6762,2457],{},[37,6761,799],{},[37,6763,2188],{},[550,6765,6766],{"className":552,"code":2460,"language":554,"meta":555,"style":555},[37,6767,6768,6786,6792,6802,6812,6826,6840],{"__ignoreMap":555},[460,6769,6770,6772,6774,6776,6778,6780,6782,6784],{"class":560,"line":561},[460,6771,1223],{"class":568},[460,6773,27],{"class":584},[460,6775,594],{"class":593},[460,6777,27],{"class":584},[460,6779,599],{"class":593},[460,6781,27],{"class":584},[460,6783,47],{"class":604},[460,6785,607],{"class":584},[460,6787,6788,6790],{"class":560,"line":578},[460,6789,2485],{"class":604},[460,6791,137],{"class":584},[460,6793,6794,6796,6798,6800],{"class":560,"line":610},[460,6795,1279],{"class":584},[460,6797,847],{"class":622},[460,6799,619],{"class":584},[460,6801,137],{"class":584},[460,6803,6804,6806,6808,6810],{"class":560,"line":630},[460,6805,1279],{"class":584},[460,6807,2444],{"class":622},[460,6809,619],{"class":584},[460,6811,137],{"class":584},[460,6813,6814,6816,6818,6820,6822,6824],{"class":560,"line":647},[460,6815,1303],{"class":613},[460,6817,585],{"class":584},[460,6819,619],{"class":584},[460,6821,1403],{"class":622},[460,6823,619],{"class":584},[460,6825,137],{"class":584},[460,6827,6828,6830,6832,6834,6836,6838],{"class":560,"line":664},[460,6829,2526],{"class":613},[460,6831,585],{"class":584},[460,6833,2320],{"class":604},[460,6835,27],{"class":584},[460,6837,2535],{"class":593},[460,6839,137],{"class":584},[460,6841,6842],{"class":560,"line":1288},[460,6843,667],{"class":584},[15,6845,2544,6846,2547,6848,2550],{},[37,6847,2205],{},[37,6849,47],{},[550,6851,6852],{"className":552,"code":2553,"language":554,"meta":555,"style":555},[37,6853,6854,6872,6878,6888,6902,6916],{"__ignoreMap":555},[460,6855,6856,6858,6860,6862,6864,6866,6868,6870],{"class":560,"line":561},[460,6857,1223],{"class":568},[460,6859,27],{"class":584},[460,6861,594],{"class":593},[460,6863,27],{"class":584},[460,6865,599],{"class":593},[460,6867,27],{"class":584},[460,6869,47],{"class":604},[460,6871,607],{"class":584},[460,6873,6874,6876],{"class":560,"line":578},[460,6875,2485],{"class":604},[460,6877,137],{"class":584},[460,6879,6880,6882,6884,6886],{"class":560,"line":610},[460,6881,1279],{"class":584},[460,6883,847],{"class":622},[460,6885,619],{"class":584},[460,6887,137],{"class":584},[460,6889,6890,6892,6894,6896,6898,6900],{"class":560,"line":630},[460,6891,2594],{"class":613},[460,6893,585],{"class":584},[460,6895,2320],{"class":604},[460,6897,27],{"class":584},[460,6899,2535],{"class":593},[460,6901,137],{"class":584},[460,6903,6904,6906,6908,6910,6912,6914],{"class":560,"line":647},[460,6905,2609],{"class":613},[460,6907,585],{"class":584},[460,6909,2320],{"class":604},[460,6911,27],{"class":584},[460,6913,2618],{"class":593},[460,6915,137],{"class":584},[460,6917,6918],{"class":560,"line":664},[460,6919,667],{"class":584},[15,6921,2627,6922,2630],{},[37,6923,2233],{},[550,6925,6926],{"className":552,"code":2633,"language":554,"meta":555,"style":555},[37,6927,6928,6946,6952,6962,6972,6994],{"__ignoreMap":555},[460,6929,6930,6932,6934,6936,6938,6940,6942,6944],{"class":560,"line":561},[460,6931,1223],{"class":568},[460,6933,27],{"class":584},[460,6935,594],{"class":593},[460,6937,27],{"class":584},[460,6939,599],{"class":593},[460,6941,27],{"class":584},[460,6943,47],{"class":604},[460,6945,607],{"class":584},[460,6947,6948,6950],{"class":560,"line":578},[460,6949,2485],{"class":604},[460,6951,137],{"class":584},[460,6953,6954,6956,6958,6960],{"class":560,"line":610},[460,6955,1279],{"class":584},[460,6957,847],{"class":622},[460,6959,619],{"class":584},[460,6961,137],{"class":584},[460,6963,6964,6966,6968,6970],{"class":560,"line":630},[460,6965,1279],{"class":584},[460,6967,2444],{"class":622},[460,6969,619],{"class":584},[460,6971,137],{"class":584},[460,6973,6974,6976,6978,6980,6982,6984,6986,6988,6990,6992],{"class":560,"line":647},[460,6975,2684],{"class":613},[460,6977,2687],{"class":584},[460,6979,2320],{"class":604},[460,6981,27],{"class":584},[460,6983,2694],{"class":593},[460,6985,2430],{"class":584},[460,6987,2699],{"class":604},[460,6989,27],{"class":584},[460,6991,2618],{"class":593},[460,6993,2706],{"class":584},[460,6995,6996],{"class":560,"line":664},[460,6997,667],{"class":584},[15,6999,2713,7000,1238],{},[37,7001,43],{},[550,7003,7004],{"className":552,"code":2718,"language":554,"meta":555,"style":555},[37,7005,7006,7024,7030,7040,7050,7080],{"__ignoreMap":555},[460,7007,7008,7010,7012,7014,7016,7018,7020,7022],{"class":560,"line":561},[460,7009,1223],{"class":568},[460,7011,27],{"class":584},[460,7013,594],{"class":593},[460,7015,27],{"class":584},[460,7017,599],{"class":593},[460,7019,27],{"class":584},[460,7021,47],{"class":604},[460,7023,607],{"class":584},[460,7025,7026,7028],{"class":560,"line":578},[460,7027,2485],{"class":604},[460,7029,137],{"class":584},[460,7031,7032,7034,7036,7038],{"class":560,"line":610},[460,7033,1279],{"class":584},[460,7035,1545],{"class":622},[460,7037,619],{"class":584},[460,7039,137],{"class":584},[460,7041,7042,7044,7046,7048],{"class":560,"line":630},[460,7043,1279],{"class":584},[460,7045,2444],{"class":622},[460,7047,619],{"class":584},[460,7049,137],{"class":584},[460,7051,7052,7054,7056,7058,7060,7062,7064,7066,7068,7070,7072,7074,7076,7078],{"class":560,"line":647},[460,7053,1588],{"class":613},[460,7055,585],{"class":584},[460,7057,1223],{"class":604},[460,7059,27],{"class":584},[460,7061,594],{"class":593},[460,7063,27],{"class":584},[460,7065,599],{"class":593},[460,7067,27],{"class":584},[460,7069,676],{"class":604},[460,7071,468],{"class":584},[460,7073,619],{"class":584},[460,7075,751],{"class":622},[460,7077,619],{"class":584},[460,7079,1615],{"class":584},[460,7081,7082],{"class":560,"line":664},[460,7083,667],{"class":584},[2800,7085,2802],{},{"title":555,"searchDepth":578,"depth":578,"links":7087},[7088,7089,7090,7095,7096,7097,7098],{"id":31,"depth":578,"text":32},{"id":101,"depth":578,"text":102},{"id":158,"depth":578,"text":159,"children":7091},[7092,7093,7094],{"id":198,"depth":610,"text":199},{"id":301,"depth":610,"text":302},{"id":381,"depth":610,"text":382},{"id":458,"depth":578,"text":2813},{"id":670,"depth":578,"text":2815},{"id":758,"depth":578,"text":2817},{"id":2075,"depth":578,"text":2819},{"sidebar":2823},{"title":5,"description":2820},{"loc":2825},[7103,7104],{"title":4001,"path":4002,"stem":4003,"children":-1},{"title":4008,"path":4009,"stem":4010,"children":-1},1786738579542]