[{"data":1,"prerenderedAt":977},["ShallowReactive",2],{"navigation":3,"\u002Fguides\u002Fpython-api":222,"\u002Fguides\u002Fpython-api-surround":972},[4,8,168,206,210,214,218],{"title":5,"path":6,"stem":7},"Quickstart","\u002Fquickstart","01.quickstart",{"title":9,"path":10,"stem":11,"children":12},"Concepts","\u002Fconcepts","20.concepts",[13,15,19,23,84,88,92,96,100],{"title":9,"path":10,"stem":14},"20.concepts\u002Findex",{"title":16,"path":17,"stem":18},"Preprocessing Graph","\u002Fconcepts\u002Fppg","20.concepts\u002F2.ppg",{"title":20,"path":21,"stem":22},"Plane decomposition","\u002Fconcepts\u002Fplanes","20.concepts\u002F3.planes",{"title":24,"path":25,"stem":26,"children":27},"Codecs","\u002Fconcepts\u002Fcodecs","20.concepts\u002F4.codecs",[28,32,36,40,44,48,52,56,60,64,68,72,76,80],{"title":29,"path":30,"stem":31},"Arithmetic","\u002Fconcepts\u002Fcodecs\u002Farithmetic","20.concepts\u002Fcodecs\u002Farithmetic",{"title":33,"path":34,"stem":35},"Context Mixing Lite","\u002Fconcepts\u002Fcodecs\u002Fcontext-mixing-lite","20.concepts\u002Fcodecs\u002Fcontext-mixing-lite",{"title":37,"path":38,"stem":39},"FPC","\u002Fconcepts\u002Fcodecs\u002Ffpc","20.concepts\u002Fcodecs\u002Ffpc",{"title":41,"path":42,"stem":43},"Huffman LLM 5-Bit","\u002Fconcepts\u002Fcodecs\u002Fhuff-llm","20.concepts\u002Fcodecs\u002Fhuff-llm",{"title":45,"path":46,"stem":47},"Huffman","\u002Fconcepts\u002Fcodecs\u002Fhuffman","20.concepts\u002Fcodecs\u002Fhuffman",{"title":49,"path":50,"stem":51},"Identity","\u002Fconcepts\u002Fcodecs\u002Fidentity","20.concepts\u002Fcodecs\u002Fidentity",{"title":53,"path":54,"stem":55},"Neural Predictor","\u002Fconcepts\u002Fcodecs\u002Fneural-predictor","20.concepts\u002Fcodecs\u002Fneural-predictor",{"title":57,"path":58,"stem":59},"Order-1 Arithmetic","\u002Fconcepts\u002Fcodecs\u002Forder1-arithmetic","20.concepts\u002Fcodecs\u002Forder1-arithmetic",{"title":61,"path":62,"stem":63},"Order-1 Scale AC","\u002Fconcepts\u002Fcodecs\u002Forder1-scale-ac","20.concepts\u002Fcodecs\u002Forder1-scale-ac",{"title":65,"path":66,"stem":67},"Per-Group Codebook","\u002Fconcepts\u002Fcodecs\u002Fper-group-codebook","20.concepts\u002Fcodecs\u002Fper-group-codebook",{"title":69,"path":70,"stem":71},"rANS","\u002Fconcepts\u002Fcodecs\u002Frans","20.concepts\u002Fcodecs\u002Frans",{"title":73,"path":74,"stem":75},"tANS","\u002Fconcepts\u002Fcodecs\u002Ftans","20.concepts\u002Fcodecs\u002Ftans",{"title":77,"path":78,"stem":79},"Zstd","\u002Fconcepts\u002Fcodecs\u002Fzstd","20.concepts\u002Fcodecs\u002Fzstd",{"title":81,"path":82,"stem":83},"Zstd Dictionary","\u002Fconcepts\u002Fcodecs\u002Fzstd-dict","20.concepts\u002Fcodecs\u002Fzstd-dict",{"title":85,"path":86,"stem":87},"Container format","\u002Fconcepts\u002Fcontainer","20.concepts\u002F5.container",{"title":89,"path":90,"stem":91},"Delta compression","\u002Fconcepts\u002Fdelta","20.concepts\u002F6.delta",{"title":93,"path":94,"stem":95},"Extensibility","\u002Fconcepts\u002Fextensibility","20.concepts\u002F7.extensibility",{"title":24,"path":25,"stem":97,"children":98},"20.concepts\u002Fcodecs\u002Findex",[99],{"title":24,"path":25,"stem":97},{"title":101,"path":102,"stem":103,"children":104},"Transforms","\u002Fconcepts\u002Ftransforms","20.concepts\u002Ftransforms\u002Findex",[105,106,110,114,118,122,126,130,134,140,144,148,152,156,160,164],{"title":101,"path":102,"stem":103},{"title":107,"path":108,"stem":109},"Alpha-Stable Normalize","\u002Fconcepts\u002Ftransforms\u002Falpha-stable-normalize","20.concepts\u002Ftransforms\u002Falpha-stable-normalize",{"title":111,"path":112,"stem":113},"Bit Reorder","\u002Fconcepts\u002Ftransforms\u002Fbit-reorder","20.concepts\u002Ftransforms\u002Fbit-reorder",{"title":115,"path":116,"stem":117},"Block Microscaling Repack","\u002Fconcepts\u002Ftransforms\u002Fblock-microscaling-repack","20.concepts\u002Ftransforms\u002Fblock-microscaling-repack",{"title":119,"path":120,"stem":121},"Burrows-Wheeler","\u002Fconcepts\u002Ftransforms\u002Fburrows-wheeler","20.concepts\u002Ftransforms\u002Fburrows-wheeler",{"title":123,"path":124,"stem":125},"Byte Split & Nibble Split","\u002Fconcepts\u002Ftransforms\u002Fbyte-split","20.concepts\u002Ftransforms\u002Fbyte-split",{"title":127,"path":128,"stem":129},"Concat","\u002Fconcepts\u002Ftransforms\u002Fconcat","20.concepts\u002Ftransforms\u002Fconcat",{"title":131,"path":132,"stem":133},"Delta","\u002Fconcepts\u002Ftransforms\u002Fdelta","20.concepts\u002Ftransforms\u002Fdelta",{"title":135,"path":136,"stem":137,"children":138},"Index Bitwidth Pack","\u002Fconcepts\u002Ftransforms\u002Findex-bitwidth-pack","20.concepts\u002Ftransforms\u002Findex-bitwidth-pack",[139],{"title":135,"path":136,"stem":137},{"title":141,"path":142,"stem":143},"IntDelta","\u002Fconcepts\u002Ftransforms\u002Fint-delta","20.concepts\u002Ftransforms\u002Fint-delta",{"title":145,"path":146,"stem":147},"Mantissa Zero Strip","\u002Fconcepts\u002Ftransforms\u002Fmantissa-zero-strip","20.concepts\u002Ftransforms\u002Fmantissa-zero-strip",{"title":149,"path":150,"stem":151},"Move to Front","\u002Fconcepts\u002Ftransforms\u002Fmove-to-front","20.concepts\u002Ftransforms\u002Fmove-to-front",{"title":153,"path":154,"stem":155},"MxFp4 Deinterleave","\u002Fconcepts\u002Ftransforms\u002Fmxfp4-deinterleave","20.concepts\u002Ftransforms\u002Fmxfp4-deinterleave",{"title":157,"path":158,"stem":159},"Predictor XOR","\u002Fconcepts\u002Ftransforms\u002Fpredictor-xor","20.concepts\u002Ftransforms\u002Fpredictor-xor",{"title":161,"path":162,"stem":163},"Reshape","\u002Fconcepts\u002Ftransforms\u002Freshape","20.concepts\u002Ftransforms\u002Freshape",{"title":165,"path":166,"stem":167},"Spherical Normalize","\u002Fconcepts\u002Ftransforms\u002Fspherical-normalize","20.concepts\u002Ftransforms\u002Fspherical-normalize",{"title":169,"path":170,"stem":171,"children":172},"Guides","\u002Fguides","30.guides\u002F00.index",[173,174,178,182,186,190,194,198,202],{"title":169,"path":170,"stem":171},{"title":175,"path":176,"stem":177},"CLI usage","\u002Fguides\u002Fcli","30.guides\u002F01.cli",{"title":179,"path":180,"stem":181},"Python API","\u002Fguides\u002Fpython-api","30.guides\u002F02.python-api",{"title":183,"path":184,"stem":185},"Writing your first extension","\u002Fguides\u002Fextension-authoring","30.guides\u002F03.extension-authoring",{"title":187,"path":188,"stem":189},"Trust and security","\u002Fguides\u002Ftrust-and-security","30.guides\u002F04.trust-and-security",{"title":191,"path":192,"stem":193},"Random access","\u002Fguides\u002Frandom-access","30.guides\u002F10.random-access",{"title":195,"path":196,"stem":197},"Tuning","\u002Fguides\u002Ftuning","30.guides\u002F11.tuning",{"title":199,"path":200,"stem":201},"Safetensors","\u002Fguides\u002Fsafetensors","30.guides\u002F50.safetensors",{"title":203,"path":204,"stem":205},"Transformers","\u002Fguides\u002Ftransformers","30.guides\u002F51.transformers",{"title":207,"path":208,"stem":209},"API reference","\u002Fapi","40.api",{"title":211,"path":212,"stem":213},"Benchmarks","\u002Fbenchmarks","50.benchmarks",{"title":215,"path":216,"stem":217},"Extensions","\u002Fextensions","60.extensions",{"title":219,"path":220,"stem":221},"Contributing","\u002Fcontributing","90.contributing",{"id":223,"title":179,"body":224,"description":966,"extension":967,"kind":968,"language":968,"links":968,"meta":969,"navigation":968,"path":180,"seo":970,"stem":181,"summary":968,"__hash__":971},"docs\u002F30.guides\u002F02.python-api.md",{"type":225,"value":226,"toc":959},"minimark",[227,244,249,554,572,576,762,766,834,838,938,942,955],[228,229,230,231,235,236,239,240,243],"p",{},"The public Python API lives in the top-level ",[232,233,234],"code",{},"ptwm"," package. The main\nentry points are ",[232,237,238],{},"Compressor",", ",[232,241,242],{},"Decompressor",", and their config\ndataclasses.",[245,246,248],"h2",{"id":247},"compress-and-decompress-raw-bytes","Compress and decompress raw bytes",[250,251,256],"pre",{"className":252,"code":253,"language":254,"meta":255,"style":255},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","from ptwm import (\n    Compressor, Decompressor,\n    CompressionConfig, DecompressionConfig,\n    Method, Format,\n)\n\nconfig = CompressionConfig(\n    method=Method.AUTO,       # AUTO | HUFFMAN | MICROSCALE | ZSTD\n    bytearray_dtype=\"bfloat16\",   # hint for byte-reordering raw bytes\n    threads=8,                    # encode parallelism (default: all cores)\n)\ncompressor = Compressor(config)\ncompressed: bytes = compressor.compress(data, fmt=Format.BYTE)\n\ndecompressor = Decompressor(DecompressionConfig(threads=8))\nrestored: bytes = decompressor.decompress(compressed, fmt=Format.BYTE)\n","python","",[232,257,258,278,293,306,319,325,332,349,374,397,414,419,438,484,489,516],{"__ignoreMap":255},[259,260,263,267,271,274],"span",{"class":261,"line":262},"line",1,[259,264,266],{"class":265},"sVHd0","from",[259,268,270],{"class":269},"su5hD"," ptwm ",[259,272,273],{"class":265},"import",[259,275,277],{"class":276},"sP7_E"," (\n",[259,279,281,284,287,290],{"class":261,"line":280},2,[259,282,283],{"class":269},"    Compressor",[259,285,286],{"class":276},",",[259,288,289],{"class":269}," Decompressor",[259,291,292],{"class":276},",\n",[259,294,296,299,301,304],{"class":261,"line":295},3,[259,297,298],{"class":269},"    CompressionConfig",[259,300,286],{"class":276},[259,302,303],{"class":269}," DecompressionConfig",[259,305,292],{"class":276},[259,307,309,312,314,317],{"class":261,"line":308},4,[259,310,311],{"class":269},"    Method",[259,313,286],{"class":276},[259,315,316],{"class":269}," Format",[259,318,292],{"class":276},[259,320,322],{"class":261,"line":321},5,[259,323,324],{"class":276},")\n",[259,326,328],{"class":261,"line":327},6,[259,329,331],{"emptyLinePlaceholder":330},true,"\n",[259,333,335,338,342,346],{"class":261,"line":334},7,[259,336,337],{"class":269},"config ",[259,339,341],{"class":340},"smGrS","=",[259,343,345],{"class":344},"slqww"," CompressionConfig",[259,347,348],{"class":276},"(\n",[259,350,352,356,358,361,364,368,370],{"class":261,"line":351},8,[259,353,355],{"class":354},"s99_P","    method",[259,357,341],{"class":340},[259,359,360],{"class":344},"Method",[259,362,363],{"class":276},".",[259,365,367],{"class":366},"swQdS","AUTO",[259,369,286],{"class":276},[259,371,373],{"class":372},"sutJx","       # AUTO | HUFFMAN | MICROSCALE | ZSTD\n",[259,375,377,380,382,386,390,392,394],{"class":261,"line":376},9,[259,378,379],{"class":354},"    bytearray_dtype",[259,381,341],{"class":340},[259,383,385],{"class":384},"sjJ54","\"",[259,387,389],{"class":388},"s_sjI","bfloat16",[259,391,385],{"class":384},[259,393,286],{"class":276},[259,395,396],{"class":372},"   # hint for byte-reordering raw bytes\n",[259,398,400,403,405,409,411],{"class":261,"line":399},10,[259,401,402],{"class":354},"    threads",[259,404,341],{"class":340},[259,406,408],{"class":407},"srdBf","8",[259,410,286],{"class":276},[259,412,413],{"class":372},"                    # encode parallelism (default: all cores)\n",[259,415,417],{"class":261,"line":416},11,[259,418,324],{"class":276},[259,420,422,425,427,430,433,436],{"class":261,"line":421},12,[259,423,424],{"class":269},"compressor ",[259,426,341],{"class":340},[259,428,429],{"class":344}," Compressor",[259,431,432],{"class":276},"(",[259,434,435],{"class":344},"config",[259,437,324],{"class":276},[259,439,441,444,447,451,454,457,459,462,464,467,469,472,474,477,479,482],{"class":261,"line":440},13,[259,442,443],{"class":269},"compressed",[259,445,446],{"class":276},":",[259,448,450],{"class":449},"sZMiF"," bytes",[259,452,453],{"class":340}," =",[259,455,456],{"class":269}," compressor",[259,458,363],{"class":276},[259,460,461],{"class":344},"compress",[259,463,432],{"class":276},[259,465,466],{"class":344},"data",[259,468,286],{"class":276},[259,470,471],{"class":354}," fmt",[259,473,341],{"class":340},[259,475,476],{"class":344},"Format",[259,478,363],{"class":276},[259,480,481],{"class":366},"BYTE",[259,483,324],{"class":276},[259,485,487],{"class":261,"line":486},14,[259,488,331],{"emptyLinePlaceholder":330},[259,490,492,495,497,499,501,504,506,509,511,513],{"class":261,"line":491},15,[259,493,494],{"class":269},"decompressor ",[259,496,341],{"class":340},[259,498,289],{"class":344},[259,500,432],{"class":276},[259,502,503],{"class":344},"DecompressionConfig",[259,505,432],{"class":276},[259,507,508],{"class":354},"threads",[259,510,341],{"class":340},[259,512,408],{"class":407},[259,514,515],{"class":276},"))\n",[259,517,519,522,524,526,528,531,533,536,538,540,542,544,546,548,550,552],{"class":261,"line":518},16,[259,520,521],{"class":269},"restored",[259,523,446],{"class":276},[259,525,450],{"class":449},[259,527,453],{"class":340},[259,529,530],{"class":269}," decompressor",[259,532,363],{"class":276},[259,534,535],{"class":344},"decompress",[259,537,432],{"class":276},[259,539,443],{"class":344},[259,541,286],{"class":276},[259,543,471],{"class":354},[259,545,341],{"class":340},[259,547,476],{"class":344},[259,549,363],{"class":276},[259,551,481],{"class":366},[259,553,324],{"class":276},[228,555,556,557,559,560,563,564,567,568,571],{},"The ",[232,558,367],{}," method picks a codec by dtype: ",[232,561,562],{},"HUFFMAN"," for float \u002F int\nweights, ",[232,565,566],{},"MICROSCALE"," for MXFP4 \u002F NVFP4 paired tensors, ",[232,569,570],{},"ZSTD"," as a\ngeneric fallback (plain in-tree Zstd; the byte-split preprocessing op\nupstream supplies the SHUFFLE-style reordering).",[245,573,575],{"id":574},"compress-and-decompress-a-torch-tensor","Compress and decompress a torch tensor",[250,577,579],{"className":252,"code":578,"language":254,"meta":255,"style":255},"import torch\nfrom ptwm import Compressor, Decompressor, CompressionConfig, Format\n\nconfig = CompressionConfig(input_format=Format.TORCH)\ncompressor, decompressor = Compressor(config), Decompressor()\n\ntensor = torch.randn(1024, 1024, dtype=torch.bfloat16)\nrestored = decompressor.decompress(compressor.compress(tensor))\nassert torch.equal(tensor, restored)\n",[232,580,581,588,611,615,639,665,669,711,739],{"__ignoreMap":255},[259,582,583,585],{"class":261,"line":262},[259,584,273],{"class":265},[259,586,587],{"class":269}," torch\n",[259,589,590,592,594,596,598,600,602,604,606,608],{"class":261,"line":280},[259,591,266],{"class":265},[259,593,270],{"class":269},[259,595,273],{"class":265},[259,597,429],{"class":269},[259,599,286],{"class":276},[259,601,289],{"class":269},[259,603,286],{"class":276},[259,605,345],{"class":269},[259,607,286],{"class":276},[259,609,610],{"class":269}," Format\n",[259,612,613],{"class":261,"line":295},[259,614,331],{"emptyLinePlaceholder":330},[259,616,617,619,621,623,625,628,630,632,634,637],{"class":261,"line":308},[259,618,337],{"class":269},[259,620,341],{"class":340},[259,622,345],{"class":344},[259,624,432],{"class":276},[259,626,627],{"class":354},"input_format",[259,629,341],{"class":340},[259,631,476],{"class":344},[259,633,363],{"class":276},[259,635,636],{"class":366},"TORCH",[259,638,324],{"class":276},[259,640,641,644,646,649,651,653,655,657,660,662],{"class":261,"line":321},[259,642,643],{"class":269},"compressor",[259,645,286],{"class":276},[259,647,648],{"class":269}," decompressor ",[259,650,341],{"class":340},[259,652,429],{"class":344},[259,654,432],{"class":276},[259,656,435],{"class":344},[259,658,659],{"class":276},"),",[259,661,289],{"class":344},[259,663,664],{"class":276},"()\n",[259,666,667],{"class":261,"line":327},[259,668,331],{"emptyLinePlaceholder":330},[259,670,671,674,676,679,681,684,686,689,691,694,696,699,701,704,706,709],{"class":261,"line":334},[259,672,673],{"class":269},"tensor ",[259,675,341],{"class":340},[259,677,678],{"class":269}," torch",[259,680,363],{"class":276},[259,682,683],{"class":344},"randn",[259,685,432],{"class":276},[259,687,688],{"class":407},"1024",[259,690,286],{"class":276},[259,692,693],{"class":407}," 1024",[259,695,286],{"class":276},[259,697,698],{"class":354}," dtype",[259,700,341],{"class":340},[259,702,703],{"class":344},"torch",[259,705,363],{"class":276},[259,707,389],{"class":708},"skxfh",[259,710,324],{"class":276},[259,712,713,716,718,720,722,724,726,728,730,732,734,737],{"class":261,"line":351},[259,714,715],{"class":269},"restored ",[259,717,341],{"class":340},[259,719,530],{"class":269},[259,721,363],{"class":276},[259,723,535],{"class":344},[259,725,432],{"class":276},[259,727,643],{"class":344},[259,729,363],{"class":276},[259,731,461],{"class":344},[259,733,432],{"class":276},[259,735,736],{"class":344},"tensor",[259,738,515],{"class":276},[259,740,741,744,746,748,751,753,755,757,760],{"class":261,"line":376},[259,742,743],{"class":265},"assert",[259,745,678],{"class":269},[259,747,363],{"class":276},[259,749,750],{"class":344},"equal",[259,752,432],{"class":276},[259,754,736],{"class":344},[259,756,286],{"class":276},[259,758,759],{"class":344}," restored",[259,761,324],{"class":276},[245,763,765],{"id":764},"supported-inputoutput-formats","Supported input\u002Foutput formats",[767,768,769,781],"table",{},[770,771,772],"thead",{},[773,774,775,778],"tr",{},[776,777,476],"th",{},[776,779,780],{},"Description",[782,783,784,795,811,824],"tbody",{},[773,785,786,792],{},[787,788,789],"td",{},[232,790,791],{},"Format.BYTE",[787,793,794],{},"Raw bytes in \u002F raw bytes out. dtype hint required for byte-reordering.",[773,796,797,802],{},[787,798,799],{},[232,800,801],{},"Format.TORCH",[787,803,804,807,808,810],{},[232,805,806],{},"torch.Tensor"," in \u002F ",[232,809,806],{}," out. dtype and shape preserved.",[773,812,813,818],{},[787,814,815],{},[232,816,817],{},"Format.NUMPY",[787,819,820,823],{},[232,821,822],{},"numpy.ndarray"," equivalent.",[773,825,826,831],{},[787,827,828],{},[232,829,830],{},"Format.FILE",[787,832,833],{},"File-path workflow. Input path is read; output path is written.",[245,835,837],{"id":836},"compressionconfig-knobs","CompressionConfig knobs",[767,839,840,852],{},[770,841,842],{},[773,843,844,847,850],{},[776,845,846],{},"Option",[776,848,849],{},"Default",[776,851,780],{},[782,853,854,876,893,908,923],{},[773,855,856,861,865],{},[787,857,858],{},[232,859,860],{},"method",[787,862,863],{},[232,864,367],{},[787,866,867,239,869,239,871,873,874],{},[232,868,367],{},[232,870,562],{},[232,872,566],{},", or ",[232,875,570],{},[773,877,878,883,888],{},[787,879,880],{},[232,881,882],{},"bytearray_dtype",[787,884,885],{},[232,886,887],{},"\"bfloat16\"",[787,889,890,891],{},"Dtype hint for byte-reordering when input is ",[232,892,481],{},[773,894,895,899,905],{},[787,896,897],{},[232,898,508],{},[787,900,901,904],{},[232,902,903],{},"None"," (up to 16 cores)",[787,906,907],{},"Maximum threads for parallel encode",[773,909,910,915,920],{},[787,911,912],{},[232,913,914],{},"compression_threshold",[787,916,917],{},[232,918,919],{},"0.95",[787,921,922],{},"Skip compression if ratio exceeds this threshold",[773,924,925,930,935],{},[787,926,927],{},[232,928,929],{},"compression_chunk",[787,931,932],{},[232,933,934],{},"262144",[787,936,937],{},"Chunk size in bytes (256 KB)",[245,939,941],{"id":940},"full-reference","Full reference",[228,943,944,945,950,951,954],{},"See the ",[946,947,949],"a",{"href":948},"\u002Fapi\u002Fpython","Python API reference"," for every public symbol\nin ",[232,952,953],{},"ptwm.*"," with docstrings, parameters, return types, and source\nlinks.",[956,957,958],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .swQdS, html code.shiki .swQdS{--shiki-light:#E53935;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":255,"searchDepth":295,"depth":295,"links":960},[961,962,963,964,965],{"id":247,"depth":280,"text":248},{"id":574,"depth":280,"text":575},{"id":764,"depth":280,"text":765},{"id":836,"depth":280,"text":837},{"id":940,"depth":280,"text":941},"Use the Compressor and Decompressor classes directly from Python.","md",null,{},{"title":179,"description":966},"uJbPz1yd_PwuboXGGxuL6a-kOlBVXPMtDtF7F-RSMN0",[973,975],{"title":175,"path":176,"stem":177,"description":974,"children":-1},"Compress and decompress files with the `ptwm` command-line tool.",{"title":183,"path":184,"stem":185,"description":976,"children":-1},"Step-by-step walkthrough from `ptwm ext init` to a signed, installed plane codec.",1784796353817]