Skip to main content

A statistics tool for your LOC per language

Project description

locstats

build status

A Python tool that tells you approximately how many LOC (Lines Of Code) you have written in a given language.


what is locstats?

Wondering how many LOC (Lines Of Code) you have written in a given language? Well, this is the tool for you! Given a programming language and a directory list, locstats calculates the amount of LOC you have written in that language.

installing locstats

Note: locstats is only compatible with Python 3.6 or newer.

You can install locstats via pip:

$ pip3 install locstats # Only Python 3 is supported!

Or you can build it directly from its sources by cloning this repo:

$ git clone https://github.com/kokkonisd/locstats
$ cd locstats/
$ pip3 install .

Then you can run it to make sure that it's installed properly:

$ locstats --help
Usage: locstats [OPTIONS] LANGUAGE [SRC_DIRS]...

  Counts the LOC in a given language in a given directory set.

Options:
  --strict        Run in strict mode (ignore comments and empty lines).
  -m, --minimal   Give minimal output (just the LOC count).
  --silent        Silence all warnings (such as directories not being found).
  -d, --detailed  Output a detaled list of LOC per file.
  --help          Show this message and exit.

If you have installed locstats with pip but it can't find the executable when you run it, then you need to add Python to your PATH variable. You can do that by adding the following line to your ~/.bashrc or ~/.zshrc:

export PATH=your-python-path-here/bin:$PATH

For example, on my computer (OSX) it's:

export PATH=/Users/kokkonisd/Library/Python/3.7/bin:$PATH

If you still can't get locstats to run, please create new issue and we'll get to it ASAP.

using locstats

Using locstats is pretty simple! Let's say I want to find out my LOC count in C given all the C projects I have inside my ~/code/C/ folder:

$ locstats c ~/code/C/
You have written approximately 39590 LOC in C, 27.26% of which are comments.

But wait! I try to document the code I write, so there's gonna be a lot of lines of comments, which shouldn't count towards my actual code line count. I also try to format my code nicely, leaving blank lines where I have to to make it more readable; those do not contribute to the code line count either.

Thankfully, I can just run locstats in strict mode:

$ locstats c ~/code/C/ --strict
You have written approximately 28807 LOC in C.

Unsurprisingly, this returns fewer lines.

But what if I want to use the output of locstats in some other script? Well, I can tell it to give me minimal output, which will only print the LOC count (without the extra text):

$ locstats c ~/code/C/ --minimal
39590

You can also get a detailed view of the LOC count per file using the -d or --detailed flag:

$ locstats python ~/code/locstats/ --detailed
FILENAME              LOC (%)
----------------------------------------
__main__.py         : 105 (32.71%)
loc.py              : 73 (22.74%)
test_loc.py         : 54 (16.82%)
definitions.py      : 47 (14.64%)
setup.py            : 28 (8.72%)
test_definitions.py : 12 (3.74%)
__init__.py         : 2 (0.62%)
----------------------------------------
TOTAL LOC           : 321 (100%)

supported languages

Currenlty, we support the following languages:

  • C
  • C#
  • C++
  • CSS
  • D
  • Dart
  • F#
  • Fortran
  • Go
  • HTML
  • Java
  • JavaScript
  • Julia
  • LaTeX
  • Markdown
  • MATLAB
  • Objective-C
  • Perl
  • PHP
  • Python
  • R
  • Ruby
  • Rust
  • Swift
  • TypeScript
  • Verilog
  • VHDL
  • x86 assembly

contributing

Do you want to contribute to an open source project? locstats needs your help! I've just started working on this project and there are still tons of things to add (mainly other programming languages in the languages.json file!).

So go ahead, fork this repo, write some code and make 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

locstats-1.0.10.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

locstats-1.0.10-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file locstats-1.0.10.tar.gz.

File metadata

  • Download URL: locstats-1.0.10.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.6.7

File hashes

Hashes for locstats-1.0.10.tar.gz
Algorithm Hash digest
SHA256 73e7e855ffd3a4a9f9c3aea8c39305a7d8eb6ff02899e72d5b7cf5e9506af179
MD5 09e43d20e9ed68577f2a698de220859b
BLAKE2b-256 e34cce419da29cc9a2c2eeca08678b3d2ba2dd37686cad1a0b138c72a6388df9

See more details on using hashes here.

File details

Details for the file locstats-1.0.10-py3-none-any.whl.

File metadata

  • Download URL: locstats-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.6.7

File hashes

Hashes for locstats-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 4a1fecb809f2e6aced11ff53115da33e8e72f93583c3a3790b63791b802076e7
MD5 652971a0aee00f297be91aa4a8918a93
BLAKE2b-256 7ee1bb811982810ce209fdbb53244fa42c0522811448622019ea99c47d9a2c0f

See more details on using hashes here.

Supported by

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