and sign up for Codecov using your preferred auth mechanism.\n\nFor specific instructions on how to set up Codecov with GitHub, GitLab or BitBucket Pull Requests, you can reference our [Team Bot Guide](https://docs.codecov.com/docs/team-bot)\n\nChoose the repo youâd like to link with your Codecov account. Youâll be provided with [a Codecov upload token](https://docs.codecov.com/docs/codecov-tokens). You need to use this token when uploading data from your repo to Codecov. You can always access this token again in the repositoryâs Configuration tab (under General) on the Codecov website.\n\nNow that youâre set up on Codecov, itâs time to create a GitHub Action. This will be a three-step process every time you push a branch:\n\n- Run your tests with coverage just like you did locally.\n- Create the coverage report.\n- Push that report up to Codecov so you can view your data and make it available as a graph in your pull request.\n\n> đ Although we're assuming GitHub Actions as our CI, you can do something similar on a CI of your choice\n\nIf youâve never worked with GitHub Actions before, this tutorial is a great introduction. But to put it simply, you can control everything with a simple YAML config file. You can call the file whatever you want, but it needs to be in the `.github/workflows` directory, for example, `.github/workflows/workflow.yml`. Then, include the following code:\n\n```coffeescript ci.yml\nname: Workflow for Codecov example-python\non: [push, pull_request]\njobs:\n run:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v3\n - name: Set up Python 3.10\n uses: actions/setup-python@v4\n with:\n python-version: '3.10'\n - name: Install dependencies\n run: pip install -r requirements.txt\n - name: Run tests and collect coverage\n run: pytest --cov app\n - name: Upload coverage to Codecov\n uses: codecov/codecov-action@v5\n```\n\nThe actions that matter to you are `Run tests and collect coverage` and `Upload coverage to Codecov`. \n\nGenerating the report looks just like it did when you generated it locally. Instead of running our tests with python, we run them with coverage.\n\nFortunately, Codecov has made the next part, uploading the data to Codecov for viewing, extremely easy with our `codecov-action` integration. \n\nYou can read more about the options it offers in the [documentation](https://docs.codecov.com/docs/codecov-uploader), but for a basic upload, all you need to do is tell the action to use version 3(@3) of the `codecov-action`, and it will take care of the rest for you. Once this file is in place, you can push your branch up to GitHub. \n\n_PS - We have similar helpers for CircleCI and Bitrise as well :thumbsup:_\n\nYouâll be able to see your actions running under the Actions tab on your GitHub repo. \n\nOnce theyâve finished successfully, you should see Codecov comment on your PR with a coverage report\n\n\n\nYou can then follow the links in the PR comment to the Codecov app to see more information about your project's overall test coverage\n\n[block:image]\n{\n \"images\": [\n {\n \"image\": [\n \"https://files.readme.io/c02f27e-Screenshot_2024-08-15_at_08.31.03.png\",\n null,\n \"\"\n ],\n \"align\": \"center\"\n }\n ]\n}\n[/block]\n\n\nYou can customize Codecov well beyond what we can cover in this tutorial, but one thing that will be helpful here is to tell Codecov to ignore your test files when creating a report. You can do that with ignores in your `codecov.yml` like so\n\n```coffeescript codecov.yml\n# sample regex patterns\nignore:\n - \"path/to/folder\" # ignore folders and all its contents\n - \"test_*.rb\" # wildcards accepted\n - \"**/*.py\" # glob accepted\n```\n\n### Advanced Codecov configurations\n\nNow that you have uploaded your first Python coverage reports successfully to Codecov, you can check out some of our other features including\n\n- Configuring Codecov [settings](https://docs.codecov.com/docs/codecov-yaml)\n- Adding [flags](https://docs.codecov.com/docs/flags) to isolate coverage reports\n- Labeling [critical files](https://docs.codecov.com/docs/manual-critical-file-labelling)","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"reusableContent":[],"previousSlug":"","slugUpdatedAt":"2023-09-07T17:38:50.485Z","revision":31,"_id":"64fb3d2e205f8300394847b1","user":"65ca96d1c06efa002e67f5af","project":"57b33b5ec9a4551700b969a5","parentDoc":"64c14ec8f2680d15b2982b9b","category":"64c14ec8f2680d15b2982b24","createdAt":"2023-09-08T15:26:38.519Z","updatedAt":"2024-12-04T20:34:32.806Z","version":"64c14ec8f2680d15b2982bc4","__v":2,"lastUpdatedHash":"f8ab32bf11faf0e049df3da22ae9ee745376663a","isApi":false,"id":"64fb3d2e205f8300394847b1"},"meta":{"slug":"code-coverage-with-python","type":"docs","parent":"64c14ec8f2680d15b2982b9b","image":[],"title":"Code coverage with Python","title_seo":"Code coverage with Python","description":"Trying to use Codecov with your Python project? Start here.","_id":"64fb3d2e205f8300394847b1","hidden":false},"config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-27","fullstory":{"enabled":true,"orgId":"FSV9A"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.394.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true},"shMigration":{"promoVideo":"","forceWaitlist":false,"migrationPreview":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{},"terms":[],"variables":{"user":{},"defaults":[{"source":"security","_id":"632ca88d894a15001f6469ff","name":"basicAuth","type":"http","scheme":"basic","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fe","name":"sessionid","type":"apiKey","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fd","name":"tokenAuth","type":"http","scheme":"bearer","apiSetting":"632ca88c894a15001f6469f1"}]},"project":{"_id":"57b33b5ec9a4551700b969a5","appearance":{"notheme":false,"logo":["https://files.readme.io/5affb88-codecov.svg","codecov.svg",60,60,"#ff0077"],"html_footer":"","javascript":"","landing":true,"promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":""},"title":"Code coverage done right.ÂŽ","text":"Welcome to Codecov Documentation. You'll find comprehensive guides and documentation to help you start working with Codecov as quickly as possible, as well as support if you get stuck. Let's jump right in!","_id":"57b33b5ec9a4551700b969a6"}],"stylesheet":"","body":{"style":"none"},"html_hidelinks":false,"favicon":["https://files.readme.io/f743cbc-small-Codecov_Mark_Circle_Pink.png","Codecov Mark Circle Pink.png",32,32,"#f35197","https://files.readme.io/9452196-Codecov_Mark_Circle_Pink.png"],"html_body":"","html_head":"","typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif"},"hide_logo":false,"header":{"img":[],"img_pos":"tl","img_size":"tile-x","style":"solid","linkStyle":"buttons"},"javascript_hub2":"","link_logo_to_url":false,"main_body":{"type":"links"},"sticky":false,"colors":{"body_highlight":"#5bb3f2","header_text":"","highlight":"","main":"#F01F7A","main_alt":"#38591e","custom_login_link_color":""},"html_footer_meta":"","stylesheet_hub2":".theme-solid header#hub-header #header-top {\n background-color:#0f1b29 !important;\n}\n\n.suggestEdits::before {\n content: \"đ¤\";\n}\n\n.suggestEdits::after {\n content: \"đ¤\";\n}\n\n.suggestEdits{\n display: flex;\n flex-direction: row;\n justify-content: center;\n font-size: 16px !important;\n}\n\ncode {\n background: #eeeeee;\n padding: 2px 5px;\n}\n\npre > code {\n background: inherit;\n\tpadding: 0px;\n}\n\n/*Enlarging the helpful/not helpful box at the bottom*/\ndiv.PageThumbs-helpful { font-size: 20px; }\n\n.markdown-body.markdown-body.markdown-body strong {\n font-weight:700 !important;\n}","theme":"line","html_promo":"","logo_white":[],"logo_white_use":false,"overlay":"circuits","showVersion":true,"referenceLayout":"row","categoriesAsDropdown":false,"childrenAsPills":false,"global_landing_page":{"html":"","redirect":""},"hideTableOfContents":false,"nextStepsLabel":"","splitReferenceDocs":false,"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"subheaderStyle":"dropdown","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"allowApiExplorerJsonEditor":false,"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","perplexity":"enabled","view_as_markdown":"enabled"},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"}},"custom_domain":"docs.codecov.com","childrenProjects":[],"derivedPlan":"business","description":"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.","isExternalSnippetActive":false,"error404":"","experiments":[],"first_page":"docs","flags":{"oauth":false,"speedyRender":false,"jwt":false,"migrationRun":false,"migrationSwaggerRun":true,"correctnewlines":false,"hub2":true,"swagger":false,"allowXFrame":false,"allow_hub2":false,"autoSslGeneration":true,"newApiExplorer":true,"apilogs":false,"cookieAuthentication":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":false,"hideGoogleAnalytics":false,"translation":false,"newEditor":true,"alwaysShowDocPublishStatus":false,"newMarkdown":false,"newMarkdownBetaProgram":true,"newMarkdownLooseMode":false,"oldMarkdown":false,"newSearch":true,"rdmdCompatibilityMode":false,"staging":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":false,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":false,"superHubMigrationSelfServeFlow":true,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"externalSdkSnippets":false,"migrationPreview":false,"requiresJQuery":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"superHubPreview":false},"fullBaseUrl":"https://docs.codecov.com/","git":{"migration":{"createRepository":{},"transformation":{},"migratingPages":{},"enableSuperhub":{}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[],"providers":[]}},"glossaryTerms":[],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"","settings":{}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"links"}],"mdxMigrationStatus":"rdmd","metrics":{"enabled":false,"thumbsEnabled":true,"monthlyLimit":0,"planLimit":5000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"suggested_edits":true,"discuss":false,"docs":true,"examples":true,"landing":false,"reference":true,"logs":false,"changelog":true,"custompages":false,"tutorials":false,"graphql":false},"name":"Codecov","nav_names":{"discuss":"Discussion","docs":"","reference":"API Endpoints","changelog":"Changelog","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":false,"domain":true,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"business","planOverride":"","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"active","planTrial":"business","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":false,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":50,"totalScore":164},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false},"seo":{"overwrite_title_tag":false},"stable":{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"},"subdomain":"codecov","subpath":"","superHubWaitlist":false,"topnav":{"edited":true,"left":[{"type":"docs","text":"Guides"},{"type":"url","text":"API","url":"https://docs.codecov.com/reference"},{"type":"changelog","text":"Changelog"},{"type":"url","text":"Support","url":"https://codecovpro.zendesk.com/"},{"text":"Status","url":"https://status.codecov.com","type":"url"},{"type":"url","url":"https://about.codecov.io","text":"Codecov Home"},{"type":"url","text":"Try Codecov for Free","url":"https://about.codecov.io/codecov-free-trial/"}],"right":[],"bottom":[]},"trial":{"trialEndsAt":"2016-08-30T16:12:14.795Z","trialDeadlineEnabled":true},"translate":{"languages":[],"provider":"transifex","key_public":"","org_name":"","project_name":"","show_widget":false},"url":"https://codecov.io","versions":[{"_id":"57b33b5ec9a4551700b969a8","categories":["57b33b5ec9a4551700b969a9","57b44723da7a913200179dfb","57b448586e6ff6360047426b","57b448846e6ff6360047426c","57b448f16e6ff6360047426d","57b44957fdc0f42000dc99e6","57b462550d2b640e00e9d3cd","57b4625c6e6ff6360047427c","57b462670d2b640e00e9d3ce","57b469eb6e6ff6360047428f","57b46e0b0d2b640e00e9d3d6","57b4a39f0d2b640e00e9d422","57b4a3a46e6ff636004742fd","57b4a3aa0d2b640e00e9d423","57b4a3ad6e6ff636004742fe","57b4a3c06e6ff636004742ff","57b60ffe25f6e20e00d5cb58","57b8b313f442340e00b01747","57dbfa0ff4da530e00b3b5e2","57ed1a1e4dea95190086c531","6376b408081e400003bab887"],"codename":"","createdAt":"2016-08-16T16:12:14.823Z","is_beta":false,"is_deprecated":true,"is_hidden":true,"__v":20,"version":"1.0","releaseDate":"2016-08-16T16:12:14.823Z","version_clean":"1.0.0","is_stable":false,"project":"57b33b5ec9a4551700b969a5"},{"_id":"584d8c8ecda2b40f000583ae","version_clean":"4.3.0","__v":4,"codename":"","createdAt":"2016-12-11T17:27:42.671Z","is_beta":false,"is_deprecated":true,"is_hidden":true,"categories":["584d8c8ecda2b40f000583af","584d8c8ecda2b40f000583b0","584d8c8ecda2b40f000583b1","584d8c8ecda2b40f000583b2","584d8c8ecda2b40f000583b3","584d8c8ecda2b40f000583b4","584d8c8ecda2b40f000583b5","584d8c8ecda2b40f000583b6","584d8c8ecda2b40f000583b7","584d8c8ecda2b40f000583b8","587bf19178eb7a23002d2d08","587d4bd0cd6f210f00949bd8","58a898f47e69742300452fd5","6376b408081e400003bab88b"],"is_stable":false,"project":"57b33b5ec9a4551700b969a5","releaseDate":"2016-12-11T17:27:42.671Z","version":"4.3.0"},{"_id":"58e7d832bc0deb0f0027f1f5","is_deprecated":true,"codename":"","version_clean":"4.3.6","releaseDate":"2016-12-11T17:27:42.671Z","is_beta":false,"is_stable":false,"createdAt":"2016-12-11T17:27:42.671Z","is_hidden":true,"categories":["58e7d832bc0deb0f0027f1a2","58e7d832bc0deb0f0027f1a3","584d8c8ecda2b40f000583b1","58e7d832bc0deb0f0027f1a4","58e7d832bc0deb0f0027f1a5","58e7d832bc0deb0f0027f1a6","58e7d832bc0deb0f0027f1a7","58e7d832bc0deb0f0027f1a8","58e7d832bc0deb0f0027f1a9","58e7d832bc0deb0f0027f1aa","58e7d832bc0deb0f0027f1ab","58e7d832bc0deb0f0027f1ac","58a898f47e69742300452fd5","6376b408081e400003bab886"],"version":"4.3.6","project":"57b33b5ec9a4551700b969a5","forked_from":"584d8c8ecda2b40f000583ae","__v":0},{"_id":"5c3e5a3c387b7b004b8a03d3","__v":2,"project":"57b33b5ec9a4551700b969a5","forked_from":"584d8c8ecda2b40f000583ae","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z","categories":["5c3e5a3c387b7b004b8a0380","5c3e5a3c387b7b004b8a0381","584d8c8ecda2b40f000583b1","5c3e5a3c387b7b004b8a0382","5c3e5a3c387b7b004b8a0383","5c3e5a3c387b7b004b8a0384","5c3e5a3c387b7b004b8a0385","5c3e5a3c387b7b004b8a0386","5c3e5a3c387b7b004b8a0387","5c3e5a3c387b7b004b8a0388","5c3e5a3c387b7b004b8a0389","5c3e5a3c387b7b004b8a038a","58a898f47e69742300452fd5","5c4e71ef0cddf0002ca47768","5c4e7206021404002bd6e988","6376b408081e400003bab88a"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"4.4.0","version":"4.4.0"},{"_id":"5eb0413161ae28003917002e","version":"4.5","version_clean":"4.5.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["5eb0413161ae28003916ffd5","5eb0413161ae28003916ffd6","584d8c8ecda2b40f000583b1","5eb0413161ae28003916ffd7","5eb0413161ae28003916ffd8","5eb0413161ae28003916ffd9","5eb0413161ae28003916ffda","5eb0413161ae28003916ffdb","5eb0413161ae28003916ffdc","5eb0413161ae28003916ffdd","5eb0413161ae28003916ffde","5eb0413161ae28003916ffdf","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","5eb0413161ae28003916ffe1","6376b408081e400003bab889"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"5c3e5a3c387b7b004b8a03d3","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z"},{"_id":"604a3fa3d6d5f0008027258e","version":"4.6","version_clean":"4.6.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":true,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","604a3fa3d6d5f00080272535","604a3fa3d6d5f00080272536","604a3fa3d6d5f00080272537","604a3fa3d6d5f00080272538","604a3fa3d6d5f00080272539","604a3fa3d6d5f0008027253a","604a3fa3d6d5f0008027253b","604a3fa3d6d5f0008027253c","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","604a3fa3d6d5f0008027253d","604babcfe3d113006c0ac382","605e107fa1b4710022622bb9","605e1084bc81560031aae596","605e135b517d83006763f4ed","632ca88c894a15001f6469f2","632ca9aa9a6f7412bcdbe6ab","632ca9e16afbb9004453de55","6376b408081e400003bab888"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"5eb0413161ae28003917002e","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z"},{"_id":"6308fc7b69f8e6001a5b790f","version":"5.0","version_clean":"5.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":true,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","6308fc7b69f8e6001a5b788f","6308fc7b69f8e6001a5b7890","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","6308fc7b69f8e6001a5b7896","604babcfe3d113006c0ac382","6308fc7b69f8e6001a5b7897","6308fc7b69f8e6001a5b7898","6308fc7b69f8e6001a5b7899","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","640be28e13ddfc001f6bd666","642f494a52fd2a006b905575"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"604a3fa3d6d5f0008027258e","createdAt":"2016-12-11T17:27:42.671Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2023-10-03T17:06:29.585Z"},{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"}],"variableDefaults":[{"source":"security","_id":"632ca88d894a15001f6469ff","name":"basicAuth","type":"http","scheme":"basic","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fe","name":"sessionid","type":"apiKey","apiSetting":"632ca88c894a15001f6469f1"},{"source":"security","_id":"632ca88d894a15001f6469fd","name":"tokenAuth","type":"http","scheme":"bearer","apiSetting":"632ca88c894a15001f6469f1"}],"webhookEnabled":false,"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"2023"},"description":"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.","glossary":[],"homepage_url":"https://codecov.io","id":"57b33b5ec9a4551700b969a5","name":"Codecov","parent":null,"redirects":[],"sitemap":"disabled","llms_txt":"disabled","subdomain":"codecov","suggested_edits":"enabled","uri":"/projects/me","variable_defaults":[{"name":"basicAuth","scheme":"basic","source":"security","type":"http","id":"632ca88d894a15001f6469ff"},{"name":"sessionid","source":"security","type":"apiKey","id":"632ca88d894a15001f6469fe"},{"name":"tokenAuth","scheme":"bearer","source":"security","type":"http","id":"632ca88d894a15001f6469fd"}],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"login_url":null,"logout_url":null},"features":{"mdx":"disabled"},"mcp":{},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":true,"logs":false,"metricsSDK":false},"pages":{"not_found":null},"privacy":{"openapi":"admin","password":null,"view":"public"},"refactored":{"status":"disabled","migrated":"unknown"},"seo":{"overwrite_title_tag":"disabled"},"plan":{"type":"business","grace_period":{"enabled":false,"end_date":null},"trial":{"expired":false,"end_date":"2016-08-30T16:12:14.795Z"}},"reference":{"api_sdk_snippets":"enabled","defaults":"always_use","json_editor":"disabled","oauth_flows":"disabled","request_history":"enabled","response_examples":"collapsed","response_schemas":"collapsed","sdk_snippets":{"external":"disabled"}},"health_check":{"provider":"none","settings":{"manual":{"status":"down","url":null},"statuspage":{"id":null}}},"integrations":{"aws":{"readme_webhook_login":{"region":null,"external_id":null,"role_arn":null,"usage_plan_id":null}},"bing":{"verify":null},"google":{"analytics":null,"site_verification":null},"heap":{"id":null},"koala":{"key":null},"localize":{"key":null},"postman":{"key":null,"client_id":null,"client_secret":null},"recaptcha":{"site_key":null,"secret_key":null},"segment":{"key":null,"domain":null},"speakeasy":{"key":null},"stainless":{"key":null,"name":null},"typekit":{"key":null},"zendesk":{"subdomain":null},"intercom":{"app_id":null,"secure_mode":{"key":null,"email_only":false}}},"permissions":{"appearance":{"private_label":"enabled","custom_code":{"css":"enabled","html":"enabled","js":"enabled"}}},"appearance":{"brand":{"primary_color":"#F01F7A","link_color":"#5bb3f2","theme":"system"},"changelog":{"layout":"collapsed","show_author":true,"show_exact_date":false},"layout":{"full_width":"disabled","style":"classic"},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":null,"footer":{"readme_logo":"show"},"logo":{"size":"default","dark_mode":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}},"main":{"uri":null,"url":"https://files.readme.io/5affb88-codecov.svg","name":"codecov.svg","width":60,"height":60,"color":"#ff0077","links":{"original_url":null}},"favicon":{"uri":null,"url":"https://files.readme.io/f743cbc-small-Codecov_Mark_Circle_Pink.png","name":"Codecov Mark Circle Pink.png","width":32,"height":32,"color":"#f35197","links":{"original_url":"https://files.readme.io/9452196-Codecov_Mark_Circle_Pink.png"}}},"custom_code":{"css":".theme-solid header#hub-header #header-top {\n background-color:#0f1b29 !important;\n}\n\n.suggestEdits::before {\n content: \"đ¤\";\n}\n\n.suggestEdits::after {\n content: \"đ¤\";\n}\n\n.suggestEdits{\n display: flex;\n flex-direction: row;\n justify-content: center;\n font-size: 16px !important;\n}\n\ncode {\n background: #eeeeee;\n padding: 2px 5px;\n}\n\npre > code {\n background: inherit;\n\tpadding: 0px;\n}\n\n/*Enlarging the helpful/not helpful box at the bottom*/\ndiv.PageThumbs-helpful { font-size: 20px; }\n\n.markdown-body.markdown-body.markdown-body strong {\n font-weight:700 !important;\n}","js":null,"html":{"header":null,"home_footer":null,"page_footer":null}},"header":{"type":"line","gradient_color":"#38591e","link_style":"buttons","overlay":{"fill":"tile-x","type":"circuits","position":"top-left","image":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}}}},"ai":{"dropdown":"disabled","options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","view_as_markdown":"enabled"}},"navigation":{"first_page":"documentation","left":[{"type":"guides","title":null,"url":null,"custom_page":null},{"type":"link_url","title":"API","url":"https://docs.codecov.com/reference","custom_page":null},{"type":"changelog","title":null,"url":null,"custom_page":null},{"type":"link_url","title":"Support","url":"https://codecovpro.zendesk.com/","custom_page":null},{"type":"link_url","title":"Status","url":"https://status.codecov.com","custom_page":null},{"type":"link_url","title":"Codecov Home","url":"https://about.codecov.io","custom_page":null},{"type":"link_url","title":"Try Codecov for Free","url":"https://about.codecov.io/codecov-free-trial/","custom_page":null}],"logo_link":"landing_page","page_icons":"enabled","right":[],"sub_nav":[],"subheader_layout":"dropdown","version":"enabled","links":{"home":{"label":"Home","visibility":"disabled"},"graphql":{"label":"GraphQL","visibility":"disabled"},"guides":{"label":"Guides","alias":null,"visibility":"enabled"},"reference":{"label":"API Reference","alias":"API Endpoints","visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"disabled"},"changelog":{"label":"Changelog","alias":"Changelog","visibility":"enabled"},"discussions":{"label":"Discussions","alias":"Discussion","visibility":"disabled"}}}},"git":{"connection":{"repository":{},"organization":null,"status":"inactive"}}}},"version":{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"}},"is404":false,"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/edit/code-coverage-with-python","version":{"_id":"64c14ec8f2680d15b2982bc4","version":"2023","version_clean":"2023.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["604a3fa3d6d5f00080272532","604a3fa3d6d5f00080272533","584d8c8ecda2b40f000583b1","604a3fa3d6d5f00080272534","64c14ec8f2680d15b2982b22","64c14ec8f2680d15b2982b23","6308fc7b69f8e6001a5b7891","6308fc7b69f8e6001a5b7892","6308fc7b69f8e6001a5b7893","6308fc7b69f8e6001a5b7894","604a3fa3d6d5f0008027253b","6308fc7b69f8e6001a5b7895","58a898f47e69742300452fd5","5eb0413161ae28003916ffe0","64c14ec8f2680d15b2982b24","604babcfe3d113006c0ac382","64c14ec8f2680d15b2982b25","64c14ec8f2680d15b2982b26","64c14ec8f2680d15b2982b27","6376b408081e400003bab88c","63d7d3bd383f980c59dfdb04","64c14ec8f2680d15b2982b28","64c14ec8f2680d15b2982b29","64c14ec8f2680d15b2982bc6","651dcc9c5bcd49002bbe5d91","668825e9bfdd8000111b6104","668826589204050010308f85","66d9ae493a66f90010b2ca41"],"__v":0,"project":"57b33b5ec9a4551700b969a5","forked_from":"6308fc7b69f8e6001a5b790f","createdAt":"2023-07-26T16:50:16.491Z","releaseDate":"2016-12-11T17:27:42.671Z","updatedAt":"2024-09-05T13:12:41.216Z"}}">