FreeOpcUa / opcua-asyncio

OPC UA library for python >= 3.7
GNU Lesser General Public License v3.0
1.11k stars 358 forks source link

fix: Wrong shelf loading #1578

Closed AiyionPrime closed 7 months ago

AiyionPrime commented 7 months ago

blocked by #1577

So this is the last and most controversial PR, due to the last commit. This simply removes the "NotImplementedError` which currently guards against usage of the lazydict. I'm not saying this would be a good solution, I just wanted to have a commit to run tests from and thought I'd share it with you.

Eventually this resolves #867 as the typehints clarify how to use the shelf file.

oroulet commented 7 months ago

as I wrote in another PR, I have never usef that feature so I can merge whatever you think is useful, as long as you do not break things ;-)

oroulet commented 7 months ago

changes are quite small and I did not see any obvious big coding errors

AiyionPrime commented 7 months ago

@oroulet Last but not least :) The only controversial commit is the last one, where I remove the NotImplementedError which @cbergmiller put in place years ago.

The idea is, that the current shelve implementation is good for synchronous usage, but not async friendly as he put it.

My take on this is, the feature does work in some circumstances and wont benefit asynchronous ones as much, if at all; but that's for the user to assess. Until someone comes up with a better and async oriented approach this is still beneficial for synchronous users.

And as the feature is not on by default this is not going to make matters worse for anyone.

I'd say this is good to go, once the pipe's green.

AiyionPrime commented 7 months ago

@oroulet Nice, thank you!