pyfilemetre is a Python CLI tool that analyzes code using AST — counting functions, classes, and missing docstrings, and generating Markdown reports.
Project description
pyfilemetre: Python Codebase Analyzer
pyfilemetre is a Python CLI tool that calculates lines of code (LOC), counts classes and functions, checks for docstrings, and generates Markdown reports for Python projects. It is designed to give you a clear, file-by-file summary of your codebase quickly.
Features
- Counts lines of code (LOC) per file.
- Counts classes and functions.
- Checks for missing docstrings.
- Generates Markdown reports summarizing the project.
- Interactive CLI with spinner animation.
- Optional flag to skip saving the report.
Installation
You can install pyfilemetre from PyPI:
pip install pyfilemetre
Note: Currently not available for local development!
Usage
Run pyfilemetre on a Python file or directory:
pyfilemetre <path_to_project>
Example:
pyfilemetre "C:\Users\You\Desktop\demo_project"
Execution Flow
- You'll see a spinner animation showing progress.
- The terminal will display a summary of classes, functions, and docstrings.
- You’ll be prompted to save a Markdown report. Enter
yto save and provide a path, ornto skip.
Optional Flags
--no-md= Skip saving the Markdown report.
Example with flag:
pyfilemetre "C:\Users\You\Desktop\demo_project" --no-md
Example Output
Terminal summary:
File: utils.py
LOC: 120
Functions: 5
Classes: 2
Missing docstrings: 1
File: main.py
LOC: 200
Functions: 8
Classes: 1
Missing docstrings: 0
- Markdown report:
report.mdgenerated with the same details per file.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Notes
- Python 3.8+ required.
- Works on Windows, macOS, and Linux.
- Tabulate library is used for nice terminal output.
Created by Aditi Gupta.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyfilemetre-0.1.0.tar.gz.
File metadata
- Download URL: pyfilemetre-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0c592dd452814b419a681906c28e07cd42b1bc4ccd180f196745a88250f55e8
|
|
| MD5 |
0c5d14e86341260d7a81f1b635cecb13
|
|
| BLAKE2b-256 |
671ec88ca5b1b3963a6e982c803336e37eea90d58cd46226bc9c857db5804054
|
File details
Details for the file pyfilemetre-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyfilemetre-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b62398d702220f6c6b6c3564a4d60cf7bf339f9913859f9eb72d690bfae77e9
|
|
| MD5 |
f0183bd7c82737a4c70cde02eca90512
|
|
| BLAKE2b-256 |
f47e3ee45f031b6b04b8f5686897941433df3b3abfc92c55551facec5acd1487
|