Repository navigation
v3.3.1
What's changed
An internal cleanup release: the listing and search methods are now written once in AbstractProcess instead of three times across the backends, the backends are type-checked, and the test suite and comments are reorganized. No public default changes and no new features; behaviour on Windows, Linux and macOS is the same as in 3.3.0.
Changed
- Listings and searches are implemented once in
AbstractProcess.get_memory_regions/get_threads/get_modulesand the foursearch_by_*methods check access, validate their arguments at the call and bind the returned generator to the object in one place; each backend now supplies only the OS-specific parts. A new method or backend can no longer miss theClosedProcessguard or the call-time validation (#113) - A search encodes its value and compiles its pattern once. The validated target is handed to the backend scan instead of being encoded again; the backend scan functions accept the encoded form (
target_value_bytes,compiled_pattern) as optional keywords, and existing calls are unchanged (#113) - Subclasses of
AbstractProcessare checked when defined. A subclass that implements neither a listing/search method nor the hook behind it raisesTypeErrorat class definition rather than at instantiation. Subclasses that implement the public methods themselves, as up to 3.3, are unaffected (#113)
Internal
- mypy now checks the platform backends under all three platforms; only attributes that exist on one OS alone are exempt. The type errors this surfaced are fixed (#113)
- One
ADDRESS_SPACE_ENDconstant replaces five spellings of the 64-bit address bound (#113) - The
*_review_fixestest modules are folded into the modules for the behaviour they test, and comments describe the current behaviour instead of how past bugs were found (#113)
Install
pip install --upgrade PyMemoryEditor📖 Full documentation: pymemoryeditor.readthedocs.io · MCP guide: pymemoryeditor.readthedocs.io/en/latest/mcp.html
Full Changelog: v3.3.0...v3.3.1