Fix: Include all packages for a plugin during setup, not only the topmost one
Thanks @Salandora
This commit is contained in:
parent
a9d5e1643d
commit
ef1c9724c7
1 changed files with 19 additions and 8 deletions
|
|
@ -437,15 +437,23 @@ def get_babel_commandclasses(pot_file=None,
|
|||
|
||||
|
||||
def create_plugin_setup_parameters(identifier="todo", name="TODO", version="0.1", description="TODO", author="TODO",
|
||||
mail="todo@example.com", url="TODO", license="AGPLv3", additional_data=None,
|
||||
requires=None, extra_requires=None, cmdclass=None, eggs=None):
|
||||
mail="todo@example.com", url="TODO", license="AGPLv3", source_folder=".", additional_data=None,
|
||||
additional_packages=None, ignored_packages=None, requires=None, extra_requires=None,
|
||||
cmdclass=None, eggs=None, package=None):
|
||||
import pkg_resources
|
||||
|
||||
package = "octoprint_{identifier}".format(**locals())
|
||||
if package is None:
|
||||
package = "octoprint_{identifier}".format(**locals())
|
||||
|
||||
if additional_data is None:
|
||||
additional_data = list()
|
||||
|
||||
if additional_packages is None:
|
||||
additional_packages = list()
|
||||
|
||||
if ignored_packages is None:
|
||||
ignored_packages = list()
|
||||
|
||||
if requires is None:
|
||||
requires = ["OctoPrint"]
|
||||
if not isinstance(requires, list):
|
||||
|
|
@ -473,15 +481,18 @@ def create_plugin_setup_parameters(identifier="todo", name="TODO", version="0.1"
|
|||
eggs = [egg] + eggs
|
||||
|
||||
cmdclass.update(dict(
|
||||
clean=CleanCommand.for_options(source_folder=package, eggs=eggs)
|
||||
clean=CleanCommand.for_options(source_folder=os.path.join(source_folder, package), eggs=eggs)
|
||||
))
|
||||
|
||||
translation_dir = os.path.join("translations")
|
||||
translation_dir = os.path.join(source_folder, "translations")
|
||||
pot_file = os.path.join(translation_dir, "messages.pot")
|
||||
bundled_dir = os.path.join(package, "translations")
|
||||
bundled_dir = os.path.join(source_folder, package, "translations")
|
||||
if os.path.isdir(translation_dir) and os.path.isfile(pot_file):
|
||||
cmdclass.update(get_babel_commandclasses(pot_file=pot_file, output_dir=translation_dir, bundled_dir=bundled_dir, pack_name_prefix="{name}-i18n-".format(**locals()), pack_path_prefix="_plugins/{identifier}/".format(**locals())))
|
||||
|
||||
from setuptools import find_packages
|
||||
packages = find_packages(where=source_folder, exclude=ignored_packages, include=[package, "{package}.*".format(**locals())] + additional_packages)
|
||||
|
||||
return dict(
|
||||
name=name,
|
||||
version=version,
|
||||
|
|
@ -495,10 +506,10 @@ def create_plugin_setup_parameters(identifier="todo", name="TODO", version="0.1"
|
|||
cmdclass=cmdclass,
|
||||
|
||||
# we only have our plugin package to install
|
||||
packages=[package],
|
||||
packages=packages,
|
||||
|
||||
# we might have additional data files in sub folders that need to be installed too
|
||||
package_data={package: package_data_dirs(package, ["static", "templates", "translations"] + additional_data)},
|
||||
package_data={package: package_data_dirs(os.path.join(source_folder, package), ["static", "templates", "translations"] + additional_data)},
|
||||
include_package_data=True,
|
||||
|
||||
# If you have any package data that needs to be accessible on the file system, such as templates or static assets
|
||||
|
|
|
|||
Loading…
Reference in a new issue