PyUp Safety actively tracks 232,000 Python packages for vulnerabilities and notifies you when to upgrade.
++++++++++++++++++ - Keep partially scheduled jobs from breaking the scheduler (125) - Add support for random intervals (Thanks grampajoe and gilbsgilbs)
++++++++++++++++++ - Improve docs & clean up docstrings
++++++++++++++++++ - Publish to PyPI as a universal (py2/py3) wheel
++++++++++++++++++ - Add proper HTML (Sphinx) docs available at https://schedule.readthedocs.io/ - CI builds now run against Python 2.7 and 3.5 (3.3 and 3.4 should work fine but are untested) - Fixed an issue with ``run_all()`` and having more than one job that deletes itself in the same iteration. Thanks alaingilbert. - Add ability to tag jobs and to cancel jobs by tag. Thanks Zerrossetto. - Improve schedule docs. Thanks Zerrossetto. - Additional docs fixes by fkromer and yetingsky.
++++++++++++++++++ - Fixed issues where scheduling a job with a functools.partial as the job function fails. Thanks dylwhich. - Fixed an issue where scheduling a job to run every >= 2 days would cause the initial execution to happen one day early. Thanks WoLfulus for identifying this and providing a fix. - Added a FAQ item to describe how to schedule a job that runs only once.
++++++++++++++++++ - Fixed an issue with unicode handling in setup.py that was causing trouble on Python 3 and Debian (https://github.com/dbader/schedule/issues/27). Thanks to waghanza for reporting it. - Added an FAQ item to describe how to deal with job functions that throw exceptions. Thanks mplewis.
++++++++++++++++++ - Added support for scheduling jobs on specific weekdays. Example: ``schedule.every().tuesday.do(job)`` or ``schedule.every().wednesday.at("13:15").do(job)`` (Thanks abultman.) - Run tests against Python 2.7 and 3.4. Python 3.3 should continue to work but we're not actively testing it on CI anymore.
++++++++++++++++++ - Fixed history (no code changes).
++++++++++++++++++ - This release introduces two new features in a backwards compatible way: - Allow jobs to cancel repeated execution: Jobs can be cancelled by calling ``schedule.cancel_job()`` or by returning ``schedule.CancelJob`` from the job function. (Thanks to cfrco and matrixise.) - Updated ``at_time()`` to allow running jobs at a particular time every hour. Example: ``every().hour.at(':15').do(job)`` will run ``job`` 15 minutes after every full hour. (Thanks mattss.) - Refactored unit tests to mock ``datetime`` in a cleaner way. (Thanks matts.)
+++++++++++++++++++ - Fixed an issue with ``next_run()`` throwing a ``ValueError`` exception when the job queue is empty. Thanks to dpagano for pointing this out and thanks to mrhwick for quickly providing a fix.
+++++++++++++++++++ - Fixed issue with ``at_time`` jobs not running on the same day the job is created (Thanks to mattss)
++++++++++++++++++ - Added ``schedule.next_run()`` - Added ``schedule.idle_seconds()`` - Args passed into ``do()`` are forwarded to the job function at call time - Increased test coverage to 100%
++++++++++++++++++ - Changed default ``delay_seconds`` for ``schedule.run_all()`` to 0 (from 60) - Increased test coverage
++++++++++++++++++ - API change: renamed ``schedule.run_all_jobs()`` to ``schedule.run_all()`` - API change: renamed ``schedule.run_pending_jobs()`` to ``schedule.run_pending()`` - API change: renamed ``schedule.clear_all_jobs()`` to ``schedule.clear()`` - Added ``schedule.jobs``
++++++++++++++++++ - Fix packaging - README fixes
++++++++++++++++++ - API change: renamed ``schedule.tick()`` to ``schedule.run_pending_jobs()`` - Updated README and ``setup.py`` packaging
++++++++++++++++++ - Initial release