Takes a folder path and outputs a text outline of the code, supports ignore files.
Project description
Python Code Structure Report Generator
This Python script generates a text-based report of the code structure for all Python files in a given folder. It's useful for getting a quick overview of the code structure of a Python project. This can be particularly helpful for ChatGPT/Large Language Model (LLM) applications where you need to ask high-level questions about your codebase.
Usage
To use this script, run the python_report_generator.py
file and provide the path to the folder containing the Python files you want to analyze. You can also optionally specify a name for the report file, which defaults to report.txt
if not provided, and a path to the ignore file. The ignore file should be a .gitignore
file or a file with the same format as a .gitignore
file. If provided, the script will parse the ignore patterns from the file and exclude the matching files and folders from the report.
python python_code_outline/python_report_generator.py /path/to/folder --report_file_path custom_report.txt --ignore_file_path /path/to/folder/.gitignore
If the --report_file_path
option is not specified, the report will be written to report.txt
by default.
python python_report_generator.py /path/to/folder
Usage as a pip module
After installing the package via pip, you can import and use the functionality in your own code as well. For example:
""" Generate a report of the python code outline of a folder. """
from python_code_outline import python_report_generator
# Define the root folder
ROOT_FOLDER = "/path/to/folder"
# Specify the report and ignore file paths (optional)
REPORT_FILE_PATH = "custom_report.txt"
IGNORE_FILE_PATH = "/path/to/folder/.gitignore"
# Generate the report
REPORT = python_report_generator.get_report(ROOT_FOLDER, IGNORE_FILE_PATH)
# Write the report to a file
with open(REPORT_FILE_PATH, "w", encoding="utf-8") as file:
file.write(REPORT)
print(f"Report generated successfully to {REPORT_FILE_PATH}.")
Please replace "/path/to/folder" with the path to the folder you want to analyze, and update the report and ignore file paths as necessary.
Output
The script will generate a text-based report of the code structure for each Python file in the specified folder. The report includes information about imports, classes, functions, and variables in each file.
Optional Parameters
--report_file_path
: The name of the report file. Defaults toreport.txt
if not provided.--ignore_file_path
: The path to the ignore file. If provided, the script will parse the ignore patterns from the file and exclude the matching files and folders from the report.
Requirements
This script requires Python 3.x to run.
Installation
This project uses Poetry for dependency management. To install the dependencies, first install Poetry by following the official installation guide, and then run the following command in the project directory:
poetry install
This will create a virtual environment and install the required dependencies.
You can install this module using pip:
pip install python-code-outline
or with poetry
poetry add python-code-outline
This command will download the package from PyPI and install it in your current Python environment.
Running Tests
This project uses pytest
for testing. To run the tests, first activate the virtual environment created by Poetry:
poetry shell
Then, run the tests using the following command:
pytest
Checking Test Coverage
This project uses the coverage
package to generate test coverage reports. Here's how to use it:
- First, you need to install the
coverage
package if it's not already installed.
pip install coverage
or
poetry add coverage
If you're using Poetry, you can also add coverage
to your pyproject.toml
file and run poetry install
to install it.
- After installing
coverage
, you can use it to run your tests and collect coverage data. If you're usingpytest
for testing, you can use the following command:
coverage run -m pytest
This command tells coverage
to run pytest
as a module (hence the -m
flag), and coverage
collects data about which parts of your code were executed during the test run.
- Once you've collected coverage data, you can generate a report by running:
coverage report
This will print a coverage report to the terminal, showing the code coverage for each module in your project.
- If you want a more detailed view, you can generate an HTML report using:
coverage html
This will generate an htmlcov
directory in your project directory. Inside this directory, you'll find an index.html
file. You can open this file in a web browser to view a detailed coverage report that shows which lines of each file were covered by the tests.
- If you're finished checking coverage and want to clear the collected data, you can use the command:
coverage erase
This will delete the .coverage
data file, clearing the collected coverage data.
Remember that code coverage is a useful tool for finding untested parts of your code, but achieving 100% code coverage doesn't necessarily mean your testing is perfect. It's important to write meaningful tests and not just strive for high coverage percentages.
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
Hashes for python_code_outline-0.1.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2870aae1ebcaf234403b78efefa0754cff81e29860d4c8a7c002de67b68df24e |
|
MD5 | 5df8d8fbae46132058e28dcbacf33f07 |
|
BLAKE2b-256 | a01425bb34c9cf13c47a18a170d302c8e279f1c6c7e1a00a6f2b7b35d0402b8f |
Hashes for python_code_outline-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63dcd4dd0d7c068f9403049e685e09629168f5e8437d32ab957168e89979ee86 |
|
MD5 | 402a35953c645d9b81b5a48e3c0afab1 |
|
BLAKE2b-256 | 25a39d7435f3611a582bff06266aee19c4b2a67b1e5181bb6676119c6b24bd76 |