* Make pre-commit more strict
* Get pylint to read setup.cfg
* Make pylint & mypy happy aka ignore all the things
* use LogRecord.getMessage() in tests
* Make noam happy
* Update both pylint & mypy while we're at it
* Bring reqs-dev and makefile up to speed
* try making pre-commit happy
* fix jobqueue tests on the fly
* First go on refactoring JobQueue
* Temporarily enable tests for the v13 branch
* Work on tests
* Temporarily enable tests for the v13 branch
* Increase coverage
* Remove JobQueue.tick()
* Address review
* Temporarily enable tests for the v13 branch
* Address review
* Dispatch errors
* Fix handling of job_kwargs
* Remove possibility to pass a Bot to JobQueue
* next_t property is added to Job class
Added new property to Job class - next_t, it will show the datetime when the job will be executed next time.
The property is updated during JobQueue._put method, right after job is added to queue.
Related to #1676
* Fixed newline and trailing whitespace
* Fixed PR issues, added test
1. Added setter for next_t - now JobQueue doesn't access protected Job._next_t.
2. Fixed Job class docstring.
3. Added test for next_t property.
4. Set next_t to None for run_once jobs that already ran.
* Fixed Flake8 issues
* Added next_t setter for datetime, added test
1. next_t setter now can accept datetime type.
2. added test for setting datetime to next_t and added some asserts that check tests results.
3. Also noticed Job.days setter raises ValueError when it's more appropriate to raise TypeError.
* Fixed test_warnings, added Number type to next_t setter
1. Changed type of error raised by interval setter from ValueError to TypeError..
2. Fixed test_warning after changing type of errors in Job.days and Job.interval.
3. Added Number type to next_t setter - now it can accept int too.
* Python 2 compatibility for test_job_next_t_property
Added _UTC and _UtcOffsetTimezone for python 2 compatibility
* Fixed PR issues
1. Replaced "datetime.replace tzinfo" with "datetime.astimezone"
2. Moved testing next_t setter to separate test.
3. Changed test_job_next_t_setter so it now uses non UTC timezone.
* Defining tzinfo from run_once, run_repeating
1. Added option to define Job.tzinfo from run_once (by when.tzinfo) and run_repeating (first.tzinfo)
2. Added test to check that tzinfo is always passed correctly.
* address review
Co-authored-by: Hinrich Mahler <hinrich.mahler@freenet.de>
* Update AUTHORS.rst
* Update AUTHORS.rst
* Add bot_data to CallbackContext as global memory
* Minor fixes in docstrings
* Incorp. req. changes, Flake8 Fixes
* Persist before stop
* Fix CI errors
* Implement #1342 for bot_data
* Add check pickle_persistence_only_bot similar to #1462
* Fix test_persistence
* Try dispatching error before logging it
* Fix test
Co-authored-by: Eldinnie <Eldinnie@users.noreply.github.com>
* Add test workflow
* Attempt github grouping
* Improve bot info fetching
- Add support for b64+json encoded github secret with all the vars
- Add bot_name and bot_username since it's needed for a proper get_me test
* Improve test workflow a lot
- Add coverage
- Install ujson
- test_official only run on in single job
- Pass bot info to pytest
* Improve github grouping by having shorter titles
* Run pytest with coverage
* Improve coverage report
* Proper exitcode behaviour for pytest
* Proper test official handling
* Proper error handling
* Skip jobqueue tests on windows
* run coverage tests even if nocoverage ones fail
* Skip messagequeue tests on windows
* Clean up to satisfy flake8
* Run meta tests
See https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-11.0 under Context based callbacks and Filters in handlers for a good guide on the changes in this commit.
* Change handlers so context is supported
* Attempt to make parameter "guessing" work on py < 3.5
* Document use_context in all handlers
* Add Context to docs
* Minor fixes to context handling
* Add tests for context stuff
* Allow the signature check to work on py<3.5 with methods
* Fix order of operations
* Address most issues raised in CR
* Make CommandHandler no longer support filter lists
* Fix indent
(pycharm can be an arse sometimes)
* Improve readability in conversationhandler
* Make context have Match instead of groups & groupdict
* Remove filter list support from messagehandler too
* Small fix to StringCommandHandler
* More small fixes to handlers
* Amend CHANGES
* Fix tests and fix bugs raised by tests
* Don't allow users to ignore errors without messing with the warning filters themselves
* Ignore our own deprecation warnings when testing
* Skipping deprecationwarning test on py2
* Forgot some changes
* Handler: Improved documentation and text of deprecation warnings
* HandlerContext: Keep only dispatcher and use properties; improved doc
* Complete fixing the documentation.
- Fixes per Eldinnie's comments.
- Fixes per warnings when running sphinx.
* Some small doc fixes (interlinks and optionals)
* Change add_error_handler to use HandlerContext too
* More context based changes
Context Based Handlers -> Context Based Callbacks
No longer use_context args on every single Handler
Instead set dispatcher/updater .use_context=True to use
Works with
- Handler callbacks
- Error handler callbacks
- Job callbacks
Change examples to context based callbacks so new users are not confused
Rename and move the context object from Handlers.HandlerContext to CallbackContext, since it doesn't only apply to handlers anymore.
Fix tests by adding a new fixture `cpd` which is a dispatcher with use_context=True
* Forgot about conversationhandler
* Forgot jobqueue
* Add tests for callbackcontext & for context based callback job
* Fix as per review :)
- Fix JobQueue.jobs to obtain a lock on the internal queue object prior
to iterating over it.
- Rename JobQueue.queue to JobQueue._queue. This shouldn't be
accessible by the user directly, but rather only with sanitized
thread safe methods.
- JobQueue.interval_seconds - access self.interval only once to avoid
race conditions.
Fixes#968
Required fixes:
- CallbackQuery is now comparable.
- Message.effective_attachment, Message.photo,
Message.new_chat_members, Message.new_chat_photo &
Game.text_entitties semantic fixes - when they are not defined,
return an empty list.
- Docstring fix to Update class.