danieldeutsch / sacrerouge

SacreROUGE is a library dedicated to the use and development of text generation evaluation metrics with an emphasis on summarization.
Apache License 2.0
134 stars 11 forks source link

Fixing overrides version #95

Closed danieldeutsch closed 3 years ago

danieldeutsch commented 3 years ago

This change fixes a bug that was caused by overrides==6.0.0:

Traceback (most recent call last):
  File "/usr/local/bin/sacrerouge", line 5, in <module>
    from sacrerouge.__main__ import main
  File "/usr/local/lib/python3.7/dist-packages/sacrerouge/__init__.py", line 1, in <module>
    from sacrerouge.arguments import build_argument_parser
  File "/usr/local/lib/python3.7/dist-packages/sacrerouge/arguments.py", line 3, in <module>
    from sacrerouge.common import Registrable
  File "/usr/local/lib/python3.7/dist-packages/sacrerouge/common/__init__.py", line 5, in <module>
    from sacrerouge.common.params import Params
  File "/usr/local/lib/python3.7/dist-packages/sacrerouge/common/params.py", line 190, in <module>
    class Params(MutableMapping):
  File "/usr/local/lib/python3.7/dist-packages/sacrerouge/common/params.py", line 223, in Params
    def pop(self, key: str, default: Any = DEFAULT, keep_as_dict: bool = False) -> Any:
  File "/usr/local/lib/python3.7/dist-packages/overrides/overrides.py", line 88, in overrides
    return _overrides(method, check_signature, check_at_runtime)
  File "/usr/local/lib/python3.7/dist-packages/overrides/overrides.py", line 114, in _overrides
    _validate_method(method, super_class, check_signature)
  File "/usr/local/lib/python3.7/dist-packages/overrides/overrides.py", line 135, in _validate_method
    ensure_signature_is_compatible(super_method, method, is_static)
  File "/usr/local/lib/python3.7/dist-packages/overrides/signature.py", line 87, in ensure_signature_is_compatible
    super_sig, sub_sig, super_type_hints, sub_type_hints, is_static, method_name
  File "/usr/local/lib/python3.7/dist-packages/overrides/signature.py", line 213, in ensure_all_positional_args_defined_in_sub
    f"`{method_name}: {sub_param.name} must be a supertype of `{super_param.annotation}` but is `{sub_param.annotation}`"
TypeError: `Params.pop: key must be a supertype of `<class 'inspect._empty'>` but is `<class 'str'>`

The fix locks overrides==3.1.0, which is what AllenNLP also does.