richpyls


Namerichpyls JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummaryA modern, type-annotated Python implementation of the Unix ls command with beautiful Rich formatting and color-coded file types
upload_time2025-07-12 09:55:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.13
licenseNone
keywords cli command-line directory file-listing ls tree tree-view unix
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `richpyls` - A Python Implementation of the Unix `ls` Command

[![CI/CD Pipeline](https://img.shields.io/github/actions/workflow/status/lpozo/richpyls/ci.yml?branch=main&label=CI%2FCD&logo=github)](https://github.com/lpozo/richpyls/actions)
[![Python Version](https://img.shields.io/badge/python-3.13+-blue.svg)](https://python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

[![Code Style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Type Checked: mypy](https://img.shields.io/badge/type%20checked-mypy-blue.svg)](https://mypy.readthedocs.io/)
[![Security: Bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
[![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)

<!-- Commented out until package is published to PyPI
[![Test Coverage](https://img.shields.io/codecov/c/github/lpozo/richpyls?logo=codecov)](https://codecov.io/gh/lpozo/richpyls)
[![PyPI Version](https://img.shields.io/pypi/v/richpyls?logo=pypi)](https://pypi.org/project/richpyls/)
[![PyPI Downloads](https://img.shields.io/pypi/dm/richpyls?logo=pypi)](https://pypi.org/project/richpyls/)
-->

A modern, type-annotated Python implementation of the Unix `ls` command with beautiful Rich formatting,
color-coded file types, and support for long format listings and hidden files.

## Quality Metrics

![Code Size](https://img.shields.io/github/languages/code-size/lpozo/richpyls?style=flat-square)
![Repo Size](https://img.shields.io/github/repo-size/lpozo/richpyls?style=flat-square)
![Last Commit](https://img.shields.io/github/last-commit/lpozo/richpyls?style=flat-square)

| Metric | Status |
|--------|--------|
| Test Coverage | ![Coverage Status](https://img.shields.io/badge/coverage-excellent-brightgreen.svg) |
| Type Coverage | [![mypy](https://img.shields.io/badge/mypy-100%25-brightgreen.svg)](https://mypy.readthedocs.io/) |
| Code Quality | [![Ruff](https://img.shields.io/badge/ruff-passing-brightgreen.svg)](https://github.com/astral-sh/ruff) |
| Security Scan | [![Bandit](https://img.shields.io/badge/bandit-passing-brightgreen.svg)](https://github.com/PyCQA/bandit) |
| Documentation | [![Docs](https://img.shields.io/badge/docs-100%25-brightgreen.svg)](README.md) |

## Features

- 🎨 **Rich Visual Output**: Beautiful color-coded file types with emoji icons
- 📁 **Directory Listing**: List files and directories in the current or specified path
- 📄 **Long Format**: Display detailed file information in a professional table format
- 🌳 **Tree View**: Display directories in a tree-like hierarchical format with the `-t` option
- 🔍 **Hidden Files**: Show hidden files (starting with `.`) with the `-a` option using 🫣 emoji
- 📊 **Size Sorting**: Show top N largest files/directories sorted by size with the `-s` option
- 🏃 **Fast Performance**: Built with modern Python using pathlib for efficient path operations
- 🎯 **Type Safety**: Fully type-annotated codebase with mypy validation
- ✅ **Well Tested**: Comprehensive test suite with excellent coverage
- 🐍 **Modern Python**: Uses Python 3.13+ features and best practices

## File Type Icons

The Rich output includes beautiful emoji icons for different file types:

- 🐍 Python files (`.py`, `.pyx`, `.pyi`)
- ⚙️ Configuration files (`.toml`, `.json`, `.yaml`, `.yml`, `.ini`, `.cfg`, `.conf`)
- 📄 Documentation files (`.md`, `.rst`, `.txt`, `.doc`, `.docx`, `.pdf`)
- 📦 Archive files (`.zip`, `.tar`, `.gz`, `.bz2`, `.xz`, `.7z`, `.rar`)
- 🖼️ Image files (`.png`, `.jpg`, `.jpeg`, `.gif`, `.bmp`, `.svg`, `.ico`)
- 📁 Directories
- ⚡ Executable files
- 🔗 Symbolic links
- 🫣 Hidden files (starting with `.`)

## Installation

### From PyPI (Recommended)

```sh
pip install richpyls
```

Once installed, you can use the `richpyls` command anywhere in your terminal.

### From Source

#### Using `uv` (recommended)

```sh
# Clone the repository
git clone https://github.com/lpozo/richpyls.git
cd richpyls

# Install with uv
uv sync

# Run the application
uv run richpyls
```

#### Using `pip`

```sh
# Clone the repository
git clone https://github.com/lpozo/richpyls.git
cd richpyls

# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate  # On macOS/Linux
# or
.venv\Scripts\activate     # On Windows

# Install in editable mode
pip install -e .

# Run the application
richpyls
```

## Usage

```sh
# List files in current directory
richpyls

# List files in specific directory
richpyls /path/to/directory

# List multiple files/directories
richpyls file1.txt directory1 file2.txt
```

### Command Options

| Option | Description |
|--------|-------------|
| `-l` | Use long listing format (shows permissions, ownership, size, date in Rich table) |
| `-a` | Show all files, including hidden files (starting with `.`) with 🫣 emoji |
| `-t` | Display directories in a tree-like format with Rich styling |
| `-s N` | Show top N files/directories sorted by size (descending) in a Rich table |
| `-la` | Combine long format with showing hidden files |
| `-tl` | Combine tree format with long listing |
| `-ta` | Combine tree format with showing hidden files |
| `-sa` | Combine size sorting with showing hidden files |

### Examples

```sh
# Basic listing with Rich icons and colors
richpyls
📄 README.md
⚙️ pyproject.toml
📁 src
📁 tests
📄 uv.lock

# Show hidden files with special emoji
richpyls -a
🫣 .git
🫣 .gitignore
🫣 .python-version
📁 .venv
📄 README.md
⚙️ pyproject.toml
📁 src
📁 tests
📄 uv.lock

# Tree format (shows directory structure with Rich styling)
richpyls -t
├── 📄 README.md
├── ⚙️ pyproject.toml
├── 📁 src
│   └── 📁 richpyls
│       ├── 🐍 __init__.py
│       └── 🐍 __main__.py
├── 📁 tests
│   ├── 🐍 __init__.py
│   └── 🐍 test_richpyls.py
└── 📄 uv.lock

# Tree format with long listing and Rich table
richpyls -tl src
└── drwxr-xr-x  5 user staff     160B Jul 11 18:34 📁 richpyls
    ├── drwxr-xr-x  4 user staff     128B Jul 11 18:34 📁 __pycache__
    │   ├── -rw-r--r--  1 user staff     622B Jul 11 18:34 📄 __init__.cpython-313.pyc
    │   └── -rw-r--r--  1 user staff   14.8KB Jul 11 18:34 📄 __main__.cpython-313.pyc
    ├── -rw-r--r--  1 user staff     452B Jul 11 18:34 🐍 __init__.py
    └── -rw-r--r--  1 user staff   12.1KB Jul 11 18:34 🐍 __main__.py
```

## Technologies

### Dependencies

- **[Python 3.13+](https://python.org)**: Modern Python with type hints and advanced features
- **[click](https://click.palletsprojects.com/)**: Command-line interface creation toolkit
- **[rich](https://rich.readthedocs.io/)**: Rich text and beautiful formatting for the terminal

### Development Dependencies

- **[pytest](https://pytest.org/)**: Testing framework for comprehensive test coverage
- **[mypy](https://mypy.readthedocs.io/)**: Static type checker for Python
- **[ruff](https://github.com/astral-sh/ruff)**: Fast Python linter and formatter
- **[bandit](https://github.com/PyCQA/bandit)**: Security vulnerability scanner
- **[pre-commit](https://pre-commit.com/)**: Git hooks for automated quality checks
- **[uv](https://docs.astral.sh/uv/)**: Fast Python package manager and resolver

### Build & Deployment

![Build Status](https://img.shields.io/github/actions/workflow/status/lpozo/richpyls/ci.yml?branch=main&label=Build&logo=github)
![Tests](https://img.shields.io/github/actions/workflow/status/lpozo/richpyls/ci.yml?branch=main&label=Tests&logo=pytest)

<!-- Commented out until package is published to PyPI
![PyPI Status](https://img.shields.io/pypi/status/richpyls?logo=pypi)
![Wheel](https://img.shields.io/pypi/wheel/richpyls?logo=pypi)
-->

## Development & Contributing

Contributions are welcome! Here's how you can set up the development environment and contribute:

### Setup

1. Fork the repository or clone directly:

    ```sh
    git clone https://github.com/lpozo/richpyls.git
    cd richpyls
    ```

2. Reproduce the development environment:

    ```sh
    uv sync --dev
    ```

3. Set up pre-commit hooks for code quality:

    ```sh
    uv run pre-commit install
    ```

### Running Tests

```sh
# Run all tests
uv run python -m pytest

# Run tests with verbose output
uv run python -m pytest -v

# Run tests with coverage
uv run python -m pytest --cov=richpyls
```

### Type Checking

```sh
# Check types with mypy
uv run mypy src/richpyls/

# Check all Python files
uv run mypy .
```

### Code Quality and Formatting

The project uses automated code quality tools:

```sh
# Format code with ruff
uv run ruff format .

# Lint code with ruff
uv run ruff check . --fix

# Security scan with bandit
uv run bandit -r src/
```

**Pre-commit hooks** automatically run quality checks on every commit.

### Contributing Workflow

1. **Create a feature branch**: `git checkout -b feature/amazing-feature`
2. **Make your changes**: Implement your feature or bug fix
3. **Add tests**: Ensure your changes are well-tested
4. **Run quality checks**:

   ```sh
   uv run python -m pytest          # Run tests
   uv run mypy src/richpyls/        # Type check
   uv run ruff format .             # Format code
   uv run ruff check .              # Lint code
   ```

5. **Commit your changes**: `git commit -m 'Add amazing feature'`
6. **Push to the branch**: `git push origin feature/amazing-feature`
7. **Open a Pull Request**

### Development Guidelines

- Follow PEP 8 style guidelines
- Add type hints to all new code
- Write tests for new functionality
- Update documentation as needed
- Ensure all tests pass before submitting

### Project Standards

The project maintains high code quality through:

- **Type annotations**: All functions and variables are type-annotated
- **Comprehensive tests**: Excellent test coverage with edge cases
- **Clean architecture**: Well-organized code with clear separation of concerns
- **Modern Python**: Uses latest Python features and best practices
- **Rich UI**: Beautiful terminal output with colors, icons, and professional formatting

### Build & Publishing

For information about building and publishing the package, see [BUILD_PUBLISHING.md](BUILD_PUBLISHING.md).

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Author

### Leodanis Pozo Ramos

- GitHub: [@lpozo](https://github.com/lpozo)

---

⭐ If you found this project helpful, please give it a star!

## Acknowledgments

- Inspired by the Unix `ls` command
- Built with modern Python best practices
- Thanks to the Python community for excellent tools and libraries
- Special thanks to the [Rich](https://rich.readthedocs.io/) library for beautiful terminal output
- Development assisted by [GitHub Copilot Chat](https://github.com/features/copilot) for enhanced productivity

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "richpyls",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": "Leodanis Pozo Ramos <lpozor78@gmail.com>",
    "keywords": "cli, command-line, directory, file-listing, ls, tree, tree-view, unix",
    "author": null,
    "author_email": "Leodanis Pozo Ramos <lpozor78@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/3f/d3/bda5832a54dd2ae4b10665d7e3459c1d73da6c2a10e3b12fe7c64d271332/richpyls-0.1.3.tar.gz",
    "platform": null,
    "description": "# `richpyls` - A Python Implementation of the Unix `ls` Command\n\n[![CI/CD Pipeline](https://img.shields.io/github/actions/workflow/status/lpozo/richpyls/ci.yml?branch=main&label=CI%2FCD&logo=github)](https://github.com/lpozo/richpyls/actions)\n[![Python Version](https://img.shields.io/badge/python-3.13+-blue.svg)](https://python.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[![Code Style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Type Checked: mypy](https://img.shields.io/badge/type%20checked-mypy-blue.svg)](https://mypy.readthedocs.io/)\n[![Security: Bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)\n[![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n\n<!-- Commented out until package is published to PyPI\n[![Test Coverage](https://img.shields.io/codecov/c/github/lpozo/richpyls?logo=codecov)](https://codecov.io/gh/lpozo/richpyls)\n[![PyPI Version](https://img.shields.io/pypi/v/richpyls?logo=pypi)](https://pypi.org/project/richpyls/)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/richpyls?logo=pypi)](https://pypi.org/project/richpyls/)\n-->\n\nA modern, type-annotated Python implementation of the Unix `ls` command with beautiful Rich formatting,\ncolor-coded file types, and support for long format listings and hidden files.\n\n## Quality Metrics\n\n![Code Size](https://img.shields.io/github/languages/code-size/lpozo/richpyls?style=flat-square)\n![Repo Size](https://img.shields.io/github/repo-size/lpozo/richpyls?style=flat-square)\n![Last Commit](https://img.shields.io/github/last-commit/lpozo/richpyls?style=flat-square)\n\n| Metric | Status |\n|--------|--------|\n| Test Coverage | ![Coverage Status](https://img.shields.io/badge/coverage-excellent-brightgreen.svg) |\n| Type Coverage | [![mypy](https://img.shields.io/badge/mypy-100%25-brightgreen.svg)](https://mypy.readthedocs.io/) |\n| Code Quality | [![Ruff](https://img.shields.io/badge/ruff-passing-brightgreen.svg)](https://github.com/astral-sh/ruff) |\n| Security Scan | [![Bandit](https://img.shields.io/badge/bandit-passing-brightgreen.svg)](https://github.com/PyCQA/bandit) |\n| Documentation | [![Docs](https://img.shields.io/badge/docs-100%25-brightgreen.svg)](README.md) |\n\n## Features\n\n- \ud83c\udfa8 **Rich Visual Output**: Beautiful color-coded file types with emoji icons\n- \ud83d\udcc1 **Directory Listing**: List files and directories in the current or specified path\n- \ud83d\udcc4 **Long Format**: Display detailed file information in a professional table format\n- \ud83c\udf33 **Tree View**: Display directories in a tree-like hierarchical format with the `-t` option\n- \ud83d\udd0d **Hidden Files**: Show hidden files (starting with `.`) with the `-a` option using \ud83e\udee3 emoji\n- \ud83d\udcca **Size Sorting**: Show top N largest files/directories sorted by size with the `-s` option\n- \ud83c\udfc3 **Fast Performance**: Built with modern Python using pathlib for efficient path operations\n- \ud83c\udfaf **Type Safety**: Fully type-annotated codebase with mypy validation\n- \u2705 **Well Tested**: Comprehensive test suite with excellent coverage\n- \ud83d\udc0d **Modern Python**: Uses Python 3.13+ features and best practices\n\n## File Type Icons\n\nThe Rich output includes beautiful emoji icons for different file types:\n\n- \ud83d\udc0d Python files (`.py`, `.pyx`, `.pyi`)\n- \u2699\ufe0f Configuration files (`.toml`, `.json`, `.yaml`, `.yml`, `.ini`, `.cfg`, `.conf`)\n- \ud83d\udcc4 Documentation files (`.md`, `.rst`, `.txt`, `.doc`, `.docx`, `.pdf`)\n- \ud83d\udce6 Archive files (`.zip`, `.tar`, `.gz`, `.bz2`, `.xz`, `.7z`, `.rar`)\n- \ud83d\uddbc\ufe0f Image files (`.png`, `.jpg`, `.jpeg`, `.gif`, `.bmp`, `.svg`, `.ico`)\n- \ud83d\udcc1 Directories\n- \u26a1 Executable files\n- \ud83d\udd17 Symbolic links\n- \ud83e\udee3 Hidden files (starting with `.`)\n\n## Installation\n\n### From PyPI (Recommended)\n\n```sh\npip install richpyls\n```\n\nOnce installed, you can use the `richpyls` command anywhere in your terminal.\n\n### From Source\n\n#### Using `uv` (recommended)\n\n```sh\n# Clone the repository\ngit clone https://github.com/lpozo/richpyls.git\ncd richpyls\n\n# Install with uv\nuv sync\n\n# Run the application\nuv run richpyls\n```\n\n#### Using `pip`\n\n```sh\n# Clone the repository\ngit clone https://github.com/lpozo/richpyls.git\ncd richpyls\n\n# Create and activate a virtual environment\npython -m venv .venv\nsource .venv/bin/activate  # On macOS/Linux\n# or\n.venv\\Scripts\\activate     # On Windows\n\n# Install in editable mode\npip install -e .\n\n# Run the application\nrichpyls\n```\n\n## Usage\n\n```sh\n# List files in current directory\nrichpyls\n\n# List files in specific directory\nrichpyls /path/to/directory\n\n# List multiple files/directories\nrichpyls file1.txt directory1 file2.txt\n```\n\n### Command Options\n\n| Option | Description |\n|--------|-------------|\n| `-l` | Use long listing format (shows permissions, ownership, size, date in Rich table) |\n| `-a` | Show all files, including hidden files (starting with `.`) with \ud83e\udee3 emoji |\n| `-t` | Display directories in a tree-like format with Rich styling |\n| `-s N` | Show top N files/directories sorted by size (descending) in a Rich table |\n| `-la` | Combine long format with showing hidden files |\n| `-tl` | Combine tree format with long listing |\n| `-ta` | Combine tree format with showing hidden files |\n| `-sa` | Combine size sorting with showing hidden files |\n\n### Examples\n\n```sh\n# Basic listing with Rich icons and colors\nrichpyls\n\ud83d\udcc4 README.md\n\u2699\ufe0f pyproject.toml\n\ud83d\udcc1 src\n\ud83d\udcc1 tests\n\ud83d\udcc4 uv.lock\n\n# Show hidden files with special emoji\nrichpyls -a\n\ud83e\udee3 .git\n\ud83e\udee3 .gitignore\n\ud83e\udee3 .python-version\n\ud83d\udcc1 .venv\n\ud83d\udcc4 README.md\n\u2699\ufe0f pyproject.toml\n\ud83d\udcc1 src\n\ud83d\udcc1 tests\n\ud83d\udcc4 uv.lock\n\n# Tree format (shows directory structure with Rich styling)\nrichpyls -t\n\u251c\u2500\u2500 \ud83d\udcc4 README.md\n\u251c\u2500\u2500 \u2699\ufe0f pyproject.toml\n\u251c\u2500\u2500 \ud83d\udcc1 src\n\u2502   \u2514\u2500\u2500 \ud83d\udcc1 richpyls\n\u2502       \u251c\u2500\u2500 \ud83d\udc0d __init__.py\n\u2502       \u2514\u2500\u2500 \ud83d\udc0d __main__.py\n\u251c\u2500\u2500 \ud83d\udcc1 tests\n\u2502   \u251c\u2500\u2500 \ud83d\udc0d __init__.py\n\u2502   \u2514\u2500\u2500 \ud83d\udc0d test_richpyls.py\n\u2514\u2500\u2500 \ud83d\udcc4 uv.lock\n\n# Tree format with long listing and Rich table\nrichpyls -tl src\n\u2514\u2500\u2500 drwxr-xr-x  5 user staff     160B Jul 11 18:34 \ud83d\udcc1 richpyls\n    \u251c\u2500\u2500 drwxr-xr-x  4 user staff     128B Jul 11 18:34 \ud83d\udcc1 __pycache__\n    \u2502   \u251c\u2500\u2500 -rw-r--r--  1 user staff     622B Jul 11 18:34 \ud83d\udcc4 __init__.cpython-313.pyc\n    \u2502   \u2514\u2500\u2500 -rw-r--r--  1 user staff   14.8KB Jul 11 18:34 \ud83d\udcc4 __main__.cpython-313.pyc\n    \u251c\u2500\u2500 -rw-r--r--  1 user staff     452B Jul 11 18:34 \ud83d\udc0d __init__.py\n    \u2514\u2500\u2500 -rw-r--r--  1 user staff   12.1KB Jul 11 18:34 \ud83d\udc0d __main__.py\n```\n\n## Technologies\n\n### Dependencies\n\n- **[Python 3.13+](https://python.org)**: Modern Python with type hints and advanced features\n- **[click](https://click.palletsprojects.com/)**: Command-line interface creation toolkit\n- **[rich](https://rich.readthedocs.io/)**: Rich text and beautiful formatting for the terminal\n\n### Development Dependencies\n\n- **[pytest](https://pytest.org/)**: Testing framework for comprehensive test coverage\n- **[mypy](https://mypy.readthedocs.io/)**: Static type checker for Python\n- **[ruff](https://github.com/astral-sh/ruff)**: Fast Python linter and formatter\n- **[bandit](https://github.com/PyCQA/bandit)**: Security vulnerability scanner\n- **[pre-commit](https://pre-commit.com/)**: Git hooks for automated quality checks\n- **[uv](https://docs.astral.sh/uv/)**: Fast Python package manager and resolver\n\n### Build & Deployment\n\n![Build Status](https://img.shields.io/github/actions/workflow/status/lpozo/richpyls/ci.yml?branch=main&label=Build&logo=github)\n![Tests](https://img.shields.io/github/actions/workflow/status/lpozo/richpyls/ci.yml?branch=main&label=Tests&logo=pytest)\n\n<!-- Commented out until package is published to PyPI\n![PyPI Status](https://img.shields.io/pypi/status/richpyls?logo=pypi)\n![Wheel](https://img.shields.io/pypi/wheel/richpyls?logo=pypi)\n-->\n\n## Development & Contributing\n\nContributions are welcome! Here's how you can set up the development environment and contribute:\n\n### Setup\n\n1. Fork the repository or clone directly:\n\n    ```sh\n    git clone https://github.com/lpozo/richpyls.git\n    cd richpyls\n    ```\n\n2. Reproduce the development environment:\n\n    ```sh\n    uv sync --dev\n    ```\n\n3. Set up pre-commit hooks for code quality:\n\n    ```sh\n    uv run pre-commit install\n    ```\n\n### Running Tests\n\n```sh\n# Run all tests\nuv run python -m pytest\n\n# Run tests with verbose output\nuv run python -m pytest -v\n\n# Run tests with coverage\nuv run python -m pytest --cov=richpyls\n```\n\n### Type Checking\n\n```sh\n# Check types with mypy\nuv run mypy src/richpyls/\n\n# Check all Python files\nuv run mypy .\n```\n\n### Code Quality and Formatting\n\nThe project uses automated code quality tools:\n\n```sh\n# Format code with ruff\nuv run ruff format .\n\n# Lint code with ruff\nuv run ruff check . --fix\n\n# Security scan with bandit\nuv run bandit -r src/\n```\n\n**Pre-commit hooks** automatically run quality checks on every commit.\n\n### Contributing Workflow\n\n1. **Create a feature branch**: `git checkout -b feature/amazing-feature`\n2. **Make your changes**: Implement your feature or bug fix\n3. **Add tests**: Ensure your changes are well-tested\n4. **Run quality checks**:\n\n   ```sh\n   uv run python -m pytest          # Run tests\n   uv run mypy src/richpyls/        # Type check\n   uv run ruff format .             # Format code\n   uv run ruff check .              # Lint code\n   ```\n\n5. **Commit your changes**: `git commit -m 'Add amazing feature'`\n6. **Push to the branch**: `git push origin feature/amazing-feature`\n7. **Open a Pull Request**\n\n### Development Guidelines\n\n- Follow PEP 8 style guidelines\n- Add type hints to all new code\n- Write tests for new functionality\n- Update documentation as needed\n- Ensure all tests pass before submitting\n\n### Project Standards\n\nThe project maintains high code quality through:\n\n- **Type annotations**: All functions and variables are type-annotated\n- **Comprehensive tests**: Excellent test coverage with edge cases\n- **Clean architecture**: Well-organized code with clear separation of concerns\n- **Modern Python**: Uses latest Python features and best practices\n- **Rich UI**: Beautiful terminal output with colors, icons, and professional formatting\n\n### Build & Publishing\n\nFor information about building and publishing the package, see [BUILD_PUBLISHING.md](BUILD_PUBLISHING.md).\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Author\n\n### Leodanis Pozo Ramos\n\n- GitHub: [@lpozo](https://github.com/lpozo)\n\n---\n\n\u2b50 If you found this project helpful, please give it a star!\n\n## Acknowledgments\n\n- Inspired by the Unix `ls` command\n- Built with modern Python best practices\n- Thanks to the Python community for excellent tools and libraries\n- Special thanks to the [Rich](https://rich.readthedocs.io/) library for beautiful terminal output\n- Development assisted by [GitHub Copilot Chat](https://github.com/features/copilot) for enhanced productivity\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A modern, type-annotated Python implementation of the Unix ls command with beautiful Rich formatting and color-coded file types",
    "version": "0.1.3",
    "project_urls": {
        "Bug Reports": "https://github.com/lpozo/richpyls/issues",
        "Documentation": "https://github.com/lpozo/richpyls#readme",
        "Homepage": "https://github.com/lpozo/richpyls",
        "Source": "https://github.com/lpozo/richpyls"
    },
    "split_keywords": [
        "cli",
        " command-line",
        " directory",
        " file-listing",
        " ls",
        " tree",
        " tree-view",
        " unix"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a009192be6248bb27d29212f6447b504587b2b6a8fe632a8e450eb598e21127",
                "md5": "e013d6ee8b66b97f597f5abf65982ed1",
                "sha256": "84fdef27bd27c1ba0875037698f3ba230cdc74c7481927ca52bd7d8268c4a23e"
            },
            "downloads": -1,
            "filename": "richpyls-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e013d6ee8b66b97f597f5abf65982ed1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 10594,
            "upload_time": "2025-07-12T09:55:30",
            "upload_time_iso_8601": "2025-07-12T09:55:30.755814Z",
            "url": "https://files.pythonhosted.org/packages/4a/00/9192be6248bb27d29212f6447b504587b2b6a8fe632a8e450eb598e21127/richpyls-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3fd3bda5832a54dd2ae4b10665d7e3459c1d73da6c2a10e3b12fe7c64d271332",
                "md5": "e5d67a3a6df21a1880dfddb6690d0c08",
                "sha256": "27a68b126ae4007cb757d43b4573331c566a3a073bcf40302428f3ba5475cc13"
            },
            "downloads": -1,
            "filename": "richpyls-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "e5d67a3a6df21a1880dfddb6690d0c08",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 17772,
            "upload_time": "2025-07-12T09:55:32",
            "upload_time_iso_8601": "2025-07-12T09:55:32.112088Z",
            "url": "https://files.pythonhosted.org/packages/3f/d3/bda5832a54dd2ae4b10665d7e3459c1d73da6c2a10e3b12fe7c64d271332/richpyls-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-12 09:55:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lpozo",
    "github_project": "richpyls",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "richpyls"
}
        
Elapsed time: 0.51270s