[{"data":1,"prerenderedAt":9154},["ShallowReactive",2],{"navigation":3,"reference-meta:python-cdk\u002F0.7.1":733,"reference-data:python-cdk\u002F0.7.1":735,"sila:0.6.2":807,"unitelabs.jsondocs:0.4.2":807},[4,80,134,347,411,513,550,629],{"title":5,"path":6,"stem":7,"children":8,"page":42},"Get Started","\u002Fget-started","01.get-started",[9,13,17,43,47],{"title":10,"path":11,"stem":12},"Welcome to UniteLabs","\u002Fget-started\u002Fwelcome","01.get-started\u002F00.welcome",{"title":14,"path":15,"stem":16},"How it works","\u002Fget-started\u002Fhow-it-works","01.get-started\u002F01.how-it-works",{"title":18,"path":19,"stem":20,"children":21,"page":42},"Use Cases","\u002Fget-started\u002Fuse-cases","01.get-started\u002F02.use-cases",[22,26,30,34,38],{"title":23,"path":24,"stem":25},"Instrument Control","\u002Fget-started\u002Fuse-cases\u002Flow-level-instrument-control","01.get-started\u002F02.use-cases\u002F10.low-level-instrument-control",{"title":27,"path":28,"stem":29},"Multi-device Control","\u002Fget-started\u002Fuse-cases\u002Fmulti-device-control","01.get-started\u002F02.use-cases\u002F20.multi-device-control",{"title":31,"path":32,"stem":33},"Workflow Orchestration","\u002Fget-started\u002Fuse-cases\u002Fworkflow-orchestration","01.get-started\u002F02.use-cases\u002F30.workflow-orchestration",{"title":35,"path":36,"stem":37},"Custom Apps and LIMS Integration","\u002Fget-started\u002Fuse-cases\u002Fcustom-apps-lims","01.get-started\u002F02.use-cases\u002F40.custom-apps-lims",{"title":39,"path":40,"stem":41},"Scale and Fleet Management","\u002Fget-started\u002Fuse-cases\u002Fscale-and-fleet","01.get-started\u002F02.use-cases\u002F50.scale-and-fleet",false,{"title":44,"path":45,"stem":46},"Lab as Code","\u002Fget-started\u002Fwhy-code","01.get-started\u002F03.why-code",{"title":48,"path":49,"stem":50,"children":51,"page":42},"Setup","\u002Fget-started\u002Fsetup","01.get-started\u002F20.setup",[52,56,60,64,68,72,76],{"title":53,"path":54,"stem":55},"GroundControl","\u002Fget-started\u002Fsetup\u002Fgroundcontrol","01.get-started\u002F20.setup\u002F10.groundcontrol",{"title":57,"path":58,"stem":59},"Network requirements","\u002Fget-started\u002Fsetup\u002Fnetwork-requirements","01.get-started\u002F20.setup\u002F20.network-requirements",{"title":61,"path":62,"stem":63},"Multi-device Networking","\u002Fget-started\u002Fsetup\u002Fmultiple-devices","01.get-started\u002F20.setup\u002F30.multiple-devices",{"title":65,"path":66,"stem":67},"Connect to Platform","\u002Fget-started\u002Fsetup\u002Fconnect-to-platform","01.get-started\u002F20.setup\u002F40.connect-to-platform",{"title":69,"path":70,"stem":71},"Headless install","\u002Fget-started\u002Fsetup\u002Fheadless-install","01.get-started\u002F20.setup\u002F50.headless-install",{"title":73,"path":74,"stem":75},"Raspberry Pi","\u002Fget-started\u002Fsetup\u002Fraspberry-pi","01.get-started\u002F20.setup\u002F55.raspberry-pi",{"title":77,"path":78,"stem":79},"Installation","\u002Fget-started\u002Fsetup\u002Fsdk-installation","01.get-started\u002F20.setup\u002F60.sdk-installation",{"title":81,"path":82,"stem":83,"children":84,"page":42},"Integrate","\u002Fintegrate","02.integrate",[85,89,93,118],{"title":86,"path":87,"stem":88},"What is a connector?","\u002Fintegrate\u002Fwhat-is-a-connector","02.integrate\u002F00.what-is-a-connector",{"title":90,"path":91,"stem":92},"Calling a Connector","\u002Fintegrate\u002Fcontrol-with-code","02.integrate\u002F05.control-with-code",{"title":94,"path":95,"stem":96,"children":97,"page":42},"Concepts","\u002Fintegrate\u002Fconcepts","02.integrate\u002F10.concepts",[98,102,106,110,114],{"title":99,"path":100,"stem":101},"Connector","\u002Fintegrate\u002Fconcepts\u002Fconnector","02.integrate\u002F10.concepts\u002F10.connector",{"title":103,"path":104,"stem":105},"Module","\u002Fintegrate\u002Fconcepts\u002Fmodule","02.integrate\u002F10.concepts\u002F20.module",{"title":107,"path":108,"stem":109},"Action","\u002Fintegrate\u002Fconcepts\u002Faction","02.integrate\u002F10.concepts\u002F30.action",{"title":111,"path":112,"stem":113},"Subscription","\u002Fintegrate\u002Fconcepts\u002Fsubscription","02.integrate\u002F10.concepts\u002F40.subscription",{"title":115,"path":116,"stem":117},"Device","\u002Fintegrate\u002Fconcepts\u002Fdevice","02.integrate\u002F10.concepts\u002F50.device",{"title":119,"path":120,"stem":121,"children":122,"page":42},"Use a connector","\u002Fintegrate\u002Fuse-a-connector","02.integrate\u002F30.use-a-connector",[123,126,130],{"title":53,"path":124,"stem":125},"\u002Fintegrate\u002Fuse-a-connector\u002Fgroundcontrol","02.integrate\u002F30.use-a-connector\u002F10.groundcontrol",{"title":127,"path":128,"stem":129},"Platform","\u002Fintegrate\u002Fuse-a-connector\u002Fplatform","02.integrate\u002F30.use-a-connector\u002F20.platform",{"title":131,"path":132,"stem":133},"UniteLabs SDK & REST API","\u002Fintegrate\u002Fuse-a-connector\u002Fpython","02.integrate\u002F30.use-a-connector\u002F30.python",{"title":135,"path":136,"stem":137,"children":138,"page":42},"Operate","\u002Foperate","03.operate",[139,142,146,186,259],{"title":135,"path":140,"stem":141},"\u002Foperate\u002Foverview","03.operate\u002F00.overview",{"title":143,"path":144,"stem":145},"Your First Protocol","\u002Foperate\u002Fyour-first-protocol","03.operate\u002F05.your-first-protocol",{"title":94,"path":147,"stem":148,"children":149,"page":42},"\u002Foperate\u002Fconcepts","03.operate\u002F10.concepts",[150,154,158,162,166,170,174,178,182],{"title":151,"path":152,"stem":153},"Liquid Handling","\u002Foperate\u002Fconcepts\u002Fliquid-handling","03.operate\u002F10.concepts\u002F10.liquid-handling",{"title":155,"path":156,"stem":157},"Modules","\u002Foperate\u002Fconcepts\u002Fmodules","03.operate\u002F10.concepts\u002F20.modules",{"title":159,"path":160,"stem":161},"Deck","\u002Foperate\u002Fconcepts\u002Fdeck","03.operate\u002F10.concepts\u002F30.deck",{"title":163,"path":164,"stem":165},"Labware","\u002Foperate\u002Fconcepts\u002Flabware","03.operate\u002F10.concepts\u002F40.labware",{"title":167,"path":168,"stem":169},"Liquids","\u002Foperate\u002Fconcepts\u002Fliquids","03.operate\u002F10.concepts\u002F50.liquids",{"title":171,"path":172,"stem":173},"Liquid Classes","\u002Foperate\u002Fconcepts\u002Fliquid-classes","03.operate\u002F10.concepts\u002F60.liquid-classes",{"title":175,"path":176,"stem":177},"Tips and Tip Tracking","\u002Foperate\u002Fconcepts\u002Ftips","03.operate\u002F10.concepts\u002F70.tips",{"title":179,"path":180,"stem":181},"Simulation","\u002Foperate\u002Fconcepts\u002Fsimulation","03.operate\u002F10.concepts\u002F80.simulation",{"title":183,"path":184,"stem":185},"Error Handling","\u002Foperate\u002Fconcepts\u002Ferror-handling","03.operate\u002F10.concepts\u002F90.error-handling",{"title":187,"path":188,"stem":189,"children":190,"page":42},"Guides","\u002Foperate\u002Fguides","03.operate\u002F20.guides",[191,220,232,256],{"title":163,"path":192,"stem":193,"children":194},"\u002Foperate\u002Fguides\u002Flabware","03.operate\u002F20.guides\u002F10.labware\u002Findex",[195,196,200,204,208,212,216],{"title":163,"path":192,"stem":193},{"title":197,"path":198,"stem":199},"Standard Labware","\u002Foperate\u002Fguides\u002Flabware\u002Fstandard-labware","03.operate\u002F20.guides\u002F10.labware\u002F05.standard-labware",{"title":201,"path":202,"stem":203},"Plates","\u002Foperate\u002Fguides\u002Flabware\u002Fplates","03.operate\u002F20.guides\u002F10.labware\u002F10.plates",{"title":205,"path":206,"stem":207},"Tips and Tip Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftips-and-racks","03.operate\u002F20.guides\u002F10.labware\u002F20.tips-and-racks",{"title":209,"path":210,"stem":211},"Tubes and Tube Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftubes-and-tube-racks","03.operate\u002F20.guides\u002F10.labware\u002F30.tubes-and-tube-racks",{"title":213,"path":214,"stem":215},"Troughs","\u002Foperate\u002Fguides\u002Flabware\u002Ftroughs","03.operate\u002F20.guides\u002F10.labware\u002F35.troughs",{"title":217,"path":218,"stem":219},"Carriers and Adapters","\u002Foperate\u002Fguides\u002Flabware\u002Fcarriers-and-adapters","03.operate\u002F20.guides\u002F10.labware\u002F40.carriers-and-adapters",{"title":159,"path":221,"stem":222,"children":223,"page":42},"\u002Foperate\u002Fguides\u002Fdeck","03.operate\u002F20.guides\u002F20.deck",[224,228],{"title":225,"path":226,"stem":227},"Building a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fbuilding-a-deck","03.operate\u002F20.guides\u002F20.deck\u002F10.building-a-deck",{"title":229,"path":230,"stem":231},"Save\u002FLoad a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fsave-load-deck","03.operate\u002F20.guides\u002F20.deck\u002F20.save-load-deck",{"title":233,"path":234,"stem":235,"children":236,"page":42},"Pipetting","\u002Foperate\u002Fguides\u002Fpipetting","03.operate\u002F20.guides\u002F30.pipetting",[237,241,245,249,252],{"title":238,"path":239,"stem":240},"Basic Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fbasic-pipetting","03.operate\u002F20.guides\u002F30.pipetting\u002F10.basic-pipetting",{"title":242,"path":243,"stem":244},"Advanced Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fadvanced-pipetting","03.operate\u002F20.guides\u002F30.pipetting\u002F20.advanced-pipetting",{"title":246,"path":247,"stem":248},"Tip Handling","\u002Foperate\u002Fguides\u002Fpipetting\u002Ftip-handling","03.operate\u002F20.guides\u002F30.pipetting\u002F30.tip-handling",{"title":171,"path":250,"stem":251},"\u002Foperate\u002Fguides\u002Fpipetting\u002Fliquid-classes","03.operate\u002F20.guides\u002F30.pipetting\u002F40.liquid-classes",{"title":253,"path":254,"stem":255},"Labware Transport","\u002Foperate\u002Fguides\u002Fpipetting\u002Flabware-transport","03.operate\u002F20.guides\u002F30.pipetting\u002F50.labware-transport",{"title":179,"path":257,"stem":258},"\u002Foperate\u002Fguides\u002Fsimulation","03.operate\u002F20.guides\u002F40.simulation",{"title":260,"path":261,"stem":262,"children":263,"page":42},"Liquid Handler Guides","\u002Foperate\u002Fdevices","03.operate\u002F30.devices",[264,305,330],{"title":265,"path":266,"stem":267,"children":268,"page":42},"Hamilton STAR","\u002Foperate\u002Fdevices\u002Fhamilton-star","03.operate\u002F30.devices\u002F10.hamilton-star",[269,273,277,281,285,289,293,297,301],{"title":270,"path":271,"stem":272},"Positioning & Movement","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fpositioning","03.operate\u002F30.devices\u002F10.hamilton-star\u002F10.positioning",{"title":274,"path":275,"stem":276},"Gripper Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcore-gripper","03.operate\u002F30.devices\u002F10.hamilton-star\u002F20.core-gripper",{"title":278,"path":279,"stem":280},"iSWAP Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap","03.operate\u002F30.devices\u002F10.hamilton-star\u002F30.iswap",{"title":282,"path":283,"stem":284},"Using TADM","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Ftadm","03.operate\u002F30.devices\u002F10.hamilton-star\u002F40.tadm",{"title":286,"path":287,"stem":288},"Autoload Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fautoload","03.operate\u002F30.devices\u002F10.hamilton-star\u002F50.autoload",{"title":290,"path":291,"stem":292},"Waste Block","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fwaste-block","03.operate\u002F30.devices\u002F10.hamilton-star\u002F60.waste-block",{"title":294,"path":295,"stem":296},"Complex Mixing","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcomplex-mixing","03.operate\u002F30.devices\u002F10.hamilton-star\u002F66.complex-mixing",{"title":298,"path":299,"stem":300},"Teaching Gripper Paddle Positions","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fgripper-positions","03.operate\u002F30.devices\u002F10.hamilton-star\u002F70.gripper-positions",{"title":302,"path":303,"stem":304},"Training a Custom Deck Position With the iSWAP","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcustom-deck-position","03.operate\u002F30.devices\u002F10.hamilton-star\u002F75.custom-deck-position",{"title":306,"path":307,"stem":308,"children":309,"page":42},"Hamilton Vantage","\u002Foperate\u002Fdevices\u002Fhamilton-vantage","03.operate\u002F30.devices\u002F20.hamilton-vantage",[310,314,318,322,326],{"title":311,"path":312,"stem":313},"Waste Configuration","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fwaste-configuration","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F05.waste-configuration",{"title":315,"path":316,"stem":317},"Covers and Lights","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fcovers-and-lights","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F10.covers-and-lights",{"title":319,"path":320,"stem":321},"IDL Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fidl","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F20.idl",{"title":323,"path":324,"stem":325},"IPG Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fipg","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F30.ipg",{"title":327,"path":328,"stem":329},"XL Pipettes","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fxl-channels","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F40.xl-channels",{"title":331,"path":332,"stem":333,"children":334,"page":42},"Agilent Bravo","\u002Foperate\u002Fdevices\u002Fagilent-bravo","03.operate\u002F30.devices\u002F30.agilent-bravo",[335,338,341,344],{"title":246,"path":336,"stem":337},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Ftip-handling","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F10.tip-handling",{"title":238,"path":339,"stem":340},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fbasic-pipetting","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F20.basic-pipetting",{"title":171,"path":342,"stem":343},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fliquid-classes","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F25.liquid-classes",{"title":274,"path":345,"stem":346},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fusing-the-gripper","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F30.using-the-gripper",{"title":348,"path":349,"stem":350,"children":351,"page":42},"Device Guides","\u002Fdevice-guides","06.device-guides",[352,355,368,385,398],{"title":348,"path":353,"stem":354},"\u002Fdevice-guides\u002Foverview","06.device-guides\u002F00.overview",{"title":356,"path":357,"stem":358,"children":359,"page":42},"Incubation","\u002Fdevice-guides\u002Fincubation","06.device-guides\u002F20.incubation",[360,364],{"title":361,"path":362,"stem":363},"Inheco ODTC","\u002Fdevice-guides\u002Fincubation\u002Finheco-odtc","06.device-guides\u002F20.incubation\u002F10.inheco-odtc",{"title":365,"path":366,"stem":367},"Inheco SCILA","\u002Fdevice-guides\u002Fincubation\u002Finheco-scila","06.device-guides\u002F20.incubation\u002F20.inheco-scila",{"title":369,"path":370,"stem":371,"children":372,"page":42},"Heater-Shakers","\u002Fdevice-guides\u002Fheater-shakers","06.device-guides\u002F30.heater-shakers",[373,377,381],{"title":374,"path":375,"stem":376},"Inheco Thermoshake","\u002Fdevice-guides\u002Fheater-shakers\u002Finheco-thermoshake","06.device-guides\u002F30.heater-shakers\u002F10.inheco-thermoshake",{"title":378,"path":379,"stem":380},"QInstruments Bioshake","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-bioshake","06.device-guides\u002F30.heater-shakers\u002F20.qinstruments-bioshake",{"title":382,"path":383,"stem":384},"QInstruments ColdPlate","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-coldplate","06.device-guides\u002F30.heater-shakers\u002F30.qinstruments-coldplate",{"title":386,"path":387,"stem":388,"children":389,"page":42},"Readers","\u002Fdevice-guides\u002Freaders","06.device-guides\u002F40.readers",[390,394],{"title":391,"path":392,"stem":393},"Biotek Gen5","\u002Fdevice-guides\u002Freaders\u002Fbiotek-gen5","06.device-guides\u002F40.readers\u002F10.biotek-gen5",{"title":395,"path":396,"stem":397},"Biotek Synergy H1","\u002Fdevice-guides\u002Freaders\u002Fbiotek-synergy-h1","06.device-guides\u002F40.readers\u002F20.biotek-synergy-H1",{"title":399,"path":400,"stem":401,"children":402,"page":42},"Tilt & Turn","\u002Fdevice-guides\u002Ftilt-and-turn","06.device-guides\u002F50.tilt-and-turn",[403,407],{"title":404,"path":405,"stem":406},"TurnStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-turnstation","06.device-guides\u002F50.tilt-and-turn\u002F10.qinstruments-turnstation",{"title":408,"path":409,"stem":410},"TiltStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-tiltstation","06.device-guides\u002F50.tilt-and-turn\u002F20.qinstruments-tiltstation",{"title":412,"path":413,"stem":414,"children":415,"page":42},"Automate","\u002Fautomate","07.automate",[416,420,424,428,477],{"title":417,"path":418,"stem":419},"What is a workflow?","\u002Fautomate\u002Fwhat-is-a-workflow","07.automate\u002F00.what-is-a-workflow",{"title":421,"path":422,"stem":423},"Workflow template","\u002Fautomate\u002Fworkflow-template","07.automate\u002F05.workflow-template",{"title":425,"path":426,"stem":427},"Your First Workflow","\u002Fautomate\u002Fyour-first-workflow","07.automate\u002F08.your-first-workflow",{"title":94,"pages":429,"path":439,"stem":440,"children":441,"page":42},[430,431,432,433,434,435,436,437,438],"workflow","phase","step","runs","input","artifacts","logs","human-in-the-loop","error-handling","\u002Fautomate\u002Fconcepts","07.automate\u002F10.concepts",[442,446,450,454,458,462,466,470,474],{"title":443,"path":444,"stem":445},"Workflow","\u002Fautomate\u002Fconcepts\u002Fworkflow","07.automate\u002F10.concepts\u002F10.workflow",{"title":447,"path":448,"stem":449},"Phase","\u002Fautomate\u002Fconcepts\u002Fphase","07.automate\u002F10.concepts\u002F20.phase",{"title":451,"path":452,"stem":453},"Step","\u002Fautomate\u002Fconcepts\u002Fstep","07.automate\u002F10.concepts\u002F30.step",{"title":455,"path":456,"stem":457},"Runs","\u002Fautomate\u002Fconcepts\u002Fruns","07.automate\u002F10.concepts\u002F40.runs",{"title":459,"path":460,"stem":461},"Input","\u002Fautomate\u002Fconcepts\u002Finput","07.automate\u002F10.concepts\u002F50.input",{"title":463,"path":464,"stem":465},"Artifacts","\u002Fautomate\u002Fconcepts\u002Fartifacts","07.automate\u002F10.concepts\u002F60.artifacts",{"title":467,"path":468,"stem":469},"Logs","\u002Fautomate\u002Fconcepts\u002Flogs","07.automate\u002F10.concepts\u002F70.logs",{"title":471,"path":472,"stem":473},"Human in the Loop","\u002Fautomate\u002Fconcepts\u002Fhuman-in-the-loop","07.automate\u002F10.concepts\u002F80.human-in-the-loop",{"title":183,"path":475,"stem":476},"\u002Fautomate\u002Fconcepts\u002Ferror-handling","07.automate\u002F10.concepts\u002F90.error-handling",{"title":187,"path":478,"stem":479,"children":480,"page":42},"\u002Fautomate\u002Fguides","07.automate\u002F25.guides",[481,485,489,493,497,501,505,509],{"title":482,"path":483,"stem":484},"Deploy a workflow","\u002Fautomate\u002Fguides\u002Fdeploy-a-workflow","07.automate\u002F25.guides\u002F30.deploy-a-workflow",{"title":486,"path":487,"stem":488},"Run a workflow","\u002Fautomate\u002Fguides\u002Frun-a-workflow","07.automate\u002F25.guides\u002F35.run-a-workflow",{"title":490,"path":491,"stem":492},"CI\u002FCD for workflows","\u002Fautomate\u002Fguides\u002Fcicd-for-workflows","07.automate\u002F25.guides\u002F40.cicd-for-workflows",{"title":494,"path":495,"stem":496},"HITL basics","\u002Fautomate\u002Fguides\u002Fbasic-hitl","07.automate\u002F25.guides\u002F50.basic-hitl",{"title":498,"path":499,"stem":500},"Typed operator inputs","\u002Fautomate\u002Fguides\u002Ftyped-operator-inputs","07.automate\u002F25.guides\u002F55.typed-operator-inputs",{"title":502,"path":503,"stem":504},"Error recovery","\u002Fautomate\u002Fguides\u002Fbasic-error-handling","07.automate\u002F25.guides\u002F60.basic-error-handling",{"title":506,"path":507,"stem":508},"Advanced error handling","\u002Fautomate\u002Fguides\u002Fadvanced-error-handling","07.automate\u002F25.guides\u002F70.advanced-error-handling",{"title":510,"path":511,"stem":512},"Workflows REST API","\u002Fautomate\u002Fguides\u002Fworkflows-api","07.automate\u002F25.guides\u002F80.workflows-api",{"title":514,"path":515,"stem":516,"children":517,"page":42},"Observe","\u002Fobserve","08.observe",[518,522,538],{"title":519,"path":520,"stem":521},"Overview","\u002Fobserve\u002Foverview","08.observe\u002F10.overview",{"title":94,"path":523,"stem":524,"children":525,"page":42},"\u002Fobserve\u002Fconcepts","08.observe\u002F20.concepts",[526,530,534],{"title":527,"path":528,"stem":529},"Object Storage","\u002Fobserve\u002Fconcepts\u002Fstorage","08.observe\u002F20.concepts\u002F10.storage",{"title":531,"path":532,"stem":533},"Secrets","\u002Fobserve\u002Fconcepts\u002Fsecrets","08.observe\u002F20.concepts\u002F20.secrets",{"title":535,"path":536,"stem":537},"Data sources","\u002Fobserve\u002Fconcepts\u002Fdata-sources","08.observe\u002F20.concepts\u002F30.data-sources",{"title":187,"path":539,"stem":540,"children":541,"page":42},"\u002Fobserve\u002Fguides","08.observe\u002F30.guides",[542,546],{"title":543,"path":544,"stem":545},"File System Connector","\u002Fobserve\u002Fguides\u002Ffilesystem-connector","08.observe\u002F30.guides\u002F10.filesystem-connector",{"title":547,"path":548,"stem":549},"Building an ETL","\u002Fobserve\u002Fguides\u002Fbuilding-an-etl","08.observe\u002F30.guides\u002F20.building-an-etl",{"title":551,"path":552,"stem":553,"children":554,"page":42},"Technical Reference","\u002Ftechnical-reference","10.technical-reference",[555,559,563,575,586,597,607,618],{"title":556,"path":557,"stem":558},"Introduction","\u002Ftechnical-reference\u002Fplatform-blueprint","10.technical-reference\u002F00.platform-blueprint",{"title":560,"path":561,"stem":562},"REST API","\u002Ftechnical-reference\u002Frest-api","10.technical-reference\u002F01.rest-api",{"title":53,"path":564,"stem":565,"children":566,"page":42},"\u002Ftechnical-reference\u002Fgroundcontrol","10.technical-reference\u002F10.groundcontrol",[567,571],{"title":568,"path":569,"stem":570},"Install & Setup","\u002Ftechnical-reference\u002Fgroundcontrol\u002Finstall","10.technical-reference\u002F10.groundcontrol\u002F10.install",{"title":572,"path":573,"stem":574},"Changelog","\u002Ftechnical-reference\u002Fgroundcontrol\u002Fchangelog","10.technical-reference\u002F10.groundcontrol\u002F20.changelog",{"title":576,"path":577,"stem":578,"children":579,"page":42},"UniteLabs SDK","\u002Ftechnical-reference\u002Fpython-sdk","10.technical-reference\u002F20.python-sdk",[580,583],{"title":568,"path":581,"stem":582},"\u002Ftechnical-reference\u002Fpython-sdk\u002Finstall","10.technical-reference\u002F20.python-sdk\u002F10.install",{"title":572,"path":584,"stem":585},"\u002Ftechnical-reference\u002Fpython-sdk\u002Fchangelog","10.technical-reference\u002F20.python-sdk\u002F20.changelog",{"title":587,"path":588,"stem":589,"children":590,"page":42},"Liquid Handling SDK","\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk","10.technical-reference\u002F30.python-liquid-handling-sdk",[591,594],{"title":568,"path":592,"stem":593},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Finstall","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F10.install",{"title":572,"path":595,"stem":596},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Fchangelog","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F20.changelog",{"title":163,"path":598,"stem":599,"children":600,"page":42},"\u002Ftechnical-reference\u002Flabware","10.technical-reference\u002F40.labware",[601,604],{"title":568,"path":602,"stem":603},"\u002Ftechnical-reference\u002Flabware\u002Finstall","10.technical-reference\u002F40.labware\u002F10.install",{"title":572,"path":605,"stem":606},"\u002Ftechnical-reference\u002Flabware\u002Fchangelog","10.technical-reference\u002F40.labware\u002F20.changelog",{"title":608,"path":609,"stem":610,"children":611,"page":42},"Python Omnibus","\u002Ftechnical-reference\u002Fpython-omnibus","10.technical-reference\u002F50.python-omnibus",[612,615],{"title":568,"path":613,"stem":614},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Finstall","10.technical-reference\u002F50.python-omnibus\u002F10.install",{"title":572,"path":616,"stem":617},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Fchangelog","10.technical-reference\u002F50.python-omnibus\u002F20.changelog",{"title":619,"path":620,"stem":621,"children":622,"page":42},"Python CDK","\u002Ftechnical-reference\u002Fpython-cdk","10.technical-reference\u002F60.python-cdk",[623,626],{"title":568,"path":624,"stem":625},"\u002Ftechnical-reference\u002Fpython-cdk\u002Finstall","10.technical-reference\u002F60.python-cdk\u002F10.install",{"title":572,"path":627,"stem":628},"\u002Ftechnical-reference\u002Fpython-cdk\u002Fchangelog","10.technical-reference\u002F60.python-cdk\u002F20.changelog",{"title":630,"path":631,"stem":632,"children":633},"Connector Development (CDK)","\u002Fconnector-development","20.connector-development",[634,636,655,688,696,727],{"title":630,"path":631,"stem":635},"20.connector-development\u002Findex",{"title":637,"path":638,"stem":639,"children":640,"page":42},"Getting Started","\u002Fconnector-development\u002Fgetting-started","20.connector-development\u002F10.getting-started",[641,644,648,651],{"title":519,"path":642,"stem":643},"\u002Fconnector-development\u002Fgetting-started\u002Foverview","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":645,"path":646,"stem":647},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":77,"path":649,"stem":650},"\u002Fconnector-development\u002Fgetting-started\u002Finstallation","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":652,"path":653,"stem":654},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":656,"path":657,"stem":658,"children":659,"page":42},"Tutorial","\u002Fconnector-development\u002Ftutorial","20.connector-development\u002F20.tutorial",[660,664,668,672,676,680,684],{"title":661,"path":662,"stem":663},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":665,"path":666,"stem":667},"SiLA Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints","20.connector-development\u002F20.tutorial\u002F10.sila-endpoints",{"title":669,"path":670,"stem":671},"Data Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":673,"path":674,"stem":675},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":677,"path":678,"stem":679},"SiLA Data Types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":681,"path":682,"stem":683},"Feature","\u002Fconnector-development\u002Ftutorial\u002Fconnector-structure","20.connector-development\u002F20.tutorial\u002F70.connector-structure",{"title":685,"path":686,"stem":687},"Hardware Communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":94,"path":689,"stem":690,"children":691,"page":42},"\u002Fconnector-development\u002Fconcepts","20.connector-development\u002F30.concepts",[692],{"title":693,"path":694,"stem":695},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila","20.connector-development\u002F30.concepts\u002Fsila",{"title":187,"path":697,"stem":698,"children":699,"page":42},"\u002Fconnector-development\u002Fguides","20.connector-development\u002F40.guides",[700,704,708,712,716,719,723],{"title":701,"path":702,"stem":703},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration","20.connector-development\u002F40.guides\u002F20.configuration",{"title":705,"path":706,"stem":707},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment","20.connector-development\u002F40.guides\u002F30.deployment",{"title":709,"path":710,"stem":711},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity","20.connector-development\u002F40.guides\u002F40.security",{"title":713,"path":714,"stem":715},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":183,"path":717,"stem":718},"\u002Fconnector-development\u002Fguides\u002Ferror-handling","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":720,"path":721,"stem":722},"Serial Troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":724,"path":725,"stem":726},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting","20.connector-development\u002F40.guides\u002F80.testing",{"title":728,"path":729,"stem":730,"children":731},"References","\u002Fconnector-development\u002Freference","20.connector-development\u002F50.reference\u002Findex",[732],{"title":728,"path":729,"stem":730},{"description":734},"All notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https:\u002F\u002Fkeepachangelog.com\u002Fen\u002F1.1.0\u002F), and this project adheres to [Semantic Versioning](https:\u002F\u002Fsemver.org\u002Fspec\u002Fv2.0.0.html).\n\n## [V0.7.1] - 2026-01-26\n### Fixed\n- Fix root certificate config to load paths from the file system [8745a005c](https:\u002F\u002Fgitlab.com\u002Funitelabs\u002Fcdk\u002Fpython-cdk\u002Fcommit\u002F8745a005cc3cec25f56d99e1adcce0e96f1e4d44) (INT-22)\n\n[v0.7.0...v0.7.1](https:\u002F\u002Fgitlab.com\u002Funitelabs\u002Fcdk\u002Fpython-cdk\u002Fcompare\u002Fv0.7.0...v0.7.1)",{"modules":736,"title":9084,"description":9085,"package":739,"version":9086,"dependencies":9087},{"unitelabs.cdk":737,"unitelabs.cdk.__version__":765,"unitelabs.cdk.__all__":770,"unitelabs.cdk.logging":779,"unitelabs.cdk.logging.create_logger":783,"unitelabs.cdk.logging.configure_logging":810,"unitelabs.cdk.connector":833,"unitelabs.cdk.connector.Handler":840,"unitelabs.cdk.connector.T":844,"unitelabs.cdk.connector.Connector":847,"unitelabs.cdk.connector.Connector.__init__":876,"unitelabs.cdk.connector.Connector.__config":888,"unitelabs.cdk.connector.Connector._ready":892,"unitelabs.cdk.connector.Connector._shutdown":896,"unitelabs.cdk.connector.Connector._shutdown_handlers":899,"unitelabs.cdk.connector.Connector._sila_server":907,"unitelabs.cdk.connector.Connector._discovery":910,"unitelabs.cdk.connector.Connector._cloud_server":913,"unitelabs.cdk.connector.Connector.start":916,"unitelabs.cdk.connector.Connector.stop":923,"unitelabs.cdk.connector.Connector.wait_for_ready":930,"unitelabs.cdk.connector.Connector.wait_for_termination":937,"unitelabs.cdk.connector.Connector.get_feature":944,"unitelabs.cdk.connector.Connector.register":966,"unitelabs.cdk.connector.Connector.config":976,"unitelabs.cdk.connector.Connector.sila_server":982,"unitelabs.cdk.connector.Connector.logger":991,"unitelabs.cdk.connector.Connector.debug":997,"unitelabs.cdk.connector.Connector.on_shutdown":1004,"unitelabs.cdk.connector.Connector.off_shutdown":1020,"unitelabs.cdk.main":1029,"unitelabs.cdk.main.T":1040,"unitelabs.cdk.main.Generator":1044,"unitelabs.cdk.main.AppFactory":1050,"unitelabs.cdk.main.run":1055,"unitelabs.cdk.main.load":1075,"unitelabs.cdk.main.signal_handler":1091,"unitelabs.cdk.main.init":1110,"unitelabs.cdk.main._shutdown_yield":1127,"unitelabs.cdk.main._sync_to_async_gen":1142,"unitelabs.cdk.utils":1160,"unitelabs.cdk.utils.coroutine":1166,"unitelabs.cdk.utils.find_factory":1176,"unitelabs.cdk.utils.walk":1183,"unitelabs.cdk.subscriptions":1211,"unitelabs.cdk.subscriptions.__all__":1221,"unitelabs.cdk.subscriptions.subject":1225,"unitelabs.cdk.subscriptions.subject.IN":1233,"unitelabs.cdk.subscriptions.subject.OUT":1236,"unitelabs.cdk.subscriptions.subject.T":1240,"unitelabs.cdk.subscriptions.subject.PipeFunction":1243,"unitelabs.cdk.subscriptions.subject.Subject":1247,"unitelabs.cdk.subscriptions.subject.Subject._pipe":1292,"unitelabs.cdk.subscriptions.subject.Subject.__init__":1302,"unitelabs.cdk.subscriptions.subject.Subject.__init__.default_pipe":1321,"unitelabs.cdk.subscriptions.subject.Subject._maxsize":1332,"unitelabs.cdk.subscriptions.subject.Subject._value":1334,"unitelabs.cdk.subscriptions.subject.Subject._total_subscribers":1343,"unitelabs.cdk.subscriptions.subject.Subject._subscribers":1345,"unitelabs.cdk.subscriptions.subject.Subject._children":1352,"unitelabs.cdk.subscriptions.subject.Subject._parent":1363,"unitelabs.cdk.subscriptions.subject.Subject._is_temporary":1368,"unitelabs.cdk.subscriptions.subject.Subject._context":1371,"unitelabs.cdk.subscriptions.subject.Subject.__repr__":1379,"unitelabs.cdk.subscriptions.subject.Subject.current":1386,"unitelabs.cdk.subscriptions.subject.Subject.subscribers":1395,"unitelabs.cdk.subscriptions.subject.Subject.has_subscribers":1405,"unitelabs.cdk.subscriptions.subject.Subject.subscribe":1411,"unitelabs.cdk.subscriptions.subject.Subject.on_subscribe":1422,"unitelabs.cdk.subscriptions.subject.Subject._on_subscribe":1427,"unitelabs.cdk.subscriptions.subject.Subject.unsubscribe":1437,"unitelabs.cdk.subscriptions.subject.Subject.on_unsubscribe":1449,"unitelabs.cdk.subscriptions.subject.Subject._on_unsubscribe":1456,"unitelabs.cdk.subscriptions.subject.Subject.notify":1462,"unitelabs.cdk.subscriptions.subject.Subject.update":1469,"unitelabs.cdk.subscriptions.subject.Subject.pipe":1479,"unitelabs.cdk.subscriptions.subject.Subject.filter":1515,"unitelabs.cdk.subscriptions.subject.Subject.__enter__":1550,"unitelabs.cdk.subscriptions.subject.Subject.__exit__":1568,"unitelabs.cdk.subscriptions.publisher":1595,"unitelabs.cdk.subscriptions.publisher.Publisher":1598,"unitelabs.cdk.subscriptions.publisher.Publisher.__init__":1634,"unitelabs.cdk.subscriptions.publisher.Publisher._update_task":1677,"unitelabs.cdk.subscriptions.publisher.Publisher._source":1684,"unitelabs.cdk.subscriptions.publisher.Publisher._interval":1686,"unitelabs.cdk.subscriptions.publisher.Publisher.on_subscribe":1688,"unitelabs.cdk.subscriptions.publisher.Publisher._on_subscribe":1695,"unitelabs.cdk.subscriptions.publisher.Publisher.on_unsubscribe":1703,"unitelabs.cdk.subscriptions.publisher.Publisher._set":1709,"unitelabs.cdk.subscriptions.publisher.Publisher._unset":1714,"unitelabs.cdk.subscriptions.publisher.Publisher.__self_update":1721,"unitelabs.cdk.subscriptions.subscription":1726,"unitelabs.cdk.subscriptions.subscription.T":1731,"unitelabs.cdk.subscriptions.subscription.Subscription":1733,"unitelabs.cdk.subscriptions.subscription.Subscription.__init__":1763,"unitelabs.cdk.subscriptions.subscription.Subscription._parent":1772,"unitelabs.cdk.subscriptions.subscription.Subscription._value":1777,"unitelabs.cdk.subscriptions.subscription.Subscription._closed":1784,"unitelabs.cdk.subscriptions.subscription.Subscription.__repr__":1786,"unitelabs.cdk.subscriptions.subscription.Subscription.size":1792,"unitelabs.cdk.subscriptions.subscription.Subscription.update":1796,"unitelabs.cdk.subscriptions.subscription.Subscription.cancel":1803,"unitelabs.cdk.subscriptions.subscription.Subscription.terminate":1808,"unitelabs.cdk.subscriptions.subscription.Subscription.__aiter__":1813,"unitelabs.cdk.subscriptions.subscription.Subscription.__anext__":1821,"unitelabs.cdk.subscriptions.subscription.Subscription.get":1827,"unitelabs.cdk.subscriptions.default":1855,"unitelabs.cdk.subscriptions.default.Default":1860,"unitelabs.cdk.subscriptions.default.Default.token":1872,"unitelabs.cdk.subscriptions.default._DEFAULT_VALUE":1874,"unitelabs.cdk.cli":1877,"unitelabs.cdk.cli.certificate":1890,"unitelabs.cdk.cli.certificate.MutuallyExclusiveOptions":1897,"unitelabs.cdk.cli.certificate.certificate":1906,"unitelabs.cdk.cli.certificate.generate":1911,"unitelabs.cdk.cli.config":1949,"unitelabs.cdk.cli.config.config":1957,"unitelabs.cdk.cli.config.schema":1965,"unitelabs.cdk.cli.config.show":1981,"unitelabs.cdk.cli.config.create":1993,"unitelabs.cdk.cli.connector":2007,"unitelabs.cdk.cli.connector.CONTEXT_SETTINGS":2013,"unitelabs.cdk.cli.connector.connector":2017,"unitelabs.cdk.cli.__all__":2024,"unitelabs.cdk.cli.dev":2028,"unitelabs.cdk.cli.dev.TLSConfigurationError":2036,"unitelabs.cdk.cli.dev.dev":2043,"unitelabs.cdk.cli.dev.process":2060,"unitelabs.cdk.cli.sync":2077,"unitelabs.cdk.cli.sync.DEFAULT_BRANCH":2088,"unitelabs.cdk.cli.sync.CruftNotConfigured":2091,"unitelabs.cdk.cli.sync.CruftNotConfigured.__init__":2100,"unitelabs.cdk.cli.sync.CiCdNotConfigured":2104,"unitelabs.cdk.cli.sync.sync":2111,"unitelabs.cdk.cli.sync.cruft_check":2136,"unitelabs.cdk.cli.sync.push_to_gitlab":2148,"unitelabs.cdk.cli.start":2161,"unitelabs.cdk.cli.start.TLSConfigurationError":2167,"unitelabs.cdk.cli.start.start":2173,"unitelabs.cdk.features":2184,"unitelabs.cdk.features.examples":2192,"unitelabs.cdk.features.examples.greeting_provider":2197,"unitelabs.cdk.features.examples.greeting_provider.__all__":2205,"unitelabs.cdk.features.examples.greeting_provider.greeting_provider":2209,"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider":2213,"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider.__init__":2228,"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider._start_year":2232,"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider.say_hello":2235,"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider.start_year":2248,"unitelabs.cdk.features.examples.temperature_controller":2257,"unitelabs.cdk.features.examples.temperature_controller.__all__":2265,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller":2268,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.KELVIN":2276,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureNotReachable":2279,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.ControlInterrupted":2286,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController":2293,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.__init__":2310,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.current_temperature":2314,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.target_temperature":2317,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.source":2320,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController._change_temperature":2323,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.subscribe_current_temperature":2329,"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.control_temperature":2348,"unitelabs.cdk.features.test":2378,"unitelabs.cdk.features.test.unobservable_property_test":2394,"unitelabs.cdk.features.test.unobservable_property_test.__all__":2402,"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test":2405,"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest":2409,"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest.__init__":2420,"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest.get_answer_to_everything":2424,"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest.get_seconds_since_1970":2432,"unitelabs.cdk.features.test.structure_data_type_test":2440,"unitelabs.cdk.features.test.structure_data_type_test.__all__":2450,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test":2453,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure":2459,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.string_type_value":2482,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.integer_type_value":2485,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.real_type_value":2488,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.boolean_type_value":2491,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.binary_type_value":2494,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.date_type_value":2498,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.time_type_value":2502,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.timestamp_type_value":2507,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.any_type_value":2511,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.__init__":2515,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure":2547,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure.inner_string_type_value":2557,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure.inner_integer_type_value":2560,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure.__init__":2563,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure":2573,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.middle_string_type_value":2584,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.middle_integer_type_value":2588,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.inner_structure":2591,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.__init__":2594,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure":2607,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.outer_string_type_value":2621,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.outer_integer_type_value":2624,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.middle_structure":2627,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.__init__":2630,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest":2643,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.__init__":2657,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.echo_structure_value":2663,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.structure_value":2675,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.echo_deep_structure_value":2685,"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.deep_structure_value":2697,"unitelabs.cdk.features.test.list_data_type_test":2706,"unitelabs.cdk.features.test.list_data_type_test.__all__":2714,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test":2717,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure":2722,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.string_type_value":2741,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.integer_type_value":2744,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.real_type_value":2747,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.boolean_type_value":2750,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.binary_type_value":2753,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.date_type_value":2756,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.time_type_value":2759,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.timestamp_type_value":2762,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.any_type_value":2765,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.__init__":2768,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest":2790,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.__init__":2806,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.empty_string_list":2810,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.echo_string_list":2820,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.string_list":2836,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.echo_integer_list":2846,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.integer_list":2863,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.echo_structure_list":2873,"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.structure_list":2891,"unitelabs.cdk.features.test.any_type_test":2901,"unitelabs.cdk.features.test.any_type_test.__all__":2909,"unitelabs.cdk.features.test.any_type_test.any_type_test":2912,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest":2916,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.__init__":2936,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.set_any_type_value":2940,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_string_value":2962,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_integer_value":2971,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_real_value":2979,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_boolean_value":2988,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.any_type_binary_value":2997,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_date_value":3006,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_time_value":3016,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_timestamp_value":3025,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.any_type_list_value":3034,"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.any_type_structure_value":3043,"unitelabs.cdk.features.test.basic_data_types_test":3052,"unitelabs.cdk.features.test.basic_data_types_test.__all__":3060,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test":3063,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest":3067,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.__init__":3091,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_string_value":3095,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_string_value":3107,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_integer_value":3115,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_integer_value":3127,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_real_value":3135,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_real_value":3148,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_boolean_value":3157,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_boolean_value":3169,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_date_value":3179,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_date_value":3191,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_time_value":3200,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_time_value":3212,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_timestamp_value":3220,"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_timestamp_value":3234,"unitelabs.cdk.features.test.metadata_provider":3242,"unitelabs.cdk.features.test.metadata_provider.__all__":3252,"unitelabs.cdk.features.test.metadata_provider.metadata_provider":3255,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.StringMetadata":3259,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.StringMetadata.string_metadata":3272,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.StringMetadata.__init__":3275,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata":3282,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata.first_integer":3295,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata.second_integer":3298,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata.__init__":3301,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.MetadataProvider":3311,"unitelabs.cdk.features.test.metadata_provider.metadata_provider.MetadataProvider.__init__":3320,"unitelabs.cdk.features.test.metadata_consumer_test":3324,"unitelabs.cdk.features.test.metadata_consumer_test.__all__":3332,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test":3335,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest":3339,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.__init__":3351,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.echo_string_metadata":3355,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.unpack_metadata":3373,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.received_string_metadata":3396,"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.received_string_metadata_as_characters":3412,"unitelabs.cdk.features.test.observable_property_test":3434,"unitelabs.cdk.features.test.observable_property_test.__all__":3442,"unitelabs.cdk.features.test.observable_property_test.observable_property_test":3445,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest":3449,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.__init__":3469,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.alternating":3473,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.alternating_publisher":3475,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.value":3478,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.value_event":3482,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest._update_alternating":3484,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.subscribe_fixed_value":3490,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.subscribe_alternating":3500,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.subscribe_editable":3510,"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.set_value":3520,"unitelabs.cdk.features.test.error_handling_test":3528,"unitelabs.cdk.features.test.error_handling_test.__all__":3537,"unitelabs.cdk.features.test.error_handling_test.error_handling_test":3540,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.TestError":3544,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest":3551,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.__init__":3570,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error":3574,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_observably":3583,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error":3591,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_observably":3597,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_on_get":3602,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_on_subscribe":3614,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_on_get":3627,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_on_subscribe":3635,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_after_value_was_sent":3645,"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_after_value_was_sent":3658,"unitelabs.cdk.features.test.authentication_test":3669,"unitelabs.cdk.features.test.authentication_test.__all__":3677,"unitelabs.cdk.features.test.authentication_test.authentication_test":3680,"unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest":3684,"unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest.__init__":3695,"unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest.requires_token":3699,"unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest.requires_token_for_binary_upload":3713,"unitelabs.cdk.features.test.observable_command_test":3729,"unitelabs.cdk.features.test.observable_command_test.__all__":3737,"unitelabs.cdk.features.test.observable_command_test.observable_command_test":3740,"unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest":3744,"unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest.__init__":3755,"unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest.count":3759,"unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest.echo_value_after_delay":3787,"unitelabs.cdk.features.test.binary_transfer_test":3807,"unitelabs.cdk.features.test.binary_transfer_test.__all__":3816,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test":3819,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.String":3823,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.String.string":3835,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.String.__init__":3838,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest":3845,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.__init__":3859,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.echo_binary_value":3863,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.echo_binaries_observably":3876,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.binary_value_directly":3896,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.binary_value_download":3904,"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.echo_binary_and_metadata_string":3912,"unitelabs.cdk.features.test.unobservable_command_test":3936,"unitelabs.cdk.features.test.unobservable_command_test.__all__":3944,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test":3947,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest":3951,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.__init__":3964,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.command_without_parameters_and_responses":3968,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.convert_integer_to_string":3974,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.join_integer_and_string":3986,"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.split_string_after_first_character":3999,"unitelabs.cdk.features.robot":4015,"unitelabs.cdk.features.robot.movement_controller":4021,"unitelabs.cdk.features.robot.movement_controller.__all__":4031,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base":4034,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.PositionIndex":4038,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.PositionIndex.position_index":4050,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.PositionIndex.__init__":4058,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition":4070,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition.position":4083,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition.sub_position":4086,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition.__init__":4089,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase":4099,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.__init__":4111,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.get_available_positions":4115,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.get_current_position":4126,"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.move_to":4134,"unitelabs.cdk.features.robot.grip_controller":4145,"unitelabs.cdk.features.robot.grip_controller.__all__":4153,"unitelabs.cdk.features.robot.grip_controller.grip_controller_base":4156,"unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase":4160,"unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase.__init__":4171,"unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase.grip":4175,"unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase.release":4181,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller":4187,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.__all__":4200,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base":4203,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.InvalidCommandSequence":4207,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareNotPicked":4214,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareNotPlaced":4221,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.PositionIndex":4228,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.PositionIndex.position_index":4239,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.PositionIndex.__init__":4247,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition":4258,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition.position":4271,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition.sub_position":4274,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition.__init__":4277,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase":4285,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.__init__":4302,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_available_handover_positions":4307,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_number_of_internal_positions":4317,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_available_intermediate_actions":4331,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.prepare_for_input":4347,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.prepare_for_output":4373,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.put_labware":4390,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_labware":4413,"unitelabs.cdk.features.weighing":4433,"unitelabs.cdk.features.weighing.weighing_service":4437,"unitelabs.cdk.features.weighing.weighing_service.__all__":4445,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base":4448,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.Unstable":4455,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.Overloaded":4462,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.Underloaded":4469,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase":4476,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.__init__":4494,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.subscribe_weight":4502,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.subscribe_tare_weight":4517,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.get_stable_weight":4527,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.tare":4543,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.tare_stable":4552,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.set_tare_weight":4563,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.clear_tare_weight":4572,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.zero":4578,"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.zero_stable":4584,"unitelabs.cdk.features.core":4593,"unitelabs.cdk.features.core.authorization_service":4601,"unitelabs.cdk.features.core.authorization_service.__all__":4610,"unitelabs.cdk.features.core.authorization_service.authorization_service":4613,"unitelabs.cdk.features.core.authorization_service.authorization_service.InvalidAccessToken":4617,"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken":4624,"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken.access_token":4637,"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken.intercept":4640,"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken.__init__":4649,"unitelabs.cdk.features.core.authorization_service.authorization_service.AuthorizationService":4656,"unitelabs.cdk.features.core.authorization_service.authorization_service.AuthorizationService.__init__":4665,"unitelabs.cdk.features.core.lock_controller":4674,"unitelabs.cdk.features.core.lock_controller.__all__":4687,"unitelabs.cdk.features.core.lock_controller.lock_controller":4690,"unitelabs.cdk.features.core.lock_controller.lock_controller.InvalidLockIdentifier":4694,"unitelabs.cdk.features.core.lock_controller.lock_controller.ServerAlreadyLocked":4701,"unitelabs.cdk.features.core.lock_controller.lock_controller.ServerNotLocked":4708,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier":4715,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier.lock_identifier":4728,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier.intercept":4731,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier.__init__":4736,"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock":4743,"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.identifier":4755,"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.lifetime":4760,"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.last_usage":4766,"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.is_expired":4772,"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.__init__":4776,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController":4789,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.__init__":4805,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController._lock":4809,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController._event":4814,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.lock":4816,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.subscribe_is_locked":4822,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.lock_server":4832,"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.unlock_server":4850,"unitelabs.cdk.features.core.authentication_service":4863,"unitelabs.cdk.features.core.authentication_service.__all__":4874,"unitelabs.cdk.features.core.authentication_service.authentication_service":4877,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationFailed":4881,"unitelabs.cdk.features.core.authentication_service.authentication_service.InvalidAccessToken":4888,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken":4894,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.token":4907,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.scope":4911,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.lifetime":4919,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.last_usage":4922,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.is_expired":4925,"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.__init__":4929,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService":4944,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.__init__":4959,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.access_tokens":4963,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.default_lifetime":4966,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.login":4969,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.logout":5016,"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.validate":5027,"unitelabs.cdk.features.core.simulation_controller":5047,"unitelabs.cdk.features.core.simulation_controller.__all__":5057,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base":5060,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.StartSimulationModeFailed":5064,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.StartRealModeFailed":5071,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase":5078,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase._simulation_mode":5092,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.__init__":5094,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.start_simulation_mode":5098,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.start_real_mode":5108,"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.simulation_mode":5118,"unitelabs.cdk.features.core.sila_service":5127,"unitelabs.cdk.features.core.sila_service.__all__":5136,"unitelabs.cdk.features.core.sila_service.sila_service":5139,"unitelabs.cdk.features.core.sila_service.sila_service.UnimplementedFeature":5143,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService":5150,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.__init__":5169,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_uuid":5179,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_name":5194,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_type":5207,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_description":5220,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_version":5228,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_vendor_url":5241,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_implemented_features":5255,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_feature_definition":5270,"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.set_server_name":5297,"unitelabs.cdk.sila":5312,"unitelabs.cdk.sila.Any":5331,"unitelabs.cdk.sila.__all__":5334,"unitelabs.cdk.sila.data_types":5338,"unitelabs.cdk.sila.data_types.__all__":5369,"unitelabs.cdk.sila.data_types.structure":5374,"unitelabs.cdk.sila.data_types.structure.T":5380,"unitelabs.cdk.sila.data_types.structure.Structure":5383,"unitelabs.cdk.sila.data_types.structure.Structure._class":5405,"unitelabs.cdk.sila.data_types.structure.Structure.from_native":5409,"unitelabs.cdk.sila.data_types.structure.Structure.to_native":5433,"unitelabs.cdk.sila.data_types.structure.Structure.__init__":5442,"unitelabs.cdk.sila.data_types.custom":5446,"unitelabs.cdk.sila.data_types.custom.T":5451,"unitelabs.cdk.sila.data_types.custom.Custom":5454,"unitelabs.cdk.sila.data_types.custom.Custom._class":5475,"unitelabs.cdk.sila.data_types.custom.Custom.from_native":5478,"unitelabs.cdk.sila.data_types.custom.Custom.to_native":5495,"unitelabs.cdk.sila.data_types.custom.Custom.__init__":5504,"unitelabs.cdk.sila.data_types.convert_data_type":5508,"unitelabs.cdk.sila.data_types.convert_data_type.to_sila":5511,"unitelabs.cdk.sila.data_types.custom_data_type":5531,"unitelabs.cdk.sila.data_types.custom_data_type.CustomDataType":5534,"unitelabs.cdk.sila.data_types.custom_data_type.CustomDataType.attach":5549,"unitelabs.cdk.sila.data_types.custom_data_type.CustomDataType.__init__":5560,"unitelabs.cdk.sila.data_types.infer_data_type":5564,"unitelabs.cdk.sila.data_types.infer_data_type.infer":5567,"unitelabs.cdk.sila.data_types.any":5583,"unitelabs.cdk.sila.data_types.any.Any":5586,"unitelabs.cdk.sila.data_types.any.Any.to_native":5599,"unitelabs.cdk.sila.data_types.any.Any.__init__":5608,"unitelabs.cdk.sila.common":5612,"unitelabs.cdk.sila.common.__all__":5622,"unitelabs.cdk.sila.common.decorator":5625,"unitelabs.cdk.sila.common.decorator.Decorator":5628,"unitelabs.cdk.sila.common.decorator.Decorator.__init__":5655,"unitelabs.cdk.sila.common.decorator.Decorator._identifier":5693,"unitelabs.cdk.sila.common.decorator.Decorator._name":5696,"unitelabs.cdk.sila.common.decorator.Decorator._description":5699,"unitelabs.cdk.sila.common.decorator.Decorator._enabled":5702,"unitelabs.cdk.sila.common.decorator.Decorator._parameters":5704,"unitelabs.cdk.sila.common.decorator.Decorator._responses":5712,"unitelabs.cdk.sila.common.decorator.Decorator._intermediate_responses":5720,"unitelabs.cdk.sila.common.decorator.Decorator._handler":5728,"unitelabs.cdk.sila.common.decorator.Decorator._metadata":5733,"unitelabs.cdk.sila.common.decorator.Decorator._errors":5746,"unitelabs.cdk.sila.common.decorator.Decorator._function":5754,"unitelabs.cdk.sila.common.decorator.Decorator._feature":5758,"unitelabs.cdk.sila.common.decorator.Decorator.__call__":5763,"unitelabs.cdk.sila.common.decorator.Decorator.is_enabled":5772,"unitelabs.cdk.sila.common.decorator.Decorator.clone":5781,"unitelabs.cdk.sila.common.decorator.Decorator.attach":5788,"unitelabs.cdk.sila.common.decorator.Decorator.execute":5800,"unitelabs.cdk.sila.common.decorator.Decorator._execute":5828,"unitelabs.cdk.sila.common.decorator.Decorator._with_metadata":5838,"unitelabs.cdk.sila.common.decorator.Decorator._with_parameters":5854,"unitelabs.cdk.sila.common.feature":5876,"unitelabs.cdk.sila.common.feature.Feature":5879,"unitelabs.cdk.sila.common.feature.Feature.__init__":5897,"unitelabs.cdk.sila.common.feature.Feature._metadata":5928,"unitelabs.cdk.sila.common.feature.Feature._handlers":5938,"unitelabs.cdk.sila.common.feature.Feature._app":5946,"unitelabs.cdk.sila.common.feature.Feature.attach":5951,"unitelabs.cdk.sila.common.feature.Feature.optimize":5959,"unitelabs.cdk.sila.common.feature.Feature.app":5965,"unitelabs.cdk.sila.common.feature.Feature.server":5974,"unitelabs.cdk.sila.common.dataclass":5982,"unitelabs.cdk.sila.common.dataclass.Dataclass":5985,"unitelabs.cdk.sila.common.dataclass.Dataclass._identifier":5999,"unitelabs.cdk.sila.common.dataclass.Dataclass._name":6002,"unitelabs.cdk.sila.common.dataclass.Dataclass._description":6005,"unitelabs.cdk.sila.common.dataclass.Dataclass.__init_subclass__":6008,"unitelabs.cdk.sila.common.dataclass.Dataclass.attach":6024,"unitelabs.cdk.sila.common.dataclass.Dataclass._infer_data_type":6033,"unitelabs.cdk.sila.common.dataclass.Dataclass.__init__":6044,"unitelabs.cdk.sila.common.errors":6048,"unitelabs.cdk.sila.common.errors.define_error":6052,"unitelabs.cdk.sila.common.errors.DefinedExecutionError":6071,"unitelabs.cdk.sila.common.errors.DefinedExecutionError.__init_subclass__":6082,"unitelabs.cdk.sila.common.errors.DefinedExecutionError.__init__":6086,"unitelabs.cdk.sila.property":6098,"unitelabs.cdk.sila.property.__all__":6106,"unitelabs.cdk.sila.property.unobservable_property":6109,"unitelabs.cdk.sila.property.unobservable_property.UnobservableProperty":6112,"unitelabs.cdk.sila.property.unobservable_property.UnobservableProperty.attach":6126,"unitelabs.cdk.sila.property.unobservable_property.UnobservableProperty._execute":6135,"unitelabs.cdk.sila.property.observable_property":6144,"unitelabs.cdk.sila.property.observable_property.T":6149,"unitelabs.cdk.sila.property.observable_property.Stream":6151,"unitelabs.cdk.sila.property.observable_property.ObservableProperty":6154,"unitelabs.cdk.sila.property.observable_property.ObservableProperty.attach":6168,"unitelabs.cdk.sila.property.observable_property.ObservableProperty.execute":6177,"unitelabs.cdk.sila.property.observable_property.ObservableProperty._execute":6194,"unitelabs.cdk.sila.metadata":6205,"unitelabs.cdk.sila.metadata.__all__":6213,"unitelabs.cdk.sila.metadata.metadatum":6216,"unitelabs.cdk.sila.metadata.metadatum.T":6221,"unitelabs.cdk.sila.metadata.metadatum.Metadatum":6224,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.feature":6257,"unitelabs.cdk.sila.metadata.metadatum.Metadatum._affects":6260,"unitelabs.cdk.sila.metadata.metadatum.Metadatum._metadatum":6267,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.__init_subclass__":6275,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.attach":6299,"unitelabs.cdk.sila.metadata.metadatum.Metadatum._intercept":6310,"unitelabs.cdk.sila.metadata.metadatum.Metadatum._infer_metadata":6320,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.from_native":6340,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.affects":6353,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.intercept":6364,"unitelabs.cdk.sila.metadata.metadatum.Metadatum.__init__":6371,"unitelabs.cdk.sila.metadata.metadata":6375,"unitelabs.cdk.sila.metadata.metadata.T":6380,"unitelabs.cdk.sila.metadata.metadata.Metadata":6383,"unitelabs.cdk.sila.metadata.metadata.Metadata.__getitem__":6392,"unitelabs.cdk.sila.utils":6403,"unitelabs.cdk.sila.utils.__all__":6414,"unitelabs.cdk.sila.utils.version":6423,"unitelabs.cdk.sila.utils.version.parse_version":6426,"unitelabs.cdk.sila.utils.docstring":6435,"unitelabs.cdk.sila.utils.docstring.Docstring":6443,"unitelabs.cdk.sila.utils.docstring.Docstring.description":6456,"unitelabs.cdk.sila.utils.docstring.Docstring.parameters":6459,"unitelabs.cdk.sila.utils.docstring.Docstring.yields":6468,"unitelabs.cdk.sila.utils.docstring.Docstring.returns":6476,"unitelabs.cdk.sila.utils.docstring.Docstring.raises":6484,"unitelabs.cdk.sila.utils.docstring.Docstring.__init__":6492,"unitelabs.cdk.sila.utils.docstring.parse_docstring":6529,"unitelabs.cdk.sila.utils.docstring.parse_restructured":6546,"unitelabs.cdk.sila.utils.docstring.create_element":6561,"unitelabs.cdk.sila.utils.docstring._warn":6593,"unitelabs.cdk.sila.utils.docstring.get_types":6614,"unitelabs.cdk.sila.utils.name":6628,"unitelabs.cdk.sila.utils.name.to_display_name":6631,"unitelabs.cdk.sila.utils.name.to_identifier":6643,"unitelabs.cdk.sila.utils.interval":6651,"unitelabs.cdk.sila.utils.interval.set_interval":6654,"unitelabs.cdk.sila.utils.interval.clear_interval":6664,"unitelabs.cdk.sila.command":6670,"unitelabs.cdk.sila.command.__all__":6680,"unitelabs.cdk.sila.command.unobservable_command":6683,"unitelabs.cdk.sila.command.unobservable_command.UnobservableCommand":6686,"unitelabs.cdk.sila.command.unobservable_command.UnobservableCommand.attach":6699,"unitelabs.cdk.sila.command.observable_command":6708,"unitelabs.cdk.sila.command.observable_command.ObservableCommand":6711,"unitelabs.cdk.sila.command.observable_command.ObservableCommand.attach":6724,"unitelabs.cdk.sila.command.intermediate":6733,"unitelabs.cdk.sila.command.intermediate.T":6738,"unitelabs.cdk.sila.command.intermediate.Intermediate":6740,"unitelabs.cdk.sila.command.intermediate.Intermediate.__init__":6755,"unitelabs.cdk.sila.command.intermediate.Intermediate.command_execution":6769,"unitelabs.cdk.sila.command.intermediate.Intermediate.responses":6773,"unitelabs.cdk.sila.command.intermediate.Intermediate.send":6775,"unitelabs.cdk.sila.command.status":6783,"unitelabs.cdk.sila.command.status.Status":6786,"unitelabs.cdk.sila.command.status.Status.__init__":6795,"unitelabs.cdk.sila.command.status.Status.command_execution":6801,"unitelabs.cdk.sila.command.status.Status.update":6804,"unitelabs.cdk.sila.constraints":6824,"unitelabs.cdk.sila.constraints.__all__":6858,"unitelabs.cdk.sila.constraints.minimal_exclusive":6861,"unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive":6864,"unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive.value":6878,"unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive.__post_init__":6889,"unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive.__init__":6893,"unitelabs.cdk.sila.constraints.maximal_exclusive":6905,"unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive":6908,"unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive.value":6922,"unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive.__post_init__":6931,"unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive.__init__":6935,"unitelabs.cdk.sila.constraints.maximal_inclusive":6947,"unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive":6950,"unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive.value":6964,"unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive.__post_init__":6973,"unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive.__init__":6977,"unitelabs.cdk.sila.constraints.minimal_inclusive":6989,"unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive":6992,"unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive.value":7006,"unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive.__post_init__":7015,"unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive.__init__":7019,"unitelabs.cdk.sila.constraints.set":7031,"unitelabs.cdk.sila.constraints.set.Set":7034,"unitelabs.cdk.sila.constraints.set.Set.values":7048,"unitelabs.cdk.sila.constraints.set.Set.__post_init__":7060,"unitelabs.cdk.sila.constraints.set.Set.__init__":7064,"unitelabs.cdk.config":7080,"unitelabs.cdk.config.__all__":7091,"unitelabs.cdk.config.schema":7098,"unitelabs.cdk.config.schema.InvalidSchemaFieldError":7104,"unitelabs.cdk.config.schema.Schema":7111,"unitelabs.cdk.config.schema.Schema.__init__":7122,"unitelabs.cdk.config.schema.Schema._schema":7144,"unitelabs.cdk.config.schema.Schema._schema_definitions":7146,"unitelabs.cdk.config.schema.Schema.definition":7149,"unitelabs.cdk.config.schema.Schema.get":7158,"unitelabs.cdk.config.schema.describe":7174,"unitelabs.cdk.config.schema.get_type_str":7200,"unitelabs.cdk.config.config":7215,"unitelabs.cdk.config.config.validate_config":7233,"unitelabs.cdk.config.config.BasicSerializableType":7236,"unitelabs.cdk.config.config.SerializableType":7240,"unitelabs.cdk.config.config.SerializableDict":7244,"unitelabs.cdk.config.config.DEFAULT_CONFIG_PATHS":7248,"unitelabs.cdk.config.config.UnsupportedConfigFiletype":7251,"unitelabs.cdk.config.config.ConfigurationError":7258,"unitelabs.cdk.config.config.get_schema_fields":7265,"unitelabs.cdk.config.config.JsonSchemaGenerator":7277,"unitelabs.cdk.config.config.JsonSchemaGenerator.generate":7288,"unitelabs.cdk.config.config.JsonSchemaGenerator.bytes_schema":7301,"unitelabs.cdk.config.config.update_yaml":7310,"unitelabs.cdk.config.config.MissingDefault":7322,"unitelabs.cdk.config.config.MissingDefault.__repr__":7327,"unitelabs.cdk.config.config.UNCONFIGURED":7331,"unitelabs.cdk.config.config.T":7334,"unitelabs.cdk.config.config.DelayedDefault":7336,"unitelabs.cdk.config.config.DelayedDefault.__init__":7351,"unitelabs.cdk.config.config.DelayedDefault.func":7364,"unitelabs.cdk.config.config.DelayedDefault.resolved":7366,"unitelabs.cdk.config.config.DelayedDefault.value":7368,"unitelabs.cdk.config.config.DelayedDefault.resolve":7371,"unitelabs.cdk.config.config.delayed_default":7380,"unitelabs.cdk.config.config.Config":7399,"unitelabs.cdk.config.config.Config.__pydantic_config__":7421,"unitelabs.cdk.config.config.Config._ignore":7424,"unitelabs.cdk.config.config.Config._source":7430,"unitelabs.cdk.config.config.Config._source_path":7436,"unitelabs.cdk.config.config.Config.__get_pydantic_core_schema__":7441,"unitelabs.cdk.config.config.Config.__getattribute__":7454,"unitelabs.cdk.config.config.Config.to_pydantic_dataclass":7461,"unitelabs.cdk.config.config.Config.get_type_adapter":7472,"unitelabs.cdk.config.config.Config.from_dict":7482,"unitelabs.cdk.config.config.Config.to_dict":7495,"unitelabs.cdk.config.config.Config.schema":7503,"unitelabs.cdk.config.config.Config.describe":7518,"unitelabs.cdk.config.config.Config.load":7540,"unitelabs.cdk.config.config.Config.dump":7571,"unitelabs.cdk.config.config.Config.validate":7584,"unitelabs.cdk.config.config.read_config_file":7599,"unitelabs.cdk.config.config.find_file":7619,"unitelabs.cdk.config.config.get_extant_path":7645,"unitelabs.cdk.config.config.__all__":7662,"unitelabs.cdk.config.connector_base_config":7665,"unitelabs.cdk.config.connector_base_config.URIString":7675,"unitelabs.cdk.config.connector_base_config.UUIDString":7678,"unitelabs.cdk.config.connector_base_config.read_bytes_if_path_and_exists":7681,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig":7700,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.root_certificates":7723,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.certificate_chain":7731,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.private_key":7739,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.options":7747,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.uuid":7750,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.name":7753,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.vendor_url":7762,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.__get_pydantic_json_schema__":7766,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.__post_init__":7779,"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.__init__":7783,"unitelabs.cdk.config.connector_base_config.CloudServerConfig":7823,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.port":7844,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.root_certificates":7853,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.certificate_chain":7860,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.private_key":7868,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.options":7875,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.ensure_valid_hostname":7879,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.__post_init__":7890,"unitelabs.cdk.config.connector_base_config.CloudServerConfig.__init__":7894,"unitelabs.cdk.config.connector_base_config.DiscoveryConfig":7926,"unitelabs.cdk.config.connector_base_config.DiscoveryConfig.__init__":7939,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig":7943,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.sila_server":7960,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.cloud_server_endpoint":7967,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.discovery":7973,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.logging":7979,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.__post_init__":7986,"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.__init__":7991,"unitelabs.cdk.config.connector_base_config.get_connector_config":8015,"unitelabs.cdk.config.connector_base_config.__all__":8023,"unitelabs.cdk.AppFactory":8027,"unitelabs.cdk.CloudServerConfig":8029,"unitelabs.cdk.ConfigurationError":8040,"unitelabs.cdk.Connector":8046,"unitelabs.cdk.ConnectorBaseConfig":8051,"unitelabs.cdk.Publisher":8060,"unitelabs.cdk.SiLAServerConfig":8082,"unitelabs.cdk.Subject":8093,"unitelabs.cdk.Subscription":8108,"unitelabs.cdk.UnsupportedConfigFiletype":8122,"unitelabs.cdk.create_logger":8128,"unitelabs.cdk.run":8140,"unitelabs.cdk.validate_config":8153,"unitelabs.cdk.subscriptions.Publisher":8155,"unitelabs.cdk.subscriptions.Subject":8177,"unitelabs.cdk.subscriptions.Subscription":8192,"unitelabs.cdk.cli.TLSConfigurationError":8206,"unitelabs.cdk.features.examples.greeting_provider.GreetingProvider":8212,"unitelabs.cdk.features.examples.temperature_controller.TemperatureController":8220,"unitelabs.cdk.features.test.unobservable_property_test.UnobservablePropertyTest":8228,"unitelabs.cdk.features.test.structure_data_type_test.DeepStructure":8235,"unitelabs.cdk.features.test.structure_data_type_test.StructureDataTypeTest":8244,"unitelabs.cdk.features.test.structure_data_type_test.TestStructure":8251,"unitelabs.cdk.features.test.list_data_type_test.ListDataTypeTest":8260,"unitelabs.cdk.features.test.any_type_test.AnyTypeTest":8267,"unitelabs.cdk.features.test.basic_data_types_test.BasicDataTypesTest":8274,"unitelabs.cdk.features.test.metadata_provider.MetadataProvider":8281,"unitelabs.cdk.features.test.metadata_provider.StringMetadata":8288,"unitelabs.cdk.features.test.metadata_provider.TwoIntegersMetadata":8297,"unitelabs.cdk.features.test.metadata_consumer_test.MetadataConsumerTest":8306,"unitelabs.cdk.features.test.observable_property_test.ObservablePropertyTest":8313,"unitelabs.cdk.features.test.error_handling_test.ErrorHandlingTest":8321,"unitelabs.cdk.features.test.error_handling_test.TestError":8328,"unitelabs.cdk.features.test.authentication_test.AuthenticationTest":8334,"unitelabs.cdk.features.test.observable_command_test.ObservableCommandTest":8341,"unitelabs.cdk.features.test.binary_transfer_test.BinaryTransferTest":8348,"unitelabs.cdk.features.test.binary_transfer_test.String":8355,"unitelabs.cdk.features.test.unobservable_command_test.UnobservableCommandTest":8364,"unitelabs.cdk.features.robot.movement_controller.MovementControllerBase":8371,"unitelabs.cdk.features.robot.movement_controller.PositionIndex":8378,"unitelabs.cdk.features.robot.movement_controller.TargetPosition":8387,"unitelabs.cdk.features.robot.grip_controller.GripControllerBase":8396,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.HandoverPosition":8403,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.InvalidCommandSequence":8412,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.LabwareNotPicked":8418,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.LabwareNotPlaced":8424,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.LabwareTransferManipulatorControllerBase":8430,"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.PositionIndex":8437,"unitelabs.cdk.features.weighing.weighing_service.WeighingServiceBase":8446,"unitelabs.cdk.features.core.authorization_service.AccessToken":8453,"unitelabs.cdk.features.core.authorization_service.AuthorizationService":8462,"unitelabs.cdk.features.core.authorization_service.InvalidAccessToken":8469,"unitelabs.cdk.features.core.lock_controller.InvalidLockIdentifier":8475,"unitelabs.cdk.features.core.lock_controller.Lock":8481,"unitelabs.cdk.features.core.lock_controller.LockController":8487,"unitelabs.cdk.features.core.lock_controller.LockIdentifier":8495,"unitelabs.cdk.features.core.lock_controller.ServerAlreadyLocked":8504,"unitelabs.cdk.features.core.lock_controller.ServerNotLocked":8510,"unitelabs.cdk.features.core.authentication_service.AccessToken":8516,"unitelabs.cdk.features.core.authentication_service.AuthenticationFailed":8522,"unitelabs.cdk.features.core.authentication_service.AuthenticationService":8528,"unitelabs.cdk.features.core.authentication_service.InvalidAccessToken":8536,"unitelabs.cdk.features.core.simulation_controller.SimulationControllerBase":8542,"unitelabs.cdk.features.core.simulation_controller.StartRealModeFailed":8550,"unitelabs.cdk.features.core.simulation_controller.StartSimulationModeFailed":8556,"unitelabs.cdk.features.core.sila_service.SiLAService":8562,"unitelabs.cdk.features.core.sila_service.UnimplementedFeature":8569,"unitelabs.cdk.sila.CustomDataType":8575,"unitelabs.cdk.sila.Dataclass":8585,"unitelabs.cdk.sila.Decorator":8591,"unitelabs.cdk.sila.DefinedExecutionError":8596,"unitelabs.cdk.sila.Feature":8604,"unitelabs.cdk.sila.Intermediate":8613,"unitelabs.cdk.sila.Metadata":8623,"unitelabs.cdk.sila.Metadatum":8630,"unitelabs.cdk.sila.ObservableCommand":8646,"unitelabs.cdk.sila.ObservableProperty":8655,"unitelabs.cdk.sila.Status":8664,"unitelabs.cdk.sila.Stream":8669,"unitelabs.cdk.sila.UnobservableCommand":8671,"unitelabs.cdk.sila.UnobservableProperty":8680,"unitelabs.cdk.sila.define_error":8689,"unitelabs.cdk.sila.data_types.Any":8703,"unitelabs.cdk.sila.data_types.Custom":8711,"unitelabs.cdk.sila.data_types.infer":8726,"unitelabs.cdk.sila.data_types.to_sila":8737,"unitelabs.cdk.sila.common.Dataclass":8751,"unitelabs.cdk.sila.common.Decorator":8757,"unitelabs.cdk.sila.common.DefinedExecutionError":8762,"unitelabs.cdk.sila.common.Feature":8770,"unitelabs.cdk.sila.common.define_error":8779,"unitelabs.cdk.sila.property.ObservableProperty":8793,"unitelabs.cdk.sila.property.Stream":8802,"unitelabs.cdk.sila.property.UnobservableProperty":8804,"unitelabs.cdk.sila.metadata.Metadata":8813,"unitelabs.cdk.sila.metadata.Metadatum":8820,"unitelabs.cdk.sila.utils.Docstring":8836,"unitelabs.cdk.sila.utils.clear_interval":8842,"unitelabs.cdk.sila.utils.parse_docstring":8847,"unitelabs.cdk.sila.utils.parse_version":8859,"unitelabs.cdk.sila.utils.set_interval":8866,"unitelabs.cdk.sila.utils.to_display_name":8875,"unitelabs.cdk.sila.utils.to_identifier":8884,"unitelabs.cdk.sila.command.Intermediate":8891,"unitelabs.cdk.sila.command.ObservableCommand":8901,"unitelabs.cdk.sila.command.Status":8910,"unitelabs.cdk.sila.command.UnobservableCommand":8915,"unitelabs.cdk.sila.constraints.MaximalExclusive":8924,"unitelabs.cdk.sila.constraints.MaximalInclusive":8933,"unitelabs.cdk.sila.constraints.MinimalExclusive":8942,"unitelabs.cdk.sila.constraints.MinimalInclusive":8951,"unitelabs.cdk.sila.constraints.Set":8960,"unitelabs.cdk.config.CloudServerConfig":8969,"unitelabs.cdk.config.Config":8980,"unitelabs.cdk.config.ConfigurationError":8985,"unitelabs.cdk.config.ConnectorBaseConfig":8991,"unitelabs.cdk.config.InvalidSchemaFieldError":9000,"unitelabs.cdk.config.SiLAServerConfig":9006,"unitelabs.cdk.config.UnsupportedConfigFiletype":9017,"unitelabs.cdk.config.delayed_default":9023,"unitelabs.cdk.config.describe":9042,"unitelabs.cdk.config.get_connector_config":9062,"unitelabs.cdk.config.read_config_file":9068,"unitelabs.cdk.config.validate_config":9082},{"type":738,"name":739,"path":740,"parent":741,"packages":742,"attributes":752,"classes":755},"package","unitelabs.cdk","unitelabs\u002Fcdk\u002F__init__.py","unitelabs",[743,744,745,746,747,748,749,750,751],"unitelabs.cdk.logging","unitelabs.cdk.connector","unitelabs.cdk.main","unitelabs.cdk.utils","unitelabs.cdk.subscriptions","unitelabs.cdk.cli","unitelabs.cdk.features","unitelabs.cdk.sila","unitelabs.cdk.config",[753,754],"unitelabs.cdk.__version__","unitelabs.cdk.__all__",[756,757,758,759,760,761,762,763,764],"unitelabs.cdk.config.connector_base_config.CloudServerConfig","unitelabs.cdk.config.config.ConfigurationError","unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig","unitelabs.cdk.config.connector_base_config.SiLAServerConfig","unitelabs.cdk.config.config.UnsupportedConfigFiletype","unitelabs.cdk.connector.Connector","unitelabs.cdk.subscriptions.publisher.Publisher","unitelabs.cdk.subscriptions.subject.Subject","unitelabs.cdk.subscriptions.subscription.Subscription",{"type":766,"name":753,"path":740,"parent":739,"lines":767,"value":769},"attribute",[768,768],18,"version('unitelabs-cdk')",{"type":766,"name":754,"path":740,"parent":739,"lines":771,"value":774},[772,773],19,36,[775,756,757,761,758,762,759,763,764,760,776,777,778],"unitelabs.cdk.main.AppFactory","unitelabs.cdk.logging.create_logger","unitelabs.cdk.main.run","unitelabs.cdk.config.config.validate_config",{"type":738,"name":743,"path":780,"parent":739,"functions":781},"unitelabs\u002Fcdk\u002Flogging.py",[776,782],"unitelabs.cdk.logging.configure_logging",{"type":784,"name":776,"path":780,"parent":743,"description":785,"lines":786,"decorators":789,"parameters":791,"returns":806},"function","Get the app's logger and configure it if needed.",[787,788],10,32,[790],"deprecated.deprecated(version='0.2.8', reason='We now globally configure logging instead of configuring the individual logger instance, therefore replace `create_logger` with `logging.getLogger`.')",[792,800],{"name":793,"kind":794,"annotation":795,"required":42,"default":798},"name","positional or keyword",{"name":796,"cls":797},"str","ExprName",{"name":799,"cls":797},"__package__",{"name":801,"kind":794,"annotation":802,"required":42,"default":804},"level",{"name":803,"cls":797},"int",{"name":805,"cls":797},"logging.INFO",{"description":807,"annotation":808},null,{"name":809,"cls":797},"logging.Logger",{"type":784,"name":782,"path":780,"parent":743,"description":811,"lines":812,"parameters":815},"Configure logging with the given config or provide a file containing the config.",[813,814],35,70,[816,827],{"name":817,"kind":794,"annotation":818,"required":42,"default":820,"description":826},"config",{"join":819},[820,821,823,824],"None",{"name":822,"cls":797},"pathlib.Path",{"name":796,"cls":797},{"name":825,"cls":797},"dict","Either a path containing the config or the config itself.\nSee https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Flogging.config.html#configuration-dictionary-schema",{"name":828,"kind":794,"annotation":829,"required":42,"default":820,"description":832},"log_level",{"join":830},[831,820],{"name":803,"cls":797},"Override the root logger's log level.",{"type":738,"name":744,"path":834,"parent":739,"packages":835,"attributes":836,"classes":839},"unitelabs\u002Fcdk\u002Fconnector.py",[750],[837,838],"unitelabs.cdk.connector.Handler","unitelabs.cdk.connector.T",[761],{"type":766,"name":837,"path":834,"parent":744,"lines":841,"value":843},[842,842],16,"collections.abc.Callable[..., typing.Any | typing.Awaitable[typing.Any]]",{"type":766,"name":838,"path":834,"parent":744,"lines":845,"value":846},[768,768],"typing.TypeVar('T', bound=(sila.Feature))",{"type":848,"name":761,"path":834,"parent":744,"description":849,"lines":850,"attributes":853,"functions":865,"mro":875},"class","Main app.",[851,852],21,196,[854,855,856,857,858,859,860,861,862,863,864],"unitelabs.cdk.connector.Connector.__config","unitelabs.cdk.connector.Connector._ready","unitelabs.cdk.connector.Connector._shutdown","unitelabs.cdk.connector.Connector._shutdown_handlers","unitelabs.cdk.connector.Connector._sila_server","unitelabs.cdk.connector.Connector._discovery","unitelabs.cdk.connector.Connector._cloud_server","unitelabs.cdk.connector.Connector.config","unitelabs.cdk.connector.Connector.sila_server","unitelabs.cdk.connector.Connector.logger","unitelabs.cdk.connector.Connector.debug",[866,867,868,869,870,871,872,873,874],"unitelabs.cdk.connector.Connector.__init__","unitelabs.cdk.connector.Connector.start","unitelabs.cdk.connector.Connector.stop","unitelabs.cdk.connector.Connector.wait_for_ready","unitelabs.cdk.connector.Connector.wait_for_termination","unitelabs.cdk.connector.Connector.get_feature","unitelabs.cdk.connector.Connector.register","unitelabs.cdk.connector.Connector.on_shutdown","unitelabs.cdk.connector.Connector.off_shutdown",[761],{"type":784,"name":866,"path":834,"parent":761,"lines":877,"parameters":880},[878,879],24,65,[881,884],{"name":882,"kind":794,"required":883},"self",true,{"name":817,"kind":794,"annotation":885,"required":42,"default":820},{"join":886},[887,820],{"name":758,"cls":797},{"type":766,"name":854,"path":834,"parent":761,"lines":889,"value":891},[890,890],25,"config or ConnectorBaseConfig()",{"type":766,"name":855,"path":834,"parent":761,"lines":893,"value":895},[894,894],27,"asyncio.Event()",{"type":766,"name":856,"path":834,"parent":761,"lines":897,"value":895},[898,898],28,{"type":766,"name":857,"path":834,"parent":761,"lines":900,"value":902,"annotation":903},[901,901],29,"[]",{"left":904,"slice":906},{"name":905,"cls":797},"list",{"name":837,"cls":797},{"type":766,"name":858,"path":834,"parent":761,"lines":908,"value":820},[909,909],33,{"type":766,"name":859,"path":834,"parent":761,"lines":911,"value":820},[912,912],34,{"type":766,"name":860,"path":834,"parent":761,"lines":914,"value":820},[915,915],44,{"type":784,"name":867,"path":834,"parent":761,"description":917,"lines":918,"parameters":921},"Start the connector and all related services.",[919,920],67,76,[922],{"name":882,"kind":794,"required":883},{"type":784,"name":868,"path":834,"parent":761,"description":924,"lines":925,"parameters":928},"Stop the connector and all related services.",[926,927],78,93,[929],{"name":882,"kind":794,"required":883},{"type":784,"name":869,"path":834,"parent":761,"description":931,"lines":932,"parameters":935},"Wait until the connector is ready.",[933,934],95,99,[936],{"name":882,"kind":794,"required":883},{"type":784,"name":870,"path":834,"parent":761,"description":938,"lines":939,"parameters":942},"Wait until the connector is terminated.",[940,941],101,105,[943],{"name":882,"kind":794,"required":883},{"type":784,"name":871,"path":834,"parent":761,"description":945,"lines":946,"parameters":949,"returns":958,"throws":961},"Get the instance of a registered feature by its type.",[947,948],107,127,[950,951],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":953,"required":883,"description":957},"feature",{"left":954,"slice":956},{"name":955,"cls":797},"type",{"name":838,"cls":797},"The type of the feature to receive.",{"description":959,"annotation":960},"The feature registered with this connector.",{"name":838,"cls":797},[962],{"description":963,"annotation":964},"If the given type is invalid or not\nrecognized.",{"name":965,"cls":797},"ValueError",{"type":784,"name":872,"path":834,"parent":761,"description":967,"lines":968,"parameters":971},"Register a new feature to this driver.",[969,970],129,142,[972,973],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":974,"required":883},{"name":975,"cls":797},"unitelabs.cdk.sila.common.feature.Feature",{"type":766,"name":861,"path":834,"parent":761,"description":977,"lines":978,"value":820,"annotation":981},"The configuration.",[979,980],145,148,{"name":758,"cls":797},{"type":766,"name":862,"path":834,"parent":761,"description":983,"lines":984,"value":820,"annotation":987},"The SiLA Server.",[985,986],151,153,{"join":988},[989,820],{"name":990,"cls":797},"sila.server.server.Server",{"type":766,"name":863,"path":834,"parent":761,"description":992,"lines":993,"value":820,"annotation":996},"A standard Python :class:`~logging.Logger` for the app.",[994,995],156,159,{"name":809,"cls":797},{"type":766,"name":864,"path":834,"parent":761,"description":998,"lines":999,"value":820,"annotation":1002},"Whether debug mode is enabled.",[1000,1001],162,165,{"name":1003,"cls":797},"bool",{"type":784,"name":873,"path":834,"parent":761,"description":1005,"lines":1006,"parameters":1009,"throws":1015},"Add a shutdown hook to be called in the terminating phase.\n\nThis will be in response to an explicit call to `app.stop()` or\nupon receipt of system signals such as SIGINT, SIGTERM or SIGHUP.",[1007,1008],167,185,[1010,1011],{"name":882,"kind":794,"required":883},{"name":1012,"kind":794,"annotation":1013,"required":883,"description":1014},"handler",{"name":837,"cls":797},"The method to be called on shutdown.",[1016],{"description":1017,"annotation":1018},"If the `handler` argument is not callable.",{"name":1019,"cls":797},"TypeError",{"type":784,"name":874,"path":834,"parent":761,"description":1021,"lines":1022,"parameters":1024},"Remove a previously added shutdown hook.",[1023,852],187,[1025,1026],{"name":882,"kind":794,"required":883},{"name":1012,"kind":794,"annotation":1027,"required":883,"description":1028},{"name":837,"cls":797},"The handler to be removed from the shutdown hooks.",{"type":738,"name":745,"path":1030,"parent":739,"attributes":1031,"functions":1034},"unitelabs\u002Fcdk\u002Fmain.py",[1032,1033,775],"unitelabs.cdk.main.T","unitelabs.cdk.main.Generator",[777,1035,1036,1037,1038,1039],"unitelabs.cdk.main.load","unitelabs.cdk.main.signal_handler","unitelabs.cdk.main.init","unitelabs.cdk.main._shutdown_yield","unitelabs.cdk.main._sync_to_async_gen",{"type":766,"name":1032,"path":1030,"parent":745,"lines":1041,"value":1043},[1042,1042],14,"typing.TypeVar('T')",{"type":766,"name":1033,"path":1030,"parent":745,"lines":1045,"value":1047,"annotation":1048},[1046,1046],17,"collections.abc.Generator[T, None, None] | collections.abc.AsyncGenerator[T, None]",{"name":1049,"cls":797},"typing_extensions.TypeAlias",{"type":766,"name":775,"path":1030,"parent":745,"lines":1051,"value":1054},[1052,1053],20,23,"collections.abc.Callable[..., Connector | collections.abc.Awaitable[Connector] | Generator]",{"type":784,"name":777,"path":1030,"parent":745,"description":1056,"lines":1057,"parameters":1060},"Run the given application.",[1058,1059],26,60,[1061,1070],{"name":1062,"kind":1063,"annotation":1064,"required":883,"description":1069},"app","positional-only",{"join":1065},[1066,1067,1068],{"name":796,"cls":797},{"name":775,"cls":797},{"name":761,"cls":797},"Either an entrypoint reference (e.g. `unitelabs.awesome_instrument:create_app`),\nan app factory method or the app instance directly.",{"name":817,"kind":794,"annotation":1071,"required":42,"default":820,"description":1074},{"join":1072},[1073,820],{"name":825,"cls":797},"Optional configuration to pass to the app factory.",{"type":784,"name":1035,"path":1030,"parent":745,"description":1076,"lines":1077,"parameters":1080,"returns":1085},"Dynamically import an app instance or factory from the given entrypoint.",[1078,1079],63,102,[1081],{"name":1082,"kind":794,"annotation":1083,"required":883,"description":1084},"entrypoint",{"name":796,"cls":797},"Where to find the app factory formatted as \"module:name\",\n(e.g. `unitelabs.awesome_instrument:create_app`)",{"description":1086,"annotation":1087},"The app instance or factory at the given entrypoint.",{"join":1088},[1089,1090],{"name":775,"cls":797},{"name":761,"cls":797},{"type":784,"name":1036,"path":1030,"parent":745,"description":1092,"lines":1093,"parameters":1095},"Gracefully handle received signals.",[941,1094],121,[1096,1100,1107],{"name":1097,"kind":794,"annotation":1098,"required":883,"description":1099},"signum",{"name":803,"cls":797},"The received signal number.",{"name":1101,"kind":794,"annotation":1102,"required":883,"description":1106},"frame",{"join":1103},[1104,820],{"name":1105,"cls":797},"types.FrameType","The current stack frame.",{"name":1062,"kind":794,"annotation":1108,"required":883,"description":1109},{"name":761,"cls":797},"The running connector application.",{"type":784,"name":1037,"path":1030,"parent":745,"description":1111,"lines":1112,"parameters":1115,"returns":1120,"throws":1123},"Use the provided factory method to init a new `Connector`.",[1113,1114],124,168,[1116],{"name":1117,"kind":794,"annotation":1118,"required":883,"description":1119},"app_factory",{"name":775,"cls":797},"The factory method to call.",{"description":1121,"annotation":1122},"The initialized `Connector` which shutdown handlers attached.",{"name":761,"cls":797},[1124],{"description":1125,"annotation":1126},"If `app_factory` does not follow the required\ninterface.",{"name":965,"cls":797},{"type":784,"name":1038,"path":1030,"parent":745,"description":1128,"lines":1129,"parameters":1132},"Execute the shutdown of a factory function.\n\nAchieved by advancing the iterator after the yield to\nensure the iteration ends (if not it means there is\nmore than one yield in the function).",[1130,1131],171,188,[1133],{"name":1134,"kind":794,"annotation":1135,"required":883,"description":1141},"generator",{"left":1136,"slice":1138},{"name":1137,"cls":797},"collections.abc.AsyncGenerator",{"elements":1139},[1140,820],{"name":1032,"cls":797},"The factory function to create the app.",{"type":784,"name":1039,"path":1030,"parent":745,"description":1143,"lines":1144,"parameters":1147,"returns":1153},"Wrap any generator into an async generator.",[1145,1146],191,213,[1148],{"name":1134,"kind":794,"annotation":1149,"required":883,"description":1152},{"left":1150,"slice":1151},{"name":1033,"cls":797},{"name":1032,"cls":797},"The generator to wrap as async.",{"description":1154,"annotation":1155},"The async generator.",{"left":1156,"slice":1157},{"name":1137,"cls":797},{"elements":1158},[1159,820],{"name":1032,"cls":797},{"type":738,"name":746,"path":1161,"parent":739,"functions":1162},"unitelabs\u002Fcdk\u002Futils.py",[1163,1164,1165],"unitelabs.cdk.utils.coroutine","unitelabs.cdk.utils.find_factory","unitelabs.cdk.utils.walk",{"type":784,"name":1163,"path":1161,"parent":746,"description":1167,"lines":1168,"parameters":1170,"returns":1174},"Wrap click cli commands to run asynchronously.",[1169,1052],13,[1171],{"name":784,"kind":794,"annotation":1172,"required":883},{"name":1173,"cls":797},"collections.abc.Callable",{"description":807,"annotation":1175},{"name":1173,"cls":797},{"type":784,"name":1164,"path":1161,"parent":746,"description":1177,"lines":1178,"returns":1180},"Search the factory method in the current working directory.",[1053,1179],82,{"description":1181,"annotation":1182},"The location of the factory method in the form 'module:name'.",{"name":796,"cls":797},{"type":784,"name":1165,"path":1161,"parent":746,"description":1184,"lines":1185,"parameters":1188,"returns":1195},"Walk the directory tree from this directory, similar to os.walk().",[1186,1187],87,119,[1189,1190,1193],{"name":882,"kind":794,"required":883},{"name":1191,"kind":794,"required":42,"default":1192},"top_down","True",{"name":1194,"kind":794,"required":42,"default":820},"on_error",{"description":807,"annotation":1196},{"left":1197,"slice":1199},{"name":1198,"cls":797},"typing_extensions.Iterable",{"left":1200,"slice":1202},{"name":1201,"cls":797},"tuple",{"elements":1203},[1204,1205,1208],{"name":796,"cls":797},{"left":1206,"slice":1207},{"name":905,"cls":797},{"name":796,"cls":797},{"left":1209,"slice":1210},{"name":905,"cls":797},{"name":796,"cls":797},{"type":738,"name":747,"path":1212,"parent":739,"packages":1213,"attributes":1218,"classes":1220},"unitelabs\u002Fcdk\u002Fsubscriptions\u002F__init__.py",[1214,1215,1216,1217],"unitelabs.cdk.subscriptions.subject","unitelabs.cdk.subscriptions.publisher","unitelabs.cdk.subscriptions.subscription","unitelabs.cdk.subscriptions.default",[1219],"unitelabs.cdk.subscriptions.__all__",[762,763,764],{"type":766,"name":1219,"path":1212,"parent":747,"lines":1222,"value":1224},[1223,1223],5,[762,763,764],{"type":738,"name":1214,"path":1226,"parent":747,"attributes":1227,"classes":1232},"unitelabs\u002Fcdk\u002Fsubscriptions\u002Fsubject.py",[1228,1229,1230,1231],"unitelabs.cdk.subscriptions.subject.IN","unitelabs.cdk.subscriptions.subject.OUT","unitelabs.cdk.subscriptions.subject.T","unitelabs.cdk.subscriptions.subject.PipeFunction",[763],{"type":766,"name":1228,"path":1226,"parent":1214,"lines":1234,"value":1235},[787,787],"typing.TypeVar('IN')",{"type":766,"name":1229,"path":1226,"parent":1214,"lines":1237,"value":1239},[1238,1238],11,"typing.TypeVar('OUT', default=IN)",{"type":766,"name":1230,"path":1226,"parent":1214,"lines":1241,"value":1043},[1242,1242],12,{"type":766,"name":1231,"path":1226,"parent":1214,"lines":1244,"value":1246},[1245,1245],15,"typing.Callable[[IN], OUT]",{"type":848,"name":763,"path":1226,"parent":1214,"description":1248,"lines":1249,"bases":1251,"attributes":1263,"functions":1276,"mro":1291},"An observable that can be updated externally and subscribed to by multiple observers.",[768,1250],254,[1252,1260],{"annotation":1253},{"left":1254,"slice":1256},{"name":1255,"cls":797},"typing_extensions.Generic",{"elements":1257},[1258,1259],{"name":1228,"cls":797},{"name":1229,"cls":797},{"annotation":1261},{"name":1262,"cls":797},"contextlib.AbstractContextManager",[1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275],"unitelabs.cdk.subscriptions.subject.Subject._maxsize","unitelabs.cdk.subscriptions.subject.Subject._value","unitelabs.cdk.subscriptions.subject.Subject._total_subscribers","unitelabs.cdk.subscriptions.subject.Subject._subscribers","unitelabs.cdk.subscriptions.subject.Subject._children","unitelabs.cdk.subscriptions.subject.Subject._parent","unitelabs.cdk.subscriptions.subject.Subject._is_temporary","unitelabs.cdk.subscriptions.subject.Subject._context","unitelabs.cdk.subscriptions.subject.Subject._pipe","unitelabs.cdk.subscriptions.subject.Subject.current","unitelabs.cdk.subscriptions.subject.Subject.subscribers","unitelabs.cdk.subscriptions.subject.Subject.has_subscribers",[1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290],"unitelabs.cdk.subscriptions.subject.Subject.__init__","unitelabs.cdk.subscriptions.subject.Subject.__repr__","unitelabs.cdk.subscriptions.subject.Subject.subscribe","unitelabs.cdk.subscriptions.subject.Subject.on_subscribe","unitelabs.cdk.subscriptions.subject.Subject._on_subscribe","unitelabs.cdk.subscriptions.subject.Subject.unsubscribe","unitelabs.cdk.subscriptions.subject.Subject.on_unsubscribe","unitelabs.cdk.subscriptions.subject.Subject._on_unsubscribe","unitelabs.cdk.subscriptions.subject.Subject.notify","unitelabs.cdk.subscriptions.subject.Subject.update","unitelabs.cdk.subscriptions.subject.Subject.pipe","unitelabs.cdk.subscriptions.subject.Subject.filter","unitelabs.cdk.subscriptions.subject.Subject.__enter__","unitelabs.cdk.subscriptions.subject.Subject.__exit__",[763],{"type":766,"name":1272,"path":1226,"parent":763,"lines":1293,"value":1295,"annotation":1296},[1294,1294],42,"pipe or default_pipe",{"left":1297,"slice":1298},{"name":1231,"cls":797},{"elements":1299},[1300,1301],{"name":1228,"cls":797},{"name":1229,"cls":797},{"type":784,"name":1277,"path":1226,"parent":763,"lines":1303,"parameters":1304},[898,1294],[1305,1306,1311],{"name":882,"kind":794,"required":883},{"name":1307,"kind":794,"annotation":1308,"required":42,"default":1309,"description":1310},"maxsize",{"name":803,"cls":797},"0","The maximum number of messages to track in `Subscription` queues created by `subscribe`.",{"name":1312,"kind":794,"annotation":1313,"required":42,"default":820},"pipe",{"join":1314},[1315,820],{"left":1316,"slice":1317},{"name":1231,"cls":797},{"elements":1318},[1319,1320],{"name":1228,"cls":797},{"name":1229,"cls":797},{"type":784,"name":1322,"path":1226,"parent":1277,"lines":1323,"parameters":1326,"returns":1330},"unitelabs.cdk.subscriptions.subject.Subject.__init__.default_pipe",[1324,1325],39,40,[1327],{"name":1328,"kind":794,"annotation":1329,"required":883},"x",{"name":1228,"cls":797},{"description":807,"annotation":1331},{"name":1229,"cls":797},{"type":766,"name":1264,"path":1226,"parent":763,"lines":1333,"value":1307},[901,901],{"type":766,"name":1265,"path":1226,"parent":763,"lines":1335,"value":1337,"annotation":1338},[1336,1336],30,"_DEFAULT_VALUE",{"join":1339},[1340,1341],{"name":1229,"cls":797},{"name":1342,"cls":797},"unitelabs.cdk.subscriptions.default.Default",{"type":766,"name":1266,"path":1226,"parent":763,"lines":1344,"value":1309},[788,788],{"type":766,"name":1267,"path":1226,"parent":763,"lines":1346,"value":902,"annotation":1347},[909,909],{"left":1348,"slice":1349},{"name":905,"cls":797},{"left":1350,"slice":1351},{"name":764,"cls":797},{"name":1229,"cls":797},{"type":766,"name":1268,"path":1226,"parent":763,"lines":1353,"value":902,"annotation":1354},[912,912],{"left":1355,"slice":1356},{"name":905,"cls":797},{"left":1357,"slice":1358},{"name":763,"cls":797},{"elements":1359},[1360,1361],{"name":1229,"cls":797},{"name":1362,"cls":797},"typing_extensions.Any",{"type":766,"name":1269,"path":1226,"parent":763,"lines":1364,"value":820,"annotation":1365},[813,813],{"join":1366},[1367,820],{"name":763,"cls":797},{"type":766,"name":1270,"path":1226,"parent":763,"lines":1369,"value":1370},[773,773],"False",{"type":766,"name":1271,"path":1226,"parent":763,"lines":1372,"value":820,"annotation":1374},[1373,1373],37,{"join":1375},[1376,820],{"left":1377,"slice":1378},{"name":764,"cls":797},{"name":1229,"cls":797},{"type":784,"name":1278,"path":1226,"parent":763,"lines":1380,"parameters":1382,"returns":1384},[915,1381],49,[1383],{"name":882,"kind":794,"required":883},{"description":807,"annotation":1385},{"name":796,"cls":797},{"type":766,"name":1273,"path":1226,"parent":763,"description":1387,"lines":1388,"value":820,"annotation":1391},"The current value.",[1389,1390],52,54,{"join":1392},[1393,1394],{"name":1229,"cls":797},{"name":1342,"cls":797},{"type":766,"name":1274,"path":1226,"parent":763,"description":1396,"lines":1397,"value":820,"annotation":1400},"All `Subscription`s listening to this `Subject`.",[1398,1399],57,59,{"left":1401,"slice":1402},{"name":905,"cls":797},{"left":1403,"slice":1404},{"name":764,"cls":797},{"name":1229,"cls":797},{"type":766,"name":1275,"path":1226,"parent":763,"description":1406,"lines":1407,"value":820,"annotation":1410},"Whether any `Subject` listens to this `Subscription`.",[1408,1409],62,64,{"name":1003,"cls":797},{"type":784,"name":1279,"path":1226,"parent":763,"description":1412,"lines":1413,"parameters":1416,"returns":1418},"Add a `Subscription` that will be notified on `update`.",[1414,1415],66,74,[1417],{"name":882,"kind":794,"required":883},{"description":807,"annotation":1419},{"left":1420,"slice":1421},{"name":764,"cls":797},{"name":1229,"cls":797},{"type":784,"name":1280,"path":1226,"parent":763,"description":1423,"lines":1424,"parameters":1425},"Emit an event when the first subscription is added.\n\nOverride this method to start external listeners or resources\nwhen the first subscriber begins listening.",[920,1179],[1426],{"name":882,"kind":794,"required":883},{"type":784,"name":1281,"path":1226,"parent":763,"description":1428,"lines":1429,"parameters":1432},"Emit an event when `subscribe` is called.",[1430,1431],84,90,[1433,1434],{"name":882,"kind":794,"required":883},{"name":1435,"kind":794,"annotation":1436,"required":883},"subscription",{"name":764,"cls":797},{"type":784,"name":1282,"path":1226,"parent":763,"description":1438,"lines":1439,"parameters":1442},"Remove a `Subscription`.",[1440,1441],92,106,[1443,1444],{"name":882,"kind":794,"required":883},{"name":1445,"kind":794,"annotation":1446,"required":883},"subscriber",{"left":1447,"slice":1448},{"name":764,"cls":797},{"name":1362,"cls":797},{"type":784,"name":1283,"path":1226,"parent":763,"description":1450,"lines":1451,"parameters":1454},"Emit an event when the last subscription is removed.\n\nOverride this method to perform cleanup or release resources when\nthere are no active subscribers.",[1452,1453],108,114,[1455],{"name":882,"kind":794,"required":883},{"type":784,"name":1284,"path":1226,"parent":763,"description":1457,"lines":1458,"parameters":1460},"Emit an event when `unsubscribe` is called.",[1459,1113],116,[1461],{"name":882,"kind":794,"required":883},{"type":784,"name":1285,"path":1226,"parent":763,"description":1463,"lines":1464,"parameters":1467},"Propagate the current value to all listening `Subscription`s.",[1465,1466],126,134,[1468],{"name":882,"kind":794,"required":883},{"type":784,"name":1286,"path":1226,"parent":763,"description":1470,"lines":1471,"parameters":1474},"Update the current value and `notify` all listening `Subscription`s.",[1472,1473],136,140,[1475,1476],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":1478,"required":883},"value",{"name":1228,"cls":797},{"type":784,"name":1287,"path":1226,"parent":763,"description":1480,"lines":1481,"parameters":1482,"returns":1500,"examples":1508},"Create a new `Subject` with `func` added to the list of pipes that are applied to values recieved from `notify`.",[970,1008],[1483,1484,1496],{"name":882,"kind":794,"required":883},{"name":1485,"kind":794,"annotation":1486,"required":883,"description":1495},"func",{"left":1487,"slice":1489},{"name":1488,"cls":797},"typing_extensions.Callable",{"elements":1490},[1491,1494],{"elements":1492},[1493],{"name":1229,"cls":797},{"name":1230,"cls":797},"The callable that should be applied to all values seen by the new `Subject`.",{"name":1497,"kind":794,"annotation":1498,"required":42,"default":1370,"description":1499},"temporary",{"name":1003,"cls":797},"Whether or not the pipe should be pruned from its parent on `unsubscribe`.",{"description":1501,"annotation":1502},"A new `Subject` with the pipe function added.",{"left":1503,"slice":1504},{"name":763,"cls":797},{"elements":1505},[1506,1507],{"name":1229,"cls":797},{"name":1230,"cls":797},[1509,1512],{"description":1510,"code":1511},"Chain multiple pipe functions:",">>> def first_pipe(x: str) -> str:\n...     return x.upper()\n>>> def second_pipe(x: str) -> dict[str, str]:\n...     return {\"value\": x}\n>>> subject = Subject[str]()\n>>> piped = subject.pipe(first_pipe).pipe(second_pipe)\n>>> async for value in piped.subscribe():\n...     print(value)\nHere a `value` received from `piped.subscribe()` is equivalent to `second_pipe(first_pipe(x))`\nwhere `x` is the value received from `Subject.update`.",{"description":1513,"code":1514},"Create multiple subjects with different pipes that are simultaneously updated:",">>> subject = Subject[int]()\n>>> plus_one = subject.pipe(lambda x: x + 1)\n>>> times_two = subject.pipe(lambda x: x * 2)\n>>> subject.update(3)\n>>> await plus_one.get()  # 4\n>>> await times_two.get()  # 6",{"type":784,"name":1288,"path":1226,"parent":763,"description":1516,"lines":1517,"parameters":1519,"returns":1538,"examples":1546},"Create a new `Subject` that is only notified when the item passes the `predicate`.",[1023,1518],215,[1520,1521,1535],{"name":882,"kind":794,"required":883},{"name":1522,"kind":794,"annotation":1523,"required":883,"description":1534},"predicate",{"left":1524,"slice":1525},{"name":1488,"cls":797},{"elements":1526},[1527,1530],{"elements":1528},[1529],{"name":1229,"cls":797},{"join":1531},[1532,1533],{"name":1003,"cls":797},{"name":1362,"cls":797},"A filter predicate to apply.",{"name":1497,"kind":794,"annotation":1536,"required":42,"default":1370,"description":1537},{"name":1003,"cls":797},"Whether the not the filter should be pruned from its parent on `unsubscribe`.",{"description":1539,"annotation":1540},"A new `Subject` with the filter applied.",{"left":1541,"slice":1542},{"name":763,"cls":797},{"elements":1543},[1544,1545],{"name":1229,"cls":797},{"name":1229,"cls":797},[1547],{"description":1548,"code":1549},"Filter a subject",">>> subject = Subject[int]()\n>>> filtered = subject.filter(lambda x: x > 5)\n>>> async for value in filtered.subscribe():\n...     print(value)\nHere `filtered` only receives updates of numbers greater than 5.",{"type":784,"name":1289,"path":1226,"parent":763,"description":1551,"lines":1552,"decorators":1555,"parameters":1557,"returns":1559,"examples":1564},"Return a new `Subscription` upon entering the runtime context.",[1553,1554],217,241,[1556],"typing.override",[1558],{"name":882,"kind":794,"required":883},{"description":1560,"annotation":1561},"The newly created `Subscription`.",{"left":1562,"slice":1563},{"name":764,"cls":797},{"name":1229,"cls":797},[1565],{"description":1566,"code":1567},"Subscribe to `my_subject`:",">>> with my_subject as subscription:\n...     async for value in subscription:\n...         print(value)\nWhen leaving the runtime context, `subscription` is unsubscribed from `my_subject`.",{"type":784,"name":1290,"path":1226,"parent":763,"lines":1569,"decorators":1571,"parameters":1572,"returns":1593},[1570,1250],243,[1556],[1573,1574,1582,1587],{"name":882,"kind":794,"required":883},{"name":1575,"kind":794,"annotation":1576,"required":42,"default":820},"exc_type",{"join":1577},[1578,820],{"left":1579,"slice":1580},{"name":955,"cls":797},{"name":1581,"cls":797},"BaseException",{"name":1583,"kind":794,"annotation":1584,"required":42,"default":820},"exc_value",{"join":1585},[1586,820],{"name":1581,"cls":797},{"name":1588,"kind":794,"annotation":1589,"required":42,"default":820},"traceback",{"join":1590},[1591,820],{"name":1592,"cls":797},"types.TracebackType",{"description":807,"annotation":1594},{"name":1003,"cls":797},{"type":738,"name":1215,"path":1596,"parent":747,"classes":1597},"unitelabs\u002Fcdk\u002Fsubscriptions\u002Fpublisher.py",[762],{"type":848,"name":762,"path":1596,"parent":1215,"description":1599,"lines":1600,"bases":1602,"attributes":1617,"functions":1621,"examples":1629,"mro":1633},"An observable which updates itself by polling a data source.",[842,1601],83,[1603,1610],{"annotation":1604},{"left":1605,"slice":1606},{"name":1255,"cls":797},{"elements":1607},[1608,1609],{"name":1228,"cls":797},{"name":1229,"cls":797},{"annotation":1611},{"left":1612,"slice":1613},{"name":763,"cls":797},{"elements":1614},[1615,1616],{"name":1228,"cls":797},{"name":1229,"cls":797},[1618,1619,1620],"unitelabs.cdk.subscriptions.publisher.Publisher._update_task","unitelabs.cdk.subscriptions.publisher.Publisher._source","unitelabs.cdk.subscriptions.publisher.Publisher._interval",[1622,1623,1624,1625,1626,1627,1628],"unitelabs.cdk.subscriptions.publisher.Publisher.__init__","unitelabs.cdk.subscriptions.publisher.Publisher.on_subscribe","unitelabs.cdk.subscriptions.publisher.Publisher._on_subscribe","unitelabs.cdk.subscriptions.publisher.Publisher.on_unsubscribe","unitelabs.cdk.subscriptions.publisher.Publisher._set","unitelabs.cdk.subscriptions.publisher.Publisher._unset","unitelabs.cdk.subscriptions.publisher.Publisher.__self_update",[1630],{"description":1631,"code":1632},"Subscribe to a publisher which will call `method` every 2 seconds:",">>> publisher = Publisher[str](source=method, interval=2, maxsize=10)\n>>> async for state in publisher.subscribe():\n>>>     yield state",[762,763],{"type":784,"name":1622,"path":1596,"parent":762,"lines":1635,"parameters":1637},[788,1636],43,[1638,1639,1659,1665,1668],{"name":882,"kind":794,"required":883},{"name":1640,"kind":794,"annotation":1641,"required":883,"description":1658},"source",{"join":1642},[1643,1652],{"left":1644,"slice":1645},{"name":1488,"cls":797},{"elements":1646},[1647,1648],{},{"left":1649,"slice":1651},{"name":1650,"cls":797},"collections.abc.Awaitable",{"name":1228,"cls":797},{"left":1653,"slice":1654},{"name":1488,"cls":797},{"elements":1655},[1656,1657],{},{"name":1228,"cls":797},"A function or coroutine that will be called at a fixed interval as the data source of the subscription.",{"name":1660,"kind":794,"annotation":1661,"required":42,"default":1663,"description":1664},"interval",{"name":1662,"cls":797},"float","5","How many seconds to wait between polling calls to `source`.",{"name":1307,"kind":794,"annotation":1666,"required":42,"default":1309,"description":1667},{"name":803,"cls":797},"The maximum number of messages to track in the queue.",{"name":1312,"kind":794,"annotation":1669,"required":42,"default":820},{"join":1670},[1671,820],{"left":1672,"slice":1673},{"name":1231,"cls":797},{"elements":1674},[1675,1676],{"name":1228,"cls":797},{"name":1229,"cls":797},{"type":766,"name":1618,"path":1596,"parent":762,"lines":1678,"value":820,"annotation":1680},[1679,1679],41,{"join":1681},[1682,820],{"name":1683,"cls":797},"asyncio.Task",{"type":766,"name":1619,"path":1596,"parent":762,"lines":1685,"value":1640},[1294,1294],{"type":766,"name":1620,"path":1596,"parent":762,"lines":1687,"value":1660},[1636,1636],{"type":784,"name":1623,"path":1596,"parent":762,"lines":1689,"decorators":1692,"parameters":1693},[1690,1691],45,47,[1556],[1694],{"name":882,"kind":794,"required":883},{"type":784,"name":1624,"path":1596,"parent":762,"lines":1696,"decorators":1698,"parameters":1699},[1381,1697],53,[1556],[1700,1701],{"name":882,"kind":794,"required":883},{"name":1435,"kind":794,"annotation":1702,"required":883},{"name":764,"cls":797},{"type":784,"name":1625,"path":1596,"parent":762,"lines":1704,"decorators":1706,"parameters":1707},[1705,1398],55,[1556],[1708],{"name":882,"kind":794,"required":883},{"type":784,"name":1626,"path":1596,"parent":762,"description":1710,"lines":1711,"parameters":1712},"Create a background task to poll the data `source` and update the current value.\n\nTask will be destroyed when all subscriptions to the `Publisher` are removed.",[1399,1414],[1713],{"name":882,"kind":794,"required":883},{"type":784,"name":1627,"path":1596,"parent":762,"description":1715,"lines":1716,"parameters":1719},"Stop the background task that polls the data `source`.\n\nThis is called when all subscriptions to the `Publisher` are removed.",[1717,1718],68,77,[1720],{"name":882,"kind":794,"required":883},{"type":784,"name":1628,"path":1596,"parent":762,"lines":1722,"parameters":1724},[1723,1601],79,[1725],{"name":882,"kind":794,"required":883},{"type":738,"name":1216,"path":1727,"parent":747,"attributes":1728,"classes":1730},"unitelabs\u002Fcdk\u002Fsubscriptions\u002Fsubscription.py",[1729],"unitelabs.cdk.subscriptions.subscription.T",[764],{"type":766,"name":1729,"path":1727,"parent":1216,"lines":1732,"value":1043},[1169,1169],{"type":848,"name":764,"path":1727,"parent":1216,"description":1734,"lines":1735,"bases":1737,"attributes":1748,"functions":1753,"mro":1762},"An AsyncIterable you can asynchronously add items to.",[842,1736],110,[1738,1743],{"annotation":1739},{"left":1740,"slice":1742},{"name":1741,"cls":797},"asyncio.Queue",{"name":1729,"cls":797},{"annotation":1744},{"left":1745,"slice":1747},{"name":1746,"cls":797},"collections.abc.AsyncIterator",{"name":1729,"cls":797},[1749,1750,1751,1752],"unitelabs.cdk.subscriptions.subscription.Subscription._parent","unitelabs.cdk.subscriptions.subscription.Subscription._value","unitelabs.cdk.subscriptions.subscription.Subscription._closed","unitelabs.cdk.subscriptions.subscription.Subscription.size",[1754,1755,1756,1757,1758,1759,1760,1761],"unitelabs.cdk.subscriptions.subscription.Subscription.__init__","unitelabs.cdk.subscriptions.subscription.Subscription.__repr__","unitelabs.cdk.subscriptions.subscription.Subscription.update","unitelabs.cdk.subscriptions.subscription.Subscription.cancel","unitelabs.cdk.subscriptions.subscription.Subscription.terminate","unitelabs.cdk.subscriptions.subscription.Subscription.__aiter__","unitelabs.cdk.subscriptions.subscription.Subscription.__anext__","unitelabs.cdk.subscriptions.subscription.Subscription.get",[764],{"type":784,"name":1754,"path":1727,"parent":764,"lines":1764,"parameters":1765},[772,878],[1766,1767,1769],{"name":882,"kind":794,"required":883},{"name":1307,"kind":794,"annotation":1768,"required":883},{"name":803,"cls":797},{"name":1770,"kind":794,"annotation":1771,"required":883},"parent",{"name":763,"cls":797},{"type":766,"name":1749,"path":1727,"parent":764,"lines":1773,"value":1775,"annotation":1776},[1774,1774],22,"weakref.proxy(parent)",{"name":763,"cls":797},{"type":766,"name":1750,"path":1727,"parent":764,"lines":1778,"value":1779,"annotation":1780},[1053,1053],"typing.cast(T, _DEFAULT_VALUE)",{"join":1781},[1782,1783],{"name":1729,"cls":797},{"name":1342,"cls":797},{"type":766,"name":1751,"path":1727,"parent":764,"lines":1785,"value":895},[878,878],{"type":784,"name":1755,"path":1727,"parent":764,"lines":1787,"parameters":1788,"returns":1790},[1058,901],[1789],{"name":882,"kind":794,"required":883},{"description":807,"annotation":1791},{"name":796,"cls":797},{"type":766,"name":1752,"path":1727,"parent":764,"description":1793,"lines":1794,"value":820,"annotation":1795},"The number of items in the queue.",[788,813],{"name":803,"cls":797},{"type":784,"name":1756,"path":1727,"parent":764,"description":1797,"lines":1798,"parameters":1799},"Update the current value, if `value` is not current value.",[1373,1294],[1800,1801],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":1802,"required":883},{"name":1729,"cls":797},{"type":784,"name":1757,"path":1727,"parent":764,"description":1804,"lines":1805,"parameters":1806},"Cancel the subscription.",[915,1691],[1807],{"name":882,"kind":794,"required":883},{"type":784,"name":1758,"path":1727,"parent":764,"description":1809,"lines":1810,"parameters":1811},"Unsubscribe the subscription from its parent.",[1381,1389],[1812],{"name":882,"kind":794,"required":883},{"type":784,"name":1759,"path":1727,"parent":764,"lines":1814,"parameters":1815,"returns":1817},[1390,1705],[1816],{"name":882,"kind":794,"required":883},{"description":807,"annotation":1818},{"left":1819,"slice":1820},{"name":1746,"cls":797},{"name":1729,"cls":797},{"type":784,"name":1760,"path":1727,"parent":764,"lines":1822,"parameters":1823,"returns":1825},[1398,1723],[1824],{"name":882,"kind":794,"required":883},{"description":807,"annotation":1826},{"name":1729,"cls":797},{"type":784,"name":1761,"path":1727,"parent":764,"description":1828,"lines":1829,"parameters":1831,"returns":1848,"throws":1850},"Request an upcoming value that satisfies the `predicate`.\n\nIf used without `timeout` this will block indefinitely until a value satisfies the `predicate`.",[1830,1736],81,[1832,1833,1842],{"name":882,"kind":794,"required":883},{"name":1522,"kind":794,"annotation":1834,"required":42,"description":1534},{"left":1835,"slice":1836},{"name":1488,"cls":797},{"elements":1837},[1838,1841],{"elements":1839},[1840],{"name":1729,"cls":797},{"name":1003,"cls":797},{"name":1843,"kind":794,"annotation":1844,"required":42,"default":820,"description":1847},"timeout",{"join":1845},[1846,820],{"name":1662,"cls":797},"How many seconds to wait for new value before timing out.",{"description":807,"annotation":1849},{"name":1729,"cls":797},[1851],{"description":1852,"annotation":1853},"If the `timeout` is exceeded.",{"name":1854,"cls":797},"TimeoutError",{"type":738,"name":1217,"path":1856,"parent":747,"attributes":1857,"classes":1859},"unitelabs\u002Fcdk\u002Fsubscriptions\u002Fdefault.py",[1858],"unitelabs.cdk.subscriptions.default._DEFAULT_VALUE",[1342],{"type":848,"name":1342,"path":1856,"parent":1217,"description":1861,"lines":1862,"bases":1865,"attributes":1869,"mro":1871},"A sentinel value used to indicate that a `Subject`, `Publisher`, or `Subscription` has not been updated yet.",[1863,1864],4,7,[1866],{"annotation":1867},{"name":1868,"cls":797},"enum.Enum",[1870],"unitelabs.cdk.subscriptions.default.Default.token",[1342],{"type":766,"name":1870,"path":1856,"parent":1342,"lines":1873,"value":1309},[1864,1864],{"type":766,"name":1858,"path":1856,"parent":1217,"lines":1875,"value":1876},[787,787],"Default.token",{"type":738,"name":748,"path":1878,"parent":739,"packages":1879,"attributes":1886,"classes":1888},"unitelabs\u002Fcdk\u002Fcli\u002F__init__.py",[1880,1881,1882,1883,1884,1885],"unitelabs.cdk.cli.certificate","unitelabs.cdk.cli.config","unitelabs.cdk.cli.connector","unitelabs.cdk.cli.dev","unitelabs.cdk.cli.sync","unitelabs.cdk.cli.start",[1887],"unitelabs.cdk.cli.__all__",[1889],"unitelabs.cdk.cli.start.TLSConfigurationError",{"type":738,"name":1880,"path":1891,"parent":748,"classes":1892,"functions":1894},"unitelabs\u002Fcdk\u002Fcli\u002Fcertificate.py",[1893],"unitelabs.cdk.cli.certificate.MutuallyExclusiveOptions",[1895,1896],"unitelabs.cdk.cli.certificate.certificate","unitelabs.cdk.cli.certificate.generate",{"type":848,"name":1893,"path":1891,"parent":1880,"description":1898,"lines":1899,"bases":1901,"mro":1905},"Two mutually exclusive options were used together.",[1900,787],9,[1902],{"annotation":1903},{"name":1904,"cls":797},"Exception",[1893],{"type":784,"name":1895,"path":1891,"parent":1880,"description":1907,"lines":1908,"decorators":1909},"Handle certificates for TLS encryption.",[1169,1245],[1910],"click.group()",{"type":784,"name":1896,"path":1891,"parent":1880,"description":1912,"lines":1913,"decorators":1914,"parameters":1922},"Generate a new self-signed certificate according to the SiLA 2 specification.\n\nCreate a certificate with provided UUID and host.\n```certificate generate --uuid \u003CUUID> --host \u003Chost name>```\n\nCreate a certificate using the UUID and host from the provided config file.\n```certificate generate --config-path \u003Cpath to config>```\n\nCreate a certificate from a config file and update the config to enable TLS encryption.\n```certificate generate --config-path \u003Cpath to config> -y```\n\nEmbed the generated certificate and key into the config file rather than writing to files on disk.\n```certificate generate --config-path \u003Cpath to config> --embed```\n\nThe option `--config-path` cannot be used in combination with either `--host` or `--uuid`.\nThe option `--target` cannot be used in combination with `--embed`.\n\nIf no `config-path`, `uuid`, or `host` is provided, searches the default config file locations:\n`.\u002Fconfig.json`, `.\u002Fconfig.yaml`, and `.\u002Fconfig.yml` for an existing config file.\nIf no config file is found in any of the default locations, a `FileNotFoundError` is raised.",[768,980],[1915,1916,1917,1918,1919,1920,1921],"certificate.command()","click.option('-cfg', '--config-path', type=(click.Path(path_type=(pathlib.Path), exists=True)), default=None, required=False, help='The path to the configuration file which contains the UUID and host for the generated certificate, defaults to .\u002Fconfig.json if uuid and host not provided.')","click.option('--uuid', type=str, required=False, help=\"The SiLA server's uuid.\")","click.option('--host', type=str, required=False, help=\"The SiLA server's host address.\")","click.option('--target', '-t', type=str, help='The output directory in which to store the certificate files.')","click.option('--embed', '-e', type=bool, is_flag=True, default=False, help=\"Whether or not to embed the certificate and key into the config file. Mutually exclusive with usage of '--target'.Implies --non-interactive.\")","click.option('--non-interactive', '-y', type=bool, is_flag=True, default=False, help=\"When using the `--config-path` option: suppress the input prompt and automatically update the config file's TLS values.\")",[1923,1928,1933,1938,1943,1946],{"name":1924,"kind":794,"annotation":1925,"required":883},"config_path",{"join":1926},[1927,820],{"name":822,"cls":797},{"name":1929,"kind":794,"annotation":1930,"required":883},"uuid",{"join":1931},[1932,820],{"name":796,"cls":797},{"name":1934,"kind":794,"annotation":1935,"required":883},"host",{"join":1936},[1937,820],{"name":796,"cls":797},{"name":1939,"kind":794,"annotation":1940,"required":883},"target",{"join":1941},[1942,820],{"name":796,"cls":797},{"name":1944,"kind":794,"annotation":1945,"required":883},"embed",{"name":1003,"cls":797},{"name":1947,"kind":794,"annotation":1948,"required":883},"non_interactive",{"name":1003,"cls":797},{"type":738,"name":1881,"path":1950,"parent":748,"packages":1951,"functions":1952},"unitelabs\u002Fcdk\u002Fcli\u002Fconfig.py",[746],[1953,1954,1955,1956],"unitelabs.cdk.cli.config.config","unitelabs.cdk.cli.config.schema","unitelabs.cdk.cli.config.show","unitelabs.cdk.cli.config.create",{"type":784,"name":1953,"path":1950,"parent":1881,"description":1958,"lines":1959,"decorators":1960,"returns":1962},"Configure a connector.",[1238,1169],[1961],"click.group(context_settings=(dict(show_default=True)))",{"description":807,"annotation":1963},{"name":1964,"cls":797},"click.Group",{"type":784,"name":1954,"path":1950,"parent":1881,"description":1966,"lines":1967,"decorators":1969,"parameters":1974},"Create a configuration jsonschema.",[842,1968],50,[1970,1971,1972,1973],"config.command()","click.option('--app', type=str, metavar='IMPORT', default=(utils.find_factory), show_default=False, help=\"The application factory function to load, in the form 'module:name'.\", envvar='UNITELABS_CDK_APP')","click.option('-p', '--path', type=(click.Path(exists=False, dir_okay=False, writable=True, resolve_path=True, path_type=(pathlib.Path))), default=None, required=False, help='Path to the configuration schema file.')","utils.coroutine",[1975,1976],{"name":1062,"kind":794,"required":883},{"name":1977,"kind":794,"annotation":1978,"required":883},"path",{"join":1979},[1980,820],{"name":822,"cls":797},{"type":784,"name":1955,"path":1950,"parent":1881,"description":1982,"lines":1983,"decorators":1984,"parameters":1986},"Visualize the configuration options.",[1697,934],[1970,1971,1985,1973],"click.option('-o', '--output', type=str, required=False, help='The name of the field in the schema to output information about, otherwise the entire schema is shown.')",[1987,1988],{"name":1062,"kind":794,"required":883},{"name":1989,"kind":794,"annotation":1990,"required":42,"default":820},"output",{"join":1991},[1992,820],{"name":796,"cls":797},{"type":784,"name":1956,"path":1950,"parent":1881,"description":1994,"lines":1995,"decorators":1996,"parameters":1999},"Create a configuration file.",[1079,970],[1970,1971,1997,1998,1973],"click.option('--path', type=(click.Path(exists=False, dir_okay=False, writable=True, resolve_path=True, path_type=(pathlib.Path))), default=(pathlib.Path('.\u002Fconfig.json')), help='Path to the configuration file.')","click.option('--force', '-f', is_flag=True, default=False, help='Whether to override an existing configuration file.')",[2000,2002,2004],{"name":1062,"kind":794,"annotation":2001,"required":883},{"name":796,"cls":797},{"name":1977,"kind":794,"annotation":2003,"required":883},{"name":822,"cls":797},{"name":2005,"kind":794,"annotation":2006,"required":883},"force",{"name":1003,"cls":797},{"type":738,"name":1882,"path":2008,"parent":748,"attributes":2009,"functions":2011},"unitelabs\u002Fcdk\u002Fcli\u002Fconnector.py",[2010],"unitelabs.cdk.cli.connector.CONTEXT_SETTINGS",[2012],"unitelabs.cdk.cli.connector.connector",{"type":766,"name":2010,"path":2008,"parent":1882,"lines":2014,"value":2016},[2015,2015],8,"dict(show_default=True)",{"type":784,"name":2012,"path":2008,"parent":1882,"description":2018,"lines":2019,"decorators":2020,"returns":2022},"Connector commands.",[1238,1042],[2021],"click.group(context_settings=CONTEXT_SETTINGS)",{"description":807,"annotation":2023},{"name":1964,"cls":797},{"type":766,"name":1887,"path":1878,"parent":748,"lines":2025,"value":2027},[2026,1238],6,[1889],{"type":738,"name":1883,"path":2029,"parent":748,"packages":2030,"classes":2031,"functions":2033},"unitelabs\u002Fcdk\u002Fcli\u002Fdev.py",[746],[2032],"unitelabs.cdk.cli.dev.TLSConfigurationError",[2034,2035],"unitelabs.cdk.cli.dev.dev","unitelabs.cdk.cli.dev.process",{"type":848,"name":2032,"path":2029,"parent":1883,"description":2037,"lines":2038,"bases":2039,"mro":2042},"TLS Configuration is invalid.",[1042,1245],[2040],{"annotation":2041},{"name":1904,"cls":797},[2032],{"type":784,"name":2034,"path":2029,"parent":1883,"description":2044,"lines":2045,"decorators":2046,"parameters":2050},"Application Entrypoint.",[768,919],[2047,1971,2048,2049,1973],"click.command()","click.option('-cfg', '--config-path', type=(click.Path(path_type=(pathlib.Path))), default=None, help='Path to the configuration file.')","click.option('-v', '--verbose', count=True, help='Increase the verbosity of the default logger. Use a custom log-config for fine grained handling.')",[2051,2053,2057],{"name":1062,"kind":794,"annotation":2052,"required":883},{"name":796,"cls":797},{"name":1924,"kind":794,"annotation":2054,"required":883},{"join":2055},[2056,820],{"name":822,"cls":797},{"name":2058,"kind":794,"annotation":2059,"required":883},"verbose",{"name":803,"cls":797},{"type":784,"name":2035,"path":2029,"parent":1883,"description":2061,"lines":2062,"parameters":2063},"Run the connector in a separate process.",[814,1723],[2064,2066,2070,2075],{"name":1062,"kind":794,"annotation":2065,"required":883},{"name":796,"cls":797},{"name":1924,"kind":794,"annotation":2067,"required":883},{"join":2068},[2069,820],{"name":822,"cls":797},{"name":817,"kind":794,"annotation":2071,"required":883},{"join":2072},[2073,820],{"name":2074,"cls":797},"unitelabs.cdk.config.config.SerializableDict",{"name":2058,"kind":794,"annotation":2076,"required":883},{"name":803,"cls":797},{"type":738,"name":1884,"path":2078,"parent":748,"attributes":2079,"classes":2081,"functions":2084},"unitelabs\u002Fcdk\u002Fcli\u002Fsync.py",[2080],"unitelabs.cdk.cli.sync.DEFAULT_BRANCH",[2082,2083],"unitelabs.cdk.cli.sync.CruftNotConfigured","unitelabs.cdk.cli.sync.CiCdNotConfigured",[2085,2086,2087],"unitelabs.cdk.cli.sync.sync","unitelabs.cdk.cli.sync.cruft_check","unitelabs.cdk.cli.sync.push_to_gitlab",{"type":766,"name":2080,"path":2078,"parent":1884,"lines":2089,"value":2090},[1864,1864],"'chore\u002Fcruft-update'",{"type":848,"name":2082,"path":2078,"parent":1884,"description":2092,"lines":2093,"bases":2094,"functions":2097,"mro":2099},"Cruft is not configured.",[787,1245],[2095],{"annotation":2096},{"name":1904,"cls":797},[2098],"unitelabs.cdk.cli.sync.CruftNotConfigured.__init__",[2082],{"type":784,"name":2098,"path":2078,"parent":2082,"lines":2101,"parameters":2102},[1169,1245],[2103],{"name":882,"kind":794,"required":883},{"type":848,"name":2083,"path":2078,"parent":1884,"description":2105,"lines":2106,"bases":2107,"mro":2110},"CI\u002FCD required environment variables are not present.",[768,772],[2108],{"annotation":2109},{"name":1904,"cls":797},[2083],{"type":784,"name":2085,"path":2078,"parent":1884,"description":2112,"lines":2113,"decorators":2114,"parameters":2120},"Update the current connector boilerplate.\n\nCheck for changes to the connector-factory template and apply using `cruft update`.\n\nIn GitLab CI\u002FCD REPO_API_URL should follow the form \"${CI_API_V4_URL}\u002Fprojects\u002F${CI_PROJECT_ID}\"",[1774,1186],[2115,2116,2117,2118,2119,2047],"click.option('--repo-url', envvar='REPO_API_URL', show_envvar=True, help='The git api url for the connector to be updated.')","click.option('--token', envvar='CRUFT_BOT_TOKEN', show_envvar=True, help='A git access token with API and write_repository permissions.')","click.option('--branch', default=DEFAULT_BRANCH, type=str, required=False, help='Explicitly name the git branch. If running without `--ci`, this will create a new branch and switch to it.')","click.option('--ci', is_flag=True, default=False, help='Run the sync as part of CI\u002FCD. This creates an MR with the changes in the specified branch.')","click.option('--dry-run', is_flag=True, default=False, help='Show the changes that would be applied, without applying them.')",[2121,2124,2127,2130,2133],{"name":2122,"kind":794,"annotation":2123,"required":883},"repo_url",{"name":796,"cls":797},{"name":2125,"kind":794,"annotation":2126,"required":883},"token",{"name":796,"cls":797},{"name":2128,"kind":794,"annotation":2129,"required":883},"branch",{"name":796,"cls":797},{"name":2131,"kind":794,"annotation":2132,"required":883},"ci",{"name":1003,"cls":797},{"name":2134,"kind":794,"annotation":2135,"required":883},"dry_run",{"name":1003,"cls":797},{"type":784,"name":2086,"path":2078,"parent":1884,"description":2137,"lines":2138,"returns":2140,"throws":2143},"Run `cruft check` to see if there are any updates to apply.",[1431,2139],117,{"description":2141,"annotation":2142},"Whether or not there are changes to the cruft template that can be applied.",{"name":1003,"cls":797},[2144],{"description":2145,"annotation":2146},"If no `.cruft.json` file can be found.",{"name":2147,"cls":797},"NotConfigured",{"type":784,"name":2087,"path":2078,"parent":1884,"description":2149,"lines":2150,"parameters":2153},"Commit and push changes, and create an MR on git.",[2151,2152],120,143,[2154,2156,2158],{"name":2128,"kind":794,"annotation":2155,"required":883},{"name":796,"cls":797},{"name":2122,"kind":794,"annotation":2157,"required":883},{"name":796,"cls":797},{"name":2159,"kind":794,"annotation":2160,"required":883},"auth",{"name":796,"cls":797},{"type":738,"name":1885,"path":2162,"parent":748,"packages":2163,"classes":2164,"functions":2165},"unitelabs\u002Fcdk\u002Fcli\u002Fstart.py",[746],[1889],[2166],"unitelabs.cdk.cli.start.start",{"type":848,"name":1889,"path":2162,"parent":1885,"description":2037,"lines":2168,"bases":2169,"mro":2172},[1169,1042],[2170],{"annotation":2171},{"name":1904,"cls":797},[1889],{"type":784,"name":2166,"path":2162,"parent":1885,"description":2044,"lines":2174,"decorators":2175,"parameters":2178},[1046,1390],[2047,1971,2176,2177,1973],"click.option('-cfg', '--config-path', type=(click.Path(path_type=(pathlib.Path))), default=(pathlib.Path('.\u002Fconfig.json')), help='Path to the configuration file.')","click.option('-v', '--verbose', count=True, help=\"Increase the verbosity of the default logger. Use a custom log-config for fine grained handling.When used together with a log-config, this will override the root logger's level.\")",[2179,2180,2182],{"name":1062,"kind":794,"required":883},{"name":1924,"kind":794,"annotation":2181,"required":883},{"name":822,"cls":797},{"name":2058,"kind":794,"annotation":2183,"required":883},{"name":803,"cls":797},{"type":738,"name":749,"path":2185,"parent":739,"packages":2186},"unitelabs\u002Fcdk\u002Ffeatures\u002F__init__.py",[2187,2188,2189,2190,2191],"unitelabs.cdk.features.examples","unitelabs.cdk.features.test","unitelabs.cdk.features.robot","unitelabs.cdk.features.weighing","unitelabs.cdk.features.core",{"type":738,"name":2187,"path":2193,"parent":749,"packages":2194},"unitelabs\u002Fcdk\u002Ffeatures\u002Fexamples\u002F__init__.py",[2195,2196],"unitelabs.cdk.features.examples.greeting_provider","unitelabs.cdk.features.examples.temperature_controller",{"type":738,"name":2195,"path":2198,"parent":2187,"packages":2199,"attributes":2201,"classes":2203},"unitelabs\u002Fcdk\u002Ffeatures\u002Fexamples\u002Fgreeting_provider\u002F__init__.py",[2200],"unitelabs.cdk.features.examples.greeting_provider.greeting_provider",[2202],"unitelabs.cdk.features.examples.greeting_provider.__all__",[2204],"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider",{"type":766,"name":2202,"path":2198,"parent":2195,"lines":2206,"value":2208},[2207,2207],3,[2204],{"type":738,"name":2200,"path":2210,"parent":2195,"packages":2211,"classes":2212},"unitelabs\u002Fcdk\u002Ffeatures\u002Fexamples\u002Fgreeting_provider\u002Fgreeting_provider.py",[750],[2204],{"type":848,"name":2204,"path":2210,"parent":2200,"description":2214,"lines":2215,"bases":2216,"attributes":2219,"functions":2221,"mro":2225},"Example implementation of a minimum Feature.\n\nProvides a Greeting to the Client and a StartYear property, informing about the year the Server has been started.",[2026,1679],[2217],{"annotation":2218},{"name":975,"cls":797},[2220],"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider._start_year",[2222,2223,2224],"unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider.__init__","unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider.say_hello","unitelabs.cdk.features.examples.greeting_provider.greeting_provider.GreetingProvider.start_year",[2204,975,2226,2227],"sila.framework.common.feature.Feature","sila.framework.fdl.serializable.Serializable",{"type":784,"name":2222,"path":2210,"parent":2204,"lines":2229,"parameters":2230},[1169,851],[2231],{"name":882,"kind":794,"required":883},{"type":766,"name":2220,"path":2210,"parent":2204,"lines":2233,"value":2234},[851,851],"datetime.datetime.now().year",{"type":784,"name":2223,"path":2210,"parent":2204,"description":2236,"lines":2237,"decorators":2238,"parameters":2240,"returns":2245},"Say \"Hello SiLA 2 + [Name]\" to the client.",[1053,813],[2239],"sila.UnobservableCommand()",[2241,2242],{"name":882,"kind":794,"required":883},{"name":793,"kind":794,"annotation":2243,"required":883,"description":2244},{"name":796,"cls":797},"The name, SayHello shall use to greet",{"description":2246,"annotation":2247},"The greeting string, returned to the SiLA Client.",{"name":796,"cls":797},{"type":784,"name":2224,"path":2210,"parent":2204,"description":2249,"lines":2250,"decorators":2251,"parameters":2253,"returns":2255},"Get the year the SiLA Server has been started in.",[1373,1679],[2252],"sila.UnobservableProperty()",[2254],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2256},{"name":803,"cls":797},{"type":738,"name":2196,"path":2258,"parent":2187,"packages":2259,"attributes":2261,"classes":2263},"unitelabs\u002Fcdk\u002Ffeatures\u002Fexamples\u002Ftemperature_controller\u002F__init__.py",[2260],"unitelabs.cdk.features.examples.temperature_controller.temperature_controller",[2262],"unitelabs.cdk.features.examples.temperature_controller.__all__",[2264],"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController",{"type":766,"name":2262,"path":2258,"parent":2196,"lines":2266,"value":2267},[2207,2207],[2264],{"type":738,"name":2260,"path":2269,"parent":2196,"packages":2270,"attributes":2271,"classes":2273},"unitelabs\u002Fcdk\u002Ffeatures\u002Fexamples\u002Ftemperature_controller\u002Ftemperature_controller.py",[750,747],[2272],"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.KELVIN",[2274,2275,2264],"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureNotReachable","unitelabs.cdk.features.examples.temperature_controller.temperature_controller.ControlInterrupted",{"type":766,"name":2272,"path":2269,"parent":2260,"lines":2277,"value":2278},[1864,1864],"sila.constraints.Unit(label='K', components=[sila.constraints.UnitComponent(unit='Kelvin')])",{"type":848,"name":2274,"path":2269,"parent":2260,"description":2280,"lines":2281,"bases":2282,"mro":2285},"The ambient conditions prohibit the device from reaching the target temperature.",[787,1238],[2283],{"annotation":2284},{"name":1904,"cls":797},[2274],{"type":848,"name":2275,"path":2269,"parent":2260,"description":2287,"lines":2288,"bases":2289,"mro":2292},"The control of temperature could not be finished as it has been interrupted by another 'Control Temperature' command.",[1042,1245],[2290],{"annotation":2291},{"name":1904,"cls":797},[2275],{"type":848,"name":2264,"path":2269,"parent":2260,"description":2294,"lines":2295,"bases":2297,"attributes":2300,"functions":2304,"mro":2309},"This is a simple example of a generic Feature for controlling and retrieving the temperature.\n\nA new target temperature can be set anytime with the 'Control Temperature' Command.\nThe temperature range has been limited to prevent major damages of a device.\nIn case the first target temperature has not been reached, a ControlInterrupted Error should be thrown.",[768,2296],75,[2298],{"annotation":2299},{"name":975,"cls":797},[2301,2302,2303],"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.current_temperature","unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.target_temperature","unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.source",[2305,2306,2307,2308],"unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.__init__","unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController._change_temperature","unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.subscribe_current_temperature","unitelabs.cdk.features.examples.temperature_controller.temperature_controller.TemperatureController.control_temperature",[2264,975,2226,2227],{"type":784,"name":2305,"path":2269,"parent":2264,"lines":2311,"parameters":2312},[894,1373],[2313],{"name":882,"kind":794,"required":883},{"type":766,"name":2301,"path":2269,"parent":2264,"lines":2315,"value":2316},[813,813],"21.0",{"type":766,"name":2302,"path":2269,"parent":2264,"lines":2318,"value":2319},[773,773],"self.current_temperature",{"type":766,"name":2303,"path":2269,"parent":2264,"lines":2321,"value":2322},[1373,1373],"subscriptions.Publisher(source=(self._change_temperature), interval=1)",{"type":784,"name":2306,"path":2269,"parent":2264,"lines":2324,"parameters":2325,"returns":2327},[1324,1325],[2326],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2328},{"name":1662,"cls":797},{"type":784,"name":2307,"path":2269,"parent":2264,"description":2330,"lines":2331,"decorators":2333,"parameters":2335,"returns":2337},"Subscribe the current temperature as measured by the controller.",[1294,2332],46,[2334],"sila.ObservableProperty()",[2336],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2338},{"left":2339,"slice":2341},{"name":2340,"cls":797},"unitelabs.cdk.sila.property.observable_property.Stream",{"left":2342,"slice":2344},{"name":2343,"cls":797},"typing_extensions.Annotated",{"elements":2345},[2346,2347],{"name":1662,"cls":797},{"name":2272,"cls":797},{"type":784,"name":2308,"path":2269,"parent":2264,"description":2349,"lines":2350,"decorators":2352,"parameters":2354,"throws":2371},"Control the temperature gradually to a set target.\n\nIt is RECOMMENDED to use an oscillation free control system.",[2351,2296],48,[2353],"sila.ObservableCommand()",[2355,2356,2366],{"name":882,"kind":794,"required":883},{"name":2357,"kind":794,"annotation":2358,"required":883},"target_temperature",{"left":2359,"slice":2360},{"name":2343,"cls":797},{"elements":2361},[2362,2363,2364,2365],{"name":1662,"cls":797},{"name":2272,"cls":797},{},{},{"name":2367,"kind":2368,"annotation":2369,"required":883},"status","keyword-only",{"name":2370,"cls":797},"unitelabs.cdk.sila.command.status.Status",[2372,2375],{"description":2373,"annotation":2374},"The ambient conditions prohibit the\ndevice from reaching the target temperature.",{"name":2274,"cls":797},{"description":2376,"annotation":2377},"The control of temperature could not be\nfinished as it has been interrupted by another 'Control\nTemperature' command.",{"name":2275,"cls":797},{"type":738,"name":2188,"path":2379,"parent":749,"packages":2380},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002F__init__.py",[2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393],"unitelabs.cdk.features.test.unobservable_property_test","unitelabs.cdk.features.test.structure_data_type_test","unitelabs.cdk.features.test.list_data_type_test","unitelabs.cdk.features.test.any_type_test","unitelabs.cdk.features.test.basic_data_types_test","unitelabs.cdk.features.test.metadata_provider","unitelabs.cdk.features.test.metadata_consumer_test","unitelabs.cdk.features.test.observable_property_test","unitelabs.cdk.features.test.error_handling_test","unitelabs.cdk.features.test.authentication_test","unitelabs.cdk.features.test.observable_command_test","unitelabs.cdk.features.test.binary_transfer_test","unitelabs.cdk.features.test.unobservable_command_test",{"type":738,"name":2381,"path":2395,"parent":2188,"packages":2396,"attributes":2398,"classes":2400},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Funobservable_property_test\u002F__init__.py",[2397],"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test",[2399],"unitelabs.cdk.features.test.unobservable_property_test.__all__",[2401],"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest",{"type":766,"name":2399,"path":2395,"parent":2381,"lines":2403,"value":2404},[2207,2207],[2401],{"type":738,"name":2397,"path":2406,"parent":2381,"packages":2407,"classes":2408},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Funobservable_property_test\u002Funobservable_property_test.py",[750],[2401],{"type":848,"name":2401,"path":2406,"parent":2397,"description":2410,"lines":2411,"bases":2412,"functions":2415,"mro":2419},"This feature tests a static and a dynamic unobservable property.",[2015,878],[2413],{"annotation":2414},{"name":975,"cls":797},[2416,2417,2418],"unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest.__init__","unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest.get_answer_to_everything","unitelabs.cdk.features.test.unobservable_property_test.unobservable_property_test.UnobservablePropertyTest.get_seconds_since_1970",[2401,975,2226,2227],{"type":784,"name":2416,"path":2406,"parent":2401,"lines":2421,"parameters":2422},[1238,1242],[2423],{"name":882,"kind":794,"required":883},{"type":784,"name":2417,"path":2406,"parent":2401,"description":2425,"lines":2426,"decorators":2427,"parameters":2428,"returns":2430},"Returns the answer to the ultimate question of life, the universe, and everything. 42.",[1042,768],[2252],[2429],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2431},{"name":803,"cls":797},{"type":784,"name":2418,"path":2406,"parent":2401,"description":2433,"lines":2434,"decorators":2435,"parameters":2436,"returns":2438},"Returns the unix timestamp: The time in seconds since January 1st of 1970.",[1052,878],[2252],[2437],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2439},{"name":803,"cls":797},{"type":738,"name":2382,"path":2441,"parent":2188,"packages":2442,"attributes":2444,"classes":2446},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fstructure_data_type_test\u002F__init__.py",[2443],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test",[2445],"unitelabs.cdk.features.test.structure_data_type_test.__all__",[2447,2448,2449],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure",{"type":766,"name":2445,"path":2441,"parent":2382,"lines":2451,"value":2452},[2207,2207],[2447,2448,2449],{"type":738,"name":2443,"path":2454,"parent":2382,"packages":2455,"classes":2456},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fstructure_data_type_test\u002Fstructure_data_type_test.py",[750],[2449,2457,2458,2447,2448],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure",{"type":848,"name":2449,"path":2454,"parent":2443,"description":2460,"lines":2461,"decorators":2462,"bases":2464,"attributes":2468,"functions":2478,"mro":2480},"An example Structure data type containing all SiLA basic types.",[2015,909],[2463],"dataclasses.dataclass",[2465],{"annotation":2466},{"name":2467,"cls":797},"unitelabs.cdk.sila.data_types.custom_data_type.CustomDataType",[2469,2470,2471,2472,2473,2474,2475,2476,2477],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.string_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.integer_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.real_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.boolean_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.binary_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.date_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.time_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.timestamp_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.any_type_value",[2479],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.TestStructure.__init__",[2449,2467,2481],"unitelabs.cdk.sila.common.dataclass.Dataclass",{"type":766,"name":2469,"path":2454,"parent":2449,"lines":2483,"value":820,"annotation":2484},[890,890],{"name":796,"cls":797},{"type":766,"name":2470,"path":2454,"parent":2449,"lines":2486,"value":820,"annotation":2487},[1058,1058],{"name":803,"cls":797},{"type":766,"name":2471,"path":2454,"parent":2449,"lines":2489,"value":820,"annotation":2490},[894,894],{"name":1662,"cls":797},{"type":766,"name":2472,"path":2454,"parent":2449,"lines":2492,"value":820,"annotation":2493},[898,898],{"name":1003,"cls":797},{"type":766,"name":2473,"path":2454,"parent":2449,"lines":2495,"value":820,"annotation":2496},[901,901],{"name":2497,"cls":797},"bytes",{"type":766,"name":2474,"path":2454,"parent":2449,"lines":2499,"value":820,"annotation":2500},[1336,1336],{"name":2501,"cls":797},"sila.datetime.date",{"type":766,"name":2475,"path":2454,"parent":2449,"lines":2503,"value":820,"annotation":2505},[2504,2504],31,{"name":2506,"cls":797},"unitelabs.cdk.sila.datetime.time",{"type":766,"name":2476,"path":2454,"parent":2449,"lines":2508,"value":820,"annotation":2509},[788,788],{"name":2510,"cls":797},"unitelabs.cdk.sila.datetime.datetime",{"type":766,"name":2477,"path":2454,"parent":2449,"lines":2512,"value":820,"annotation":2513},[909,909],{"name":2514,"cls":797},"unitelabs.cdk.sila.Any",{"type":784,"name":2479,"path":2454,"parent":2449,"lines":2516,"parameters":2518},[2517,2517],0,[2519,2520,2523,2526,2529,2532,2535,2538,2541,2544],{"name":882,"kind":794,"required":883},{"name":2521,"kind":794,"annotation":2522,"required":883},"string_type_value",{"name":796,"cls":797},{"name":2524,"kind":794,"annotation":2525,"required":883},"integer_type_value",{"name":803,"cls":797},{"name":2527,"kind":794,"annotation":2528,"required":883},"real_type_value",{"name":1662,"cls":797},{"name":2530,"kind":794,"annotation":2531,"required":883},"boolean_type_value",{"name":1003,"cls":797},{"name":2533,"kind":794,"annotation":2534,"required":883},"binary_type_value",{"name":2497,"cls":797},{"name":2536,"kind":794,"annotation":2537,"required":883},"date_type_value",{"name":2501,"cls":797},{"name":2539,"kind":794,"annotation":2540,"required":883},"time_type_value",{"name":2506,"cls":797},{"name":2542,"kind":794,"annotation":2543,"required":883},"timestamp_type_value",{"name":2510,"cls":797},{"name":2545,"kind":794,"annotation":2546,"required":883},"any_type_value",{"name":2514,"cls":797},{"type":848,"name":2457,"path":2454,"parent":2443,"description":2548,"lines":2549,"decorators":2550,"attributes":2551,"functions":2554,"mro":2556},"A structure type that is part of the middle structure.",[773,1691],[2463],[2552,2553],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure.inner_string_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure.inner_integer_type_value",[2555],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.InnerStructure.__init__",[2457],{"type":766,"name":2552,"path":2454,"parent":2457,"lines":2558,"value":820,"annotation":2559},[2332,2332],{"name":796,"cls":797},{"type":766,"name":2553,"path":2454,"parent":2457,"lines":2561,"value":820,"annotation":2562},[1691,1691],{"name":803,"cls":797},{"type":784,"name":2555,"path":2454,"parent":2457,"lines":2564,"parameters":2565},[2517,2517],[2566,2567,2570],{"name":882,"kind":794,"required":883},{"name":2568,"kind":794,"annotation":2569,"required":883},"inner_string_type_value",{"name":796,"cls":797},{"name":2571,"kind":794,"annotation":2572,"required":883},"inner_integer_type_value",{"name":803,"cls":797},{"type":848,"name":2458,"path":2454,"parent":2443,"description":2574,"lines":2575,"decorators":2576,"attributes":2577,"functions":2581,"mro":2583},"Another structure type that is part of the outer structure.",[1968,1078],[2463],[2578,2579,2580],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.middle_string_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.middle_integer_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.inner_structure",[2582],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.MiddleStructure.__init__",[2458],{"type":766,"name":2578,"path":2454,"parent":2458,"lines":2585,"value":820,"annotation":2587},[2586,2586],61,{"name":796,"cls":797},{"type":766,"name":2579,"path":2454,"parent":2458,"lines":2589,"value":820,"annotation":2590},[1408,1408],{"name":803,"cls":797},{"type":766,"name":2580,"path":2454,"parent":2458,"lines":2592,"value":820,"annotation":2593},[1078,1078],{"name":2457,"cls":797},{"type":784,"name":2582,"path":2454,"parent":2458,"lines":2595,"parameters":2596},[2517,2517],[2597,2598,2601,2604],{"name":882,"kind":794,"required":883},{"name":2599,"kind":794,"annotation":2600,"required":883},"middle_string_type_value",{"name":796,"cls":797},{"name":2602,"kind":794,"annotation":2603,"required":883},"middle_integer_type_value",{"name":803,"cls":797},{"name":2605,"kind":794,"annotation":2606,"required":883},"inner_structure",{"name":2457,"cls":797},{"type":848,"name":2447,"path":2454,"parent":2443,"description":2608,"lines":2609,"decorators":2610,"bases":2611,"attributes":2614,"functions":2618,"mro":2620},"An example Structure data type that contains other structures within.",[1414,1723],[2463],[2612],{"annotation":2613},{"name":2467,"cls":797},[2615,2616,2617],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.outer_string_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.outer_integer_type_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.middle_structure",[2619],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.DeepStructure.__init__",[2447,2467,2481],{"type":766,"name":2615,"path":2454,"parent":2447,"lines":2622,"value":820,"annotation":2623},[1718,1718],{"name":796,"cls":797},{"type":766,"name":2616,"path":2454,"parent":2447,"lines":2625,"value":820,"annotation":2626},[926,926],{"name":803,"cls":797},{"type":766,"name":2617,"path":2454,"parent":2447,"lines":2628,"value":820,"annotation":2629},[1723,1723],{"name":2458,"cls":797},{"type":784,"name":2619,"path":2454,"parent":2447,"lines":2631,"parameters":2632},[2517,2517],[2633,2634,2637,2640],{"name":882,"kind":794,"required":883},{"name":2635,"kind":794,"annotation":2636,"required":883},"outer_string_type_value",{"name":796,"cls":797},{"name":2638,"kind":794,"annotation":2639,"required":883},"outer_integer_type_value",{"name":803,"cls":797},{"name":2641,"kind":794,"annotation":2642,"required":883},"middle_structure",{"name":2458,"cls":797},{"type":848,"name":2448,"path":2454,"parent":2443,"description":2644,"lines":2645,"bases":2647,"functions":2650,"mro":2656},"Provides commands and properties to set or respectively get SiLA Structure Data Type values via command parameters or property responses respectively.",[1179,2646],189,[2648],{"annotation":2649},{"name":975,"cls":797},[2651,2652,2653,2654,2655],"unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.__init__","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.echo_structure_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.structure_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.echo_deep_structure_value","unitelabs.cdk.features.test.structure_data_type_test.structure_data_type_test.StructureDataTypeTest.deep_structure_value",[2448,975,2226,2227],{"type":784,"name":2651,"path":2454,"parent":2448,"lines":2658,"parameters":2661},[2659,2660],85,86,[2662],{"name":882,"kind":794,"required":883},{"type":784,"name":2652,"path":2454,"parent":2448,"description":2664,"lines":2665,"decorators":2666,"parameters":2667,"returns":2672},"Receives a structure value and returns the structure that has been received (binary value is expected to be an embedded value, any typer value is expected to be a Basic type).",[1431,1079],[2239],[2668,2669],{"name":882,"kind":794,"required":883},{"name":2670,"kind":794,"annotation":2671,"required":883},"structure_value",{"name":2449,"cls":797},{"description":2673,"annotation":2674},"The structure that has been received.",{"name":2449,"cls":797},{"type":784,"name":2653,"path":2454,"parent":2448,"description":2676,"lines":2677,"decorators":2680,"parameters":2681,"returns":2683},"Returns a structure with the following elements values:\n- String value = 'SiLA2_Test_String_Value'\n- Integer value = 5124\n- Real value = 3.1415926\n- Boolean value = true\n- Binary value = embedded string 'SiLA2_Binary_String_Value'\n- Date value = 05.08.2022 respective 08\u002F05\u002F2022\n- Time value = 12:34:56.789\n- Timestamp value = 2022-08-05 12:34:56.789\n- Any type value = string 'SiLA2_Any_Type_String_Value'.",[2678,2679],104,146,[2252],[2682],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2684},{"name":2449,"cls":797},{"type":784,"name":2654,"path":2454,"parent":2448,"description":2686,"lines":2687,"decorators":2689,"parameters":2690,"returns":2695},"Receives a multilevel structure value and returns the structure that has been received.",[2688,1000],150,[2239],[2691,2692],{"name":882,"kind":794,"required":883},{"name":2693,"kind":794,"annotation":2694,"required":883},"deep_structure_value",{"name":2447,"cls":797},{"description":2673,"annotation":2696},{"name":2447,"cls":797},{"type":784,"name":2655,"path":2454,"parent":2448,"description":2698,"lines":2699,"decorators":2701,"parameters":2702,"returns":2704},"Returns a multilevel structure with the following values:\n- string value = 'Outer_Test_String'\n- integer value = 1111\n- middle structure value =\n  - string value = 'Middle_Test_String'\n  - integer value = 2222\n  - inner structure value =\n    - string value = 'Inner_Test_String'\n    - integer value = 3333.",[2700,2646],164,[2252],[2703],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2705},{"name":2447,"cls":797},{"type":738,"name":2383,"path":2707,"parent":2188,"packages":2708,"attributes":2710,"classes":2712},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Flist_data_type_test\u002F__init__.py",[2709],"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test",[2711],"unitelabs.cdk.features.test.list_data_type_test.__all__",[2713],"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest",{"type":766,"name":2711,"path":2707,"parent":2383,"lines":2715,"value":2716},[2207,2207],[2713],{"type":738,"name":2709,"path":2718,"parent":2383,"packages":2719,"classes":2720},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Flist_data_type_test\u002Flist_data_type_test.py",[750],[2721,2713],"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure",{"type":848,"name":2721,"path":2718,"parent":2709,"description":2460,"lines":2723,"decorators":2724,"bases":2725,"attributes":2728,"functions":2738,"mro":2740},[2015,909],[2463],[2726],{"annotation":2727},{"name":2467,"cls":797},[2729,2730,2731,2732,2733,2734,2735,2736,2737],"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.string_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.integer_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.real_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.boolean_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.binary_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.date_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.time_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.timestamp_type_value","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.any_type_value",[2739],"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.TestStructure.__init__",[2721,2467,2481],{"type":766,"name":2729,"path":2718,"parent":2721,"lines":2742,"value":820,"annotation":2743},[890,890],{"name":796,"cls":797},{"type":766,"name":2730,"path":2718,"parent":2721,"lines":2745,"value":820,"annotation":2746},[1058,1058],{"name":803,"cls":797},{"type":766,"name":2731,"path":2718,"parent":2721,"lines":2748,"value":820,"annotation":2749},[894,894],{"name":1662,"cls":797},{"type":766,"name":2732,"path":2718,"parent":2721,"lines":2751,"value":820,"annotation":2752},[898,898],{"name":1003,"cls":797},{"type":766,"name":2733,"path":2718,"parent":2721,"lines":2754,"value":820,"annotation":2755},[901,901],{"name":2497,"cls":797},{"type":766,"name":2734,"path":2718,"parent":2721,"lines":2757,"value":820,"annotation":2758},[1336,1336],{"name":2501,"cls":797},{"type":766,"name":2735,"path":2718,"parent":2721,"lines":2760,"value":820,"annotation":2761},[2504,2504],{"name":2506,"cls":797},{"type":766,"name":2736,"path":2718,"parent":2721,"lines":2763,"value":820,"annotation":2764},[788,788],{"name":2510,"cls":797},{"type":766,"name":2737,"path":2718,"parent":2721,"lines":2766,"value":820,"annotation":2767},[909,909],{"name":2514,"cls":797},{"type":784,"name":2739,"path":2718,"parent":2721,"lines":2769,"parameters":2770},[2517,2517],[2771,2772,2774,2776,2778,2780,2782,2784,2786,2788],{"name":882,"kind":794,"required":883},{"name":2521,"kind":794,"annotation":2773,"required":883},{"name":796,"cls":797},{"name":2524,"kind":794,"annotation":2775,"required":883},{"name":803,"cls":797},{"name":2527,"kind":794,"annotation":2777,"required":883},{"name":1662,"cls":797},{"name":2530,"kind":794,"annotation":2779,"required":883},{"name":1003,"cls":797},{"name":2533,"kind":794,"annotation":2781,"required":883},{"name":2497,"cls":797},{"name":2536,"kind":794,"annotation":2783,"required":883},{"name":2501,"cls":797},{"name":2539,"kind":794,"annotation":2785,"required":883},{"name":2506,"cls":797},{"name":2542,"kind":794,"annotation":2787,"required":883},{"name":2510,"cls":797},{"name":2545,"kind":794,"annotation":2789,"required":883},{"name":2514,"cls":797},{"type":848,"name":2713,"path":2718,"parent":2709,"description":2791,"lines":2792,"bases":2793,"functions":2796,"mro":2805},"Provides commands and properties to set or respectively get SiLA List Data Type values via command parameters or property responses respectively.",[773,1146],[2794],{"annotation":2795},{"name":975,"cls":797},[2797,2798,2799,2800,2801,2802,2803,2804],"unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.__init__","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.empty_string_list","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.echo_string_list","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.string_list","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.echo_integer_list","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.integer_list","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.echo_structure_list","unitelabs.cdk.features.test.list_data_type_test.list_data_type_test.ListDataTypeTest.structure_list",[2713,975,2226,2227],{"type":784,"name":2797,"path":2718,"parent":2713,"lines":2807,"parameters":2808},[1324,1325],[2809],{"name":882,"kind":794,"required":883},{"type":784,"name":2798,"path":2718,"parent":2713,"description":2811,"lines":2812,"decorators":2813,"parameters":2814,"returns":2816},"Returns an empty list of String type.",[1294,2332],[2252],[2815],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2817},{"left":2818,"slice":2819},{"name":905,"cls":797},{"name":796,"cls":797},{"type":784,"name":2799,"path":2718,"parent":2713,"description":2821,"lines":2822,"decorators":2823,"parameters":2824,"returns":2831},"Receives a list of string values and returns a list containing the string values that have been received.",[2351,1059],[2239],[2825,2826],{"name":882,"kind":794,"required":883},{"name":2827,"kind":794,"annotation":2828,"required":883},"string_list",{"left":2829,"slice":2830},{"name":905,"cls":797},{"name":796,"cls":797},{"description":2832,"annotation":2833},"A list containing the string values that have been received.",{"left":2834,"slice":2835},{"name":905,"cls":797},{"name":796,"cls":797},{"type":784,"name":2800,"path":2718,"parent":2713,"description":2837,"lines":2838,"decorators":2839,"parameters":2840,"returns":2842},"Returns a list with the following string values: 'SiLA 2', 'is', 'great'.",[1408,1414],[2252],[2841],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2843},{"left":2844,"slice":2845},{"name":905,"cls":797},{"name":796,"cls":797},{"type":784,"name":2801,"path":2718,"parent":2713,"description":2847,"lines":2848,"decorators":2850,"parameters":2851,"returns":2858},"Receives a list of integer values and returns a list containing the integer values that have been received.",[1717,2849],80,[2239],[2852,2853],{"name":882,"kind":794,"required":883},{"name":2854,"kind":794,"annotation":2855,"required":883},"integer_list",{"left":2856,"slice":2857},{"name":905,"cls":797},{"name":803,"cls":797},{"description":2859,"annotation":2860},"A list containing the integer values that have been received.",{"left":2861,"slice":2862},{"name":905,"cls":797},{"name":803,"cls":797},{"type":784,"name":2802,"path":2718,"parent":2713,"description":2864,"lines":2865,"decorators":2866,"parameters":2867,"returns":2869},"Returns a list with the following Integer values: 1, 2, 3.",[1179,2660],[2252],[2868],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2870},{"left":2871,"slice":2872},{"name":905,"cls":797},{"name":803,"cls":797},{"type":784,"name":2803,"path":2718,"parent":2713,"description":2874,"lines":2875,"decorators":2878,"parameters":2879,"returns":2886},"Receives a list of structure values and returns a list containing the structures that have been received.",[2876,2877],88,100,[2239],[2880,2881],{"name":882,"kind":794,"required":883},{"name":2882,"kind":794,"annotation":2883,"required":883},"structure_list",{"left":2884,"slice":2885},{"name":905,"cls":797},{"name":2721,"cls":797},{"description":2887,"annotation":2888},"A message containing the content of all structures that have been received.",{"left":2889,"slice":2890},{"name":905,"cls":797},{"name":2721,"cls":797},{"type":784,"name":2804,"path":2718,"parent":2713,"description":2892,"lines":2893,"decorators":2894,"parameters":2895,"returns":2897},"Returns a list with 3 structure values, whereas the values of the first element are:\nstring value = 'SiLA2_Test_String_Value_1'\ninteger value = 5124\nreal value = 3.1415926\nboolean value = true\nbinary value (embedded string) = 'Binary_String_Value_1'\ndate value = 05.08.2022 respective 08\u002F05\u002F2022\ntime value = 12:34:56.789\ntime stamp value = 2022-08-05 12:34:56.789\nany type value (string) = 'Any_Type_String_Value_1'\n\nFor the second and third element:\nthe last character of the strings changes to '2' respective '3'\nthe numeric values are incremented by 1\nthe boolean values becomes false for element 2 and true for element 3\nfor the date value day, month and year are incremented by 1\nfor the time value milliseconds, seconds, minutes and hours are incremented by 1\nfor the time stamp value day, month, year, milliseconds, seconds, minutes and hours are incremented by 1.",[1079,1146],[2252],[2896],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2898},{"left":2899,"slice":2900},{"name":905,"cls":797},{"name":2721,"cls":797},{"type":738,"name":2384,"path":2902,"parent":2188,"packages":2903,"attributes":2905,"classes":2907},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fany_type_test\u002F__init__.py",[2904],"unitelabs.cdk.features.test.any_type_test.any_type_test",[2906],"unitelabs.cdk.features.test.any_type_test.__all__",[2908],"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest",{"type":766,"name":2906,"path":2902,"parent":2384,"lines":2910,"value":2911},[2207,2207],[2908],{"type":738,"name":2904,"path":2913,"parent":2384,"packages":2914,"classes":2915},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fany_type_test\u002Fany_type_test.py",[750],[2908],{"type":848,"name":2908,"path":2913,"parent":2904,"description":2917,"lines":2918,"bases":2919,"functions":2922,"mro":2935},"Provides commands and properties to set or respectively get SiLA Any Type values via command parameters or property responses respectively.",[2015,1008],[2920],{"annotation":2921},{"name":975,"cls":797},[2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934],"unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.__init__","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.set_any_type_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_string_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_integer_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_real_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_boolean_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.any_type_binary_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_date_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_time_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.get_any_type_timestamp_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.any_type_list_value","unitelabs.cdk.features.test.any_type_test.any_type_test.AnyTypeTest.any_type_structure_value",[2908,975,2226,2227],{"type":784,"name":2923,"path":2913,"parent":2908,"lines":2937,"parameters":2938},[1238,1242],[2939],{"name":882,"kind":794,"required":883},{"type":784,"name":2924,"path":2913,"parent":2908,"description":2941,"lines":2942,"decorators":2944,"parameters":2945,"returns":2949},"Receives an Any type value and returns the type and the value that has been received.",[1042,2943],71,[2239],[2946,2947],{"name":882,"kind":794,"required":883},{"name":2545,"kind":794,"annotation":2948,"required":883},{"name":2514,"cls":797},{"description":2950,"annotation":2951},"The type that has been received.",{"left":2952,"slice":2953},{"name":1201,"cls":797},{"elements":2954},[2955,2961],{"left":2956,"slice":2957},{"name":2343,"cls":797},{"elements":2958},[2959,2960],{"name":796,"cls":797},{},{"name":2514,"cls":797},{"type":784,"name":2925,"path":2913,"parent":2908,"description":2963,"lines":2964,"decorators":2966,"parameters":2967,"returns":2969},"Returns the Any type String value 'SiLA_Any_type_of_String_type'.",[2965,1718],73,[2252],[2968],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2970},{"name":2514,"cls":797},{"type":784,"name":2926,"path":2913,"parent":2908,"description":2972,"lines":2973,"decorators":2974,"parameters":2975,"returns":2977},"Returns the Any type Integer value 5124.",[1723,1601],[2252],[2976],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2978},{"name":2514,"cls":797},{"type":784,"name":2927,"path":2913,"parent":2908,"description":2980,"lines":2981,"decorators":2983,"parameters":2984,"returns":2986},"Returns an Any type Real value 3.1415926.",[2659,2982],89,[2252],[2985],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2987},{"name":2514,"cls":797},{"type":784,"name":2928,"path":2913,"parent":2908,"description":2989,"lines":2990,"decorators":2992,"parameters":2993,"returns":2995},"Returns the Any type Boolean value true.",[2991,933],91,[2252],[2994],{"name":882,"kind":794,"required":883},{"description":807,"annotation":2996},{"name":2514,"cls":797},{"type":784,"name":2929,"path":2913,"parent":2908,"description":2998,"lines":2999,"decorators":3001,"parameters":3002,"returns":3004},"Returns the Any type ASCII-encoded string value 'SiLA_Any_type_of_Binary_type' as Binary.",[3000,940],97,[2252],[3003],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3005},{"name":2514,"cls":797},{"type":784,"name":2930,"path":2913,"parent":2908,"description":3007,"lines":3008,"decorators":3011,"parameters":3012,"returns":3014},"Returns the Any type Date value 05.08.2022 respective 08\u002F05\u002F2022, timezone +2.",[3009,3010],103,109,[2252],[3013],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3015},{"name":2514,"cls":797},{"type":784,"name":2931,"path":2913,"parent":2908,"description":3017,"lines":3018,"decorators":3020,"parameters":3021,"returns":3023},"Returns the Any type Time value 12:34:56.789, timezone +2.",[3019,1094],111,[2252],[3022],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3024},{"name":2514,"cls":797},{"type":784,"name":2932,"path":2913,"parent":2908,"description":3026,"lines":3027,"decorators":3029,"parameters":3030,"returns":3032},"Returns the Any type Timestamp value 2022-08-05 12:34:56.789, timezone +2.",[3028,1472],123,[2252],[3031],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3033},{"name":2514,"cls":797},{"type":784,"name":2933,"path":2913,"parent":2908,"description":3035,"lines":3036,"decorators":3038,"parameters":3039,"returns":3041},"Returns the Any type String List value ('SiLA 2', 'Any', 'Type', 'String', 'List')",[3037,970],138,[2252],[3040],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3042},{"name":2514,"cls":797},{"type":784,"name":2934,"path":2913,"parent":2908,"description":3044,"lines":3045,"decorators":3047,"parameters":3048,"returns":3050},"Returns the following Any type Structure value:\n- String 'StringTypeValue' = 'A String value',\n- Integer 'IntegerTypeValue' = 83737665,\n- Date 'DateTypeValue' = 05.08.2022 respective 08\u002F05\u002F2022 timezone +2 )",[3046,1008],144,[2252],[3049],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3051},{"name":2514,"cls":797},{"type":738,"name":2385,"path":3053,"parent":2188,"packages":3054,"attributes":3056,"classes":3058},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fbasic_data_types_test\u002F__init__.py",[3055],"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test",[3057],"unitelabs.cdk.features.test.basic_data_types_test.__all__",[3059],"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest",{"type":766,"name":3057,"path":3053,"parent":2385,"lines":3061,"value":3062},[2207,2207],[3059],{"type":738,"name":3055,"path":3064,"parent":2385,"packages":3065,"classes":3066},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fbasic_data_types_test\u002Fbasic_data_types_test.py",[750],[3059],{"type":848,"name":3059,"path":3064,"parent":3055,"description":3068,"lines":3069,"bases":3071,"functions":3074,"mro":3090},"Provides commands and properties to set or respectively get all SiLA Basic Data Types via command parameters or property responses respectively.",[2026,3070],181,[3072],{"annotation":3073},{"name":975,"cls":797},[3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089],"unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.__init__","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_string_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_string_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_integer_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_integer_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_real_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_real_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_boolean_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_boolean_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_date_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_date_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_time_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_time_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.echo_timestamp_value","unitelabs.cdk.features.test.basic_data_types_test.basic_data_types_test.BasicDataTypesTest.get_timestamp_value",[3059,975,2226,2227],{"type":784,"name":3075,"path":3064,"parent":3059,"lines":3092,"parameters":3093},[1900,787],[3094],{"name":882,"kind":794,"required":883},{"type":784,"name":3076,"path":3064,"parent":3059,"description":3096,"lines":3097,"decorators":3098,"parameters":3099,"returns":3104},"Receives a String value and returns the String value that has been received.",[1042,1058],[2239],[3100,3101],{"name":882,"kind":794,"required":883},{"name":3102,"kind":794,"annotation":3103,"required":883},"string_value",{"name":796,"cls":797},{"description":3105,"annotation":3106},"The String value that has been received.",{"name":796,"cls":797},{"type":784,"name":3077,"path":3064,"parent":3059,"description":3108,"lines":3109,"decorators":3110,"parameters":3111,"returns":3113},"Returns the String value 'SiLA2_Test_String_Value'.",[898,788],[2252],[3112],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3114},{"name":796,"cls":797},{"type":784,"name":3078,"path":3064,"parent":3059,"description":3116,"lines":3117,"decorators":3118,"parameters":3119,"returns":3124},"Receives an Integer value and returns the Integer value that has been received.",[773,2351],[2239],[3120,3121],{"name":882,"kind":794,"required":883},{"name":3122,"kind":794,"annotation":3123,"required":883},"integer_value",{"name":803,"cls":797},{"description":3125,"annotation":3126},"The Integer value that has been received.",{"name":803,"cls":797},{"type":784,"name":3079,"path":3064,"parent":3059,"description":3128,"lines":3129,"decorators":3130,"parameters":3131,"returns":3133},"Returns the Integer value 5124.",[1968,1390],[2252],[3132],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3134},{"name":803,"cls":797},{"type":784,"name":3080,"path":3064,"parent":3059,"description":3136,"lines":3137,"decorators":3139,"parameters":3140,"returns":3145},"Receives a Real value and returns the Real value that has been received.",[3138,814],58,[2239],[3141,3142],{"name":882,"kind":794,"required":883},{"name":3143,"kind":794,"annotation":3144,"required":883},"real_value",{"name":1662,"cls":797},{"description":3146,"annotation":3147},"The Real value that has been received.",{"name":1662,"cls":797},{"type":784,"name":3081,"path":3064,"parent":3059,"description":3149,"lines":3150,"decorators":3152,"parameters":3153,"returns":3155},"Returns the Real value 3.1415926.",[3151,920],72,[2252],[3154],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3156},{"name":1662,"cls":797},{"type":784,"name":3082,"path":3064,"parent":3059,"description":3158,"lines":3159,"decorators":3160,"parameters":3161,"returns":3166},"Receives a Boolean value and returns the Boolean value that has been received.",[2849,1440],[2239],[3162,3163],{"name":882,"kind":794,"required":883},{"name":3164,"kind":794,"annotation":3165,"required":883},"boolean_value",{"name":1003,"cls":797},{"description":3167,"annotation":3168},"The Boolean value that has been received.",{"name":1003,"cls":797},{"type":784,"name":3083,"path":3064,"parent":3059,"description":3170,"lines":3171,"decorators":3174,"parameters":3175,"returns":3177},"Returns the Boolean value true.",[3172,3173],94,98,[2252],[3176],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3178},{"name":1003,"cls":797},{"type":784,"name":3084,"path":3064,"parent":3059,"description":3180,"lines":3181,"decorators":3182,"parameters":3183,"returns":3188},"Receives a Date value and returns the Date value that has been received.",[1079,1453],[2239],[3184,3185],{"name":882,"kind":794,"required":883},{"name":3186,"kind":794,"annotation":3187,"required":883},"date_value",{"name":2501,"cls":797},{"description":3189,"annotation":3190},"The Date value that has been received.",{"name":2501,"cls":797},{"type":784,"name":3085,"path":3064,"parent":3059,"description":3192,"lines":3193,"decorators":3195,"parameters":3196,"returns":3198},"Returns the Date value 05.08.2022 respective 08\u002F05\u002F2018, timezone +2.",[1459,3194],122,[2252],[3197],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3199},{"name":2501,"cls":797},{"type":784,"name":3086,"path":3064,"parent":3059,"description":3201,"lines":3202,"decorators":3203,"parameters":3204,"returns":3209},"Receives a Time value and returns the Time value that has been received.",[1465,3037],[2239],[3205,3206],{"name":882,"kind":794,"required":883},{"name":3207,"kind":794,"annotation":3208,"required":883},"time_value",{"name":2506,"cls":797},{"description":3210,"annotation":3211},"The Time value that has been received.",{"name":2506,"cls":797},{"type":784,"name":3087,"path":3064,"parent":3059,"description":3213,"lines":3214,"decorators":3215,"parameters":3216,"returns":3218},"Returns the Time value 12:34:56.789, timezone +2.",[1473,2688],[2252],[3217],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3219},{"name":2506,"cls":797},{"type":784,"name":3088,"path":3064,"parent":3059,"description":3221,"lines":3222,"decorators":3225,"parameters":3226,"returns":3231},"Receives a Timestamp value and returns a message containing the Timestamp value that has been received.",[3223,3224],154,166,[2239],[3227,3228],{"name":882,"kind":794,"required":883},{"name":3229,"kind":794,"annotation":3230,"required":883},"timestamp_value",{"name":2510,"cls":797},{"description":3232,"annotation":3233},"The Timestamp value that has been received.",{"name":2510,"cls":797},{"type":784,"name":3089,"path":3064,"parent":3059,"description":3235,"lines":3236,"decorators":3237,"parameters":3238,"returns":3240},"Returns the Timestamp value 2022-08-05 12:34:56.789, timezone +2.",[1114,3070],[2252],[3239],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3241},{"name":2510,"cls":797},{"type":738,"name":2386,"path":3243,"parent":2188,"packages":3244,"attributes":3246,"classes":3248},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fmetadata_provider\u002F__init__.py",[3245],"unitelabs.cdk.features.test.metadata_provider.metadata_provider",[3247],"unitelabs.cdk.features.test.metadata_provider.__all__",[3249,3250,3251],"unitelabs.cdk.features.test.metadata_provider.metadata_provider.MetadataProvider","unitelabs.cdk.features.test.metadata_provider.metadata_provider.StringMetadata","unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata",{"type":766,"name":3247,"path":3243,"parent":2386,"lines":3253,"value":3254},[2207,2207],[3249,3250,3251],{"type":738,"name":3245,"path":3256,"parent":2386,"packages":3257,"classes":3258},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fmetadata_provider\u002Fmetadata_provider.py",[750],[3250,3251,3249],{"type":848,"name":3250,"path":3256,"parent":3245,"description":3260,"lines":3261,"decorators":3262,"bases":3263,"attributes":3267,"functions":3269,"mro":3271},"A metadata consisting of a string. It affects the full \"Metadata Consumer Test\" feature.",[2015,1242],[2463],[3264],{"annotation":3265},{"name":3266,"cls":797},"unitelabs.cdk.sila.metadata.metadatum.Metadatum",[3268],"unitelabs.cdk.features.test.metadata_provider.metadata_provider.StringMetadata.string_metadata",[3270],"unitelabs.cdk.features.test.metadata_provider.metadata_provider.StringMetadata.__init__",[3250,3266,2481],{"type":766,"name":3268,"path":3256,"parent":3250,"lines":3273,"value":820,"annotation":3274},[1242,1242],{"name":796,"cls":797},{"type":784,"name":3270,"path":3256,"parent":3250,"lines":3276,"parameters":3277},[2517,2517],[3278,3279],{"name":882,"kind":794,"required":883},{"name":3280,"kind":794,"annotation":3281,"required":883},"string_metadata",{"name":796,"cls":797},{"type":848,"name":3251,"path":3256,"parent":3245,"description":3283,"lines":3284,"decorators":3285,"bases":3286,"attributes":3289,"functions":3292,"mro":3294},"A metadata consisting of a structure with two integers. It affects only the command \"Unpack Metadata\" of the \"Metadata Consumer Test\" feature.",[1245,1058],[2463],[3287],{"annotation":3288},{"name":3266,"cls":797},[3290,3291],"unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata.first_integer","unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata.second_integer",[3293],"unitelabs.cdk.features.test.metadata_provider.metadata_provider.TwoIntegersMetadata.__init__",[3251,3266,2481],{"type":766,"name":3290,"path":3256,"parent":3251,"lines":3296,"value":820,"annotation":3297},[890,890],{"name":803,"cls":797},{"type":766,"name":3291,"path":3256,"parent":3251,"lines":3299,"value":820,"annotation":3300},[1058,1058],{"name":803,"cls":797},{"type":784,"name":3293,"path":3256,"parent":3251,"lines":3302,"parameters":3303},[2517,2517],[3304,3305,3308],{"name":882,"kind":794,"required":883},{"name":3306,"kind":794,"annotation":3307,"required":883},"first_integer",{"name":803,"cls":797},{"name":3309,"kind":794,"annotation":3310,"required":883},"second_integer",{"name":803,"cls":797},{"type":848,"name":3249,"path":3256,"parent":3245,"description":3312,"lines":3313,"bases":3314,"functions":3317,"mro":3319},"This feature provides SiLA Client Metadata to the \"Metadata Consumer Test\" feature.",[901,909],[3315],{"annotation":3316},{"name":975,"cls":797},[3318],"unitelabs.cdk.features.test.metadata_provider.metadata_provider.MetadataProvider.__init__",[3249,975,2226,2227],{"type":784,"name":3318,"path":3256,"parent":3249,"lines":3321,"parameters":3322},[788,909],[3323],{"name":882,"kind":794,"required":883},{"type":738,"name":2387,"path":3325,"parent":2188,"packages":3326,"attributes":3328,"classes":3330},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fmetadata_consumer_test\u002F__init__.py",[3327],"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test",[3329],"unitelabs.cdk.features.test.metadata_consumer_test.__all__",[3331],"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest",{"type":766,"name":3329,"path":3325,"parent":2387,"lines":3333,"value":3334},[2207,2207],[3331],{"type":738,"name":3327,"path":3336,"parent":2387,"packages":3337,"classes":3338},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fmetadata_consumer_test\u002Fmetadata_consumer_test.py",[750],[3331],{"type":848,"name":3331,"path":3336,"parent":3327,"description":2917,"lines":3340,"bases":3341,"functions":3344,"mro":3350},[1238,1059],[3342],{"annotation":3343},{"name":975,"cls":797},[3345,3346,3347,3348,3349],"unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.__init__","unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.echo_string_metadata","unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.unpack_metadata","unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.received_string_metadata","unitelabs.cdk.features.test.metadata_consumer_test.metadata_consumer_test.MetadataConsumerTest.received_string_metadata_as_characters",[3331,975,2226,2227],{"type":784,"name":3345,"path":3336,"parent":3331,"lines":3352,"parameters":3353},[1042,1245],[3354],{"name":882,"kind":794,"required":883},{"type":784,"name":3346,"path":3336,"parent":3331,"description":3356,"lines":3357,"decorators":3358,"parameters":3359,"returns":3370},"Expects the \"String Metadata\" metadata from the \"Metadata Provider\" feature and responds with the metadata value.",[1046,1058],[2239],[3360,3361],{"name":882,"kind":794,"required":883},{"name":3362,"kind":2368,"annotation":3363,"required":883},"metadata",{"left":3364,"slice":3365},{"name":2343,"cls":797},{"elements":3366},[3367,3369],{"name":3368,"cls":797},"unitelabs.cdk.sila.metadata.metadata.Metadata",{"name":3250,"cls":797},{"description":3371,"annotation":3372},"The received string metadata",{"name":796,"cls":797},{"type":784,"name":3347,"path":3336,"parent":3331,"description":3374,"lines":3375,"decorators":3376,"parameters":3377,"returns":3387},"Expects the \"String Metadata\" and \"Two Integers Metadata\" metadata from the \"Metadata Provider\" feature and responds with all three data items.",[898,1690],[2239],[3378,3379],{"name":882,"kind":794,"required":883},{"name":3362,"kind":2368,"annotation":3380,"required":883},{"left":3381,"slice":3382},{"name":2343,"cls":797},{"elements":3383},[3384,3385,3386],{"name":3368,"cls":797},{"name":3250,"cls":797},{"name":3251,"cls":797},{"description":3388,"annotation":3389},"The received string (via \"String Metadata\")",{"left":3390,"slice":3391},{"name":1201,"cls":797},{"elements":3392},[3393,3394,3395],{"name":796,"cls":797},{"name":803,"cls":797},{"name":803,"cls":797},{"type":784,"name":3348,"path":3336,"parent":3331,"description":3397,"lines":3398,"decorators":3400,"parameters":3401,"returns":3410},"Expects the \"String Metadata\" metadata from the \"Metadata Provider\" feature and returns the metadata value.",[1691,3399],51,[2252],[3402,3403],{"name":882,"kind":794,"required":883},{"name":3362,"kind":2368,"annotation":3404,"required":883},{"left":3405,"slice":3406},{"name":2343,"cls":797},{"elements":3407},[3408,3409],{"name":3368,"cls":797},{"name":3250,"cls":797},{"description":807,"annotation":3411},{"name":796,"cls":797},{"type":784,"name":3349,"path":3336,"parent":3331,"description":3413,"lines":3414,"decorators":3415,"parameters":3416,"returns":3425},"Expects the \"String Metadata\" metadata from the \"Metadata Provider\" feature and returns all characters of its string value as separate responses.",[1697,1059],[2334],[3417,3418],{"name":882,"kind":794,"required":883},{"name":3362,"kind":2368,"annotation":3419,"required":883},{"left":3420,"slice":3421},{"name":2343,"cls":797},{"elements":3422},[3423,3424],{"name":3368,"cls":797},{"name":3250,"cls":797},{"description":807,"annotation":3426},{"left":3427,"slice":3428},{"name":2340,"cls":797},{"left":3429,"slice":3430},{"name":2343,"cls":797},{"elements":3431},[3432,3433],{"name":796,"cls":797},{},{"type":738,"name":2388,"path":3435,"parent":2188,"packages":3436,"attributes":3438,"classes":3440},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fobservable_property_test\u002F__init__.py",[3437],"unitelabs.cdk.features.test.observable_property_test.observable_property_test",[3439],"unitelabs.cdk.features.test.observable_property_test.__all__",[3441],"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest",{"type":766,"name":3439,"path":3435,"parent":2388,"lines":3443,"value":3444},[2207,2207],[3441],{"type":738,"name":3437,"path":3446,"parent":2388,"packages":3447,"classes":3448},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fobservable_property_test\u002Fobservable_property_test.py",[750,747],[3441],{"type":848,"name":3441,"path":3446,"parent":3437,"description":3450,"lines":3451,"bases":3453,"attributes":3456,"functions":3461,"mro":3468},"This is a test feature to test observable properties.",[2015,3452],56,[3454],{"annotation":3455},{"name":975,"cls":797},[3457,3458,3459,3460],"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.alternating","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.alternating_publisher","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.value","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.value_event",[3462,3463,3464,3465,3466,3467],"unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.__init__","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest._update_alternating","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.subscribe_fixed_value","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.subscribe_alternating","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.subscribe_editable","unitelabs.cdk.features.test.observable_property_test.observable_property_test.ObservablePropertyTest.set_value",[3441,975,2226,2227],{"type":784,"name":3462,"path":3446,"parent":3441,"lines":3470,"parameters":3471},[1238,768],[3472],{"name":882,"kind":794,"required":883},{"type":766,"name":3457,"path":3446,"parent":3441,"lines":3474,"value":1370},[1042,1042],{"type":766,"name":3458,"path":3446,"parent":3441,"lines":3476,"value":3477},[1245,1245],"subscriptions.Publisher(self._update_alternating, interval=1)",{"type":766,"name":3459,"path":3446,"parent":3441,"lines":3479,"value":3480,"annotation":3481},[1046,1046],"1",{"name":803,"cls":797},{"type":766,"name":3460,"path":3446,"parent":3441,"lines":3483,"value":895},[768,768],{"type":784,"name":3463,"path":3446,"parent":3441,"lines":3485,"parameters":3486,"returns":3488},[1052,1053],[3487],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3489},{"name":1003,"cls":797},{"type":784,"name":3464,"path":3446,"parent":3441,"description":3491,"lines":3492,"decorators":3493,"parameters":3494,"returns":3496},"Always returns 42 and never changes.",[890,901],[2334],[3495],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3497},{"left":3498,"slice":3499},{"name":2340,"cls":797},{"name":803,"cls":797},{"type":784,"name":3465,"path":3446,"parent":3441,"description":3501,"lines":3502,"decorators":3503,"parameters":3504,"returns":3506},"Switches every second between true and false",[2504,813],[2334],[3505],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3507},{"left":3508,"slice":3509},{"name":2340,"cls":797},{"name":1003,"cls":797},{"type":784,"name":3466,"path":3446,"parent":3441,"description":3511,"lines":3512,"decorators":3513,"parameters":3514,"returns":3516},"Can be set through SetValue command",[1373,915],[2334],[3515],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3517},{"left":3518,"slice":3519},{"name":2340,"cls":797},{"name":803,"cls":797},{"type":784,"name":3467,"path":3446,"parent":3441,"description":3521,"lines":3522,"decorators":3523,"parameters":3524},"Changes the value of Editable",[2332,3452],[2239],[3525,3526],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":3527,"required":883},{"name":803,"cls":797},{"type":738,"name":2389,"path":3529,"parent":2188,"packages":3530,"attributes":3532,"classes":3534},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Ferror_handling_test\u002F__init__.py",[3531],"unitelabs.cdk.features.test.error_handling_test.error_handling_test",[3533],"unitelabs.cdk.features.test.error_handling_test.__all__",[3535,3536],"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest","unitelabs.cdk.features.test.error_handling_test.error_handling_test.TestError",{"type":766,"name":3533,"path":3529,"parent":2389,"lines":3538,"value":3539},[2207,2207],[3535,3536],{"type":738,"name":3531,"path":3541,"parent":2389,"packages":3542,"classes":3543},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Ferror_handling_test\u002Ferror_handling_test.py",[750],[3536,3535],{"type":848,"name":3536,"path":3541,"parent":3531,"description":3545,"lines":3546,"bases":3547,"mro":3550},"An error exclusively used for testing purposes",[1864,2015],[3548],{"annotation":3549},{"name":1904,"cls":797},[3536],{"type":848,"name":3535,"path":3541,"parent":3531,"description":3552,"lines":3553,"bases":3554,"functions":3557,"mro":3569},"Tests that errors are propagated correctly",[1238,3194],[3555],{"annotation":3556},{"name":975,"cls":797},[3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568],"unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.__init__","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_observably","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_observably","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_on_get","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_on_subscribe","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_on_get","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_on_subscribe","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_defined_execution_error_after_value_was_sent","unitelabs.cdk.features.test.error_handling_test.error_handling_test.ErrorHandlingTest.raise_undefined_execution_error_after_value_was_sent",[3535,975,2226,2227],{"type":784,"name":3558,"path":3541,"parent":3535,"lines":3571,"parameters":3572},[1042,772],[3573],{"name":882,"kind":794,"required":883},{"type":784,"name":3559,"path":3541,"parent":3535,"description":3575,"lines":3576,"decorators":3577,"parameters":3578,"throws":3580},"Raises the \"Test Error\" with the error message 'SiLA2_test_error_message'",[851,2504],[2239],[3579],{"name":882,"kind":794,"required":883},[3581],{"description":3545,"annotation":3582},{"name":3536,"cls":797},{"type":784,"name":3560,"path":3541,"parent":3535,"description":3575,"lines":3584,"decorators":3585,"parameters":3586,"throws":3588},[909,1636],[2353],[3587],{"name":882,"kind":794,"required":883},[3589],{"description":3545,"annotation":3590},{"name":3536,"cls":797},{"type":784,"name":3561,"path":3541,"parent":3535,"description":3592,"lines":3593,"decorators":3594,"parameters":3595},"Raises an Undefined Execution Error with the error message 'SiLA2_test_error_message'",[1690,1968],[2239],[3596],{"name":882,"kind":794,"required":883},{"type":784,"name":3562,"path":3541,"parent":3535,"description":3592,"lines":3598,"decorators":3599,"parameters":3600},[1389,1398],[2353],[3601],{"name":882,"kind":794,"required":883},{"type":784,"name":3563,"path":3541,"parent":3535,"description":3603,"lines":3604,"decorators":3606,"parameters":3607,"returns":3609,"throws":3611},"A property that raises a \"Test Error\" on get with the error message 'SiLA2_test_error_message'",[1399,3605],69,[2252],[3608],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3610},{"name":803,"cls":797},[3612],{"description":3545,"annotation":3613},{"name":3536,"cls":797},{"type":784,"name":3564,"path":3541,"parent":3535,"description":3615,"lines":3616,"decorators":3617,"parameters":3618,"returns":3620,"throws":3624},"A property that raises a \"Test Error\" on subscribe with the error message 'SiLA2_test_error_message'",[2943,1830],[2334],[3619],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3621},{"left":3622,"slice":3623},{"name":2340,"cls":797},{"name":803,"cls":797},[3625],{"description":3545,"annotation":3626},{"name":3536,"cls":797},{"type":784,"name":3565,"path":3541,"parent":3535,"description":3628,"lines":3629,"decorators":3630,"parameters":3631,"returns":3633},"A property that raises an Undefined Execution Error on get with the error message 'SiLA2_test_error_message'",[1601,2876],[2252],[3632],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3634},{"name":803,"cls":797},{"type":784,"name":3566,"path":3541,"parent":3535,"description":3636,"lines":3637,"decorators":3638,"parameters":3639,"returns":3641},"A property that raises an Undefined Execution Error on subscribe with the error message 'SiLA2_test_error_message'",[1431,3000],[2334],[3640],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3642},{"left":3643,"slice":3644},{"name":2340,"cls":797},{"name":803,"cls":797},{"type":784,"name":3567,"path":3541,"parent":3535,"description":3646,"lines":3647,"decorators":3648,"parameters":3649,"returns":3651,"throws":3655},"A property that first sends the integer value 1 and then raises a Defined Execution Error with the error message 'SiLA2_test_error_message'",[934,3019],[2334],[3650],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3652},{"left":3653,"slice":3654},{"name":2340,"cls":797},{"name":803,"cls":797},[3656],{"description":3545,"annotation":3657},{"name":3536,"cls":797},{"type":784,"name":3568,"path":3541,"parent":3535,"description":3659,"lines":3660,"decorators":3662,"parameters":3663,"returns":3665},"A property that first sends the integer value 1 and then raises a Undefined Execution Error with the error message 'SiLA2_test_error_message'",[3661,3194],113,[2334],[3664],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3666},{"left":3667,"slice":3668},{"name":2340,"cls":797},{"name":803,"cls":797},{"type":738,"name":2390,"path":3670,"parent":2188,"packages":3671,"attributes":3673,"classes":3675},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fauthentication_test\u002F__init__.py",[3672],"unitelabs.cdk.features.test.authentication_test.authentication_test",[3674],"unitelabs.cdk.features.test.authentication_test.__all__",[3676],"unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest",{"type":766,"name":3674,"path":3670,"parent":2390,"lines":3678,"value":3679},[2207,2207],[3676],{"type":738,"name":3672,"path":3681,"parent":2390,"packages":3682,"classes":3683},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fauthentication_test\u002Fauthentication_test.py",[750],[3676],{"type":848,"name":3676,"path":3681,"parent":3672,"description":3685,"lines":3686,"bases":3687,"functions":3690,"mro":3694},"Contains commands that require authentication. A client should be able to obtain an Authorization Token through the Login command of the Authentication Service feature\nusing the following credentials: username: 'test', password: 'test'",[787,788],[3688],{"annotation":3689},{"name":975,"cls":797},[3691,3692,3693],"unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest.__init__","unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest.requires_token","unitelabs.cdk.features.test.authentication_test.authentication_test.AuthenticationTest.requires_token_for_binary_upload",[3676,975,2226,2227],{"type":784,"name":3691,"path":3681,"parent":3676,"lines":3696,"parameters":3697},[842,1046],[3698],{"name":882,"kind":794,"required":883},{"type":784,"name":3692,"path":3681,"parent":3676,"description":3700,"lines":3701,"decorators":3702,"parameters":3703},"Requires an authorization token in order to be executed.",[772,851],[2239],[3704,3705],{"name":882,"kind":794,"required":883},{"name":3362,"kind":2368,"annotation":3706,"required":883},{"left":3707,"slice":3708},{"name":2343,"cls":797},{"elements":3709},[3710,3711],{"name":3368,"cls":797},{"name":3712,"cls":797},"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken",{"type":784,"name":3693,"path":3681,"parent":3676,"description":3714,"lines":3715,"decorators":3716,"parameters":3717},"Requires an authorization token in order to be executed and to upload a binary parameter",[1053,788],[2239],[3718,3719,3722],{"name":882,"kind":794,"required":883},{"name":3720,"kind":794,"annotation":3721,"required":883},"binary_to_upload",{"name":2497,"cls":797},{"name":3362,"kind":2368,"annotation":3723,"required":883},{"left":3724,"slice":3725},{"name":2343,"cls":797},{"elements":3726},[3727,3728],{"name":3368,"cls":797},{"name":3712,"cls":797},{"type":738,"name":2391,"path":3730,"parent":2188,"packages":3731,"attributes":3733,"classes":3735},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fobservable_command_test\u002F__init__.py",[3732],"unitelabs.cdk.features.test.observable_command_test.observable_command_test",[3734],"unitelabs.cdk.features.test.observable_command_test.__all__",[3736],"unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest",{"type":766,"name":3734,"path":3730,"parent":2391,"lines":3738,"value":3739},[2207,2207],[3736],{"type":738,"name":3732,"path":3741,"parent":2391,"packages":3742,"classes":3743},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fobservable_command_test\u002Fobservable_command_test.py",[750],[3736],{"type":848,"name":3736,"path":3741,"parent":3732,"description":3745,"lines":3746,"bases":3747,"functions":3750,"mro":3754},"This is a test feature to test observable commands.\nIt specifies various observable commands and returns defined answers to validate against.",[1238,1601],[3748],{"annotation":3749},{"name":975,"cls":797},[3751,3752,3753],"unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest.__init__","unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest.count","unitelabs.cdk.features.test.observable_command_test.observable_command_test.ObservableCommandTest.echo_value_after_delay",[3736,975,2226,2227],{"type":784,"name":3751,"path":3741,"parent":3736,"lines":3756,"parameters":3757},[1046,768],[3758],{"name":882,"kind":794,"required":883},{"type":784,"name":3752,"path":3741,"parent":3736,"description":3760,"lines":3761,"decorators":3762,"parameters":3763,"returns":3784},"Count from 0 to N-1 and return the current number as intermediate response.",[1052,1390],[2353],[3764,3765,3768,3776,3778],{"name":882,"kind":794,"required":883},{"name":3766,"kind":794,"annotation":3767,"required":883},"n",{"name":803,"cls":797},{"name":3769,"kind":794,"annotation":3770,"required":883},"delay",{"left":3771,"slice":3772},{"name":2343,"cls":797},{"elements":3773},[3774,3775],{"name":1662,"cls":797},{},{"name":2367,"kind":2368,"annotation":3777,"required":883},{"name":2370,"cls":797},{"name":3779,"kind":2368,"annotation":3780,"required":883},"intermediate",{"left":3781,"slice":3783},{"name":3782,"cls":797},"unitelabs.cdk.sila.command.intermediate.Intermediate",{"name":803,"cls":797},{"description":3785,"annotation":3786},"The last number (N-1)",{"name":803,"cls":797},{"type":784,"name":3753,"path":3741,"parent":3736,"description":3788,"lines":3789,"decorators":3790,"parameters":3791,"returns":3804},"Echo the given value after the specified delay. The command state must be \"waiting\" until the delay has passed.",[3452,1601],[2353],[3792,3793,3795,3802],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":3794,"required":883},{"name":803,"cls":797},{"name":3769,"kind":794,"annotation":3796,"required":883},{"left":3797,"slice":3798},{"name":2343,"cls":797},{"elements":3799},[3800,3801],{"name":1662,"cls":797},{},{"name":2367,"kind":2368,"annotation":3803,"required":883},{"name":2370,"cls":797},{"description":3805,"annotation":3806},"The Received Value",{"name":803,"cls":797},{"type":738,"name":2392,"path":3808,"parent":2188,"packages":3809,"attributes":3811,"classes":3813},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fbinary_transfer_test\u002F__init__.py",[3810],"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test",[3812],"unitelabs.cdk.features.test.binary_transfer_test.__all__",[3814,3815],"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest","unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.String",{"type":766,"name":3812,"path":3808,"parent":2392,"lines":3817,"value":3818},[2207,2207],[3814,3815],{"type":738,"name":3810,"path":3820,"parent":2392,"packages":3821,"classes":3822},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Fbinary_transfer_test\u002Fbinary_transfer_test.py",[750],[3815,3814],{"type":848,"name":3815,"path":3820,"parent":3810,"description":3824,"lines":3825,"decorators":3826,"bases":3827,"attributes":3830,"functions":3832,"mro":3834},"A string",[1242,842],[2463],[3828],{"annotation":3829},{"name":3266,"cls":797},[3831],"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.String.string",[3833],"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.String.__init__",[3815,3266,2481],{"type":766,"name":3831,"path":3820,"parent":3815,"lines":3836,"value":820,"annotation":3837},[842,842],{"name":796,"cls":797},{"type":784,"name":3833,"path":3820,"parent":3815,"lines":3839,"parameters":3840},[2517,2517],[3841,3842],{"name":882,"kind":794,"required":883},{"name":3843,"kind":794,"annotation":3844,"required":883},"string",{"name":796,"cls":797},{"type":848,"name":3814,"path":3820,"parent":3810,"description":3846,"lines":3847,"bases":3848,"functions":3851,"mro":3858},"Provides commands and properties to set or respectively get the SiLA Basic Data Type Binary via command parameters or property responses respectively.",[772,3173],[3849],{"annotation":3850},{"name":975,"cls":797},[3852,3853,3854,3855,3856,3857],"unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.__init__","unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.echo_binary_value","unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.echo_binaries_observably","unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.binary_value_directly","unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.binary_value_download","unitelabs.cdk.features.test.binary_transfer_test.binary_transfer_test.BinaryTransferTest.echo_binary_and_metadata_string",[3814,975,2226,2227],{"type":784,"name":3852,"path":3820,"parent":3814,"lines":3860,"parameters":3861},[1774,1053],[3862],{"name":882,"kind":794,"required":883},{"type":784,"name":3853,"path":3820,"parent":3814,"description":3864,"lines":3865,"decorators":3867,"parameters":3868,"returns":3873},"Receives a Binary value (transmitted either directly or via binary transfer) and\nreturns the received value.",[890,3866],38,[2239],[3869,3870],{"name":882,"kind":794,"required":883},{"name":3871,"kind":794,"annotation":3872,"required":883},"binary_value",{"name":2497,"cls":797},{"description":3874,"annotation":3875},"The received Binary value transmitted in the same way it has been received.",{"name":2497,"cls":797},{"type":784,"name":3854,"path":3820,"parent":3814,"description":3877,"lines":3878,"decorators":3879,"parameters":3880,"returns":3893},"Receives a list of binaries, echoes them individually as intermediate responses with a delay of 1 second, and then returns them as a single joint binary",[1325,1414],[2353],[3881,3882,3887,3889],{"name":882,"kind":794,"required":883},{"name":3883,"kind":794,"annotation":3884,"required":883},"binaries",{"left":3885,"slice":3886},{"name":905,"cls":797},{"name":2497,"cls":797},{"name":2367,"kind":2368,"annotation":3888,"required":883},{"name":2370,"cls":797},{"name":3779,"kind":2368,"annotation":3890,"required":883},{"left":3891,"slice":3892},{"name":3782,"cls":797},{"name":2497,"cls":797},{"description":3894,"annotation":3895},"A single binary comprised of binaries received as parameter",{"name":2497,"cls":797},{"type":784,"name":3855,"path":3820,"parent":3814,"description":3897,"lines":3898,"decorators":3899,"parameters":3900,"returns":3902},"Returns the UTF-8 encoded string 'SiLA2_Test_String_Value' directly transmitted as Binary value.",[1717,3151],[2252],[3901],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3903},{"name":2497,"cls":797},{"type":784,"name":3856,"path":3820,"parent":3814,"description":3905,"lines":3906,"decorators":3907,"parameters":3908,"returns":3910},"Returns the Binary Transfer UUID to be used to download the binary data which is the UTF-8 encoded string\n'A_slightly_longer_SiLA2_Test_String_Value_used_to_demonstrate_the_binary_download', repeated 100,000 times.",[1415,1830],[2252],[3909],{"name":882,"kind":794,"required":883},{"description":807,"annotation":3911},{"name":2497,"cls":797},{"type":784,"name":3857,"path":3820,"parent":3814,"description":3913,"lines":3914,"decorators":3915,"parameters":3916,"returns":3928},"Receives a Binary and requires String Metadata, returns both",[1601,3173],[2239],[3917,3918,3921],{"name":882,"kind":794,"required":883},{"name":3919,"kind":794,"annotation":3920,"required":883},"binary",{"name":2497,"cls":797},{"name":3362,"kind":2368,"annotation":3922,"required":883},{"left":3923,"slice":3924},{"name":2343,"cls":797},{"elements":3925},[3926,3927],{"name":3368,"cls":797},{"name":3815,"cls":797},{"description":3929,"annotation":3930},"The received binary",{"left":3931,"slice":3932},{"name":1201,"cls":797},{"elements":3933},[3934,3935],{"name":2497,"cls":797},{"name":796,"cls":797},{"type":738,"name":2393,"path":3937,"parent":2188,"packages":3938,"attributes":3940,"classes":3942},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Funobservable_command_test\u002F__init__.py",[3939],"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test",[3941],"unitelabs.cdk.features.test.unobservable_command_test.__all__",[3943],"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest",{"type":766,"name":3941,"path":3937,"parent":2393,"lines":3945,"value":3946},[2207,2207],[3943],{"type":738,"name":3939,"path":3948,"parent":2393,"packages":3949,"classes":3950},"unitelabs\u002Fcdk\u002Ffeatures\u002Ftest\u002Funobservable_command_test\u002Funobservable_command_test.py",[750],[3943],{"type":848,"name":3943,"path":3948,"parent":3939,"description":3952,"lines":3953,"bases":3954,"functions":3957,"mro":3963},"Feature for testing unobservable commands",[2026,1059],[3955],{"annotation":3956},{"name":975,"cls":797},[3958,3959,3960,3961,3962],"unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.__init__","unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.command_without_parameters_and_responses","unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.convert_integer_to_string","unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.join_integer_and_string","unitelabs.cdk.features.test.unobservable_command_test.unobservable_command_test.UnobservableCommandTest.split_string_after_first_character",[3943,975,2226,2227],{"type":784,"name":3958,"path":3948,"parent":3943,"lines":3965,"parameters":3966},[1900,787],[3967],{"name":882,"kind":794,"required":883},{"type":784,"name":3959,"path":3948,"parent":3943,"description":3969,"lines":3970,"decorators":3971,"parameters":3972},"A command that takes no parameters and returns no responses",[1242,1042],[2239],[3973],{"name":882,"kind":794,"required":883},{"type":784,"name":3960,"path":3948,"parent":3943,"description":3975,"lines":3976,"decorators":3977,"parameters":3978,"returns":3983},"A command that takes one integer parameter and returns its string representation.",[842,898],[2239],[3979,3980],{"name":882,"kind":794,"required":883},{"name":3981,"kind":794,"annotation":3982,"required":883},"integer",{"name":803,"cls":797},{"description":3984,"annotation":3985},"The string representation of the given integer, e.g. '12345'",{"name":796,"cls":797},{"type":784,"name":3961,"path":3948,"parent":3943,"description":3987,"lines":3988,"decorators":3989,"parameters":3990,"returns":3996},"A command which takes an integer and a string parameter and returns a string with both joined (e.g.\n\"123abc\")",[1336,915],[2239],[3991,3992,3994],{"name":882,"kind":794,"required":883},{"name":3981,"kind":794,"annotation":3993,"required":883},{"name":803,"cls":797},{"name":3843,"kind":794,"annotation":3995,"required":883},{"name":796,"cls":797},{"description":3997,"annotation":3998},"Both parameters joined as string (e.g. '123abc')",{"name":796,"cls":797},{"type":784,"name":3962,"path":3948,"parent":3943,"description":4000,"lines":4001,"decorators":4002,"parameters":4003,"returns":4007},"A command which splits a given string after its first character. Returns empty parts if the input was\ntoo short.",[2332,1059],[2239],[4004,4005],{"name":882,"kind":794,"required":883},{"name":3843,"kind":794,"annotation":4006,"required":883},{"name":796,"cls":797},{"description":4008,"annotation":4009},"The first character, e.g. 'a', or an empty string if the input was empty",{"left":4010,"slice":4011},{"name":1201,"cls":797},{"elements":4012},[4013,4014],{"name":796,"cls":797},{"name":796,"cls":797},{"type":738,"name":2189,"path":4016,"parent":749,"packages":4017},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002F__init__.py",[4018,4019,4020],"unitelabs.cdk.features.robot.movement_controller","unitelabs.cdk.features.robot.grip_controller","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller",{"type":738,"name":4018,"path":4022,"parent":2189,"packages":4023,"attributes":4025,"classes":4027},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002Fmovement_controller\u002F__init__.py",[4024],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base",[4026],"unitelabs.cdk.features.robot.movement_controller.__all__",[4028,4029,4030],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase","unitelabs.cdk.features.robot.movement_controller.movement_controller_base.PositionIndex","unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition",{"type":766,"name":4026,"path":4022,"parent":4018,"lines":4032,"value":4033},[2207,2207],[4028,4029,4030],{"type":738,"name":4024,"path":4035,"parent":4018,"packages":4036,"classes":4037},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002Fmovement_controller\u002Fmovement_controller_base.py",[750],[4029,4030,4028],{"type":848,"name":4029,"path":4035,"parent":4024,"description":4039,"lines":4040,"decorators":4041,"bases":4042,"attributes":4045,"functions":4047,"mro":4049},"Specifies a position via an index number, starting at 1.",[1900,1169],[2463],[4043],{"annotation":4044},{"name":2467,"cls":797},[4046],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.PositionIndex.position_index",[4048],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.PositionIndex.__init__",[4029,2467,2481],{"type":766,"name":4046,"path":4035,"parent":4029,"lines":4051,"value":820,"annotation":4052},[1169,1169],{"left":4053,"slice":4054},{"name":2343,"cls":797},{"elements":4055},[4056,4057],{"name":803,"cls":797},{},{"type":784,"name":4048,"path":4035,"parent":4029,"lines":4059,"parameters":4060},[2517,2517],[4061,4062],{"name":882,"kind":794,"required":883},{"name":4063,"kind":794,"annotation":4064,"required":883},"position_index",{"left":4065,"slice":4066},{"name":2343,"cls":797},{"elements":4067},[4068,4069],{"name":803,"cls":797},{},{"type":848,"name":4030,"path":4035,"parent":4024,"description":4071,"lines":4072,"decorators":4073,"bases":4074,"attributes":4077,"functions":4080,"mro":4082},"Represent a possible position of a device where the device can move to.\n\nCan contain a sub-position, e.g. for specifying a position in a\nrack.",[842,909],[2463],[4075],{"annotation":4076},{"name":2467,"cls":797},[4078,4079],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition.position","unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition.sub_position",[4081],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.TargetPosition.__init__",[4030,2467,2481],{"type":766,"name":4078,"path":4035,"parent":4030,"lines":4084,"value":820,"annotation":4085},[788,788],{"name":796,"cls":797},{"type":766,"name":4079,"path":4035,"parent":4030,"lines":4087,"value":820,"annotation":4088},[909,909],{"name":4029,"cls":797},{"type":784,"name":4081,"path":4035,"parent":4030,"lines":4090,"parameters":4091},[2517,2517],[4092,4093,4096],{"name":882,"kind":794,"required":883},{"name":4094,"kind":794,"annotation":4095,"required":883},"position",{"name":796,"cls":797},{"name":4097,"kind":794,"annotation":4098,"required":883},"sub_position",{"name":4029,"cls":797},{"type":848,"name":4028,"path":4035,"parent":4024,"description":4100,"lines":4101,"bases":4102,"functions":4105,"mro":4110},"This Feature provides control over the movement of devices.\n\nIt specifies a set of predefined positions the device can be moved to, e.g. a robot arm can be moved to positioned\ntaught earlier to the robot.",[773,920],[4103],{"annotation":4104},{"name":975,"cls":797},[4106,4107,4108,4109],"unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.__init__","unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.get_available_positions","unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.get_current_position","unitelabs.cdk.features.robot.movement_controller.movement_controller_base.MovementControllerBase.move_to",[4028,975,2226,2227],{"type":784,"name":4106,"path":4035,"parent":4028,"lines":4112,"parameters":4113},[915,1968],[4114],{"name":882,"kind":794,"required":883},{"type":784,"name":4107,"path":4035,"parent":4028,"description":4116,"lines":4117,"decorators":4118,"parameters":4120,"returns":4122},"Get all positions of the device including the number of sub-positions.",[1389,1705],[4119,2252],"abc.abstractmethod",[4121],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4123},{"left":4124,"slice":4125},{"name":905,"cls":797},{"name":4030,"cls":797},{"type":784,"name":4108,"path":4035,"parent":4028,"description":4127,"lines":4128,"decorators":4129,"parameters":4130,"returns":4132},"Get the current position of the device.",[1398,1059],[4119,2252],[4131],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4133},{"name":4030,"cls":797},{"type":784,"name":4109,"path":4035,"parent":4028,"description":4135,"lines":4136,"decorators":4137,"parameters":4138},"Move the device to the specified position.",[1408,920],[4119,2353],[4139,4140,4143],{"name":882,"kind":794,"required":883},{"name":4141,"kind":794,"annotation":4142,"required":883},"target_position",{"name":4030,"cls":797},{"name":2367,"kind":2368,"annotation":4144,"required":883},{"name":2370,"cls":797},{"type":738,"name":4019,"path":4146,"parent":2189,"packages":4147,"attributes":4149,"classes":4151},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002Fgrip_controller\u002F__init__.py",[4148],"unitelabs.cdk.features.robot.grip_controller.grip_controller_base",[4150],"unitelabs.cdk.features.robot.grip_controller.__all__",[4152],"unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase",{"type":766,"name":4150,"path":4146,"parent":4019,"lines":4154,"value":4155},[2207,2207],[4152],{"type":738,"name":4148,"path":4157,"parent":4019,"packages":4158,"classes":4159},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002Fgrip_controller\u002Fgrip_controller_base.py",[750],[4152],{"type":848,"name":4152,"path":4157,"parent":4148,"description":4161,"lines":4162,"bases":4163,"functions":4166,"mro":4170},"Control a robotic gripper for e.g. labware transfer operations.",[2026,890],[4164],{"annotation":4165},{"name":975,"cls":797},[4167,4168,4169],"unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase.__init__","unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase.grip","unitelabs.cdk.features.robot.grip_controller.grip_controller_base.GripControllerBase.release",[4152,975,2226,2227],{"type":784,"name":4167,"path":4157,"parent":4152,"lines":4172,"parameters":4173},[1900,1245],[4174],{"name":882,"kind":794,"required":883},{"type":784,"name":4168,"path":4157,"parent":4152,"description":4176,"lines":4177,"decorators":4178,"parameters":4179},"Close the gripper.",[1046,1052],[4119,2239],[4180],{"name":882,"kind":794,"required":883},{"type":784,"name":4169,"path":4157,"parent":4152,"description":4182,"lines":4183,"decorators":4184,"parameters":4185},"Release the gripper.",[1774,890],[4119,2239],[4186],{"name":882,"kind":794,"required":883},{"type":738,"name":4020,"path":4188,"parent":2189,"packages":4189,"attributes":4191,"classes":4193},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002Flabware_transfer_manipulator_controller\u002F__init__.py",[4190],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base",[4192],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.__all__",[4194,4195,4196,4197,4198,4199],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.InvalidCommandSequence","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareNotPicked","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareNotPlaced","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.PositionIndex","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition",{"type":766,"name":4192,"path":4188,"parent":4020,"lines":4201,"value":4202},[787,1046],[4199,4195,4196,4197,4194,4198],{"type":738,"name":4190,"path":4204,"parent":4020,"packages":4205,"classes":4206},"unitelabs\u002Fcdk\u002Ffeatures\u002Frobot\u002Flabware_transfer_manipulator_controller\u002Flabware_transfer_manipulator_controller_base.py",[750],[4195,4196,4197,4198,4199,4194],{"type":848,"name":4195,"path":4204,"parent":4190,"description":4208,"lines":4209,"bases":4210,"mro":4213},"The issued command breaks the sequence of commands for the device based on its role in the labware transfer.",[1900,787],[4211],{"annotation":4212},{"name":1904,"cls":797},[4195],{"type":848,"name":4196,"path":4204,"parent":4190,"description":4215,"lines":4216,"bases":4217,"mro":4220},"Picking up the labware item from the source device failed.",[1169,1042],[4218],{"annotation":4219},{"name":1904,"cls":797},[4196],{"type":848,"name":4197,"path":4204,"parent":4190,"description":4222,"lines":4223,"bases":4224,"mro":4227},"Placing the labware item at the destination device failed.",[1046,768],[4225],{"annotation":4226},{"name":1904,"cls":797},[4197],{"type":848,"name":4198,"path":4204,"parent":4190,"description":4039,"lines":4229,"decorators":4230,"bases":4231,"attributes":4234,"functions":4236,"mro":4238},[851,890],[2463],[4232],{"annotation":4233},{"name":2467,"cls":797},[4235],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.PositionIndex.position_index",[4237],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.PositionIndex.__init__",[4198,2467,2481],{"type":766,"name":4235,"path":4204,"parent":4198,"lines":4240,"value":820,"annotation":4241},[890,890],{"left":4242,"slice":4243},{"name":2343,"cls":797},{"elements":4244},[4245,4246],{"name":803,"cls":797},{},{"type":784,"name":4237,"path":4204,"parent":4198,"lines":4248,"parameters":4249},[2517,2517],[4250,4251],{"name":882,"kind":794,"required":883},{"name":4063,"kind":794,"annotation":4252,"required":883},{"left":4253,"slice":4254},{"name":2343,"cls":797},{"elements":4255},[4256,4257],{"name":803,"cls":797},{},{"type":848,"name":4199,"path":4204,"parent":4190,"description":4259,"lines":4260,"decorators":4261,"bases":4262,"attributes":4265,"functions":4268,"mro":4270},"Representation of a possible position of a device where labware items can be handed over.\n\nCan contain a sub-position, e.g. for specifying a position in a\nrack.",[898,1690],[2463],[4263],{"annotation":4264},{"name":2467,"cls":797},[4266,4267],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition.position","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition.sub_position",[4269],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.HandoverPosition.__init__",[4199,2467,2481],{"type":766,"name":4266,"path":4204,"parent":4199,"lines":4272,"value":820,"annotation":4273},[915,915],{"name":796,"cls":797},{"type":766,"name":4267,"path":4204,"parent":4199,"lines":4275,"value":820,"annotation":4276},[1690,1690],{"name":4198,"cls":797},{"type":784,"name":4269,"path":4204,"parent":4199,"lines":4278,"parameters":4279},[2517,2517],[4280,4281,4283],{"name":882,"kind":794,"required":883},{"name":4094,"kind":794,"annotation":4282,"required":883},{"name":796,"cls":797},{"name":4097,"kind":794,"annotation":4284,"required":883},{"name":4198,"cls":797},{"type":848,"name":4194,"path":4204,"parent":4190,"description":4286,"lines":4287,"bases":4289,"functions":4292,"mro":4301},"Handle the transfer of labware items between devices.\n\nThis feature (together with the \"Labware Transfer Site Controller\" feature) provides commands to trigger the\nsub-tasks of handing over a labware item, e.g. a microtiter plate or a tube, from one device to another in a\nstandardized and generic way.\n\nFor each labware transfer a defined sequence of commands has to be called on both involved devices to ensure the\nproper synchronization of all necessary transfer actions without unwanted physical interferences and to optimize\nthe transfer performance regarding the execution time. Using the generic commands, labware transfers between any\narbitrary labware handling devices can be controlled (a robot device has not necessarily to be involved).\n\nGenerally, a labware transfer is executed between a source and a destination device, where one of them is the\nactive device (executing the handover actions) and the other one is the passive device.\n\nThe \"Labware Transfer Manipulator Controller\" feature is used to control the labware transfer on the side of the\nactive device to hand over labware to or take over labware from a passive device, which provides the\n\"Labware Transfer Site Controller\" feature.\n\nIf a device is capable to act either as the active or as the passive device of a labware transfer it must provide\nboth features.\n\nThe complete sequence of issued transfer commands on both devices is as follows:\n\n1. Prior to the actual labware transfer a \"Prepare For Output\" command is sent to the source device to execute all\n   necessary actions to be ready to release a labware item (e.g. open a tray) and simultaneously a \"Prepare For\n   Input\" command is sent to the destination device to execute all necessary actions to be ready to receive a\n   labware item (e.g. position the robotic arm near the tray of the source device).\n2. When both devices have successfully finished their \"Prepare For ...\" command execution, the next commands are\n   issued.\n3a If the source device is the active device it will receive a \"Put Labware\" command to execute all necessary\n   actions to put the labware item into the destination device. After the transfer has been finished successfully,\n   the destination device receives a \"Labware Delivered\" command, that triggers all actions to be done after the\n   labware item has been transferred (e.g. close the opened tray).\n3b If the destination device is the active device it will receive a \"Get Labware\" command to execute all necessary\n   actions to get the labware from the source device (e.g. gripping the labware item). After that command has been\n   finished successfully, the source device receives a \"Labware Removed\" command, that triggers all actions to be\n   done after the labware item has been transferred (e.g. close the opened tray).\n\nThe command sequences for an active source or destination device have always to be as follows:\n- for an active source device:        PrepareForOutput - PutLabware.\n- for an active destination device:   PrepareForInput - GetLabware.\n\nIf the commands issued by the client differ from the respective command sequences an \"Invalid Command Sequence\"\nerror will be raised.\n\nTo address the location, where a labware item can be handed over to or from other devices, every device must\nprovide one or more uniquely named positions (handover positions) via the \"Available Handover Positions\" property.\nA robot (active device) should have at least one handover position for each device that it interacts with, whereas\nmost passive devices will only have one handover position. In the case of a position array (e.g. a rack), the\nposition within the array is specified via the sub-position of the handover position, passed as an index number.\n\nTo address the positions within a device where the transferred labware item has to be stored at or is to be taken\nfrom (e.g. the storage positions inside an incubator), the internal position is specified. Each device must provide\nthe number of available internal positions via the \"Number Of Internal Positions\" property. In the case of no\nmultiple internal positions, this property as well as the \"Internal Position\" parameter value must be 1.\n\nWith the \"Prepare For Input\" command there is also information about the labware transferred, like labware type or\na unique labware identifier (e.g. a barcode).\n\nThe \"Intermediate Actions\" parameter of the \"Put Labware\" and \"Get Labware\" commands can be used to specify commands\nthat have to be executed while a labware item is transferred to avoid unnecessary movements, e.g. if a robot has to\nget a plate from a just opened tray and a lid has to be put on the plate before it will be gripped, the lid handling\nactions have to be included in the \"Get Labware\" actions. The intermediate actions have to be executed in the same\norder they have been specified by the \"Intermediate Actions\" parameter.\nThe property \"Available Intermediate Actions\" returns a list of commands that can be included in a \"Put Labware\" or\n\"Get Labware\" command.",[2351,4288],273,[4290],{"annotation":4291},{"name":975,"cls":797},[4293,4294,4295,4296,4297,4298,4299,4300],"unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.__init__","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_available_handover_positions","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_number_of_internal_positions","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_available_intermediate_actions","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.prepare_for_input","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.prepare_for_output","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.put_labware","unitelabs.cdk.features.robot.labware_transfer_manipulator_controller.labware_transfer_manipulator_controller_base.LabwareTransferManipulatorControllerBase.get_labware",[4194,975,2226,2227],{"type":784,"name":4293,"path":4204,"parent":4194,"lines":4303,"parameters":4305},[4304,1113],118,[4306],{"name":882,"kind":794,"required":883},{"type":784,"name":4294,"path":4204,"parent":4194,"description":4308,"lines":4309,"decorators":4310,"parameters":4311,"returns":4313},"All handover positions of the device including the number of sub-positions.",[1465,969],[4119,2252],[4312],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4314},{"left":4315,"slice":4316},{"name":905,"cls":797},{"name":4199,"cls":797},{"type":784,"name":4295,"path":4204,"parent":4194,"description":4318,"lines":4319,"decorators":4321,"parameters":4322,"returns":4324},"Get the number of addressable internal positions of the device.",[4320,1472],131,[4119,2252],[4323],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4325},{"left":4326,"slice":4327},{"name":2343,"cls":797},{"elements":4328},[4329,4330],{"name":803,"cls":797},{},{"type":784,"name":4296,"path":4204,"parent":4194,"description":4332,"lines":4333,"decorators":4335,"parameters":4336,"returns":4338},"Get all commands that can be executed within a \"Put Labware\" or \"Get Labware\" command execution.",[3037,4334],147,[4119,2252],[4337],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4339},{"left":4340,"slice":4341},{"name":905,"cls":797},{"left":4342,"slice":4343},{"name":2343,"cls":797},{"elements":4344},[4345,4346],{"name":796,"cls":797},{},{"type":784,"name":4297,"path":4204,"parent":4194,"description":4348,"lines":4349,"decorators":4352,"parameters":4353,"throws":4369},"Put the device into a state in which it is ready to accept new labware at the specified handover position.",[4350,4351],149,180,[4119,2353],[4354,4355,4358,4361,4364,4367],{"name":882,"kind":794,"required":883},{"name":4356,"kind":794,"annotation":4357,"required":883},"handover_position",{"name":4199,"cls":797},{"name":4359,"kind":794,"annotation":4360,"required":883},"internal_position",{"name":4198,"cls":797},{"name":4362,"kind":794,"annotation":4363,"required":883},"labware_type",{"name":796,"cls":797},{"name":4365,"kind":794,"annotation":4366,"required":883},"labware_unique_id",{"name":796,"cls":797},{"name":2367,"kind":2368,"annotation":4368,"required":883},{"name":2370,"cls":797},[4370],{"description":4371,"annotation":4372},"The issued command does not follow the\nsequence of commands for the device according to its role in\nthe labware transfer.",{"name":4195,"cls":797},{"type":784,"name":4298,"path":4204,"parent":4194,"description":4374,"lines":4375,"decorators":4378,"parameters":4379,"throws":4387},"Put the device into a state in which it is ready to release the labware at the specified handover position.",[4376,4377],182,205,[4119,2353],[4380,4381,4383,4385],{"name":882,"kind":794,"required":883},{"name":4356,"kind":794,"annotation":4382,"required":883},{"name":4199,"cls":797},{"name":4359,"kind":794,"annotation":4384,"required":883},{"name":4198,"cls":797},{"name":2367,"kind":2368,"annotation":4386,"required":883},{"name":2370,"cls":797},[4388],{"description":4371,"annotation":4389},{"name":4195,"cls":797},{"type":784,"name":4299,"path":4204,"parent":4194,"description":4391,"lines":4392,"decorators":4395,"parameters":4396,"throws":4407},"Place the currently processed labware item at the specified handover position.\n\nHandover position is sent to the active source device after a\n\"Prepare For Output\" command.",[4393,4394],207,239,[4119,2353],[4397,4398,4400,4405],{"name":882,"kind":794,"required":883},{"name":4356,"kind":794,"annotation":4399,"required":883},{"name":4199,"cls":797},{"name":4401,"kind":794,"annotation":4402,"required":883},"intermediate_actions",{"left":4403,"slice":4404},{"name":905,"cls":797},{"name":796,"cls":797},{"name":2367,"kind":2368,"annotation":4406,"required":883},{"name":2370,"cls":797},[4408,4410],{"description":4371,"annotation":4409},{"name":4195,"cls":797},{"description":4411,"annotation":4412},"Placing the labware item at the destination\ndevice failed.",{"name":4197,"cls":797},{"type":784,"name":4300,"path":4204,"parent":4194,"description":4414,"lines":4415,"decorators":4416,"parameters":4417,"throws":4427},"Retrieve a labware item from the specified handover position.\n\nHandover position is sent to the active destination device after\na \"Prepare For Input\" command.",[1554,4288],[4119,2353],[4418,4419,4421,4425],{"name":882,"kind":794,"required":883},{"name":4356,"kind":794,"annotation":4420,"required":883},{"name":4199,"cls":797},{"name":4401,"kind":794,"annotation":4422,"required":883},{"left":4423,"slice":4424},{"name":905,"cls":797},{"name":796,"cls":797},{"name":2367,"kind":2368,"annotation":4426,"required":883},{"name":2370,"cls":797},[4428,4430],{"description":4371,"annotation":4429},{"name":4195,"cls":797},{"description":4431,"annotation":4432},"Picking up the labware item from the source\ndevice failed.",{"name":4196,"cls":797},{"type":738,"name":2190,"path":4434,"parent":749,"packages":4435},"unitelabs\u002Fcdk\u002Ffeatures\u002Fweighing\u002F__init__.py",[4436],"unitelabs.cdk.features.weighing.weighing_service",{"type":738,"name":4436,"path":4438,"parent":2190,"packages":4439,"attributes":4441,"classes":4443},"unitelabs\u002Fcdk\u002Ffeatures\u002Fweighing\u002Fweighing_service\u002F__init__.py",[4440],"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base",[4442],"unitelabs.cdk.features.weighing.weighing_service.__all__",[4444],"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase",{"type":766,"name":4442,"path":4438,"parent":4436,"lines":4446,"value":4447},[2207,2207],[4444],{"type":738,"name":4440,"path":4449,"parent":4436,"packages":4450,"classes":4451},"unitelabs\u002Fcdk\u002Ffeatures\u002Fweighing\u002Fweighing_service\u002Fweighing_service_base.py",[750],[4452,4453,4454,4444],"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.Unstable","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.Overloaded","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.Underloaded",{"type":848,"name":4452,"path":4449,"parent":4440,"description":4456,"lines":4457,"bases":4458,"mro":4461},"Command understood but timeout for stable reading was reached.",[2026,1864],[4459],{"annotation":4460},{"name":1904,"cls":797},[4452],{"type":848,"name":4453,"path":4449,"parent":4440,"description":4463,"lines":4464,"bases":4465,"mro":4468},"Device in overload range.",[787,1238],[4466],{"annotation":4467},{"name":1904,"cls":797},[4453],{"type":848,"name":4454,"path":4449,"parent":4440,"description":4470,"lines":4471,"bases":4472,"mro":4475},"Device in underload range.",[1042,1245],[4473],{"annotation":4474},{"name":1904,"cls":797},[4454],{"type":848,"name":4444,"path":4449,"parent":4440,"description":4477,"lines":4478,"bases":4479,"functions":4482,"mro":4493},"This feature contains commands and properties used for common functions required when weighing things.\n\nThe feature enables access to the current net weight (stable and dynamic) and the tare weight. Commands for zeroing\nand taring are provided.",[768,2139],[4480],{"annotation":4481},{"name":975,"cls":797},[4483,4484,4485,4486,4487,4488,4489,4490,4491,4492],"unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.__init__","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.subscribe_weight","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.subscribe_tare_weight","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.get_stable_weight","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.tare","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.tare_stable","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.set_tare_weight","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.clear_tare_weight","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.zero","unitelabs.cdk.features.weighing.weighing_service.weighing_service_base.WeighingServiceBase.zero_stable",[4444,975,2226,2227],{"type":784,"name":4483,"path":4449,"parent":4444,"lines":4495,"parameters":4496},[1058,909],[4497,4498],{"name":882,"kind":794,"required":883},{"name":4499,"kind":4500,"required":42,"default":4501},"**kwarg","variadic keyword","{}",{"type":784,"name":4484,"path":4449,"parent":4444,"description":4503,"lines":4504,"decorators":4505,"parameters":4506,"returns":4508,"throws":4512},"Subscribe to the current net weight in gram, accessed immediately.",[813,915],[4119,2334],[4507],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4509},{"left":4510,"slice":4511},{"name":2340,"cls":797},{"name":1662,"cls":797},[4513,4515],{"description":4463,"annotation":4514},{"name":4453,"cls":797},{"description":4470,"annotation":4516},{"name":4454,"cls":797},{"type":784,"name":4485,"path":4449,"parent":4444,"description":4518,"lines":4519,"decorators":4520,"parameters":4521,"returns":4523},"Subscribe to the stored tare weight in gram.",[2332,1381],[4119,2334],[4522],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4524},{"left":4525,"slice":4526},{"name":2340,"cls":797},{"name":1662,"cls":797},{"type":784,"name":4486,"path":4449,"parent":4444,"description":4528,"lines":4529,"decorators":4530,"parameters":4531,"returns":4533,"throws":4536},"Get the stable net weight in gram.",[3399,1409],[4119,2239],[4532],{"name":882,"kind":794,"required":883},{"description":4534,"annotation":4535},"The stable net weight in gram.",{"name":1662,"cls":797},[4537,4539,4541],{"description":4456,"annotation":4538},{"name":4452,"cls":797},{"description":4463,"annotation":4540},{"name":4453,"cls":797},{"description":4470,"annotation":4542},{"name":4454,"cls":797},{"type":784,"name":4487,"path":4449,"parent":4444,"description":4544,"lines":4545,"decorators":4546,"parameters":4547,"returns":4549},"Tare with the current net weight, executed immediately (Not stable).",[1414,1415],[4119,2239],[4548],{"name":882,"kind":794,"required":883},{"description":4550,"annotation":4551},"The stored tare weight in gram.",{"name":1662,"cls":797},{"type":784,"name":4488,"path":4449,"parent":4444,"description":4553,"lines":4554,"decorators":4555,"parameters":4556,"returns":4558,"throws":4560},"Tare with the stable net weight.",[920,1186],[4119,2239],[4557],{"name":882,"kind":794,"required":883},{"description":4550,"annotation":4559},{"name":1662,"cls":797},[4561],{"description":4456,"annotation":4562},{"name":4452,"cls":797},{"type":784,"name":4489,"path":4449,"parent":4444,"description":4564,"lines":4565,"decorators":4566,"parameters":4567},"Set a new, custom tare weight in gram.",[2982,3000],[4119,2239],[4568,4569],{"name":882,"kind":794,"required":883},{"name":4570,"kind":794,"annotation":4571,"required":883},"tare_weight",{"name":1662,"cls":797},{"type":784,"name":4490,"path":4449,"parent":4444,"description":4573,"lines":4574,"decorators":4575,"parameters":4576},"Clear the currently stored tare weight.",[934,1079],[4119,2239],[4577],{"name":882,"kind":794,"required":883},{"type":784,"name":4491,"path":4449,"parent":4444,"description":4579,"lines":4580,"decorators":4581,"parameters":4582},"Zero the balance immediately.",[2678,947],[4119,2239],[4583],{"name":882,"kind":794,"required":883},{"type":784,"name":4492,"path":4449,"parent":4444,"description":4585,"lines":4586,"decorators":4587,"parameters":4588,"throws":4590},"Zero the balance with a stable measurement.",[3010,2139],[4119,2239],[4589],{"name":882,"kind":794,"required":883},[4591],{"description":4456,"annotation":4592},{"name":4452,"cls":797},{"type":738,"name":2191,"path":4594,"parent":749,"packages":4595},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002F__init__.py",[4596,4597,4598,4599,4600],"unitelabs.cdk.features.core.authorization_service","unitelabs.cdk.features.core.lock_controller","unitelabs.cdk.features.core.authentication_service","unitelabs.cdk.features.core.simulation_controller","unitelabs.cdk.features.core.sila_service",{"type":738,"name":4596,"path":4602,"parent":2191,"packages":4603,"attributes":4605,"classes":4607},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fauthorization_service\u002F__init__.py",[4604],"unitelabs.cdk.features.core.authorization_service.authorization_service",[4606],"unitelabs.cdk.features.core.authorization_service.__all__",[3712,4608,4609],"unitelabs.cdk.features.core.authorization_service.authorization_service.AuthorizationService","unitelabs.cdk.features.core.authorization_service.authorization_service.InvalidAccessToken",{"type":766,"name":4606,"path":4602,"parent":4596,"lines":4611,"value":4612},[2207,2207],[3712,4608,4609],{"type":738,"name":4604,"path":4614,"parent":4596,"packages":4615,"classes":4616},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fauthorization_service\u002Fauthorization_service.py",[750,4596],[4609,3712,4608],{"type":848,"name":4609,"path":4614,"parent":4604,"description":4618,"lines":4619,"bases":4620,"mro":4623},"The sent access token is not valid.",[1242,1169],[4621],{"annotation":4622},{"name":1904,"cls":797},[4609],{"type":848,"name":3712,"path":4614,"parent":4604,"description":4625,"lines":4626,"decorators":4627,"bases":4628,"attributes":4631,"functions":4633,"mro":4636},"Token to be sent with every call in order to get access to the SiLA Server functionality.",[842,1336],[2463],[4629],{"annotation":4630},{"name":3266,"cls":797},[4632],"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken.access_token",[4634,4635],"unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken.__init__","unitelabs.cdk.features.core.authorization_service.authorization_service.AccessToken.intercept",[3712,3266,2481],{"type":766,"name":4632,"path":4614,"parent":3712,"lines":4638,"value":820,"annotation":4639},[1052,1052],{"name":796,"cls":797},{"type":784,"name":4635,"path":4614,"parent":3712,"lines":4641,"decorators":4642,"parameters":4643},[1774,1336],[1556],[4644,4645],{"name":882,"kind":794,"required":883},{"name":4646,"kind":794,"annotation":4647,"required":883},"context",{"name":4648,"cls":797},"sila.framework.common.handler.Handler",{"type":784,"name":4634,"path":4614,"parent":3712,"lines":4650,"parameters":4651},[2517,2517],[4652,4653],{"name":882,"kind":794,"required":883},{"name":4654,"kind":794,"annotation":4655,"required":883},"access_token",{"name":796,"cls":797},{"type":848,"name":4608,"path":4614,"parent":4604,"description":4657,"lines":4658,"bases":4659,"functions":4662,"mro":4664},"This Feature provides access control for the implementing server.\n\nIt specifies the SiLA Client Metadata for the access token, that has been provided by the\nAuthenticationService core Feature.",[909,1294],[4660],{"annotation":4661},{"name":975,"cls":797},[4663],"unitelabs.cdk.features.core.authorization_service.authorization_service.AuthorizationService.__init__",[4608,975,2226,2227],{"type":784,"name":4663,"path":4614,"parent":4608,"lines":4666,"parameters":4667},[1679,1294],[4668,4669],{"name":882,"kind":794,"required":883},{"name":3362,"kind":794,"annotation":4670,"required":42,"default":4673},{"left":4671,"slice":4672},{"name":955,"cls":797},{"name":3712,"cls":797},{"name":3712,"cls":797},{"type":738,"name":4597,"path":4675,"parent":2191,"packages":4676,"attributes":4678,"classes":4680},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Flock_controller\u002F__init__.py",[4677],"unitelabs.cdk.features.core.lock_controller.lock_controller",[4679],"unitelabs.cdk.features.core.lock_controller.__all__",[4681,4682,4683,4684,4685,4686],"unitelabs.cdk.features.core.lock_controller.lock_controller.InvalidLockIdentifier","unitelabs.cdk.features.core.lock_controller.lock_controller.Lock","unitelabs.cdk.features.core.lock_controller.lock_controller.LockController","unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier","unitelabs.cdk.features.core.lock_controller.lock_controller.ServerAlreadyLocked","unitelabs.cdk.features.core.lock_controller.lock_controller.ServerNotLocked",{"type":766,"name":4679,"path":4675,"parent":4597,"lines":4688,"value":4689},[787,768],[4681,4682,4683,4683,4684,4685,4686],{"type":738,"name":4677,"path":4691,"parent":4597,"packages":4692,"classes":4693},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Flock_controller\u002Flock_controller.py",[750],[4681,4685,4686,4684,4682,4683],{"type":848,"name":4681,"path":4691,"parent":4677,"description":4695,"lines":4696,"bases":4697,"mro":4700},"The sent lock identifier is not valid.",[1169,1042],[4698],{"annotation":4699},{"name":1904,"cls":797},[4681],{"type":848,"name":4685,"path":4691,"parent":4677,"description":4702,"lines":4703,"bases":4704,"mro":4707},"The SiLA Server can not be locked because it is already locked.",[1046,768],[4705],{"annotation":4706},{"name":1904,"cls":797},[4685],{"type":848,"name":4686,"path":4691,"parent":4677,"description":4709,"lines":4710,"bases":4711,"mro":4714},"The SiLA Server can not be unlocked because it is not locked.",[851,1774],[4712],{"annotation":4713},{"name":1904,"cls":797},[4686],{"type":848,"name":4684,"path":4691,"parent":4677,"description":4716,"lines":4717,"decorators":4718,"bases":4719,"attributes":4722,"functions":4724,"mro":4727},"The lock identifier has to be sent with every (lock protected) call in order to use the functionality of a locked SiLA Server.",[890,1324],[2463],[4720],{"annotation":4721},{"name":3266,"cls":797},[4723],"unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier.lock_identifier",[4725,4726],"unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier.__init__","unitelabs.cdk.features.core.lock_controller.lock_controller.LockIdentifier.intercept",[4684,3266,2481],{"type":766,"name":4723,"path":4691,"parent":4684,"lines":4729,"value":820,"annotation":4730},[901,901],{"name":796,"cls":797},{"type":784,"name":4726,"path":4691,"parent":4684,"lines":4732,"decorators":4733,"parameters":4734},[2504,1324],[1556],[4735],{"name":882,"kind":794,"required":883},{"type":784,"name":4725,"path":4691,"parent":4684,"lines":4737,"parameters":4738},[2517,2517],[4739,4740],{"name":882,"kind":794,"required":883},{"name":4741,"kind":794,"annotation":4742,"required":883},"lock_identifier",{"name":796,"cls":797},{"type":848,"name":4682,"path":4691,"parent":4677,"description":4744,"lines":4745,"decorators":4746,"attributes":4747,"functions":4752,"mro":4754},"A lock used for unique access to resources.",[1294,1399],[2463],[4748,4749,4750,4751],"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.identifier","unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.lifetime","unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.last_usage","unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.is_expired",[4753],"unitelabs.cdk.features.core.lock_controller.lock_controller.Lock.__init__",[4682],{"type":766,"name":4748,"path":4691,"parent":4682,"description":4756,"lines":4757,"value":4758,"annotation":4759},"The identifier used by the client for unique access.",[2332,2332],"dataclasses.field(default_factory=(lambda: str(uuid.uuid4())))",{"name":796,"cls":797},{"type":766,"name":4749,"path":4691,"parent":4682,"description":4761,"lines":4762,"value":4763,"annotation":4764},"The lifetime of the access token before it expires.",[1381,1381],"dataclasses.field(default_factory=(datetime.timedelta))",{"name":4765,"cls":797},"datetime.timedelta",{"type":766,"name":4750,"path":4691,"parent":4682,"description":4767,"lines":4768,"value":4769,"annotation":4770},"Point in time when the access token was used last.",[1389,1389],"dataclasses.field(default_factory=(datetime.datetime.now))",{"name":4771,"cls":797},"datetime.datetime",{"type":766,"name":4751,"path":4691,"parent":4682,"description":4773,"lines":4774,"value":820,"annotation":4775},"Whether the lock has expired.",[3452,1399],{"name":1003,"cls":797},{"type":784,"name":4753,"path":4691,"parent":4682,"lines":4777,"parameters":4778},[2517,2517],[4779,4780,4783,4786],{"name":882,"kind":794,"required":883},{"name":4781,"kind":794,"annotation":4782,"required":42},"identifier",{"name":796,"cls":797},{"name":4784,"kind":794,"annotation":4785,"required":42},"lifetime",{"name":4765,"cls":797},{"name":4787,"kind":794,"annotation":4788,"required":42},"last_usage",{"name":4771,"cls":797},{"type":848,"name":4683,"path":4691,"parent":4677,"description":4790,"lines":4791,"bases":4792,"attributes":4795,"functions":4799,"mro":4804},"This Feature allows a SiLA Client to lock a SiLA Server for exclusive use, preventing other SiLA Clients\nfrom using the SiLA Server while it is locked. To lock a SiLA Server a Lock Identifier has to be set, using the\n'LockServer' command. This Lock Identifier has to be sent along with every (lock protected)\nrequest to the SiLA Server in order to use its functionality.\n\nTo send the lock identifier the SiLA Client Meta Data 'LockIdentifier' has to be used.\n\nWhen locking a SiLA Server a timeout can be specified that defines the time after which the SiLA Server will\nbe automatically unlocked if no request with a valid lock identifier has been received meanwhile.\nAfter the timeout has expired or after explicit unlock no lock identifier has to be sent any more.",[1408,3224],[4793],{"annotation":4794},{"name":975,"cls":797},[4796,4797,4798],"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController._lock","unitelabs.cdk.features.core.lock_controller.lock_controller.LockController._event","unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.lock",[4800,4801,4802,4803],"unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.__init__","unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.subscribe_is_locked","unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.lock_server","unitelabs.cdk.features.core.lock_controller.lock_controller.LockController.unlock_server",[4683,975,2226,2227],{"type":784,"name":4800,"path":4691,"parent":4683,"lines":4806,"parameters":4807},[920,2659],[4808],{"name":882,"kind":794,"required":883},{"type":766,"name":4796,"path":4691,"parent":4683,"lines":4810,"value":820,"annotation":4811},[1430,1430],{"join":4812},[4813,820],{"name":4682,"cls":797},{"type":766,"name":4797,"path":4691,"parent":4683,"lines":4815,"value":895},[2659,2659],{"type":766,"name":4798,"path":4691,"parent":4683,"description":4817,"lines":4818,"value":820,"annotation":4819},"The lock on the SiLA Server, if any.",[2876,933],{"join":4820},[4821,820],{"name":4682,"cls":797},{"type":784,"name":4801,"path":4691,"parent":4683,"description":4823,"lines":4824,"decorators":4825,"parameters":4826,"returns":4828},"Returns true if the SiLA Server is currently locked or false else.\n\nThis property MUST NOT be lock protected, so that any SiLA Client can query the current lock state\nof a SiLA Server.",[1079,1453],[2334],[4827],{"name":882,"kind":794,"required":883},{"description":807,"annotation":4829},{"left":4830,"slice":4831},{"name":2340,"cls":797},{"name":1003,"cls":797},{"type":784,"name":4802,"path":4691,"parent":4683,"description":4833,"lines":4834,"decorators":4835,"parameters":4836,"throws":4847},"Locks a SiLA Server for exclusive use by setting a lock identifier that has to be sent along with\nany following (lock protected) request as long as the SiLA Server is locked.\nThe lock can be reset by issuing the 'Unlock Server' command.",[1459,970],[2239],[4837,4838,4840],{"name":882,"kind":794,"required":883},{"name":4741,"kind":794,"annotation":4839,"required":883},{"name":796,"cls":797},{"name":1843,"kind":794,"annotation":4841,"required":883},{"left":4842,"slice":4843},{"name":2343,"cls":797},{"elements":4844},[4845,4846],{"name":803,"cls":797},{},[4848],{"description":4702,"annotation":4849},{"name":4685,"cls":797},{"type":784,"name":4803,"path":4691,"parent":4683,"description":4851,"lines":4852,"decorators":4853,"parameters":4854,"throws":4858},"Unlocks a locked SiLA Server. No lock identifier has to be sent for any following calls until\nthe server is locked again via the 'Lock Server' command.",[3046,3224],[2239],[4855,4856],{"name":882,"kind":794,"required":883},{"name":4741,"kind":794,"annotation":4857,"required":883},{"name":796,"cls":797},[4859,4861],{"description":4709,"annotation":4860},{"name":4686,"cls":797},{"description":4695,"annotation":4862},{"name":4681,"cls":797},{"type":738,"name":4598,"path":4864,"parent":2191,"packages":4865,"attributes":4867,"classes":4869},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fauthentication_service\u002F__init__.py",[4866],"unitelabs.cdk.features.core.authentication_service.authentication_service",[4868],"unitelabs.cdk.features.core.authentication_service.__all__",[4870,4871,4872,4873],"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken","unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationFailed","unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService","unitelabs.cdk.features.core.authentication_service.authentication_service.InvalidAccessToken",{"type":766,"name":4868,"path":4864,"parent":4598,"lines":4875,"value":4876},[2207,2207],[4870,4871,4872,4873],{"type":738,"name":4866,"path":4878,"parent":4598,"packages":4879,"classes":4880},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fauthentication_service\u002Fauthentication_service.py",[750],[4871,4873,4870,4872],{"type":848,"name":4871,"path":4878,"parent":4866,"description":4882,"lines":4883,"bases":4884,"mro":4887},"The provided credentials are not valid.",[1169,1042],[4885],{"annotation":4886},{"name":1904,"cls":797},[4871],{"type":848,"name":4873,"path":4878,"parent":4866,"description":4618,"lines":4889,"bases":4890,"mro":4893},[1046,768],[4891],{"annotation":4892},{"name":1904,"cls":797},[4873],{"type":848,"name":4870,"path":4878,"parent":4866,"description":4895,"lines":4896,"decorators":4897,"attributes":4898,"functions":4904,"mro":4906},"An access token used for authorization.",[851,1679],[2463],[4899,4900,4901,4902,4903],"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.token","unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.scope","unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.lifetime","unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.last_usage","unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.is_expired",[4905],"unitelabs.cdk.features.core.authentication_service.authentication_service.AccessToken.__init__",[4870],{"type":766,"name":4899,"path":4878,"parent":4870,"description":4908,"lines":4909,"value":4758,"annotation":4910},"The token used by the client for authorization.",[890,890],{"name":796,"cls":797},{"type":766,"name":4900,"path":4878,"parent":4870,"description":4912,"lines":4913,"value":4914,"annotation":4915},"The requested scope of access.",[898,898],"dataclasses.field(default_factory=list)",{"left":4916,"slice":4917},{"name":905,"cls":797},{"name":4918,"cls":797},"sila.framework.identifiers.feature_identifier.FeatureIdentifier",{"type":766,"name":4901,"path":4878,"parent":4870,"description":4761,"lines":4920,"value":4763,"annotation":4921},[2504,2504],{"name":4765,"cls":797},{"type":766,"name":4902,"path":4878,"parent":4870,"description":4767,"lines":4923,"value":4769,"annotation":4924},[912,912],{"name":4771,"cls":797},{"type":766,"name":4903,"path":4878,"parent":4870,"description":4926,"lines":4927,"value":820,"annotation":4928},"Whether the access token has expired.",[3866,1679],{"name":1003,"cls":797},{"type":784,"name":4905,"path":4878,"parent":4870,"lines":4930,"parameters":4931},[2517,2517],[4932,4933,4935,4940,4942],{"name":882,"kind":794,"required":883},{"name":2125,"kind":794,"annotation":4934,"required":42},{"name":796,"cls":797},{"name":4936,"kind":794,"annotation":4937,"required":42},"scope",{"left":4938,"slice":4939},{"name":905,"cls":797},{"name":4918,"cls":797},{"name":4784,"kind":794,"annotation":4941,"required":42},{"name":4765,"cls":797},{"name":4787,"kind":794,"annotation":4943,"required":42},{"name":4771,"cls":797},{"type":848,"name":4872,"path":4878,"parent":4866,"description":4945,"lines":4946,"bases":4947,"attributes":4950,"functions":4953,"mro":4958},"This Feature provides SiLA Clients with access tokens based on a user identification and password.\n\n1. the user needs to login with the Login command into the server with a user identification (=user name) and a password\n2. after verification, an Access Token with the Token Lifetime information will be generated and provided by the server.\n3. the user can log-out from the server with the Logout command - a valid Access Token is required to run this command.",[915,994],[4948],{"annotation":4949},{"name":975,"cls":797},[4951,4952],"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.access_tokens","unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.default_lifetime",[4954,4955,4956,4957],"unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.__init__","unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.login","unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.logout","unitelabs.cdk.features.core.authentication_service.authentication_service.AuthenticationService.validate",[4872,975,2226,2227],{"type":784,"name":4954,"path":4878,"parent":4872,"lines":4960,"parameters":4961},[1697,1398],[4962],{"name":882,"kind":794,"required":883},{"type":766,"name":4951,"path":4878,"parent":4872,"lines":4964,"value":4965},[3452,3452],"dict[str, AccessToken]()",{"type":766,"name":4952,"path":4878,"parent":4872,"lines":4967,"value":4968},[1398,1398],"datetime.timedelta(hours=1)",{"type":784,"name":4955,"path":4878,"parent":4872,"description":4970,"lines":4971,"decorators":4972,"parameters":4973,"returns":5000,"throws":5013},"Provides an access token based on user information.",[1399,3194],[2239],[4974,4975,4978,4981,4990],{"name":882,"kind":794,"required":883},{"name":4976,"kind":794,"annotation":4977,"required":883},"user_identification",{"name":796,"cls":797},{"name":4979,"kind":794,"annotation":4980,"required":883},"password",{"name":796,"cls":797},{"name":4982,"kind":794,"annotation":4983,"required":883},"requested_server",{"left":4984,"slice":4985},{"name":2343,"cls":797},{"elements":4986},[4987,4988,4989],{"name":796,"cls":797},{},{},{"name":4991,"kind":794,"annotation":4992,"required":883},"requested_features",{"left":4993,"slice":4994},{"name":905,"cls":797},{"left":4995,"slice":4996},{"name":2343,"cls":797},{"elements":4997},[4998,4999],{"name":796,"cls":797},{},{"description":5001,"annotation":5002},"The token to be used along with accessing a\nCommand or Property on a SiLA Server.",{"left":5003,"slice":5004},{"name":1201,"cls":797},{"elements":5005},[5006,5007],{"name":796,"cls":797},{"left":5008,"slice":5009},{"name":2343,"cls":797},{"elements":5010},[5011,5012],{"name":803,"cls":797},{},[5014],{"description":4882,"annotation":5015},{"name":4871,"cls":797},{"type":784,"name":4956,"path":4878,"parent":4872,"description":5017,"lines":5018,"decorators":5019,"parameters":5020,"throws":5024},"Invalidates the given access token immediately.",[1113,1473],[2239],[5021,5022],{"name":882,"kind":794,"required":883},{"name":4654,"kind":794,"annotation":5023,"required":883},{"name":796,"cls":797},[5025],{"description":4618,"annotation":5026},{"name":4873,"cls":797},{"type":784,"name":4957,"path":4878,"parent":4872,"description":5028,"lines":5029,"parameters":5030,"returns":5044},"Subclass to validate the given credentials.",[970,994],[5031,5032,5036,5039],{"name":882,"kind":794,"required":883},{"name":5033,"kind":794,"annotation":5034,"required":883,"description":5035},"username",{"name":796,"cls":797},"The username.",{"name":4979,"kind":794,"annotation":5037,"required":883,"description":5038},{"name":796,"cls":797},"The password.",{"name":4936,"kind":794,"annotation":5040,"required":883,"description":5043},{"left":5041,"slice":5042},{"name":905,"cls":797},{"name":4918,"cls":797},"The list requested features.",{"description":5045,"annotation":5046},"Whether the given username and password valid and authorized to\naccess the requested scope.",{"name":1003,"cls":797},{"type":738,"name":4599,"path":5048,"parent":2191,"packages":5049,"attributes":5051,"classes":5053},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fsimulation_controller\u002F__init__.py",[5050],"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base",[5052],"unitelabs.cdk.features.core.simulation_controller.__all__",[5054,5055,5056],"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase","unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.StartSimulationModeFailed","unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.StartRealModeFailed",{"type":766,"name":5052,"path":5048,"parent":4599,"lines":5058,"value":5059},[2207,2207],[5054,5056,5055],{"type":738,"name":5050,"path":5061,"parent":4599,"packages":5062,"classes":5063},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fsimulation_controller\u002Fsimulation_controller_base.py",[750],[5055,5056,5054],{"type":848,"name":5055,"path":5061,"parent":5050,"description":5065,"lines":5066,"bases":5067,"mro":5070},"The server cannot change to Simulation Mode.\n\nThis error can, e.g., be thrown, if a real-world process needs to be ended before switching to simulation\nmode.",[2026,1242],[5068],{"annotation":5069},{"name":1904,"cls":797},[5055],{"type":848,"name":5056,"path":5061,"parent":5050,"description":5072,"lines":5073,"bases":5074,"mro":5077},"The server cannot change to Real Mode.\n\nThis error can, e.g., be thrown, if a device is not ready to change into Real Mode.",[1245,1052],[5075],{"annotation":5076},{"name":1904,"cls":797},[5056],{"type":848,"name":5054,"path":5061,"parent":5050,"description":5079,"lines":5080,"bases":5081,"attributes":5084,"functions":5086,"mro":5091},"This Feature provides control over the simulation behaviour of a SiLA Server.\n\nA SiLA Server can run in two modes:\n(a) Real Mode - with real activities, e.g. addressing or controlling real hardware,\n    e.g. through serial\u002FCANBus commands, writing to real databases, moving real objects etc.\n(b) Simulation Mode - where every command is only simulated and responses are just example returns.\n\nNote that certain commands and properties might not be affected by this feature if they\ndo not interact with the real world.",[1053,2849],[5082],{"annotation":5083},{"name":975,"cls":797},[5085],"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase._simulation_mode",[5087,5088,5089,5090],"unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.__init__","unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.start_simulation_mode","unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.start_real_mode","unitelabs.cdk.features.core.simulation_controller.simulation_controller_base.SimulationControllerBase.simulation_mode",[5054,975,2226,2227],{"type":766,"name":5085,"path":5061,"parent":5054,"lines":5093,"value":1370},[773,773],{"type":784,"name":5087,"path":5061,"parent":5054,"lines":5095,"parameters":5096},[3866,915],[5097],{"name":882,"kind":794,"required":883},{"type":784,"name":5088,"path":5061,"parent":5054,"description":5099,"lines":5100,"decorators":5101,"parameters":5102,"throws":5104},"Set the SiLA Server to run in Simulation Mode, i.e. all following commands are executed in simulation mode.\n\nThe Simulation Mode can only be entered, if all hardware operations have been safely terminated\nor are in a controlled, safe state.\n\nThe simulation mode can be stopped by issuing the 'Start Real Mode' command.",[2332,1399],[4119,2239],[5103],{"name":882,"kind":794,"required":883},[5105],{"description":5106,"annotation":5107},"If the server cannot change to Simulation Mode.",{"name":5055,"cls":797},{"type":784,"name":5089,"path":5061,"parent":5054,"description":5109,"lines":5110,"decorators":5111,"parameters":5112,"throws":5114},"Set the SiLA Server to run in real mode.\n\nIn real-mode all following commands are executed with real-world\ninteractions, like serial port\u002FCAN communication, motor actions etc.\n\nIf the server is in Simulation Mode it can be interrupted at any time. A re-initialization of\nthe hardware might be required. The Real Mode can be stopped by issuing the 'Start Simulation Mode' command.",[2586,2296],[4119,2239],[5113],{"name":882,"kind":794,"required":883},[5115],{"description":5116,"annotation":5117},"If the server cannot change to Real Mode.",{"name":5056,"cls":797},{"type":784,"name":5090,"path":5061,"parent":5054,"description":5119,"lines":5120,"decorators":5121,"parameters":5123,"returns":5125},"Whether or not the SiLA Server is in Simulation Mode.",[1718,2849],[4119,5122],"sila.UnobservableProperty(name='SimulationMode')",[5124],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5126},{"name":1003,"cls":797},{"type":738,"name":4600,"path":5128,"parent":2191,"packages":5129,"attributes":5131,"classes":5133},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fsila_service\u002F__init__.py",[5130],"unitelabs.cdk.features.core.sila_service.sila_service",[5132],"unitelabs.cdk.features.core.sila_service.__all__",[5134,5135],"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService","unitelabs.cdk.features.core.sila_service.sila_service.UnimplementedFeature",{"type":766,"name":5132,"path":5128,"parent":4600,"lines":5137,"value":5138},[2207,2207],[5134,5135],{"type":738,"name":5130,"path":5140,"parent":4600,"packages":5141,"classes":5142},"unitelabs\u002Fcdk\u002Ffeatures\u002Fcore\u002Fsila_service\u002Fsila_service.py",[750],[5135,5134],{"type":848,"name":5135,"path":5140,"parent":5130,"description":5144,"lines":5145,"bases":5146,"mro":5149},"The Feature specified by the given Feature identifier is not implemented by the server.",[1900,787],[5147],{"annotation":5148},{"name":1904,"cls":797},[5135],{"type":848,"name":5134,"path":5140,"parent":5130,"description":5151,"lines":5152,"bases":5154,"functions":5157,"mro":5168},"This Feature MUST be implemented by each SiLA Server.\n\nIt specifies Commands and Properties to discover the Features a\nSiLA Server implements as well as details about the SiLA Server,\nlike name, type, description, vendor and UUID.\n\nAny interaction described in this feature MUST not affect the\nbehaviour of any other Feature.",[1169,5153],174,[5155],{"annotation":5156},{"name":975,"cls":797},[5158,5159,5160,5161,5162,5163,5164,5165,5166,5167],"unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.__init__","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_uuid","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_name","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_type","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_description","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_version","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_server_vendor_url","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_implemented_features","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.get_feature_definition","unitelabs.cdk.features.core.sila_service.sila_service.SiLAService.set_server_name",[5134,975,2226,2227],{"type":784,"name":5158,"path":5140,"parent":5134,"lines":5170,"parameters":5171},[890,788],[5172,5173,5177],{"name":882,"kind":794,"required":883},{"name":5174,"kind":5175,"required":42,"default":5176},"*args","variadic positional","()",{"name":5178,"kind":4500,"required":42,"default":4501},"**kwargs",{"type":784,"name":5159,"path":5140,"parent":5134,"description":5180,"lines":5181,"decorators":5182,"parameters":5184,"returns":5186},"Globally unique identifier that identifies a SiLA Server.\n\nThe Server UUID MUST be generated once and remain the same for\nall times.",[912,1381],[5183],"sila.UnobservableProperty(name='Server UUID')",[5185],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5187},{"left":5188,"slice":5189},{"name":2343,"cls":797},{"elements":5190},[5191,5192,5193],{"name":796,"cls":797},{},{},{"type":784,"name":5160,"path":5140,"parent":5134,"description":5195,"lines":5196,"decorators":5197,"parameters":5198,"returns":5200},"Human readable name of the SiLA Server.\n\nThe name can be set using the 'Set Server Name' command.",[3399,1399],[2252],[5199],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5201},{"left":5202,"slice":5203},{"name":2343,"cls":797},{"elements":5204},[5205,5206],{"name":796,"cls":797},{},{"type":784,"name":5161,"path":5140,"parent":5134,"description":5208,"lines":5209,"decorators":5210,"parameters":5211,"returns":5213},"The type of this server.\n\nIt could be, e.g., in the case of a SiLA Device, the model name.\nIt is specified by the implementer of the SiLA Server and MAY not be unique.",[2586,814],[2252],[5212],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5214},{"left":5215,"slice":5216},{"name":2343,"cls":797},{"elements":5217},[5218,5219],{"name":796,"cls":797},{},{"type":784,"name":5162,"path":5140,"parent":5134,"description":5221,"lines":5222,"decorators":5223,"parameters":5224,"returns":5226},"Description of the SiLA Server.\n\nThis should include the use and purpose of this SiLA Server.",[3151,2849],[2252],[5225],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5227},{"name":796,"cls":797},{"type":784,"name":5163,"path":5140,"parent":5134,"description":5229,"lines":5230,"decorators":5231,"parameters":5232,"returns":5234},"Returns the version of the SiLA Server.\n\nA \"Major\" and a \"Minor\" version number (e.g. 1.0) MUST be\nprovided, a Patch version number MAY be provided. Optionally, an\narbitrary text, separated by an underscore MAY be appended, e.g.\n\"3.19.373_mighty_lab_devices\".",[1179,3000],[2252],[5233],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5235},{"left":5236,"slice":5237},{"name":2343,"cls":797},{"elements":5238},[5239,5240],{"name":796,"cls":797},{},{"type":784,"name":5164,"path":5140,"parent":5134,"description":5242,"lines":5243,"decorators":5244,"parameters":5246,"returns":5248},"Returns the URL to the website of the vendor or the website of the product of this SiLA Server.\n\nThis URL SHOULD be accessible at all times. The URL is a Uniform\nResource Locator as defined in RFC 1738.",[934,1452],[5245],"sila.UnobservableProperty(name='Server Vendor URL')",[5247],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5249},{"left":5250,"slice":5251},{"name":2343,"cls":797},{"elements":5252},[5253,5254],{"name":796,"cls":797},{},{"type":784,"name":5165,"path":5140,"parent":5134,"description":5256,"lines":5257,"decorators":5258,"parameters":5259,"returns":5261},"Returns a list of fully qualified Feature identifiers of all implemented Features of this SiLA Server.\n\nThis list SHOULD remain the same throughout the lifetime of the\nSiLA Server.",[1736,1094],[2252],[5260],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5262},{"left":5263,"slice":5264},{"name":905,"cls":797},{"left":5265,"slice":5266},{"name":2343,"cls":797},{"elements":5267},[5268,5269],{"name":796,"cls":797},{},{"type":784,"name":5166,"path":5140,"parent":5134,"description":5271,"lines":5272,"decorators":5274,"parameters":5275,"returns":5285,"throws":5293},"Get the Feature Definition of an implemented Feature by its fully qualified Feature Identifier.\n\nThis command has no preconditions and no further dependencies and\ncan be called at any time.",[3028,5273],161,[2239],[5276,5277],{"name":882,"kind":794,"required":883},{"name":5278,"kind":794,"annotation":5279,"required":883},"feature_identifier",{"left":5280,"slice":5281},{"name":2343,"cls":797},{"elements":5282},[5283,5284],{"name":796,"cls":797},{},{"description":5286,"annotation":5287},"The Feature definition in XML format\n(according to the Feature Definition Schema).",{"left":5288,"slice":5289},{"name":2343,"cls":797},{"elements":5290},[5291,5292],{"name":796,"cls":797},{},[5294],{"description":5295,"annotation":5296},"The Feature specified by the given\nFeature identifier is not implemented by the server.",{"name":5135,"cls":797},{"type":784,"name":5167,"path":5140,"parent":5134,"description":5298,"lines":5299,"decorators":5301,"parameters":5302},"Sets a human readable name to the Server Name Property.\n\nCommand has no preconditions and no further dependencies and can be called at any time.",[5300,5153],163,[2239],[5303,5304],{"name":882,"kind":794,"required":883},{"name":5305,"kind":794,"annotation":5306,"required":883},"server_name",{"left":5307,"slice":5308},{"name":2343,"cls":797},{"elements":5309},[5310,5311],{"name":796,"cls":797},{},{"type":738,"name":750,"path":5313,"parent":739,"packages":5314,"attributes":5322,"classes":5324},"unitelabs\u002Fcdk\u002Fsila\u002F__init__.py",[5315,5316,5317,5318,5319,5320,5321],"unitelabs.cdk.sila.data_types","unitelabs.cdk.sila.common","unitelabs.cdk.sila.property","unitelabs.cdk.sila.metadata","unitelabs.cdk.sila.utils","unitelabs.cdk.sila.command","unitelabs.cdk.sila.constraints",[2514,5323],"unitelabs.cdk.sila.__all__",[4648,990,3782,5325,2370,5326,2481,5327,5328,975,2467,3368,3266,5329,5330],"unitelabs.cdk.sila.command.observable_command.ObservableCommand","unitelabs.cdk.sila.command.unobservable_command.UnobservableCommand","unitelabs.cdk.sila.common.decorator.Decorator","unitelabs.cdk.sila.common.errors.DefinedExecutionError","unitelabs.cdk.sila.property.observable_property.ObservableProperty","unitelabs.cdk.sila.property.unobservable_property.UnobservableProperty",{"type":766,"name":2514,"path":5313,"parent":750,"lines":5332,"value":5333},[1169,1169],"Native",{"type":766,"name":5323,"path":5313,"parent":750,"lines":5335,"value":5336},[1245,1325],[2467,2481,5327,5328,975,3782,3368,3266,5325,5329,2370,2340,5326,5330,5337],"unitelabs.cdk.sila.common.errors.define_error",{"type":738,"name":5315,"path":5339,"parent":750,"packages":5340,"attributes":5347,"classes":5349},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002F__init__.py",[5341,5342,5343,5344,5345,5346],"unitelabs.cdk.sila.data_types.structure","unitelabs.cdk.sila.data_types.custom","unitelabs.cdk.sila.data_types.convert_data_type","unitelabs.cdk.sila.data_types.custom_data_type","unitelabs.cdk.sila.data_types.infer_data_type","unitelabs.cdk.sila.data_types.any",[5348],"unitelabs.cdk.sila.data_types.__all__",[5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368],"sila.framework.data_types.any.Any","sila.framework.data_types.binary.Binary","sila.framework.data_types.boolean.Boolean","sila.framework.data_types.constrained.Constrained","sila.framework.data_types.data_type.DataType","sila.framework.data_types.date.Date","sila.framework.data_types.duration.Duration","sila.framework.data_types.element.Element","sila.framework.data_types.integer.Integer","sila.framework.data_types.list.List","sila.framework.data_types.real.Real","sila.framework.data_types.string.String","sila.framework.data_types.structure.Structure","sila.framework.data_types.time.Time","sila.framework.data_types.timestamp.Timestamp","sila.framework.data_types.timezone.Timezone","sila.framework.data_types.void.Void","unitelabs.cdk.sila.data_types.any.Any","unitelabs.cdk.sila.data_types.custom.Custom",{"type":766,"name":5348,"path":5339,"parent":5315,"lines":5370,"value":5371},[1058,2351],[5367,5368,5372,5373],"unitelabs.cdk.sila.data_types.infer_data_type.infer","unitelabs.cdk.sila.data_types.convert_data_type.to_sila",{"type":738,"name":5341,"path":5375,"parent":5315,"attributes":5376,"classes":5378},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002Fstructure.py",[5377],"unitelabs.cdk.sila.data_types.structure.T",[5379],"unitelabs.cdk.sila.data_types.structure.Structure",{"type":766,"name":5377,"path":5375,"parent":5341,"lines":5381,"value":5382},[1864,1864],"typing.TypeVar('T', bound=(dict[str, sila.Native]))",{"type":848,"name":5379,"path":5375,"parent":5341,"description":5384,"lines":5385,"decorators":5386,"bases":5387,"attributes":5396,"functions":5398,"mro":5402},"Structure that converts from and to a python class instead of a dictionary.",[787,813],[2463],[5388,5392],{"annotation":5389},{"left":5390,"slice":5391},{"name":1255,"cls":797},{"name":5377,"cls":797},{"annotation":5393},{"left":5394,"slice":5395},{"name":5362,"cls":797},{"name":5377,"cls":797},[5397],"unitelabs.cdk.sila.data_types.structure.Structure._class",[5399,5400,5401],"unitelabs.cdk.sila.data_types.structure.Structure.__init__","unitelabs.cdk.sila.data_types.structure.Structure.from_native","unitelabs.cdk.sila.data_types.structure.Structure.to_native",[5379,5362,5354,5403,5404,2227],"sila.framework.protobuf.message.Message","sila.framework.data_types.convertible.Convertible",{"type":766,"name":5397,"path":5375,"parent":5379,"lines":5406,"value":5407,"annotation":5408},[1042,1042],"dataclasses.field(init=None)",{"name":955,"cls":797},{"type":784,"name":5400,"path":5375,"parent":5379,"lines":5410,"decorators":5411,"parameters":5413,"returns":5430},[842,901],[1556,5412],"classmethod",[5414,5416,5419,5423],{"name":5415,"kind":1063,"required":883},"cls",{"name":4646,"kind":1063,"annotation":5417,"required":883},{"name":5418,"cls":797},"sila.framework.common.context.Context",{"name":1477,"kind":1063,"annotation":5420,"required":42,"default":820},{"join":5421},[5422,820],{"name":5377,"cls":797},{"name":5424,"kind":2368,"annotation":5425,"required":42,"default":820},"execution",{"left":5426,"slice":5428},{"name":5427,"cls":797},"typing_extensions.Optional",{"name":5429,"cls":797},"sila.Execution",{"description":807,"annotation":5431},{"name":5432,"cls":797},"typing_extensions.Self",{"type":784,"name":5401,"path":5375,"parent":5379,"lines":5434,"decorators":5435,"parameters":5436,"returns":5440},[2504,813],[1556],[5437,5438],{"name":882,"kind":1063,"required":883},{"name":4646,"kind":1063,"annotation":5439,"required":883},{"name":5418,"cls":797},{"description":807,"annotation":5441},{"name":5377,"cls":797},{"type":784,"name":5399,"path":5375,"parent":5379,"lines":5443,"parameters":5444},[2517,2517],[5445],{"name":882,"kind":794,"required":883},{"type":738,"name":5342,"path":5447,"parent":5315,"attributes":5448,"classes":5450},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002Fcustom.py",[5449],"unitelabs.cdk.sila.data_types.custom.T",[5368],{"type":766,"name":5449,"path":5447,"parent":5342,"lines":5452,"value":5453},[1864,1864],"typing.TypeVar('T', bound=(sila.Native))",{"type":848,"name":5368,"path":5447,"parent":5342,"description":5455,"lines":5456,"decorators":5457,"bases":5458,"attributes":5468,"functions":5470,"mro":5474},"Custom data type that converts from and to a python class instead of a dictionary.",[787,1636],[2463],[5459,5463],{"annotation":5460},{"left":5461,"slice":5462},{"name":1255,"cls":797},{"name":5449,"cls":797},{"annotation":5464},{"left":5465,"slice":5467},{"name":5466,"cls":797},"sila.framework.data_types.custom.Custom",{"name":5449,"cls":797},[5469],"unitelabs.cdk.sila.data_types.custom.Custom._class",[5471,5472,5473],"unitelabs.cdk.sila.data_types.custom.Custom.__init__","unitelabs.cdk.sila.data_types.custom.Custom.from_native","unitelabs.cdk.sila.data_types.custom.Custom.to_native",[5368,5466,5354,5403,5404,2227],{"type":766,"name":5469,"path":5447,"parent":5368,"lines":5476,"value":5407,"annotation":5477},[1042,1042],{"name":955,"cls":797},{"type":784,"name":5472,"path":5447,"parent":5368,"lines":5479,"decorators":5480,"parameters":5481,"returns":5493},[842,912],[1556,5412],[5482,5483,5485,5489],{"name":5415,"kind":1063,"required":883},{"name":4646,"kind":1063,"annotation":5484,"required":883},{"name":5418,"cls":797},{"name":1477,"kind":1063,"annotation":5486,"required":42,"default":820},{"join":5487},[5488,820],{"name":5449,"cls":797},{"name":5424,"kind":2368,"annotation":5490,"required":42,"default":820},{"left":5491,"slice":5492},{"name":5427,"cls":797},{"name":5429,"cls":797},{"description":807,"annotation":5494},{"name":5432,"cls":797},{"type":784,"name":5473,"path":5447,"parent":5368,"lines":5496,"decorators":5497,"parameters":5498,"returns":5502},[773,1636],[1556],[5499,5500],{"name":882,"kind":1063,"required":883},{"name":4646,"kind":1063,"annotation":5501,"required":883},{"name":5418,"cls":797},{"description":807,"annotation":5503},{"name":5449,"cls":797},{"type":784,"name":5471,"path":5447,"parent":5368,"lines":5505,"parameters":5506},[2517,2517],[5507],{"name":882,"kind":794,"required":883},{"type":738,"name":5343,"path":5509,"parent":5315,"functions":5510},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002Fconvert_data_type.py",[5373],{"type":784,"name":5373,"path":5509,"parent":5343,"description":5512,"lines":5513,"parameters":5514,"returns":5528},"Convert a (intermediate) command response to a SiLA native value.",[787,1324],[5515,5519],{"name":1477,"kind":794,"annotation":5516,"required":883,"description":5518},{"name":5517,"cls":797},"sila.framework.data_types.convertible.Native","The command responses value to convert.",{"name":5520,"kind":794,"annotation":5521,"required":883,"description":5527},"responses",{"left":5522,"slice":5523},{"name":825,"cls":797},{"elements":5524},[5525,5526],{"name":796,"cls":797},{"name":5357,"cls":797},"The SiLA data type of the message.",{"description":5529,"annotation":5530},"The converted SiLA native value.",{"name":5517,"cls":797},{"type":738,"name":5344,"path":5532,"parent":5315,"classes":5533},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002Fcustom_data_type.py",[2467],{"type":848,"name":2467,"path":5532,"parent":5344,"description":5535,"lines":5536,"decorators":5537,"bases":5538,"functions":5541,"examples":5544,"mro":5548},"A custom data type definition that can be reused in multiple places.",[1900,1398],[2463],[5539],{"annotation":5540},{"name":2481,"cls":797},[5542,5543],"unitelabs.cdk.sila.data_types.custom_data_type.CustomDataType.__init__","unitelabs.cdk.sila.data_types.custom_data_type.CustomDataType.attach",[5545],{"description":5546,"code":5547},"Define a custom data type:",">>> @dataclasses.dataclass\n... class MyCustomDataType(sila.CustomDataType):\n...   \"\"\"Describe what your data type is for.\"\"\"\n...   param_a: str\n...   param_b: int\n...\n... class MyFeature(sila.Feature):\n...   @sila.UnobservableProperty()\n...   async def my_property(self) -> MyCustomDataType:\n...     \"\"\"Describe what your property does.\"\"\"\n...     return MyCustomDataType(param_a=\"Hello, World!\", param_b=42)\n...\n...   @sila.UnobservableCommand()\n...   async def my_property(self, my_custom_data: MyCustomDataType) -> None:\n...     \"\"\"\n...     Describe what your command does.\n...\n...     Args:\n...       my_custom_data: The custom data type to process.\n...     \"\"\"\n...     print(my_custom_data.param_a, my_custom_data.param_b)",[2467,2481],{"type":784,"name":5543,"path":5532,"parent":2467,"lines":5550,"decorators":5551,"parameters":5552,"returns":5556},[1324,1398],[1556,5412],[5553,5554],{"name":5415,"kind":794,"required":883},{"name":952,"kind":794,"annotation":5555,"required":883},{"name":975,"cls":797},{"description":807,"annotation":5557},{"left":5558,"slice":5559},{"name":955,"cls":797},{"name":5368,"cls":797},{"type":784,"name":5542,"path":5532,"parent":2467,"lines":5561,"parameters":5562},[2517,2517],[5563],{"name":882,"kind":794,"required":883},{"type":738,"name":5345,"path":5565,"parent":5315,"functions":5566},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002Finfer_data_type.py",[5372],{"type":784,"name":5372,"path":5565,"parent":5345,"description":5568,"lines":5569,"parameters":5570,"returns":5578},"Infer the SiLA data type from a given python type annotation.",[909,3019],[5571,5575],{"name":5572,"kind":794,"annotation":5573,"required":883,"description":5574},"annotation",{"name":955,"cls":797},"The python type annotation.",{"name":952,"kind":794,"annotation":5576,"required":883,"description":5577},{"name":975,"cls":797},"The feature.",{"description":5579,"annotation":5580},"The corresponding SiLA data type.",{"left":5581,"slice":5582},{"name":955,"cls":797},{"name":5354,"cls":797},{"type":738,"name":5346,"path":5584,"parent":5315,"classes":5585},"unitelabs\u002Fcdk\u002Fsila\u002Fdata_types\u002Fany.py",[5367],{"type":848,"name":5367,"path":5584,"parent":5346,"description":5587,"lines":5588,"decorators":5589,"bases":5590,"functions":5593,"mro":5596},"Any data type that converts to its native python type.",[2015,1042],[2463],[5591],{"annotation":5592},{"name":5350,"cls":797},[5594,5595],"unitelabs.cdk.sila.data_types.any.Any.__init__","unitelabs.cdk.sila.data_types.any.Any.to_native",[5367,5350,5597,5354,5403,5404,2227,5598],"sila.framework.data_types.data_type.BasicType","sila.framework.data_types.convertible.IAny",{"type":784,"name":5595,"path":5584,"parent":5367,"lines":5600,"decorators":5601,"parameters":5602,"returns":5606},[1242,1042],[1556],[5603,5604],{"name":882,"kind":1063,"required":883},{"name":4646,"kind":1063,"annotation":5605,"required":883},{"name":5418,"cls":797},{"description":807,"annotation":5607},{"name":5517,"cls":797},{"type":784,"name":5594,"path":5584,"parent":5367,"lines":5609,"parameters":5610},[2517,2517],[5611],{"name":882,"kind":794,"required":883},{"type":738,"name":5316,"path":5613,"parent":750,"packages":5614,"attributes":5619,"classes":5621},"unitelabs\u002Fcdk\u002Fsila\u002Fcommon\u002F__init__.py",[5615,5616,5617,5618],"unitelabs.cdk.sila.common.decorator","unitelabs.cdk.sila.common.feature","unitelabs.cdk.sila.common.dataclass","unitelabs.cdk.sila.common.errors",[5620],"unitelabs.cdk.sila.common.__all__",[2481,5327,5328,975],{"type":766,"name":5620,"path":5613,"parent":5316,"lines":5623,"value":5624},[2026,2026],[2481,5327,5328,975,5337],{"type":738,"name":5615,"path":5626,"parent":5316,"classes":5627},"unitelabs\u002Fcdk\u002Fsila\u002Fcommon\u002Fdecorator.py",[5327],{"type":848,"name":5327,"path":5626,"parent":5615,"description":5629,"lines":5630,"attributes":5631,"functions":5644,"mro":5654},"Base class for decorator based SiLA annotations.",[1774,1008],[5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643],"unitelabs.cdk.sila.common.decorator.Decorator._identifier","unitelabs.cdk.sila.common.decorator.Decorator._name","unitelabs.cdk.sila.common.decorator.Decorator._description","unitelabs.cdk.sila.common.decorator.Decorator._enabled","unitelabs.cdk.sila.common.decorator.Decorator._parameters","unitelabs.cdk.sila.common.decorator.Decorator._responses","unitelabs.cdk.sila.common.decorator.Decorator._intermediate_responses","unitelabs.cdk.sila.common.decorator.Decorator._handler","unitelabs.cdk.sila.common.decorator.Decorator._metadata","unitelabs.cdk.sila.common.decorator.Decorator._errors","unitelabs.cdk.sila.common.decorator.Decorator._function","unitelabs.cdk.sila.common.decorator.Decorator._feature",[5645,5646,5647,5648,5649,5650,5651,5652,5653],"unitelabs.cdk.sila.common.decorator.Decorator.__init__","unitelabs.cdk.sila.common.decorator.Decorator.__call__","unitelabs.cdk.sila.common.decorator.Decorator.is_enabled","unitelabs.cdk.sila.common.decorator.Decorator.clone","unitelabs.cdk.sila.common.decorator.Decorator.attach","unitelabs.cdk.sila.common.decorator.Decorator.execute","unitelabs.cdk.sila.common.decorator.Decorator._execute","unitelabs.cdk.sila.common.decorator.Decorator._with_metadata","unitelabs.cdk.sila.common.decorator.Decorator._with_parameters",[5327],{"type":784,"name":5645,"path":5626,"parent":5327,"lines":5656,"parameters":5657},[890,3399],[5658,5659,5663,5668,5672,5682],{"name":882,"kind":1063,"required":883},{"name":4781,"kind":2368,"annotation":5660,"required":42,"default":820},{"join":5661},[5662,820],{"name":796,"cls":797},{"name":5664,"kind":2368,"annotation":5665,"required":42,"default":820},"display_name",{"join":5666},[5667,820],{"name":796,"cls":797},{"name":793,"kind":2368,"annotation":5669,"required":42,"default":820},{"join":5670},[5671,820],{"name":796,"cls":797},{"name":5673,"kind":2368,"annotation":5674,"required":42,"default":820},"errors",{"join":5675},[5676,820],{"left":5677,"slice":5679},{"name":5678,"cls":797},"collections.abc.Sequence",{"left":5680,"slice":5681},{"name":955,"cls":797},{"name":1904,"cls":797},{"name":5683,"kind":2368,"annotation":5684,"required":42,"default":1192},"enabled",{"join":5685},[5686,5687],{"name":1003,"cls":797},{"left":5688,"slice":5689},{"name":1173,"cls":797},{"elements":5690},[5691,5692],"...",{"name":1003,"cls":797},{"type":766,"name":5632,"path":5626,"parent":5327,"lines":5694,"value":5695},[1325,1325],"identifier or ''",{"type":766,"name":5633,"path":5626,"parent":5327,"lines":5697,"value":5698},[1679,1679],"name or ''",{"type":766,"name":5634,"path":5626,"parent":5327,"lines":5700,"value":5701},[1294,1294],"''",{"type":766,"name":5635,"path":5626,"parent":5327,"lines":5703,"value":5683},[1636,1636],{"type":766,"name":5636,"path":5626,"parent":5327,"lines":5705,"value":4501,"annotation":5706},[915,915],{"left":5707,"slice":5708},{"name":825,"cls":797},{"elements":5709},[5710,5711],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":5637,"path":5626,"parent":5327,"lines":5713,"value":4501,"annotation":5714},[1690,1690],{"left":5715,"slice":5716},{"name":825,"cls":797},{"elements":5717},[5718,5719],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":5638,"path":5626,"parent":5327,"lines":5721,"value":4501,"annotation":5722},[2332,2332],{"left":5723,"slice":5724},{"name":825,"cls":797},{"elements":5725},[5726,5727],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":5639,"path":5626,"parent":5327,"lines":5729,"value":820,"annotation":5730},[1691,1691],{"join":5731},[5732,820],{"name":4648,"cls":797},{"type":766,"name":5640,"path":5626,"parent":5327,"lines":5734,"value":5735,"annotation":5736},[2351,2351],"('', [])",{"left":5737,"slice":5738},{"name":1201,"cls":797},{"elements":5739},[5740,5741],{"name":796,"cls":797},{"left":5742,"slice":5743},{"name":905,"cls":797},{"left":5744,"slice":5745},{"name":955,"cls":797},{"name":3266,"cls":797},{"type":766,"name":5641,"path":5626,"parent":5327,"lines":5747,"value":5748,"annotation":5749},[1381,1381],"list(errors or [])",{"left":5750,"slice":5751},{"name":905,"cls":797},{"left":5752,"slice":5753},{"name":955,"cls":797},{"name":1904,"cls":797},{"type":766,"name":5642,"path":5626,"parent":5327,"lines":5755,"value":5756,"annotation":5757},[1968,1968],"lambda: ...",{"name":1173,"cls":797},{"type":766,"name":5643,"path":5626,"parent":5327,"lines":5759,"value":820,"annotation":5760},[3399,3399],{"join":5761},[5762,820],{"name":975,"cls":797},{"type":784,"name":5646,"path":5626,"parent":5327,"description":5764,"lines":5765,"parameters":5766,"returns":5770},"Call the decorator to wrap the given method.",[1697,1399],[5767,5768],{"name":882,"kind":794,"required":883},{"name":784,"kind":794,"annotation":5769,"required":883},{"name":1173,"cls":797},{"description":807,"annotation":5771},{"name":1173,"cls":797},{"type":784,"name":5647,"path":5626,"parent":5327,"description":5773,"lines":5774,"parameters":5775,"returns":5779},"Whether the handler is enabled or not.",[2586,919],[5776,5777],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":5778,"required":883},{"name":975,"cls":797},{"description":807,"annotation":5780},{"name":1003,"cls":797},{"type":784,"name":5648,"path":5626,"parent":5327,"description":5782,"lines":5783,"parameters":5784,"returns":5786},"Create a copy of this decorator.",[3605,3151],[5785],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5787},{"name":5327,"cls":797},{"type":784,"name":5649,"path":5626,"parent":5327,"description":5789,"lines":5790,"parameters":5792,"returns":5797},"Create and attach a handler to the `feature`.",[1415,5791],96,[5793,5794],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":5795,"required":883,"description":5796},{"name":975,"cls":797},"The `Feature` to which the handler will be attached.",{"description":5798,"annotation":5799},"Whether the handler was attached or not.",{"name":1003,"cls":797},{"type":784,"name":5650,"path":5626,"parent":5327,"description":5801,"lines":5802,"parameters":5804,"returns":5817,"throws":5820},"Execute a given function with the provided keyword arguments.",[3173,5803],133,[5805,5806,5815],{"name":882,"kind":794,"required":883},{"name":3362,"kind":794,"annotation":5807,"required":883,"description":5814},{"left":5808,"slice":5809},{"name":825,"cls":797},{"elements":5810},[5811,5813],{"name":5812,"cls":797},"sila.framework.identifiers.metadata_identifier.MetadataIdentifier",{"name":5517,"cls":797},"Additional metadata sent from client to server.",{"name":5816,"kind":4500,"required":42,"default":4501},"**parameters",{"description":5818,"annotation":5819},"The result of the `function` execution.",{"name":5517,"cls":797},[5821,5824],{"description":5822,"annotation":5823},"If the error type is in the list of defined errors.",{"name":5328,"cls":797},{"description":5825,"annotation":5826},"If an unexpected error occurs during execution.",{"name":5827,"cls":797},"sila.framework.errors.undefined_execution_error.UndefinedExecutionError",{"type":784,"name":5651,"path":5626,"parent":5327,"lines":5829,"parameters":5832,"returns":5836},[5830,5831],135,141,[5833,5834],{"name":882,"kind":794,"required":883},{"name":784,"kind":794,"annotation":5835,"required":883},{"name":1173,"cls":797},{"description":807,"annotation":5837},{"name":5517,"cls":797},{"type":784,"name":5652,"path":5626,"parent":5327,"lines":5839,"parameters":5841,"returns":5852},[2152,5840],158,[5842,5843,5845],{"name":882,"kind":794,"required":883},{"name":784,"kind":794,"annotation":5844,"required":883},{"name":1173,"cls":797},{"name":3362,"kind":794,"annotation":5846,"required":883},{"left":5847,"slice":5848},{"name":825,"cls":797},{"elements":5849},[5850,5851],{"name":5812,"cls":797},{"name":5517,"cls":797},{"description":807,"annotation":5853},{"name":1173,"cls":797},{"type":784,"name":5653,"path":5626,"parent":5327,"lines":5855,"parameters":5857,"returns":5874},[5856,1008],160,[5858,5859,5861],{"name":882,"kind":794,"required":883},{"name":784,"kind":794,"annotation":5860,"required":883},{"name":1173,"cls":797},{"name":5862,"kind":794,"annotation":5863,"required":883},"parameters",{"left":5864,"slice":5866},{"name":5865,"cls":797},"collections.abc.Mapping",{"elements":5867},[5868,5869],{"name":796,"cls":797},{"join":5870},[5871,5872],{"name":5517,"cls":797},{"name":5873,"cls":797},"sila.server.command_execution.CommandExecution",{"description":807,"annotation":5875},{"name":1173,"cls":797},{"type":738,"name":5616,"path":5877,"parent":5316,"classes":5878},"unitelabs\u002Fcdk\u002Fsila\u002Fcommon\u002Ffeature.py",[975],{"type":848,"name":975,"path":5877,"parent":5616,"description":5880,"lines":5881,"decorators":5882,"bases":5883,"attributes":5886,"functions":5890,"mro":5896},"A feature describes a specific behavior of the server.\n\nUse the docstring of your feature class to provide a detailed,\nhuman-readable description of the use of your feature.",[1052,985],[2463],[5884],{"annotation":5885},{"name":2226,"cls":797},[5887,5888,5889],"unitelabs.cdk.sila.common.feature.Feature._metadata","unitelabs.cdk.sila.common.feature.Feature._handlers","unitelabs.cdk.sila.common.feature.Feature._app",[5891,5892,5893,5894,5895],"unitelabs.cdk.sila.common.feature.Feature.__init__","unitelabs.cdk.sila.common.feature.Feature.attach","unitelabs.cdk.sila.common.feature.Feature.optimize","unitelabs.cdk.sila.common.feature.Feature.app","unitelabs.cdk.sila.common.feature.Feature.server",[975,2226,2227],{"type":784,"name":5891,"path":5877,"parent":975,"lines":5898,"parameters":5899},[901,3452],[5900,5901,5902,5906,5910,5914,5919,5927],{"name":882,"kind":794,"required":883},{"name":5174,"kind":5175,"required":42,"default":5176},{"name":4781,"kind":2368,"annotation":5903,"required":42,"default":820},{"join":5904},[5905,820],{"name":796,"cls":797},{"name":5664,"kind":2368,"annotation":5907,"required":42,"default":820},{"join":5908},[5909,820],{"name":796,"cls":797},{"name":793,"kind":2368,"annotation":5911,"required":42,"default":820},{"join":5912},[5913,820],{"name":796,"cls":797},{"name":5915,"kind":2368,"annotation":5916,"required":42,"default":820},"description",{"join":5917},[5918,820],{"name":796,"cls":797},{"name":3362,"kind":2368,"annotation":5920,"required":42,"default":820},{"join":5921},[5922,820],{"left":5923,"slice":5924},{"name":5678,"cls":797},{"left":5925,"slice":5926},{"name":955,"cls":797},{"name":3266,"cls":797},{"name":5178,"kind":4500,"required":42,"default":4501},{"type":766,"name":5887,"path":5877,"parent":975,"lines":5929,"value":4501,"annotation":5930},[1968,1968],{"left":5931,"slice":5932},{"name":825,"cls":797},{"elements":5933},[5934,5935],{"name":796,"cls":797},{"left":5936,"slice":5937},{"name":955,"cls":797},{"name":3266,"cls":797},{"type":766,"name":5888,"path":5877,"parent":975,"lines":5939,"value":4501,"annotation":5940},[1705,1705],{"left":5941,"slice":5942},{"name":825,"cls":797},{"elements":5943},[5944,5945],{"name":796,"cls":797},{"name":5327,"cls":797},{"type":766,"name":5889,"path":5877,"parent":975,"lines":5947,"value":820,"annotation":5948},[3452,3452],{"join":5949},[5950,820],{"name":761,"cls":797},{"type":784,"name":5892,"path":5877,"parent":975,"description":5952,"lines":5953,"parameters":5954,"returns":5956},"Attach all handlers to this feature.",[3138,1736],[5955],{"name":882,"kind":794,"required":883},{"description":5957,"annotation":5958},"Whether at least one handler was attached.",{"name":1003,"cls":797},{"type":784,"name":5893,"path":5877,"parent":975,"description":5960,"lines":5961,"parameters":5963},"Optimize the feature.",[5962,5803],112,[5964],{"name":882,"kind":794,"required":883},{"type":784,"name":5894,"path":5877,"parent":975,"description":5966,"lines":5967,"decorators":5968,"parameters":5970,"returns":5972},"The connector app this feature is registered with.",[5830,970],[5969],"property",[5971],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5973},{"name":761,"cls":797},{"type":784,"name":5895,"path":5877,"parent":975,"description":5975,"lines":5976,"decorators":5977,"parameters":5978,"returns":5980},"The server this feature is registered with.",[3046,985],[5969],[5979],{"name":882,"kind":794,"required":883},{"description":807,"annotation":5981},{"name":990,"cls":797},{"type":738,"name":5617,"path":5983,"parent":5316,"classes":5984},"unitelabs\u002Fcdk\u002Fsila\u002Fcommon\u002Fdataclass.py",[2481],{"type":848,"name":2481,"path":5983,"parent":5617,"description":5986,"lines":5987,"decorators":5988,"attributes":5989,"functions":5993,"mro":5998},"Base class for dataclass based SiLA annotations.",[1245,920],[2463],[5990,5991,5992],"unitelabs.cdk.sila.common.dataclass.Dataclass._identifier","unitelabs.cdk.sila.common.dataclass.Dataclass._name","unitelabs.cdk.sila.common.dataclass.Dataclass._description",[5994,5995,5996,5997],"unitelabs.cdk.sila.common.dataclass.Dataclass.__init__","unitelabs.cdk.sila.common.dataclass.Dataclass.__init_subclass__","unitelabs.cdk.sila.common.dataclass.Dataclass.attach","unitelabs.cdk.sila.common.dataclass.Dataclass._infer_data_type",[2481],{"type":766,"name":5990,"path":5983,"parent":2481,"lines":6000,"value":5701,"annotation":6001},[772,772],{"name":796,"cls":797},{"type":766,"name":5991,"path":5983,"parent":2481,"lines":6003,"value":5701,"annotation":6004},[1052,1052],{"name":796,"cls":797},{"type":766,"name":5992,"path":5983,"parent":2481,"lines":6006,"value":5701,"annotation":6007},[851,851],{"name":796,"cls":797},{"type":784,"name":5995,"path":5983,"parent":2481,"lines":6009,"parameters":6010},[1053,1679],[6011,6012,6016,6020],{"name":5415,"kind":1063,"required":883},{"name":4781,"kind":2368,"annotation":6013,"required":42,"default":820},{"join":6014},[6015,820],{"name":796,"cls":797},{"name":5664,"kind":2368,"annotation":6017,"required":42,"default":820},{"join":6018},[6019,820],{"name":796,"cls":797},{"name":793,"kind":2368,"annotation":6021,"required":42,"default":820},{"join":6022},[6023,820],{"name":796,"cls":797},{"type":784,"name":5996,"path":5983,"parent":2481,"description":6025,"lines":6026,"decorators":6027,"parameters":6028},"Create and attach a dataclass to the `feature`.",[1636,1389],[5412],[6029,6030],{"name":5415,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6031,"required":883,"description":6032},{"name":975,"cls":797},"The `Feature` to which the dataclass will be attached.",{"type":784,"name":5997,"path":5983,"parent":2481,"lines":6034,"decorators":6035,"parameters":6036,"returns":6040},[1390,920],[5412],[6037,6038],{"name":5415,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6039,"required":883},{"name":975,"cls":797},{"description":807,"annotation":6041},{"left":6042,"slice":6043},{"name":955,"cls":797},{"name":5354,"cls":797},{"type":784,"name":5994,"path":5983,"parent":2481,"lines":6045,"parameters":6046},[2517,2517],[6047],{"name":882,"kind":794,"required":883},{"type":738,"name":5618,"path":6049,"parent":5316,"classes":6050,"functions":6051},"unitelabs\u002Fcdk\u002Fsila\u002Fcommon\u002Ferrors.py",[5328],[5337],{"type":784,"name":5337,"path":6049,"parent":5618,"description":6053,"lines":6054,"parameters":6055,"returns":6065},"Convert an exception into a defined execution error.",[1238,788],[6056],{"name":6057,"kind":794,"annotation":6058,"required":883,"description":6064},"exception",{"join":6059},[6060,6061],{"name":1904,"cls":797},{"left":6062,"slice":6063},{"name":955,"cls":797},{"name":1904,"cls":797},"The exception class or instance to convert.",{"description":6066,"annotation":6067},"A DefinedExecutionError object with the parsed information from the exception.",{"left":6068,"slice":6069},{"name":955,"cls":797},{"name":6070,"cls":797},"sila.framework.errors.defined_execution_error.DefinedExecutionError",{"type":848,"name":5328,"path":6049,"parent":5618,"description":6072,"lines":6073,"decorators":6074,"bases":6075,"functions":6078,"mro":6081},"A defined execution error.",[813,2332],[2463],[6076],{"annotation":6077},{"name":1904,"cls":797},[6079,6080],"unitelabs.cdk.sila.common.errors.DefinedExecutionError.__init_subclass__","unitelabs.cdk.sila.common.errors.DefinedExecutionError.__init__",[5328],{"type":784,"name":6079,"path":6049,"parent":5328,"lines":6083,"parameters":6084},[1324,1636],[6085],{"name":5415,"kind":794,"required":883},{"type":784,"name":6080,"path":6049,"parent":5328,"lines":6087,"parameters":6088},[1690,2332],[6089,6090,6091,6093,6095,6097],{"name":882,"kind":794,"required":883},{"name":5174,"kind":5175,"required":42,"default":5176},{"name":4781,"kind":2368,"annotation":6092,"required":42,"default":5701},{"name":796,"cls":797},{"name":5664,"kind":2368,"annotation":6094,"required":42,"default":5701},{"name":796,"cls":797},{"name":5915,"kind":2368,"annotation":6096,"required":42,"default":5701},{"name":796,"cls":797},{"name":5178,"kind":4500,"required":42,"default":4501},{"type":738,"name":5317,"path":6099,"parent":750,"packages":6100,"attributes":6103,"classes":6105},"unitelabs\u002Fcdk\u002Fsila\u002Fproperty\u002F__init__.py",[6101,6102],"unitelabs.cdk.sila.property.unobservable_property","unitelabs.cdk.sila.property.observable_property",[6104],"unitelabs.cdk.sila.property.__all__",[5329,5330],{"type":766,"name":6104,"path":6099,"parent":5317,"lines":6107,"value":6108},[1863,1863],[5329,2340,5330],{"type":738,"name":6101,"path":6110,"parent":5317,"classes":6111},"unitelabs\u002Fcdk\u002Fsila\u002Fproperty\u002Funobservable_property.py",[5330],{"type":848,"name":5330,"path":6110,"parent":6101,"description":6113,"lines":6114,"bases":6115,"functions":6118,"examples":6121,"mro":6125},"A property describes certain aspects of a SiLA server that do not require an action on the SiLA server.",[772,1186],[6116],{"annotation":6117},{"name":5327,"cls":797},[6119,6120],"unitelabs.cdk.sila.property.unobservable_property.UnobservableProperty.attach","unitelabs.cdk.sila.property.unobservable_property.UnobservableProperty._execute",[6122],{"description":6123,"code":6124},"Convert a feature method into an unobservable property:",">>> class MyFeature(sila.Feature):\n...   @sila.UnobservableProperty()\n...   async def my_property(self) -> str:\n...     \"\"\"\n...     Describe what your property does.\n...\n...     Raises:\n...       RuntimeError: If something goes wrong.\n...     \"\"\"\n...     return \"Hello, World!\"",[5330,5327],{"type":784,"name":6119,"path":6110,"parent":5330,"lines":6127,"decorators":6128,"parameters":6129,"returns":6133},[2351,926],[1556],[6130,6131],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6132,"required":883},{"name":975,"cls":797},{"description":807,"annotation":6134},{"name":1003,"cls":797},{"type":784,"name":6120,"path":6110,"parent":5330,"lines":6136,"decorators":6137,"parameters":6138,"returns":6142},[2849,1186],[1556],[6139,6140],{"name":882,"kind":794,"required":883},{"name":784,"kind":794,"annotation":6141,"required":883},{"name":1173,"cls":797},{"description":807,"annotation":6143},{"name":5517,"cls":797},{"type":738,"name":6102,"path":6145,"parent":5317,"attributes":6146,"classes":6148},"unitelabs\u002Fcdk\u002Fsila\u002Fproperty\u002Fobservable_property.py",[6147,2340],"unitelabs.cdk.sila.property.observable_property.T",[5329],{"type":766,"name":6147,"path":6145,"parent":6102,"lines":6150,"value":1043},[768,768],{"type":766,"name":2340,"path":6145,"parent":6102,"lines":6152,"value":6153},[772,772],"collections.abc.AsyncIterator[T]",{"type":848,"name":5329,"path":6145,"parent":6102,"description":6113,"lines":6155,"bases":6156,"functions":6159,"examples":6163,"mro":6167},[1774,5803],[6157],{"annotation":6158},{"name":5327,"cls":797},[6160,6161,6162],"unitelabs.cdk.sila.property.observable_property.ObservableProperty.attach","unitelabs.cdk.sila.property.observable_property.ObservableProperty.execute","unitelabs.cdk.sila.property.observable_property.ObservableProperty._execute",[6164],{"description":6165,"code":6166},"Convert a feature method into an observable property:",">>> class MyFeature(sila.Feature):\n...   @sila.ObservableProperty()\n...   async def my_property(self) -> sila.Stream[int]:\n...     \"\"\"\n...     Describe what your property does.\n...\n...     Raises:\n...       RuntimeError: If something goes wrong.\n...     \"\"\"\n...     yield 0\n...     yield 1\n...     yield 2",[5329,5327],{"type":784,"name":6160,"path":6145,"parent":5329,"lines":6169,"decorators":6170,"parameters":6171,"returns":6175},[1697,1601],[1556],[6172,6173],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6174,"required":883},{"name":975,"cls":797},{"description":807,"annotation":6176},{"name":1003,"cls":797},{"type":784,"name":6161,"path":6145,"parent":5329,"lines":6178,"decorators":6179,"parameters":6180,"returns":6190},[2659,5962],[1556],[6181,6182,6189],{"name":882,"kind":794,"required":883},{"name":3362,"kind":794,"annotation":6183,"required":883},{"left":6184,"slice":6185},{"name":825,"cls":797},{"elements":6186},[6187,6188],{"name":5812,"cls":797},{"name":5517,"cls":797},{"name":5816,"kind":4500,"required":42,"default":4501},{"description":807,"annotation":6191},{"left":6192,"slice":6193},{"name":1746,"cls":797},{"name":5517,"cls":797},{"type":784,"name":6162,"path":6145,"parent":5329,"lines":6195,"decorators":6196,"parameters":6197,"returns":6201},[1453,5803],[1556],[6198,6199],{"name":882,"kind":794,"required":883},{"name":784,"kind":794,"annotation":6200,"required":883},{"name":1173,"cls":797},{"description":807,"annotation":6202},{"left":6203,"slice":6204},{"name":1746,"cls":797},{"name":5517,"cls":797},{"type":738,"name":5318,"path":6206,"parent":750,"packages":6207,"attributes":6210,"classes":6212},"unitelabs\u002Fcdk\u002Fsila\u002Fmetadata\u002F__init__.py",[6208,6209],"unitelabs.cdk.sila.metadata.metadatum","unitelabs.cdk.sila.metadata.metadata",[6211],"unitelabs.cdk.sila.metadata.__all__",[3368,3266],{"type":766,"name":6211,"path":6206,"parent":5318,"lines":6214,"value":6215},[1863,1863],[3368,3266],{"type":738,"name":6208,"path":6217,"parent":5318,"attributes":6218,"classes":6220},"unitelabs\u002Fcdk\u002Fsila\u002Fmetadata\u002Fmetadatum.py",[6219],"unitelabs.cdk.sila.metadata.metadatum.T",[3266],{"type":766,"name":6219,"path":6217,"parent":6208,"lines":6222,"value":6223},[1046,1046],"typing.TypeVar('T', bound=Any)",{"type":848,"name":3266,"path":6217,"parent":6208,"description":6225,"lines":6226,"decorators":6228,"bases":6229,"attributes":6236,"functions":6240,"examples":6249,"mro":6256},"Define additional metadata that is used to extend existing features with reusable functionality.",[1052,6227],195,[2463],[6230,6234],{"annotation":6231},{"left":6232,"slice":6233},{"name":1255,"cls":797},{"name":6219,"cls":797},{"annotation":6235},{"name":2481,"cls":797},[6237,6238,6239],"unitelabs.cdk.sila.metadata.metadatum.Metadatum.feature","unitelabs.cdk.sila.metadata.metadatum.Metadatum._affects","unitelabs.cdk.sila.metadata.metadatum.Metadatum._metadatum",[6241,6242,6243,6244,6245,6246,6247,6248],"unitelabs.cdk.sila.metadata.metadatum.Metadatum.__init__","unitelabs.cdk.sila.metadata.metadatum.Metadatum.__init_subclass__","unitelabs.cdk.sila.metadata.metadatum.Metadatum.attach","unitelabs.cdk.sila.metadata.metadatum.Metadatum._intercept","unitelabs.cdk.sila.metadata.metadatum.Metadatum._infer_metadata","unitelabs.cdk.sila.metadata.metadatum.Metadatum.from_native","unitelabs.cdk.sila.metadata.metadatum.Metadatum.affects","unitelabs.cdk.sila.metadata.metadatum.Metadatum.intercept",[6250,6253],{"description":6251,"code":6252},"Define a metadatum on the consumer:",">>> @dataclasses.dataclass\n... class MyMetadata(sila.Metadatum, errors=[SomeError]):\n...   param_a: str\n...   param_b: int\n...\n... class MyMetadataProvider(sila.Feature):\n...   def __init__(self):\n...     super().__init__(metadata=[MyMetadata])\n...\n... class MyFeature(sila.Feature):\n...   @sila.UnobservableProperty()\n...   async def my_property(self, *, metadata: typing.Annotated[sila.Metadata, MyMetadata]) -> str:\n...     \"\"\"Describe what your property does.\"\"\"\n...     return metadata.param_a",{"description":6254,"code":6255},"Define a metadatum on the provider:",">>> @dataclasses.dataclass\n... class MyMetadata(sila.Metadatum):\n...   param: str\n...\n...   @typing.override\n...   @classmethod\n...   def affects(cls) -> list[sila.identifiers.FeatureIdentifier]:\n...     return [cls.feature.app.get_feature(MyFeature).fully_qualified_identifier]\n...\n...   @typing.override\n...   async def intercept(self, context: sila.Handler) -> None:\n...     # Optionally, intercepts the execution of the property\n...     # and aborts it if an error is raised\n...     pass\n...\n... class MyMetadataProvider(sila.Feature):\n...   def __init__(self):\n...     super().__init__(metadata=[MyMetadata])\n...\n... class MyFeature(sila.Feature):\n...   @sila.UnobservableProperty()\n...   async def my_property(self) -> str:\n...     \"\"\"Describe what your property does.\"\"\"\n...     return \"\"",[3266,2481],{"type":766,"name":6237,"path":6217,"parent":3266,"lines":6258,"value":820,"annotation":6259},[3151,3151],{"name":975,"cls":797},{"type":766,"name":6238,"path":6217,"parent":3266,"lines":6261,"value":6262,"annotation":6263},[2965,2965],"set()",{"left":6264,"slice":6266},{"name":6265,"cls":797},"set",{"name":796,"cls":797},{"type":766,"name":6239,"path":6217,"parent":3266,"lines":6268,"value":820,"annotation":6269},[1415,1415],{"join":6270},[6271,820],{"left":6272,"slice":6273},{"name":955,"cls":797},{"name":6274,"cls":797},"sila.server.metadata.Metadata",{"type":784,"name":6242,"path":6217,"parent":3266,"lines":6276,"parameters":6277},[920,2876],[6278,6279,6283,6287,6291],{"name":5415,"kind":1063,"required":883},{"name":4781,"kind":2368,"annotation":6280,"required":42,"default":820},{"join":6281},[6282,820],{"name":796,"cls":797},{"name":5664,"kind":2368,"annotation":6284,"required":42,"default":820},{"join":6285},[6286,820],{"name":796,"cls":797},{"name":793,"kind":2368,"annotation":6288,"required":42,"default":820},{"join":6289},[6290,820],{"name":796,"cls":797},{"name":5673,"kind":2368,"annotation":6292,"required":42,"default":820},{"join":6293},[6294,820],{"left":6295,"slice":6296},{"name":5678,"cls":797},{"left":6297,"slice":6298},{"name":955,"cls":797},{"name":1904,"cls":797},{"type":784,"name":6243,"path":6217,"parent":3266,"lines":6300,"decorators":6301,"parameters":6302,"returns":6306},[1431,1453],[1556,5412],[6303,6304],{"name":5415,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6305,"required":883},{"name":975,"cls":797},{"description":807,"annotation":6307},{"left":6308,"slice":6309},{"name":955,"cls":797},{"name":6274,"cls":797},{"type":784,"name":6244,"path":6217,"parent":3266,"description":6311,"lines":6312,"decorators":6313,"parameters":6314},"Intercept method execution.",[1459,969],[5412],[6315,6316,6318],{"name":5415,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":6317,"required":883},{"name":5517,"cls":797},{"name":4646,"kind":794,"annotation":6319,"required":883},{"name":4648,"cls":797},{"type":784,"name":6245,"path":6217,"parent":3266,"lines":6321,"decorators":6323,"parameters":6324,"returns":6329},[4320,6322],169,[5412],[6325,6326],{"name":5415,"kind":794,"required":883},{"name":6327,"kind":794,"annotation":6328,"required":883},"decorator",{"name":5327,"cls":797},{"description":807,"annotation":6330},{"left":6331,"slice":6332},{"name":1201,"cls":797},{"elements":6333},[6334,6335],{"name":796,"cls":797},{"left":6336,"slice":6337},{"name":905,"cls":797},{"left":6338,"slice":6339},{"name":955,"cls":797},{"name":3266,"cls":797},{"type":784,"name":6246,"path":6217,"parent":3266,"description":6341,"lines":6342,"decorators":6344,"parameters":6345,"returns":6350},"Convert a SiLA metadata value to this counterpart.",[1130,6343],186,[5412],[6346,6347],{"name":5415,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":6348,"required":883,"description":6349},{"name":5517,"cls":797},"The value to parse.",{"description":6351,"annotation":6352},"A new instance of this metadatum with the given value.",{"name":5432,"cls":797},{"type":784,"name":6247,"path":6217,"parent":3266,"description":6354,"lines":6355,"decorators":6357,"parameters":6358,"returns":6360},"Set the fully qualified identifiers of the handlers this metadata affects.",[1131,6356],192,[5412],[6359],{"name":882,"kind":794,"required":883},{"description":807,"annotation":6361},{"left":6362,"slice":6363},{"name":905,"cls":797},{"name":4918,"cls":797},{"type":784,"name":6248,"path":6217,"parent":3266,"description":6311,"lines":6365,"parameters":6367},[6366,6227],194,[6368,6369],{"name":882,"kind":794,"required":883},{"name":4646,"kind":794,"annotation":6370,"required":883},{"name":4648,"cls":797},{"type":784,"name":6241,"path":6217,"parent":3266,"lines":6372,"parameters":6373},[2517,2517],[6374],{"name":882,"kind":794,"required":883},{"type":738,"name":6209,"path":6376,"parent":5318,"attributes":6377,"classes":6379},"unitelabs\u002Fcdk\u002Fsila\u002Fmetadata\u002Fmetadata.py",[6378],"unitelabs.cdk.sila.metadata.metadata.T",[3368],{"type":766,"name":6378,"path":6376,"parent":6209,"lines":6381,"value":6382},[1864,1864],"typing.TypeVar('T', bound=Metadatum)",{"type":848,"name":3368,"path":6376,"parent":6209,"description":6384,"lines":6385,"bases":6386,"functions":6389,"mro":6391},"Collection of the metadata sent by the client.",[787,1042],[6387],{"annotation":6388},{"name":5865,"cls":797},[6390],"unitelabs.cdk.sila.metadata.metadata.Metadata.__getitem__",[3368],{"type":784,"name":6390,"path":6376,"parent":3368,"lines":6393,"parameters":6394,"returns":6401},[1169,1042],[6395,6396],{"name":882,"kind":794,"required":883},{"name":6397,"kind":794,"annotation":6398,"required":883},"key",{"left":6399,"slice":6400},{"name":955,"cls":797},{"name":6378,"cls":797},{"description":807,"annotation":6402},{"name":6378,"cls":797},{"type":738,"name":5319,"path":6404,"parent":750,"packages":6405,"attributes":6410,"classes":6412},"unitelabs\u002Fcdk\u002Fsila\u002Futils\u002F__init__.py",[6406,6407,6408,6409],"unitelabs.cdk.sila.utils.version","unitelabs.cdk.sila.utils.docstring","unitelabs.cdk.sila.utils.name","unitelabs.cdk.sila.utils.interval",[6411],"unitelabs.cdk.sila.utils.__all__",[6413],"unitelabs.cdk.sila.utils.docstring.Docstring",{"type":766,"name":6411,"path":6404,"parent":5319,"lines":6415,"value":6416},[2026,1042],[6413,6417,6418,6419,6420,6421,6422],"unitelabs.cdk.sila.utils.interval.clear_interval","unitelabs.cdk.sila.utils.docstring.parse_docstring","unitelabs.cdk.sila.utils.version.parse_version","unitelabs.cdk.sila.utils.interval.set_interval","unitelabs.cdk.sila.utils.name.to_display_name","unitelabs.cdk.sila.utils.name.to_identifier",{"type":738,"name":6406,"path":6424,"parent":5319,"functions":6425},"unitelabs\u002Fcdk\u002Fsila\u002Futils\u002Fversion.py",[6419],{"type":784,"name":6419,"path":6424,"parent":6406,"description":6427,"lines":6428,"parameters":6429,"returns":6433},"Parse a PEP 440-compatible version into a valid SiLA 2 version.",[1863,1336],[6430],{"name":6431,"kind":794,"annotation":6432,"required":883},"version",{"name":796,"cls":797},{"description":807,"annotation":6434},{"name":796,"cls":797},{"type":738,"name":6407,"path":6436,"parent":5319,"classes":6437,"functions":6438},"unitelabs\u002Fcdk\u002Fsila\u002Futils\u002Fdocstring.py",[6413],[6418,6439,6440,6441,6442],"unitelabs.cdk.sila.utils.docstring.parse_restructured","unitelabs.cdk.sila.utils.docstring.create_element","unitelabs.cdk.sila.utils.docstring._warn","unitelabs.cdk.sila.utils.docstring.get_types",{"type":848,"name":6413,"path":6436,"parent":6407,"description":6444,"lines":6445,"decorators":6446,"attributes":6447,"functions":6453,"mro":6455},"A parsed docstring of a function or class.",[1245,1053],[2463],[6448,6449,6450,6451,6452],"unitelabs.cdk.sila.utils.docstring.Docstring.description","unitelabs.cdk.sila.utils.docstring.Docstring.parameters","unitelabs.cdk.sila.utils.docstring.Docstring.yields","unitelabs.cdk.sila.utils.docstring.Docstring.returns","unitelabs.cdk.sila.utils.docstring.Docstring.raises",[6454],"unitelabs.cdk.sila.utils.docstring.Docstring.__init__",[6413],{"type":766,"name":6448,"path":6436,"parent":6413,"lines":6457,"value":5701,"annotation":6458},[772,772],{"name":796,"cls":797},{"type":766,"name":6449,"path":6436,"parent":6413,"lines":6460,"value":6461,"annotation":6462},[1052,1052],"dataclasses.field(default_factory=dict)",{"left":6463,"slice":6464},{"name":825,"cls":797},{"elements":6465},[6466,6467],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":6450,"path":6436,"parent":6413,"lines":6469,"value":6461,"annotation":6470},[851,851],{"left":6471,"slice":6472},{"name":825,"cls":797},{"elements":6473},[6474,6475],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":6451,"path":6436,"parent":6413,"lines":6477,"value":6461,"annotation":6478},[1774,1774],{"left":6479,"slice":6480},{"name":825,"cls":797},{"elements":6481},[6482,6483],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":6452,"path":6436,"parent":6413,"lines":6485,"value":6461,"annotation":6486},[1053,1053],{"left":6487,"slice":6488},{"name":825,"cls":797},{"elements":6489},[6490,6491],{"name":796,"cls":797},{"name":6070,"cls":797},{"type":784,"name":6454,"path":6436,"parent":6413,"lines":6493,"parameters":6494},[2517,2517],[6495,6496,6498,6505,6513,6521],{"name":882,"kind":794,"required":883},{"name":5915,"kind":794,"annotation":6497,"required":42,"default":5701},{"name":796,"cls":797},{"name":5862,"kind":794,"annotation":6499,"required":42},{"left":6500,"slice":6501},{"name":825,"cls":797},{"elements":6502},[6503,6504],{"name":796,"cls":797},{"name":5357,"cls":797},{"name":6506,"kind":794,"annotation":6507,"required":42},"yields",{"left":6508,"slice":6509},{"name":825,"cls":797},{"elements":6510},[6511,6512],{"name":796,"cls":797},{"name":5357,"cls":797},{"name":6514,"kind":794,"annotation":6515,"required":42},"returns",{"left":6516,"slice":6517},{"name":825,"cls":797},{"elements":6518},[6519,6520],{"name":796,"cls":797},{"name":5357,"cls":797},{"name":6522,"kind":794,"annotation":6523,"required":42},"raises",{"left":6524,"slice":6525},{"name":825,"cls":797},{"elements":6526},[6527,6528],{"name":796,"cls":797},{"name":6070,"cls":797},{"type":784,"name":6418,"path":6436,"parent":6407,"description":6530,"lines":6531,"parameters":6532,"returns":6543},"Parse the docstring of a function or class.",[1058,6343],[6533,6540],{"name":6534,"kind":1063,"annotation":6535,"required":883,"description":6539},"functionOrClass",{"join":6536},[6537,6538],{"name":1173,"cls":797},{"name":955,"cls":797},"The function or class to parse the docstring of.",{"name":952,"kind":794,"annotation":6541,"required":883,"description":6542},{"name":2226,"cls":797},"The parent feature of the function or class.",{"description":6544,"annotation":6545},"The parsed docstring.",{"name":6413,"cls":797},{"type":784,"name":6439,"path":6436,"parent":6407,"description":6547,"lines":6548,"parameters":6550,"returns":6556},"Parse documentation strings in reStructuredText format.",[2646,6549],249,[6551],{"name":6552,"kind":794,"annotation":6553,"required":883,"description":6555},"docstring",{"name":6554,"cls":797},"griffe.Docstring","The docstring to parse.",{"description":6544,"annotation":6557},{"left":6558,"slice":6559},{"name":905,"cls":797},{"name":6560,"cls":797},"griffe.DocstringSection",{"type":784,"name":6440,"path":6436,"parent":6407,"description":6562,"lines":6563,"parameters":6566,"returns":6585},"Create an element from a docstring item.",[6564,6565],252,279,[6567,6578,6581],{"name":6568,"kind":794,"annotation":6569,"required":883,"description":6577},"item",{"join":6570},[6571,6573,6575],{"name":6572,"cls":797},"griffe.DocstringParameter",{"name":6574,"cls":797},"griffe.DocstringYield",{"name":6576,"cls":797},"griffe.DocstringReturn","The docstring item to create an element from.",{"name":952,"kind":794,"annotation":6579,"required":883,"description":6580},{"name":2226,"cls":797},"The parent feature of the element.",{"name":6582,"kind":794,"annotation":6583,"required":42,"default":5701,"description":6584},"default",{"name":796,"cls":797},"The default name of the element.",{"description":6586,"annotation":6587},"The created element.",{"left":6588,"slice":6589},{"name":1201,"cls":797},{"elements":6590},[6591,6592],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":784,"name":6441,"path":6436,"parent":6407,"lines":6594,"parameters":6597},[6595,6596],282,288,[6598,6601,6606],{"name":6599,"kind":794,"annotation":6600,"required":883},"msg",{"name":796,"cls":797},{"name":6534,"kind":794,"annotation":6602,"required":883},{"join":6603},[6604,6605],{"name":1173,"cls":797},{"name":955,"cls":797},{"name":6607,"kind":794,"annotation":6608,"required":42,"default":6612},"category",{"left":6609,"slice":6610},{"name":955,"cls":797},{"name":6611,"cls":797},"Warning",{"name":6613,"cls":797},"UserWarning",{"type":784,"name":6442,"path":6436,"parent":6407,"description":6615,"lines":6616,"parameters":6619,"returns":6623},"Get the types from an annotation.",[6617,6618],291,308,[6620],{"name":5572,"kind":794,"annotation":6621,"required":883,"description":6622},{"name":955,"cls":797},"The annotation to get the types from.",{"description":6624,"annotation":6625},"The types.",{"left":6626,"slice":6627},{"name":905,"cls":797},{"name":955,"cls":797},{"type":738,"name":6408,"path":6629,"parent":5319,"functions":6630},"unitelabs\u002Fcdk\u002Fsila\u002Futils\u002Fname.py",[6421,6422],{"type":784,"name":6421,"path":6629,"parent":6408,"description":6632,"lines":6633,"parameters":6634,"returns":6641},"Convert a class name to a SiLA display name.",[2026,1058],[6635,6637],{"name":1477,"kind":794,"annotation":6636,"required":883},{"name":796,"cls":797},{"name":6638,"kind":794,"annotation":6639,"required":42,"default":6640},"sep",{"name":796,"cls":797},"'_'",{"description":807,"annotation":6642},{"name":796,"cls":797},{"type":784,"name":6422,"path":6629,"parent":6408,"description":6644,"lines":6645,"parameters":6646,"returns":6649},"Convert a SiLA display name to a SiLA identifier.",[901,1697],[6647],{"name":1477,"kind":794,"annotation":6648,"required":883},{"name":796,"cls":797},{"description":807,"annotation":6650},{"name":796,"cls":797},{"type":738,"name":6409,"path":6652,"parent":5319,"functions":6653},"unitelabs\u002Fcdk\u002Fsila\u002Futils\u002Finterval.py",[6420,6417],{"type":784,"name":6420,"path":6652,"parent":6409,"description":6655,"lines":6656,"parameters":6657,"returns":6662},"Repeatedly call a function or execute a codesnippet, with a fixed time delay between each call.",[1864,851],[6658,6660],{"name":784,"kind":794,"annotation":6659,"required":883},{"name":1173,"cls":797},{"name":3769,"kind":794,"annotation":6661,"required":42,"default":3480},{"name":1662,"cls":797},{"description":807,"annotation":6663},{"name":1683,"cls":797},{"type":784,"name":6417,"path":6652,"parent":6409,"description":6665,"lines":6666,"parameters":6667},"Cancel a timed, repeating action which was previously established by a call to set_interval().",[878,1058],[6668],{"name":1660,"kind":794,"annotation":6669,"required":883},{"name":1683,"cls":797},{"type":738,"name":5320,"path":6671,"parent":750,"packages":6672,"attributes":6677,"classes":6679},"unitelabs\u002Fcdk\u002Fsila\u002Fcommand\u002F__init__.py",[6673,6674,6675,6676],"unitelabs.cdk.sila.command.unobservable_command","unitelabs.cdk.sila.command.observable_command","unitelabs.cdk.sila.command.intermediate","unitelabs.cdk.sila.command.status",[6678],"unitelabs.cdk.sila.command.__all__",[3782,5325,2370,5326],{"type":766,"name":6678,"path":6671,"parent":5320,"lines":6681,"value":6682},[2026,2026],[3782,5325,2370,5326],{"type":738,"name":6673,"path":6684,"parent":5320,"classes":6685},"unitelabs\u002Fcdk\u002Fsila\u002Fcommand\u002Funobservable_command.py",[5326],{"type":848,"name":5326,"path":6684,"parent":6673,"description":6687,"lines":6688,"bases":6689,"functions":6692,"examples":6694,"mro":6698},"Any command for which observing the progress of execution is not possible or does not make sense.",[1245,926],[6690],{"annotation":6691},{"name":5327,"cls":797},[6693],"unitelabs.cdk.sila.command.unobservable_command.UnobservableCommand.attach",[6695],{"description":6696,"code":6697},"Convert a feature method into an unobservable command:",">>> class MyFeature(sila.Feature):\n...   @sila.UnobservableCommand()\n...   async def my_command(self, param_a: str, param_b: int) -> tuple[str, int]:\n...     \"\"\"\n...     Describe what your command does.\n...\n...     Args:\n...       ParamA: Describe the purpose of param_a.\n...       ParamB: Describe the purpose of param_b.\n...\n...     Returns:\n...       ResponseA: Response value a.\n...       ResponseB: Response value b.\n...\n...     Raises:\n...       RuntimeError: If something goes wrong.\n...     \"\"\"\n...     return param_a, param_b",[5326,5327],{"type":784,"name":6693,"path":6684,"parent":5326,"lines":6700,"decorators":6701,"parameters":6702,"returns":6706},[1389,926],[1556],[6703,6704],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6705,"required":883},{"name":975,"cls":797},{"description":807,"annotation":6707},{"name":1003,"cls":797},{"type":738,"name":6674,"path":6709,"parent":5320,"classes":6710},"unitelabs\u002Fcdk\u002Fsila\u002Fcommand\u002Fobservable_command.py",[5325],{"type":848,"name":5325,"path":6709,"parent":6674,"description":6712,"lines":6713,"bases":6714,"functions":6717,"examples":6719,"mro":6723},"Any command for which observing the progress of execution is possible or does make sense.",[1245,2660],[6715],{"annotation":6716},{"name":5327,"cls":797},[6718],"unitelabs.cdk.sila.command.observable_command.ObservableCommand.attach",[6720],{"description":6721,"code":6722},"Convert a feature method into an observable command:",">>> class MyFeature(sila.Feature):\n...   @sila.ObservableCommand()\n...   async def my_command(\n...       self, param_a: str, param_b: int, *, intermediate: sila.Intermediate, status: sila.Status\n...   ) -> tuple[str, int]:\n...     \"\"\"\n...     Describe what your command does.\n...\n...     Args:\n...       ParamA: Describe the purpose of param_a.\n...       ParamB: Describe the purpose of param_b.\n...\n...     Yields:\n...       IntermediateResponseA: Intermediate response value a.\n...       IntermediateResponseB: Intermediate response value b.\n...\n...     Returns:\n...       ResponseA: Response value a.\n...       ResponseB: Response value b.\n...\n...     Raises:\n...       RuntimeError: If something goes wrong.\n...     \"\"\"\n...     return param_a, param_b",[5325,5327],{"type":784,"name":6718,"path":6709,"parent":5325,"lines":6725,"decorators":6726,"parameters":6727,"returns":6731},[3138,2660],[1556],[6728,6729],{"name":882,"kind":794,"required":883},{"name":952,"kind":794,"annotation":6730,"required":883},{"name":975,"cls":797},{"description":807,"annotation":6732},{"name":1003,"cls":797},{"type":738,"name":6675,"path":6734,"parent":5320,"attributes":6735,"classes":6737},"unitelabs\u002Fcdk\u002Fsila\u002Fcommand\u002Fintermediate.py",[6736],"unitelabs.cdk.sila.command.intermediate.T",[3782],{"type":766,"name":6736,"path":6734,"parent":6675,"lines":6739,"value":1043},[2015,2015],{"type":848,"name":3782,"path":6734,"parent":6675,"description":6741,"lines":6742,"bases":6743,"attributes":6748,"functions":6751,"mro":6754},"A class representing an intermediate response in a command execution.",[1238,851],[6744],{"annotation":6745},{"left":6746,"slice":6747},{"name":1255,"cls":797},{"name":6736,"cls":797},[6749,6750],"unitelabs.cdk.sila.command.intermediate.Intermediate.command_execution","unitelabs.cdk.sila.command.intermediate.Intermediate.responses",[6752,6753],"unitelabs.cdk.sila.command.intermediate.Intermediate.__init__","unitelabs.cdk.sila.command.intermediate.Intermediate.send",[3782],{"type":784,"name":6752,"path":6734,"parent":3782,"lines":6756,"parameters":6757},[1042,842],[6758,6759,6762],{"name":882,"kind":794,"required":883},{"name":6760,"kind":794,"annotation":6761,"required":883},"command_execution",{"name":5873,"cls":797},{"name":5520,"kind":794,"annotation":6763,"required":883},{"left":6764,"slice":6765},{"name":825,"cls":797},{"elements":6766},[6767,6768],{"name":796,"cls":797},{"name":5357,"cls":797},{"type":766,"name":6749,"path":6734,"parent":3782,"lines":6770,"value":6771,"annotation":6772},[1245,1245],"weakref.proxy(command_execution)",{"name":5873,"cls":797},{"type":766,"name":6750,"path":6734,"parent":3782,"lines":6774,"value":5520},[842,842],{"type":784,"name":6753,"path":6734,"parent":3782,"description":6776,"lines":6777,"parameters":6778},"Send an intermediate response.",[768,851],[6779,6780],{"name":882,"kind":794,"required":883},{"name":6781,"kind":5175,"annotation":6782,"required":42,"default":5176},"*responses",{"name":6736,"cls":797},{"type":738,"name":6676,"path":6784,"parent":5320,"classes":6785},"unitelabs\u002Fcdk\u002Fsila\u002Fcommand\u002Fstatus.py",[2370],{"type":848,"name":2370,"path":6784,"parent":6676,"description":6787,"lines":6788,"attributes":6789,"functions":6791,"mro":6794},"A class representing the status of an observablØe command execution.",[2015,890],[6790],"unitelabs.cdk.sila.command.status.Status.command_execution",[6792,6793],"unitelabs.cdk.sila.command.status.Status.__init__","unitelabs.cdk.sila.command.status.Status.update",[2370],{"type":784,"name":6792,"path":6784,"parent":2370,"lines":6796,"parameters":6797},[1238,1242],[6798,6799],{"name":882,"kind":794,"required":883},{"name":6760,"kind":794,"annotation":6800,"required":883},{"name":5873,"cls":797},{"type":766,"name":6790,"path":6784,"parent":2370,"lines":6802,"value":6771,"annotation":6803},[1242,1242],{"name":5873,"cls":797},{"type":784,"name":6793,"path":6784,"parent":2370,"description":6805,"lines":6806,"parameters":6807},"Update the execution status of an observable command execution.",[1042,890],[6808,6809,6814,6819],{"name":882,"kind":794,"required":883},{"name":6810,"kind":794,"annotation":6811,"required":42,"default":820},"progress",{"join":6812},[6813,820],{"name":1662,"cls":797},{"name":6815,"kind":794,"annotation":6816,"required":42,"default":820},"remaining_time",{"join":6817},[6818,820],{"name":4765,"cls":797},{"name":6820,"kind":794,"annotation":6821,"required":42,"default":820},"updated_lifetime",{"join":6822},[6823,820],{"name":4765,"cls":797},{"type":738,"name":5321,"path":6825,"parent":750,"packages":6826,"attributes":6832,"classes":6834},"unitelabs\u002Fcdk\u002Fsila\u002Fconstraints\u002F__init__.py",[6827,6828,6829,6830,6831],"unitelabs.cdk.sila.constraints.minimal_exclusive","unitelabs.cdk.sila.constraints.maximal_exclusive","unitelabs.cdk.sila.constraints.maximal_inclusive","unitelabs.cdk.sila.constraints.minimal_inclusive","unitelabs.cdk.sila.constraints.set",[6833],"unitelabs.cdk.sila.constraints.__all__",[6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,6849,6850,6851,6852,6853,6854,6855,6856,6857],"sila.framework.constraints.allowed_types.AllowedTypes","sila.framework.constraints.constraint.Constraint","sila.framework.constraints.content_type.ContentType","sila.framework.constraints.content_type.ContentTypeParameter","sila.framework.constraints.element_count.ElementCount","sila.framework.constraints.fully_qualified_identifier.FullyQualifiedIdentifier","sila.framework.constraints.fully_qualified_identifier.Identifier","sila.framework.constraints.length.Length","sila.framework.constraints.maximal_element_count.MaximalElementCount","sila.framework.constraints.maximal_length.MaximalLength","sila.framework.constraints.minimal_element_count.MinimalElementCount","sila.framework.constraints.minimal_length.MinimalLength","sila.framework.constraints.pattern.Pattern","sila.framework.constraints.schema.Schema","sila.framework.constraints.schema.SchemaType","sila.framework.constraints.unit.SIUnit","sila.framework.constraints.unit.Unit","sila.framework.constraints.unit.UnitComponent","unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive","unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive","unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive","unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive","unitelabs.cdk.sila.constraints.set.Set",{"type":766,"name":6833,"path":6825,"parent":5321,"lines":6859,"value":6860},[898,1389],[6853,6854,6855,6856,6857],{"type":738,"name":6827,"path":6862,"parent":5321,"classes":6863},"unitelabs\u002Fcdk\u002Fsila\u002Fconstraints\u002Fminimal_exclusive.py",[6855],{"type":848,"name":6855,"path":6862,"parent":6827,"description":6865,"lines":6866,"decorators":6867,"bases":6868,"attributes":6872,"functions":6874,"mro":6877},"A constraint that enforces a lower exclusive bound on a value.",[2015,2504],[2463],[6869],{"annotation":6870},{"name":6871,"cls":797},"sila.framework.constraints.minimal_exclusive.MinimalExclusive",[6873],"unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive.value",[6875,6876],"unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive.__init__","unitelabs.cdk.sila.constraints.minimal_exclusive.MinimalExclusive.__post_init__",[6855,6871,6836,2227],{"type":766,"name":6873,"path":6862,"parent":6855,"lines":6879,"value":820,"annotation":6880},[1242,1242],{"join":6881},[6882,6883,6884,6886,6888],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},"datetime.date",{"name":6887,"cls":797},"datetime.time",{"name":4771,"cls":797},{"type":784,"name":6876,"path":6862,"parent":6855,"lines":6890,"parameters":6891},[1042,2504],[6892],{"name":882,"kind":794,"required":883},{"type":784,"name":6875,"path":6862,"parent":6855,"lines":6894,"parameters":6895},[2517,2517],[6896,6897],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":6898,"required":883},{"join":6899},[6900,6901,6902,6903,6904],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":738,"name":6828,"path":6906,"parent":5321,"classes":6907},"unitelabs\u002Fcdk\u002Fsila\u002Fconstraints\u002Fmaximal_exclusive.py",[6853],{"type":848,"name":6853,"path":6906,"parent":6828,"description":6909,"lines":6910,"decorators":6911,"bases":6912,"attributes":6916,"functions":6918,"mro":6921},"A constraint that enforces an upper exclusive bound on a value.",[2015,2504],[2463],[6913],{"annotation":6914},{"name":6915,"cls":797},"sila.framework.constraints.maximal_exclusive.MaximalExclusive",[6917],"unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive.value",[6919,6920],"unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive.__init__","unitelabs.cdk.sila.constraints.maximal_exclusive.MaximalExclusive.__post_init__",[6853,6915,6836,2227],{"type":766,"name":6917,"path":6906,"parent":6853,"lines":6923,"value":820,"annotation":6924},[1242,1242],{"join":6925},[6926,6927,6928,6929,6930],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":784,"name":6920,"path":6906,"parent":6853,"lines":6932,"parameters":6933},[1042,2504],[6934],{"name":882,"kind":794,"required":883},{"type":784,"name":6919,"path":6906,"parent":6853,"lines":6936,"parameters":6937},[2517,2517],[6938,6939],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":6940,"required":883},{"join":6941},[6942,6943,6944,6945,6946],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":738,"name":6829,"path":6948,"parent":5321,"classes":6949},"unitelabs\u002Fcdk\u002Fsila\u002Fconstraints\u002Fmaximal_inclusive.py",[6854],{"type":848,"name":6854,"path":6948,"parent":6829,"description":6951,"lines":6952,"decorators":6953,"bases":6954,"attributes":6958,"functions":6960,"mro":6963},"A constraint that enforces an upper inclusive bound on a value.",[2015,2504],[2463],[6955],{"annotation":6956},{"name":6957,"cls":797},"sila.framework.constraints.maximal_inclusive.MaximalInclusive",[6959],"unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive.value",[6961,6962],"unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive.__init__","unitelabs.cdk.sila.constraints.maximal_inclusive.MaximalInclusive.__post_init__",[6854,6957,6836,2227],{"type":766,"name":6959,"path":6948,"parent":6854,"lines":6965,"value":820,"annotation":6966},[1242,1242],{"join":6967},[6968,6969,6970,6971,6972],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":784,"name":6962,"path":6948,"parent":6854,"lines":6974,"parameters":6975},[1042,2504],[6976],{"name":882,"kind":794,"required":883},{"type":784,"name":6961,"path":6948,"parent":6854,"lines":6978,"parameters":6979},[2517,2517],[6980,6981],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":6982,"required":883},{"join":6983},[6984,6985,6986,6987,6988],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":738,"name":6830,"path":6990,"parent":5321,"classes":6991},"unitelabs\u002Fcdk\u002Fsila\u002Fconstraints\u002Fminimal_inclusive.py",[6856],{"type":848,"name":6856,"path":6990,"parent":6830,"description":6993,"lines":6994,"decorators":6995,"bases":6996,"attributes":7000,"functions":7002,"mro":7005},"A constraint that enforces a lower inclusive bound on a value.",[2015,2504],[2463],[6997],{"annotation":6998},{"name":6999,"cls":797},"sila.framework.constraints.minimal_inclusive.MinimalInclusive",[7001],"unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive.value",[7003,7004],"unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive.__init__","unitelabs.cdk.sila.constraints.minimal_inclusive.MinimalInclusive.__post_init__",[6856,6999,6836,2227],{"type":766,"name":7001,"path":6990,"parent":6856,"lines":7007,"value":820,"annotation":7008},[1242,1242],{"join":7009},[7010,7011,7012,7013,7014],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":784,"name":7004,"path":6990,"parent":6856,"lines":7016,"parameters":7017},[1042,2504],[7018],{"name":882,"kind":794,"required":883},{"type":784,"name":7003,"path":6990,"parent":6856,"lines":7020,"parameters":7021},[2517,2517],[7022,7023],{"name":882,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":7024,"required":883},{"join":7025},[7026,7027,7028,7029,7030],{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":738,"name":6831,"path":7032,"parent":5321,"classes":7033},"unitelabs\u002Fcdk\u002Fsila\u002Fconstraints\u002Fset.py",[6857],{"type":848,"name":6857,"path":7032,"parent":6831,"description":7035,"lines":7036,"decorators":7037,"bases":7038,"attributes":7042,"functions":7044,"mro":7047},"A constraint that enforces that a value is part of a defined set of values.",[1900,1679],[2463],[7039],{"annotation":7040},{"name":7041,"cls":797},"sila.framework.constraints.set.Set",[7043],"unitelabs.cdk.sila.constraints.set.Set.values",[7045,7046],"unitelabs.cdk.sila.constraints.set.Set.__init__","unitelabs.cdk.sila.constraints.set.Set.__post_init__",[6857,7041,6836,2227],{"type":766,"name":7043,"path":7032,"parent":6857,"lines":7049,"value":820,"annotation":7050},[768,768],{"left":7051,"slice":7052},{"name":5678,"cls":797},{"join":7053},[7054,7055,7056,7057,7058,7059],{"name":796,"cls":797},{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":784,"name":7046,"path":7032,"parent":6857,"lines":7061,"parameters":7062},[1052,1679],[7063],{"name":882,"kind":794,"required":883},{"type":784,"name":7045,"path":7032,"parent":6857,"lines":7065,"parameters":7066},[2517,2517],[7067,7068],{"name":882,"kind":794,"required":883},{"name":7069,"kind":794,"annotation":7070,"required":883},"values",{"left":7071,"slice":7072},{"name":5678,"cls":797},{"join":7073},[7074,7075,7076,7077,7078,7079],{"name":796,"cls":797},{"name":803,"cls":797},{"name":1662,"cls":797},{"name":6885,"cls":797},{"name":6887,"cls":797},{"name":4771,"cls":797},{"type":738,"name":751,"path":7081,"parent":739,"packages":7082,"attributes":7086,"classes":7088},"unitelabs\u002Fcdk\u002Fconfig\u002F__init__.py",[7083,7084,7085],"unitelabs.cdk.config.schema","unitelabs.cdk.config.config","unitelabs.cdk.config.connector_base_config",[7087],"unitelabs.cdk.config.__all__",[7089,757,760,756,758,759,7090],"unitelabs.cdk.config.config.Config","unitelabs.cdk.config.schema.InvalidSchemaFieldError",{"type":766,"name":7087,"path":7081,"parent":751,"lines":7092,"value":7093},[1042,901],[756,7089,757,758,7090,759,760,7094,7095,7096,7097,778],"unitelabs.cdk.config.config.delayed_default","unitelabs.cdk.config.schema.describe","unitelabs.cdk.config.connector_base_config.get_connector_config","unitelabs.cdk.config.config.read_config_file",{"type":738,"name":7083,"path":7099,"parent":751,"classes":7100,"functions":7102},"unitelabs\u002Fcdk\u002Fconfig\u002Fschema.py",[7090,7101],"unitelabs.cdk.config.schema.Schema",[7095,7103],"unitelabs.cdk.config.schema.get_type_str",{"type":848,"name":7090,"path":7099,"parent":7083,"description":7105,"lines":7106,"bases":7107,"mro":7110},"The provided key is not present in the Schema.",[787,1238],[7108],{"annotation":7109},{"name":1904,"cls":797},[7090],{"type":848,"name":7101,"path":7099,"parent":7083,"description":7112,"lines":7113,"attributes":7114,"functions":7118,"mro":7121},"Wrapper for JSONSchema dictionaries.",[1042,3138],[7115,7116,7117],"unitelabs.cdk.config.schema.Schema._schema","unitelabs.cdk.config.schema.Schema._schema_definitions","unitelabs.cdk.config.schema.Schema.definition",[7119,7120],"unitelabs.cdk.config.schema.Schema.__init__","unitelabs.cdk.config.schema.Schema.get",[7101],{"type":784,"name":7119,"path":7099,"parent":7101,"lines":7123,"parameters":7124},[1046,1053],[7125,7126,7134],{"name":882,"kind":794,"required":883},{"name":7127,"kind":794,"annotation":7128,"required":883},"schema",{"left":7129,"slice":7130},{"name":825,"cls":797},{"elements":7131},[7132,7133],{"name":796,"cls":797},{"name":1362,"cls":797},{"name":7135,"kind":794,"annotation":7136,"required":42,"default":820},"definitions",{"join":7137},[7138,820],{"left":7139,"slice":7140},{"name":825,"cls":797},{"elements":7141},[7142,7143],{"name":796,"cls":797},{"name":1362,"cls":797},{"type":766,"name":7115,"path":7099,"parent":7101,"lines":7145,"value":7127},[1774,1774],{"type":766,"name":7116,"path":7099,"parent":7101,"lines":7147,"value":7148},[1053,1053],"definitions or schema.get('$defs')",{"type":766,"name":7117,"path":7099,"parent":7101,"description":7150,"lines":7151,"value":820,"annotation":7152},"Get the JSONSchema definition.",[1058,898],{"left":7153,"slice":7154},{"name":825,"cls":797},{"elements":7155},[7156,7157],{"name":796,"cls":797},{"name":796,"cls":797},{"type":784,"name":7120,"path":7099,"parent":7101,"description":7159,"lines":7160,"parameters":7161,"returns":7167,"throws":7169},"Extract a nested `Schema` object for named `field`.",[1336,3138],[7162,7163],{"name":882,"kind":794,"required":883},{"name":7164,"kind":794,"annotation":7165,"required":883,"description":7166},"field",{"name":796,"cls":797},"The name of the field in the schema to extract.",{"description":807,"annotation":7168},{"name":7101,"cls":797},[7170],{"description":7171,"annotation":7172},"If the provided `field` is not present in the schema.",{"name":7173,"cls":797},"InvalidSchemaKeyError",{"type":784,"name":7095,"path":7099,"parent":7083,"description":7175,"lines":7176,"parameters":7177,"returns":7193},"Build a dict of values describing the keys, their types, descriptions and defaults.",[2586,934],[7178,7185,7188],{"name":7179,"kind":794,"annotation":7180,"required":883,"description":7184},"dataclass",{"left":7181,"slice":7182},{"name":955,"cls":797},{"name":7183,"cls":797},"_typeshed.DataclassInstance","The dataclass to describe.",{"name":7127,"kind":794,"annotation":7186,"required":883,"description":7187},{"name":7101,"cls":797},"A wrapped JSONSchema for the dataclass, used for extracting description docstrings.",{"name":6582,"kind":794,"annotation":7189,"required":42,"default":820,"description":7192},{"left":7190,"slice":7191},{"name":5427,"cls":797},{"name":7183,"cls":797},"A default instance of the dataclass to use for extracting default values.",{"description":807,"annotation":7194},{"left":7195,"slice":7196},{"name":825,"cls":797},{"elements":7197},[7198,7199],{"name":796,"cls":797},{"name":1362,"cls":797},{"type":784,"name":7103,"path":7099,"parent":7083,"description":7201,"lines":7202,"parameters":7203,"returns":7208,"examples":7211},"Get a formatted string representation of a type.",[1079,3037],[7204],{"name":7205,"kind":794,"annotation":7206,"required":883,"description":7207},"type_",{"name":1362,"cls":797},"The type to get a string representation of.",{"description":7209,"annotation":7210},"A formatted string representation of the type.",{"name":796,"cls":797},[7212],{"description":7213,"code":7214},"",">>> get_type_str(int)\n'int'\n>>> get_type_str(list[int])\n'list[int]'\n>>> get_type_str(list[typing.Union[int, str]])\n'list[int | str]'\n>>> get_type_str(list[dataclass_type])\n'list[dataclass_type]'",{"type":738,"name":7084,"path":7216,"parent":751,"attributes":7217,"classes":7224,"functions":7228},"unitelabs\u002Fcdk\u002Fconfig\u002Fconfig.py",[778,7218,7219,2074,7220,7221,7222,7223],"unitelabs.cdk.config.config.BasicSerializableType","unitelabs.cdk.config.config.SerializableType","unitelabs.cdk.config.config.DEFAULT_CONFIG_PATHS","unitelabs.cdk.config.config.UNCONFIGURED","unitelabs.cdk.config.config.T","unitelabs.cdk.config.config.__all__",[760,757,7225,7226,7227,7089],"unitelabs.cdk.config.config.JsonSchemaGenerator","unitelabs.cdk.config.config.MissingDefault","unitelabs.cdk.config.config.DelayedDefault",[7229,7230,7094,7097,7231,7232],"unitelabs.cdk.config.config.get_schema_fields","unitelabs.cdk.config.config.update_yaml","unitelabs.cdk.config.config.find_file","unitelabs.cdk.config.config.get_extant_path",{"type":766,"name":778,"path":7216,"parent":7084,"lines":7234,"value":7235},[1042,1042],"functools.partial(model_validator, mode='after')",{"type":766,"name":7218,"path":7216,"parent":7084,"lines":7237,"value":7238,"annotation":7239},[1046,1046],"str | int | float | bool",{"name":1049,"cls":797},{"type":766,"name":7219,"path":7216,"parent":7084,"lines":7241,"value":7242,"annotation":7243},[768,1052],"BasicSerializableType | None | list['SerializableType'] | dict[str, 'SerializableType']",{"name":1049,"cls":797},{"type":766,"name":2074,"path":7216,"parent":7084,"lines":7245,"value":7246,"annotation":7247},[851,851],"dict[str, SerializableType]",{"name":1049,"cls":797},{"type":766,"name":7220,"path":7216,"parent":7084,"lines":7249,"value":7250},[1774,1774],"[pathlib.Path('.\u002Fconfig.json'), pathlib.Path('.\u002Fconfig.yaml'), pathlib.Path('.\u002Fconfig.yml')]",{"type":848,"name":760,"path":7216,"parent":7084,"description":7252,"lines":7253,"bases":7254,"mro":7257},"The filetype is unsupported for reading\u002Fwriting config files.",[890,1058],[7255],{"annotation":7256},{"name":1904,"cls":797},[760],{"type":848,"name":757,"path":7216,"parent":7084,"description":7259,"lines":7260,"bases":7261,"mro":7264},"Received an invalid configuration.",[901,1336],[7262],{"annotation":7263},{"name":965,"cls":797},[757],{"type":784,"name":7229,"path":7216,"parent":7084,"description":7266,"lines":7267,"parameters":7268,"returns":7273},"Get the fields from a pydantic core schema.",[909,3866],[7269],{"name":7270,"kind":794,"annotation":7271,"required":883},"data",{"name":7272,"cls":797},"pydantic_core.core_schema.CoreSchema",{"description":807,"annotation":7274},{"left":7275,"slice":7276},{"name":905,"cls":797},{"name":2074,"cls":797},{"type":848,"name":7225,"path":7216,"parent":7084,"description":7278,"lines":7279,"bases":7280,"functions":7284,"mro":7287},"Custom JSON Schema generator for compliance with UniteLabs PEP-17: JSON Schema.\n\nMore info about the specification can be found at: https:\u002F\u002Fwww.notion.so\u002Funitelabs\u002FJSON-Schema-13403b686b5f8099910cf52b9e1510b5",[1679,3452],[7281],{"annotation":7282},{"name":7283,"cls":797},"pydantic.json_schema.GenerateJsonSchema",[7285,7286],"unitelabs.cdk.config.config.JsonSchemaGenerator.generate","unitelabs.cdk.config.config.JsonSchemaGenerator.bytes_schema",[7225,7283],{"type":784,"name":7285,"path":7216,"parent":7225,"lines":7289,"parameters":7290,"returns":7298},[2351,3399],[7291,7292,7294],{"name":882,"kind":794,"required":883},{"name":7127,"kind":794,"annotation":7293,"required":883},{"name":7272,"cls":797},{"name":7295,"kind":794,"annotation":7296,"required":42,"default":7297},"mode",{"name":796,"cls":797},"'validation'",{"description":807,"annotation":7299},{"name":7300,"cls":797},"pydantic.json_schema.JsonSchemaValue",{"type":784,"name":7286,"path":7216,"parent":7225,"lines":7302,"parameters":7303,"returns":7308},[1697,3452],[7304,7305],{"name":882,"kind":794,"required":883},{"name":7127,"kind":794,"annotation":7306,"required":883},{"name":7307,"cls":797},"pydantic_core.core_schema.BytesSchema",{"description":807,"annotation":7309},{"name":7300,"cls":797},{"type":784,"name":7230,"path":7216,"parent":7084,"description":7311,"lines":7312,"parameters":7313},"Recursively update a `ruamel.yaml.CommentedMap` with data from a dictionary.",[1399,1718],[7314,7319],{"name":7315,"kind":794,"annotation":7316,"required":883,"description":7318},"yaml",{"name":7317,"cls":797},"ruamel.yaml.CommentedMap","The `CommentedMap` to update.",{"name":7270,"kind":794,"annotation":7320,"required":883,"description":7321},{"name":825,"cls":797},"A dictionary with keys matching those contained in `yaml` from which updated values\nwill be applied to the `CommentedMap`.",{"type":848,"name":7226,"path":7216,"parent":7084,"lines":7323,"functions":7324,"mro":7326},[2849,1179],[7325],"unitelabs.cdk.config.config.MissingDefault.__repr__",[7226],{"type":784,"name":7325,"path":7216,"parent":7226,"lines":7328,"parameters":7329},[1830,1179],[7330],{"name":882,"kind":794,"required":883},{"type":766,"name":7221,"path":7216,"parent":7084,"lines":7332,"value":7333},[2659,2659],"MissingDefault()",{"type":766,"name":7222,"path":7216,"parent":7084,"lines":7335,"value":1043},[2660,2660],{"type":848,"name":7227,"path":7216,"parent":7084,"lines":7337,"bases":7338,"attributes":7343,"functions":7347,"mro":7350},[2982,934],[7339],{"annotation":7340},{"left":7341,"slice":7342},{"name":1255,"cls":797},{"name":7222,"cls":797},[7344,7345,7346],"unitelabs.cdk.config.config.DelayedDefault.func","unitelabs.cdk.config.config.DelayedDefault.resolved","unitelabs.cdk.config.config.DelayedDefault.value",[7348,7349],"unitelabs.cdk.config.config.DelayedDefault.__init__","unitelabs.cdk.config.config.DelayedDefault.resolve",[7227],{"type":784,"name":7348,"path":7216,"parent":7227,"lines":7352,"parameters":7353},[1431,927],[7354,7355],{"name":882,"kind":794,"required":883},{"name":1485,"kind":794,"annotation":7356,"required":883},{"left":7357,"slice":7358},{"name":1488,"cls":797},{"elements":7359},[7360,7363],{"elements":7361},[7362],{"name":7089,"cls":797},{"name":7222,"cls":797},{"type":766,"name":7344,"path":7216,"parent":7227,"lines":7365,"value":1485},[2991,2991],{"type":766,"name":7345,"path":7216,"parent":7227,"lines":7367,"value":1370},[1440,1440],{"type":766,"name":7346,"path":7216,"parent":7227,"lines":7369,"value":7370},[927,927],"typing.cast(T, UNCONFIGURED)",{"type":784,"name":7349,"path":7216,"parent":7227,"lines":7372,"parameters":7373,"returns":7378},[933,934],[7374,7375],{"name":882,"kind":794,"required":883},{"name":7376,"kind":794,"annotation":7377,"required":883},"instance",{"name":7089,"cls":797},{"description":807,"annotation":7379},{"name":7222,"cls":797},{"type":784,"name":7094,"path":7216,"parent":7084,"lines":7381,"parameters":7382,"returns":7392},[1079,1441],[7383],{"name":1485,"kind":794,"annotation":7384,"required":883},{"left":7385,"slice":7386},{"name":1488,"cls":797},{"elements":7387},[7388,7391],{"elements":7389},[7390],{"name":7089,"cls":797},{"name":7222,"cls":797},{"description":807,"annotation":7393},{"left":7394,"slice":7395},{"name":1488,"cls":797},{"elements":7396},[7397,7398],{},{"name":7222,"cls":797},{"type":848,"name":7089,"path":7216,"parent":7084,"description":7400,"lines":7401,"attributes":7403,"functions":7408,"mro":7420},"A pydantic-enabled dataclass that represents a configuration.",[3010,7402],344,[7404,7405,7406,7407],"unitelabs.cdk.config.config.Config.__pydantic_config__","unitelabs.cdk.config.config.Config._ignore","unitelabs.cdk.config.config.Config._source","unitelabs.cdk.config.config.Config._source_path",[7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419],"unitelabs.cdk.config.config.Config.__get_pydantic_core_schema__","unitelabs.cdk.config.config.Config.__getattribute__","unitelabs.cdk.config.config.Config.to_pydantic_dataclass","unitelabs.cdk.config.config.Config.get_type_adapter","unitelabs.cdk.config.config.Config.from_dict","unitelabs.cdk.config.config.Config.to_dict","unitelabs.cdk.config.config.Config.schema","unitelabs.cdk.config.config.Config.describe","unitelabs.cdk.config.config.Config.load","unitelabs.cdk.config.config.Config.dump","unitelabs.cdk.config.config.Config.validate",[7089],{"type":766,"name":7404,"path":7216,"parent":7089,"lines":7422,"value":7423},[5962,4304],"pydantic.ConfigDict(validate_assignment=True, revalidate_instances='always', use_attribute_docstrings=True, ser_json_bytes='base64', val_json_bytes='base64')",{"type":766,"name":7405,"path":7216,"parent":7089,"lines":7425,"value":7426,"annotation":7427},[1187,1187],"{'_source', '_source_path'}",{"left":7428,"slice":7429},{"name":6265,"cls":797},{"name":796,"cls":797},{"type":766,"name":7406,"path":7216,"parent":7089,"lines":7431,"value":820,"annotation":7432},[2151,2151],{"join":7433},[7434,7435,820],{"name":7317,"cls":797},{"name":2074,"cls":797},{"type":766,"name":7407,"path":7216,"parent":7089,"lines":7437,"value":820,"annotation":7438},[1094,1094],{"join":7439},[7440,820],{"name":822,"cls":797},{"type":784,"name":7409,"path":7216,"parent":7089,"lines":7442,"decorators":7443,"parameters":7444,"returns":7452},[3028,2152],[5412],[7445,7446,7449],{"name":5415,"kind":794,"required":883},{"name":7447,"kind":794,"annotation":7448,"required":883},"source_type",{"name":5432,"cls":797},{"name":1012,"kind":794,"annotation":7450,"required":883},{"name":7451,"cls":797},"pydantic.annotated_handlers.GetCoreSchemaHandler",{"description":807,"annotation":7453},{"name":7272,"cls":797},{"type":784,"name":7410,"path":7216,"parent":7089,"lines":7455,"parameters":7457},[979,7456],157,[7458,7459],{"name":882,"kind":794,"required":883},{"name":793,"kind":794,"annotation":7460,"required":883},{"name":796,"cls":797},{"type":784,"name":7411,"path":7216,"parent":7089,"description":7462,"lines":7463,"decorators":7465,"parameters":7466,"returns":7468},"Create a pydantic dataclass from the Config.",[995,7464],177,[5412],[7467],{"name":5415,"kind":794,"required":883},{"description":807,"annotation":7469},{"left":7470,"slice":7471},{"name":955,"cls":797},{"name":5432,"cls":797},{"type":784,"name":7412,"path":7216,"parent":7089,"description":7473,"lines":7474,"decorators":7476,"parameters":7477,"returns":7479},"Get a pydantic type adapter for this class.",[7475,4376],179,[5412],[7478],{"name":5415,"kind":794,"required":883},{"description":807,"annotation":7480},{"name":7481,"cls":797},"pydantic.type_adapter.TypeAdapter",{"type":784,"name":7413,"path":7216,"parent":7089,"description":7483,"lines":7484,"decorators":7486,"parameters":7487,"returns":7492},"Create a new `Config` instance from a dict, without rejecting unknown fields.\n\nThis function allows arbitrary additional data to be set on the `Config` object\nand therefore does not guarantee validations on setting attributes for all fields, unlike `validate`.\n\nIn this way, this method should only be used in contexts where the derived configuration is not present,\ne.g. `certificate` CLI where app is not loaded and thus the subclass of `ConnectorBaseConfig` cannot be found.",[7485,1146],184,[5412],[7488,7489],{"name":5415,"kind":794,"required":883},{"name":7270,"kind":794,"annotation":7490,"required":883,"description":7491},{"name":2074,"cls":797},"A dictionary of configuration values.",{"description":7493,"annotation":7494},"A validated `Config` instance, where only the known fields have been validated.",{"name":5432,"cls":797},{"type":784,"name":7414,"path":7216,"parent":7089,"description":7496,"lines":7497,"parameters":7499,"returns":7501},"Get the serializable dictionary representation of the instance.",[1518,7498],224,[7500],{"name":882,"kind":794,"required":883},{"description":807,"annotation":7502},{"name":2074,"cls":797},{"type":784,"name":7415,"path":7216,"parent":7089,"description":7504,"lines":7505,"decorators":7508,"parameters":7509,"returns":7511},"Get the JSON Schema for this class.",[7506,7507],226,229,[5412],[7510],{"name":5415,"kind":794,"required":883},{"description":807,"annotation":7512},{"left":7513,"slice":7514},{"name":825,"cls":797},{"elements":7515},[7516,7517],{"name":796,"cls":797},{"name":1362,"cls":797},{"type":784,"name":7416,"path":7216,"parent":7089,"description":7519,"lines":7520,"decorators":7522,"parameters":7523,"returns":7530,"throws":7537},"Get a description of the whole configuration or for a field in the configuration.\n\nCurrently only supports fields that are present in the schema at depth 1.",[7521,1250],231,[5412],[7524,7525],{"name":5415,"kind":794,"required":883},{"name":7164,"kind":794,"annotation":7526,"required":42,"default":820,"description":7529},{"join":7527},[7528,820],{"name":796,"cls":797},"The field in the `Config` to get a description for.",{"description":807,"annotation":7531},{"left":7532,"slice":7533},{"name":825,"cls":797},{"elements":7534},[7535,7536],{"name":796,"cls":797},{"name":1362,"cls":797},[7538],{"description":7171,"annotation":7539},{"name":7090,"cls":797},{"type":784,"name":7417,"path":7216,"parent":7089,"description":7541,"lines":7542,"decorators":7545,"parameters":7546,"returns":7557,"throws":7560},"Load a connector configuration from `path`.\n\nIf no `path` is provided, searches the default config file locations: `.\u002Fconfig.json`, `.\u002Fconfig.yaml`,\nand `.\u002Fconfig.yml` for an existing config file.",[7543,7544],256,286,[5412],[7547,7548,7553],{"name":5415,"kind":794,"required":883},{"name":1977,"kind":794,"annotation":7549,"required":42,"default":820,"description":7552},{"join":7550},[7551,820],{"name":822,"cls":797},"The path to the configuration file, can be a yaml or json filetype,\ndefaults to first found config file in default locations.",{"name":7554,"kind":794,"annotation":7555,"required":42,"default":1370,"description":7556},"strict",{"name":1003,"cls":797},"Whether or not to raise an error if the file contains fields not defined in the `Config` dataclass.",{"description":7558,"annotation":7559},"A `Config` instance, where only the known fields have been validated if not `strict`,\nor all fields have been validated if `strict`.",{"name":5432,"cls":797},[7561,7565,7568],{"description":7562,"annotation":7563},"If no config file is found at the provided `path`.",{"name":7564,"cls":797},"FileNotFoundError",{"description":7566,"annotation":7567},"If the provided `path` is not a yaml or json file.",{"name":760,"cls":797},{"description":7569,"annotation":7570},"If the config file contains invalid values.",{"name":757,"cls":797},{"type":784,"name":7418,"path":7216,"parent":7089,"description":7572,"lines":7573,"parameters":7575,"throws":7580},"Write the current configuration to a file.",[6596,7574],318,[7576,7577],{"name":882,"kind":794,"required":883},{"name":1977,"kind":794,"annotation":7578,"required":883,"description":7579},{"name":822,"cls":797},"The path at which to write the configuration, may be yaml or json filetype.",[7581],{"description":7582,"annotation":7583},"If `path` extension is not `.yaml` or `.json`.",{"name":760,"cls":797},{"type":784,"name":7419,"path":7216,"parent":7089,"description":7585,"lines":7586,"decorators":7588,"parameters":7589,"returns":7596},"Validate the configuration values.",[7587,7402],320,[5412],[7590,7591],{"name":5415,"kind":794,"required":883},{"name":7069,"kind":794,"annotation":7592,"required":883,"description":7595},{"join":7593},[7594,820],{"name":2074,"cls":797},"The configuration values to validate.",{"description":7597,"annotation":7598},"A validated `Config` instance, or the default instance if no values are provided.",{"name":5432,"cls":797},{"type":784,"name":7097,"path":7216,"parent":7084,"description":7600,"lines":7601,"parameters":7604,"returns":7610,"throws":7613},"Read in configuration data from a file.",[7602,7603],347,375,[7605],{"name":1977,"kind":794,"annotation":7606,"required":42,"default":820,"description":7609},{"join":7607},[7608,820],{"name":822,"cls":797},"The path to the configuration file, can be a yaml or json file,\ndefault checks `.\u002Fconfig.json`, `.\u002Fconfig.yaml`, `.\u002Fconfig.yml` paths.",{"description":7611,"annotation":7612},"A serializable dictionary of the configuration data.",{"name":2074,"cls":797},[7614,7617],{"description":7615,"annotation":7616},"If no file is found at the provided `path`.",{"name":7564,"cls":797},{"description":7566,"annotation":7618},{"name":760,"cls":797},{"type":784,"name":7231,"path":7216,"parent":7084,"description":7620,"lines":7621,"parameters":7624,"returns":7638,"throws":7641},"Search for a file at the provided path or in default locations.",[7622,7623],378,412,[7625,7630],{"name":1977,"kind":794,"annotation":7626,"required":42,"default":820,"description":7629},{"join":7627},[7628,820],{"name":822,"cls":797},"The path to the file, can be a yaml or json file.",{"name":7631,"kind":794,"annotation":7632,"required":42,"default":820,"description":7637},"default_paths",{"join":7633},[7634,820],{"left":7635,"slice":7636},{"name":905,"cls":797},{"name":822,"cls":797},"A list of default paths to search if no `path` is provided.",{"description":7639,"annotation":7640},"The absolute path to the file.",{"name":822,"cls":797},[7642],{"description":7643,"annotation":7644},"If no file is found at the provided `path` or any of the `default_paths`.",{"name":7564,"cls":797},{"type":784,"name":7232,"path":7216,"parent":7084,"description":7646,"lines":7647,"parameters":7650,"returns":7657},"Search for an existing file from a list of paths.",[7648,7649],415,425,[7651],{"name":7652,"kind":794,"annotation":7653,"required":883,"description":7656},"paths",{"left":7654,"slice":7655},{"name":905,"cls":797},{"name":822,"cls":797},"A list of paths, ordered by preference.",{"description":7658,"annotation":7659},"The first absolute path from `paths` that exists or None, if none of the paths exist.",{"join":7660},[7661,820],{"name":822,"cls":797},{"type":766,"name":7223,"path":7216,"parent":7084,"lines":7663},[7664,7664],428,{"type":738,"name":7085,"path":7666,"parent":751,"attributes":7667,"classes":7671,"functions":7673},"unitelabs\u002Fcdk\u002Fconfig\u002Fconnector_base_config.py",[7668,7669,7670],"unitelabs.cdk.config.connector_base_config.URIString","unitelabs.cdk.config.connector_base_config.UUIDString","unitelabs.cdk.config.connector_base_config.__all__",[759,756,7672,758],"unitelabs.cdk.config.connector_base_config.DiscoveryConfig",[7674,7096],"unitelabs.cdk.config.connector_base_config.read_bytes_if_path_and_exists",{"type":766,"name":7668,"path":7666,"parent":7085,"lines":7676,"value":7677},[1046,1052],"typing.Annotated[str, pydantic.WithJsonSchema({'type': 'string', 'format': 'uri'})]",{"type":766,"name":7669,"path":7666,"parent":7085,"lines":7679,"value":7680},[1774,890],"typing.Annotated[str, pydantic.WithJsonSchema({'type': 'string', 'format': 'uuid'})]",{"type":784,"name":7674,"path":7666,"parent":7085,"description":7682,"lines":7683,"parameters":7684,"returns":7691,"throws":7696},"Read the byte-contents of the given `path`, if it is a path or a string-representation of a path.\n\nIf the path-string's resolved `Path` does not exist, it is treated as a base64-encoded ASCII-string\nand decoded to bytes.",[898,3605],[7685],{"name":1977,"kind":794,"annotation":7686,"required":883,"description":7690},{"join":7687},[7688,7689,820],{"name":796,"cls":797},{"name":822,"cls":797},"A string-representation of a path, or a path, from which to read the contents,\nor base64-encoded ASCII-string, which is decoded to bytes,\nor None, which is returned immediately.",{"description":7692,"annotation":7693},"The byte-contents from `path` or None.",{"join":7694},[7695,820],{"name":2497,"cls":797},[7697],{"description":7698,"annotation":7699},"If `path` is a valid path but does not exist.",{"name":7564,"cls":797},{"type":848,"name":759,"path":7666,"parent":7085,"description":7701,"lines":7702,"decorators":7703,"bases":7704,"attributes":7710,"functions":7718,"mro":7722},"Configuration for a SiLA server.",[3151,1465],[2463],[7705,7708],{"annotation":7706},{"name":7707,"cls":797},"sila.server.server.ServerConfig",{"annotation":7709},{"name":7089,"cls":797},[7711,7712,7713,7714,7715,7716,7717],"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.root_certificates","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.certificate_chain","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.private_key","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.options","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.uuid","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.name","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.vendor_url",[7719,7720,7721],"unitelabs.cdk.config.connector_base_config.SiLAServerConfig.__init__","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.__get_pydantic_json_schema__","unitelabs.cdk.config.connector_base_config.SiLAServerConfig.__post_init__",[759,7707,7089],{"type":766,"name":7711,"path":7666,"parent":759,"description":7724,"lines":7725,"value":820,"annotation":7726},"A path to, or the bytestring contents of, the PEM-encoded root certificates, or `None` if no\nroot certificates should be used.\nNote: TLS must be set to True to activate encryption with this certificate.",[920,920],{"join":7727},[7728,7729,7730,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"type":766,"name":7712,"path":7666,"parent":759,"description":7732,"lines":7733,"value":820,"annotation":7734},"A path to, or the bytestring contents of, the PEM-encoded certificate chain, or `None`\nif no certificate chain should be used.\nNote: TLS must be set to True to activate encryption with this certificate.",[1601,1601],{"join":7735},[7736,7737,7738,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"type":766,"name":7713,"path":7666,"parent":759,"description":7740,"lines":7741,"value":820,"annotation":7742},"A path to, or the bytestring contents of, the PEM-encoded private key, or `None` if no\nprivate key should be used.\nNote: TLS must be set to True to activate encryption with this key.",[1431,1431],{"join":7743},[7744,7745,7746,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"type":766,"name":7714,"path":7666,"parent":759,"lines":7748,"value":6461,"annotation":7749},[3000,3000],{"name":825,"cls":797},{"type":766,"name":7715,"path":7666,"parent":759,"lines":7751,"value":4758,"annotation":7752},[3173,3173],{"name":7669,"cls":797},{"type":766,"name":7716,"path":7666,"parent":759,"lines":7754,"value":7755,"annotation":7756},[934,934],"'SiLA Server'",{"left":7757,"slice":7758},{"name":2343,"cls":797},{"elements":7759},[7760,7761],{"name":796,"cls":797},{},{"type":766,"name":7717,"path":7666,"parent":759,"lines":7763,"value":7764,"annotation":7765},[2877,2877],"'https:\u002F\u002Fsila-standard.com'",{"name":7668,"cls":797},{"type":784,"name":7720,"path":7666,"parent":759,"lines":7767,"decorators":7768,"parameters":7769,"returns":7777},[1079,1452],[5412],[7770,7771,7774],{"name":5415,"kind":794,"required":883},{"name":7772,"kind":794,"annotation":7773,"required":883},"core_schema",{"name":7272,"cls":797},{"name":1012,"kind":794,"annotation":7775,"required":883},{"name":7776,"cls":797},"pydantic.annotated_handlers.GetJsonSchemaHandler",{"description":807,"annotation":7778},{"name":7300,"cls":797},{"type":784,"name":7721,"path":7666,"parent":759,"lines":7780,"parameters":7781},[1736,1465],[7782],{"name":882,"kind":794,"required":883},{"type":784,"name":7719,"path":7666,"parent":759,"lines":7784,"parameters":7785},[2517,2517],[7786,7787,7794,7801,7808,7811,7813,7820],{"name":882,"kind":794,"required":883},{"name":7788,"kind":794,"annotation":7789,"required":42,"default":820},"root_certificates",{"join":7790},[7791,7792,7793,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"name":7795,"kind":794,"annotation":7796,"required":42,"default":820},"certificate_chain",{"join":7797},[7798,7799,7800,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"name":7802,"kind":794,"annotation":7803,"required":42,"default":820},"private_key",{"join":7804},[7805,7806,7807,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"name":7809,"kind":794,"annotation":7810,"required":42},"options",{"name":825,"cls":797},{"name":1929,"kind":794,"annotation":7812,"required":42},{"name":7669,"cls":797},{"name":793,"kind":794,"annotation":7814,"required":42,"default":7755},{"left":7815,"slice":7816},{"name":2343,"cls":797},{"elements":7817},[7818,7819],{"name":796,"cls":797},{},{"name":7821,"kind":794,"annotation":7822,"required":42,"default":7764},"vendor_url",{"name":7668,"cls":797},{"type":848,"name":756,"path":7666,"parent":7085,"description":7824,"lines":7825,"decorators":7826,"bases":7827,"attributes":7833,"functions":7839,"mro":7843},"Configuration for a gRPC Cloud Server.",[969,3070],[2463],[7828,7831],{"annotation":7829},{"name":7830,"cls":797},"sila.server.cloud_server.CloudServerConfig",{"annotation":7832},{"name":7089,"cls":797},[7834,7835,7836,7837,7838],"unitelabs.cdk.config.connector_base_config.CloudServerConfig.port","unitelabs.cdk.config.connector_base_config.CloudServerConfig.root_certificates","unitelabs.cdk.config.connector_base_config.CloudServerConfig.certificate_chain","unitelabs.cdk.config.connector_base_config.CloudServerConfig.private_key","unitelabs.cdk.config.connector_base_config.CloudServerConfig.options",[7840,7841,7842],"unitelabs.cdk.config.connector_base_config.CloudServerConfig.__init__","unitelabs.cdk.config.connector_base_config.CloudServerConfig.ensure_valid_hostname","unitelabs.cdk.config.connector_base_config.CloudServerConfig.__post_init__",[756,7830,7089],{"type":766,"name":7834,"path":7666,"parent":756,"lines":7845,"value":7846,"annotation":7847},[5803,5803],"50000",{"left":7848,"slice":7849},{"name":2343,"cls":797},{"elements":7850},[7851,7852],{"name":803,"cls":797},{},{"type":766,"name":7835,"path":7666,"parent":756,"description":7724,"lines":7854,"value":820,"annotation":7855},[5830,5830],{"join":7856},[7857,7858,7859,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"type":766,"name":7836,"path":7666,"parent":756,"description":7861,"lines":7862,"value":820,"annotation":7863},"A path to, or the bytestring contents of, the PEM-encoded certificate chain, or `None` if no\ncertificate chain should be used.\nNote: TLS must be set to True to activate encryption with this certificate.",[970,970],{"join":7864},[7865,7866,7867,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"type":766,"name":7837,"path":7666,"parent":756,"description":7740,"lines":7869,"value":820,"annotation":7870},[4350,4350],{"join":7871},[7872,7873,7874,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"type":766,"name":7838,"path":7666,"parent":756,"lines":7876,"value":6461,"annotation":7878},[7877,7877],155,{"name":825,"cls":797},{"type":784,"name":7841,"path":7666,"parent":756,"description":7880,"lines":7881,"decorators":7882,"parameters":7884,"returns":7888},"Ensure that the hostname is valid.",[7456,2700],[7883,5412],"pydantic.field_validator('hostname')",[7885,7886],{"name":5415,"kind":794,"required":883},{"name":1477,"kind":794,"annotation":7887,"required":883},{"name":796,"cls":797},{"description":807,"annotation":7889},{"name":796,"cls":797},{"type":784,"name":7842,"path":7666,"parent":756,"lines":7891,"parameters":7892},[3224,3070],[7893],{"name":882,"kind":794,"required":883},{"type":784,"name":7840,"path":7666,"parent":756,"lines":7895,"parameters":7896},[2517,2517],[7897,7898,7906,7912,7918,7924],{"name":882,"kind":794,"required":883},{"name":7899,"kind":794,"annotation":7900,"required":42,"default":7846},"port",{"left":7901,"slice":7902},{"name":2343,"cls":797},{"elements":7903},[7904,7905],{"name":803,"cls":797},{},{"name":7788,"kind":794,"annotation":7907,"required":42,"default":820},{"join":7908},[7909,7910,7911,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"name":7795,"kind":794,"annotation":7913,"required":42,"default":820},{"join":7914},[7915,7916,7917,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"name":7802,"kind":794,"annotation":7919,"required":42,"default":820},{"join":7920},[7921,7922,7923,820],{"name":796,"cls":797},{"name":822,"cls":797},{"name":2497,"cls":797},{"name":7809,"kind":794,"annotation":7925,"required":42},{"name":825,"cls":797},{"type":848,"name":7672,"path":7666,"parent":7085,"description":7927,"lines":7928,"decorators":7929,"bases":7930,"functions":7936,"mro":7938},"Configuration for network broadcast of a server.",[7485,6343],[2463],[7931,7934],{"annotation":7932},{"name":7933,"cls":797},"sila.server.discovery.DiscoveryConfig",{"annotation":7935},{"name":7089,"cls":797},[7937],"unitelabs.cdk.config.connector_base_config.DiscoveryConfig.__init__",[7672,7933,7089],{"type":784,"name":7937,"path":7666,"parent":7672,"lines":7940,"parameters":7941},[2517,2517],[7942],{"name":882,"kind":794,"required":883},{"type":848,"name":758,"path":7666,"parent":7085,"description":7944,"lines":7945,"decorators":7947,"bases":7948,"attributes":7951,"functions":7956,"mro":7959},"Base configuration for a UniteLabs SiLA2 Connector.",[2646,7946],212,[2463],[7949],{"annotation":7950},{"name":7089,"cls":797},[7952,7953,7954,7955],"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.sila_server","unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.cloud_server_endpoint","unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.discovery","unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.logging",[7957,7958],"unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.__init__","unitelabs.cdk.config.connector_base_config.ConnectorBaseConfig.__post_init__",[758,7089],{"type":766,"name":7952,"path":7666,"parent":758,"lines":7961,"value":7963,"annotation":7964},[7962,7962],193,"dataclasses.field(default_factory=SiLAServerConfig)",{"join":7965},[7966,820],{"name":759,"cls":797},{"type":766,"name":7953,"path":7666,"parent":758,"lines":7968,"value":7969,"annotation":7970},[6366,6366],"dataclasses.field(default_factory=CloudServerConfig)",{"join":7971},[7972,820],{"name":756,"cls":797},{"type":766,"name":7954,"path":7666,"parent":758,"lines":7974,"value":7975,"annotation":7976},[6227,6227],"dataclasses.field(default_factory=DiscoveryConfig)",{"join":7977},[7978,820],{"name":7672,"cls":797},{"type":766,"name":7955,"path":7666,"parent":758,"description":7980,"lines":7981,"value":7982,"annotation":7983},"A python `logging.config` which is passed into `dictConfig`.\nCheck the official documentation for more information about the logging config schema:\nhttps:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Flogging.config.html#logging-config-dictschema",[852,852],"dataclasses.field(default=None)",{"join":7984},[7985,820],{"name":825,"cls":797},{"type":784,"name":7958,"path":7666,"parent":758,"lines":7987,"parameters":7989},[7988,7946],203,[7990],{"name":882,"kind":794,"required":883},{"type":784,"name":7957,"path":7666,"parent":758,"lines":7992,"parameters":7993},[2517,2517],[7994,7995,8000,8005,8010],{"name":882,"kind":794,"required":883},{"name":7996,"kind":794,"annotation":7997,"required":42},"sila_server",{"join":7998},[7999,820],{"name":759,"cls":797},{"name":8001,"kind":794,"annotation":8002,"required":42},"cloud_server_endpoint",{"join":8003},[8004,820],{"name":756,"cls":797},{"name":8006,"kind":794,"annotation":8007,"required":42},"discovery",{"join":8008},[8009,820],{"name":7672,"cls":797},{"name":8011,"kind":794,"annotation":8012,"required":42,"default":820},"logging",{"join":8013},[8014,820],{"name":825,"cls":797},{"type":784,"name":7096,"path":7666,"parent":7085,"description":8016,"lines":8017,"returns":8019},"Get the current connector configuration.",[1518,8018],225,{"description":807,"annotation":8020},{"left":8021,"slice":8022},{"name":955,"cls":797},{"name":758,"cls":797},{"type":766,"name":7670,"path":7666,"parent":7085,"lines":8024},[8025,8026],228,233,{"type":766,"name":775,"path":1030,"parent":745,"lines":8028,"value":1054},[1052,1053],{"type":848,"name":756,"path":7666,"parent":7085,"description":7824,"lines":8030,"decorators":8031,"bases":8032,"attributes":8037,"functions":8038,"mro":8039},[969,3070],[2463],[8033,8035],{"annotation":8034},{"name":7830,"cls":797},{"annotation":8036},{"name":7089,"cls":797},[7834,7835,7836,7837,7838],[7840,7841,7842],[756,7830,7089],{"type":848,"name":757,"path":7216,"parent":7084,"description":7259,"lines":8041,"bases":8042,"mro":8045},[901,1336],[8043],{"annotation":8044},{"name":965,"cls":797},[757],{"type":848,"name":761,"path":834,"parent":744,"description":849,"lines":8047,"attributes":8048,"functions":8049,"mro":8050},[851,852],[854,855,856,857,858,859,860,861,862,863,864],[866,867,868,869,870,871,872,873,874],[761],{"type":848,"name":758,"path":7666,"parent":7085,"description":7944,"lines":8052,"decorators":8053,"bases":8054,"attributes":8057,"functions":8058,"mro":8059},[2646,7946],[2463],[8055],{"annotation":8056},{"name":7089,"cls":797},[7952,7953,7954,7955],[7957,7958],[758,7089],{"type":848,"name":762,"path":1596,"parent":1215,"description":1599,"lines":8061,"bases":8062,"attributes":8077,"functions":8078,"examples":8079,"mro":8081},[842,1601],[8063,8070],{"annotation":8064},{"left":8065,"slice":8066},{"name":1255,"cls":797},{"elements":8067},[8068,8069],{"name":1228,"cls":797},{"name":1229,"cls":797},{"annotation":8071},{"left":8072,"slice":8073},{"name":763,"cls":797},{"elements":8074},[8075,8076],{"name":1228,"cls":797},{"name":1229,"cls":797},[1618,1619,1620],[1622,1623,1624,1625,1626,1627,1628],[8080],{"description":1631,"code":1632},[762,763],{"type":848,"name":759,"path":7666,"parent":7085,"description":7701,"lines":8083,"decorators":8084,"bases":8085,"attributes":8090,"functions":8091,"mro":8092},[3151,1465],[2463],[8086,8088],{"annotation":8087},{"name":7707,"cls":797},{"annotation":8089},{"name":7089,"cls":797},[7711,7712,7713,7714,7715,7716,7717],[7719,7720,7721],[759,7707,7089],{"type":848,"name":763,"path":1226,"parent":1214,"description":1248,"lines":8094,"bases":8095,"attributes":8105,"functions":8106,"mro":8107},[768,1250],[8096,8103],{"annotation":8097},{"left":8098,"slice":8099},{"name":1255,"cls":797},{"elements":8100},[8101,8102],{"name":1228,"cls":797},{"name":1229,"cls":797},{"annotation":8104},{"name":1262,"cls":797},[1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275],[1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290],[763],{"type":848,"name":764,"path":1727,"parent":1216,"description":1734,"lines":8109,"bases":8110,"attributes":8119,"functions":8120,"mro":8121},[842,1736],[8111,8115],{"annotation":8112},{"left":8113,"slice":8114},{"name":1741,"cls":797},{"name":1729,"cls":797},{"annotation":8116},{"left":8117,"slice":8118},{"name":1746,"cls":797},{"name":1729,"cls":797},[1749,1750,1751,1752],[1754,1755,1756,1757,1758,1759,1760,1761],[764],{"type":848,"name":760,"path":7216,"parent":7084,"description":7252,"lines":8123,"bases":8124,"mro":8127},[890,1058],[8125],{"annotation":8126},{"name":1904,"cls":797},[760],{"type":784,"name":776,"path":780,"parent":743,"description":785,"lines":8129,"decorators":8130,"parameters":8131,"returns":8138},[787,788],[790],[8132,8135],{"name":793,"kind":794,"annotation":8133,"required":42,"default":8134},{"name":796,"cls":797},{"name":799,"cls":797},{"name":801,"kind":794,"annotation":8136,"required":42,"default":8137},{"name":803,"cls":797},{"name":805,"cls":797},{"description":807,"annotation":8139},{"name":809,"cls":797},{"type":784,"name":777,"path":1030,"parent":745,"description":1056,"lines":8141,"parameters":8142},[1058,1059],[8143,8149],{"name":1062,"kind":1063,"annotation":8144,"required":883,"description":1069},{"join":8145},[8146,8147,8148],{"name":796,"cls":797},{"name":775,"cls":797},{"name":761,"cls":797},{"name":817,"kind":794,"annotation":8150,"required":42,"default":820,"description":1074},{"join":8151},[8152,820],{"name":825,"cls":797},{"type":766,"name":778,"path":7216,"parent":7084,"lines":8154,"value":7235},[1042,1042],{"type":848,"name":762,"path":1596,"parent":1215,"description":1599,"lines":8156,"bases":8157,"attributes":8172,"functions":8173,"examples":8174,"mro":8176},[842,1601],[8158,8165],{"annotation":8159},{"left":8160,"slice":8161},{"name":1255,"cls":797},{"elements":8162},[8163,8164],{"name":1228,"cls":797},{"name":1229,"cls":797},{"annotation":8166},{"left":8167,"slice":8168},{"name":763,"cls":797},{"elements":8169},[8170,8171],{"name":1228,"cls":797},{"name":1229,"cls":797},[1618,1619,1620],[1622,1623,1624,1625,1626,1627,1628],[8175],{"description":1631,"code":1632},[762,763],{"type":848,"name":763,"path":1226,"parent":1214,"description":1248,"lines":8178,"bases":8179,"attributes":8189,"functions":8190,"mro":8191},[768,1250],[8180,8187],{"annotation":8181},{"left":8182,"slice":8183},{"name":1255,"cls":797},{"elements":8184},[8185,8186],{"name":1228,"cls":797},{"name":1229,"cls":797},{"annotation":8188},{"name":1262,"cls":797},[1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275],[1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290],[763],{"type":848,"name":764,"path":1727,"parent":1216,"description":1734,"lines":8193,"bases":8194,"attributes":8203,"functions":8204,"mro":8205},[842,1736],[8195,8199],{"annotation":8196},{"left":8197,"slice":8198},{"name":1741,"cls":797},{"name":1729,"cls":797},{"annotation":8200},{"left":8201,"slice":8202},{"name":1746,"cls":797},{"name":1729,"cls":797},[1749,1750,1751,1752],[1754,1755,1756,1757,1758,1759,1760,1761],[764],{"type":848,"name":1889,"path":2162,"parent":1885,"description":2037,"lines":8207,"bases":8208,"mro":8211},[1169,1042],[8209],{"annotation":8210},{"name":1904,"cls":797},[1889],{"type":848,"name":2204,"path":2210,"parent":2200,"description":2214,"lines":8213,"bases":8214,"attributes":8217,"functions":8218,"mro":8219},[2026,1679],[8215],{"annotation":8216},{"name":975,"cls":797},[2220],[2222,2223,2224],[2204,975,2226,2227],{"type":848,"name":2264,"path":2269,"parent":2260,"description":2294,"lines":8221,"bases":8222,"attributes":8225,"functions":8226,"mro":8227},[768,2296],[8223],{"annotation":8224},{"name":975,"cls":797},[2301,2302,2303],[2305,2306,2307,2308],[2264,975,2226,2227],{"type":848,"name":2401,"path":2406,"parent":2397,"description":2410,"lines":8229,"bases":8230,"functions":8233,"mro":8234},[2015,878],[8231],{"annotation":8232},{"name":975,"cls":797},[2416,2417,2418],[2401,975,2226,2227],{"type":848,"name":2447,"path":2454,"parent":2443,"description":2608,"lines":8236,"decorators":8237,"bases":8238,"attributes":8241,"functions":8242,"mro":8243},[1414,1723],[2463],[8239],{"annotation":8240},{"name":2467,"cls":797},[2615,2616,2617],[2619],[2447,2467,2481],{"type":848,"name":2448,"path":2454,"parent":2443,"description":2644,"lines":8245,"bases":8246,"functions":8249,"mro":8250},[1179,2646],[8247],{"annotation":8248},{"name":975,"cls":797},[2651,2652,2653,2654,2655],[2448,975,2226,2227],{"type":848,"name":2449,"path":2454,"parent":2443,"description":2460,"lines":8252,"decorators":8253,"bases":8254,"attributes":8257,"functions":8258,"mro":8259},[2015,909],[2463],[8255],{"annotation":8256},{"name":2467,"cls":797},[2469,2470,2471,2472,2473,2474,2475,2476,2477],[2479],[2449,2467,2481],{"type":848,"name":2713,"path":2718,"parent":2709,"description":2791,"lines":8261,"bases":8262,"functions":8265,"mro":8266},[773,1146],[8263],{"annotation":8264},{"name":975,"cls":797},[2797,2798,2799,2800,2801,2802,2803,2804],[2713,975,2226,2227],{"type":848,"name":2908,"path":2913,"parent":2904,"description":2917,"lines":8268,"bases":8269,"functions":8272,"mro":8273},[2015,1008],[8270],{"annotation":8271},{"name":975,"cls":797},[2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934],[2908,975,2226,2227],{"type":848,"name":3059,"path":3064,"parent":3055,"description":3068,"lines":8275,"bases":8276,"functions":8279,"mro":8280},[2026,3070],[8277],{"annotation":8278},{"name":975,"cls":797},[3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089],[3059,975,2226,2227],{"type":848,"name":3249,"path":3256,"parent":3245,"description":3312,"lines":8282,"bases":8283,"functions":8286,"mro":8287},[901,909],[8284],{"annotation":8285},{"name":975,"cls":797},[3318],[3249,975,2226,2227],{"type":848,"name":3250,"path":3256,"parent":3245,"description":3260,"lines":8289,"decorators":8290,"bases":8291,"attributes":8294,"functions":8295,"mro":8296},[2015,1242],[2463],[8292],{"annotation":8293},{"name":3266,"cls":797},[3268],[3270],[3250,3266,2481],{"type":848,"name":3251,"path":3256,"parent":3245,"description":3283,"lines":8298,"decorators":8299,"bases":8300,"attributes":8303,"functions":8304,"mro":8305},[1245,1058],[2463],[8301],{"annotation":8302},{"name":3266,"cls":797},[3290,3291],[3293],[3251,3266,2481],{"type":848,"name":3331,"path":3336,"parent":3327,"description":2917,"lines":8307,"bases":8308,"functions":8311,"mro":8312},[1238,1059],[8309],{"annotation":8310},{"name":975,"cls":797},[3345,3346,3347,3348,3349],[3331,975,2226,2227],{"type":848,"name":3441,"path":3446,"parent":3437,"description":3450,"lines":8314,"bases":8315,"attributes":8318,"functions":8319,"mro":8320},[2015,3452],[8316],{"annotation":8317},{"name":975,"cls":797},[3457,3458,3459,3460],[3462,3463,3464,3465,3466,3467],[3441,975,2226,2227],{"type":848,"name":3535,"path":3541,"parent":3531,"description":3552,"lines":8322,"bases":8323,"functions":8326,"mro":8327},[1238,3194],[8324],{"annotation":8325},{"name":975,"cls":797},[3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568],[3535,975,2226,2227],{"type":848,"name":3536,"path":3541,"parent":3531,"description":3545,"lines":8329,"bases":8330,"mro":8333},[1864,2015],[8331],{"annotation":8332},{"name":1904,"cls":797},[3536],{"type":848,"name":3676,"path":3681,"parent":3672,"description":3685,"lines":8335,"bases":8336,"functions":8339,"mro":8340},[787,788],[8337],{"annotation":8338},{"name":975,"cls":797},[3691,3692,3693],[3676,975,2226,2227],{"type":848,"name":3736,"path":3741,"parent":3732,"description":3745,"lines":8342,"bases":8343,"functions":8346,"mro":8347},[1238,1601],[8344],{"annotation":8345},{"name":975,"cls":797},[3751,3752,3753],[3736,975,2226,2227],{"type":848,"name":3814,"path":3820,"parent":3810,"description":3846,"lines":8349,"bases":8350,"functions":8353,"mro":8354},[772,3173],[8351],{"annotation":8352},{"name":975,"cls":797},[3852,3853,3854,3855,3856,3857],[3814,975,2226,2227],{"type":848,"name":3815,"path":3820,"parent":3810,"description":3824,"lines":8356,"decorators":8357,"bases":8358,"attributes":8361,"functions":8362,"mro":8363},[1242,842],[2463],[8359],{"annotation":8360},{"name":3266,"cls":797},[3831],[3833],[3815,3266,2481],{"type":848,"name":3943,"path":3948,"parent":3939,"description":3952,"lines":8365,"bases":8366,"functions":8369,"mro":8370},[2026,1059],[8367],{"annotation":8368},{"name":975,"cls":797},[3958,3959,3960,3961,3962],[3943,975,2226,2227],{"type":848,"name":4028,"path":4035,"parent":4024,"description":4100,"lines":8372,"bases":8373,"functions":8376,"mro":8377},[773,920],[8374],{"annotation":8375},{"name":975,"cls":797},[4106,4107,4108,4109],[4028,975,2226,2227],{"type":848,"name":4029,"path":4035,"parent":4024,"description":4039,"lines":8379,"decorators":8380,"bases":8381,"attributes":8384,"functions":8385,"mro":8386},[1900,1169],[2463],[8382],{"annotation":8383},{"name":2467,"cls":797},[4046],[4048],[4029,2467,2481],{"type":848,"name":4030,"path":4035,"parent":4024,"description":4071,"lines":8388,"decorators":8389,"bases":8390,"attributes":8393,"functions":8394,"mro":8395},[842,909],[2463],[8391],{"annotation":8392},{"name":2467,"cls":797},[4078,4079],[4081],[4030,2467,2481],{"type":848,"name":4152,"path":4157,"parent":4148,"description":4161,"lines":8397,"bases":8398,"functions":8401,"mro":8402},[2026,890],[8399],{"annotation":8400},{"name":975,"cls":797},[4167,4168,4169],[4152,975,2226,2227],{"type":848,"name":4199,"path":4204,"parent":4190,"description":4259,"lines":8404,"decorators":8405,"bases":8406,"attributes":8409,"functions":8410,"mro":8411},[898,1690],[2463],[8407],{"annotation":8408},{"name":2467,"cls":797},[4266,4267],[4269],[4199,2467,2481],{"type":848,"name":4195,"path":4204,"parent":4190,"description":4208,"lines":8413,"bases":8414,"mro":8417},[1900,787],[8415],{"annotation":8416},{"name":1904,"cls":797},[4195],{"type":848,"name":4196,"path":4204,"parent":4190,"description":4215,"lines":8419,"bases":8420,"mro":8423},[1169,1042],[8421],{"annotation":8422},{"name":1904,"cls":797},[4196],{"type":848,"name":4197,"path":4204,"parent":4190,"description":4222,"lines":8425,"bases":8426,"mro":8429},[1046,768],[8427],{"annotation":8428},{"name":1904,"cls":797},[4197],{"type":848,"name":4194,"path":4204,"parent":4190,"description":4286,"lines":8431,"bases":8432,"functions":8435,"mro":8436},[2351,4288],[8433],{"annotation":8434},{"name":975,"cls":797},[4293,4294,4295,4296,4297,4298,4299,4300],[4194,975,2226,2227],{"type":848,"name":4198,"path":4204,"parent":4190,"description":4039,"lines":8438,"decorators":8439,"bases":8440,"attributes":8443,"functions":8444,"mro":8445},[851,890],[2463],[8441],{"annotation":8442},{"name":2467,"cls":797},[4235],[4237],[4198,2467,2481],{"type":848,"name":4444,"path":4449,"parent":4440,"description":4477,"lines":8447,"bases":8448,"functions":8451,"mro":8452},[768,2139],[8449],{"annotation":8450},{"name":975,"cls":797},[4483,4484,4485,4486,4487,4488,4489,4490,4491,4492],[4444,975,2226,2227],{"type":848,"name":3712,"path":4614,"parent":4604,"description":4625,"lines":8454,"decorators":8455,"bases":8456,"attributes":8459,"functions":8460,"mro":8461},[842,1336],[2463],[8457],{"annotation":8458},{"name":3266,"cls":797},[4632],[4634,4635],[3712,3266,2481],{"type":848,"name":4608,"path":4614,"parent":4604,"description":4657,"lines":8463,"bases":8464,"functions":8467,"mro":8468},[909,1294],[8465],{"annotation":8466},{"name":975,"cls":797},[4663],[4608,975,2226,2227],{"type":848,"name":4609,"path":4614,"parent":4604,"description":4618,"lines":8470,"bases":8471,"mro":8474},[1242,1169],[8472],{"annotation":8473},{"name":1904,"cls":797},[4609],{"type":848,"name":4681,"path":4691,"parent":4677,"description":4695,"lines":8476,"bases":8477,"mro":8480},[1169,1042],[8478],{"annotation":8479},{"name":1904,"cls":797},[4681],{"type":848,"name":4682,"path":4691,"parent":4677,"description":4744,"lines":8482,"decorators":8483,"attributes":8484,"functions":8485,"mro":8486},[1294,1399],[2463],[4748,4749,4750,4751],[4753],[4682],{"type":848,"name":4683,"path":4691,"parent":4677,"description":4790,"lines":8488,"bases":8489,"attributes":8492,"functions":8493,"mro":8494},[1408,3224],[8490],{"annotation":8491},{"name":975,"cls":797},[4796,4797,4798],[4800,4801,4802,4803],[4683,975,2226,2227],{"type":848,"name":4684,"path":4691,"parent":4677,"description":4716,"lines":8496,"decorators":8497,"bases":8498,"attributes":8501,"functions":8502,"mro":8503},[890,1324],[2463],[8499],{"annotation":8500},{"name":3266,"cls":797},[4723],[4725,4726],[4684,3266,2481],{"type":848,"name":4685,"path":4691,"parent":4677,"description":4702,"lines":8505,"bases":8506,"mro":8509},[1046,768],[8507],{"annotation":8508},{"name":1904,"cls":797},[4685],{"type":848,"name":4686,"path":4691,"parent":4677,"description":4709,"lines":8511,"bases":8512,"mro":8515},[851,1774],[8513],{"annotation":8514},{"name":1904,"cls":797},[4686],{"type":848,"name":4870,"path":4878,"parent":4866,"description":4895,"lines":8517,"decorators":8518,"attributes":8519,"functions":8520,"mro":8521},[851,1679],[2463],[4899,4900,4901,4902,4903],[4905],[4870],{"type":848,"name":4871,"path":4878,"parent":4866,"description":4882,"lines":8523,"bases":8524,"mro":8527},[1169,1042],[8525],{"annotation":8526},{"name":1904,"cls":797},[4871],{"type":848,"name":4872,"path":4878,"parent":4866,"description":4945,"lines":8529,"bases":8530,"attributes":8533,"functions":8534,"mro":8535},[915,994],[8531],{"annotation":8532},{"name":975,"cls":797},[4951,4952],[4954,4955,4956,4957],[4872,975,2226,2227],{"type":848,"name":4873,"path":4878,"parent":4866,"description":4618,"lines":8537,"bases":8538,"mro":8541},[1046,768],[8539],{"annotation":8540},{"name":1904,"cls":797},[4873],{"type":848,"name":5054,"path":5061,"parent":5050,"description":5079,"lines":8543,"bases":8544,"attributes":8547,"functions":8548,"mro":8549},[1053,2849],[8545],{"annotation":8546},{"name":975,"cls":797},[5085],[5087,5088,5089,5090],[5054,975,2226,2227],{"type":848,"name":5056,"path":5061,"parent":5050,"description":5072,"lines":8551,"bases":8552,"mro":8555},[1245,1052],[8553],{"annotation":8554},{"name":1904,"cls":797},[5056],{"type":848,"name":5055,"path":5061,"parent":5050,"description":5065,"lines":8557,"bases":8558,"mro":8561},[2026,1242],[8559],{"annotation":8560},{"name":1904,"cls":797},[5055],{"type":848,"name":5134,"path":5140,"parent":5130,"description":5151,"lines":8563,"bases":8564,"functions":8567,"mro":8568},[1169,5153],[8565],{"annotation":8566},{"name":975,"cls":797},[5158,5159,5160,5161,5162,5163,5164,5165,5166,5167],[5134,975,2226,2227],{"type":848,"name":5135,"path":5140,"parent":5130,"description":5144,"lines":8570,"bases":8571,"mro":8574},[1900,787],[8572],{"annotation":8573},{"name":1904,"cls":797},[5135],{"type":848,"name":2467,"path":5532,"parent":5344,"description":5535,"lines":8576,"decorators":8577,"bases":8578,"functions":8581,"examples":8582,"mro":8584},[1900,1398],[2463],[8579],{"annotation":8580},{"name":2481,"cls":797},[5542,5543],[8583],{"description":5546,"code":5547},[2467,2481],{"type":848,"name":2481,"path":5983,"parent":5617,"description":5986,"lines":8586,"decorators":8587,"attributes":8588,"functions":8589,"mro":8590},[1245,920],[2463],[5990,5991,5992],[5994,5995,5996,5997],[2481],{"type":848,"name":5327,"path":5626,"parent":5615,"description":5629,"lines":8592,"attributes":8593,"functions":8594,"mro":8595},[1774,1008],[5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643],[5645,5646,5647,5648,5649,5650,5651,5652,5653],[5327],{"type":848,"name":5328,"path":6049,"parent":5618,"description":6072,"lines":8597,"decorators":8598,"bases":8599,"functions":8602,"mro":8603},[813,2332],[2463],[8600],{"annotation":8601},{"name":1904,"cls":797},[6079,6080],[5328],{"type":848,"name":975,"path":5877,"parent":5616,"description":5880,"lines":8605,"decorators":8606,"bases":8607,"attributes":8610,"functions":8611,"mro":8612},[1052,985],[2463],[8608],{"annotation":8609},{"name":2226,"cls":797},[5887,5888,5889],[5891,5892,5893,5894,5895],[975,2226,2227],{"type":848,"name":3782,"path":6734,"parent":6675,"description":6741,"lines":8614,"bases":8615,"attributes":8620,"functions":8621,"mro":8622},[1238,851],[8616],{"annotation":8617},{"left":8618,"slice":8619},{"name":1255,"cls":797},{"name":6736,"cls":797},[6749,6750],[6752,6753],[3782],{"type":848,"name":3368,"path":6376,"parent":6209,"description":6384,"lines":8624,"bases":8625,"functions":8628,"mro":8629},[787,1042],[8626],{"annotation":8627},{"name":5865,"cls":797},[6390],[3368],{"type":848,"name":3266,"path":6217,"parent":6208,"description":6225,"lines":8631,"decorators":8632,"bases":8633,"attributes":8640,"functions":8641,"examples":8642,"mro":8645},[1052,6227],[2463],[8634,8638],{"annotation":8635},{"left":8636,"slice":8637},{"name":1255,"cls":797},{"name":6219,"cls":797},{"annotation":8639},{"name":2481,"cls":797},[6237,6238,6239],[6241,6242,6243,6244,6245,6246,6247,6248],[8643,8644],{"description":6251,"code":6252},{"description":6254,"code":6255},[3266,2481],{"type":848,"name":5325,"path":6709,"parent":6674,"description":6712,"lines":8647,"bases":8648,"functions":8651,"examples":8652,"mro":8654},[1245,2660],[8649],{"annotation":8650},{"name":5327,"cls":797},[6718],[8653],{"description":6721,"code":6722},[5325,5327],{"type":848,"name":5329,"path":6145,"parent":6102,"description":6113,"lines":8656,"bases":8657,"functions":8660,"examples":8661,"mro":8663},[1774,5803],[8658],{"annotation":8659},{"name":5327,"cls":797},[6160,6161,6162],[8662],{"description":6165,"code":6166},[5329,5327],{"type":848,"name":2370,"path":6784,"parent":6676,"description":6787,"lines":8665,"attributes":8666,"functions":8667,"mro":8668},[2015,890],[6790],[6792,6793],[2370],{"type":766,"name":2340,"path":6145,"parent":6102,"lines":8670,"value":6153},[772,772],{"type":848,"name":5326,"path":6684,"parent":6673,"description":6687,"lines":8672,"bases":8673,"functions":8676,"examples":8677,"mro":8679},[1245,926],[8674],{"annotation":8675},{"name":5327,"cls":797},[6693],[8678],{"description":6696,"code":6697},[5326,5327],{"type":848,"name":5330,"path":6110,"parent":6101,"description":6113,"lines":8681,"bases":8682,"functions":8685,"examples":8686,"mro":8688},[772,1186],[8683],{"annotation":8684},{"name":5327,"cls":797},[6119,6120],[8687],{"description":6123,"code":6124},[5330,5327],{"type":784,"name":5337,"path":6049,"parent":5618,"description":6053,"lines":8690,"parameters":8691,"returns":8699},[1238,788],[8692],{"name":6057,"kind":794,"annotation":8693,"required":883,"description":6064},{"join":8694},[8695,8696],{"name":1904,"cls":797},{"left":8697,"slice":8698},{"name":955,"cls":797},{"name":1904,"cls":797},{"description":6066,"annotation":8700},{"left":8701,"slice":8702},{"name":955,"cls":797},{"name":6070,"cls":797},{"type":848,"name":5367,"path":5584,"parent":5346,"description":5587,"lines":8704,"decorators":8705,"bases":8706,"functions":8709,"mro":8710},[2015,1042],[2463],[8707],{"annotation":8708},{"name":5350,"cls":797},[5594,5595],[5367,5350,5597,5354,5403,5404,2227,5598],{"type":848,"name":5368,"path":5447,"parent":5342,"description":5455,"lines":8712,"decorators":8713,"bases":8714,"attributes":8723,"functions":8724,"mro":8725},[787,1636],[2463],[8715,8719],{"annotation":8716},{"left":8717,"slice":8718},{"name":1255,"cls":797},{"name":5449,"cls":797},{"annotation":8720},{"left":8721,"slice":8722},{"name":5466,"cls":797},{"name":5449,"cls":797},[5469],[5471,5472,5473],[5368,5466,5354,5403,5404,2227],{"type":784,"name":5372,"path":5565,"parent":5345,"description":5568,"lines":8727,"parameters":8728,"returns":8733},[909,3019],[8729,8731],{"name":5572,"kind":794,"annotation":8730,"required":883,"description":5574},{"name":955,"cls":797},{"name":952,"kind":794,"annotation":8732,"required":883,"description":5577},{"name":975,"cls":797},{"description":5579,"annotation":8734},{"left":8735,"slice":8736},{"name":955,"cls":797},{"name":5354,"cls":797},{"type":784,"name":5373,"path":5509,"parent":5343,"description":5512,"lines":8738,"parameters":8739,"returns":8749},[787,1324],[8740,8742],{"name":1477,"kind":794,"annotation":8741,"required":883,"description":5518},{"name":5517,"cls":797},{"name":5520,"kind":794,"annotation":8743,"required":883,"description":5527},{"left":8744,"slice":8745},{"name":825,"cls":797},{"elements":8746},[8747,8748],{"name":796,"cls":797},{"name":5357,"cls":797},{"description":5529,"annotation":8750},{"name":5517,"cls":797},{"type":848,"name":2481,"path":5983,"parent":5617,"description":5986,"lines":8752,"decorators":8753,"attributes":8754,"functions":8755,"mro":8756},[1245,920],[2463],[5990,5991,5992],[5994,5995,5996,5997],[2481],{"type":848,"name":5327,"path":5626,"parent":5615,"description":5629,"lines":8758,"attributes":8759,"functions":8760,"mro":8761},[1774,1008],[5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643],[5645,5646,5647,5648,5649,5650,5651,5652,5653],[5327],{"type":848,"name":5328,"path":6049,"parent":5618,"description":6072,"lines":8763,"decorators":8764,"bases":8765,"functions":8768,"mro":8769},[813,2332],[2463],[8766],{"annotation":8767},{"name":1904,"cls":797},[6079,6080],[5328],{"type":848,"name":975,"path":5877,"parent":5616,"description":5880,"lines":8771,"decorators":8772,"bases":8773,"attributes":8776,"functions":8777,"mro":8778},[1052,985],[2463],[8774],{"annotation":8775},{"name":2226,"cls":797},[5887,5888,5889],[5891,5892,5893,5894,5895],[975,2226,2227],{"type":784,"name":5337,"path":6049,"parent":5618,"description":6053,"lines":8780,"parameters":8781,"returns":8789},[1238,788],[8782],{"name":6057,"kind":794,"annotation":8783,"required":883,"description":6064},{"join":8784},[8785,8786],{"name":1904,"cls":797},{"left":8787,"slice":8788},{"name":955,"cls":797},{"name":1904,"cls":797},{"description":6066,"annotation":8790},{"left":8791,"slice":8792},{"name":955,"cls":797},{"name":6070,"cls":797},{"type":848,"name":5329,"path":6145,"parent":6102,"description":6113,"lines":8794,"bases":8795,"functions":8798,"examples":8799,"mro":8801},[1774,5803],[8796],{"annotation":8797},{"name":5327,"cls":797},[6160,6161,6162],[8800],{"description":6165,"code":6166},[5329,5327],{"type":766,"name":2340,"path":6145,"parent":6102,"lines":8803,"value":6153},[772,772],{"type":848,"name":5330,"path":6110,"parent":6101,"description":6113,"lines":8805,"bases":8806,"functions":8809,"examples":8810,"mro":8812},[772,1186],[8807],{"annotation":8808},{"name":5327,"cls":797},[6119,6120],[8811],{"description":6123,"code":6124},[5330,5327],{"type":848,"name":3368,"path":6376,"parent":6209,"description":6384,"lines":8814,"bases":8815,"functions":8818,"mro":8819},[787,1042],[8816],{"annotation":8817},{"name":5865,"cls":797},[6390],[3368],{"type":848,"name":3266,"path":6217,"parent":6208,"description":6225,"lines":8821,"decorators":8822,"bases":8823,"attributes":8830,"functions":8831,"examples":8832,"mro":8835},[1052,6227],[2463],[8824,8828],{"annotation":8825},{"left":8826,"slice":8827},{"name":1255,"cls":797},{"name":6219,"cls":797},{"annotation":8829},{"name":2481,"cls":797},[6237,6238,6239],[6241,6242,6243,6244,6245,6246,6247,6248],[8833,8834],{"description":6251,"code":6252},{"description":6254,"code":6255},[3266,2481],{"type":848,"name":6413,"path":6436,"parent":6407,"description":6444,"lines":8837,"decorators":8838,"attributes":8839,"functions":8840,"mro":8841},[1245,1053],[2463],[6448,6449,6450,6451,6452],[6454],[6413],{"type":784,"name":6417,"path":6652,"parent":6409,"description":6665,"lines":8843,"parameters":8844},[878,1058],[8845],{"name":1660,"kind":794,"annotation":8846,"required":883},{"name":1683,"cls":797},{"type":784,"name":6418,"path":6436,"parent":6407,"description":6530,"lines":8848,"parameters":8849,"returns":8857},[1058,6343],[8850,8855],{"name":6534,"kind":1063,"annotation":8851,"required":883,"description":6539},{"join":8852},[8853,8854],{"name":1173,"cls":797},{"name":955,"cls":797},{"name":952,"kind":794,"annotation":8856,"required":883,"description":6542},{"name":2226,"cls":797},{"description":6544,"annotation":8858},{"name":6413,"cls":797},{"type":784,"name":6419,"path":6424,"parent":6406,"description":6427,"lines":8860,"parameters":8861,"returns":8864},[1863,1336],[8862],{"name":6431,"kind":794,"annotation":8863,"required":883},{"name":796,"cls":797},{"description":807,"annotation":8865},{"name":796,"cls":797},{"type":784,"name":6420,"path":6652,"parent":6409,"description":6655,"lines":8867,"parameters":8868,"returns":8873},[1864,851],[8869,8871],{"name":784,"kind":794,"annotation":8870,"required":883},{"name":1173,"cls":797},{"name":3769,"kind":794,"annotation":8872,"required":42,"default":3480},{"name":1662,"cls":797},{"description":807,"annotation":8874},{"name":1683,"cls":797},{"type":784,"name":6421,"path":6629,"parent":6408,"description":6632,"lines":8876,"parameters":8877,"returns":8882},[2026,1058],[8878,8880],{"name":1477,"kind":794,"annotation":8879,"required":883},{"name":796,"cls":797},{"name":6638,"kind":794,"annotation":8881,"required":42,"default":6640},{"name":796,"cls":797},{"description":807,"annotation":8883},{"name":796,"cls":797},{"type":784,"name":6422,"path":6629,"parent":6408,"description":6644,"lines":8885,"parameters":8886,"returns":8889},[901,1697],[8887],{"name":1477,"kind":794,"annotation":8888,"required":883},{"name":796,"cls":797},{"description":807,"annotation":8890},{"name":796,"cls":797},{"type":848,"name":3782,"path":6734,"parent":6675,"description":6741,"lines":8892,"bases":8893,"attributes":8898,"functions":8899,"mro":8900},[1238,851],[8894],{"annotation":8895},{"left":8896,"slice":8897},{"name":1255,"cls":797},{"name":6736,"cls":797},[6749,6750],[6752,6753],[3782],{"type":848,"name":5325,"path":6709,"parent":6674,"description":6712,"lines":8902,"bases":8903,"functions":8906,"examples":8907,"mro":8909},[1245,2660],[8904],{"annotation":8905},{"name":5327,"cls":797},[6718],[8908],{"description":6721,"code":6722},[5325,5327],{"type":848,"name":2370,"path":6784,"parent":6676,"description":6787,"lines":8911,"attributes":8912,"functions":8913,"mro":8914},[2015,890],[6790],[6792,6793],[2370],{"type":848,"name":5326,"path":6684,"parent":6673,"description":6687,"lines":8916,"bases":8917,"functions":8920,"examples":8921,"mro":8923},[1245,926],[8918],{"annotation":8919},{"name":5327,"cls":797},[6693],[8922],{"description":6696,"code":6697},[5326,5327],{"type":848,"name":6853,"path":6906,"parent":6828,"description":6909,"lines":8925,"decorators":8926,"bases":8927,"attributes":8930,"functions":8931,"mro":8932},[2015,2504],[2463],[8928],{"annotation":8929},{"name":6915,"cls":797},[6917],[6919,6920],[6853,6915,6836,2227],{"type":848,"name":6854,"path":6948,"parent":6829,"description":6951,"lines":8934,"decorators":8935,"bases":8936,"attributes":8939,"functions":8940,"mro":8941},[2015,2504],[2463],[8937],{"annotation":8938},{"name":6957,"cls":797},[6959],[6961,6962],[6854,6957,6836,2227],{"type":848,"name":6855,"path":6862,"parent":6827,"description":6865,"lines":8943,"decorators":8944,"bases":8945,"attributes":8948,"functions":8949,"mro":8950},[2015,2504],[2463],[8946],{"annotation":8947},{"name":6871,"cls":797},[6873],[6875,6876],[6855,6871,6836,2227],{"type":848,"name":6856,"path":6990,"parent":6830,"description":6993,"lines":8952,"decorators":8953,"bases":8954,"attributes":8957,"functions":8958,"mro":8959},[2015,2504],[2463],[8955],{"annotation":8956},{"name":6999,"cls":797},[7001],[7003,7004],[6856,6999,6836,2227],{"type":848,"name":6857,"path":7032,"parent":6831,"description":7035,"lines":8961,"decorators":8962,"bases":8963,"attributes":8966,"functions":8967,"mro":8968},[1900,1679],[2463],[8964],{"annotation":8965},{"name":7041,"cls":797},[7043],[7045,7046],[6857,7041,6836,2227],{"type":848,"name":756,"path":7666,"parent":7085,"description":7824,"lines":8970,"decorators":8971,"bases":8972,"attributes":8977,"functions":8978,"mro":8979},[969,3070],[2463],[8973,8975],{"annotation":8974},{"name":7830,"cls":797},{"annotation":8976},{"name":7089,"cls":797},[7834,7835,7836,7837,7838],[7840,7841,7842],[756,7830,7089],{"type":848,"name":7089,"path":7216,"parent":7084,"description":7400,"lines":8981,"attributes":8982,"functions":8983,"mro":8984},[3010,7402],[7404,7405,7406,7407],[7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419],[7089],{"type":848,"name":757,"path":7216,"parent":7084,"description":7259,"lines":8986,"bases":8987,"mro":8990},[901,1336],[8988],{"annotation":8989},{"name":965,"cls":797},[757],{"type":848,"name":758,"path":7666,"parent":7085,"description":7944,"lines":8992,"decorators":8993,"bases":8994,"attributes":8997,"functions":8998,"mro":8999},[2646,7946],[2463],[8995],{"annotation":8996},{"name":7089,"cls":797},[7952,7953,7954,7955],[7957,7958],[758,7089],{"type":848,"name":7090,"path":7099,"parent":7083,"description":7105,"lines":9001,"bases":9002,"mro":9005},[787,1238],[9003],{"annotation":9004},{"name":1904,"cls":797},[7090],{"type":848,"name":759,"path":7666,"parent":7085,"description":7701,"lines":9007,"decorators":9008,"bases":9009,"attributes":9014,"functions":9015,"mro":9016},[3151,1465],[2463],[9010,9012],{"annotation":9011},{"name":7707,"cls":797},{"annotation":9013},{"name":7089,"cls":797},[7711,7712,7713,7714,7715,7716,7717],[7719,7720,7721],[759,7707,7089],{"type":848,"name":760,"path":7216,"parent":7084,"description":7252,"lines":9018,"bases":9019,"mro":9022},[890,1058],[9020],{"annotation":9021},{"name":1904,"cls":797},[760],{"type":784,"name":7094,"path":7216,"parent":7084,"lines":9024,"parameters":9025,"returns":9035},[1079,1441],[9026],{"name":1485,"kind":794,"annotation":9027,"required":883},{"left":9028,"slice":9029},{"name":1488,"cls":797},{"elements":9030},[9031,9034],{"elements":9032},[9033],{"name":7089,"cls":797},{"name":7222,"cls":797},{"description":807,"annotation":9036},{"left":9037,"slice":9038},{"name":1488,"cls":797},{"elements":9039},[9040,9041],{},{"name":7222,"cls":797},{"type":784,"name":7095,"path":7099,"parent":7083,"description":7175,"lines":9043,"parameters":9044,"returns":9055},[2586,934],[9045,9049,9051],{"name":7179,"kind":794,"annotation":9046,"required":883,"description":7184},{"left":9047,"slice":9048},{"name":955,"cls":797},{"name":7183,"cls":797},{"name":7127,"kind":794,"annotation":9050,"required":883,"description":7187},{"name":7101,"cls":797},{"name":6582,"kind":794,"annotation":9052,"required":42,"default":820,"description":7192},{"left":9053,"slice":9054},{"name":5427,"cls":797},{"name":7183,"cls":797},{"description":807,"annotation":9056},{"left":9057,"slice":9058},{"name":825,"cls":797},{"elements":9059},[9060,9061],{"name":796,"cls":797},{"name":1362,"cls":797},{"type":784,"name":7096,"path":7666,"parent":7085,"description":8016,"lines":9063,"returns":9064},[1518,8018],{"description":807,"annotation":9065},{"left":9066,"slice":9067},{"name":955,"cls":797},{"name":758,"cls":797},{"type":784,"name":7097,"path":7216,"parent":7084,"description":7600,"lines":9069,"parameters":9070,"returns":9075,"throws":9077},[7602,7603],[9071],{"name":1977,"kind":794,"annotation":9072,"required":42,"default":820,"description":7609},{"join":9073},[9074,820],{"name":822,"cls":797},{"description":7611,"annotation":9076},{"name":2074,"cls":797},[9078,9080],{"description":7615,"annotation":9079},{"name":7564,"cls":797},{"description":7566,"annotation":9081},{"name":760,"cls":797},{"type":766,"name":778,"path":7216,"parent":7084,"lines":9083,"value":7235},[1042,1042],"unitelabs-cdk","# GLab\n\n![GLab](docs\u002Fsource\u002Fimg\u002Fglab-logo.png)\n\nGLab is an open source GitLab CLI tool. It brings GitLab to your terminal, next to where you are already working with `git` and your code, without switching between windows and browser tabs. While it's powerful for issues and merge requests, `glab` does even more:\n\n- View, manage, and retry CI\u002FCD pipelines directly from your CLI.\n- Create changelogs.\n- Create and manage releases.\n- Ask GitLab Duo Chat questions about Git.\n- Manage GitLab agents for Kubernetes.\n\n`glab` is available for repositories hosted on GitLab.com, GitLab Dedicated, and GitLab Self-Managed. It supports multiple authenticated GitLab instances, and automatically detects the authenticated hostname from the remotes available in your working Git directory.\n\n![command example](docs\u002Fsource\u002Fimg\u002Fglabgettingstarted.gif)\n\n## Table of contents\n\n- [Requirements](#requirements)\n- [Usage](#usage)\n  - [Core commands](#core-commands)\n  - [GitLab Duo for the CLI](#gitlab-duo-for-the-cli)\n- [Demo](#demo)\n- [Documentation](#documentation)\n- [Installation](#installation)\n  - [Homebrew](#homebrew)\n  - [Other installation methods](#other-installation-methods)\n  - [Building from source](#building-from-source)\n    - [Prerequisites for building from source](#prerequisites-for-building-from-source)\n- [Authentication](#authentication)\n  - [OAuth (GitLab.com)](#oauth-gitlabcom)\n  - [OAuth (GitLab Self-Managed, GitLab Dedicated)](#oauth-gitlab-self-managed-gitlab-dedicated)\n  - [Personal access token](#personal-access-token)\n  - [CI Job Token](#ci-job-token)\n- [Configuration](#configuration)\n  - [Configure `glab` to use your GitLab Self-Managed or GitLab Dedicated instance](#configure-glab-to-use-your-gitlab-self-managed-or-gitlab-dedicated-instance)\n  - [Configure `glab` to use mTLS certificates](#configure-glab-to-use-mtls-certificates)\n  - [Configure `glab` to use self-signed certificates](#configure-glab-to-use-self-signed-certificates)\n- [Environment variables](#environment-variables)\n  - [GitLab access variables](#gitlab-access-variables)\n  - [`glab` configuration variables](#glab-configuration-variables)\n  - [Other variables](#other-variables)\n  - [Token and environment variable precedence](#token-and-environment-variable-precedence)\n  - [Debugging](#debugging)\n- [Troubleshooting](#troubleshooting)\n- [Issues](#issues)\n- [Contributing](#contributing)\n  - [Versioning](#versioning)\n  - [Classify version changes](#classify-version-changes)\n  - [Compatibility](#compatibility)\n- [Inspiration](#inspiration)\n\n## Requirements\n\n`glab` officially supports GitLab versions 16.0 and later. Certain commands might require\nmore recent versions. While many commands might work properly in GitLab versions\n15.x and earlier, no support is provided for these versions.\n\n## Usage\n\nTo get started with `glab`:\n\n1. Follow the [installation instructions](#installation) appropriate for your operating system.\n1. [Authenticate](#authentication) into your instance of GitLab.\n1. Optional. Configure `glab` further to meet your needs:\n   - 1Password users can configure it to [authenticate to `glab`](https:\u002F\u002Fdeveloper.1password.com\u002Fdocs\u002Fcli\u002Fshell-plugins\u002Fgitlab\u002F).\n   - Set any needed global, per-project, or per-host [configuration](#configuration).\n   - Set any needed [environment variables](#environment-variables).\n\nYou're ready!\n\n### Core commands\n\nRun `glab --help` to view a list of core commands in your terminal.\n\n- [`glab alias`](docs\u002Fsource\u002Falias): Create, list, and delete aliases.\n- [`glab api`](docs\u002Fsource\u002Fapi): Make authenticated requests to the GitLab API.\n- [`glab auth`](docs\u002Fsource\u002Fauth): Manage the authentication state of the CLI.\n- [`glab changelog`](docs\u002Fsource\u002Fchangelog): Interact with the changelog API.\n- [`glab check-update`](docs\u002Fsource\u002Fcheck-update): Check for updates to the CLI.\n- [`glab ci`](docs\u002Fsource\u002Fci): Work with GitLab CI\u002FCD pipelines and jobs.\n- [`glab cluster`](docs\u002Fsource\u002Fcluster): Manage GitLab agents for Kubernetes and their clusters.\n- [`glab completion`](docs\u002Fsource\u002Fcompletion): Generate shell completion scripts.\n- [`glab config`](docs\u002Fsource\u002Fconfig): Set and get CLI settings.\n- [`glab deploy-key`](docs\u002Fsource\u002Fdeploy-key): Manage deploy keys.\n- [`glab duo`](docs\u002Fsource\u002Fduo): Generate terminal commands from natural language.\n- [`glab gpg-key`](docs\u002Fsource\u002Fgpg-key): Manage GPG keys registered with your GitLab account.\n- [`glab incident`](docs\u002Fsource\u002Fincident): Work with GitLab incidents.\n- [`glab issue`](docs\u002Fsource\u002Fissue): Work with GitLab issues.\n- [`glab iteration`](docs\u002Fsource\u002Fiteration): Retrieve iteration information.\n- [`glab job`](docs\u002Fsource\u002Fjob): Work with GitLab CI\u002FCD jobs.\n- [`glab label`](docs\u002Fsource\u002Flabel): Manage labels for your project.\n- [`glab mcp`](docs\u002Fsource\u002Fmcp): Work with a Model Context Protocol (MCP) server. (EXPERIMENTAL)\n- [`glab milestone`](docs\u002Fsource\u002Fmilestone): Manage group or project milestones.\n- [`glab mr`](docs\u002Fsource\u002Fmr): Create, view, and manage merge requests.\n- [`glab opentofu`](docs\u002Fsource\u002Fopentofu): Work with the OpenTofu or Terraform integration.\n- [`glab release`](docs\u002Fsource\u002Frelease): Manage GitLab releases.\n- [`glab repo`](docs\u002Fsource\u002Frepo): Work with GitLab repositories and projects.\n- [`glab schedule`](docs\u002Fsource\u002Fschedule): Work with GitLab CI\u002FCD schedules.\n- [`glab securefile`](docs\u002Fsource\u002Fsecurefile): Manage secure files for a project.\n- [`glab snippet`](docs\u002Fsource\u002Fsnippet): Create, view and manage snippets.\n- [`glab ssh-key`](docs\u002Fsource\u002Fssh-key): Manage SSH keys registered with your GitLab account.\n- [`glab stack`](docs\u002Fsource\u002Fstack): Create, manage, and work with stacked diffs.\n- [`glab token`](docs\u002Fsource\u002Ftoken): Manage personal, project, or group tokens.\n- [`glab user`](docs\u002Fsource\u002Fuser): Interact with a GitLab user account.\n- [`glab variable`](docs\u002Fsource\u002Fvariable): Manage variables for a GitLab project or group.\n- [`glab version`](docs\u002Fsource\u002Fversion): Show version information for the CLI.\n\nCommands follow this pattern:\n\n```bash\nglab \u003Ccommand> \u003Csubcommand> [flags]\n```\n\nMany core commands also have sub-commands. Some examples:\n\n- List merge requests assigned to you: `glab mr list --assignee=@me`\n- List review requests for you: `glab mr list --reviewer=@me`\n- Approve a merge request: `glab mr approve 235`\n- Create an issue, and add milestone, title, and label: `glab issue create -m release-2.0.0 -t \"My title here\" --label important`\n\n### GitLab Duo for the CLI\n\nThe GitLab CLI also provides support for GitLab Duo AI\u002FML powered features. These include:\n\n- [`glab duo ask`](docs\u002Fsource\u002Fduo\u002Fask.md)\n\nUse `glab duo ask` to ask questions about `git` commands. It can help you remember a\ncommand you forgot, or provide suggestions on how to run commands to perform other tasks.\n\n## Demo\n\n[![asciicast](https:\u002F\u002Fasciinema.org\u002Fa\u002F368622.svg)](https:\u002F\u002Fasciinema.org\u002Fa\u002F368622)\n\n## Documentation\n\nRead the [documentation](docs\u002Fsource\u002F_index.md) for usage instructions or check out `glab help`.\n\n## Installation\n\nDownload a binary suitable for your OS at the [releases page](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Freleases).\nOther installation methods depend on your operating system.\n\n### Homebrew\n\nHomebrew is the officially supported package manager for macOS, Linux, and Windows (through [Windows Subsystem for Linux](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fwsl\u002Finstall))\n\n- Homebrew\n  - Install with: `brew install glab`\n  - Update with: `brew upgrade glab`\n\n### Other installation methods\n\nOther options to install the GitLab CLI that may not be officially supported or are maintained by the community are [also available](docs\u002Finstallation_options.md).\n\n### Building from source\n\nIf a supported binary for your OS is not found at the [releases page](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Freleases), you can build from source:\n\n#### Prerequisites for building from source\n\n- `make`\n- Go version as defined by [`main\u002Fgo.mod`](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Fblob\u002Fmain\u002Fgo.mod?ref_type=heads#L3)\n\nTo build from source:\n\n1. Run the command `go version` to verify that you have the minimum required Go version.\n   If `go` is not installed, follow instructions on [the Go website](https:\u002F\u002Fgo.dev\u002Fdoc\u002Finstall).\n1. Run the `go install gitlab.com\u002Fgitlab-org\u002Fcli\u002Fcmd\u002Fglab@main` to install `glab` cmd in `$GOPATH\u002Fbin`.\n1. The sources of `glab` will be in `$GOPATH\u002Fsrc\u002Fgitlab.com\u002Fgitlab-org\u002Fcli`.\n1. If you do not have `$GOPATH\u002Fbin` or `$GOBIN` in your `$PATH`, run `export PATH=$PWD\u002Fbin:$PATH`\n   to update your PATH with the newly compiled project.\n1. Run `glab version` to confirm that it worked.\n\n## Authentication\n\nWhen running `glab auth login` interactively inside a Git repository, `glab` automatically\ndetects GitLab instances from your Git remotes and presents them as options. This saves you\nfrom having to manually type the hostname.\n\n### OAuth (GitLab.com)\n\nTo authenticate your installation of `glab` with an OAuth application connected to GitLab.com:\n\n1. Start interactive setup with `glab auth login`.\n1. For the GitLab instance you want to sign in to, select **GitLab.com**.\n1. For the login method, select **Web**. This selection launches your web browser\n   to request authorization for the GitLab CLI to use your GitLab.com account.\n1. Select **Authorize**.\n1. Complete the authentication process in your terminal, selecting the appropriate options for your needs.\n\n### OAuth (GitLab Self-Managed, GitLab Dedicated)\n\nPrerequisites:\n\n- You've created an OAuth application at the user, group, or instance level, and you\n  have its application ID. For instructions, see how to configure GitLab\n  [as an OAuth 2.0 authentication identity provider](https:\u002F\u002Fdocs.gitlab.com\u002Fintegration\u002Foauth_provider\u002F)\n  in the GitLab documentation.\n- Your OAuth application is configured with these parameters:\n  - **Redirect URI** is `http:\u002F\u002Flocalhost:7171\u002Fauth\u002Fredirect`.\n  - **Confidential** is not selected.\n  - **Scopes** are `openid`, `profile`, `read_user`, `write_repository`, and `api`.\n\nTo authenticate your installation of `glab` with an OAuth application connected\nto your GitLab Self-Managed or GitLab Dedicated instance:\n\n1. Store the application ID with `glab config set client_id \u003CCLIENT_ID> --host \u003CHOSTNAME>`.\n   For `\u003CCLIENT_ID>`, provide your application ID.\n1. Start interactive setup with `glab auth login --hostname \u003CHOSTNAME>`.\n1. For the login method, select **Web**. This selection launches your web browser\n   to request authorization for the GitLab CLI to use your GitLab Self-Managed or GitLab Dedicated account.\n1. Select **Authorize**.\n1. Complete the authentication process in your terminal, selecting the appropriate options for your needs.\n\n### Personal access token\n\nTo authenticate your installation of `glab` with a personal access token:\n\n1. Get a GitLab personal access token with at least the `api`\n   and `write_repository` scopes. Use the method appropriate for your instance:\n   - For GitLab.com, create one at the [personal access tokens](https:\u002F\u002Fgitlab.com\u002F-\u002Fuser_settings\u002Fpersonal_access_tokens?scopes=api%2Cwrite_repository) page.\n   - For GitLab Self-Managed and GitLab Dedicated, visit `https:\u002F\u002Fgitlab.example.com\u002F-\u002Fuser_settings\u002Fpersonal_access_tokens?scopes=api,write_repository`,\n     modifying `gitlab.example.com` to match the domain name of your instance.\n1. Start interactive setup: `glab auth login`\n1. Authenticate with the method appropriate for your GitLab instance:\n   - For GitLab SaaS, authenticate against `gitlab.com` by reading the token\n     from a file: `glab auth login --stdin \u003C myaccesstoken.txt`\n   - For GitLab Self-Managed and GitLab Dedicated, authenticate by reading from a file:\n     `glab auth login --hostname gitlab.example.com --stdin \u003C myaccesstoken.txt`. This will allow you to perform\n     authenticated `glab` commands against your instance when you are in a Git repository with a remote\n     matching your instance's host. Alternatively, set `GITLAB_HOST` to direct your command to your instance.\n   - Authenticate with token and hostname: `glab auth login --hostname gitlab.example.org --token xxxxx`\n     Not recommended for shared environments.\n   - Credentials are stored in the global [configuration file](#configuration).\n\n### CI Job Token\n\nTo authenticate your installation of `glab` with a CI job token, the `glab` command must be run in a GitLab CI job.\nThe token is automatically provided by the GitLab Runner via the `CI_JOB_TOKEN` environment variable.\n\nEndpoints allowing the use of the CI job token are listed in the\n[GitLab documentation](https:\u002F\u002Fdocs.gitlab.com\u002Fci\u002Fjobs\u002Fci_job_token\u002F#job-token-access).\n\n#### Auto-Login [EXPERIMENTAL]\n\nThere is an experimental CI auto-login feature that can be enabled by setting the `GLAB_ENABLE_CI_AUTOLOGIN` variable\nto `true`. This feature automatically detects if `glab` is running in GitLab CI and, if so, uses the predefined\nCI\u002FCD variables to sign in.\n\nExample:\n\n```shell\nGLAB_ENABLE_CI_AUTLOGIN=true glab release list -R $CI_PROJECT_PATH\n```\n\n#### Manual login\n\nExample:\n\n```shell\nglab auth login --job-token $CI_JOB_TOKEN --hostname $CI_SERVER_HOST --api-protocol $CI_SERVER_PROTOCOL\nGITLAB_HOST=$CI_SERVER_URL glab release list -R $CI_PROJECT_PATH\n```\n\n## Configuration\n\nBy default, `glab` follows the\n[XDG Base Directory Spec](https:\u002F\u002Fspecifications.freedesktop.org\u002Fbasedir-spec\u002Fbasedir-spec-latest.html),\nwhich means it searches for configuration files in multiple locations with proper precedence.\n\n### Configuration Levels\n\nConfigure `glab` at different levels: system-wide, globally (per-user), locally (per-repository), or per host:\n\n- **System-wide** (for all users): Place configuration at `\u002Fetc\u002Fxdg\u002Fglab-cli\u002Fconfig.yml` (or `$XDG_CONFIG_DIRS\u002Fglab-cli\u002Fconfig.yml`).\n  - Useful for Linux distributions and system administrators to provide default configurations.\n  - User configurations will override system-wide settings.\n- **Globally** (per-user): run `glab config set --global editor vim`.\n  - The global configuration file is available at `~\u002F.config\u002Fglab-cli\u002Fconfig.yml` (or `$XDG_CONFIG_HOME\u002Fglab-cli\u002Fconfig.yml`).\n  - To override this location, set the `GLAB_CONFIG_DIR` environment variable.\n- **The current repository**: run `glab config set editor vim` in any folder in a Git repository.\n  - The local configuration file is available at `.git\u002Fglab-cli\u002Fconfig.yml` in the current working Git directory.\n- **Per host**: run `glab config set editor vim --host gitlab.example.org`, changing\n  the `--host` parameter to meet your needs.\n  - Per-host configuration info is always stored in the global configuration file, with or without the `global` flag.\n\n### Configuration Search Order\n\nWhen `glab` looks for configuration files, it searches in this order (highest priority first):\n\n1. `$GLAB_CONFIG_DIR\u002Fconfig.yml` (if `GLAB_CONFIG_DIR` is set)\n2. `~\u002F.config\u002Fglab-cli\u002Fconfig.yml` (legacy location, for backward compatibility)\n3. `$XDG_CONFIG_HOME\u002Fglab-cli\u002Fconfig.yml` (platform-specific XDG location)\n4. `$XDG_CONFIG_DIRS\u002Fglab-cli\u002Fconfig.yml` (system-wide configs, default: `\u002Fetc\u002Fxdg\u002Fglab-cli\u002Fconfig.yml`)\n\nThe first configuration file found is used.\n\n#### Configuration File Locations\n\n**For backward compatibility**, `glab` checks `~\u002F.config\u002Fglab-cli\u002Fconfig.yml` first on all platforms.\nIf no legacy config exists, `glab` uses platform-specific XDG Base Directory locations:\n\n- **Linux**: `~\u002F.config\u002Fglab-cli\u002Fconfig.yml` (XDG_CONFIG_HOME)\n- **macOS**: `~\u002FLibrary\u002FApplication Support\u002Fglab-cli\u002Fconfig.yml` (XDG_CONFIG_HOME)\n- **Windows**: `%APPDATA%\\glab-cli\\config.yml` (XDG_CONFIG_HOME)\n\n**Note**: If you have config files in both the legacy location (`~\u002F.config\u002Fglab-cli\u002Fconfig.yml`)\nand the platform-specific XDG location, `glab` will use the legacy location and display a warning.\nConsider consolidating to one location to avoid confusion.\n\n### Configure `glab` to use your GitLab Self-Managed or GitLab Dedicated instance\n\nWhen outside a Git repository, `glab` uses `gitlab.com` by default. For `glab` to default\nto your GitLab Self-Managed or GitLab Dedicated instance when you are not in a Git repository, change the host\nconfiguration settings. Use this command, changing `gitlab.example.com` to the domain name\nof your instance:\n\n```shell\nglab config set -g host gitlab.example.com\n```\n\nSetting this configuration enables you to perform commands outside a Git repository while\nusing your GitLab Self-Managed or GitLab Dedicated instance. For example:\n\n- `glab repo clone group\u002Fproject`\n- `glab issue list -R group\u002Fproject`\n\nIf you don't set a default domain name, you can declare one for the current command with\nthe `GITLAB_HOST` environment variable, like this:\n\n- `GITLAB_HOST=gitlab.example.com glab repo clone group\u002Fproject`\n- `GITLAB_HOST=gitlab.example.com glab issue list -R group\u002Fproject`\n\nWhen inside a Git repository `glab` will use that repository's GitLab host by default. For example `glab issue list`\nwill list all issues of the current directory's Git repository.\n\n### Configure `glab` to use mTLS certificates\n\nTo use a mutual TLS (Mutual Transport Layer Security) certificate with `glab`, edit your global\nconfiguration file (`~\u002F.config\u002Fglab-cli\u002Fconfig.yml`) to provide connection information:\n\n```yaml\nhosts:\n    git.your-domain.com:\n        api_protocol: https\n        api_host: git.your-domain.com\n        token: xxxxxxxxxxxxxxxxxxxxxxxxx\n        client_cert: \u002Fpath\u002Fto\u002Fclient.crt\n        client_key: \u002Fpath\u002Fto\u002Fclient.key\n        ca_cert: \u002Fpath\u002Fto\u002Fca-chain.pem\n```\n\n- `ca_cert` is optional for mTLS support if you use a publicly signed server certificate.\n- `token` is not required if you use a different authentication method.\n\n### Configure `glab` to use self-signed certificates\n\nTo configure the GitLab CLI to support GitLab Self-Managed and GitLab Dedicated instances with\nself-signed certificates, either:\n\n- Disable TLS verification with:\n\n  ```shell\n  glab config set skip_tls_verify true --host gitlab.example.com\n  ```\n\n- Add the path to the self signed CA:\n\n  ```shell\n  glab config set ca_cert \u002Fpath\u002Fto\u002Fserver.pem --host gitlab.example.com\n  ```\n\n## Environment variables\n\n### GitLab access variables\n\n| Token name         | In `config.yml`                                                                                       | Default value if [not set](#configuration) | Description                                                                                                                                                                                                 |\n|--------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `GITLAB_API_HOST`  | `hosts.\u003Chostname>.api_host`, or `hosts.\u003Chostname>` if empty                                           | Hostname found in the Git URL              | Specify the host where the API endpoint is found. Useful when there are separate (sub)domains or hosts for Git and the API endpoint.                                                                        |\n| `GITLAB_CLIENT_ID` | `hosts.\u003Chostname>.client_id`                                                                          | Client-ID for GitLab.com.                  | A custom Client-ID generated by the GitLab OAuth 2.0 application.                                                                                                                                           |\n| `GITLAB_GROUP`     | -                                                                                                     | -                                          | Default GitLab group used for listing merge requests, issues and variables. Only used if no `--group` option is given.                                                                                      |\n| `GITLAB_HOST`      | `host` (this is the default host `glab` will use when the current directory is not a `git` directory) | `https:\u002F\u002Fgitlab.com`                       | Alias of `GITLAB_URI`.                                                                                                                                                                                      |\n| `GITLAB_REPO`      | -                                                                                                     | -                                          | Default GitLab repository used for commands accepting the `--repo` option. Only used if no `--repo` option is given.                                                                                        |\n| `GITLAB_TOKEN`     | `hosts.\u003Chostname>.token`                                                                              | -                                          | an authentication token for API requests. Setting this avoids being prompted to authenticate and overrides any previously stored credentials. Can be set in the config with `glab config set token xxxxxx`. |\n| `GITLAB_URI`       | not applicable                                                                                        | not applicable                             | Alias of `GITLAB_HOST`.                                                                                                                                                                                     |\n\n### `glab` configuration variables\n\n| Token name                                   | In `config.yml`      | Default value if [not set](#configuration) | Description                                                                                                                                                                                  |\n|----------------------------------------------|----------------------|--------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `BROWSER`                                    | `browser`            | system default                             | The web browser to use for opening links. Can be set in the configuration with `glab config set browser mybrowser`.                                                                          |\n| `FORCE_HYPERLINKS`                           | `display_hyperlinks` | `false`                                    | Set to `true` to force hyperlinks to be output, even when not outputting to a TTY.                                                                                                           |\n| `GITLAB_RELEASE_ASSETS_USE_PACKAGE_REGISTRY` | -                    | -                                          | When `true` or `1`, the `glab release create` command uploads release assets to the generic package registry of the project. Can be overridden with the `--use-package-registry` flag.       |\n| `GLAB_CHECK_UPDATE`                          | -                    | -                                          | Set to `true` to force an update check.                                                                                                                                                      |\n| `GLAB_CONFIG_DIR`                            | -                    | `~\u002F.config\u002Fglab-cli\u002F`                      | Directory where the `glab` global configuration file is located. Can be set in the config with `glab config set remote_alias origin`.                                                        |\n| `GLAB_DEBUG_HTTP`                            | -                    | `false`                                    | Set to true to output HTTP transport information (request \u002F response).                                                                                                                       |\n| `GLAB_SEND_TELEMETRY`                        | `telemetry`          | `true`                                     | Set to `false` to prevent command usage data from being sent to your GitLab instance.                                                                                                        |\n| `GLAMOUR_STYLE`                              | `glamour_style`      | `dark`                                     | Environment variable to set your desired Markdown renderer style. Available options are (`dark`, `light`, `notty`) or set a [custom style](https:\u002F\u002Fgithub.com\u002Fcharmbracelet\u002Fglamour#styles). |\n| `NO_COLOR`                                   | -                    | `true`                                     | Set to any value to avoid printing ANSI escape sequences for color output.                                                                                                                   |\n| `NO_PROMPT`                                  | `no_prompt`          | `false`                                    | Set to `true` to disable prompts.                                                                                                                                                            |\n| `VISUAL`, `EDITOR`                           | `editor`             | `nano`                                     | (in order of precedence) The editor tool to use for authoring text. Can be set in the config with `glab config set editor vim`.                                                              |\n\n### Other variables\n\n| Token name           | In `config.yml` | Default value if [not set](#configuration) | Description                                                                                                            |\n|----------------------|-----------------|--------------------------------------------|------------------------------------------------------------------------------------------------------------------------|\n| `DEBUG`              | `debug`         | `false`                                    | Set to `true` to output more information for each command, like Git commands, expanded aliases, and DNS error details. |\n| `GIT_REMOTE_URL_VAR` | not applicable  | not applicable                             | Alias of `REMOTE_ALIAS`.                                                                                               |\n| `REMOTE_ALIAS`       | `remote_alias`  | -                                          | `git remote` variable or alias that contains the GitLab URL. Alias: `GIT_REMOTE_URL_VAR`                               |\n\n#### Variable deprecation\n\nIn `glab` version 2.0.0 and later, all `glab` environment variables are prefixed with `GLAB_`.\nFor more information about this deprecation, see [issue 7999](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Fissues\u002F7999).\n\n### Token and environment variable precedence\n\nGLab uses tokens in this order:\n\n1. Environment variable (`GITLAB_TOKEN`).\n1. Configuration file (`$HOME\u002F.config\u002Fglab-cli\u002Fconfig.yml`).\n\n### Debugging\n\nWhen the `DEBUG` environment variable is set to `true`, `glab` outputs more logging information, including:\n\n- Underlying Git commands.\n- Expanded aliases.\n- DNS error details.\n\n## Troubleshooting\n\nFor troubleshooting information, see the\n[GitLab documentation for the CLI](https:\u002F\u002Fdocs.gitlab.com\u002Feditor_extensions\u002Fgitlab_cli\u002F#troubleshooting).\n\n## Issues\n\nIf you have an issue: report it on the [issue tracker](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Fissues)\n\n## Contributing\n\nFeel like contributing? That's awesome! We have a [contributing guide](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Fblob\u002Fmain\u002FCONTRIBUTING.md) and [Code of conduct](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Fblob\u002Fmain\u002FCODE_OF_CONDUCT.md) to help guide you.\n\n### Versioning\n\nThis project follows the [SemVer](https:\u002F\u002Fgithub.com\u002Fsemver\u002Fsemver) specification.\n\n### Classify version changes\n\n- If deleting a command, changing how it behaves, or adding a new **required** flag, the release must use a new `MAJOR` revision.\n- If adding a new command or **optional** flag, the release must use a new `MINOR` revision.\n- If fixing a bug, the release must use a new `PATCH` revision.\n\n### Compatibility\n\nWe do our best to introduce breaking changes only when releasing a new `MAJOR` version.\nUnfortunately, there are situations where this is not possible, and we may introduce\na breaking change in a `MINOR` or `PATCH` version. Some of situations where we may do so:\n\n- If a security issue is discovered, and the solution requires a breaking change,\n  we may introduce such a change to resolve the issue and protect our users.\n- If a feature was not working as intended, and the bug fix requires a breaking change,\n  the bug fix may be introduced to ensure the functionality works as intended.\n- When feature behavior is overwhelmingly confusing due to a vague specification\n  on how it should work. In such cases, we may refine the specification\n  to remove the ambiguity, and introduce a breaking change that aligns with the\n  refined specification. For an example of this, see\n  [merge request 1382](https:\u002F\u002Fgitlab.com\u002Fgitlab-org\u002Fcli\u002F-\u002Fmerge_requests\u002F1382#note_1686888887).\n- Experimental features are not guaranteed to be stable, and can be modified or\n  removed without a breaking change.\n\nBreaking changes are a last resort, and we try our best to only introduce them when absolutely necessary.\n\n## Inspiration\n\nThe GitLab CLI was adopted from [Clement Sam](https:\u002F\u002Fgitlab.com\u002Fprofclems) in 2022 to serve as the official CLI of GitLab. Over the years the project has been inspired by both the [GitHub CLI](https:\u002F\u002Fgithub.com\u002Fcli\u002Fcli) and [Zaq? Wiedmann's](https:\u002F\u002Fgitlab.com\u002Fzaquestion) [lab](https:\u002F\u002Fgithub.com\u002Fzaquestion\u002Flab).\n\nLab has served as the foundation for many of the GitLab CI\u002FCD commands including `ci view` and `ci trace`.\n","0.7.0",[9088,9091,9094,9097,9100,9103,9106,9110,9113,9117,9121,9125,9128,9131,9134,9138,9141,9144,9148,9150,9152],{"name":9089,"import_name":9089,"version":9090},"python","\u003C4.0,>=3.10",{"name":9092,"import_name":9092,"version":9093},"click","8.3.1",{"name":9095,"import_name":9095,"version":9096},"deprecated","1.3.1",{"name":9098,"import_name":9098,"version":9099},"griffe","1.15.0",{"name":9101,"import_name":9101,"version":9102},"packaging","26.0",{"name":9104,"import_name":9104,"version":9105},"pydantic","2.12.5",{"name":9107,"import_name":9108,"version":9109},"python-dotenv","dotenv","1.2.1",{"name":9111,"import_name":9111,"version":9112},"rich","14.3.1",{"name":9114,"import_name":9115,"version":9116},"ruamel-yaml","ruamel.yaml","0.19.1",{"name":9118,"import_name":9119,"version":9120},"typing-extensions","typing_extensions","4.15.0",{"name":9122,"import_name":9123,"version":9124},"unitelabs-sila","sila","0.6.2",{"name":9126,"import_name":9126,"version":9127},"commitizen","4.12.1",{"name":9129,"import_name":9129,"version":9130},"cruft","2.16.0",{"name":9132,"import_name":9132,"version":9133},"cryptography","46.0.3",{"name":9135,"import_name":9136,"version":9137},"pre-commit","pre_commit","4.5.1",{"name":9139,"import_name":9139,"version":9140},"ruff","0.14.14",{"name":9142,"import_name":9142,"version":9143},"watchfiles","1.1.1",{"name":9145,"import_name":9146,"version":9147},"unitelabs-jsondocs","unitelabs.jsondocs","0.4.2",{"name":9149,"import_name":9149,"version":7213},"pytest",{"name":9151,"import_name":9151,"version":7213},"pytest-asyncio",{"name":9153,"import_name":9153,"version":7213},"pytest-cov",1781787404350]