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)
| File | Size | Uploaded | |
|---|---|---|---|
| ms_file_toolkit-0.4.0.tar.gz | 20.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|