This project is for easy gathering of statistics relating to typeshed's stubs. As well as being a CLI tool and library, it also powers a website where stats about typeshed's stubs are uploaded twice a day.
This project was created by Alex Waygood. It is not necessarily endorsed by any of the other typeshed maintainers.
Some examples of things you can do from the command line:
- Create a
.csvfile with stats on all typeshed stubs:typeshed-stats --typeshed-dir <PATH_TO_TYPESHED_CLONE> --to-file stats.csv(the.csvfile extension will be automatically detected by the script to identify the format required). - Pretty-print stats on typeshed stubs for emoji and redis to the terminal, in JSON format:
typeshed-stats --typeshed-dir <PATH_TO_TYPESHED_CLONE> --to-json emoji redis - Generate a MarkDown file detailing stats on typeshed's stubs for protobuf and the stdlib:
typeshed-stats --typeshed-dir <PATH_TO_TYPESHED_CLONE> --to-file stats.md stdlib protobuf - Open the upstream repository URLs for
requests,Flask-SocketIOandCPythonin your default web browser:typeshed-stats --typeshed-dir <PATH_TO_TYPESHED_CLONE> --upstream-repo requests Flask-SocketIO stdlib
Example usage of the Python-level API:
from typeshed_stats.gather import tmpdir_typeshed, gather_stats
with tmpdir_typeshed() as typeshed:
stats_on_all_packages = gather_stats_on_multiple_packages(typeshed_dir=typeshed)- Run
pip install typeshed-stats[rich]to install the package - Run
typeshed-stats --helpfor information about various options
Are there any examples of things this script can produce, other than the website?
I'm glad you asked! They're in the examples/ folder in this repo.
(These examples are generated using the regenerate.py script in the scripts/ directory.)
- Clone the repo and
cdinto it - Create and activate a virtual environment
- Run
pip install -e .[dev] - Either run the linters/tests individually (see the
.github/workflowsdirectory for details about what's run in CI) or use thescripts/runtests.pyconvenience script to run them all in succession.
