netbox-plugin-skeleton
netbox-plugin-skeleton copied to clipboard
put more variables in common py file
Currently only the 'version' is in a py import file.
I would suggest to add more variables in there, those that are shared between the init.py and the setup.py
setup.py:
def get_pluginvar(variable,rel_path):
for line in read(rel_path).splitlines():
if line.startswith(f'__{variable}__'):
delim = '"' if '"' in line else "'"
return line.split(delim)[1]
else:
raise RuntimeError(f"Unable to find {variable} string in f{rel_path}.")
setup(
name=get_pluginvar('name','netbox_newplugin/pluginvars.py'),
version=get_pluginvar('version','netbox_newplugin/pluginvars.py'),
description=get_pluginvar('description','netbox_newplugin/pluginvars.py'),
long_description=long_description,
long_description_content_type="text/markdown",
url=get_pluginvar('url','netbox_newplugin/pluginvars.py'),
author=get_pluginvar('author','netbox_newplugin/pluginvars.py'),
author_email=get_pluginvar('author_email','netbox_newplugin/pluginvars.py'),
install_requires=[],
packages=find_packages(),
include_package_data=True,
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Framework :: Django',
'Programming Language :: Python :: 3',
]
)
pluginvars.py:
__name__ = 'netbox_newplugin'
__version__ = '0.0.0'
__description__ = ''
__author__ = ''
__author_email__ = ''
__url__ = ''
_ _ init _ _.py
from extras.plugins import PluginConfig
from .pluginvars import __name__
from .pluginvars import __version__
from .pluginvars import __description__
from .pluginvars import __author__
from .pluginvars import __author_email__
class NewpluginConfig(PluginConfig):
name = __name__
verbose_name = ''
description = __description__
version = __version__
author = __author__
author_email = __author_email__
required_settings = []
default_settings = {}
config = NewpluginConfig # noqa
(did not test this yet, so excuse any codos or typos)