Comments (3)
MonkeyType supports multiprocessing just fine, but it is up to you to trigger starting MonkeyType tracing in each separate process, in whatever way makes sense for your usage of multiprocessing. I am quite hesitant to attempt to make MonkeyType do this automatically / magically, because multiprocessing is very complicated and there are lots of different ways to use multiprocessing (e.g. spawn, fork, forkserver, etc.) It sounds like a bug magnet to me.
from monkeytype.
I think from point of view user: it would be a great feature. Especially for program parts that aren´t written by your own.
To search for every trigger of new started threads (if using multiprocessing) manually can be very tedious.
So overall in program refactoring cases, it would be very comfortabe for users if triggering new threads would happen magically :) But from point of view developer, i understand your arguments as well. It´s a big challange...
I don´t know if i just don´t find it, but it would be very helpfully if the topic handling multiprocessing / triggering new threads or follow the survival thread after an multiprocess in a program, would be handled in your documentation as example or something. For me it´s not clear how can I do this manually.
What I mean, detailed examples:
New thread:
Run a endless program. Program is waiting. Now a request come in, who is starting a new thread.
How can MT follow the new thread of the request?
Survival thread:
Run a program, the program use any package with an algorithm who uses multiprocessing.
How can MT follow the surviving thread after using this package in the program?
from monkeytype.
I'll leave this open for doc updates; quite happy for anyone who uses MonkeyType with multiple processes (or threads) to contribute documentation on how they handled starting tracing at the right time for their case.
Open to considering PRs for adding some automatic behavior as an option in MonkeyType, too, if someone has a specific proposal that will work correctly for many use cases and isn't too complex to maintain.
from monkeytype.
Related Issues (20)
- ValueError: source code string cannot contain null bytes
- New release HOT 2
- Compare observed types to existing type annotations HOT 1
- Empty lists result in overly broad types HOT 1
- Issue with Callable type for < Python 3.9 HOT 3
- Collect types for non-module functions HOT 1
- provide a type rewriter to find common base class HOT 5
- how open Instagram without password
- Adding an index to monkeytype.sqlite3 speeds up stub generation HOT 1
- Keyword-only arguments are not captured in traces
- Calls to locally defined functions are not captured
- `*args` and `**kwargs` are not captured in traces HOT 1
- Add pre-commit support HOT 1
- `AttributeError: 'ellipsis' object has no attribute '__qualname__'` HOT 1
- pep_563 flag creates imports that don't match the usage of the name HOT 4
- Support PEP 585 - list[int] instead of typing.List[int]
- Stubs with positional-only args output too many slashes and cause a SyntaxError
- Error when parameter in external file is class defined in `__main__` HOT 1
- Return type not traced when returning constant (Python ≥ 3.12)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from monkeytype.