Redis driver: DeprecationWarning
Open
Beginner friendly
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 213
- PR merge metrics
- No merged PRs in 30d
Description
I get
2023-10-02 07:01:04,523 43 WARNING py.warnings: /usr/local/lib/python3.9/dist-packages/flanker/addresslib/drivers/redis_driver.py:6: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
File "/usr/lib/python3.9/threading.py", line 912, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/opt/odoo/bin/odoo/service/server.py", line 1112, in _runloop
self.process_work()
File "/opt/odoo/bin/odoo/service/server.py", line 1203, in process_work
base.models.ir_cron.ir_cron._process_jobs(db_name)
File "/opt/odoo/bin/odoo/addons/base/models/ir_cron.py", line 116, in _process_jobs
registry[cls._name]._process_job(db, cron_cr, job)
File "/opt/odoo/bin/odoo/addons/base/models/ir_cron.py", line 325, in _process_job
ir_cron._callback(job['cron_name'], job['ir_actions_server_id'], job['id'])
File "/opt/odoo/bin/odoo/addons/base/models/ir_cron.py", line 368, in _callback
self.env['ir.actions.server'].browse(server_action_id).run()
File "/opt/odoo/bin/odoo/addons/base/models/ir_actions.py", line 668, in run
res = runner(run_self, eval_context=eval_context)
File "/opt/odoo/bin/addons/website/models/ir_actions_server.py", line 61, in _run_action_code_multi
res = super(ServerAction, self)._run_action_code_multi(eval_context)
File "/opt/odoo/bin/odoo/addons/base/models/ir_actions.py", line 538, in _run_action_code_multi
safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self)) # nocopy allows to return 'action'
File "/opt/odoo/bin/odoo/tools/safe_eval.py", line 362, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)
File "ir.actions.server(123,)", line 1, in <module>
File "/opt/odoo/bin/addons/mail/models/fetchmail.py", line 185, in _fetch_mails
return self.search([('state', '=', 'done'), ('server_type', '!=', 'local')]).fetch_mail()
File "/opt/odoo/bin/addons/mail/models/fetchmail.py", line 215, in fetch_mail
self._cr.commit()
File "/opt/odoo/bin/odoo/sql_db.py", line 454, in commit
self.flush()
File "/opt/odoo/bin/odoo/sql_db.py", line 127, in flush
self.transaction.flush()
File "/opt/odoo/bin/odoo/api.py", line 870, in flush
env_to_flush.flush_all()
File "/opt/odoo/bin/odoo/api.py", line 732, in flush_all
self._recompute_all()
File "/opt/odoo/bin/odoo/api.py", line 728, in _recompute_all
self[field.model_name]._recompute_field(field)
File "/opt/odoo/bin/odoo/models.py", line 6170, in _recompute_field
field.recompute(records)
File "/opt/odoo/bin/odoo/fields.py", line 1365, in recompute
apply_except_missing(self.compute_value, recs)
File "/opt/odoo/bin/odoo/fields.py", line 1338, in apply_except_missing
func(records)
File "/opt/odoo/bin/odoo/fields.py", line 1387, in compute_value
records._compute_field_value(self)
File "/opt/odoo/bin/addons/mail/models/mail_thread.py", line 403, in _compute_field_value
return super()._compute_field_value(field)
File "/opt/odoo/bin/odoo/models.py", line 4203, in _compute_field_value
fields.determine(field.compute, self)
File "/opt/odoo/bin/odoo/fields.py", line 97, in determine
return needle(*args)
File "/opt/odoo/bin/addons/crm/models/crm_lead.py", line 491, in _compute_probabilities
lead_probabilities = self._pls_get_naive_bayes_probabilities()
File "/opt/odoo/bin/addons/crm/models/crm_lead.py", line 2059, in _pls_get_naive_bayes_probabilities
leads_values_dict = self._pls_get_lead_pls_values(domain=domain)
File "/opt/odoo/bin/addons/crm/models/crm_lead.py", line 2606, in _pls_get_lead_pls_values
value = lead[field].id if isinstance(lead[field], models.BaseModel) else lead[field]
File "/opt/odoo/bin/odoo/models.py", line 5868, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/opt/odoo/bin/odoo/fields.py", line 1157, in __get__
self.recompute(record)
File "/opt/odoo/bin/odoo/fields.py", line 1365, in recompute
apply_except_missing(self.compute_value, recs)
File "/opt/odoo/bin/odoo/fields.py", line 1338, in apply_except_missing
func(records)
File "/opt/odoo/bin/odoo/fields.py", line 1387, in compute_value
records._compute_field_value(self)
File "/opt/odoo/bin/addons/mail/models/mail_thread.py", line 403, in _compute_field_value
return super()._compute_field_value(field)
File "/opt/odoo/bin/odoo/models.py", line 4203, in _compute_field_value
fields.determine(field.compute, self)
File "/opt/odoo/bin/odoo/fields.py", line 97, in determine
return needle(*args)
File "/opt/odoo/bin/addons/crm/models/crm_lead.py", line 477, in _compute_email_state
if mail_validation.mail_validate(email):
File "/opt/odoo/bin/addons/mail/tools/mail_validation.py", line 17, in mail_validate
return bool(address.validate_address(email))
File "/usr/local/lib/python3.9/dist-packages/flanker/utils.py", line 64, in wrapper
return_value = f(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/flanker/addresslib/address.py", line 312, in validate_address
exchanger, mx_metrics = mail_exchanger_lookup(paddr.hostname, metrics=True)
File "/usr/local/lib/python3.9/dist-packages/flanker/utils.py", line 64, in wrapper
return_value = f(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/flanker/addresslib/validate.py", line 146, in mail_exchanger_lookup
in_cache, cache_value = lookup_exchanger_in_cache(domain)
File "/usr/local/lib/python3.9/dist-packages/flanker/addresslib/validate.py", line 188, in lookup_exchanger_in_cache
lookup = _get_mx_cache()[domain]
File "/usr/local/lib/python3.9/dist-packages/flanker/addresslib/validate.py", line 238, in _get_mx_cache
from flanker.addresslib.drivers.redis_driver import RedisCache
File "/usr/local/lib/python3.9/dist-packages/flanker/addresslib/drivers/redis_driver.py", line 6, in <module>
class RedisCache(collections.MutableMapping):
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with flanker/addresslib/drivers/redis_driver.py, especially line 6 identified in the warning. Check the Redis driver import under Python 3.9 and newer, then verify that loading RedisCache no longer emits the reported DeprecationWarning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100