History¶
2.0.0b (2023-03-07)¶
Added option to base schedule on last run start , last schedule and last run completion(default and previous version method)
All schedules now will be truncated to 0 microseconds so the execution
New package name precise-scheduler is currently backwards compactable and if needed can be imported as scheduler in existing code
All checks for newer version of python is updated and code updated to new standards
1.1.0 (2021-04-09)¶
Added @repeat() decorator. See #148. Thanks @rhagenaars!
Added execute .until(). See #195. Thanks @fredthomsen!
Added job retrieval filtered by tags using get_jobs(‘tag’). See #419. Thanks @skenvy!
Added type annotations. See #427. Thanks @martinthoma!
Bugfix: str() of job when there is no __name__. See #430. Thanks @biggerfisch!
Improved error messages. See #280, #439. Thanks @connorskees and @sosolidkk!
Improved logging. See #193. Thanks @zcking!
Documentation improvements and fix typos. See #424, #435, #436, #453, #437, #448. Thanks @ebllg!
1.0.0 (2021-01-20)¶
Depending on your configuration, the following bugfixes might change schedule’s behaviour:
Fix: idle_seconds crashes when no jobs are scheduled. See #401. Thanks @yoonghm!
Fix: day.at(‘HH:MM:SS’) where HMS=now+10s doesn’t run today. See #331. Thanks @qmorek!
Fix: hour.at(‘MM:SS’), the seconds are set to 00. See #290. Thanks @eladbi!
Fix: Long-running jobs skip a day when they finish in the next day #404. Thanks @4379711!
Other changes:
Dropped Python 2.7 and 3.5 support, added 3.8 and 3.9 support. See #409
Fix RecursionError when the job is passed to the do function as an arg. See #190. Thanks @connorskees!
Fix DeprecationWarning of ‘collections’. See #296. Thanks @gaguirregabiria!
Replaced Travis with Github Actions for automated testing
Revamp and extend documentation. See #395
Improved tests. Thanks @connorskees and @Jamim!
Changed log messages to DEBUG level. Thanks @aisk!
0.6.0 (2019-01-20)¶
Make at() accept timestamps with 1 second precision (#267). Thanks @NathanWailes!
Introduce proper exception hierarchy (#271). Thanks @ConnorSkees!
0.5.0 (2017-11-16)¶
Keep partially scheduled jobs from breaking the scheduler (#125)
Add support for random intervals (Thanks @grampajoe and @gilbsgilbs)
0.4.3 (2017-06-10)¶
Improve docs & clean up docstrings
0.4.2 (2016-11-29)¶
Publish to PyPI as a universal (py2/py3) wheel
0.4.0 (2016-11-28)¶
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.
0.3.2 (2015-07-02)¶
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.
0.3.1 (2014-09-03)¶
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.
0.3.0 (2014-06-14)¶
Added support for scheduling jobs on specific weekdays. Example:
schedule.every().tuesday.do(job)orschedule.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.
0.2.1 (2013-11-20)¶
Fixed history (no code changes).
0.2.0 (2013-11-09)¶
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 returningschedule.CancelJobfrom 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 runjob15 minutes after every full hour. (Thanks @mattss.)Refactored unit tests to mock
datetimein a cleaner way. (Thanks @matts.)
0.1.11 (2013-07-30)¶
Fixed an issue with
next_run()throwing aValueErrorexception when the job queue is empty. Thanks to @dpagano for pointing this out and thanks to @mrhwick for quickly providing a fix.
0.1.10 (2013-06-07)¶
Fixed issue with
at_timejobs not running on the same day the job is created (Thanks to @mattss)
0.1.9 (2013-05-27)¶
Added
schedule.next_run()Added
schedule.idle_seconds()Args passed into
do()are forwarded to the job function at call timeIncreased test coverage to 100%
0.1.8 (2013-05-21)¶
Changed default
delay_secondsforschedule.run_all()to 0 (from 60)Increased test coverage
0.1.7 (2013-05-20)¶
API change: renamed
schedule.run_all_jobs()toschedule.run_all()API change: renamed
schedule.run_pending_jobs()toschedule.run_pending()API change: renamed
schedule.clear_all_jobs()toschedule.clear()Added
schedule.jobs
0.1.6 (2013-05-20)¶
Fix packaging
README fixes
0.1.4 (2013-05-20)¶
API change: renamed
schedule.tick()toschedule.run_pending_jobs()Updated README and
setup.pypackaging
0.1.0 (2013-05-19)¶
Initial release