See Git checking messages for full history.
- removed support for Python 3.8
- added support for Python 3.14
- Linux: fixed a threadding issue in
.close()when callingXCloseDisplay()(#251) - Linux: minor optimization when checking for a X extension status (#251)
- ❤️ contributors: @
- added support for Python 3.13
- leveled up the packaging using
hatchling - used
ruffto lint the code base (#275) - MSS: minor optimization when using an output file format without date (#275)
- MSS: fixed
Pixelmodel type (#274) - CI: automated release publishing on tag creation
- ❤️ contributors: @Andon-Li
- CLI: fixed entry point not taking into account arguments
- Linux: add failure handling to
XOpenDisplay()call (fixes #246) - Mac: tiny improvement in monitors finding
- Windows: refactored how internal handles are stored (fixes #198)
- Windows: removed side effects when leaving the context manager, resources are all freed (fixes #209)
- CI: run tests via
xvfb-runon GitHub Actions (#248) - tests: enhance
test_get_pixels.py, and try to fix a random failure at the same time (related to #251) - tests: use
PyVirtualDisplayinstead ofxvfbwrapper(#249) - tests: automatic rerun in case of failure (related to #251)
- ❤️ contributors: @mgorny, @CTPaHHuK-HEbA
- added support for Python 3.12
- MSS: added PEP 561 compatibility
- MSS: include more files in the sdist package (#240)
- Linux: restore the original X error handler in
.close()(#241) - Linux: fixed
XRRCrtcInfo.width, andXRRCrtcInfo.height, C types - docs: use Markdown for the README, and changelogs
- dev: renamed the
masterbranch tomain - dev: review the structure of the repository to fix/improve packaging issues (#243)
- ❤️ contributors: @mgorny, @relent95
- fixed
SetuptoolsDeprecationWarning: Installing 'XXX' as data is deprecated, please list it in packages - CLI: fixed arguments handling
- MSS: ensure
--with-cursor, andwith_cursorargument & attribute, are simple NOOP on platforms not supporting the feature - CLI: do not raise a
ScreenShotErrorwhen-q, or--quiet, is used but return ` - tests: fixed
test_entry_point()with multiple monitors having the same resolution
- removed support for Python 3.6
- removed support for Python 3.7
- MSS: fixed PEP 484 prohibits implicit Optional
- MSS: the whole source code was migrated to PEP 570 (Python positional-only parameters)
- Linux: reset the X server error handler on exit to prevent issues with Tk/Tkinter (fixes #220)
- Linux: refactored how internal handles are stored to fixed issues with multiple X servers (fixes #210)
- Linux: removed side effects when leaving the context manager, resources are all freed (fixes #210)
- Linux: added mouse support (related to #55)
- CLI: added
--with-cursorargument - tests: added PyPy 3.9, removed
tox, and improved GNU/Linux coverage - ❤️ contributors: @zorvios
- fixed the wheel package
- added support for Python 3.11
- added support for Python 3.10
- removed support for Python 3.5
- MSS: modernized the code base (types,
f-string, ranisort&black) (closes #101) - MSS: fixed several Sourcery issues
- MSS: fixed typos here, and there
- docs: fixed an error when building the documentation
- MSS: reworked how C functions are initialized
- Mac: reduce the number of function calls
- Mac: support macOS Big Sur (fixes #178)
- tests: expand Python versions to 3.9 and 3.10
- tests: fixed macOS interpreter not found on Travis-CI
- tests: fixed
test_entry_point()when there are several monitors
- removed usage of deprecated
license_fileoption forlicense_files - fixed flake8 usage in pre-commit
- the module is now available on Conda (closes #170)
- MSS: the implementation is now thread-safe on all OSes (fixes #169)
- Linux: better handling of the Xrandr extension (fixes #168)
- tests: fixed a random bug on
test_grab_with_tuple_percents()(fixes #142)
- produce wheels for Python 3 only
- MSS: renamed again
MSSMixintoMSSBase, now derived fromabc.ABCMeta - tools: force write of file when saving a PNG file
- tests: fixed tests on macOS with Retina display
- Windows: fixed multi-thread safety (fixes #150)
- ❤️ contributors: @narumishi
- removed support for Python 2.7
- MSS: improve type annotations and add CI check
- MSS: use
__slots__for better performances - MSS: better handle resources to prevent leaks
- MSS: improve monitors finding
- Windows: use our own instances of
GDI32andUser32DLLs - docs: add
project_urlstosetup.cfg - docs: add an example using the multiprocessing module (closes #82)
- tests: added regression tests for #128 and #135
- tests: move tests files into the package
- ❤️ contributors: @hugovk, @foone, @SergeyKalutsky
- Windows: ignore missing
SetProcessDPIAware()on Window XP (fixes #109) - ❤️ contributors: @foone
- Linux: fixed several Xlib functions signature (fixes #92)
- Linux: improve monitors finding by a factor of 44
- MSS: remove use of
setup.pyforsetup.cfg - MSS: renamed
MSSBasetoMSSMixininbase.py - MSS: refactor ctypes
argtype,restypeanderrchecksetup (fixes #84) - Linux: ensure resources are freed in
grab() - Windows: avoid unnecessary class attributes
- MSS: ensure calls without context manager will not leak resources or document them (fixes #72 and #85)
- MSS: fixed Flake8 C408: Unnecessary dict call - rewrite as a literal, in
exceptions.py - MSS: fixed Flake8 I100: Import statements are in the wrong order
- MSS: fixed Flake8 I201: Missing newline before sections or imports
- MSS: fixed PyLint bad-super-call: Bad first argument 'Exception' given to
super() - tests: use
tox, enable PyPy and PyPy3, add macOS and Windows CI
- MSS: do monitor detection in MSS constructor (fixes #79)
- MSS: specify compliant Python versions for pip install
- tests: enable Python 3.7
- tests: fixed
test_entry_point()with multiple monitors - ❤️ contributors: @hugovk, @andreasbuhr
- Linux: fixed a memory leak introduced with 7e8ae5703f0669f40532c2be917df4328bc3985e (fixes #72)
- docs: add the download statistics badge
- Linux: add an error handler for the XServer to prevent interpreter crash (fixes #61)
- MSS: fixed a
ResourceWarning: unclosed file insetup.py - tests: fixed a
ResourceWarning: unclosed file - docs: fixed a typo in
Screenshot.pixel()method (thanks to @mchlnix) - big code clean-up using
black
- Windows: enable Hi-DPI awareness
- ❤️ contributors: @ryanfox
- removed support for Python 3.4
- MSS: add the
Screenshot.bgraattribute - MSS: speed-up grabbing on the 3 platforms
- tools: add PNG compression level control to
to_png() - tests: add
leaks.pyandbenchmarks.pyfor manual testing - docs: add an example about capturing part of the monitor 2
- docs: add an example about computing BGRA values to RGB
- removed support for Python 3.3
- MSS: possibility to get the whole PNG raw bytes
- Windows: capture all visible window
- docs: improvements and fixes (fixes #37)
- CI: build the documentation
- MSS: add the
mssentry point
- MSS: add more way of customization to the output argument of
save() - MSS: possibility to use custom class to handle screenshot data
- Mac: properly support all display scaling and resolutions (fixes #14, #19, #21, #23)
- Mac: fixed memory leaks (fixes #24)
- Linux: handle bad display value
- Windows: take into account zoom factor for high-DPI displays (fixes #20)
- docs: several fixes (fixes #22)
- tests: a lot of tests added for better coverage
- add the 'Say Thanks' button
- ❤️ contributors: @karanlyons
- fixed examples links
- big refactor, introducing the
ScreenShotclass - MSS: add Numpy array interface support to the
Screenshotclass - docs: add OpenCV/Numpy, PIL pixels, FPS
- MSS: better use of exception mechanism
- Linux: use of
hasattr()to prevent Exception on early exit - Mac: take into account extra black pixels added when screen with is not divisible by 16 (fixes #14)
- docs: add an example to capture only a part of the screen
- ❤️ contributors: David Becker, @redodo
- change license to MIT
- MSS: add type hints
- MSS: remove unused code (reported by
Vulture) - Linux: remove MSS library
- Linux: insanely fast using only ctypes
- Linux: skip unused monitors
- Linux: use
errcheckinstead of deprecatedrestypewith callable (fixes #11) - Linux: fixed security issue (reported by Bandit)
- docs: add documentation (fixes #10)
- tests: add tests and use Travis CI (fixes #9)
- ❤️ contributors: @cycomanic
- add issue and pull request templates
- split the module into several files
- MSS: a lot of code refactor and optimizations
- MSS: rename
save_img()toto_png() - MSS:
save(): replacescreenargument bymon - Mac: get rid of the
PyObjCmodule, 100% ctypes - Linux: prevent segfault when
DISPLAYis set but no X server started - Linux: prevent segfault when Xrandr is not loaded
- Linux:
get_pixels()insanely fast, use of MSS library (C code) - Windows: screenshot not correct on Windows 8 (fixes #6)
- MSS: fixed non-existent alias
- MSS:
libpngwarning (ignoring bad filter type) (fixes #7)
- Python 2.6 to 3.5 ready
- MSS: code clean-up and review, no more debug information
- MSS: add a shortcut to take automatically use the proper
MSSclass (fixes #5) - MSS: few optimizations into
save_img() - Darwin: remove rotation from information returned by
enum_display_monitors() - Linux: fixed
object has no attribute 'display' into __del__ - Linux: use of
XDestroyImage()instead ofXFree() - Linux: optimizations of
get_pixels() - Windows: huge optimization of
get_pixels() - CLI: delete
--debugargument
- MSS: little code review
- Linux: fixed monitor count
- tests: remove
test-linuxbinary - docs: add
doc/TESTING - docs: remove Bonus section from README
- MSS: fixed code with
YAPFtool - Linux: fully functional using Xrandr library
- Linux: code clean-up (no more XML files to parse)
- docs: better tests and examples
- MSS: filename's directory is not used when saving (fixes #3)
- MSS: fixed flake8 error: E713 test for membership should be 'not in'
- MSS: raise an exception for unimplemented methods
- Windows: robustness to
MSSWindows.get_pixels(fixes #4) - ❤️ contributors: @sergey-vin, @thehesiod
- MSS: fixed path where screenshots are saved
- Python 3.4 ready
- PEP8 compliant
- MSS: review module structure to fit the "Code Like a Pythonista: Idiomatic Python"
- MSS: refactoring of all
enum_display_monitors()methods - MSS: fixed misspellings using
codespelltool - MSS: better way to manage output filenames (callback)
- MSS: several fixes here and there, code refactoring
- Linux: add XFCE4 support
- CLI: possibility to append
--debugto the command line - ❤️ contributors: @sametmax
- MSS: code simplified
- Windows: few optimizations into
_arrange()
- Linux: use of memoization → huge time/operations gains
- MSS: removed PNG filters
- MSS: removed
extargument, using only PNG - MSS: do not overwrite existing image files
- MSS: few optimizations into
png() - Linux: few optimizations into
get_pixels()
- added support for python 3 on Windows and GNU/Linux
- ❤️ contributors: Oros, Eownis
- first release