PythonRemoteServer
PythonRemoteServer copied to clipboard
Speed-loading large libraries with get_library_information
Hi @pekkaklarck,
Could you please review these changes and provide feedback on this pull request in combination with pull requests Python remote server Test suite update and Implement get_library_information interface for Remote libraries (Robot side)?
Together they make a long overdue step for the Python remote server, fixing a number of issues
Python remote server issues:
- Support to specify keyword argument types
- Support keyword-only arguments
- Problems with **kwargs
- Support serving multiple libraries by one server
Robot framework issue:
There is however some dotting the ï-s to do and some decisions to be made, for which I would value your vision. for instance:
- How to version this update (and update docu accordingly)
- Python 2 support (Not compatible in the current state)
- How to deal with binary vs unicode (and fix tests accordingly)
Sorry for neglecting this PR for so long. Been busy with getting RF 4.0 work and RoboCon planning. I won't have time for this project until RF 4.0 final is out, but I will look at the related issue on the RF side to see could we still get those changes into that release.
Hey Pekka, In the meantime I also joined the Slack community, where I got a bit more feel for what is going on overall with the RF developments. From that it was clear the attention had to go elsewhere for a bit, so no problem.
Getting the Robot side preparations for these improvements integrated already would certainly ease the delivery of this update later on. Let's see, let me know if you have questions!
RoboCon sprints are running today and we just decided to talk about Python remote servers there at 12:00 UTC. Sprints are organized on Gather and you can access them via https://venue.robocon.io. This is very late notice but it would be great if you could make it there @JFoederer!
A problem with this PR is that it contains so many different fixes and enhancements that reviewing everything is really hard. If you @JFoederer are still interested on this, could you create smaller PRs for each enhancement?
Right now I'm planning to create v1.1.1 with urgent Python 3.10 and 3.11 compatibility fixes, but I hope I could return to this project soon again and we could then do v1.2 with some new functionality. We can discuss this more on Slack as well.
I believe the most important enhancement would be adding get_library_information
. There's also PR #79 adding it, but it has some problems as well.
Ah yes, this PR. The real struggle was to get a decent base to start from. There were tests failing, test missing and several things not working properly, if I recall correctly. I didn't have the overview at the time to isolate improvements. I was just happy to get something working in my context then.
The context being the option to host multiple libraries. Or actually hosting remote Robot runs for system-of-systems testing. Getting that to work made me fall from one thing into the other, including massive load times, until I had it working.
I am not sure I'll have time for this on short notice, but I'd be happy to help out where I can.
I'll look at this again when starting v1.2 development. I'll now create v1.1.1 with just Python compatibility fixes.