Metadata-Version: 2.4
Name: vi-fix
Version: 1.0.0
Summary: Thư viện siêu nhẹ hỗ trợ xử lý Tiếng Việt: chuẩn hóa dấu, bỏ dấu, chuyển số thành chữ, phân tích CCCD và hơn thế nữa!
Author-email: MinhSangGD <minhsanggd@mscrew.io.vn>
Project-URL: Homepage, https://lib.mscrew.io.vn/vi-fix/py
Project-URL: Bug Tracker, https://github.com/MinhSangGDVN/vi-fix/issues
Keywords: vietnamese,normalization,vi-fix,cccd,telco,remove-diacritics
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# vi-fix 🛠️

**vi-fix** là một thư viện Python mã nguồn mở siêu nhẹ (Zero Dependency), được tối ưu hóa để xử lý các bài toán đặc thù của Tiếng Việt như chuẩn hóa dấu, bỏ dấu, xử lý CCCD, nhà mạng và dữ liệu hành chính mới nhất.

🔗 **Tài liệu hướng dẫn chi tiết:** [https://lib.mscrew.io.vn/vi-fix/py](https://lib.mscrew.io.vn/vi-fix/py)

---

## ✨ Tính năng nổi bật

- **Siêu nhẹ:** Dung lượng chỉ khoảng 5KB, không phụ thuộc vào thư viện bên thứ ba.
- **Cập nhật 2026:** Danh sách 34 tỉnh thành mới nhất theo phân cấp hành chính Việt Nam.
- **Thông minh:** Phân tích sâu dữ liệu từ số CCCD (Giới tính, Năm sinh, Tỉnh thành).
- **Tiện lợi:** Tên hàm ngắn gọn (`fix`, `nosign`, `clean`...), dễ nhớ, dễ gõ.

---

## 🚀 Cài đặt

Cài đặt thông qua pip:

```bash
pip install vi-fix

```
## 📖 Hướng dẫn sử dụng
Nên sử dụng biệt danh vf để mã nguồn của bạn gọn gàng hơn:
```python
import vi_fix as vf

# 1. Chuẩn hóa dấu (hoà -> hòa)
print(vf.fix("Khánh Hoà bình yên")) # Output: Khánh Hòa bình yên

# 2. Bỏ dấu Tiếng Việt
print(vf.nosign("Tiếng Việt có dấu")) # Output: Tieng Viet co dau

# 3. Phân tích CCCD (12 số)
info = vf.parse_cccd("037098000123")
print(info) 
# Output: {'gender': 'Nam', 'birth_year': 1998, 'province_code': '037', 'valid': True}

# 4. Kiểm tra nhà mạng
print(vf.get_telco("0961234567")) # Output: Viettel

# 5. Định dạng tiền tệ
print(vf.money(1500000)) # Output: 1.500.000đ

# 6. Đọc số thành chữ
print(vf.num2str("102", lang="vi")) # Output: một không hai

# 7. Danh sách 34 tỉnh thành (Update 2026)
provinces = vf.get_provinces()
print(len(provinces)) # Output: 34

```
## 🛠️ Danh sách 15 hàm tiện ích
| Hàm | Mô tả |
|---|---|
| fix(text) | Sửa vị trí đặt dấu thanh chuẩn (hoà -> hòa). |
| nosign(text) | Chuyển văn bản có dấu thành không dấu. |
| clean(text) | Loại bỏ khoảng trắng thừa giữa các từ. |
| slug(text) | Tạo chuỗi định danh (slug) cho URL. |
| v_caps(text) | Viết hoa chuẩn tên riêng Tiếng Việt. |
| is_vi(text) | Kiểm tra văn bản có chứa ký tự Tiếng Việt không. |
| num2str(num, lang) | Chuyển dãy số thành chữ (Hỗ trợ vi/en). |
| money(amount) | Định dạng số thành tiền tệ VNĐ (1.000.000đ). |
| clean_phone(phone) | Chuẩn hóa mọi định dạng SĐT về đầu số 0. |
| get_telco(phone) | Nhận diện nhà mạng từ số điện thoại. |
| get_provinces(format) | Lấy danh sách 34 tỉnh thành (list/json/str). |
| is_email(email) | Kiểm tra định dạng email hợp lệ. |
| is_cccd(number) | Kiểm tra định dạng CCCD 12 chữ số. |
| parse_cccd(cccd) | Phân tích Giới tính, Năm sinh, Tỉnh từ CCCD. |
| gen_pass(length) | Tạo mật khẩu/OTP ngẫu nhiên nhanh. |
## 📄 Giấy phép (License)
Dự án này sử dụng giấy phép **MIT License** - Bạn có quyền tự do sử dụng, sửa đổi và phân phối.
## ✍️ Tác giả
Phát triển bởi **MinhSangGD**
 * **GitHub:** [MinhSangGDVN](https://github.com/MinhSangGDVN)
 * **Project Link:** [vi-fix](https://github.com/MinhSangGDVN/vi-fix)

Cũng có sẵn phiên bản dành cho [JavaScript](https://github.com/MinhSangGDVN/vi-fix-js)
