diff --git a/setup.py b/setup.py index 1da79eb9..769bd9f8 100644 --- a/setup.py +++ b/setup.py @@ -49,12 +49,6 @@ EXTRA_REQUIRES = dict( # Dependency links for any of the aforementioned dependencies DEPENDENCY_LINKS = [] -# I18N setup -I18N_MAPPING_FILE = "babel.cfg" -I18N_INPUT_DIRS = "." -I18N_OUTPUT_DIR = os.path.join("src", "octoprint", "translations") -I18N_POT_FILE = os.path.join(I18N_OUTPUT_DIR, "messages.pot") - # Versioneer configuration versioneer.VCS = 'git' versioneer.versionfile_source = 'src/octoprint/_version.py' diff --git a/src/octoprint/setuptools/__init__.py b/src/octoprint/setuptools/__init__.py index 771e1c35..d98e0b0c 100644 --- a/src/octoprint/setuptools/__init__.py +++ b/src/octoprint/setuptools/__init__.py @@ -29,7 +29,7 @@ def package_data_dirs(source, sub_folders): return dirs -def recursively_handle_files(directory, file_matcher, folder_handler=None, file_handler=None): +def recursively_handle_files(directory, file_matcher, folder_matcher=None, folder_handler=None, file_handler=None): applied_handler = False for filename in os.listdir(directory): @@ -39,7 +39,7 @@ def recursively_handle_files(directory, file_matcher, folder_handler=None, file_ file_handler(path) applied_handler = True - elif os.path.isdir(path): + elif os.path.isdir(path) and (folder_matcher is None or folder_matcher(directory, filename, path)): sub_applied_handler = recursively_handle_files(path, file_matcher, folder_handler=folder_handler, file_handler=file_handler) if sub_applied_handler: applied_handler = True @@ -104,6 +104,7 @@ class CleanCommand(Command): recursively_handle_files( os.path.abspath(self.__class__.source_folder), lambda name: fnmatch.fnmatch(name.lower(), "*.pyc"), + folder_matcher=lambda dir, name, path: name != ".git", folder_handler=delete_folder_if_empty, file_handler=delete_file ) @@ -302,7 +303,9 @@ def get_babel_commandclasses(pot_file=None, mapping_file="babel.cfg", input_dirs 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): + requires=None, extra_requires=None, cmdclass=None, eggs=None): + import pkg_resources + package = "octoprint_{identifier}".format(**locals()) if additional_data is None: @@ -310,8 +313,8 @@ def create_plugin_setup_parameters(identifier="todo", name="TODO", version="0.1" if requires is None: requires = ["OctoPrint"] - if not isinstance(requires, (list, tuple)): - raise ValueError("requires must be a list or a tuple") + if not isinstance(requires, list): + raise ValueError("requires must be a list") if "OctoPrint" not in requires: requires = ["OctoPrint"] + list(requires) @@ -325,8 +328,17 @@ def create_plugin_setup_parameters(identifier="todo", name="TODO", version="0.1" if not isinstance(cmdclass, dict): raise ValueError("cmdclass must be a dict") + if eggs is None: + eggs = [] + if not isinstance(eggs, list): + raise ValueError("eggs must be a list") + + egg = "{name}*.egg-info".format(name=pkg_resources.to_filename(pkg_resources.safe_name(name))) + if egg not in eggs: + eggs = [egg] + eggs + cmdclass.update(dict( - clean=CleanCommand.for_options(source_folder=package) + clean=CleanCommand.for_options(source_folder=package, eggs=eggs) )) translation_dir = os.path.join(package, "translations")