# print-project
A comprehensive Python CLI tool for analyzing and extracting the contents of source code files across a project directory structure, outputting them into a single organized document for easier review and analysis.
## ⚡ Installation
```bash
pip install print-project
```
## 🚀 Quick Start
```bash
# Analyze current directory
print-project
# Analyze specific project
print-project -f /path/to/project
# Show progress during analysis
print-project --console
# Alternative command name
analyze-project --help
```
## ✨ Features
- **Recursive Directory Scanning**: Analyzes entire project structures including subdirectories
- **File Type Filtering**: Include/exclude files by extension or specific filenames
- **Smart Binary Detection**: Automatically skips binary files while allowing trusted text extensions
- **Directory Tree Generation**: Creates visual directory structure representation
- **Configurable Output**: Customizable output formatting with summary statistics
- **Size Limits**: Configurable maximum file size processing limits
- **Flexible Configuration**: INI-based configuration with command-line overrides
## 💡 Usage Examples
```bash
# Basic usage
print-project # Analyze current directory
print-project -f /path/to/project # Analyze specific directory
print-project --console # Show console output
# File filtering
print-project -e py,js,ts # Include only specific extensions
print-project -x log,tmp,bak # Exclude specific extensions
print-project -s "tests,docs,build" # Skip directories
# Advanced options
print-project --include-files "config.py,.env" # Force include files
print-project --only-include-files "main.py,README.md" # Process only these files
print-project -o my_analysis # Custom output filename
print-project --duplicate # Timestamped output
print-project --no-tree # Skip directory tree
```
## 📋 Command Line Options
| Option | Description |
|--------|-------------|
| `-f, --folder` | Directory to process (default: current directory) |
| `-s, --skip` | Comma-separated list of directories to exclude |
| `-e, --extensions` | Comma-separated list of file extensions to include |
| `-x, --exclude-ext` | Comma-separated list of file extensions to exclude |
| `-i, --ignore-files` | Comma-separated list of specific files to exclude |
| `--include-files` | Force include specific files (overrides filters) |
| `--only-include-files` | Process ONLY these specific files |
| `--max-size` | Maximum file size in bytes to process |
| `--console` | Show console output during processing |
| `-o, --output` | Output filename (without extension) |
| `--duplicate` | Create timestamped output instead of overwriting |
| `--no-summary` | Exclude summary from output file |
| `--no-tree` | Skip directory tree generation |
| `--tree-exclude` | Override directory exclusions for tree generation |
| `-h, --help` | Show help message |
## 🔧 Configuration
The tool uses a `config.ini` file for default settings. Config file locations:
- Current working directory
- `~/.print-project/config.ini` (user config)
- `/etc/print-project/config.ini` (system config - Unix/Linux)
- `%APPDATA%/print-project/config.ini` (system config - Windows)
## 📄 Output
The tool generates a `.txt` file containing:
1. **Directory Tree**: Visual representation of the project structure
2. **File Analysis**: Content of each processed file with:
- File path and metadata
- Line numbers
- Syntax highlighting markers
3. **Summary Statistics**:
- Total files processed
- Files skipped (with reasons)
- Processing time and performance metrics
## 🎯 Use Cases
- **Code Reviews**: Generate comprehensive project snapshots
- **Documentation**: Create detailed project overviews
- **Analysis**: Understand project structure and content
- **Migration**: Prepare project content for analysis or transfer
- **AI/LLM Input**: Generate context-rich project representations
## 🔄 Updates
```bash
# Upgrade to latest version
pip install --upgrade print-project
# Check current version
print-project --help # Version shown in help text
```
## 🌐 Cross-Platform Compatibility
Works identically on:
- ✅ **Windows**
- ✅ **macOS**
- ✅ **Linux**
## 📚 Links
- **Source Code**: [GitHub Repository](https://github.com/smaxiso/print-project)
- **Issues**: [Bug Reports & Feature Requests](https://github.com/smaxiso/print-project/issues)
- **Changelog**: [Version History](https://github.com/smaxiso/print-project/blob/master/docs/CHANGELOG.md)
- **Contributing**: [Development Guide](https://github.com/smaxiso/print-project/blob/master/docs/CONTRIBUTING.md)
## 📝 License
MIT License - see the [repository](https://github.com/smaxiso/print-project) for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "print-project",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "code-analysis, directory-scanner, documentation, source-code, project-analysis",
"author": null,
"author_email": "smaxiso <smaxiso@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/9b/4e/174904f37144f5bea37a38b93481af74998c8f7026358c5ee45f2a48c158/print_project-2.0.3.tar.gz",
"platform": null,
"description": "# print-project\r\n\r\nA comprehensive Python CLI tool for analyzing and extracting the contents of source code files across a project directory structure, outputting them into a single organized document for easier review and analysis.\r\n\r\n## \u26a1 Installation\r\n\r\n```bash\r\npip install print-project\r\n```\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n```bash\r\n# Analyze current directory\r\nprint-project\r\n\r\n# Analyze specific project\r\nprint-project -f /path/to/project\r\n\r\n# Show progress during analysis\r\nprint-project --console\r\n\r\n# Alternative command name\r\nanalyze-project --help\r\n```\r\n\r\n## \u2728 Features\r\n\r\n- **Recursive Directory Scanning**: Analyzes entire project structures including subdirectories\r\n- **File Type Filtering**: Include/exclude files by extension or specific filenames\r\n- **Smart Binary Detection**: Automatically skips binary files while allowing trusted text extensions\r\n- **Directory Tree Generation**: Creates visual directory structure representation\r\n- **Configurable Output**: Customizable output formatting with summary statistics\r\n- **Size Limits**: Configurable maximum file size processing limits\r\n- **Flexible Configuration**: INI-based configuration with command-line overrides\r\n\r\n## \ud83d\udca1 Usage Examples\r\n\r\n```bash\r\n# Basic usage\r\nprint-project # Analyze current directory\r\nprint-project -f /path/to/project # Analyze specific directory\r\nprint-project --console # Show console output\r\n\r\n# File filtering\r\nprint-project -e py,js,ts # Include only specific extensions\r\nprint-project -x log,tmp,bak # Exclude specific extensions\r\nprint-project -s \"tests,docs,build\" # Skip directories\r\n\r\n# Advanced options\r\nprint-project --include-files \"config.py,.env\" # Force include files\r\nprint-project --only-include-files \"main.py,README.md\" # Process only these files\r\nprint-project -o my_analysis # Custom output filename\r\nprint-project --duplicate # Timestamped output\r\nprint-project --no-tree # Skip directory tree\r\n```\r\n\r\n## \ud83d\udccb Command Line Options\r\n\r\n| Option | Description |\r\n|--------|-------------|\r\n| `-f, --folder` | Directory to process (default: current directory) |\r\n| `-s, --skip` | Comma-separated list of directories to exclude |\r\n| `-e, --extensions` | Comma-separated list of file extensions to include |\r\n| `-x, --exclude-ext` | Comma-separated list of file extensions to exclude |\r\n| `-i, --ignore-files` | Comma-separated list of specific files to exclude |\r\n| `--include-files` | Force include specific files (overrides filters) |\r\n| `--only-include-files` | Process ONLY these specific files |\r\n| `--max-size` | Maximum file size in bytes to process |\r\n| `--console` | Show console output during processing |\r\n| `-o, --output` | Output filename (without extension) |\r\n| `--duplicate` | Create timestamped output instead of overwriting |\r\n| `--no-summary` | Exclude summary from output file |\r\n| `--no-tree` | Skip directory tree generation |\r\n| `--tree-exclude` | Override directory exclusions for tree generation |\r\n| `-h, --help` | Show help message |\r\n\r\n## \ud83d\udd27 Configuration\r\n\r\nThe tool uses a `config.ini` file for default settings. Config file locations:\r\n\r\n- Current working directory\r\n- `~/.print-project/config.ini` (user config)\r\n- `/etc/print-project/config.ini` (system config - Unix/Linux)\r\n- `%APPDATA%/print-project/config.ini` (system config - Windows)\r\n\r\n## \ud83d\udcc4 Output\r\n\r\nThe tool generates a `.txt` file containing:\r\n\r\n1. **Directory Tree**: Visual representation of the project structure\r\n2. **File Analysis**: Content of each processed file with:\r\n - File path and metadata\r\n - Line numbers\r\n - Syntax highlighting markers\r\n3. **Summary Statistics**:\r\n - Total files processed\r\n - Files skipped (with reasons)\r\n - Processing time and performance metrics\r\n\r\n## \ud83c\udfaf Use Cases\r\n\r\n- **Code Reviews**: Generate comprehensive project snapshots\r\n- **Documentation**: Create detailed project overviews\r\n- **Analysis**: Understand project structure and content\r\n- **Migration**: Prepare project content for analysis or transfer\r\n- **AI/LLM Input**: Generate context-rich project representations\r\n\r\n## \ud83d\udd04 Updates\r\n\r\n```bash\r\n# Upgrade to latest version\r\npip install --upgrade print-project\r\n\r\n# Check current version\r\nprint-project --help # Version shown in help text\r\n```\r\n\r\n## \ud83c\udf10 Cross-Platform Compatibility\r\n\r\nWorks identically on:\r\n- \u2705 **Windows**\r\n- \u2705 **macOS** \r\n- \u2705 **Linux**\r\n\r\n## \ud83d\udcda Links\r\n\r\n- **Source Code**: [GitHub Repository](https://github.com/smaxiso/print-project)\r\n- **Issues**: [Bug Reports & Feature Requests](https://github.com/smaxiso/print-project/issues)\r\n- **Changelog**: [Version History](https://github.com/smaxiso/print-project/blob/master/docs/CHANGELOG.md)\r\n- **Contributing**: [Development Guide](https://github.com/smaxiso/print-project/blob/master/docs/CONTRIBUTING.md)\r\n\r\n## \ud83d\udcdd License\r\n\r\nMIT License - see the [repository](https://github.com/smaxiso/print-project) for details.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Directory Content Analysis Tool - Extract and analyze source code files across project structures",
"version": "2.0.3",
"project_urls": {
"Bug Reports": "https://github.com/smaxiso/print-project/issues",
"Changelog": "https://github.com/smaxiso/print-project/blob/master/docs/CHANGELOG.md",
"Documentation": "https://github.com/smaxiso/print-project/blob/master/README.md",
"Homepage": "https://github.com/smaxiso/print-project",
"Issues": "https://github.com/smaxiso/print-project/issues",
"Repository": "https://github.com/smaxiso/print-project",
"Source Code": "https://github.com/smaxiso/print-project"
},
"split_keywords": [
"code-analysis",
" directory-scanner",
" documentation",
" source-code",
" project-analysis"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "79f391b1b0ca9fdac0ba88995428ba3385572f59859f05aed5568d7ce5764987",
"md5": "528f19390796298a99c29f297069db84",
"sha256": "480fb86dc429205416f327dbd24fa819bbc19b0c38f14b1b9ed44736a02a76e2"
},
"downloads": -1,
"filename": "print_project-2.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "528f19390796298a99c29f297069db84",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 16129,
"upload_time": "2025-10-11T16:59:49",
"upload_time_iso_8601": "2025-10-11T16:59:49.088927Z",
"url": "https://files.pythonhosted.org/packages/79/f3/91b1b0ca9fdac0ba88995428ba3385572f59859f05aed5568d7ce5764987/print_project-2.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9b4e174904f37144f5bea37a38b93481af74998c8f7026358c5ee45f2a48c158",
"md5": "531d453d75aaef736d36a9e33f4ff323",
"sha256": "5d6d18a6dc41bd5b4108f94f4474139c8b0cc1c0aed19198600639be428e70e8"
},
"downloads": -1,
"filename": "print_project-2.0.3.tar.gz",
"has_sig": false,
"md5_digest": "531d453d75aaef736d36a9e33f4ff323",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 37407,
"upload_time": "2025-10-11T16:59:50",
"upload_time_iso_8601": "2025-10-11T16:59:50.654087Z",
"url": "https://files.pythonhosted.org/packages/9b/4e/174904f37144f5bea37a38b93481af74998c8f7026358c5ee45f2a48c158/print_project-2.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-11 16:59:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "smaxiso",
"github_project": "print-project",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "print-project"
}