Metadata-Version: 2.1
Name: typescore
Version: 0.2
Summary: typescore - generate typing completeness scores for a set of packages
Author-email: Graham Wheeler <graham@grahamwheeler.com>
Description-Content-Type: text/markdown
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Dist: flit_core >=3.7
Requires-Dist: docopt
Requires-Dist: pyright
Requires-Dist: importlib-metadata
Project-URL: Source, https://github.com/gramster/typescore

typescore - generate typing completeness scores for a set of packages

Usage:

  typescore \<packages\> [--verbose] [--scores \<scorefile\>] [--sep \<sep\>]

  typescore --help
  
  typescore --version

Options:

  --scores \<scorefile\>  The output file. [default: scores.csv]

  --sep \<sep\>           CSV column separator. [default: ,]

  --verbose             Include package info in the output.
  
  --help                Show this help.
  
  --version             Show the version.

typescore uses pyright to score the typing completeness of a set of Python
packages. It reads this list from \<packages\> and writes the results to
\<scorefile\>. If errors prevent it from scoring a package it will set the
score to 0%.

The output has the form:


    package,typed,module,score,extra_columns


or, if --verbose is specified:


    package,version,typed,module,score,package_description,extra_columns

'typed' is a Boolean and tells whether the package had a py.typed file.

Note: we only score top-level modules, not submodules. The assumption is
that scores for top-level modules would be reasonably representative of
the packages all-up. However, we do generate separate scores for each top
level module in a package (so matplotlib would result in 3 lines, one each
for 'matplotlib', 'mpl_toolkits' and 'pylab'.

\<packages\> should have one package name per line. It can be a CSV file with
the package name as the first column, in which case other columns will be
included in the score file output ('extra_columns'). A typical extra column
might be the package rank on PyPI downloads.

