{"id":13799955,"url":"https://github.com/KotlinIsland/basedmypy","last_synced_at":"2025-05-13T08:32:32.027Z","repository":{"id":37662711,"uuid":"419888233","full_name":"KotlinIsland/basedmypy","owner":"KotlinIsland","description":"Based Python static type checker with baseline, sane default settings and based typing features","archived":false,"fork":false,"pushed_at":"2025-04-26T06:01:15.000Z","size":81657,"stargazers_count":176,"open_issues_count":435,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-11T08:36:04.678Z","etag":null,"topics":["based","baseline","python","typing"],"latest_commit_sha":null,"homepage":"https://kotlinisland.github.io/basedmypy/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"python/mypy","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KotlinIsland.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-21T21:57:30.000Z","updated_at":"2025-05-08T08:04:55.000Z","dependencies_parsed_at":"2025-01-29T13:00:41.979Z","dependency_job_id":"b2caa7d0-78cb-43e5-ae08-9c78a2600ec7","html_url":"https://github.com/KotlinIsland/basedmypy","commit_stats":{"total_commits":10582,"total_committers":665,"mean_commits":"15.912781954887219","dds":0.579002079002079,"last_synced_commit":"86ca0ededc11796287273c38557697c41dbf72fb"},"previous_names":[],"tags_count":147,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotlinIsland%2Fbasedmypy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotlinIsland%2Fbasedmypy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotlinIsland%2Fbasedmypy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KotlinIsland%2Fbasedmypy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KotlinIsland","download_url":"https://codeload.github.com/KotlinIsland/basedmypy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253540673,"owners_count":21924523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["based","baseline","python","typing"],"created_at":"2024-08-04T00:01:07.615Z","updated_at":"2025-05-13T08:32:30.421Z","avatar_url":"https://github.com/KotlinIsland.png","language":"Python","funding_links":[],"categories":["Static type checkers"],"sub_categories":[],"readme":"[![Discord](https://img.shields.io/discord/948915247073349673?logo=discord)](https://discord.gg/7y9upqPrk2)\n[![Playground](https://img.shields.io/badge/🛝%20playground-blue)](https://mypy-play.net/?mypy=basedmypy-latest)\n[![Stable Version](https://img.shields.io/pypi/v/basedmypy?color=blue)](https://pypi.org/project/basedmypy/)\n[![Downloads](https://img.shields.io/pypi/dm/basedmypy)](https://pypistats.org/packages/basedmypy)\n[![Documentation](https://img.shields.io/badge/📚%20docs-blue)](https://KotlinIsland.github.io/basedmypy)\n[![Checked with basedmypy](https://img.shields.io/badge/basedmypy-checked-brightgreen?labelColor=orange)](https://github.com/KotlinIsland/basedmypy)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Linting: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n\u003c!-- can't use a \u003cpicture\u003e because it doesn't work in the app --\u003e\n\n![Amon Gus.](/docs/static/logo-dark.png#gh-dark-mode-only)\n![Amon Gus.](/docs/static/logo-light.png#gh-light-mode-only)\n\n# Based Static Typing for Python\n\nBasedmypy is a Python type checker that is built on top of the work done by the\n[mypy project](https://github.com/python/mypy). It resolves fundamental issues, limitations and compromises\nthat exist within Mypy and Python's type system.\n\nBased features include:\n\n- Typesafe by default (optional and dynamic typing still supported)\n- Baseline functionality\n- Support for `Intersection` types\n- Default return type of `None` instead of `Any`\n- Generic `TypeVar` bounds\n- Based type-guards\n- Infer parameter type from default value\n- Infer overload types\n- Bare literals\n- Tuple literal types\n\nSee the [the docs](https://kotlinisland.github.io/basedmypy/based_features.html) for a comprehensive list.\n\n\n### BasedPyright\n\nAlso, take a look at [BasedPyright](https://github.com/DetachHead/basedpyright), a based type checker and language server based on Pyright!\n\n## Usage\n\nBasedmypy is installed as an alternative to, and in place of, the `mypy` installation:\n\n    mypy test.py\n\n    python -m mypy test.py\n\n\n## Why?\n\nbasedmypy was created to attempt to resolve two issues within Python and Mypy's typing ecosystem\nand to demonstrate new typing concepts:\n\n1. Mypy is lacking numerous pieces of functionality\n2. Pythons type system is full of deeply concerning compromises\n\nYou can find a comprehensive list of features in [the docs](https://kotlinisland.github.io/basedmypy/based_features.html).\n\n\n## Integrations\n\nIf you are using vscode, we recommend the [mypy extension](https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker)\n\nIf you are using IntelliJ IDEA/PyCharm, we recommend the [basedtyping plugin](https://plugins.jetbrains.com/plugin/23374-basedtyping)\n\nIf you are using [Pydantic](https://github.com/pydantic/pydantic), we recommend [pydantic-basedtyping](https://github.com/KotlinIsland/pydantic-basedtyping)\n\n\n### Baseline\n\nBasedmypy supports a feature called baseline. It allows you to adopt new strictness or features\nwithout the burden of refactoring and fixing every new error, just save all current errors to the baseline\nfile and resolve them at what ever pace you want. Only new code will report new errors.\n\nRead more and see examples in [the docs](https://KotlinIsland.github.io/basedmypy/baseline)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKotlinIsland%2Fbasedmypy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKotlinIsland%2Fbasedmypy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKotlinIsland%2Fbasedmypy/lists"}