It is planned to upgrade ST's plugin ecosystem to python 3.13.
Support for python 3.3 is being sunset. It can already be disabled via settings and will be removed next year.
Therefore plugins need to be prepared to maintain compatible with python 3.13.
I've found references to __file__ and __name__ globals in your package.
As modern python 3.1x releases move on towards __spec__ and drop support for __file__ and __package__ globals, it is recommended to replace relevant references to ensure compatibility with upcoming ST dev builds.
If this package targets ST4 and python 3.8+ it is an easy change by just replacing:
__file__ => __spec__.origin
__name__ => __spec__.name
__package__ => __spec__.parent
Python 3.3 doesn't support __spec__ and would require a fallback.
A common pattern might be
try:
package_path = os.path.dirname(__spec__.origin)
except (AttributeError, NameError):
package_path = os.path.dirname(__file__)
FWIW, ST4107+ supports calling sublime.cache_path(), sublime.installed_packages_path() and sublime.packages_path() at import time, which may help to replace/avoid various constructs like given example above.
It is planned to upgrade ST's plugin ecosystem to python 3.13.
Support for python 3.3 is being sunset. It can already be disabled via settings and will be removed next year.
Therefore plugins need to be prepared to maintain compatible with python 3.13.
I've found references to
__file__and__name__globals in your package.As modern python 3.1x releases move on towards
__spec__and drop support for__file__and__package__globals, it is recommended to replace relevant references to ensure compatibility with upcoming ST dev builds.If this package targets ST4 and python 3.8+ it is an easy change by just replacing:
__file__=>__spec__.origin__name__=>__spec__.name__package__=>__spec__.parentPython 3.3 doesn't support
__spec__and would require a fallback.A common pattern might be
FWIW, ST4107+ supports calling
sublime.cache_path(),sublime.installed_packages_path()andsublime.packages_path()at import time, which may help to replace/avoid various constructs like given example above.