mpl-extensions / mpl-interactions

Sliders to control matplotlib and other interactive goodies. Works in any interactive backend and even uses ipywidgets when in a Jupyter notebook
https://mpl-interactions.rtfd.io
BSD 3-Clause "New" or "Revised" License
132 stars 20 forks source link

Git-Issue: Can't commit to my fork of mpl-interactions #265

Open wgottwald opened 1 year ago

wgottwald commented 1 year ago

I forked mpl-interactions, then made a branch for a new feature there and tried to commit my changes to that branch. However it does not work and I get the following error message: Looks like it has something to do with the pre-commit? I tried searching around for this but could not find a reasonable answer. Does someone have an idea?

[INFO] Installing environment for https://github.com/pycqa/isort.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/Users/wolfganggottwald/.cache/pre-commit/repoy9e009kb/py_env-python3/bin/python', '-mpip', 'install', '.')
return code: 1
stdout:
    Processing /Users/wolfganggottwald/.cache/pre-commit/repoy9e009kb
      Installing build dependencies: started
      Installing build dependencies: finished with status 'done'
      Getting requirements to build wheel: started
      Getting requirements to build wheel: finished with status 'done'
      Preparing metadata (pyproject.toml): started
      Preparing metadata (pyproject.toml): finished with status 'error'
stderr:
      error: subprocess-exited-with-error

      × Preparing metadata (pyproject.toml) did not run successfully.
      │ exit code: 1
      ╰─> [14 lines of output]
          Traceback (most recent call last):
            File "/Users/wolfganggottwald/.cache/pre-commit/repoy9e009kb/py_env-python3/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
              main()
            File "/Users/wolfganggottwald/.cache/pre-commit/repoy9e009kb/py_env-python3/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
              json_out['return_val'] = hook(**hook_input['kwargs'])
            File "/Users/wolfganggottwald/.cache/pre-commit/repoy9e009kb/py_env-python3/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel
              return hook(metadata_directory, config_settings)
            File "/private/var/folders/x6/16wx02qs597gd0_6d6hd5l7h0000gn/T/pip-build-env-92f8y3db/overlay/lib/python3.10/site-packages/poetry/core/masonry/api.py", line 40, in prepare_metadata_for_build_wheel
              poetry = Factory().create_poetry(Path(".").resolve(), with_groups=False)
            File "/private/var/folders/x6/16wx02qs597gd0_6d6hd5l7h0000gn/T/pip-build-env-92f8y3db/overlay/lib/python3.10/site-packages/poetry/core/factory.py", line 57, in create_poetry
              raise RuntimeError("The Poetry configuration is invalid:\n" + message)
          RuntimeError: The Poetry configuration is invalid:
            - [extras.pipfile_deprecated_finder.2] 'pip-shims<=0.3.4' does not match '^[a-zA-Z-_.0-9]+$'

          [end of output]

      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: metadata-generation-failed

    × Encountered error while generating package metadata.
    ╰─> See above for output.

    note: This is an issue with the package mentioned above, not pip.
    hint: See above for details.
Check the log at /Users/wolfganggottwald/.cache/pre-commit/pre-commit.log
wgottwald commented 1 year ago

This was solved by calling

pre-commit autoupdate  

as suggested here.

This changed the .pre-commit-config.yaml file.

wgottwald commented 1 year ago

Now there seem to be issues with flake8 when tryin to commit:

check docstring is first.................................................Passed
fix end of files.........................................................Passed
trim trailing whitespace.................................................Passed
black....................................................................Passed
isort....................................................................Passed
nbqa-black...............................................................Passed
nbqa-isort...............................................................Passed
nbstripout...............................................................Passed
prettier.................................................................Passed
flake8...................................................................Failed
- hook id: flake8
- exit code: 1

Traceback (most recent call last):
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/bin/flake8", line 8, in <module>
    sys.exit(main())
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/main/cli.py", line 23, in main
    app.run(argv)
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/main/application.py", line 198, in run
    self._run(argv)
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/main/application.py", line 186, in _run
    self.initialize(argv)
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/main/application.py", line 165, in initialize
    self.plugins, self.options = parse_args(argv)
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/options/parse_args.py", line 51, in parse_args
    option_manager.register_plugins(plugins)
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/options/manager.py", line 259, in register_plugins
    add_options(self)
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8_typing_imports.py", line 529, in add_options
    option_manager.add_option(
  File "/Users/wolfganggottwald/.cache/pre-commit/reposl_opoad/py_env-default/lib/python3.10/site-packages/flake8/options/manager.py", line 281, in add_option
    self._current_group.add_argument(*option_args, **option_kwargs)
  File "/Users/wolfganggottwald/opt/anaconda3/envs/mpl-interactions/lib/python3.10/argparse.py", line 1428, in add_argument
    raise ValueError('%r is not callable' % (type_func,))
ValueError: 'str' is not callable

autoflake................................................................Passed
wgottwald commented 1 year ago

It seems that there exists a newer version of flake8-typing-imports: here.

Therefore I edited the .pre-commit-config.yaml file:

  - repo: https://github.com/PyCQA/flake8
    rev: 6.0.0
    hooks:
      - id: flake8
        additional_dependencies: [flake8-typing-imports==1.12.0]

Which fixed the issue.

ianhi commented 1 year ago

Sorry for not responding I was away all weekend and blissfully never opened my laptop :).

This is probably a good moment for me to look over the config and do things like switching to ruff

wgottwald commented 1 year ago

I thought so, makes sense 😃👍🏻