Name | flort JSON |
Version |
0.1.9.4
JSON |
| download |
home_page | https://github.com/chris17453/flort |
Summary | A utility to flatten your source code directory into a single file for LLM usage |
upload_time | 2025-01-02 11:10:09 |
maintainer | None |
docs_url | None |
author | Chris Watkins |
requires_python | None |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Flort: File Concatenation and Project Overview Tool 🗂️
Flort is a powerful command-line tool designed to help developers create consolidated views of their project's source code. It generates comprehensive project overviews by combining directory trees, Python module outlines, and source file concatenation into a single, easily shareable output file.
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
## Features ✨
- **Directory Tree Generation**: Creates visual representation of project structure
- **Source File Concatenation**: Combines multiple source files into a single output
- **Python Module Outline**: Generates detailed outlines of Python modules including:
- Function signatures with type hints
- Class hierarchies
- Docstrings
- Decorators
- **Flexible File Filtering**:
- Filter by file extensions
- Include/exclude hidden files
- Ignore specific directories
- **Configurable Output**: Choose between file output or console display
## Installation 🚀
```bash
pip install flort
```
## Quick Start 🏃♂️
Basic usage to analyze a Python project:
```bash
flort . --py --output=project_overview.txt
```
This will:
1. Scan the current directory for Python files
2. Generate a directory tree
3. Create a Python module outline
4. Concatenate all Python source files
5. Save everything to `project_overview.txt`
## Usage Examples 📚
### Basic Directory Analysis
```bash
# Analyze current directory, include only Python files
flort . --py
# Analyze multiple directories
flort src tests --py
# Include multiple file types
flort . --py --js --css
```
### Advanced Options
```bash
# Include hidden files
flort . --py --hidden
# Include all file types
flort . --all
# Output to console instead of file
flort . --py --output=stdio
# Skip directory tree generation
flort . --py --no-tree
# Generate only outline without source dump
flort . --py --outline --no-dump
# Ignore specific directories
flort . --py --ignore-dirs=venv,build
```
## Command Line Options 🎮
| Option | Description |
|--------|-------------|
| `DIRECTORY` | Directories to analyze (default: current directory) |
| `--output` | Output file path (default: `{current_dir}.flort`) |
| `--outline` | Generate Python module outline |
| `--no-dump` | Skip source file concatenation |
| `--no-tree` | Skip directory tree generation |
| `--all` | Include all file types |
| `--hidden` | Include hidden files |
| `--ignore-dirs` | Comma-separated list of directories to ignore |
| `--verbose` | Enable verbose logging |
| `--help` | Show help message |
## Output Format 📄
The generated output file follows this structure:
```
## Florted: 2025-01-02 05:54:57
## Directory Tree
|-- project/
| |-- src/
| | |-- main.py
| |-- tests/
| |-- test_main.py
## Detailed Python Outline
### File: src/main.py
CLASS: MyClass
DOCSTRING:
Class description
FUNCTION: my_method(arg1: str, arg2: int = 0) -> bool
DOCSTRING:
Method description
## File data
--- File: src/main.py
[source code here]
```
## Development 🛠️
### Setup Development Environment
```bash
# Clone the repository
git clone https://github.com/yourusername/flort.git
cd flort
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Install development dependencies
pip install -e ".[dev]"
```
### Running Tests
```bash
# Run all tests
python -m pytest
# Run with coverage report
python -m pytest --cov=flort tests/
```
## Contributing 🤝
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
### Code Style
- Follow PEP 8 guidelines
- Add type hints to function signatures
- Include docstrings for classes and functions
- Write unit tests for new features
## License 📝
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments 🙏
- Thanks to all contributors who have helped shape Flort
- Inspired by various code analysis and documentation tools in the Python ecosystem
## Support 💬
If you encounter any problems or have suggestions, please [open an issue](https://github.com/yourusername/flort/issues).
Raw data
{
"_id": null,
"home_page": "https://github.com/chris17453/flort",
"name": "flort",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Chris Watkins",
"author_email": "chris@watkinslabs.com",
"download_url": "https://files.pythonhosted.org/packages/0d/0f/272101868b0212da5daae56c71b8fbc92634bcd2ce0b0c4db2780468f60a/flort-0.1.9.4.tar.gz",
"platform": null,
"description": "# Flort: File Concatenation and Project Overview Tool \ud83d\uddc2\ufe0f\n\nFlort is a powerful command-line tool designed to help developers create consolidated views of their project's source code. It generates comprehensive project overviews by combining directory trees, Python module outlines, and source file concatenation into a single, easily shareable output file.\n\n[](https://opensource.org/licenses/MIT)\n[](https://www.python.org/downloads/)\n\n## Features \u2728\n\n- **Directory Tree Generation**: Creates visual representation of project structure\n- **Source File Concatenation**: Combines multiple source files into a single output\n- **Python Module Outline**: Generates detailed outlines of Python modules including:\n - Function signatures with type hints\n - Class hierarchies\n - Docstrings\n - Decorators\n- **Flexible File Filtering**:\n - Filter by file extensions\n - Include/exclude hidden files\n - Ignore specific directories\n- **Configurable Output**: Choose between file output or console display\n\n## Installation \ud83d\ude80\n\n```bash\npip install flort\n```\n\n## Quick Start \ud83c\udfc3\u200d\u2642\ufe0f\n\nBasic usage to analyze a Python project:\n\n```bash\nflort . --py --output=project_overview.txt\n```\n\nThis will:\n1. Scan the current directory for Python files\n2. Generate a directory tree\n3. Create a Python module outline\n4. Concatenate all Python source files\n5. Save everything to `project_overview.txt`\n\n## Usage Examples \ud83d\udcda\n\n### Basic Directory Analysis\n```bash\n# Analyze current directory, include only Python files\nflort . --py\n\n# Analyze multiple directories\nflort src tests --py\n\n# Include multiple file types\nflort . --py --js --css\n```\n\n### Advanced Options\n```bash\n# Include hidden files\nflort . --py --hidden\n\n# Include all file types\nflort . --all\n\n# Output to console instead of file\nflort . --py --output=stdio\n\n# Skip directory tree generation\nflort . --py --no-tree\n\n# Generate only outline without source dump\nflort . --py --outline --no-dump\n\n# Ignore specific directories\nflort . --py --ignore-dirs=venv,build\n```\n\n## Command Line Options \ud83c\udfae\n\n| Option | Description |\n|--------|-------------|\n| `DIRECTORY` | Directories to analyze (default: current directory) |\n| `--output` | Output file path (default: `{current_dir}.flort`) |\n| `--outline` | Generate Python module outline |\n| `--no-dump` | Skip source file concatenation |\n| `--no-tree` | Skip directory tree generation |\n| `--all` | Include all file types |\n| `--hidden` | Include hidden files |\n| `--ignore-dirs` | Comma-separated list of directories to ignore |\n| `--verbose` | Enable verbose logging |\n| `--help` | Show help message |\n\n## Output Format \ud83d\udcc4\n\nThe generated output file follows this structure:\n\n```\n## Florted: 2025-01-02 05:54:57\n\n## Directory Tree\n|-- project/\n| |-- src/\n| | |-- main.py\n| |-- tests/\n| |-- test_main.py\n\n## Detailed Python Outline\n### File: src/main.py\nCLASS: MyClass\n DOCSTRING:\n Class description\n FUNCTION: my_method(arg1: str, arg2: int = 0) -> bool\n DOCSTRING:\n Method description\n\n## File data\n--- File: src/main.py\n[source code here]\n```\n\n## Development \ud83d\udee0\ufe0f\n\n### Setup Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/flort.git\ncd flort\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate # Linux/Mac\nvenv\\Scripts\\activate # Windows\n\n# Install development dependencies\npip install -e \".[dev]\"\n```\n\n### Running Tests\n\n```bash\n# Run all tests\npython -m pytest\n\n# Run with coverage report\npython -m pytest --cov=flort tests/\n```\n\n## Contributing \ud83e\udd1d\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n### Code Style\n\n- Follow PEP 8 guidelines\n- Add type hints to function signatures\n- Include docstrings for classes and functions\n- Write unit tests for new features\n\n## License \ud83d\udcdd\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments \ud83d\ude4f\n\n- Thanks to all contributors who have helped shape Flort\n- Inspired by various code analysis and documentation tools in the Python ecosystem\n\n## Support \ud83d\udcac\n\nIf you encounter any problems or have suggestions, please [open an issue](https://github.com/yourusername/flort/issues).\n",
"bugtrack_url": null,
"license": null,
"summary": "A utility to flatten your source code directory into a single file for LLM usage",
"version": "0.1.9.4",
"project_urls": {
"Homepage": "https://github.com/chris17453/flort"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0d0f272101868b0212da5daae56c71b8fbc92634bcd2ce0b0c4db2780468f60a",
"md5": "643e2b39d8997465aec7fd8c17c8b55b",
"sha256": "94b0c97fba54ee6228a768cf32c1473f69874183789b2fac07d2d06c269e4695"
},
"downloads": -1,
"filename": "flort-0.1.9.4.tar.gz",
"has_sig": false,
"md5_digest": "643e2b39d8997465aec7fd8c17c8b55b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14859,
"upload_time": "2025-01-02T11:10:09",
"upload_time_iso_8601": "2025-01-02T11:10:09.310663Z",
"url": "https://files.pythonhosted.org/packages/0d/0f/272101868b0212da5daae56c71b8fbc92634bcd2ce0b0c4db2780468f60a/flort-0.1.9.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-02 11:10:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "chris17453",
"github_project": "flort",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "flort"
}