semvec/pypi-packages huggingface dataset:
choixpeau 0.0.9
Efficiently assign users to buckets.
Requires Python: >=3.6

# choixpeau

## Install

```
pip install choixpeau
```

## Usage

```python
from choixpeau import choixpeau

redis_config = {
    "host": "localhost
}

choixpeau = choixpeau.Choixpeau(
    redis_config=redis_config, 
    ab_test_ids=["poudlard"],
    buckets=["gryffondor", "poufsouffle", "serdaigle", "serpentard"] # ["A", "B"] by default
)
```

### get

```python
choixpeau.get("harrypotter")

# if the key already exists
> [(None, { "ab_test_group": "gryffondor", "created_at": "2021-01-29" }, "poudlard")] 

# if it does not
> [("ab:poudlard:harrypotter", { "ab_test_group": "gryffondor", "created_at": "2021-01-29" }, "poudlard")]
```

### store

```python
choixpeau.store(
    "ab:poudlard:harrypotter", 
    { "ab_test_group": "gryffondor", "created_at": "2021-01-29" }
)
```

## FastAPI

```python
from fastapi import FastAPI, Request, BackgroundTasks
from choixpeau import choixpeau
from choixpeau.decorators.fastapi import ab

app = fastapi.FastAPI()

redis_config = {
    "host": "localhost
}

@app.on_event("startup")
async def startup():
    # Initialize choixpeau at the app level
    app.state.choixpeau = choixpeau.Choixpeau(
        redis_config=redis_config, 
        ab_test_ids=["poudlard"],
        buckets=["gryffondor", "poufsouffle", "serdaigle", "serpentard"]
    )

@app.post("/")
@ab # requires the request body to have a user_id field
async def read_house(request: Request, background_tasks: BackgroundTasks):
    wizard = request.state.user # the user attribute is automatically added to the request
    
    if wizard["ab_test_group"] == "gryffondor":
        return { "message": "Welcome to Gryffondor!" }
    else:
        return { "message": "Welcome!" }
```
poems 0.1.1
Ancient poetry
Requires Python: >=3.6

# poems

Ancient poetry

Compatibility
-------------

only supports Python 3.6 and above.

Basic Usage
-----------

Install with pip:

```bash
pip install poems
```

Usage

```python
from poems import Poetry

poetry = Poetry()

# 根据作者名，method=0 精准匹配
poetry.for_author('李白', method=0)
# [{'author': '李白',
#   'content': '云想衣裳花想容，春风拂槛露华浓。 \n若非群玉山头见，会向瑶台月下逢。 ',
#   'dynasty': '唐代',
#   'name': '清平调·其一',
#   'type': '诗'},
#  {'author': '李白',
#   'content': '长安一片月，万户捣衣声。\n秋风吹不尽，总是玉关情。\n何日平胡虏，良人罢远征。 ',
#   'dynasty': '唐代',
#   'name': '子夜吴歌·秋歌',
#   'type': '诗'}, ...]

# 根据作者名，method=1 相似匹配
poetry.for_author('李', method=1)
# [{'author': '李白',
#   'content': '危楼高百尺，手可摘星辰。\n不敢高声语，恐惊天上人。 ',
#   'dynasty': '唐代',
#   'name': '夜宿山寺',
#   'type': '诗'},
#  {'author': '李煜',
#   'content': '浪花有意千里雪，桃花无言一队春。一壶酒，一竿身，快活如侬有几人。 ',
#   'dynasty': '五代',
#   'name': '渔父·浪花有意千里雪',
#   'type': '词'}, ...]

# 根据题目
poetry.for_name('静夜思')
# [{'author': '李白',
#   'content': '床前明月光，疑是地上霜。\n举头望明月，低头思故乡。',
#   'dynasty': '唐代',
#   'name': '静夜思',
#   'type': '诗'}]

# 根据类型，只有精准匹配
poetry.for_type('词')
# [{'author': '白居易',
#   'content': '江南好，风景旧曾谙。日出江花红胜火，春来江水绿如蓝。能不忆江南？ ',
#   'dynasty': '唐代',
#   'name': '忆江南',
#   'type': '词'},
#  {'author': '李白',
#   'content': '秋风清，秋月明，\n'
#              '落叶聚还散，寒鸦栖复惊。\n'
#              '相思相见知何日？此时此夜难为情！\n'
#              '入我相思门，知我相思苦，\n'
#              '长相思兮长相忆，短相思兮无穷极，\n'
#              '早知如此绊人心，何如当初莫相识。(后三句存疑) ',
#   'dynasty': '唐代',
#   'name': '三五七言 / 秋风词',
#   'type': '词'}, ...]

# 根据朝代
poetry.for_dynasty('唐代')
# [{'author': '李白',
#   'content': '云想衣裳花想容，春风拂槛露华浓。 \n若非群玉山头见，会向瑶台月下逢。 ',
#   'dynasty': '唐代',
#   'name': '清平调·其一',
#   'type': '诗'},
#  {'author': '白居易',
#   'content': '江南好，风景旧曾谙。日出江花红胜火，春来江水绿如蓝。能不忆江南？ ',
#   'dynasty': '唐代',
#   'name': '忆江南',
#   'type': '词'}, ...]

# 根据内容，只有相似匹配
poetry.for_content('静')
# [{'author': '王维',
#       'content': '人闲桂花落，夜静春山空。\n月出惊山鸟，时鸣春涧中。 ',
#       'dynasty': '唐代',
#       'name': '鸟鸣涧',
#       'type': '诗'},
#      {'author': '苏轼',
#       'content': '夜饮东坡醒复醉，归来仿佛三更。家童鼻息已雷鸣。敲门都不应，倚杖听江声。 \n'
#                  '长恨此身非我有，何时忘却营营。夜阑风静縠纹平。小舟从此逝，江海寄余生。(余 一作：馀) ',
#       'dynasty': '宋代',
#       'name': '临江仙·夜归临皋',
#       'type': '词'}, ...]

# 自定义
poetry.for_customize(method=0, author='李白', type='诗')
# {'author': '李白',
#   'content': '日照香炉生紫烟，遥看瀑布挂前川。\n飞流直下三千尺，疑是银河落九天。 ',
#   'dynasty': '唐代',
#   'name': '望庐山瀑布',
#   'type': '诗'},
#  {'author': '李白',
#   'content': '危楼高百尺，手可摘星辰。\n不敢高声语，恐惊天上人。 ',
#   'dynasty': '唐代',
#   'name': '夜宿山寺',
#   'type': '诗'}]
```

License
-------

poem is released under the MIT License. See the bundled `LICENSE` file for details.