Metadata-Version: 2.4
Name: tabfix-tool
Version: 1.2.4
Summary: Advanced tool for fixing tab/space indentation issues in code files
Home-page: https://github.com/hairpin01/tabfix
Author: hairpin01
Author-email: hairpin01 <alichka240784@gmail.com>
License: GNU General Public License v3.0
Project-URL: Homepage, https://github.com/hairpin01/tabfix
Project-URL: Documentation, https://github.com/hairpin01/tabfix#readme
Project-URL: Repository, https://github.com/hairpin01/tabfix
Project-URL: Issues, https://github.com/hairpin01/tabfix/issues
Project-URL: Changelog, https://github.com/hairpin01/tabfix/releases
Keywords: indentation,tabs,spaces,code,formatter,git
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: Text Processing :: Filters
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tqdm>=4.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: twine>=4.0.0; extra == "dev"
Requires-Dist: build>=0.10.0; extra == "dev"
Provides-Extra: encoding
Requires-Dist: charset-normalizer>=3.0.0; extra == "encoding"
Provides-Extra: full
Requires-Dist: charset-normalizer>=3.0.0; extra == "full"
Requires-Dist: binaryornot>=0.4.4; extra == "full"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

[![Codacy Badge](https://app.codacy.com/project/badge/Grade/7fceb52b899d44b3bb151b568dc99d38)](https://app.codacy.com/gh/hairpin01/tabfix/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)

[![GitHub repo size](https://img.shields.io/github/repo-size/hairpin01/tabfix)](https://github.com/hairpin01/tabfix)
[![GitHub last commit](https://img.shields.io/github/last-commit/hairpin01/tabfix)](https://github.com/hairpin01/tabfix/commits/main)
[![GitHub issues](https://img.shields.io/github/issues-raw/hairpin01/tabfix)](https://github.com/hairpin01/tabfix/issues)
[![GitHub forks](https://img.shields.io/github/forks/hairpin01/tabfix?style=flat)](https://github.com/hairpin01/tabfix/network/members)
[![GitHub stars](https://img.shields.io/github/stars/hairpin01/tabfix)](https://github.com/hairpin01/tabfix/stargazers)
[![GitHub license](https://img.shields.io/github/license/hairpin01/tabfix)](https://github.com/hairpin01/tabfix/blob/main/LICENSE)

# TabFix Tool
Advanced tool for fixing `tab/space` indentation issues in `code` files.

## Features
> - Fix mixed tabs and spaces indentation
> - Remove trailing whitespace
> - Normalize line endings
> - Handle `UTF-8` BOM markers
> - Format `JSON` files
> - `Git` integration
> - Progress bars with tqdm
> - Colorful output

## Installation
```shell
# Install from PyPI
pip install tabfix-tool
```
```shell
# Or directly from GitHub
pip install git+https://github.com/hairpin01/tabfix.git
```
or via installer
```shell
curl https://raw.githubusercontent.com/hairpin01/tabfix/refs/heads/main/src/tabfix/installer.py | python3
```
> [!TIP]
> to install the unifmt package, see [optional](https://github.com/hairpin01/tabfix#install-optional-unifmt-or-devencodingfull)


## From source
`git clone https://github.com/hairpin01/tabfix.git
&& cd tabfix
&& pip install -e .
`
## Usage
```
# Basic usage
tabfix file.py
```
```
# Recursive processing
tabfix --recursive src/
```
```
# Fix multiple issues
tabfix --all --progress .
```
```
# Check without modifying
tabfix --check-mixed --recursive .
```

## install optional unifmt or dev/encoding/full
```
pip install tabfix-tool[unifmt] # or {optional}
```
