Werkzeug: рд╕рдВрд╕реНрдХрд░рдг 1.0.0 рдкрд╣рд▓реЗ рд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХреЛрдб рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдлрд╝рд░ре░ 2020  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/werkzeug

1.0.0 рд░рд┐рд▓реАрдЬрд╝ рдЬрд┐рд╕реЗ 2 рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рдкреБрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рдерд╛ рдФрд░ рдлреНрд▓рд╛рд╕реНрдХ рдХреЛ рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд┐рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрджрд┐ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрдпрд╛рдирдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╣реИред рдлреНрд▓рд╛рд╕реНрдХ-рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл 0.14.3 рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдШрдВрдЯреЛрдВ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдереЗ, рддреЛ рд╣рдо рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛рдиреЗ рд╡рд╛рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рддреАрд╕рд░реА рдмрд╛рд░ рдкреИрд▓реЗрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЕрдкрдбреЗрдЯ рдиреЗ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬреЛ рдореИрдВрдиреЗ рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдерд╛ред

рд╕рднреА 22 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдкреВрд░реНрдг рдЯреНрд░реЗрд╕рдмреИрдХ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред

рд╕рдорд╕реНрдпрд╛ рдлреНрд▓рд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИ, рдФрд░ Werkzeug рдЗрди рдмрд╣рд┐рд╖реНрдХреГрдд рдЖрдпрд╛рддреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦреЗрдЧрд╛ред 0.16 5 рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЖрдпрд╛рдд рдмрджрд▓ рдЧрдП рд╣реИрдВред

рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╢реНрдпреВ рдЦреЛрд▓рдХрд░ рдпрд╛ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • рдХреБрдкреНрдкреА-рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ 1.5.5
  • рдлреНрд▓рд╛рд╕реНрдХ-рдмреЗрдмреЗрд▓ 1.0
  • рдлреНрд▓рд╛рд╕реНрдХ-рдмреЗрдмреЗрд▓рдПрдХреНрд╕ 0.9.4
  • рдлреНрд▓рд╛рд╕реНрдХ-рд░реЗрд╕реНрдЯрдкреНрд▓рд╕ (рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдлреНрд▓рд╛рд╕реНрдХ-рд░реЗрд╕реНрдЯрдПрдХреНрд╕ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд)
  • рдлреНрд▓рд╛рд╕реНрдХ-рд░реЗрд╕реНрдЯрдПрдХреНрд╕ (рд╡рд┐рд▓рдп, рдЕрднреА рдЬрд╛рд░реА рдирд╣реАрдВ)
  • рдлреНрд▓рд╛рд╕реНрдХ-рдкрд░реАрдХреНрд╖рдг 0.8.0
  • рдлреНрд▓рд╛рд╕реНрдХ-рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл 0.14.3
  • django-рдПрдХреНрд╕рдЯреЗрдВрд╢рди 2.2.8
  • рдкрд╛рдЗрдЯреЗрд╕реНрдЯ-рдлреНрд▓рд╛рд╕реНрдХ 0.15.1
Traceback (most recent call last):
  File "/usr/local/bin/pytest", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 73, in main
    config = _prepareconfig(args, plugins)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 224, in _prepareconfig
    pluginmanager=pluginmanager, args=args
  File "/usr/local/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 87, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/local/lib/python3.7/site-packages/_pytest/helpconfig.py", line 89, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 794, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 1000, in parse
    self._preparse(args, addopts=addopts)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 948, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 299, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/local/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 94, in load
    module = import_module(match.group('module'))
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/usr/local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 143, in exec_module
    exec(co, module.__dict__)
  File "/usr/local/lib/python3.7/site-packages/pytest_flask/plugin.py", line 14, in <module>
    from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/usr/local/lib/python3.7/site-packages/werkzeug/__init__.py)

рд╡рд╣ рдкрд╛рдЗрдЯреЗрд╕реНрдЯ-рдлреНрд▓рд╛рд╕реНрдХ рд╣реИ, рдЖрдк рдЙрдирд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ pytest-flask 0.15.1 рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

+1, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ:
packages/flask_wtf/recaptcha/widgets.py", line 5, in <module> from werkzeug import url_encode ImportError: cannot import name 'url_encode'

+1 рдпрд╣ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рднреА рддреЛрдбрд╝ рд░рд╣реА рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ V1.0.0 рдореБрджреНрджрд╛ рд╣реИ

``` рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask/cli.py", рд▓рд╛рдЗрди 240, рд▓реЛрдХреЗрдЯ_рдПрдк рдореЗрдВ
__рдЖрдпрд╛рдд__(рдореЙрдбреНрдпреВрд▓_рдирд╛рдо)
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/butter.py", рдкрдВрдХреНрддрд┐ 1, рдореЗрдВ
рдРрдк рдЖрдпрд╛рдд рдРрдк рд╕реЗ, рдбреАрдмреА
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/app/__init__.py", рдкрдВрдХреНрддрд┐ 8, рдореЗрдВ
рдлреНрд▓рд╛рд╕реНрдХ_рдПрдбрдорд┐рди.contrib.sqla рд╕реЗ ModelView рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/contrib/sqla/__init__.py", рд▓рд╛рдЗрди 2, рдореЗрдВ
рд╕реЗ .view рдЖрдпрд╛рдд ModelView
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/contrib/sqla/view.py", рд▓рд╛рдЗрди 19, рдореЗрдВ
рдлреНрд▓рд╛рд╕реНрдХ_рдПрдбрдорд┐рди.рдореЙрдбрд▓ рд╕реЗ рдмреЗрд╕рдореЙрдбрд▓ рд╡реНрдпреВ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/__init__.py", рд▓рд╛рдЗрди 2, рдореЗрдВ
.base рдЖрдпрд╛рдд рд╕реЗ BaseModelView
рдлрд╝рд╛рдЗрд▓ "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/base.py", рд▓рд╛рдЗрди 8, рдореЗрдВ
Werkzeug рд╕реЗ рдЖрдпрд╛рдд safe_filename
рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐: 'рд╕рд┐рдХреНрдпреЛрд░_рдлрд╛рдЗрд▓рдирд╛рдо' рдирд╛рдо рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ? рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 0.16.1 рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

@ tjohnson4 рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВред рдлреНрд▓рд╛рд╕реНрдХ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдереАред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрдпрд╛рдирдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╣реИред рдлреНрд▓рд╛рд╕реНрдХ-рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл 0.14.3 рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдШрдВрдЯреЛрдВ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдереЗ, рддреЛ рд╣рдо рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛рдиреЗ рд╡рд╛рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рддреАрд╕рд░реА рдмрд╛рд░ рдкреИрд▓реЗрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЕрдкрдбреЗрдЯ рдиреЗ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬреЛ рдореИрдВрдиреЗ рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдерд╛ред

рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/ubuntu/swagger-codegen/samples/server/petstore/flaskConnexion/swagger_server/__main__.py", line 3, in <module>
    import connexion
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/__init__.py", line 3, in <module>
    from .apis import AbstractAPI  # NOQA
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/apis/__init__.py", line 1, in <module>
    from .abstract import AbstractAPI  # NOQA
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/apis/abstract.py", line 14, in <module>
    from ..operation import Operation
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/operation.py", line 7, in <module>
    from .decorators import validation
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/decorators/validation.py", line 9, in <module>
    from werkzeug import FileStorage
ImportError: cannot import name 'FileStorage'

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓
рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ werkzeug == 0.16.1 рдЬреЛрдбрд╝реЗрдВред txt рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рдХрд░ рджрд┐рдпрд╛

@ рдЕрдмреНрджреБрд▓рд╕рд▓рд╛рдо-рдЕрдмреНрдмрд╛рд╕ рдХрдиреЗрдХреНрд╢рди рдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдЕрдХреНрдЯреВрдмрд░ 2019 рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдпрд╛рдд рдХрд░реЗрдВ - рд╢рд╛рдпрдж рдЖрдк рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?
https://github.com/zalando/connexion/releases/tag/2.4.0

рдпрджрд┐ рдЖрдкрдХрд╛ рдлреНрд▓рд╛рд╕реНрдХ-рд╕рддреНрд░ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ:

File "/usr/local/lib/python3.8/site-packages/flask_session/__init__.py", line 61, in init_app                                                                                                                                                                                                                               
    app.session_interface = self._get_interface(app)                                                                                                                                                                                                                                                                          
  File "/usr/local/lib/python3.8/site-packages/flask_session/__init__.py", line 90, in _get_interface                                                                                                                                                                                                                         
    session_interface = FileSystemSessionInterface(                                                                                                                                                                                                                                                                           
  File "/usr/local/lib/python3.8/site-packages/flask_session/sessions.py", line 313, in __init__                                                                                                                                                                                                                              
    from werkzeug.contrib.cache import FileSystemCache                                                                                                                                                                                                                                                                        
ModuleNotFoundError: No module named 'werkzeug.contrib'  

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ werkzeug == 0.16.1 рдЬреЛрдбрд╝реЗрдВред txt рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рдХрд░ рджрд┐рдпрд╛

рдпрджрд┐ рдЖрдкрдХрд╛ рдлреНрд▓рд╛рд╕реНрдХ-рд░реЗрд╕реНрдЯрдкреНрд▓рд╕ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ:

Traceback (most recent call last):
  File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/export/home/hysdsops/sciflo/ops/pele/app.py", line 4, in <module>
    from pele import create_app, db
  File "/export/home/hysdsops/sciflo/ops/pele/pele/__init__.py", line 5, in <module>
    from flask_restplus import apidoc
  File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask_restplus/__init__.py", line 4, in <module>
    from . import fields, reqparse, apidoc, inputs, cors
  File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask_restplus/fields.py", line 17, in <module>
    from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/export/home/hysdsops/sciflo/lib/python3.7/site-packages/werkzeug/__init__.py)

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ werkzeug == 0.16.1 рдЬреЛрдбрд╝реЗрдВред txt рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рдХрд┐рдпрд╛ред

рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рдлреНрд▓рд╛рд╕реНрдХ рдЕрдиреБрд░реЛрдз рдСрдмреНрдЬреЗрдХреНрдЯ werkzeug LocalProxy рдХреНрдпреЛрдВ рд▓реМрдЯрд╛, рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╣реИ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рд╣реИ?

рдЗрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рд╕реЗ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:
File "/Users/lucas/Software/anaconda3/envs/pytest/lib/python3.6/site-packages/flask/json.py", line 251, in jsonify if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr: File "/Users/lucas/Software/anaconda3/envs/pytest/lib/python3.6/site-packages/werkzeug/local.py", line 347, in __getattr__ return getattr(self._get_current_object(), name) AttributeError: 'Request' object has no attribute 'is_xhr'

is_xhr рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ 1.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ 0.12.2 рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдмрд╕ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдмрдЧ рдлреНрд▓рд╛рд╕реНрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдореИрдВ рдмрд╕ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдХреНрдпреЛрдВ/рдХреИрд╕реЗ LocalProxy рдЗрд╕ рдлреНрд▓рд╛рд╕реНрдХ рдРрдк рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рдореИрдВ рд╣реВрдВ рдЙрдореНрдореАрджред

@LucasLLC is_xhr рд╕реАрдзреЗ рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдерд╛ (рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рд╣реИ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ 1.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдореИрдВ рдЗрд╕реЗ рдЪреЗрдВрдЬрд▓реЙрдЧ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛) рдмрд▓реНрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ Werkzeug API рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред Werkzeug рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ 81e10efbf3a83daf09c55cd7cc13ac6c6464d405 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдореИрдВ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд┐рди рдХрд░рдиреЗ рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЙрдиреНрдирдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛, рдПрдХ рдРрд╕рд╛ рдХрд╛рдо рдЬрд┐рд╕реЗ рдХрд╡рд┐рддрд╛ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

@pgjones рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рдлреНрд▓рд╛рд╕реНрдХ 0.12 рдХрд╛ рд╡рд░реНрдХрдЬрд╝реЗрдЧ рдХреЛ <1.0.0.0 рдкрд░ рдкрд┐рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдлреНрд▓рд╛рд╕реНрдХ рдореЗрдВ рдПрдХ рдЦрд░рд╛рдм рдкрд┐рди рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рд╛рдБ, рдпрд╣ рдПрдкреАрдЖрдИ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ рдПрдкреАрдЖрдИ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: https://flask.palletsprojects.com/en/0.12.x/api/#flask.Request.is_xhr

@LucasLLC is_xhr рд╕реАрдзреЗ рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдерд╛ (рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рд╣реИ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ 1.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдореИрдВ рдЗрд╕реЗ рдЪреЗрдВрдЬрд▓реЙрдЧ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛) рдмрд▓реНрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ Werkzeug API рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред Werkzeug рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ 81e10ef рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрд╣, рдореЗрд░реА рдЧрд▓рддреАред рдореИрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗ рд░рд╣рд╛ рдерд╛, рдФрд░ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ Werkzeug рд╕реЗ рдЖ рд░рд╣рд╛ рдерд╛, рдЬреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдореИрдВ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд┐рди рдХрд░рдиреЗ рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдЙрдиреНрдирдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛, рдПрдХ рдРрд╕рд╛ рдХрд╛рдо рдЬрд┐рд╕реЗ рдХрд╡рд┐рддрд╛ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛

рдкрд╛рд░рд┐рддреЛрд╖рд┐рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рд╣рдо рдХрд╡рд┐рддрд╛ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред

Odoo12 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛ рдереА:

    import werkzeug.contrib.fixers
ImportError: No module named 'werkzeug.contrib'

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛

Werkzeug==0.16.1

рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╣реБрдИ

рдореЙрдбреНрдпреВрд▓ рдиреЙрдЯрдлрд╛рдЙрдВрдб рддреНрд░реБрдЯрд┐: 'werkzeug.contrib' рдирд╛рдо рдХрд╛ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ

рдлреНрд▓рд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдирд╛

Werkzeug==0.16.1 рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред

```
рдлреНрд▓рд╛рд╕реНрдХ_рдПрдбрдорд┐рди.contrib.sqla рд╕реЗ ModelView рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/__init__.py", рд▓рд╛рдЗрди 2, рдореЗрдВ

рд╕реЗ .view рдЖрдпрд╛рдд ModelView
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/view.py", рд▓рд╛рдЗрди 18, рдореЗрдВ

рдлреНрд▓рд╛рд╕реНрдХ_рдПрдбрдорд┐рди.рдореЙрдбрд▓ рд╕реЗ рдмреЗрд╕рдореЙрдбрд▓ рд╡реНрдпреВ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/flask_admin/model/__init__.py", рд▓рд╛рдЗрди 2, рдореЗрдВ

.base рдЖрдпрд╛рдд рд╕реЗ BaseModelView
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python3.6/site-packages/flask_admin/model/base.py", рд▓рд╛рдЗрди 8, рдореЗрдВ

Werkzeug рд╕реЗ рдЖрдпрд╛рдд safe_filename
рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐: 'рд╕рд┐рдХреНрдпреЛрд░_рдлрд╛рдЗрд▓рдирд╛рдо' рдирд╛рдо рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

lepture picture lepture  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

androiddrew picture androiddrew  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sorenh picture sorenh  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

c17r picture c17r  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

taion picture taion  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ