dashtext


Namedashtext JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://dashscope.aliyun.com/
SummaryDashText is a Text Modal Data Library
upload_time2024-04-08 07:32:32
maintainerNone
docs_urlNone
authorAlibaba
requires_python>=3.7.0
licenseApache 2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DashText Python Library

DashText is a Python package for DashVector's sparse-dense (hybrid) semantic search which contains a series of text utilities and an integrated tool named SparseVectorEncoder.

## Installation
To install the DashText Client, simply run:
```shell
pip install dashtext
```

## QuickStart
### SparseVector Encoding

It's easy to convert text corpus to sparse vectors in DashText with default models.

```python
from dashtext import SparseVectorEncoder

# Initialize a Encoder Instance and Load a Default Model in DashText
encoder = SparseVectorEncoder.default('zh')

# Encode a new document (for upsert to DashVector)
document = "向量检索服务DashVector基于达摩院自研的高效向量引擎Proxima内核,提供具备水平拓展能力的云原生、全托管的向量检索服务。"
print(encoder.encode_documents(document))
# {380823393: 0.7262431704356519, 414191989: 0.7262431704356519, 565176162: 0.7262431704356519, 904594806: 0.7262431704356519, 1005505802: 0.7262431704356519, 1169440797: 0.8883757984694465, 1240922502: 0.7262431704356519, 1313971048: 0.7262431704356519, 1317077351: 0.7262431704356519, 1490140460: 0.7262431704356519, 1574737055: 0.7262431704356519, 1760434515: 0.7262431704356519, 2045788977: 0.8414146776926797, 2141666983: 0.7262431704356519, 2509543087: 0.7262431704356519, 3180265193: 0.7262431704356519, 3845702398: 0.7262431704356519, 4106887295: 0.7262431704356519}

# Encode a query (for search in DashVector)
query = "什么是向量检索服务?"
print(encoder.encode_queries(document))
# {380823393: 0.08361891359384604, 414191989: 0.09229860190522488, 565176162: 0.04535506923676476, 904594806: 0.020073288360284405, 1005505802: 0.027556881447714194, 1169440797: 0.04022365461249135, 1240922502: 0.050572420319144815, 1313971048: 0.01574978858878569, 1317077351: 0.03899710322573238, 1490140460: 0.03401309416846664, 1574737055: 0.03240084602715354, 1760434515: 0.11848476345398339, 2045788977: 0.09625917015244072, 2141666983: 0.11848476345398339, 2509543087: 0.05570020739487387, 3180265193: 0.023553249869916984, 3845702398: 0.05542717955003807, 4106887295: 0.05123100463915489}
```

### SparseVector Parameters

The `SparseVectorEncoder` class is based on BM25 Algorithm, so it contains some parameters required for the BM25 algorithm and some text utilities parameters for text processing.

* `b`: Document length normalization required by BM25 (default: 0.75).
* `k1`: Term frequency saturation required by BM25 (default: 1.2).
* `tokenize_function`: Tokenization process function, such as SentencePiece or GPTTokenizer in Transformers, outputs may by a string or integer array (default: Jieba, type: `Callable[[str], List[str]]`). 
* `hash_function`: Hash process function when need to convert text to number after tokenizing (default: mmh3 hash, type: `Callable[[Union[str, int]], int]`).
* `hash_bucket_function`: Dividing process function when need to dividing hash values into finite buckets (default: None, type: `Callable[[int], int]`).

```python
from dashtext import SparseVectorEncoder
from dashtext import TextTokenizer

tokenizer = TextTokenizer().from_pretrained("Jieba", stop_words=True)

encoder = SparseVectorEncoder(b=0.75, k1=1.2, tokenize_function=tokenizer.tokenize)
```

## Reference

### Encode Documents
`encode_documents(texts: Union[str, List[str], List[int], List[List[int]]]) -> Union[Dict, List[Dict]]`

| **Parameters** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| texts | str<br />List[str]<br />List[int]<br />List[List[int]] | Yes | str : single text<br />List[str]:mutiple texts<br />List[int]:hash representation of a single text<br />List[List[int]]:hash representation of mutiple texts|

Example:
```python
# single text
texts1 = "DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成"
result = encoder.encode_documents(texts1)

# mutiple texts
texts2 = ["DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成",
        "从而为包括大模型生态、多模态AI搜索、分子结构分析在内的多种应用场景,提供所需的高效向量检索能力"]     
result = encoder.encode_documents(texts2)

# hash representation of a single text
texts3 = [1218191817, 2673099881, 2982218203, 3422996809]
result = encoder.encode_documents(texts3)

# hash representation of mutiple texts
texts4 = [[1218191817, 2673099881, 2982218203, 3422996809], [2673099881, 2982218203, 3422996809, 771291085, 741580288]]
result = encoder.encode_documents(texts4)

# result example
# {59256732: 0.7340568742689919, 863271227: 0.7340568742689919, 904594806: 0.7340568742689919, 942054413: 0.7340568742689919, 1169440797: 0.8466352922575744, 1314384716: 0.7340568742689919, 1554119115: 0.7340568742689919, 1736403260: 0.7340568742689919, 2029341792: 0.7340568742689919, 2141666983: 0.7340568742689919, 2367386033: 0.7340568742689919, 2549501804: 0.7340568742689919, 3869223639: 0.7340568742689919, 4130523965: 0.7340568742689919, 4162843804: 0.7340568742689919, 4202556960: 0.7340568742689919}
```

### Encode Queries
`encode_queries(texts: Union[str, List[str], List[int], List[List[int]]]) -> Union[Dict, List[Dict]]`<br />The input format is the same as the encode_documents method.

Example:
```python
# single text
texts = "什么是向量检索服务?"
result = encoder.encode_queries(texts)
```

### Train / Dump / Load DashText Model
#### Train
`train(corpus: Union[str, List[str], List[int], List[List[int]]]) -> None`

| **Parameters** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| corpus | str<br />List[str]<br />List[int]<br />List[List[int]] | Yes | str : single text<br />List[str]:mutiple texts<br />List[int]:hash representation of a single text<br />List[List[int]]:hash representation of mutiple texts|

Example:
```python
corpus = [
    "向量检索服务DashVector基于达摩院自研的高效向量引擎Proxima内核,提供具备水平拓展能力的云原生、全托管的向量检索服务",
    "DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成",
    "从而为包括大模型生态、多模态AI搜索、分子结构分析在内的多种应用场景,提供所需的高效向量检索能力",
    "简单灵活、开箱即用的SDK,使用极简代码即可实现向量管理",
    "自研向量相似性比对算法,快速高效稳定服务",
    "Schema-free设计,通过Schema实现任意条件下的组合过滤查询"
]

encoder.train(corpus)

# use dump method to check parameters
encoder.dump("./dump_paras.json")
```
#### Dump and Load
`dump(path: str) -> None` <br/>
`load(path: str) -> None`

| **Parameters** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| path | str | Yes |Use the dump method to dump the model parameters as a JSON file to the specified `path`;<br /> Use load method to load a model parameters from a JSON file `path` or `URL`|
> The input path can be either relative or absolute, but it should be specific to the file, Example:`". /test_dump.json"`, URL starts with `"http://"` or `"https://"`

Example:
```python
# dump model
encoder.dump("./model.json")

# load model from path
encoder.load("./model.json")

# load model from url
encoder.load("https://example.com/model.json")
```

### Default DashText Models
If you want to use the default `BM25` model of `SparseVectorEncoder`, you can call the `default` method.

``` python
default(name : str = 'zh') -> "SparseVectorEncoder"
```

| **Parameters** | **Type** | **Required** | **Description** |
| --- | --- |--------------| --- |
| name | str | No           | Currently supports both Chinese and English default models,Chinese model `name` is `'zh'`(default), English model `name` is `'en'`.

Example:

``` python
# default method
encoder = dashtext.SparseVectorEncoder.default()

# using default model, you can directly encode documents and queries
encoder.encode_documents("DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成")
encoder.encode_queries("什么是向量检索服务?")
```

### Extend Tokenizer
DashText comes with a built-in Jieba tokenizer that users can readily use (the default SparseVectorEncoder is trained with this Jieba tokenizer). However, in cases requires proprietary corpus, then a customized tokenizer is needed. To solve this problem, DashText offers two flexible options:

- Option 1: Utilize the TextTokenizer.from_pretrained() method to create a customized built-in Jieba tokenizer. Users can effortlessly specify an original dictionary, a user-defined dictionary, and stopwords for quickstart. If the Jieba tokenizer meets the requirements, this option would be more suitable.
```python
TextTokenizer.from_pretrained(cls, model_name : str = 'Jieba',
                              *inputs, **kwargs) -> "BaseTokenizer"
```
| **Parameters** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| model_name | str | Yes | Currently only supports `Jieba`. |
| dict | str | No | Dict path. Defaults to [dict.txt.big](https://raw.githubusercontent.com/fxsjy/jieba/master/extra_dict/dict.txt.big). |
| user_dict | str | No | Extra user dict path. Defaults to `data/jieba/user_dict.txt`(an empty file). |
| stop_words | Union[bool, Dict[str, Any], List[str], Set[str]] | No | Stop words. Defaults to False. <br />True/False: `True` means using pre-defined stopwords, `False` means not using any stopwords. <br />Dict/List/Set: user defined stopwords. Type [Dict]/[List] will transfer to [Set].
 |
- Option 2: Use any customized Tokenizers by providing a callable function in the signature `Callable[[str], List[str]]`. This alternative grants users more freedom to tailor the tokenizer for specific needs. If there is a preferred tokenizer that has already fitted particular requirements, this option would allow users to seamlessly integrate the tokenizer directly into the workflow.

## Combining Sparse and Dense Encodings for Hybrid Search in DashVector
`combine_dense_and_sparse(dence_vector: Union[List[float], np.ndarray], sparse_vector: Dict[int, float], alpha: float) -> Tuple[Union[List[float], np.ndarray, Dict[int, float]]`

| **Parameters** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| dense_vector | Union[List[float], np.ndarray] | Yes | `dense vector`|
| sparse_vector | Dict[int, float] | Yes | `sparse vector` generated by encode_documents or encode_query method|
| alpha | float | Yes | `alpha` controls the computational weights of sparse and dense vectors. alpha=0.0 means sparse vector only, alpha=1.0 means dense vector only.|

Example:
```python
from dashtext import combine_dense_and_sparse

dense_vector = [0.02428389742874429,0.02036450577918233,0.00758973862139133,-0.060652585776971274,0.03321684423003758,-0.019009049500375488,0.015808212986566556,0.0037662904132509424,-0.0178332320055069]
sparse_vector = encoder.encode_documents("DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成")

# using convex combination to generate hybrid vector
scaled_dense_vector, scaled_sparse_vector = combine_dense_and_sparse(dense_vector, sparse_vector, 0.8)

# result example
# scaled_dense_vector: [0.019427117942995432, 0.016291604623345866, 0.006071790897113065, -0.04852206862157702, 0.026573475384030067, -0.01520723960030039, 0.012646570389253245, 0.003013032330600754, -0.014266585604405522]
# scaled_sparse_vector: {59256732: 0.14681137485379836, 863271227: 0.14681137485379836, 904594806: 0.14681137485379836, 942054413: 0.14681137485379836, 1169440797: 0.16932705845151483, 1314384716: 0.14681137485379836, 1554119115: 0.14681137485379836, 1736403260: 0.14681137485379836, 2029341792: 0.14681137485379836, 2141666983: 0.14681137485379836, 2367386033: 0.14681137485379836, 2549501804: 0.14681137485379836, 3869223639: 0.14681137485379836, 4130523965: 0.14681137485379836, 4162843804: 0.14681137485379836, 4202556960: 0.14681137485379836}
```

## License
This project is licensed under the Apache License (Version 2.0).

            

Raw data

            {
    "_id": null,
    "home_page": "https://dashscope.aliyun.com/",
    "name": "dashtext",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7.0",
    "maintainer_email": null,
    "keywords": null,
    "author": "Alibaba",
    "author_email": "dashvector@alibaba-inc.com",
    "download_url": null,
    "platform": "Posix; MacOS X; Windows",
    "description": "# DashText Python Library\r\n\r\nDashText is a Python package for DashVector's sparse-dense (hybrid) semantic search which contains a series of text utilities and an integrated tool named SparseVectorEncoder.\r\n\r\n## Installation\r\nTo install the DashText Client, simply run:\r\n```shell\r\npip install dashtext\r\n```\r\n\r\n## QuickStart\r\n### SparseVector Encoding\r\n\r\nIt's easy to convert text corpus to sparse vectors in DashText with default models.\r\n\r\n```python\r\nfrom dashtext import SparseVectorEncoder\r\n\r\n# Initialize a Encoder Instance and Load a Default Model in DashText\r\nencoder = SparseVectorEncoder.default('zh')\r\n\r\n# Encode a new document (for upsert to DashVector)\r\ndocument = \"\u5411\u91cf\u68c0\u7d22\u670d\u52a1DashVector\u57fa\u4e8e\u8fbe\u6469\u9662\u81ea\u7814\u7684\u9ad8\u6548\u5411\u91cf\u5f15\u64ceProxima\u5185\u6838\uff0c\u63d0\u4f9b\u5177\u5907\u6c34\u5e73\u62d3\u5c55\u80fd\u529b\u7684\u4e91\u539f\u751f\u3001\u5168\u6258\u7ba1\u7684\u5411\u91cf\u68c0\u7d22\u670d\u52a1\u3002\"\r\nprint(encoder.encode_documents(document))\r\n# {380823393: 0.7262431704356519, 414191989: 0.7262431704356519, 565176162: 0.7262431704356519, 904594806: 0.7262431704356519, 1005505802: 0.7262431704356519, 1169440797: 0.8883757984694465, 1240922502: 0.7262431704356519, 1313971048: 0.7262431704356519, 1317077351: 0.7262431704356519, 1490140460: 0.7262431704356519, 1574737055: 0.7262431704356519, 1760434515: 0.7262431704356519, 2045788977: 0.8414146776926797, 2141666983: 0.7262431704356519, 2509543087: 0.7262431704356519, 3180265193: 0.7262431704356519, 3845702398: 0.7262431704356519, 4106887295: 0.7262431704356519}\r\n\r\n# Encode a query (for search in DashVector)\r\nquery = \"\u4ec0\u4e48\u662f\u5411\u91cf\u68c0\u7d22\u670d\u52a1\uff1f\"\r\nprint(encoder.encode_queries(document))\r\n# {380823393: 0.08361891359384604, 414191989: 0.09229860190522488, 565176162: 0.04535506923676476, 904594806: 0.020073288360284405, 1005505802: 0.027556881447714194, 1169440797: 0.04022365461249135, 1240922502: 0.050572420319144815, 1313971048: 0.01574978858878569, 1317077351: 0.03899710322573238, 1490140460: 0.03401309416846664, 1574737055: 0.03240084602715354, 1760434515: 0.11848476345398339, 2045788977: 0.09625917015244072, 2141666983: 0.11848476345398339, 2509543087: 0.05570020739487387, 3180265193: 0.023553249869916984, 3845702398: 0.05542717955003807, 4106887295: 0.05123100463915489}\r\n```\r\n\r\n### SparseVector Parameters\r\n\r\nThe `SparseVectorEncoder` class is based on BM25 Algorithm, so it contains some parameters required for the BM25 algorithm and some text utilities parameters for text processing.\r\n\r\n* `b`: Document length normalization required by BM25 (default: 0.75).\r\n* `k1`: Term frequency saturation required by BM25 (default: 1.2).\r\n* `tokenize_function`: Tokenization process function, such as SentencePiece or GPTTokenizer in Transformers, outputs may by a string or integer array (default: Jieba, type: `Callable[[str], List[str]]`). \r\n* `hash_function`: Hash process function when need to convert text to number after tokenizing (default: mmh3 hash, type: `Callable[[Union[str, int]], int]`).\r\n* `hash_bucket_function`: Dividing process function when need to dividing hash values into finite buckets (default: None, type: `Callable[[int], int]`).\r\n\r\n```python\r\nfrom dashtext import SparseVectorEncoder\r\nfrom dashtext import TextTokenizer\r\n\r\ntokenizer = TextTokenizer().from_pretrained(\"Jieba\", stop_words=True)\r\n\r\nencoder = SparseVectorEncoder(b=0.75, k1=1.2, tokenize_function=tokenizer.tokenize)\r\n```\r\n\r\n## Reference\r\n\r\n### Encode Documents\r\n`encode_documents(texts: Union[str, List[str], List[int], List[List[int]]]) -> Union[Dict, List[Dict]]`\r\n\r\n| **Parameters** | **Type** | **Required** | **Description** |\r\n| --- | --- | --- | --- |\r\n| texts | str<br />List[str]<br />List[int]<br />List[List[int]] | Yes | str : single text<br />List[str]:mutiple texts<br />List[int]:hash representation of a single text<br />List[List[int]]:hash representation of mutiple texts|\r\n\r\nExample:\r\n```python\r\n# single text\r\ntexts1 = \"DashVector\u5c06\u5176\u5f3a\u5927\u7684\u5411\u91cf\u7ba1\u7406\u3001\u5411\u91cf\u67e5\u8be2\u7b49\u591a\u6837\u5316\u80fd\u529b\uff0c\u901a\u8fc7\u7b80\u6d01\u6613\u7528\u7684SDK/API\u63a5\u53e3\u900f\u51fa\uff0c\u65b9\u4fbf\u88ab\u4e0a\u5c42AI\u5e94\u7528\u8fc5\u901f\u96c6\u6210\"\r\nresult = encoder.encode_documents(texts1)\r\n\r\n# mutiple texts\r\ntexts2 = [\"DashVector\u5c06\u5176\u5f3a\u5927\u7684\u5411\u91cf\u7ba1\u7406\u3001\u5411\u91cf\u67e5\u8be2\u7b49\u591a\u6837\u5316\u80fd\u529b\uff0c\u901a\u8fc7\u7b80\u6d01\u6613\u7528\u7684SDK/API\u63a5\u53e3\u900f\u51fa\uff0c\u65b9\u4fbf\u88ab\u4e0a\u5c42AI\u5e94\u7528\u8fc5\u901f\u96c6\u6210\",\r\n        \"\u4ece\u800c\u4e3a\u5305\u62ec\u5927\u6a21\u578b\u751f\u6001\u3001\u591a\u6a21\u6001AI\u641c\u7d22\u3001\u5206\u5b50\u7ed3\u6784\u5206\u6790\u5728\u5185\u7684\u591a\u79cd\u5e94\u7528\u573a\u666f\uff0c\u63d0\u4f9b\u6240\u9700\u7684\u9ad8\u6548\u5411\u91cf\u68c0\u7d22\u80fd\u529b\"]     \r\nresult = encoder.encode_documents(texts2)\r\n\r\n# hash representation of a single text\r\ntexts3 = [1218191817, 2673099881, 2982218203, 3422996809]\r\nresult = encoder.encode_documents(texts3)\r\n\r\n# hash representation of mutiple texts\r\ntexts4 = [[1218191817, 2673099881, 2982218203, 3422996809], [2673099881, 2982218203, 3422996809, 771291085, 741580288]]\r\nresult = encoder.encode_documents(texts4)\r\n\r\n# result example\r\n# {59256732: 0.7340568742689919, 863271227: 0.7340568742689919, 904594806: 0.7340568742689919, 942054413: 0.7340568742689919, 1169440797: 0.8466352922575744, 1314384716: 0.7340568742689919, 1554119115: 0.7340568742689919, 1736403260: 0.7340568742689919, 2029341792: 0.7340568742689919, 2141666983: 0.7340568742689919, 2367386033: 0.7340568742689919, 2549501804: 0.7340568742689919, 3869223639: 0.7340568742689919, 4130523965: 0.7340568742689919, 4162843804: 0.7340568742689919, 4202556960: 0.7340568742689919}\r\n```\r\n\r\n### Encode Queries\r\n`encode_queries(texts: Union[str, List[str], List[int], List[List[int]]]) -> Union[Dict, List[Dict]]`<br />The input format is the same as the encode_documents method.\r\n\r\nExample:\r\n```python\r\n# single text\r\ntexts = \"\u4ec0\u4e48\u662f\u5411\u91cf\u68c0\u7d22\u670d\u52a1\uff1f\"\r\nresult = encoder.encode_queries(texts)\r\n```\r\n\r\n### Train / Dump / Load DashText Model\r\n#### Train\r\n`train(corpus: Union[str, List[str], List[int], List[List[int]]]) -> None`\r\n\r\n| **Parameters** | **Type** | **Required** | **Description** |\r\n| --- | --- | --- | --- |\r\n| corpus | str<br />List[str]<br />List[int]<br />List[List[int]] | Yes | str : single text<br />List[str]:mutiple texts<br />List[int]:hash representation of a single text<br />List[List[int]]:hash representation of mutiple texts|\r\n\r\nExample:\r\n```python\r\ncorpus = [\r\n    \"\u5411\u91cf\u68c0\u7d22\u670d\u52a1DashVector\u57fa\u4e8e\u8fbe\u6469\u9662\u81ea\u7814\u7684\u9ad8\u6548\u5411\u91cf\u5f15\u64ceProxima\u5185\u6838\uff0c\u63d0\u4f9b\u5177\u5907\u6c34\u5e73\u62d3\u5c55\u80fd\u529b\u7684\u4e91\u539f\u751f\u3001\u5168\u6258\u7ba1\u7684\u5411\u91cf\u68c0\u7d22\u670d\u52a1\",\r\n    \"DashVector\u5c06\u5176\u5f3a\u5927\u7684\u5411\u91cf\u7ba1\u7406\u3001\u5411\u91cf\u67e5\u8be2\u7b49\u591a\u6837\u5316\u80fd\u529b\uff0c\u901a\u8fc7\u7b80\u6d01\u6613\u7528\u7684SDK/API\u63a5\u53e3\u900f\u51fa\uff0c\u65b9\u4fbf\u88ab\u4e0a\u5c42AI\u5e94\u7528\u8fc5\u901f\u96c6\u6210\",\r\n    \"\u4ece\u800c\u4e3a\u5305\u62ec\u5927\u6a21\u578b\u751f\u6001\u3001\u591a\u6a21\u6001AI\u641c\u7d22\u3001\u5206\u5b50\u7ed3\u6784\u5206\u6790\u5728\u5185\u7684\u591a\u79cd\u5e94\u7528\u573a\u666f\uff0c\u63d0\u4f9b\u6240\u9700\u7684\u9ad8\u6548\u5411\u91cf\u68c0\u7d22\u80fd\u529b\",\r\n    \"\u7b80\u5355\u7075\u6d3b\u3001\u5f00\u7bb1\u5373\u7528\u7684SDK\uff0c\u4f7f\u7528\u6781\u7b80\u4ee3\u7801\u5373\u53ef\u5b9e\u73b0\u5411\u91cf\u7ba1\u7406\",\r\n    \"\u81ea\u7814\u5411\u91cf\u76f8\u4f3c\u6027\u6bd4\u5bf9\u7b97\u6cd5\uff0c\u5feb\u901f\u9ad8\u6548\u7a33\u5b9a\u670d\u52a1\",\r\n    \"Schema-free\u8bbe\u8ba1\uff0c\u901a\u8fc7Schema\u5b9e\u73b0\u4efb\u610f\u6761\u4ef6\u4e0b\u7684\u7ec4\u5408\u8fc7\u6ee4\u67e5\u8be2\"\r\n]\r\n\r\nencoder.train(corpus)\r\n\r\n# use dump method to check parameters\r\nencoder.dump(\"./dump_paras.json\")\r\n```\r\n#### Dump and Load\r\n`dump(path: str) -> None` <br/>\r\n`load(path: str) -> None`\r\n\r\n| **Parameters** | **Type** | **Required** | **Description** |\r\n| --- | --- | --- | --- |\r\n| path | str | Yes |Use the dump method to dump the model parameters as a JSON file to the specified `path`;<br /> Use load method to load a model parameters from a JSON file `path` or `URL`|\r\n> The input path can be either relative or absolute, but it should be specific to the file, Example:`\". /test_dump.json\"`, URL starts with `\"http://\"` or `\"https://\"`\r\n\r\nExample:\r\n```python\r\n# dump model\r\nencoder.dump(\"./model.json\")\r\n\r\n# load model from path\r\nencoder.load(\"./model.json\")\r\n\r\n# load model from url\r\nencoder.load(\"https://example.com/model.json\")\r\n```\r\n\r\n### Default DashText Models\r\nIf you want to use the default `BM25` model of `SparseVectorEncoder`, you can call the `default` method.\r\n\r\n``` python\r\ndefault(name : str = 'zh') -> \"SparseVectorEncoder\"\r\n```\r\n\r\n| **Parameters** | **Type** | **Required** | **Description** |\r\n| --- | --- |--------------| --- |\r\n| name | str | No           | Currently supports both Chinese and English default models,Chinese model `name` is `'zh'`(default), English model `name` is `'en'`.\r\n\r\nExample:\r\n\r\n``` python\r\n# default method\r\nencoder = dashtext.SparseVectorEncoder.default()\r\n\r\n# using default model, you can directly encode documents and queries\r\nencoder.encode_documents(\"DashVector\u5c06\u5176\u5f3a\u5927\u7684\u5411\u91cf\u7ba1\u7406\u3001\u5411\u91cf\u67e5\u8be2\u7b49\u591a\u6837\u5316\u80fd\u529b\uff0c\u901a\u8fc7\u7b80\u6d01\u6613\u7528\u7684SDK/API\u63a5\u53e3\u900f\u51fa\uff0c\u65b9\u4fbf\u88ab\u4e0a\u5c42AI\u5e94\u7528\u8fc5\u901f\u96c6\u6210\")\r\nencoder.encode_queries(\"\u4ec0\u4e48\u662f\u5411\u91cf\u68c0\u7d22\u670d\u52a1\uff1f\")\r\n```\r\n\r\n### Extend Tokenizer\r\nDashText comes with a built-in Jieba tokenizer that users can readily use (the default SparseVectorEncoder is trained with this Jieba tokenizer). However, in cases requires proprietary corpus, then a customized tokenizer is needed. To solve this problem, DashText offers two flexible options:\r\n\r\n- Option 1: Utilize the TextTokenizer.from_pretrained() method to create a customized built-in Jieba tokenizer. Users can effortlessly specify an original dictionary, a user-defined dictionary, and stopwords for quickstart. If the Jieba tokenizer meets the requirements, this option would be more suitable.\r\n```python\r\nTextTokenizer.from_pretrained(cls, model_name : str = 'Jieba',\r\n                              *inputs, **kwargs) -> \"BaseTokenizer\"\r\n```\r\n| **Parameters** | **Type** | **Required** | **Description** |\r\n| --- | --- | --- | --- |\r\n| model_name | str | Yes | Currently only supports `Jieba`. |\r\n| dict | str | No | Dict path. Defaults to [dict.txt.big](https://raw.githubusercontent.com/fxsjy/jieba/master/extra_dict/dict.txt.big). |\r\n| user_dict | str | No | Extra user dict path. Defaults to `data/jieba/user_dict.txt`(an empty file). |\r\n| stop_words | Union[bool, Dict[str, Any], List[str], Set[str]] | No | Stop words. Defaults to False. <br />True/False: `True` means using pre-defined stopwords, `False` means not using any stopwords. <br />Dict/List/Set: user defined stopwords. Type [Dict]/[List] will transfer to [Set].\r\n |\r\n- Option 2: Use any customized Tokenizers by providing a callable function in the signature `Callable[[str], List[str]]`. This alternative grants users more freedom to tailor the tokenizer for specific needs. If there is a preferred tokenizer that has already fitted particular requirements, this option would allow users to seamlessly integrate the tokenizer directly into the workflow.\r\n\r\n## Combining Sparse and Dense Encodings for Hybrid Search in DashVector\r\n`combine_dense_and_sparse(dence_vector: Union[List[float], np.ndarray], sparse_vector: Dict[int, float], alpha: float) -> Tuple[Union[List[float], np.ndarray, Dict[int, float]]`\r\n\r\n| **Parameters** | **Type** | **Required** | **Description** |\r\n| --- | --- | --- | --- |\r\n| dense_vector | Union[List[float], np.ndarray] | Yes | `dense vector`|\r\n| sparse_vector | Dict[int, float] | Yes | `sparse vector` generated by encode_documents or encode_query method|\r\n| alpha | float | Yes | `alpha` controls the computational weights of sparse and dense vectors. alpha=0.0 means sparse vector only, alpha=1.0 means dense vector only.|\r\n\r\nExample:\r\n```python\r\nfrom dashtext import combine_dense_and_sparse\r\n\r\ndense_vector = [0.02428389742874429,0.02036450577918233,0.00758973862139133,-0.060652585776971274,0.03321684423003758,-0.019009049500375488,0.015808212986566556,0.0037662904132509424,-0.0178332320055069]\r\nsparse_vector = encoder.encode_documents(\"DashVector\u5c06\u5176\u5f3a\u5927\u7684\u5411\u91cf\u7ba1\u7406\u3001\u5411\u91cf\u67e5\u8be2\u7b49\u591a\u6837\u5316\u80fd\u529b\uff0c\u901a\u8fc7\u7b80\u6d01\u6613\u7528\u7684SDK/API\u63a5\u53e3\u900f\u51fa\uff0c\u65b9\u4fbf\u88ab\u4e0a\u5c42AI\u5e94\u7528\u8fc5\u901f\u96c6\u6210\")\r\n\r\n# using convex combination to generate hybrid vector\r\nscaled_dense_vector, scaled_sparse_vector = combine_dense_and_sparse(dense_vector, sparse_vector, 0.8)\r\n\r\n# result example\r\n# scaled_dense_vector: [0.019427117942995432, 0.016291604623345866, 0.006071790897113065, -0.04852206862157702, 0.026573475384030067, -0.01520723960030039, 0.012646570389253245, 0.003013032330600754, -0.014266585604405522]\r\n# scaled_sparse_vector: {59256732: 0.14681137485379836, 863271227: 0.14681137485379836, 904594806: 0.14681137485379836, 942054413: 0.14681137485379836, 1169440797: 0.16932705845151483, 1314384716: 0.14681137485379836, 1554119115: 0.14681137485379836, 1736403260: 0.14681137485379836, 2029341792: 0.14681137485379836, 2141666983: 0.14681137485379836, 2367386033: 0.14681137485379836, 2549501804: 0.14681137485379836, 3869223639: 0.14681137485379836, 4130523965: 0.14681137485379836, 4162843804: 0.14681137485379836, 4202556960: 0.14681137485379836}\r\n```\r\n\r\n## License\r\nThis project is licensed under the Apache License (Version 2.0).\r\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "DashText is a Text Modal Data Library",
    "version": "0.0.7",
    "project_urls": {
        "Homepage": "https://dashscope.aliyun.com/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8dda8bb335e0f119a1abc3dedbe5e953a3e7d8d4ffda4a7f6d1411c97ebac841",
                "md5": "b1d4b9a2cb0bf5e1cfd98874862662f8",
                "sha256": "66800df8f6fbef3770794c8dab0b4211be15486d5b4af3164796fdafc15b5459"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b1d4b9a2cb0bf5e1cfd98874862662f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 6648237,
            "upload_time": "2024-04-08T07:32:32",
            "upload_time_iso_8601": "2024-04-08T07:32:32.188804Z",
            "url": "https://files.pythonhosted.org/packages/8d/da/8bb335e0f119a1abc3dedbe5e953a3e7d8d4ffda4a7f6d1411c97ebac841/dashtext-0.0.7-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8eb9f7c3e8f0c4460a023926bc4acd5cfd5e6309ad65ad046a13f380298f375d",
                "md5": "3b7bf1596a90b2385dd9164990e62e74",
                "sha256": "c145813111830b35ad9bcbecd2788e4788152ef9967c208f452779f68999e5e6"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3b7bf1596a90b2385dd9164990e62e74",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 7167340,
            "upload_time": "2024-04-08T07:26:44",
            "upload_time_iso_8601": "2024-04-08T07:26:44.433056Z",
            "url": "https://files.pythonhosted.org/packages/8e/b9/f7c3e8f0c4460a023926bc4acd5cfd5e6309ad65ad046a13f380298f375d/dashtext-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fdd63104f52cdc00ff8c8dba96ebd1627987e30aa6054f4ee1e8bd598e4eb9ef",
                "md5": "c40ba8cb2e28c39a705532516fc70715",
                "sha256": "3116de7d3b88cf94f9144bcdca39f681345e6b0dbd8159075dba80ba77eb3b01"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c40ba8cb2e28c39a705532516fc70715",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 6686754,
            "upload_time": "2024-04-08T07:25:58",
            "upload_time_iso_8601": "2024-04-08T07:25:58.029750Z",
            "url": "https://files.pythonhosted.org/packages/fd/d6/3104f52cdc00ff8c8dba96ebd1627987e30aa6054f4ee1e8bd598e4eb9ef/dashtext-0.0.7-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9a2b6ee807cd059bd34ac77ee09e47659a58c83855b8c1b487fdddc091051424",
                "md5": "8f35fced41fe8e0df2fc4c5005b0f1e0",
                "sha256": "23da6945b5535ac0ecbfeddb3a962b0a4f113d573593798d1aca85efd3027fde"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8f35fced41fe8e0df2fc4c5005b0f1e0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 6649317,
            "upload_time": "2024-04-08T07:35:13",
            "upload_time_iso_8601": "2024-04-08T07:35:13.439596Z",
            "url": "https://files.pythonhosted.org/packages/9a/2b/6ee807cd059bd34ac77ee09e47659a58c83855b8c1b487fdddc091051424/dashtext-0.0.7-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1514122183f18464156eaa1a18e20ade9963cb37186affe88302d81c9a3f769c",
                "md5": "e42485c26b3551cf916c4e892882f1a7",
                "sha256": "7fd1bcd24a7d0dc6193a26c21b7bda9b0c09b4c0773839c865112630d3789e38"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e42485c26b3551cf916c4e892882f1a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 7168350,
            "upload_time": "2024-04-08T07:26:54",
            "upload_time_iso_8601": "2024-04-08T07:26:54.413207Z",
            "url": "https://files.pythonhosted.org/packages/15/14/122183f18464156eaa1a18e20ade9963cb37186affe88302d81c9a3f769c/dashtext-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4edec73eea4f4ef35f3dbbb9b451d880157bed702e03d1e9f228bd07fafa4914",
                "md5": "54b92e4338f388435238dc92acb0d278",
                "sha256": "18341eb84b6839672c2117257366630bf5386c2dc37dfa5040513470f34d8c29"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "54b92e4338f388435238dc92acb0d278",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 6687390,
            "upload_time": "2024-04-08T07:23:04",
            "upload_time_iso_8601": "2024-04-08T07:23:04.071472Z",
            "url": "https://files.pythonhosted.org/packages/4e/de/c73eea4f4ef35f3dbbb9b451d880157bed702e03d1e9f228bd07fafa4914/dashtext-0.0.7-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5a98d86795b8cd90c72d0a1eb5d36e2957d226e86630b8e4c785bea90f80c71",
                "md5": "5cf09e55627613599072a9c6ea7ee40e",
                "sha256": "a457095d4982d74e3b5b8626988b94920269183eb0fbe53cac3f48a2f1f2d889"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5cf09e55627613599072a9c6ea7ee40e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7.0",
            "size": 6650012,
            "upload_time": "2024-04-08T07:37:43",
            "upload_time_iso_8601": "2024-04-08T07:37:43.706400Z",
            "url": "https://files.pythonhosted.org/packages/c5/a9/8d86795b8cd90c72d0a1eb5d36e2957d226e86630b8e4c785bea90f80c71/dashtext-0.0.7-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "58a7da183f98de20c4e47ff508da30b2beb1d67cdaa010f74fac8bf371bf39f2",
                "md5": "bac266ab505ee2f848471fe987fee373",
                "sha256": "a3f2e9c47b245c839f8a0e1e3e8a3e4bbf322e0a25b2e8c83c7bb8b8079c55e8"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bac266ab505ee2f848471fe987fee373",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7.0",
            "size": 7166750,
            "upload_time": "2024-04-08T07:26:57",
            "upload_time_iso_8601": "2024-04-08T07:26:57.498877Z",
            "url": "https://files.pythonhosted.org/packages/58/a7/da183f98de20c4e47ff508da30b2beb1d67cdaa010f74fac8bf371bf39f2/dashtext-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "629497cc1dbcc1cce9ca9abaa6c73fba00bde8cd073caf5c8e9f74450e2a77fb",
                "md5": "f180fb51b6b8d94349d158140324e1c0",
                "sha256": "e4bd4bf2ebb238a1f1c1d9d93cb4b980ecf614b2b08afeb6dc7c199b6678ddc0"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f180fb51b6b8d94349d158140324e1c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7.0",
            "size": 6669793,
            "upload_time": "2024-04-08T07:24:29",
            "upload_time_iso_8601": "2024-04-08T07:24:29.256746Z",
            "url": "https://files.pythonhosted.org/packages/62/94/97cc1dbcc1cce9ca9abaa6c73fba00bde8cd073caf5c8e9f74450e2a77fb/dashtext-0.0.7-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b3d68d82821dd6c24b1b856a7bdb1cfeeb991815c3e21b2cdf3bb8a0459774d",
                "md5": "26fab702f3a690a31c883ce43b1cd883",
                "sha256": "0317d968befca6b4a4fbf13af8194e4fc134a375f210a8e27339864bd120d947"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "26fab702f3a690a31c883ce43b1cd883",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7.0",
            "size": 9968092,
            "upload_time": "2024-04-08T07:26:54",
            "upload_time_iso_8601": "2024-04-08T07:26:54.179807Z",
            "url": "https://files.pythonhosted.org/packages/4b/3d/68d82821dd6c24b1b856a7bdb1cfeeb991815c3e21b2cdf3bb8a0459774d/dashtext-0.0.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ead6b5e6a17e751bf862c2944387d0fb24944dcb8398bfb9b369af47b55d906",
                "md5": "60ea273b9d95a538a39a2085aef69f20",
                "sha256": "5af33139fca357ecf6a3ebbb4089f63da908741b890181d6b3ca636a1530e6e2"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "60ea273b9d95a538a39a2085aef69f20",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7.0",
            "size": 6687062,
            "upload_time": "2024-04-08T07:32:59",
            "upload_time_iso_8601": "2024-04-08T07:32:59.234759Z",
            "url": "https://files.pythonhosted.org/packages/0e/ad/6b5e6a17e751bf862c2944387d0fb24944dcb8398bfb9b369af47b55d906/dashtext-0.0.7-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da0795c52d99b4c51d9fc99989536dbcb3072d8c112e9c94d4c33b8ad4e57b54",
                "md5": "d9cd3156e73d3614730121549b6109a7",
                "sha256": "28b02ecc8ee73f9001b1acb6ec739a219d3a84f3aa68172be8bc3de9bc3e28e1"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d9cd3156e73d3614730121549b6109a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 6670155,
            "upload_time": "2024-04-08T07:27:43",
            "upload_time_iso_8601": "2024-04-08T07:27:43.578053Z",
            "url": "https://files.pythonhosted.org/packages/da/07/95c52d99b4c51d9fc99989536dbcb3072d8c112e9c94d4c33b8ad4e57b54/dashtext-0.0.7-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f18fe26821006ce902515f7670b63b3d69668d1fc36a56a6563c45bba84417c0",
                "md5": "9e77adb4263a2472812ab3e8bab7aac1",
                "sha256": "632735f7a89484fea49801333106db5ed474fc933830b32f2589477e31dc91b4"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9e77adb4263a2472812ab3e8bab7aac1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 9979171,
            "upload_time": "2024-04-08T07:27:08",
            "upload_time_iso_8601": "2024-04-08T07:27:08.877150Z",
            "url": "https://files.pythonhosted.org/packages/f1/8f/e26821006ce902515f7670b63b3d69668d1fc36a56a6563c45bba84417c0/dashtext-0.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "acfffa51b205e5365e91960d1489d1b6272301f83ca391f47508267ce18393b9",
                "md5": "6afd34bb9dfad17eafe3f10864d3b6cd",
                "sha256": "92bcd61fbd6919e176f710e8f239aad4437b0e6223ed414a7f4e52da91cef69a"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6afd34bb9dfad17eafe3f10864d3b6cd",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 6686684,
            "upload_time": "2024-04-08T07:30:42",
            "upload_time_iso_8601": "2024-04-08T07:30:42.651849Z",
            "url": "https://files.pythonhosted.org/packages/ac/ff/fa51b205e5365e91960d1489d1b6272301f83ca391f47508267ce18393b9/dashtext-0.0.7-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c90638f1a7c7039f0d52176fd18fa054120c11ccac6930fc24f1c7bb048284a0",
                "md5": "47634fad0ad0fe3ae0ba4d7849b7cc4c",
                "sha256": "2348f71295ccbc53faf9f65fe81d80fc0c41d980e521bc9cc86298a7f471c1fd"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "47634fad0ad0fe3ae0ba4d7849b7cc4c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 6648335,
            "upload_time": "2024-04-08T07:30:15",
            "upload_time_iso_8601": "2024-04-08T07:30:15.847115Z",
            "url": "https://files.pythonhosted.org/packages/c9/06/38f1a7c7039f0d52176fd18fa054120c11ccac6930fc24f1c7bb048284a0/dashtext-0.0.7-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4eec795941d8380361f6eea2f2a00c2548501b7c43cbd229a5eab6be5677b7fd",
                "md5": "fc924cb72e1a6dc8504d2692455a1183",
                "sha256": "dd014eb10c4170efc7b64ff5de843bd14196a5ae1139ad1ab7ebdd0c16354181"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fc924cb72e1a6dc8504d2692455a1183",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 7167284,
            "upload_time": "2024-04-08T07:26:33",
            "upload_time_iso_8601": "2024-04-08T07:26:33.923185Z",
            "url": "https://files.pythonhosted.org/packages/4e/ec/795941d8380361f6eea2f2a00c2548501b7c43cbd229a5eab6be5677b7fd/dashtext-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "771e3ccfb07bc4ca0d8e4f5d73559a394523ecdbc100e4c51b111b3fc89321ee",
                "md5": "4fc625147027a192c9b69e0e4949ea3d",
                "sha256": "33e43a9b969149fca41a10eab5e30279bd8aab8bef351985ffee7d5d9ea7837b"
            },
            "downloads": -1,
            "filename": "dashtext-0.0.7-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4fc625147027a192c9b69e0e4949ea3d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 6685474,
            "upload_time": "2024-04-08T07:28:26",
            "upload_time_iso_8601": "2024-04-08T07:28:26.958681Z",
            "url": "https://files.pythonhosted.org/packages/77/1e/3ccfb07bc4ca0d8e4f5d73559a394523ecdbc100e4c51b111b3fc89321ee/dashtext-0.0.7-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-08 07:32:32",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "dashtext"
}
        
Elapsed time: 0.19905s