Skip to main content

A tool to count lines of code in a Python project

Project description

pycodestats

pycodestats is a tool to count lines of code, classes, and methods in a Python project. It can scan directories recursively and provides summary statistics for each file or directory.

Features

  • Counts lines of code (excluding comments and docstrings)
  • Counts number of classes and methods
  • Outputs results in table, JSON, or XML format

Installation

You can install pycodestats using pip:

pip install pycodestats

Usage

To scan a directory and output results in table format:

pycodestats path/to/your/project

To output results in JSON format:

pycodestats path/to/your/project --json

To output results in XML format:

pycodestats path/to/your/project --xml

Example

pycodestats src --by-file

This will output the statistics for each Python file in the src directory.

Output Format

When using the default table format, the output includes the following columns:

  • Directory/File: The name of the directory or file. If --by-file is used, this column lists each individual file. Otherwise, it lists each directory.
  • Lines: The total number of lines in the file or directory. This includes all lines, regardless of content.
  • LOC: The number of lines of code (LOC), excluding comments and docstrings.
  • Classes: The number of classes defined in the file or directory.
  • Methods: The number of methods defined in the file or directory.
  • M/C: The average number of methods per class. This is calculated as the number of methods divided by the number of classes. If there are no classes, this value is 0.
  • LOC/M: The average number of lines of code per method. This is calculated as the number of lines of code divided by the number of methods. If there are no methods, this value is 0.

Example Output

File                        Lines    LOC  Classes  Methods   M/C   LOC/M
-------------------------------------------------------------------------
src/main.py                  120     130       2        10     5      13
src/utils.py                  80      90       1         5     5      18
src/models.py                100     120       3        15     5       8
-------------------------------------------------------------------------
SUM:                         300     340       6        30     5      11

In this example:

  • Directory: Lists directories or files.
  • Lines: Shows the total number of lines.
  • LOC: Shows the lines of code.
  • Classes: Shows the number of classes.
  • Methods: Shows the number of methods.
  • M/C: Shows the average number of methods per class.
  • LOC/M: Shows the average number of lines of code per method.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycodestats-0.3.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pycodestats-0.3.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file pycodestats-0.3.0.tar.gz.

File metadata

  • Download URL: pycodestats-0.3.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pycodestats-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ad0107062585f0f452083968f9ffe1e05e8511ddcac2090ae5feebd394685ac6
MD5 25feffa04ed17953c009ccc1fa5e91a2
BLAKE2b-256 c90b46c2784a05a6a1b42d9461f0d56318a51a49a43728e0d04198505b608cef

See more details on using hashes here.

File details

Details for the file pycodestats-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pycodestats-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pycodestats-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe9792acca9c0baa16e4def25c095a34d280ba07bb9d86a27bc1a88d1fa57433
MD5 9af65907cdfce1a03a8666066fba483f
BLAKE2b-256 7308f68c280af0e5b1ca14068bd9f25913ac857f4c8ccbb913af663bbfd06f4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page