-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dev endreport and app info #204
Conversation
- add dunders for central info access - add version to argparse - change exception in py-version check
- adds mp.manager for data syncing - result counting in single dict - more result types - adds custom exception for wrong rpyc header
8f59e32
to
8b3948e
Compare
Did you let this uncommented because of the open issue about garbled print outputs which could make this draft a moot point? Or do i interpret this wrongly and its just no time or something? |
Just didn't have time to look at it yet. |
I've thought about this one some more. I think I'm just not a fan of the multiprocessing.Manager approach personally, as it makes the code very annoying to use as a module. I still would prefer going to a direction where we pass a Context object to each worker process, which has:
Which can then be printed out in the main thread and evaluated. This would then replace printlock being passed around all the decompilers, which has always been quite the kludge to begin with. |
I wasn't aware it complicates things and i still don't see how. But ok.
Um... do you mean a "custom context manager"? Where would this be hooked in? Or some use of "contextvars"? I've never seen anything done with them so I'm blank on this. As i read your issue about the interleaved output i tried a few things with logging, but it doesn't work.
Frustrating. |
Nah, just an object that represents the Context that the file is being decompiled in. It's just a very common programming term / design pattern. But by doing that all multiprocessing related logic can stay within unrpyc.py, and the rest of the decompiler won't have to worry about it (not even about anything like printlock). They all get their own context object, and then unrpyc.py will collect them again after the decompilation is done. Multiprocessing is very annoying and has a lot of platform-dependent edge cases, so usually the best way to deal with it is just minimizing how much you need it. |
I close this PR in favour of Context in branch 49f1de0. Some of the report code here will there be integrated. |
See #189
Add/update app infos
Refactoring of result system and endreport
Outstanding:Would be nice if you could take also a look at the outstanding issues.
Could be a bit finicky where to put the result counters because of deobfuscate.py.