cloudflare / cloudflare/cloudflare-python

client.rules.lists.items.list - Pagination not working

未關閉
#2,667 5 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
506
分支
148
平均合併
3 小時 15 分鐘
30 天內合併 PR
1

描述

### Confirm this is a Python library issue and not an underlying Cloudflare API issue.

- [x] This is an issue with the Python library

### Describe the bug

Hi there,

It appears as though pagination is not working for `client.rules.lists.items.list()`. I am only getting the first page back. I've taken a look at the source code and it appears it could be related to the removal of SyncCursorPagination? I'm rusty as a dev so I wouldn't put money on it.

Please check out this PR though ([here](https://github.com/cloudflare/cloudflare-python/commit/0e950d65a750fb3741d8728c980e804d658c0306#diff-06d57421adecb656bf71894319342166d32fdd4fe9c2e09319e1b15d0c8f9f3eL168-R176)) which looks to have made a change. For now the list I have is around 480 items so I'm getting around this with `client.rules.lists.items.list(account_id=account_id, list_id=rule_id, per_page=500)` but this is a stop-gap solution at best.

See "To Reproduce" for a very basic reproduction.

Any help would be greatly appreciated!

### To Reproduce

```
import os
from cloudflare import Cloudflare

client = Cloudflare(
api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted
)

ip_list = []
rule_id = "xxxxx"
account_id = "xxxxx"

for item in client.rules.lists.items.list(list_id=rule_id, account_id=account_id):
ip_list.append(account)
print(ip_list)
```

### Code snippets

```Python

```

### OS

macOS

### Python version

3.11.2

### Library version

4.3.1

貢獻指南

開啟貢獻指南

研究方向

從 client.rules.lists.items.list() 入口開始,使用列表大於一頁的範例重現問題。檢查分頁處理,並將其與所引用的 SyncCursorPagination 變更進行比較;當迭代能夠傳回列表中的所有項目,而不需要過大的 per_page 值時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
api
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
冷清
描述清晰度
基本清楚
新手友好度
58/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。