Skip to content

Use __version__ instead of version() in python #922

Open
axel-grc wants to merge 2 commits intoRTKConsortium:mainfrom
axel-grc:version
Open

Use __version__ instead of version() in python #922
axel-grc wants to merge 2 commits intoRTKConsortium:mainfrom
axel-grc:version

Conversation

@axel-grc
Copy link
Copy Markdown
Collaborator

No description provided.

@SimonRit
Copy link
Copy Markdown
Collaborator

That does not seem to work, I installed a generated package in a new conda env and get

(test) srit@srit-Precision-5480:~$ python
Python 3.11.15 | packaged by conda-forge | (main, Mar  5 2026, 16:45:40) [GCC 14.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import itk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init__.py", line 162, in <module>
    _initialize_module()
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init__.py", line 157, in _initialize_module
    spec.loader.exec_module(loaded_module)
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init_rtk__.py", line 19, in <module>
    mod = importlib.import_module(mod_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/srit/miniconda3/envs/test/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'itk.rtkversion'

@axel-grc
Copy link
Copy Markdown
Collaborator Author

That does not seem to work, I installed a generated package in a new conda env and get

(test) srit@srit-Precision-5480:~$ python
Python 3.11.15 | packaged by conda-forge | (main, Mar  5 2026, 16:45:40) [GCC 14.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import itk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init__.py", line 162, in <module>
    _initialize_module()
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init__.py", line 157, in _initialize_module
    spec.loader.exec_module(loaded_module)
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init_rtk__.py", line 19, in <module>
    mod = importlib.import_module(mod_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/srit/miniconda3/envs/test/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'itk.rtkversion'

Yes, I forgot to change how the applications handle the version

@SimonRit
Copy link
Copy Markdown
Collaborator

Not there yet

>>> import itk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init__.py", line 162, in <module>
    _initialize_module()
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init__.py", line 157, in _initialize_module
    spec.loader.exec_module(loaded_module)
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/__init_rtk__.py", line 65, in <module>
    setattr(rtk_module, app_name, make_application_func(app_name))
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/rtkExtras.py", line 76, in make_application_func
    _parser = importlib.import_module(f"itk.{app_name}").build_parser()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/rtkadmmtotalvariation.py", line 10, in build_parser
    parser = rtk.RTKArgumentParser(
             ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/rtkargumentparser.py", line 25, in __init__
    self.add_argument("-V", "--version", action="version", version=rtk.version())
                                                                   ^^^^^^^^^^^
  File "/home/srit/miniconda3/envs/test/lib/python3.11/site-packages/itk/support/lazy.py", line 131, in __getattribute__
    value = types.ModuleType.__getattribute__(self, attr)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'RTK' has no attribute 'version'

itk.RTK.__version__ is now used to get the version instead of itk.RTK.version()
@SimonRit
Copy link
Copy Markdown
Collaborator

Thanks, works on my linux box. Can you test on Windows before merging please?

@SimonRit
Copy link
Copy Markdown
Collaborator

Missing note in the v3 backward incompatibilities doc file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants