[{"data":1,"prerenderedAt":1559},["ShallowReactive",2],{"navigation_docs":3,"-api-models":106,"-api-models-surround":1554},[4,26,57,83],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting Started","i-lucide-rocket","/getting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-play",false,{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":25},"Core Concepts","i-lucide-book-open","/essentials","2.essentials",[32,37,42,47,52],{"title":33,"path":34,"stem":35,"icon":36},"Models","/essentials/models","2.essentials/1.models","i-lucide-box",{"title":38,"path":39,"stem":40,"icon":41},"Collections","/essentials/collections","2.essentials/2.collections","i-lucide-folder",{"title":43,"path":44,"stem":45,"icon":46},"Views","/essentials/views","2.essentials/3.views","i-lucide-table",{"title":48,"path":49,"stem":50,"icon":51},"Schema Evolution","/essentials/schema-evolution","2.essentials/4.schema-evolution","i-lucide-git-branch",{"title":53,"path":54,"stem":55,"icon":56},"Relations","/essentials/relations","2.essentials/5.relations","i-lucide-link",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":25},"Advanced","i-lucide-settings","/advanced","3.advanced",[63,68,73,78],{"title":64,"path":65,"stem":66,"icon":67},"Time-Series","/advanced/time-series","3.advanced/1.time-series","i-lucide-chart-line",{"title":69,"path":70,"stem":71,"icon":72},"Async Support","/advanced/async","3.advanced/2.async","i-lucide-zap",{"title":74,"path":75,"stem":76,"icon":77},"PostgreSQL","/advanced/postgresql","3.advanced/3.postgresql","i-lucide-database",{"title":79,"path":80,"stem":81,"icon":82},"Performance Guide","/advanced/performance","3.advanced/4.performance","i-lucide-gauge",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":25},"API Reference","i-lucide-file-code","/api","4.api",[89,94,98,101],{"title":90,"path":91,"stem":92,"icon":93},"Engine","/api/engine","4.api/1.engine","i-lucide-cog",{"title":95,"path":96,"stem":97,"icon":41},"Collection","/api/collection","4.api/2.collection",{"title":33,"path":99,"stem":100,"icon":36},"/api/models","4.api/3.models",{"title":102,"path":103,"stem":104,"icon":105},"Exceptions","/api/exceptions","4.api/4.exceptions","i-lucide-alert-triangle",{"id":107,"title":33,"body":108,"description":1547,"extension":1548,"links":1549,"meta":1550,"navigation":1551,"path":99,"seo":1552,"stem":100,"__hash__":1553},"docs/4.api/3.models.md",{"type":109,"value":110,"toc":1531},"minimark",[111,116,125,224,229,286,290,320,324,343,354,357,448,462,466,480,540,544,601,605,608,665,711,714,717,791,795,804,942,992,1008,1021,1026,1103,1110,1128,1131,1138,1222,1265,1268,1275,1348,1378,1392,1396,1403,1516,1527],[112,113,115],"h2",{"id":114},"centauromodel","CentauroModel",[117,118,119,120,124],"p",{},"Base class for all stored objects. Extends Pydantic ",[121,122,123],"code",{},"BaseModel",".",[126,127,132],"pre",{"className":128,"code":129,"language":130,"meta":131,"style":131},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from centaurodb import CentauroModel\n\nclass Sensor(CentauroModel):\n    __centauro_name__ = \"Sensor\"   # required ClassVar[str]\n    unit: str = \"\"                 # all fields need defaults\n","python","",[121,133,134,153,160,180,203],{"__ignoreMap":131},[135,136,139,143,147,150],"span",{"class":137,"line":138},"line",1,[135,140,142],{"class":141},"s7zQu","from",[135,144,146],{"class":145},"sTEyZ"," centaurodb ",[135,148,149],{"class":141},"import",[135,151,152],{"class":145}," CentauroModel\n",[135,154,156],{"class":137,"line":155},2,[135,157,159],{"emptyLinePlaceholder":158},true,"\n",[135,161,163,167,171,175,177],{"class":137,"line":162},3,[135,164,166],{"class":165},"spNyl","class",[135,168,170],{"class":169},"sBMFI"," Sensor",[135,172,174],{"class":173},"sMK4o","(",[135,176,115],{"class":169},[135,178,179],{"class":173},"):\n",[135,181,183,186,189,192,196,199],{"class":137,"line":182},4,[135,184,185],{"class":145},"    __centauro_name__ ",[135,187,188],{"class":173},"=",[135,190,191],{"class":173}," \"",[135,193,195],{"class":194},"sfazB","Sensor",[135,197,198],{"class":173},"\"",[135,200,202],{"class":201},"sHwdD","   # required ClassVar[str]\n",[135,204,206,209,212,215,218,221],{"class":137,"line":205},5,[135,207,208],{"class":145},"    unit",[135,210,211],{"class":173},":",[135,213,214],{"class":169}," str",[135,216,217],{"class":173}," =",[135,219,220],{"class":173}," \"\"",[135,222,223],{"class":201},"                 # all fields need defaults\n",[225,226,228],"h3",{"id":227},"class-variables","Class variables",[230,231,232,248],"table",{},[233,234,235],"thead",{},[236,237,238,242,245],"tr",{},[239,240,241],"th",{},"Variable",[239,243,244],{},"Type",[239,246,247],{},"Description",[249,250,251,271],"tbody",{},[236,252,253,259,264],{},[254,255,256],"td",{},[121,257,258],{},"__centauro_name__",[254,260,261],{},[121,262,263],{},"ClassVar[str]",[254,265,266,270],{},[267,268,269],"strong",{},"Required."," Stable database identifier for the model.",[236,272,273,278,283],{},[254,274,275],{},[121,276,277],{},"fields",[254,279,280],{},[121,281,282],{},"FieldAccessor",[254,284,285],{},"Entry point for building type-safe query conditions.",[225,287,289],{"id":288},"instance-attributes","Instance attributes",[230,291,292,303],{},[233,293,294],{},[236,295,296,299,301],{},[239,297,298],{},"Attribute",[239,300,244],{},[239,302,247],{},[249,304,305],{},[236,306,307,312,317],{},[254,308,309],{},[121,310,311],{},"row",[254,313,314],{},[121,315,316],{},"RowFields",[254,318,319],{},"Database metadata (populated after write/read)",[225,321,323],{"id":322},"default-config","Default config",[117,325,326,328,329,332,333,338,339,342],{},[121,327,115],{}," sets ",[121,330,331],{},"validate_assignment=True"," by default — field values are validated on every attribute assignment. See ",[334,335,337],"a",{"href":336},"/essentials/models#rules","Model Rules"," for the full constraints, and the ",[334,340,79],{"href":341},"/advanced/performance#disable-assignment-validation-for-hot-paths"," for when to opt out.",[117,344,345,346,349,350,353],{},"It also sets ",[121,347,348],{},"populate_by_name=True",", which is what allows ",[121,351,352],{},"renamed_from()"," to read JSON under both the old alias and the current field name.",[117,355,356],{},"To disable per-assignment validation:",[126,358,360],{"className":128,"code":359,"language":130,"meta":131,"style":131},"from pydantic import ConfigDict\n\nclass MySensor(CentauroModel):\n    __centauro_name__ = \"MySensor\"\n    model_config = ConfigDict(validate_assignment=False, populate_by_name=True)\n    value: float = 0.0\n",[121,361,362,374,378,391,405,431],{"__ignoreMap":131},[135,363,364,366,369,371],{"class":137,"line":138},[135,365,142],{"class":141},[135,367,368],{"class":145}," pydantic ",[135,370,149],{"class":141},[135,372,373],{"class":145}," ConfigDict\n",[135,375,376],{"class":137,"line":155},[135,377,159],{"emptyLinePlaceholder":158},[135,379,380,382,385,387,389],{"class":137,"line":162},[135,381,166],{"class":165},[135,383,384],{"class":169}," MySensor",[135,386,174],{"class":173},[135,388,115],{"class":169},[135,390,179],{"class":173},[135,392,393,395,397,399,402],{"class":137,"line":182},[135,394,185],{"class":145},[135,396,188],{"class":173},[135,398,191],{"class":173},[135,400,401],{"class":194},"MySensor",[135,403,404],{"class":173},"\"\n",[135,406,407,410,412,416,418,422,425,428],{"class":137,"line":205},[135,408,409],{"class":145},"    model_config ",[135,411,188],{"class":173},[135,413,415],{"class":414},"s2Zo4"," ConfigDict",[135,417,174],{"class":173},[135,419,421],{"class":420},"sHdIc","validate_assignment",[135,423,424],{"class":173},"=False,",[135,426,427],{"class":420}," populate_by_name",[135,429,430],{"class":173},"=True)\n",[135,432,434,437,439,442,444],{"class":137,"line":433},6,[135,435,436],{"class":145},"    value",[135,438,211],{"class":173},[135,440,441],{"class":169}," float",[135,443,217],{"class":173},[135,445,447],{"class":446},"sbssI"," 0.0\n",[449,450,451,452,455,456,458,459,461],"warning",{},"When overriding ",[121,453,454],{},"model_config",", always include ",[121,457,348],{},". Omitting it replaces the base config and breaks ",[121,460,352],{}," — old JSON keys will no longer resolve to the current field name.",[112,463,465],{"id":464},"centauromodelseries","CentauroModelSeries",[117,467,468,469,471,472,475,476,479],{},"Extends ",[121,470,115],{}," with time-series values. Each instance represents exactly ",[267,473,474],{},"one"," series of ",[121,477,478],{},"(time, value)"," pairs.",[126,481,483],{"className":128,"code":482,"language":130,"meta":131,"style":131},"from centaurodb import CentauroModelSeries\n\nclass WeatherStation(CentauroModelSeries):\n    __centauro_name__ = \"WeatherStation\"\n    city: str = \"\"\n",[121,484,485,496,500,513,526],{"__ignoreMap":131},[135,486,487,489,491,493],{"class":137,"line":138},[135,488,142],{"class":141},[135,490,146],{"class":145},[135,492,149],{"class":141},[135,494,495],{"class":145}," CentauroModelSeries\n",[135,497,498],{"class":137,"line":155},[135,499,159],{"emptyLinePlaceholder":158},[135,501,502,504,507,509,511],{"class":137,"line":162},[135,503,166],{"class":165},[135,505,506],{"class":169}," WeatherStation",[135,508,174],{"class":173},[135,510,465],{"class":169},[135,512,179],{"class":173},[135,514,515,517,519,521,524],{"class":137,"line":182},[135,516,185],{"class":145},[135,518,188],{"class":173},[135,520,191],{"class":173},[135,522,523],{"class":194},"WeatherStation",[135,525,404],{"class":173},[135,527,528,531,533,535,537],{"class":137,"line":205},[135,529,530],{"class":145},"    city",[135,532,211],{"class":173},[135,534,214],{"class":169},[135,536,217],{"class":173},[135,538,539],{"class":173}," \"\"\n",[225,541,543],{"id":542},"additional-attributes","Additional attributes",[230,545,546,556],{},[233,547,548],{},[236,549,550,552,554],{},[239,551,298],{},[239,553,244],{},[239,555,247],{},[249,557,558,581],{},[236,559,560,565,570],{},[254,561,562],{},[121,563,564],{},"values",[254,566,567],{},[121,568,569],{},"list[CentauroValues]",[254,571,572,573,576,577,580],{},"Time-series data points. Also accepts a polars DataFrame with ",[121,574,575],{},"time"," and ",[121,578,579],{},"value"," columns.",[236,582,583,588,593],{},[254,584,585],{},[121,586,587],{},"df",[254,589,590],{},[121,591,592],{},"polars.DataFrame",[254,594,595,596,576,598,600],{},"Polars DataFrame of values with ",[121,597,575],{},[121,599,579],{}," columns (requires polars).",[112,602,604],{"id":603},"centaurovalues","CentauroValues",[117,606,607],{},"A single time-series data point.",[126,609,611],{"className":128,"code":610,"language":130,"meta":131,"style":131},"from centaurodb import CentauroValues\n\nval = CentauroValues(time=\"2025-06-01T08:00:00\", value=22.5)\n",[121,612,613,624,628],{"__ignoreMap":131},[135,614,615,617,619,621],{"class":137,"line":138},[135,616,142],{"class":141},[135,618,146],{"class":145},[135,620,149],{"class":141},[135,622,623],{"class":145}," CentauroValues\n",[135,625,626],{"class":137,"line":155},[135,627,159],{"emptyLinePlaceholder":158},[135,629,630,633,635,638,640,642,644,646,649,651,654,657,659,662],{"class":137,"line":162},[135,631,632],{"class":145},"val ",[135,634,188],{"class":173},[135,636,637],{"class":414}," CentauroValues",[135,639,174],{"class":173},[135,641,575],{"class":420},[135,643,188],{"class":173},[135,645,198],{"class":173},[135,647,648],{"class":194},"2025-06-01T08:00:00",[135,650,198],{"class":173},[135,652,653],{"class":173},",",[135,655,656],{"class":420}," value",[135,658,188],{"class":173},[135,660,661],{"class":446},"22.5",[135,663,664],{"class":173},")\n",[230,666,667,678],{},[233,668,669],{},[236,670,671,674,676],{},[239,672,673],{},"Field",[239,675,244],{},[239,677,247],{},[249,679,680,697],{},[236,681,682,686,691],{},[254,683,684],{},[121,685,575],{},[254,687,688],{},[121,689,690],{},"datetime",[254,692,693,694,696],{},"ISO 8601 timestamp. Strings are coerced to ",[121,695,690],{}," by Pydantic.",[236,698,699,703,708],{},[254,700,701],{},[121,702,579],{},[254,704,705],{},[121,706,707],{},"float",[254,709,710],{},"Numeric value",[112,712,316],{"id":713},"rowfields",[117,715,716],{},"Database metadata attached to persisted objects.",[230,718,719,729],{},[233,720,721],{},[236,722,723,725,727],{},[239,724,673],{},[239,726,244],{},[239,728,247],{},[249,730,731,746,763,777],{},[236,732,733,738,743],{},[254,734,735],{},[121,736,737],{},"id",[254,739,740],{},[121,741,742],{},"int",[254,744,745],{},"Auto-incremented primary key",[236,747,748,753,758],{},[254,749,750],{},[121,751,752],{},"name",[254,754,755],{},[121,756,757],{},"str",[254,759,760,761],{},"The model's ",[121,762,258],{},[236,764,765,770,774],{},[254,766,767],{},[121,768,769],{},"write_time",[254,771,772],{},[121,773,690],{},[254,775,776],{},"Timestamp of first write",[236,778,779,784,788],{},[254,780,781],{},[121,782,783],{},"edit_time",[254,785,786],{},[121,787,690],{},[254,789,790],{},"Timestamp of last update",[112,792,794],{"id":793},"parent_ref","parent_ref()",[117,796,797,798,800,801,124],{},"Field helper for declaring one-to-many relationships. Creates a nullable ",[121,799,742],{}," field that stores the parent object's ",[121,802,803],{},"row.id",[126,805,807],{"className":128,"code":806,"language":130,"meta":131,"style":131},"from centaurodb import CentauroModel, parent_ref\n\nclass Portfolio(CentauroModel):\n    __centauro_name__ = \"Portfolio\"\n    strategy: str = \"\"\n\nclass Trade(CentauroModel):\n    __centauro_name__ = \"Trade\"\n    portfolio: int | None = parent_ref(Portfolio)\n    symbol: str = \"\"\n",[121,808,809,825,829,842,855,868,872,886,900,928],{"__ignoreMap":131},[135,810,811,813,815,817,820,822],{"class":137,"line":138},[135,812,142],{"class":141},[135,814,146],{"class":145},[135,816,149],{"class":141},[135,818,819],{"class":145}," CentauroModel",[135,821,653],{"class":173},[135,823,824],{"class":145}," parent_ref\n",[135,826,827],{"class":137,"line":155},[135,828,159],{"emptyLinePlaceholder":158},[135,830,831,833,836,838,840],{"class":137,"line":162},[135,832,166],{"class":165},[135,834,835],{"class":169}," Portfolio",[135,837,174],{"class":173},[135,839,115],{"class":169},[135,841,179],{"class":173},[135,843,844,846,848,850,853],{"class":137,"line":182},[135,845,185],{"class":145},[135,847,188],{"class":173},[135,849,191],{"class":173},[135,851,852],{"class":194},"Portfolio",[135,854,404],{"class":173},[135,856,857,860,862,864,866],{"class":137,"line":205},[135,858,859],{"class":145},"    strategy",[135,861,211],{"class":173},[135,863,214],{"class":169},[135,865,217],{"class":173},[135,867,539],{"class":173},[135,869,870],{"class":137,"line":433},[135,871,159],{"emptyLinePlaceholder":158},[135,873,875,877,880,882,884],{"class":137,"line":874},7,[135,876,166],{"class":165},[135,878,879],{"class":169}," Trade",[135,881,174],{"class":173},[135,883,115],{"class":169},[135,885,179],{"class":173},[135,887,889,891,893,895,898],{"class":137,"line":888},8,[135,890,185],{"class":145},[135,892,188],{"class":173},[135,894,191],{"class":173},[135,896,897],{"class":194},"Trade",[135,899,404],{"class":173},[135,901,903,906,908,911,914,917,919,922,924,926],{"class":137,"line":902},9,[135,904,905],{"class":145},"    portfolio",[135,907,211],{"class":173},[135,909,910],{"class":169}," int",[135,912,913],{"class":173}," |",[135,915,916],{"class":173}," None",[135,918,217],{"class":173},[135,920,921],{"class":414}," parent_ref",[135,923,174],{"class":173},[135,925,852],{"class":414},[135,927,664],{"class":173},[135,929,931,934,936,938,940],{"class":137,"line":930},10,[135,932,933],{"class":145},"    symbol",[135,935,211],{"class":173},[135,937,214],{"class":169},[135,939,217],{"class":173},[135,941,539],{"class":173},[230,943,944,955],{},[233,945,946],{},[236,947,948,951,953],{},[239,949,950],{},"Parameter",[239,952,244],{},[239,954,247],{},[249,956,957,972],{},[236,958,959,964,969],{},[254,960,961],{},[121,962,963],{},"parent_model",[254,965,966],{},[121,967,968],{},"type[CentauroModel]",[254,970,971],{},"The parent model class this field points to",[236,973,974,979,981],{},[254,975,976],{},[121,977,978],{},"**field_kwargs",[254,980],{},[254,982,983,984,987,988,991],{},"Extra keyword arguments forwarded to ",[121,985,986],{},"pydantic.Field"," (e.g. ",[121,989,990],{},"description",")",[117,993,994,997,998,1001,1002,1004,1005,1007],{},[267,995,996],{},"Raises"," — ",[121,999,1000],{},"TypeError"," if ",[121,1003,963],{}," is not a ",[121,1006,115],{}," subclass.",[117,1009,1010,1011,1014,1015,1017,1018,124],{},"The field defaults to ",[121,1012,1013],{},"None"," to satisfy the zero-migration rule. CentauroDB enforces non-null at write and update time — an object with an unset ",[121,1016,793],{}," raises ",[121,1019,1020],{},"UnlinkedParentError",[117,1022,1023,1024,211],{},"You can pass a persisted parent object directly — it auto-resolves to ",[121,1025,803],{},[126,1027,1029],{"className":128,"code":1028,"language":130,"meta":131,"style":131},"coll.write_object(portfolio)\ntrade = Trade(symbol=\"AAPL\", portfolio=portfolio)  # resolves to portfolio.row.id\ntrade.portfolio = other_portfolio                   # also works on assignment\n",[121,1030,1031,1048,1085],{"__ignoreMap":131},[135,1032,1033,1036,1038,1041,1043,1046],{"class":137,"line":138},[135,1034,1035],{"class":145},"coll",[135,1037,124],{"class":173},[135,1039,1040],{"class":414},"write_object",[135,1042,174],{"class":173},[135,1044,1045],{"class":414},"portfolio",[135,1047,664],{"class":173},[135,1049,1050,1053,1055,1057,1059,1062,1064,1066,1069,1071,1073,1076,1078,1080,1082],{"class":137,"line":155},[135,1051,1052],{"class":145},"trade ",[135,1054,188],{"class":173},[135,1056,879],{"class":414},[135,1058,174],{"class":173},[135,1060,1061],{"class":420},"symbol",[135,1063,188],{"class":173},[135,1065,198],{"class":173},[135,1067,1068],{"class":194},"AAPL",[135,1070,198],{"class":173},[135,1072,653],{"class":173},[135,1074,1075],{"class":420}," portfolio",[135,1077,188],{"class":173},[135,1079,1045],{"class":414},[135,1081,991],{"class":173},[135,1083,1084],{"class":201},"  # resolves to portfolio.row.id\n",[135,1086,1087,1090,1092,1095,1097,1100],{"class":137,"line":162},[135,1088,1089],{"class":145},"trade",[135,1091,124],{"class":173},[135,1093,1045],{"class":1094},"swJcz",[135,1096,217],{"class":173},[135,1098,1099],{"class":145}," other_portfolio                   ",[135,1101,1102],{"class":201},"# also works on assignment\n",[117,1104,1105,1106,1109],{},"Passing an unpersisted parent object raises an exception at construction time. Assigning an unpersisted parent via attribute assignment raises ",[121,1107,1108],{},"ValueError",". Integer ids are still accepted.",[117,1111,1112,1113,1116,1117,1120,1121,1124,1125,1127],{},"The relationship metadata is registered on the child class as ",[121,1114,1115],{},"__centauro_refs__",", which collection helpers (",[121,1118,1119],{},"write_child",", ",[121,1122,1123],{},"children_of",") use to auto-discover foreign-key fields. Subclasses inherit ",[121,1126,793],{}," fields from their parent class.",[112,1129,352],{"id":1130},"renamed_from",[117,1132,1133,1134,1137],{},"Field helper for safe renames. Uses Pydantic ",[121,1135,1136],{},"AliasChoices"," under the hood.",[126,1139,1141],{"className":128,"code":1140,"language":130,"meta":131,"style":131},"from centaurodb import renamed_from\n\nclass Sensor(CentauroModel):\n    __centauro_name__ = \"Sensor\"\n    temperature: float = renamed_from(\"temp\", default=0.0)\n    # reads from \"temp\" or \"temperature\" in JSON\n",[121,1142,1143,1154,1158,1170,1182,1217],{"__ignoreMap":131},[135,1144,1145,1147,1149,1151],{"class":137,"line":138},[135,1146,142],{"class":141},[135,1148,146],{"class":145},[135,1150,149],{"class":141},[135,1152,1153],{"class":145}," renamed_from\n",[135,1155,1156],{"class":137,"line":155},[135,1157,159],{"emptyLinePlaceholder":158},[135,1159,1160,1162,1164,1166,1168],{"class":137,"line":162},[135,1161,166],{"class":165},[135,1163,170],{"class":169},[135,1165,174],{"class":173},[135,1167,115],{"class":169},[135,1169,179],{"class":173},[135,1171,1172,1174,1176,1178,1180],{"class":137,"line":182},[135,1173,185],{"class":145},[135,1175,188],{"class":173},[135,1177,191],{"class":173},[135,1179,195],{"class":194},[135,1181,404],{"class":173},[135,1183,1184,1187,1189,1191,1193,1196,1198,1200,1203,1205,1207,1210,1212,1215],{"class":137,"line":205},[135,1185,1186],{"class":145},"    temperature",[135,1188,211],{"class":173},[135,1190,441],{"class":169},[135,1192,217],{"class":173},[135,1194,1195],{"class":414}," renamed_from",[135,1197,174],{"class":173},[135,1199,198],{"class":173},[135,1201,1202],{"class":194},"temp",[135,1204,198],{"class":173},[135,1206,653],{"class":173},[135,1208,1209],{"class":420}," default",[135,1211,188],{"class":173},[135,1213,1214],{"class":446},"0.0",[135,1216,664],{"class":173},[135,1218,1219],{"class":137,"line":433},[135,1220,1221],{"class":201},"    # reads from \"temp\" or \"temperature\" in JSON\n",[230,1223,1224,1234],{},[233,1225,1226],{},[236,1227,1228,1230,1232],{},[239,1229,950],{},[239,1231,244],{},[239,1233,247],{},[249,1235,1236,1250],{},[236,1237,1238,1243,1247],{},[254,1239,1240],{},[121,1241,1242],{},"*old_names",[254,1244,1245],{},[121,1246,757],{},[254,1248,1249],{},"One or more previous field names",[236,1251,1252,1257,1262],{},[254,1253,1254],{},[121,1255,1256],{},"default",[254,1258,1259],{},[121,1260,1261],{},"Any",[254,1263,1264],{},"Default value for the field",[112,1266,673],{"id":1267},"field",[117,1269,1270,1271,1274],{},"A query-building class exported from ",[121,1272,1273],{},"centaurodb",". Useful for constructing conditions dynamically when you don't have a reference to the model class at the call site.",[126,1276,1278],{"className":128,"code":1277,"language":130,"meta":131,"style":131},"from centaurodb import Field\n\ncondition = Field(\"unit\") == \"Celsius\"\nresults = coll.read_objects(condition)\n",[121,1279,1280,1291,1295,1326],{"__ignoreMap":131},[135,1281,1282,1284,1286,1288],{"class":137,"line":138},[135,1283,142],{"class":141},[135,1285,146],{"class":145},[135,1287,149],{"class":141},[135,1289,1290],{"class":145}," Field\n",[135,1292,1293],{"class":137,"line":155},[135,1294,159],{"emptyLinePlaceholder":158},[135,1296,1297,1300,1302,1305,1307,1309,1312,1314,1316,1319,1321,1324],{"class":137,"line":162},[135,1298,1299],{"class":145},"condition ",[135,1301,188],{"class":173},[135,1303,1304],{"class":414}," Field",[135,1306,174],{"class":173},[135,1308,198],{"class":173},[135,1310,1311],{"class":194},"unit",[135,1313,198],{"class":173},[135,1315,991],{"class":173},[135,1317,1318],{"class":173}," ==",[135,1320,191],{"class":173},[135,1322,1323],{"class":194},"Celsius",[135,1325,404],{"class":173},[135,1327,1328,1331,1333,1336,1338,1341,1343,1346],{"class":137,"line":182},[135,1329,1330],{"class":145},"results ",[135,1332,188],{"class":173},[135,1334,1335],{"class":145}," coll",[135,1337,124],{"class":173},[135,1339,1340],{"class":414},"read_objects",[135,1342,174],{"class":173},[135,1344,1345],{"class":414},"condition",[135,1347,664],{"class":173},[117,1349,1350,1353,1354,1120,1357,1120,1360,1120,1363,1120,1366,1120,1369,1120,1372,1120,1375],{},[267,1351,1352],{},"Operators:"," ",[121,1355,1356],{},"==",[121,1358,1359],{},"!=",[121,1361,1362],{},">",[121,1364,1365],{},">=",[121,1367,1368],{},"\u003C",[121,1370,1371],{},"\u003C=",[121,1373,1374],{},".like(pattern)",[121,1376,1377],{},".is_in(values)",[117,1379,1380,1381,1384,1385,1388,1389,1391],{},"In most cases, prefer the type-safe ",[121,1382,1383],{},"Model.fields"," accessor (e.g. ",[121,1386,1387],{},"Sensor.fields.unit == \"Celsius\"","), which validates field names against the model at construction time. ",[121,1390,673],{}," is an escape hatch for generic code.",[112,1393,1395],{"id":1394},"orgroup","OrGroup",[117,1397,1398,1399,1402],{},"Combine multiple conditions with OR logic. Built by chaining ",[121,1400,1401],{},"|"," on conditions:",[126,1404,1406],{"className":128,"code":1405,"language":130,"meta":131,"style":131},"from centaurodb import OrGroup\n\ngroup = (Sensor.fields.unit == \"Celsius\") | (Sensor.fields.unit == \"Kelvin\")\nresults = coll.read_objects(group, Sensor.fields.threshold > 50)\n",[121,1407,1408,1419,1423,1478],{"__ignoreMap":131},[135,1409,1410,1412,1414,1416],{"class":137,"line":138},[135,1411,142],{"class":141},[135,1413,146],{"class":145},[135,1415,149],{"class":141},[135,1417,1418],{"class":145}," OrGroup\n",[135,1420,1421],{"class":137,"line":155},[135,1422,159],{"emptyLinePlaceholder":158},[135,1424,1425,1428,1430,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1474,1476],{"class":137,"line":162},[135,1426,1427],{"class":145},"group ",[135,1429,188],{"class":173},[135,1431,1432],{"class":173}," (",[135,1434,195],{"class":145},[135,1436,124],{"class":173},[135,1438,277],{"class":1094},[135,1440,124],{"class":173},[135,1442,1311],{"class":1094},[135,1444,1318],{"class":173},[135,1446,191],{"class":173},[135,1448,1323],{"class":194},[135,1450,198],{"class":173},[135,1452,991],{"class":173},[135,1454,913],{"class":173},[135,1456,1432],{"class":173},[135,1458,195],{"class":145},[135,1460,124],{"class":173},[135,1462,277],{"class":1094},[135,1464,124],{"class":173},[135,1466,1311],{"class":1094},[135,1468,1318],{"class":173},[135,1470,191],{"class":173},[135,1472,1473],{"class":194},"Kelvin",[135,1475,198],{"class":173},[135,1477,664],{"class":173},[135,1479,1480,1482,1484,1486,1488,1490,1492,1495,1497,1499,1501,1503,1505,1508,1511,1514],{"class":137,"line":182},[135,1481,1330],{"class":145},[135,1483,188],{"class":173},[135,1485,1335],{"class":145},[135,1487,124],{"class":173},[135,1489,1340],{"class":414},[135,1491,174],{"class":173},[135,1493,1494],{"class":414},"group",[135,1496,653],{"class":173},[135,1498,170],{"class":414},[135,1500,124],{"class":173},[135,1502,277],{"class":1094},[135,1504,124],{"class":173},[135,1506,1507],{"class":1094},"threshold",[135,1509,1510],{"class":173}," >",[135,1512,1513],{"class":446}," 50",[135,1515,664],{"class":173},[117,1517,1518,1520,1521,1526],{},[121,1519,1395],{}," is also exported for type annotations and isinstance checks. See ",[334,1522,1524],{"href":1523},"/api/collection#read_objects",[121,1525,1340],{}," for the full query reference.",[1528,1529,1530],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":131,"searchDepth":155,"depth":155,"links":1532},[1533,1538,1541,1542,1543,1544,1545,1546],{"id":114,"depth":155,"text":115,"children":1534},[1535,1536,1537],{"id":227,"depth":162,"text":228},{"id":288,"depth":162,"text":289},{"id":322,"depth":162,"text":323},{"id":464,"depth":155,"text":465,"children":1539},[1540],{"id":542,"depth":162,"text":543},{"id":603,"depth":155,"text":604},{"id":713,"depth":155,"text":316},{"id":793,"depth":155,"text":794},{"id":1130,"depth":155,"text":352},{"id":1267,"depth":155,"text":673},{"id":1394,"depth":155,"text":1395},"API reference for CentauroModel, CentauroModelSeries, CentauroValues, and RowFields.","md",null,{},{"icon":36},{"title":33,"description":1547},"T6CUxsrZYIptnHvI_yttik9Z-LVt-X_--ETajF82HAM",[1555,1557],{"title":95,"path":96,"stem":97,"description":1556,"icon":41,"children":-1},"API reference for Collection and TimeSeriesCollection.",{"title":102,"path":103,"stem":104,"description":1558,"icon":105,"children":-1},"API reference for all CentauroDB exception classes.",1781105062939]