Skip to main content

ms-file-toolkit

Microsoft fayllarni va PDF'larni o'qish va yozish uchun Python toolkit — AI function calling (Claude, GPT va h.k.) uchun tayyor tool schemalari, xavfsizlik nazorati, avtomatik format aniqlash va CLI bilan.

O'rnatish

pip install -r requirements.txt

Yoki paket sifatida (PyPI'ga chiqarishga tayyor, CLI bilan birga o'rnatiladi):

pip install -e ".[ai,dev]"

Qo'llab-quvvatlanadigan formatlar

Format O'qish Yozish
.docx matn, jadvallar, metama'lumot yaratish, matn qo'shish/almashtirish, sarlavha, rasm, sahifa bo'linishi
.xlsx varaq nomlari, ma'lumotlar, o'lcham xulosasi yaratish, varaq/qator qo'shish, formula, formatlash, panellarni muzlatish, diagramma
.pptx slayd matnlari, slaydlar soni, notes yaratish, slayd/rasm qo'shish, fon rangi, diagramma
.pdf matn, jadvallar, metama'lumot yaratish, birlashtirish (merge), bo'lish (split)
.doc / .xls / .ppt (eski) read_legacy_file — LibreOffice orqali
Har qanday (avtomatik) read_any_file, get_file_info

Eski formatlar uchun tizimda LibreOffice (soffice) kerak: apt-get install libreoffice

Xavfsizlik

Fayl yo'llari AI tomonidan tanlanadi, shuning uchun path traversal himoyasi o'rnatilgan (ms_toolkit/security.py):

export MS_TOOLKIT_BASE_DIR=/home/bot/user_files   # faqat shu papka ichidagi fayllarga ruxsat
dispatch("read_docx_text", {"file_path": "../../etc/passwd"})
# -> {"error": "Xavfsizlik xatosi: ..."}

CLI (terminal orqali)

ms-toolkit list                                                    # barcha tool'lar ro'yxati
ms-toolkit run create_docx '{"file_path": "a.docx", "title": "Salom", "overwrite": true}'
ms-toolkit run read_any_file '{"file_path": "hujjat.xlsx"}'

Tez boshlash (API kalitisiz)

pip install -e ".[dev]"
pytest tests/ -v          # 23 ta test
python test_toolkit.py    # tezkor smoke-test

Function calling bilan (Claude API)

from ms_toolkit import TOOLS, dispatch
import anthropic

client = anthropic.Anthropic()
response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    tools=TOOLS,
    messages=[{"role": "user", "content": "test.xlsx faylida nechta qator bor?"}],
)

for block in response.content:
    if block.type == "tool_use":
        print(dispatch(block.name, block.input))

To'liq agentic misol: example.py.

Diagramma qo'shish misoli

from ms_toolkit import dispatch

dispatch("add_xlsx_chart", {
    "file_path": "hisobot.xlsx", "chart_type": "bar",
    "data_range": "B1:B5", "categories_range": "A2:A5", "title": "Oylik savdo",
})

dispatch("add_pptx_chart", {
    "file_path": "taqdimot.pptx", "chart_type": "pie",
    "categories": ["A", "B", "C"], "series": {"2026": [40, 35, 25]},
})

Barcha tool'lar ro'yxati (36 ta)

DOCX (9): read_docx_text, read_docx_tables, get_docx_metadata, create_docx, append_docx_text, replace_docx_text, add_docx_heading, add_docx_image, add_docx_page_break XLSX (10): get_xlsx_sheet_names, read_xlsx_data, get_xlsx_summary, create_xlsx, add_xlsx_sheet, append_xlsx_rows, set_xlsx_formula, format_xlsx_cells, freeze_xlsx_panes, add_xlsx_chart PPTX (8): read_pptx_text, get_pptx_slide_count, extract_pptx_notes, create_pptx, add_pptx_slide, add_pptx_image, set_pptx_background_color, add_pptx_chart PDF (6): read_pdf_text, read_pdf_tables, get_pdf_metadata, create_pdf, merge_pdfs, split_pdf Eski formatlar (1): read_legacy_file Auto-detect (2): read_any_file, get_file_info

Struktura

ms_toolkit/
  __init__.py       # TOOLS, dispatch export qiladi
  docx_tool.py / docx_writer.py     # Word
  xlsx_tool.py / xlsx_writer.py     # Excel (+ chart)
  pptx_tool.py / pptx_writer.py     # PowerPoint (+ chart)
  pdf_tool.py / pdf_writer.py        # PDF
  legacy_tool.py                       # Eski formatlar
  auto_tool.py                          # Avtomatik format aniqlash
  security.py                            # Path-traversal himoyasi
  cli.py                                   # Terminal interfeysi (ms-toolkit)
  schemas.py                                # AI uchun tool schemalari
  registry.py                                 # tool_name -> funksiya dispatcher
example.py, test_toolkit.py, tests/            # Misollar va testlar
pyproject.toml                                    # pip/PyPI paketlash + CLI entry point

PyPI'ga chiqarish

pip install build twine
python -m build
twine upload dist/*

Litsenziya

MIT

Release files for ms-file-toolkit 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ms-file-toolkit 0.4.0
File Size Uploaded
ms_file_toolkit-0.4.0.tar.gz 20.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ms-file-toolkit 0.4.0
File Interpreter ABI Platform
ms_file_toolkit-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.3 kB

Release files / ms_file_toolkit-0.4.0.tar.gz

Download URL ms_file_toolkit-0.4.0.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ad6aba41899d05f05fb711c441675744b91343b979e611be8f0e8a5638dc706e
BLAKE2b-256 checksum
How to use checksums
ed5d64f960f02bed3981b6ad4712d0bcd6b189d8fad8b935e66e4ab110298262
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / ms_file_toolkit-0.4.0-py3-none-any.whl

Download URL ms_file_toolkit-0.4.0-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
743386571199a91301a3fb798e09a5e946134152e820b0515af25ec31e39fc4a
BLAKE2b-256 checksum
How to use checksums
292b9e6e8cf402ffffe5d3f889dded7f9897c7cdee89db0e63e459da9d78e3f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

0.6.0

2 release files

This release

0.4.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page