[{"data":1,"prerenderedAt":625},["ShallowReactive",2],{"navigation":3,"api-navigation":184,"\u002Flearn\u002Fhow-to\u002Foverride-configs":206,"docyard:crossref-index":624},[4,8,155,174,180],{"title":5,"path":6,"stem":7},"Getting Started","\u002Fgetting-started","1.getting-started",{"title":9,"path":10,"stem":11,"children":12},"Learn","\u002Flearn","2.learn",[13,15,66,99,133],{"title":9,"path":10,"stem":14},"2.learn\u002Findex",{"title":16,"path":17,"stem":18,"children":19},"Tutorials","\u002Flearn\u002Ftutorials","2.learn\u002F1.tutorials\u002Findex",[20,21,26,30,34,38,42,46,50,54,58,62],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24,"icon":25},"Why Laco?","\u002Flearn\u002Ftutorials\u002Fwhy-laco","2.learn\u002F1.tutorials\u002F01.why-laco","i-lucide-notebook",{"title":27,"path":28,"stem":29,"icon":25},"First Steps with Laco","\u002Flearn\u002Ftutorials\u002Ffirst-steps","2.learn\u002F1.tutorials\u002F02.first-steps",{"title":31,"path":32,"stem":33,"icon":25},"Lazy Call and Partial","\u002Flearn\u002Ftutorials\u002Flazy-call-and-partial","2.learn\u002F1.tutorials\u002F03.lazy-call-and-partial",{"title":35,"path":36,"stem":37,"icon":25},"Hyperparameters and Interpolation","\u002Flearn\u002Ftutorials\u002Fhyperparameters-and-interpolation","2.learn\u002F1.tutorials\u002F04.hyperparameters-and-interpolation",{"title":39,"path":40,"stem":41,"icon":25},"Loading, Saving, and the CLI","\u002Flearn\u002Ftutorials\u002Floading-saving-cli","2.learn\u002F1.tutorials\u002F05.loading-saving-cli",{"title":43,"path":44,"stem":45,"icon":25},"Nested Configs and Containers","\u002Flearn\u002Ftutorials\u002Fnested-configs-and-containers","2.learn\u002F1.tutorials\u002F06.nested-configs-and-containers",{"title":47,"path":48,"stem":49,"icon":25},"Typed Groups and Schemas","\u002Flearn\u002Ftutorials\u002Ftyped-groups-and-schemas","2.learn\u002F1.tutorials\u002F07.typed-groups-and-schemas",{"title":51,"path":52,"stem":53,"icon":25},"Pipeline Configs","\u002Flearn\u002Ftutorials\u002Fpipeline-configs","2.learn\u002F1.tutorials\u002F08.pipeline-configs",{"title":55,"path":56,"stem":57,"icon":25},"Tasks and the App Loop","\u002Flearn\u002Ftutorials\u002Ftasks-and-app-loop","2.learn\u002F1.tutorials\u002F09.tasks-and-app-loop",{"title":59,"path":60,"stem":61,"icon":25},"Tracing","\u002Flearn\u002Ftutorials\u002Ftracing","2.learn\u002F1.tutorials\u002F10.tracing",{"title":63,"path":64,"stem":65,"icon":25},"Production Patterns","\u002Flearn\u002Ftutorials\u002Fproduction-patterns","2.learn\u002F1.tutorials\u002F11.production-patterns",{"title":67,"path":68,"stem":69,"children":70},"Concepts","\u002Flearn\u002Fconcepts","2.learn\u002F2.concepts\u002Findex",[71,72,76,80,84,88,92,95],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Config as Python","\u002Flearn\u002Fconcepts\u002Fconfig-as-python","2.learn\u002F2.concepts\u002F1.config-as-python",{"title":77,"path":78,"stem":79},"Lazy Construction","\u002Flearn\u002Fconcepts\u002Flazy-construction","2.learn\u002F2.concepts\u002F2.lazy-construction",{"title":81,"path":82,"stem":83},"Lie-Typing","\u002Flearn\u002Fconcepts\u002Flie-typing","2.learn\u002F2.concepts\u002F3.lie-typing",{"title":85,"path":86,"stem":87},"Interpolation","\u002Flearn\u002Fconcepts\u002Finterpolation","2.learn\u002F2.concepts\u002F4.interpolation",{"title":89,"path":90,"stem":91},"Typed Groups","\u002Flearn\u002Fconcepts\u002Ftyped-groups","2.learn\u002F2.concepts\u002F5.typed-groups",{"title":59,"path":93,"stem":94},"\u002Flearn\u002Fconcepts\u002Ftracing","2.learn\u002F2.concepts\u002F6.tracing",{"title":96,"path":97,"stem":98},"App Loop","\u002Flearn\u002Fconcepts\u002Fapp-loop","2.learn\u002F2.concepts\u002F7.app-loop",{"title":100,"path":101,"stem":102,"children":103},"How-To Guides","\u002Flearn\u002Fhow-to","2.learn\u002F3.how-to\u002Findex",[104,105,109,113,117,121,125,129],{"title":100,"path":101,"stem":102},{"title":106,"path":107,"stem":108},"Override Configs","\u002Flearn\u002Fhow-to\u002Foverride-configs","2.learn\u002F3.how-to\u002F1.override-configs",{"title":110,"path":111,"stem":112},"Safe Loading","\u002Flearn\u002Fhow-to\u002Fsafe-loading","2.learn\u002F3.how-to\u002F2.safe-loading",{"title":114,"path":115,"stem":116},"Custom Resolvers","\u002Flearn\u002Fhow-to\u002Fcustom-resolvers","2.learn\u002F3.how-to\u002F3.custom-resolvers",{"title":118,"path":119,"stem":120},"Lint and Strict Mode","\u002Flearn\u002Fhow-to\u002Flint-and-strict","2.learn\u002F3.how-to\u002F4.lint-and-strict",{"title":122,"path":123,"stem":124},"Publishing a reproducible app with laco app","\u002Flearn\u002Fhow-to\u002Flaco-app","2.learn\u002F3.how-to\u002F5.laco-app",{"title":126,"path":127,"stem":128},"Reproduce an Experiment","\u002Flearn\u002Fhow-to\u002Freproduce-experiment","2.learn\u002F3.how-to\u002F6.reproduce-experiment",{"title":130,"path":131,"stem":132},"Migrate from argparse","\u002Flearn\u002Fhow-to\u002Fmigrate-from-argparse","2.learn\u002F3.how-to\u002F7.migrate-from-argparse",{"title":134,"path":135,"stem":136,"children":137},"Examples Curriculum","\u002Flearn\u002Fexamples","2.learn\u002F4.examples\u002Findex",[138,139,143,147,151],{"title":134,"path":135,"stem":136},{"title":140,"path":141,"stem":142},"Foundation Examples","\u002Flearn\u002Fexamples\u002Ffoundations","2.learn\u002F4.examples\u002F1.foundations",{"title":144,"path":145,"stem":146},"Building Blocks","\u002Flearn\u002Fexamples\u002Fbuilding-blocks","2.learn\u002F4.examples\u002F2.building-blocks",{"title":148,"path":149,"stem":150},"Typed-Group Variants","\u002Flearn\u002Fexamples\u002Ftyped-variants","2.learn\u002F4.examples\u002F3.typed-variants",{"title":152,"path":153,"stem":154},"End-to-End Pipelines","\u002Flearn\u002Fexamples\u002Fpipelines","2.learn\u002F4.examples\u002F4.pipelines",{"title":156,"path":157,"stem":158,"children":159},"Resources","\u002Fresources","3.resources",[160,162,166,170],{"title":156,"path":157,"stem":161},"3.resources\u002Findex",{"title":163,"path":164,"stem":165},"Integrations","\u002Fresources\u002Fintegrations","3.resources\u002F1.integrations",{"title":167,"path":168,"stem":169},"Migration guide: Laco 0.x → 1.0","\u002Fresources\u002Fmigration-0.x-to-1.0","3.resources\u002F2.migration-0.x-to-1.0",{"title":171,"path":172,"stem":173},"Laco vs hydra-zen","\u002Fresources\u002Flaco-vs-hydra-zen","3.resources\u002F3.laco-vs-hydra-zen",{"title":175,"path":176,"stem":177,"children":178},"API Reference","\u002Fapi","4.api\u002Findex",[179],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183},"Lazy Configuration for Python","\u002F","index",[185,188,191,194,197,200,203],{"title":186,"path":187},"cli","\u002Fapi\u002Fcli",{"title":189,"path":190},"compat","\u002Fapi\u002Fcompat",{"title":192,"path":193},"handler","\u002Fapi\u002Fhandler",{"title":195,"path":196},"keys","\u002Fapi\u002Fkeys",{"title":198,"path":199},"language","\u002Fapi\u002Flanguage",{"title":201,"path":202},"ops","\u002Fapi\u002Fops",{"title":204,"path":205},"utils","\u002Fapi\u002Futils",{"id":207,"title":106,"body":208,"description":257,"extension":619,"meta":620,"navigation":621,"path":107,"seo":622,"stem":108,"__hash__":623},"content\u002F2.learn\u002F3.how-to\u002F1.override-configs.md",{"type":209,"value":210,"toc":610},"minimark",[211,215,234,239,251,300,311,315,318,366,369,373,379,415,419,497,501,504,545,554,558,600,606],[212,213,106],"h1",{"id":214},"override-configs",[216,217,218],"blockquote",{},[219,220,221,225,226,230,231],"p",{},[222,223,224],"strong",{},"See also:"," ",[227,228,229],"a",{"href":176},"API: laco.load",", ",[227,232,233],{"href":86},"Concepts: Interpolation",[235,236,238],"h2",{"id":237},"url-query-syntax","URL Query Syntax",[219,240,241,242,246,247,250],{},"Append ",[243,244,245],"code",{},"?key=value"," pairs to the path when calling ",[243,248,249],{},"laco.load",":",[252,253,258],"pre",{"className":254,"code":255,"language":256,"meta":257,"style":257},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","cfg = laco.load(\"configs\u002Ftrain.py?lr=5e-4&model.out_features=512\")\n","python","",[243,259,260],{"__ignoreMap":257},[261,262,265,269,273,276,280,284,287,291,295,297],"span",{"class":263,"line":264},"line",1,[261,266,268],{"class":267},"su5hD","cfg ",[261,270,272],{"class":271},"smGrS","=",[261,274,275],{"class":267}," laco",[261,277,279],{"class":278},"sP7_E",".",[261,281,283],{"class":282},"slqww","load",[261,285,286],{"class":278},"(",[261,288,290],{"class":289},"sjJ54","\"",[261,292,294],{"class":293},"s_sjI","configs\u002Ftrain.py?lr=5e-4&model.out_features=512",[261,296,290],{"class":289},[261,298,299],{"class":278},")\n",[219,301,302,303,306,307,310],{},"Multiple keys are separated by ",[243,304,305],{},"&",". Values are coerced to the field's\ndeclared type when the field is part of a ",[243,308,309],{},"@L.config"," schema.",[235,312,314],{"id":313},"positional-overrides","Positional Overrides",[219,316,317],{},"Pass override strings as positional arguments:",[252,319,321],{"className":254,"code":320,"language":256,"meta":257,"style":257},"cfg = laco.load(\"configs\u002Ftrain.py\", \"lr=5e-4\", \"model.out_features=512\")\n",[243,322,323],{"__ignoreMap":257},[261,324,325,327,329,331,333,335,337,339,342,344,347,350,353,355,357,359,362,364],{"class":263,"line":264},[261,326,268],{"class":267},[261,328,272],{"class":271},[261,330,275],{"class":267},[261,332,279],{"class":278},[261,334,283],{"class":282},[261,336,286],{"class":278},[261,338,290],{"class":289},[261,340,341],{"class":293},"configs\u002Ftrain.py",[261,343,290],{"class":289},[261,345,346],{"class":278},",",[261,348,349],{"class":289}," \"",[261,351,352],{"class":293},"lr=5e-4",[261,354,290],{"class":289},[261,356,346],{"class":278},[261,358,349],{"class":289},[261,360,361],{"class":293},"model.out_features=512",[261,363,290],{"class":289},[261,365,299],{"class":278},[219,367,368],{},"Equivalent to the URL form; useful when constructing overrides programmatically.",[235,370,372],{"id":371},"fragment-selector","Fragment Selector",[219,374,375,376,250],{},"Select a sub-tree of the config with ",[243,377,378],{},"#key.nested",[252,380,382],{"className":254,"code":381,"language":256,"meta":257,"style":257},"model_cfg = laco.load(\"configs\u002Ftrain.py#model\")\n# model_cfg is the DictConfig subtree at cfg.model\n",[243,383,384,408],{"__ignoreMap":257},[261,385,386,389,391,393,395,397,399,401,404,406],{"class":263,"line":264},[261,387,388],{"class":267},"model_cfg ",[261,390,272],{"class":271},[261,392,275],{"class":267},[261,394,279],{"class":278},[261,396,283],{"class":282},[261,398,286],{"class":278},[261,400,290],{"class":289},[261,402,403],{"class":293},"configs\u002Ftrain.py#model",[261,405,290],{"class":289},[261,407,299],{"class":278},[261,409,411],{"class":263,"line":410},2,[261,412,414],{"class":413},"sutJx","# model_cfg is the DictConfig subtree at cfg.model\n",[235,416,418],{"id":417},"override-grammar","Override Grammar",[420,421,422,435],"table",{},[423,424,425],"thead",{},[426,427,428,432],"tr",{},[429,430,431],"th",{},"Syntax",[429,433,434],{},"Effect",[436,437,438,456,470,483],"tbody",{},[426,439,440,446],{},[441,442,443],"td",{},[243,444,445],{},"key=value",[441,447,448,449,452,453],{},"Set ",[243,450,451],{},"key"," to ",[243,454,455],{},"value",[426,457,458,463],{},[441,459,460],{},[243,461,462],{},"+key=value",[441,464,241,465,467,468],{},[243,466,455],{}," to list at ",[243,469,451],{},[426,471,472,477],{},[441,473,474],{},[243,475,476],{},"~key",[441,478,479,480,482],{},"Delete ",[243,481,451],{}," from the config",[426,484,485,490],{},[441,486,487],{},[243,488,489],{},"key=null",[441,491,448,492,452,494],{},[243,493,451],{},[243,495,496],{},"None",[235,498,500],{"id":499},"type-coercion","Type Coercion",[219,502,503],{},"Values are parsed as:",[505,506,507,521,527,533,539],"ul",{},[508,509,510,513,514,517,518],"li",{},[243,511,512],{},"true"," \u002F ",[243,515,516],{},"false"," → ",[243,519,520],{},"bool",[508,522,523,524],{},"Integer strings → ",[243,525,526],{},"int",[508,528,529,530],{},"Float strings → ",[243,531,532],{},"float",[508,534,535,538],{},[243,536,537],{},"[a,b,c]"," → list",[508,540,541,542],{},"Everything else → ",[243,543,544],{},"str",[219,546,547,548,550,551,279],{},"When the target field is typed (",[243,549,309],{},"), the coerced value is validated\nagainst the declared type. A mismatch raises ",[243,552,553],{},"ValidationError",[235,555,557],{"id":556},"cli-overrides","CLI Overrides",[252,559,563],{"className":560,"code":561,"language":562,"meta":257,"style":257},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","laco compose configs\u002Ftrain.py lr=5e-4 model.out_features=512\nlaco run     configs\u002Ftrain.py optimizer=adam\n","bash",[243,564,565,587],{"__ignoreMap":257},[261,566,567,571,574,577,580,583],{"class":263,"line":264},[261,568,570],{"class":569},"sbgvK","laco",[261,572,573],{"class":293}," compose",[261,575,576],{"class":293}," configs\u002Ftrain.py",[261,578,579],{"class":293}," lr=5e-4",[261,581,582],{"class":293}," model.out_features=",[261,584,586],{"class":585},"srdBf","512\n",[261,588,589,591,594,597],{"class":263,"line":410},[261,590,570],{"class":569},[261,592,593],{"class":293}," run",[261,595,596],{"class":293},"     configs\u002Ftrain.py",[261,598,599],{"class":293}," optimizer=adam\n",[219,601,602,603,279],{},"The CLI passes override strings directly to ",[243,604,605],{},"apply_overrides",[607,608,609],"style",{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":257,"searchDepth":611,"depth":611,"links":612},3,[613,614,615,616,617,618],{"id":237,"depth":410,"text":238},{"id":313,"depth":410,"text":314},{"id":371,"depth":410,"text":372},{"id":417,"depth":410,"text":418},{"id":499,"depth":410,"text":500},{"id":556,"depth":410,"text":557},"md",{},true,{"title":106,"description":257},"XNRgSgDQ4beuxcmaETp-MkUzTwV4SycV2WNTUpId27k",{},1785687302722]