A library for navigating over large codebases.
Project description
Locify 🔎
Locify is a library designed to help LLM-based agents navigate and analyze large codebases efficiently. It leverages parsing techniques to provide insights into code structure and relationships.
Features
On a Git-based repository, Locify offers:
-
Codebase Skeleton Mapping:
FullMapStrategy
: Generates a skeleton map of the entire codebase or a directory only.RepoMapStrategy
: Focuses on the reference relationships, using graph theory to rank and analyze code elements.
-
Tree-sitter Integration: Utilizes Tree-sitter for precise parsing of source code, supporting multiple programming languages.
-
Command-Line Interface: Provides a user-friendly CLI for executing different mapping strategies.
Installation
Locify can be installed via pip:
pip install locify
Usage
Command-Line Interface
Locify offers a CLI to execute mapping strategies:
python -m locify.cli <strategy> get_map_with_token_count [options]
<strategy>
: Choose betweenfullmap
andrepomap
.[options]
: Additional options for customizing the mapping process, e.g. file's depth, or specific directories only.
Example
-
To generate a full map of a codebase:
python -m locify.cli fullmap get_map_with_token_count --root /path/to/gitrepo
-
To generate a full map of the
locify
directory only, with maximum depth of 3:python -m locify.cli fullmap get_map_with_token_count 3 locify
Development
Directory Structure
locify/
: Main source code directory.cli.py
: Command-line interface implementation.indexing/
: Contains strategies for code mapping.full_map/
: Implementation ofFullMapStrategy
.repo_map/
: Implementation ofRepoMapStrategy
.
tree_sitter/
: Tree-sitter integration for parsing.parser.py
: Tree-sitter parser implementation.queries/
: Schema query files for different languages.
utils/
: Utility functions and classes.
Testing
Tests are located in the tests
directory. Run tests using:
poetry run pytest
Acknowledgements
This project was inspired by the aider's RepoMap implementation.
License
This project is licensed under the terms of the MIT license. See the LICENSE file for details.
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 locify-0.0.2.tar.gz
.
File metadata
- Download URL: locify-0.0.2.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3d55ba58cae2f2fca2ce6fb3e471d830b3f66a6f9b17eba76c93a3afe2d225b |
|
MD5 | 14b2a2ae716c8440242d4e36d8ecd98e |
|
BLAKE2b-256 | 9d7e4c97beab24aac8c1ff4b0ed26fd6675213ddbd85b84c33b26b216bb7b926 |
File details
Details for the file locify-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: locify-0.0.2-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9d574147340f16e987877723c5745f9ef13534864a37290b5db02d701c2493b |
|
MD5 | a8d8644c8bde29063d169e4bac4c5ab0 |
|
BLAKE2b-256 | 090e6a5f921cf2ea7cd5d6fa39d270b0db5332de22fd44143fdedec21e85b358 |