[{"data":1,"prerenderedAt":995},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-astral-sh\u002Fruff":249,"page-views-\u002Ftrending\u002Fastral-sh\u002Fruff":993},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"astral-sh\u002Fruff","https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fruff",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-11-07",11,50738,169,"6f86f83bf58cbf80af51536c4b4e9de8697af177",5098,1504268,7228,104804,6.97,5.79,2110,47.7,"D",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":349,"code":598,"health":868,"complexity":900,"deadCode":953},"2026-11-07T05:21:43.893Z","An extremely fast Python linter and code formatter, written in Rust.","Rust","main",6573,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},9207226,610658,6.63,[279,286,293,300,307,314,321,328,335,342],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"rust",1999,856678,4802,62227,7.26,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"python",1865,259880,1074,15505,5.97,{"format":294,"sources":295,"lines":296,"clones":297,"duplicatedLines":298,"percentage":299},"text",165,13358,395,2391,17.9,{"format":301,"sources":302,"lines":303,"clones":304,"duplicatedLines":305,"percentage":306},"markdown",655,316671,352,17025,5.38,{"format":308,"sources":309,"lines":310,"clones":311,"duplicatedLines":312,"percentage":313},"toml",147,8448,260,3200,37.88,{"format":315,"sources":316,"lines":317,"clones":318,"duplicatedLines":319,"percentage":320},"markup",83,4258,170,2461,57.8,{"format":322,"sources":323,"lines":324,"clones":325,"duplicatedLines":326,"percentage":327},"yaml",43,6997,93,1055,15.08,{"format":329,"sources":330,"lines":331,"clones":332,"duplicatedLines":333,"percentage":334},"txt",22,19373,69,546,2.82,{"format":336,"sources":337,"lines":338,"clones":339,"duplicatedLines":340,"percentage":341},"tsx",29,6533,9,213,3.26,{"format":343,"sources":344,"lines":345,"clones":346,"duplicatedLines":347,"percentage":348},"css",4,583,2,132,22.64,[350,378,430,441,464,497,521,535,554,565],{"format":280,"lines":351,"tokens":352,"first":353,"others":357,"copies":364,"excerpt":365,"kind":377},21,3458,{"name":354,"start":355,"end":356},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Frustc_tests.rs",2283,2303,[358,361],{"name":354,"start":359,"end":360},2325,2345,{"name":354,"start":362,"end":363},2369,2389,3,{"lines":366,"total":351},[367,368,369,370,371,372,373,374,375,376],"fn long_span_shortest() {","    \u002F\u002F tests\u002Fui\u002Fdiagnostic-width\u002Flong-span.rs","    let source = r#\"","const C: u8 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …","","fn main() {}","\"#;","    let input = &[Level::ERROR","        .primary_title(\"mismatched types\")","        .id(\"E0038\")","tests",{"format":308,"lines":379,"tokens":380,"first":381,"others":385,"copies":411,"excerpt":412,"excerptSecond":422,"kind":429},177,57,{"name":382,"start":383,"end":384},"crates\u002Fty_python_semantic\u002Fresources\u002Fmdtest\u002Fannotations\u002Fintersection_types.md",113,289,[386,389,392,395,398,401,405,407],{"name":387,"start":384,"end":388},"crates\u002Fty_python_semantic\u002Fresources\u002Fmdtest\u002Fcall\u002Fconstructor.md",1260,{"name":387,"start":390,"end":391},591,1298,{"name":387,"start":393,"end":394},994,1613,{"name":387,"start":396,"end":397},1083,1634,{"name":387,"start":399,"end":400},1109,1756,{"name":402,"start":403,"end":404},"crates\u002Fty_python_semantic\u002Fresources\u002Fmdtest\u002Fcall\u002Ftype.md",23,158,{"name":402,"start":323,"end":406},175,{"name":408,"start":409,"end":410},"crates\u002Fty_python_semantic\u002Fresources\u002Fmdtest\u002Fgenerics\u002Flegacy\u002Fvariance.md",1420,1896,86,{"lines":413,"total":379},[414,415,371,416,417,418,419,371,420,421],"python-version = \"3.12\"","```","```py","class A: ...","class B: ...","class Box[T]: ...","type AAndB = A & B","type NotA = ~A",{"lines":423,"total":428},[414,415,371,424,371,425,426,371,416,427],"### A decorator returning the enclosing class","A decorator can replace `__new__` with the type of its implicit `cls` parameter, making the","constructor refer back to itself. Regression test for \u003Chttps:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fty\u002Fissues\u002F4347>.","from collections.abc import Callable",972,"docs",{"format":280,"lines":431,"tokens":432,"first":433,"others":435,"copies":346,"excerpt":439,"kind":377},24,3483,{"name":354,"start":355,"end":434},2306,[436],{"name":354,"start":437,"end":438},2413,2436,{"lines":440,"total":431},[367,368,369,370,371,372,373,374,375,376],{"format":315,"lines":330,"tokens":442,"first":443,"others":446,"copies":463,"kind":377},172,{"name":444,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Fann_eof.ascii.term.svg",1,[447,449,451,453,455,457,459,461],{"name":448,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Fensure_emoji_highlight_width.ascii.term.svg",{"name":450,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_bad_origin_line.ascii.term.svg",{"name":452,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_bad_origin_line.unicode.term.svg",{"name":454,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_leading.ascii.term.svg",{"name":456,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_leading.unicode.term.svg",{"name":458,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_trailing.ascii.term.svg",{"name":460,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_trailing.unicode.term.svg",{"name":462,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Fmultiline_removal_indent.ascii.term.svg",17,{"format":301,"lines":465,"tokens":466,"first":467,"others":471,"copies":496,"kind":429},6,51,{"name":468,"start":469,"end":470},"crates\u002Fty\u002Fdocs\u002Frules.md",285,290,[472,475,478,481,484,487,490,493],{"name":468,"start":473,"end":474},381,386,{"name":468,"start":476,"end":477},414,419,{"name":468,"start":479,"end":480},448,453,{"name":468,"start":482,"end":483},812,817,{"name":468,"start":485,"end":486},1034,1039,{"name":468,"start":488,"end":489},1259,1264,{"name":468,"start":491,"end":492},1303,1308,{"name":468,"start":494,"end":495},1339,1344,37,{"format":308,"lines":498,"tokens":380,"first":499,"others":502,"copies":519,"kind":520},10,{"name":500,"start":344,"end":501},"crates\u002Fruff_cache\u002FCargo.toml",13,[503,505,507,509,511,513,515,517],{"name":504,"start":344,"end":501},"crates\u002Fruff_command_line\u002FCargo.toml",{"name":506,"start":344,"end":501},"crates\u002Fruff_db\u002FCargo.toml",{"name":508,"start":344,"end":501},"crates\u002Fruff_diagnostics\u002FCargo.toml",{"name":510,"start":344,"end":501},"crates\u002Fruff_formatter\u002FCargo.toml",{"name":512,"start":344,"end":501},"crates\u002Fruff_index\u002FCargo.toml",{"name":514,"start":344,"end":501},"crates\u002Fruff_linter\u002FCargo.toml",{"name":516,"start":344,"end":501},"crates\u002Fruff_macros\u002FCargo.toml",{"name":518,"start":344,"end":501},"crates\u002Fruff_memory_usage\u002FCargo.toml",30,"data",{"format":308,"lines":339,"tokens":522,"first":523,"others":525,"copies":534,"kind":520},52,{"name":524,"start":364,"end":255},"crates\u002Fruff_annotate_snippets\u002FCargo.toml",[526,527,528,529,530,531,532,533],{"name":500,"start":364,"end":255},{"name":504,"start":364,"end":255},{"name":506,"start":364,"end":255},{"name":508,"start":364,"end":255},{"name":510,"start":364,"end":255},{"name":512,"start":364,"end":255},{"name":516,"start":364,"end":255},{"name":518,"start":364,"end":255},31,{"format":315,"lines":330,"tokens":404,"first":536,"others":538,"copies":498,"kind":429},{"name":537,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Fexamples\u002Fcustom_error.svg",[539,541,543,545,547,548,550,552],{"name":540,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Fexamples\u002Fexpected_type.svg",{"name":542,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Fexamples\u002Fformat.svg",{"name":544,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Fexamples\u002Fhighlight_source.svg",{"name":546,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Fexamples\u002Fmultislice.svg",{"name":444,"start":445,"end":330},{"name":549,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffirst_snippet_is_primary.ascii.term.svg",{"name":551,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Ffold_ann_multiline.ascii.term.svg",{"name":553,"start":445,"end":330},"crates\u002Fruff_annotate_snippets\u002Ftests\u002Fcolor\u002Fhighlight_source.ascii.term.svg",{"format":280,"lines":555,"tokens":556,"first":557,"others":561,"copies":346,"kind":377},62,1350,{"name":558,"start":559,"end":560},"crates\u002Fruff\u002Ftests\u002Fcli\u002Flint.rs",4845,4906,[562],{"name":558,"start":563,"end":564},4925,4986,{"format":280,"lines":465,"tokens":566,"first":567,"others":571,"copies":596,"kind":597},54,{"name":568,"start":569,"end":570},"crates\u002Fruff_workspace\u002Fsrc\u002Foptions.rs",1203,1208,[572,575,578,581,584,587,590,593],{"name":568,"start":573,"end":574},1313,1318,{"name":568,"start":576,"end":577},1342,1347,{"name":568,"start":579,"end":580},1374,1379,{"name":568,"start":582,"end":583},1479,1484,{"name":568,"start":585,"end":586},1507,1512,{"name":568,"start":588,"end":589},1563,1568,{"name":568,"start":591,"end":592},1583,1588,{"name":568,"start":594,"end":595},1621,1626,26,"code",{"sources":265,"lines":599,"tokens":600,"clones":601,"duplicatedLines":602,"duplicatedTokens":603,"percentage":264,"percentageTokens":604,"formats":605,"topClones":628,"generated":863},818659,4216685,3725,47379,278100,6.6,[606,612,617,618,623],{"format":280,"sources":607,"lines":608,"clones":609,"duplicatedLines":610,"percentage":611},1857,788822,3678,46792,5.93,{"format":287,"sources":613,"lines":614,"clones":496,"duplicatedLines":615,"percentage":616},203,22169,347,1.57,{"format":336,"sources":337,"lines":338,"clones":339,"duplicatedLines":340,"percentage":341},{"format":619,"sources":501,"lines":620,"clones":445,"duplicatedLines":621,"percentage":622},"typescript",734,27,3.68,{"format":624,"sources":625,"lines":626,"clones":627,"duplicatedLines":627,"percentage":627},"bash",8,401,0,[629,651,688,712,744,769,777,798,830,853],{"format":280,"lines":465,"tokens":566,"first":630,"others":631,"copies":596,"excerpt":640,"excerptSecond":648,"kind":597},{"name":568,"start":569,"end":570},[632,633,634,635,636,637,638,639],{"name":568,"start":573,"end":574},{"name":568,"start":576,"end":577},{"name":568,"start":579,"end":580},{"name":568,"start":582,"end":583},{"name":568,"start":585,"end":586},{"name":568,"start":588,"end":589},{"name":568,"start":591,"end":592},{"name":568,"start":594,"end":595},{"lines":641,"total":465},[642,643,644,645,646,647],"#[derive(","    Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize, OptionsMetadata, CombineOptions,",")]","#[serde(deny_unknown_fields, rename_all = \"kebab-case\")]","#[cfg_attr(feature = \"schemars\", derive(schemars::JsonSchema))]","pub struct Flake8BanditOptions {",{"lines":649,"total":465},[642,643,644,645,646,650],"pub struct Flake8BooleanTrapOptions {",{"format":280,"lines":652,"tokens":653,"first":654,"others":658,"copies":677,"excerpt":678,"kind":597},19,190,{"name":655,"start":656,"end":657},"crates\u002Fty_ide\u002Fsrc\u002Fhover.rs",2755,2773,[659,662,665,668,671,674],{"name":655,"start":660,"end":661},3037,3055,{"name":655,"start":663,"end":664},3071,3089,{"name":655,"start":666,"end":667},3105,3123,{"name":655,"start":669,"end":670},3139,3157,{"name":655,"start":672,"end":673},3173,3191,{"name":655,"start":675,"end":676},3236,3254,7,{"lines":679,"total":652},[680,681,682,683,371,684,685,686,687,371],"class MyClass:","    \"\"\"some docs\"\"\"","\"#,",");","assert_snapshot!(test.hover(), @r#\"","MyClass","---------------------------------------------","some docs",{"format":280,"lines":689,"tokens":690,"first":691,"others":695,"copies":346,"excerpt":700,"kind":597},219,1069,{"name":692,"start":693,"end":694},"crates\u002Fruff_python_ast\u002Fsrc\u002Fvisitor.rs",136,354,[696],{"name":697,"start":698,"end":699},"crates\u002Fruff_python_ast\u002Fsrc\u002Fvisitor\u002Ftransformer.rs",123,341,{"lines":701,"total":689},[702,703,704,705,706,707,708,709,710,711],"match stmt {","    Stmt::FunctionDef(ast::StmtFunctionDef {","        parameters,","        body,","        decorator_list,","        returns,","        type_params,","        ..","    }) => {","        for decorator in decorator_list {",{"format":280,"lines":677,"tokens":713,"first":714,"others":718,"copies":743,"kind":597},71,{"name":715,"start":716,"end":717},"crates\u002Fty_ide\u002Fsrc\u002Finlay_hints.rs",2532,2538,[719,722,725,728,731,734,737,740],{"name":715,"start":720,"end":721},4020,4026,{"name":715,"start":723,"end":724},4229,4235,{"name":715,"start":726,"end":727},4404,4410,{"name":715,"start":729,"end":730},4609,4615,{"name":715,"start":732,"end":733},4713,4719,{"name":715,"start":735,"end":736},4793,4799,{"name":715,"start":738,"end":739},4851,4857,{"name":715,"start":741,"end":742},4998,5004,15,{"format":280,"lines":330,"tokens":745,"first":746,"others":748,"copies":255,"kind":597},95,{"name":747,"start":534,"end":522},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fdoc_highlights.rs",[749,751,753,755,757,759,763,765],{"name":750,"start":519,"end":466},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fgoto_declaration.rs",{"name":752,"start":534,"end":522},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fgoto_definition.rs",{"name":754,"start":519,"end":466},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fgoto_implementation.rs",{"name":756,"start":534,"end":522},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fgoto_type_definition.rs",{"name":758,"start":519,"end":466},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fhover.rs",{"name":760,"start":761,"end":762},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fprepare_call_hierarchy.rs",39,60,{"name":764,"start":519,"end":466},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fprepare_rename.rs",{"name":766,"start":767,"end":768},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fapi\u002Frequests\u002Fprepare_type_hierarchy.rs",40,61,{"format":280,"lines":770,"tokens":771,"first":772,"others":774,"copies":346,"kind":597},301,922,{"name":773,"start":445,"end":770},"crates\u002Fruff_server\u002Fsrc\u002Fserver\u002Fschedule\u002Fthread\u002Fpriority.rs",[775],{"name":776,"start":445,"end":770},"crates\u002Fty_server\u002Fsrc\u002Fserver\u002Fschedule\u002Fthread\u002Fpriority.rs",{"format":280,"lines":677,"tokens":778,"first":779,"others":781,"copies":652,"kind":597},50,{"name":780,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_abspath.rs",[782,784,786,788,790,792,794,796],{"name":783,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_basename.rs",{"name":785,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_dirname.rs",{"name":787,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_exists.rs",{"name":789,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_expanduser.rs",{"name":791,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_getatime.rs",{"name":793,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_getctime.rs",{"name":795,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_getmtime.rs",{"name":797,"start":445,"end":677},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_use_pathlib\u002Frules\u002Fos_path_getsize.rs",{"format":280,"lines":799,"tokens":800,"first":801,"others":804,"copies":501,"kind":597},12,63,{"name":802,"start":485,"end":803},"crates\u002Fty_ide\u002Fsrc\u002Ffind_references.rs",1045,[805,808,811,814,818,821,824,827],{"name":802,"start":806,"end":807},1062,1073,{"name":802,"start":809,"end":810},1090,1101,{"name":802,"start":812,"end":813},1124,1135,{"name":815,"start":816,"end":817},"crates\u002Fty_ide\u002Fsrc\u002Fgoto_declaration.rs",1625,1636,{"name":815,"start":819,"end":820},1656,1667,{"name":815,"start":822,"end":823},1687,1698,{"name":825,"start":576,"end":826},"crates\u002Fty_ide\u002Fsrc\u002Fgoto_type_definition.rs",1353,{"name":825,"start":828,"end":829},1373,1384,{"format":280,"lines":831,"tokens":832,"first":833,"others":836,"copies":255,"kind":597},14,73,{"name":834,"start":364,"end":835},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fairflow\u002Fmod.rs",16,[837,839,841,843,845,847,849,851],{"name":838,"start":346,"end":743},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_blind_except\u002Fmod.rs",{"name":840,"start":346,"end":743},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_commas\u002Fmod.rs",{"name":842,"start":364,"end":835},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_debugger\u002Fmod.rs",{"name":844,"start":445,"end":831},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_fixme\u002Fmod.rs",{"name":846,"start":364,"end":835},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_implicit_str_concat\u002Fmod.rs",{"name":848,"start":364,"end":835},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_logging_format\u002Fmod.rs",{"name":850,"start":346,"end":743},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_pie\u002Fmod.rs",{"name":852,"start":346,"end":743},"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fflake8_print\u002Fmod.rs",{"format":280,"lines":854,"tokens":855,"first":856,"others":859,"copies":346,"kind":597},153,717,{"name":692,"start":857,"end":858},363,515,[860],{"name":697,"start":861,"end":862},350,502,{"files":364,"minified":627,"sample":864},[865,866,867],"crates\u002Fruff_linter\u002Fsrc\u002Frules\u002Fruff\u002Frules\u002Fconfusables.rs","crates\u002Fruff_python_stdlib\u002Fsrc\u002Fsys\u002Fbuiltin_modules.rs","crates\u002Fruff_python_stdlib\u002Fsrc\u002Fsys\u002Fknown_stdlib.rs",{"score":266,"grade":267,"size":869,"dimensions":873},{"lines":870,"files":871,"class":872},990462,3488,"L",[874,885,894],{"id":875,"source":876,"value":677,"adjusted":677,"lines":877,"halfLife":878,"formats":879,"excluded":883,"weight":445,"score":884},"duplication","jscpd",69295,8.5,[280,287,336,619,624,880,881,882],"javascript","dot","docker",[315,294,520],56.6,{"id":886,"source":876,"value":887,"adjusted":888,"lines":889,"halfLife":890,"coverage":891,"weight":892,"score":893},"dead-code",6.2,6.1,8821,7.5,14.4,0.144,56.7,{"id":895,"source":876,"value":896,"adjusted":897,"lines":898,"halfLife":778,"weight":445,"score":899},"complexity",67.7,67.6,670154,39.2,{"total":901,"mean":902,"files":903},120756,34.6,[904,909,914,919,923,928,933,938,943,948],{"path":905,"complexity":906,"lines":907,"bytes":908},"crates\u002Fruff_python_ast\u002Fsrc\u002Fgenerated.rs",3411,11216,346704,{"path":910,"complexity":911,"lines":912,"bytes":913},"crates\u002Fty_python_semantic\u002Fsrc\u002Ftypes.rs",1914,13027,553448,{"path":915,"complexity":916,"lines":917,"bytes":918},"crates\u002Fty_python_semantic\u002Fsrc\u002Ftypes\u002Finfer\u002Fbuilder.rs",1793,13721,566496,{"path":865,"complexity":920,"lines":921,"bytes":922},1586,1595,42103,{"path":924,"complexity":925,"lines":926,"bytes":927},"crates\u002Fty_python_semantic\u002Fsrc\u002Ftypes\u002Fcall\u002Fbind.rs",1469,11500,508217,{"path":929,"complexity":930,"lines":931,"bytes":932},"crates\u002Fruff_linter\u002Fsrc\u002Fcodes.rs",1027,1436,94406,{"path":934,"complexity":935,"lines":936,"bytes":937},"crates\u002Fty_python_semantic\u002Fsrc\u002Ftypes\u002Fdisplay.rs",900,4546,167091,{"path":939,"complexity":940,"lines":941,"bytes":942},"crates\u002Fty_python_semantic\u002Fsrc\u002Ftypes\u002Fsignatures.rs",888,7112,300743,{"path":944,"complexity":945,"lines":946,"bytes":947},"crates\u002Fty_ide\u002Fsrc\u002Fcompletion.rs",878,11844,353485,{"path":949,"complexity":950,"lines":951,"bytes":952},"crates\u002Fty_python_semantic\u002Fsrc\u002Ftypes\u002Fnarrow.rs",815,5739,233322,{"percentage":954,"findings":955,"files":956,"byCategory":957,"largest":962},6.18,601,3185,[958,960],{"category":959,"count":390},"unused-file",{"category":961,"count":498},"unused-export",[963,966,969,972,975,978,981,984,987,990],{"category":959,"path":964,"name":371,"line":445,"lines":965},"crates\u002Fruff_benchmark\u002Fresources\u002Flarge\u002Fdataset.py",1617,{"category":959,"path":967,"name":371,"line":445,"lines":968},"crates\u002Fruff_benchmark\u002Fresources\u002Fpydantic\u002Ftypes.py",834,{"category":959,"path":970,"name":371,"line":445,"lines":971},"crates\u002Fruff_benchmark\u002Fresources\u002Fnumpy\u002Fctypeslib.py",547,{"category":959,"path":973,"name":371,"line":445,"lines":974},"crates\u002Fty_vendored\u002Fty_extensions\u002F_internal.pyi",389,{"category":959,"path":976,"name":371,"line":445,"lines":977},"crates\u002Fruff_python_parser\u002Fresources\u002Fvalid\u002Fstatement\u002Fmatch.py",340,{"category":959,"path":979,"name":371,"line":445,"lines":980},"crates\u002Fruff_benchmark\u002Fresources\u002Ftypeis_narrowing.py",297,{"category":959,"path":982,"name":371,"line":445,"lines":983},"crates\u002Fty_vendored\u002Fty_extensions\u002F__init__.pyi",188,{"category":959,"path":985,"name":371,"line":445,"lines":986},"crates\u002Fruff_python_parser\u002Fresources\u002Fvalid\u002Fstatement\u002Ffunction.py",162,{"category":959,"path":988,"name":371,"line":445,"lines":989},"scripts\u002Fgenerate_known_standard_library.py",109,{"category":959,"path":991,"name":371,"line":445,"lines":992},"crates\u002Fruff_python_parser\u002Fresources\u002Fvalid\u002Fstatement\u002Fambiguous_lpar_with_items.py",105,{"\u002Ftrending\u002Fastral-sh\u002Fruff":994},{"views":627,"visits":627},1794034232759]