A statistics tool for your LOC per language
Project description
locstats
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73e7e855ffd3a4a9f9c3aea8c39305a7d8eb6ff02899e72d5b7cf5e9506af179 |
|
MD5 | 09e43d20e9ed68577f2a698de220859b |
|
BLAKE2b-256 | e34cce419da29cc9a2c2eeca08678b3d2ba2dd37686cad1a0b138c72a6388df9 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a1fecb809f2e6aced11ff53115da33e8e72f93583c3a3790b63791b802076e7 |
|
MD5 | 652971a0aee00f297be91aa4a8918a93 |
|
BLAKE2b-256 | 7ee1bb811982810ce209fdbb53244fa42c0522811448622019ea99c47d9a2c0f |