Skip to main content

ty-async

Extremely fast linter implementing flake8-async's ASYNC200 check (user-configured blocking calls in async functions), built on ruff's Python parser. Drop-in replacement for the flake8 flag, ~2 orders of magnitude faster.

pip install ty-async

ty-async src-dir another-dir \
  --exclude=src-dir/tests \
  --async200-blocking-calls='stripe.*->alt(),*.load_data->(),fcntl.flock->()'

Transitive mode

--async200-transitive (with the same patterns flag) additionally builds a name-based call graph and reports call sites in async functions that reach a blocking call through sync helpers, with the chain as evidence:

app.py:161:18: ASYNC200T blocking sync call markdown.markdown reachable from async function via markdown_to_slack_blocks (client.py:176:12)

Calls are resolved by name only (same class → same file → globally unique; ambiguous names are skipped, not guessed). Callables merely passed to asyncio.to_thread / run_in_executor are not calls, so executor wrappers are naturally exempt. Dynamic dispatch and framework callbacks are out of scope. Suppress a site with # noqa / # noqa: ASYNC200 on its line.

Type escape hatches

--type-hatches=no-any,no-getattr,no-object enables three extra rules (usable alone or together with the ASYNC200 flag, single pass either way):

  • no-getattr — bare getattr() / hasattr() calls
  • no-any — Any (or typing.Any, t.Any, …) inside an annotation
  • no-object — object inside an annotation

Suppress a site with a trailing # lint-ignore: no-any,no-getattr comment anywhere in the enclosing statement / function-signature span.

Semantics

Semantics match flake8-async exactly: calls inside async def bodies (nested def/lambda reset the context), directly-awaited calls are skipped, patterns are fnmatch-ed against ast.unparse(func) (so * crosses dots), # noqa / # noqa: ASYNC200 are honored, and output format and exit codes match flake8. Only ASYNC200 is implemented; --ignore and --asyncio are accepted as no-ops.

Metadata

Release files for ty-async 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ty-async 0.3.0
File Size Uploaded
ty_async-0.3.0.tar.gz 19.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ty-async 0.3.0
File
ty_async-0.3.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
ty_async-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
ty_async-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
ty_async-0.3.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
ty_async-0.3.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 5.2 MB

Release files / ty_async-0.3.0.tar.gz

Download URL ty_async-0.3.0.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
eda16a3e00e2ad32233487cb8860c1761e9c9db25135c2bc412442efd10f3104
BLAKE2b-256 checksum
How to use checksums
de1d08356025177499e70b0a0c3b0ad1a19fbf17b196e66585ec958d6c232ff4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / ty_async-0.3.0-py3-none-win_amd64.whl

Download URL ty_async-0.3.0-py3-none-win_amd64.whl
Size 972.0 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
72ed59841e9dfaf697aff32b7ac2a0c4f0a95a8118605a4b03436efd559557d8
BLAKE2b-256 checksum
How to use checksums
00d4d886ebe7c9911d2a73a84e2c966b313d177d03c200a2103308cfedcaee6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / ty_async-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ty_async-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d35dd74d88459b1c2c5bbcb5273022254a052eb3d9b6211e6e8a3c8011603cae
BLAKE2b-256 checksum
How to use checksums
13f54d311295eb885d2f878d70f235dec649bfe5484d0c2374f7926834a3ffdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / ty_async-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ty_async-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.1 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a6077e9edad05128097e62300ad68c20f1d27f6ffed3f84584e38db3b1de57f7
BLAKE2b-256 checksum
How to use checksums
c213b768f6410b99d2abb0cfef0d261633f8364409a30aeda0f4533eb8299be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / ty_async-0.3.0-py3-none-macosx_11_0_arm64.whl

Download URL ty_async-0.3.0-py3-none-macosx_11_0_arm64.whl
Size 1.0 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2c838a3ce74da28a4b515f4dfbfc2f5f1b01e8eb5ea0e426fb4c1a5212fc86e4
BLAKE2b-256 checksum
How to use checksums
970f9e67df8ff29a8c72fe29c92479fe7f0e1190871f395ba8427d97564e54d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / ty_async-0.3.0-py3-none-macosx_10_12_x86_64.whl

Download URL ty_async-0.3.0-py3-none-macosx_10_12_x86_64.whl
Size 1.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
800208f59e9f39a2b6af700dbeb1d0508c8f2ead7ed5e6b3289c8a2ff0694009
BLAKE2b-256 checksum
How to use checksums
924a5ad08b169bdb2f3b5f025049af0e7be284ece2428f910f9c1576b8bea067
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

6 release files

This release

0.3.0 This release

6 release files

0.2.0

6 release files

0.1.0

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page