vsphere-automation-sdk-python icon indicating copy to clipboard operation
vsphere-automation-sdk-python copied to clipboard

Use "com" folder as an implicit namespace

Open mxmrlt opened this issue 1 year ago • 2 comments

Describe the bug

While using this package as a dependency it is impossible to use another one which also has com folder in its source code.

The problem occurs mostly in editable installation mode.

These sub-packages contain an __init__.py file making fail any other packages with com.company namespace : vapi-common-client-.zip vcenter_bindings-.zip vmwarecloud_aws-.zip vmwarecloud_draas-.zip

The __init__.py file :

# Required to distribute different parts of this
# package as multiple distributables
try:
    import pkg_resources
    pkg_resources.declare_namespace(__name__)
except ImportError:
    from pkgutil import extend_path
    __path__ = extend_path(__path__, __name__)

There shouldn't be any __init__.py file in the "com" folder. This latter is "universal" and can be used by many others.

Reproduction steps

  1. pip install --upgrade git+https://github.com/vmware/vsphere-automation-sdk-python.git
  2. pip install --editable path-to-my-other-package-containing com.compagny namespace
  3. python -c "from com.company.mypackage.mymodule import my_function, my_class"
  4. Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'com.company'

Expected behavior

from com.company.mypackage.mymodule import my_function, my_class

should be possible.

Additional context

No response

mxmrlt avatar Jan 30 '24 07:01 mxmrlt

Hi @mxmrlt

This is an unfortunate case of "missing init.py trap". We are exploring the options like updating the SDK and its dependencies to use Implicit Namespace packages, removing "com" form namespace package etc. Once the approach is finalized, We will update the ticket with target dates by when the fix will be available.

Thanks Kunal

kunalpmj avatar Feb 12 '24 06:02 kunalpmj

The issue will be fixed in next SDK 8.0U3 release

kunalpmj avatar May 20 '24 06:05 kunalpmj

8.0U3 is released. Closing the issue

kunalpmj avatar Jul 08 '24 12:07 kunalpmj