Skip to main content

Tools for python

Project description

bigtools

English | 中文

bigtools 是一个 Python 工具箱,提供实用的函数、类和一批常用预设变量,方便在项目中直接调用,减少重复代码。

功能特性

  • 文件读写
  • JSON 与 YAML 处理
  • Hash 生成
  • 路径处理
  • 日志与打印工具
  • 请求 headers 与 Content-Type 常用变量
  • 中文分词、关键词提取与文本处理
  • TF-IDF 与 BM25 相似度检索
  • MongoDB、Redis、Elasticsearch 等数据库工具
  • 异步文件、JSON、文本处理和数据库操作

文档

完整的 API 文档请查看 api.md

环境要求

Python >= 3.9

安装

pip install bigtools

使用

导入方式

每个函数、类、变量均支持两种导入方式,可根据实际需求选择:

# 方式一:简单直接(推荐)
from bigtools import generate_hash_value

# 方式二:包路径清晰
from bigtools.hash_tools import generate_hash_value

使用函数或类

示例:生成 Hash 值

from bigtools import generate_hash_value
# 或
# from bigtools.hash_tools import generate_hash_value

# 默认使用 md5,可选 sha1、sha256 等
hash_value = generate_hash_value('python工具箱')
print(hash_value)

示例:文件操作

from bigtools import save_file, load_file

# 保存文件
save_file('example.txt', '文件内容')

# 读取文件
content = load_file('example.txt')
print(content)

示例:JSON 操作

from bigtools import save_json_data, load_json_data

# 保存 JSON 数据
data = {'name': 'bigtools', 'version': '1.4.5'}
save_json_data(data, 'data.json')

# 读取 JSON 数据
loaded_data = load_json_data('data.json')
print(loaded_data)

使用变量

使用 headers

from bigtools import headers
# 或
# from bigtools.default_data import headers

import requests
url = 'https://example.com'
response = requests.get(url=url, headers=headers)
print(response)

使用 ContentType

以大写字母开头的名称通常是类,类中包含已赋值的变量,可用 . 来访问变量。

from bigtools import ContentType
# 或
# from bigtools.default_data import ContentType

# 发送 POST 请求
import requests
url = 'https://example.com/api'
data = {'key': 'value'}
response = requests.post(
    url=url, 
    data=data, 
    headers=ContentType.app_json_headers
)
print(response)

异步使用

bigtools 提供了丰富的异步函数,适用于异步编程场景。

异步文件操作

import asyncio
from bigtools import save_file_async, load_file_async

async def main():
    # 异步保存文件
    await save_file_async('example.txt', '文件内容')
    
    # 异步读取文件
    content = await load_file_async('example.txt')
    print(content)

asyncio.run(main())

异步 JSON 操作

import asyncio
from bigtools import save_json_data_async, load_json_data_async

async def main():
    # 异步保存 JSON 数据
    data = {'name': 'bigtools', 'version': '1.4.5'}
    await save_json_data_async(data, 'data.json')
    
    # 异步读取 JSON 数据
    loaded_data = await load_json_data_async('data.json')
    print(loaded_data)

asyncio.run(main())

异步文本处理

import asyncio
from bigtools import get_keywords_from_text_async

async def main():
    text = '这是一个用于测试的文本'
    keywords = await get_keywords_from_text_async(text)
    print(keywords)

asyncio.run(main())

异步相似度计算

import asyncio
from bigtools import TfidfChineseRetrieverAsync, calculate_chinese_tfidf_similarity_async

async def main():
    # 创建异步 TF-IDF 检索器
    documents = ['文档1的内容', '文档2的内容', '文档3的内容']
    retriever = await TfidfChineseRetrieverAsync.create(documents)
    
    # 计算相似度
    query = '查询内容'
    similarities = await retriever.query_topk(query, top_k=2)
    print(similarities)

asyncio.run(main())

异步数据库操作

import asyncio
from bigtools import async_mongo_client, AsyncElasticsearchClient

async def main():
    # 异步 MongoDB 客户端
    mongo = async_mongo_client(host='localhost', port=27017)
    db = mongo['mydb']
    collection = db['mycollection']
    
    # 异步 Elasticsearch 客户端
    es = AsyncElasticsearchClient(hosts=['localhost:9200'])
    # 使用 es 进行异步操作...

asyncio.run(main())

许可证

Apache-2.0

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

bigtools-1.4.5.tar.gz (65.0 kB view details)

Uploaded Source

Built Distribution

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

bigtools-1.4.5-py3-none-any.whl (59.2 kB view details)

Uploaded Python 3

File details

Details for the file bigtools-1.4.5.tar.gz.

File metadata

  • Download URL: bigtools-1.4.5.tar.gz
  • Upload date:
  • Size: 65.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for bigtools-1.4.5.tar.gz
Algorithm Hash digest
SHA256 d5781df81fc0b85a47717efb63edd9e7f25dc269639ce619c409bc1f1e8c75f1
MD5 901db56f679091f8fad7fbd1fe54dc74
BLAKE2b-256 de1af4a3b56e27c1016fc54fac37e64c56321a3e537ef812e47d1a88a2568c5d

See more details on using hashes here.

File details

Details for the file bigtools-1.4.5-py3-none-any.whl.

File metadata

  • Download URL: bigtools-1.4.5-py3-none-any.whl
  • Upload date:
  • Size: 59.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for bigtools-1.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e00b2fcf0a33777ba420dd709e085f4b4de65c0502f3569bcc766ce35b2f04e4
MD5 3e0b2e3163b2a84d13a4fbb593b5cadb
BLAKE2b-256 019fec8907808e96047ac6ab7954fc1aee0007b0f313ec32ddb3f3fb3b924e67

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