* farmer|rpc|tests: Implement paginated harvester plot endpoints
* Simplify filtering
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Let the API handle the exceptions
* Simplify the other filtering too
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Simplify count assertions
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Refactor `is_filter_match` to `plot_matches_filter`
And just convert to `Plot` in tests.
* Move `chia.util.misc.KeyValue` to `chia.rpc.farmer_rpc_api.FilterItem`
* Rename `peer_id` to `node_id` to be match `get_harvesters_{summary}`
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* test: Give `setup_farmer` and `setup_harvester` a separate chia root
* test: Wait for `last_sync_time` in `get_harvesters_{summary}`
To make sure the first sync from the harvester to the farmer is done
before we check plot counts.
* util: Implement `Paginator` class as interface to access a list by pages
* Be less restrictive about page sizes and refactor tests
* Make the pages based of 0 instead of 1 and some more test refactoring
* More tests
* Adjust workflows after rebase
* Introduce `Paginator.create`
* `<=` instead of `- 1`
* tidy installer building
* -d
* fix rpm build
* try for windows
* Install.ps1 -d
* move the install.ps1 call out to the workflow
* Update build_windows.ps1
* Update build_windows.ps1
* debug non-editable install on windows
* platlib and purelib in pyinstaller pathex
* Revert "debug non-editable install on windows"
This reverts commit 7c04168969.
* Revert "platlib and purelib in pyinstaller pathex"
This reverts commit c5c5cdcd81.
* debug
* debug not-editable
* Revert "debug not-editable"
This reverts commit d4373d8e82.
* a bit more similar
* git -C
* find dlls in site-packages?
* oops
* Revert "debug"
This reverts commit 88090f689f.
* consistently name installer github actions artifact zips
* leave SCM_VERSION here
* Update build-windows-installer.yml
* farmer|rpc: Always add `last_sync_time` in `Receiver.to_dict`
This changes the resonse of `get_harvesters` and
`get_harvesters_summary` to always include that field with value
`None`/`null` if the receiver is not yet synced.
* plot_sync: Add sync state to dict in `Receiver.to_dict`
* Add `total_plot_size` to `Receiver.to_dict`
* Refactor sync object assertions
* Access `_current_sync` directly
* Generate `syncing` data outside
* adding workflow for checking for conflicts
* proper version number
* proper version number syntax?
* not sure tbh
* trying 2.x
* using newly created labels
* adding static 2.0.0 version
* update based on feedback
* removing label removal
* merge_conflict
* lookup coins in large batches, rather than one at a time, in block_body_validation
* make get_coin_records use the cache. and make the blockchain change tracking also use the new batch lookup
* make building the sql query a bit more elegant
* fix assert
* fix test_blockchain assert tests
* add type annotation
* await aiosqlite.Cursor.execute() immediately