Skip to content

pyyaml update breaks bellybuton lint #20

@Artimi

Description

@Artimi

Hi, pyyaml was updated yesterday https://pypi.org/project/PyYAML/#history and now it is failing bellybutton lint.
Steps to reproduce:

  1. pip install bellybutton
  2. bellybutton init
  3. bellybutton lint produces
/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/bellybutton/parsing.py:176: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  loaded = yaml.load(fileobj)
Traceback (most recent call last):
  File "/home/artmis/.virtualenvs/marv-backend/bin/bellybutton", line 10, in <module>
    sys.exit(main())
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/bellybutton/cli.py", line 218, in main
    for arg in args.func.__code__.co_varnames[:args.func.__code__.co_argcount]
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/bellybutton/cli.py", line 163, in lint
    rules = load_config(f)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/bellybutton/parsing.py", line 176, in load_config
    loaded = yaml.load(fileobj)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 43, in get_single_data
    return self.construct_document(node)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 52, in construct_document
    for dummy in generator:
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 404, in construct_yaml_map
    value = self.construct_mapping(node)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 210, in construct_mapping
    return super().construct_mapping(node, deep=deep)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 135, in construct_mapping
    value = self.construct_object(value_node, deep=deep)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/home/artmis/.virtualenvs/marv-backend/lib/python3.7/site-packages/yaml/constructor.py", line 420, in construct_undefined
    node.start_mark)
yaml.constructor.ConstructorError: could not determine a constructor for the tag '!settings'
  in "/home/artmis/wood/marv-backend/.bellybutton.yml", line 2, column 14

Versions:

bellybutton==0.2.4
PyYAML==5.1

When I use PyYAML==3.13 everything works correctly. A quick solution would be to limit the version in setup.py to PyYAML>=3.12,<4.0, but it would be better to fix the actual problem in the long term.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions