Skip to content

Amusifier fails #1164

@rieder

Description

@rieder

Using Amusifier outside of a Git environment from which version identifiers can be picked up results in an error:

Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/bin/amusifier", line 8, in <module>
    sys.exit(amusifier())
             ~~~~~~~~~^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/lib/python3.13/site-packages/amuse/rfi/gencode.py", line 353, in amusifier
    make_directory(uc)
    ~~~~~~~~~~~~~~^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/lib/python3.13/site-packages/amuse/rfi/gencode.py", line 344, in make_directory
    create_code_dir(language, uc.options.name_of_the_code, os.getcwd())
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/lib/python3.13/site-packages/amuse/rfi/tools/create_dir.py", line 197, in create_code_dir
    _make_packages(code_dir, code, variables)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/lib/python3.13/site-packages/amuse/rfi/tools/create_dir.py", line 139, in _make_packages
    make_package("base", "")
    ~~~~~~~~~~~~^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/lib/python3.13/site-packages/amuse/rfi/tools/create_dir.py", line 136, in make_package
    _instantiate_template(
    ~~~~~~~~~~~~~~~~~~~~~^
            f"pyproject-{pkg_type}.toml", pkg_dir / "pyproject.toml", variables)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/metisse/lib/python3.13/site-packages/amuse/rfi/tools/create_dir.py", line 45, in _instantiate_template
    target.write_text(template.format(**variables), "utf-8")
                      ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
ValueError: unexpected '{' in field name

This is caused by **variables not containing the necessary variables to construct a version:

distance = "{{next_version}}.dev{{distance}}+{{vcs}}{{rev}}"
dirty = "{{base_version}}+d{{build_date:%Y%m%d}}"
distance-dirty = "{{next_version}}.dev{{distance}}+{{vcs}}{{rev}}.d{{build_date:%Y%m%d}}"

This error is primarily not very clear, maybe it would be best to let amusifier fail early if used outside of a Git environment?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions