* isort: Fix `streamable.py` and `test_streamable.py`
* mypy: Drop `streamable.py` and `test_streamable.py` form exclusion
And fix all the mypy issues.
* Fix `pylint`
* Introduce `ParseFunctionType` and `StreamFunctionType`
* Use `object` instead of `Type[Any]` for `is_type_*` functions
* Some `Any` -> `object`
* Use `typing.overload` for `recurse_jsonify`
* Move some comments
* Drop `Union`, use `Literal` properly
* Explicitly ignore the return of `f_type.parse`
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Merge two `recurse_jsonify` overloads
* Typing for the base definition of `recurse_jsonify`
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* farmer: Adjust notifications from the farmer to the UI
- Only send the data for the harvester which actually sent an update
- Notify for each loaded batch during initial loading
* Enable improved farmer/harvester GUI
* 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`
* 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
* Support for Python 3.10
* Update install.sh to block Python 3.11
* websockets to 10.1
* Update workflows for Python 3.10
* single quote 3.10
* Enable fedora:35 (py3.10) installer script testing
* rebuild workflows
* fixup test-install-scripts.yml
* add ignore for distutils deprecation in tests for now
* asyncio.get_event_loop().run_until_complete() -> asyncio.run()
* aiohttp==3.8.1 for python 3.10 support
* use ssl.Purpose.CLIENT_AUTH for ssl_context_for_server()
* rebuild workflows
* use ssl_context_for_client() in BlockTools.get_daemon_ssl_context()
* create a client context for the RpcServer to connect to the daemon
* go back to asyncio.get_event_loop().run_until_complete() for now to recover 3.7
* ignore:There is no current event loop:DeprecationWarning
* Ms.plot load perf2 (#10978)
* 2.7 seconds -> 0.45 seconds
* Merge
* Work on create_plots refactor
* Try to fix tests
* Try to fix tests
* Use new functions
* Fix block_tools by adding dir
* Extra argument
* Try to fix cyclic import
* isort
* Drop warning
* Some cleanups around `exclude_final_dir` and directory adding
* Cleanup `min_mainnet_k_size` checks
* Drop unrelated changes
* Fixes after rebase
* Fix cyclic import
* Update tests/block_tools.py
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* Update tests/block_tools.py
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* remove 3.10 avoidance step from debian:bookworm installer testing
* add 3.10 to wheel availability check workflow
* add 3.10 to Install.ps1 supported Python versions for Windows
* add jammy jellyfish to the install script test matrix
* correct ubuntu:jammy job name
* add 22.04 with Python 3.10 to install.sh
Co-authored-by: Gene Hoffman <hoffmang@hoffmang.com>
Co-authored-by: Yostra <straya@chia.net>
Co-authored-by: Mariano Sorgente <3069354+mariano54@users.noreply.github.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* also m1 and arm64 for wheel checks
* account for self-hosted and pre-setup-python of m1 and arm64 runners
* &&
* python3
* report python version
* use docker on arm64 to get multiple python versions
* flush
* report more system information
* except pycryptodome for now
* more variables, simpler logic
* corrections
* switch to [macos, arm64]
* add python version to job name
* separate os and arch matrix axes
* reorder matrixing
* drop workflow name from job name
* oops
* skip python setup in docker cases
* drop the containers
* Update check_dependency_artifacts.py
* add Linux Mint to test matrix
* : -> / for linux mint dockers
* Prepare Linux Mint
* stop testing linux mint 21 since it reports 20.3
* names, comment, and add 19.2
* mint
* manually install requests
* trailing whitespace
* Add cli only rpm
* Ensure rvm (fpm) is loaded before running fpm
* Use full path to fpm, since GHA seems to mess up the PATH in the container
* Add back source and add use ruby-3
* Call rpm script with bash, to see if the rvm script works
* Add --depends for libcrypt.so.1