Skip to main content

Thư viện hữu ích của Tuấn Anh.

Project description

Giới thiệu

tattools01 là 1 thư viện dùng để ghi tham số vào ổ cứng và một số tiện ích:

  • chuyển đổi markdown sang word: dùng lệnh md2w chạy nó trong cmd, với tham số, xem trong help
  • hướng dẫn tham số, dùng lệnh tact

Tinh năng

1. Mục đích chính

Tạo một base class TactParameters để quản lý parameters cho các module khác nhau, lưu trữ vào file YAML chung .

2. Cách hoạt động

Lần chạy đầu tiên (file YAML chưa tồn tại):

  • Lấy giá trị default từ code
  • Tạo file YAML với các giá trị default

Các lần chạy sau (file YAML đã tồn tại):

  • Đọc giá trị từ file YAML
  • Giá trị trong file YAML là ưu tiên cao nhất (user có thể sửa trực tiếp)
  • Nếu user xóa một key trong file → lấy giá trị default từ code
  • Nếu code thêm key mới → bổ sung vào file với giá trị default
  • Save lại file để đồng bộ

3. Các kiểu dữ liệu cần hỗ trợ

Kiểu Ví dụ Cách access
Scalar self.test1 = "123" obj.test1
List self.myList = [1, 2, 3] obj.myList[0]
Dict thường self.myDict = {"key": "value"} obj.myDict["key"]
Nested class self.Minio = clsMinio() obj.Minio.IP

4. Quy tắc merge (QUAN TRỌNG)

┌─────────────────────────────────────────────────────────────┐
│  Code default    +    File YAML    =    Kết quả cuối       │
├─────────────────────────────────────────────────────────────┤
│  có giá trị           có giá trị       → Dùng FILE         │
│  có giá trị           không có key     → Dùng DEFAULT      │
│  không có             có giá trị       → Dùng FILE         │
└─────────────────────────────────────────────────────────────┘

Deep merge cho nested object:

# Code default:
Minio:
  IP: "192.168.3.42:9000"
  access_key: "admin"
  secret_key: "Proton@2025"

# File YAML (user chỉ sửa IP, xóa secret_key):
Minio:
  IP: "10.0.0.1:9000"
  access_key: "admin"

# Kết quả:
Minio:
  IP: "10.0.0.1:9000"      ← từ file (user sửa)
  access_key: "admin"       ← từ file (giữ nguyên)
  secret_key: "Proton@2025" ← từ default (user xóa → khôi phục)

5. Giữ nguyên TYPE sau khi load

# Trước khi load:
self.myDict = {"key": "value"}      # dict
self.Minio = clsMinio()              # nested class

# Sau khi load từ file:
self.myDict["key"]                   # vẫn access bằng []
self.Minio.IP                        # vẫn access bằng .

6. Nhiều module dùng chung 1 file

# My_Project_Name.yml
Module 01:
    test1: "123"
    myDict: {key1: value1}

Module 02:
    test1: "456"
    test2: "New param"

chatbotAPI:
    Minio:
        IP: "192.168.3.42:9000"

.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tatools01-3.0.7.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tatools01-3.0.7-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file tatools01-3.0.7.tar.gz.

File metadata

  • Download URL: tatools01-3.0.7.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for tatools01-3.0.7.tar.gz
Algorithm Hash digest
SHA256 bd549373952c62eb838b67f29dfcd8daf0c1744b31b6d72dea7003afb5d926c6
MD5 f9f28063aac36df8cf065a7395af97b7
BLAKE2b-256 d1e64c0a66b1bc0893f3c9089bb1353e3119cae02bcf1f0e982d30b2ade2991e

See more details on using hashes here.

File details

Details for the file tatools01-3.0.7-py3-none-any.whl.

File metadata

  • Download URL: tatools01-3.0.7-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for tatools01-3.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 13572539b5dda74c9dce894deac3934ee8b85e852d6414ae5dc04dd4f1b5b14e
MD5 f8d8ad2bcdbe5203342559b2625a1d00
BLAKE2b-256 df4f578fe62dc5dae01a1855521f88049f5902e33a39dac5ec90b6a7cf155048

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page