Skip to main content

Add your description here

Project description

Python Loc Counter - PYLOCC

Tests Coverage

pylocc is a command-line tool for counting lines of code in various programming languages. It helps you get a quick overview of the size and composition of your codebase.

This project draws instiparion from scc and uses the same language.json file.

Features

  • Counts lines of code, comments, and blank lines.
  • Supports a wide range of programming languages.
  • Can process single files or entire directories.
  • Provides both aggregated and per-file reports.
  • Easy to use and configure.

Requirements

  • Python >= 3.10

Installation

From Pypi

 pip install pylocc

 pylocc --help

From Source

  1. Clone the repository:
    git clone https://github.com/your-username/pylocc.git
    
  2. Navigate to the project directory:
    cd pylocc
    
  3. Install the dependencies:
    uv run pylocc
    

Usage

To use pylocc, run the following command:

pylocc [OPTIONS] <file_or_directory>

or

uv run pylocc --help
Usage: pylocc [OPTIONS] FILE

  Run pylocc on the specified file or directory.

Options:
  --by-file      Generate report by file.
  --output FILE  Stores the output report in csv format to the given path
  --help         Show this message and exit.

Options

  • --by-file: Generate a report for each file individually.
  • --output <path>: Save the report to a file.

Examples

  • Count lines of code in a single file:
    pylocc my_file.py
    
  • Count lines of code in a directory and all its subdirectories:
    pylocc my_project/
    
  • Generate a per-file report:
    pylocc --by-file my_project/
    
  • Save the report to a file:
    pylocc --output report.csv my_project/
    

Configuration

pylocc uses a language.json file to define the comment syntax for different languages. You can customize this file to add new languages or modify existing ones.

Each language entry in language.json has the following structure:

{
  "LanguageName": {
    "extensions": ["ext1", "ext2"],
    "line_comment": ["//"],
    "multi_line": [["/*", "*/"]]
  }
}
  • extensions: A list of file extensions for the language.
  • line_comment: A list of strings that represent single-line comments.
  • multi_line: A list of pairs of strings that represent the start and end of multi-line comments.

Contributing

Contributions are welcome! Please feel free to 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

pylocc-1.0.3.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

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

pylocc-1.0.3-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file pylocc-1.0.3.tar.gz.

File metadata

  • Download URL: pylocc-1.0.3.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.4

File hashes

Hashes for pylocc-1.0.3.tar.gz
Algorithm Hash digest
SHA256 8c6eb34d505d5b61e0b5aa3b601a9378c0e3f4c0739175facd9e4bc877e45868
MD5 33d15cf43eda1891f6f1064e05c5fca9
BLAKE2b-256 0cc7fecfcd14dd5518bc01c023d9679d2fc43a114b9b3b510d39502aea3ba533

See more details on using hashes here.

File details

Details for the file pylocc-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: pylocc-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.4

File hashes

Hashes for pylocc-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ad31439bbeaa40dc186f2ae88592a5ac7c012a0573bf25a2cb0e947d10f3f2fb
MD5 8ffbd702d0a5eaa232844eac7f5b6923
BLAKE2b-256 45e1828d1e6178d995233dcfb7711addd731c5742f53cc88611bb6c6fc787395

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