From 65ffca7dedd9192ed4bd918895aa3ff9259d470b Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Thu, 29 Oct 2020 13:38:42 -0500 Subject: [PATCH 01/12] GitHub Actions: build and test on every push Let's ensure topic branches are in a usable state before pull requests are made --- .github/workflows/build.yml | 6 +----- .github/workflows/tests.yml | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f5798607..d7aba8abf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,11 +3,7 @@ name: Build -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] +on: [push, pull_request] jobs: build: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a76857b6e..a23510910 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,11 +3,7 @@ name: Tests -on: - push: - branches: [master] - pull_request: - branches: [master] +on: [push, pull_request] jobs: test: From 781a722f487acaba11102a0e4571cff378af2880 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Thu, 29 Oct 2020 13:10:10 -0500 Subject: [PATCH 02/12] setup.py: Automatically find packages Use setuptools.find_packages to avoid manually maintaining the package list. This restores __init__.py to the gourmet/exporters directory so it can be discovered. This also eliminates a bug in the previous crawl_plugins function that erroneously discovered __pycache__ and other non-source directories. --- gourmet/exporters/__init__.py | 0 setup.py | 27 ++++----------------------- 2 files changed, 4 insertions(+), 23 deletions(-) create mode 100644 gourmet/exporters/__init__.py diff --git a/gourmet/exporters/__init__.py b/gourmet/exporters/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/setup.py b/setup.py index a3162323b..4f320f0a6 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,8 @@ from pathlib import Path from distutils.core import Command -import setuptools +from setuptools import find_packages +from setuptools import setup from gourmet import version @@ -83,19 +84,6 @@ def run(self): merge_i18n() -def crawl_plugins(base, basename): - plugins = [] - subdirs = filter(lambda x: os.path.isdir(os.path.join(base, x)), - os.listdir(base)) - for subd in subdirs: - name = basename + '.' + subd - plugins.append(name) - plugins.extend(crawl_plugins(os.path.join(base, subd), name)) - return plugins - - -plugins = crawl_plugins(os.path.join('gourmet', 'plugins'), 'gourmet.plugins') - package_data = [ 'backends/default.db', 'plugins/*.gourmet-plugin', @@ -131,7 +119,7 @@ def crawl_plugins(base, basename): ] -setuptools.setup( +setup( name=version.name, version=version.version, description=version.description, @@ -139,14 +127,7 @@ def crawl_plugins(base, basename): author_email=version.author_email, url=version.website, license=version.license, - packages=['gourmet', - 'gourmet.backends', - 'gourmet.defaults', - 'gourmet.gtk_extras', - 'gourmet.importers', - 'gourmet.exporters', - 'gourmet.plugins', - ] + plugins, + packages=find_packages(), package_data={'gourmet': package_data}, cmdclass={'build_i18n': build_i18n}, entry_points={ From ed3f42ab44871893d995aa009df440aa8569bd0d Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Thu, 29 Oct 2020 17:12:47 -0500 Subject: [PATCH 03/12] Move tests out of the source directory We probably don't want to include tests when building non-source distributions, and non-development installs may not have the dependencies installed to run them anyway. --- .github/workflows/tests.yml | 2 +- .../tests => tests}/broken/obsolete_test_set.py | 0 {gourmet/tests => tests}/broken/readme.md | 0 .../tests => tests}/broken/test_exportManager.py | 0 {gourmet/tests => tests}/broken/test_gui.py | 0 .../tests => tests}/broken/test_importManager.py | 0 {gourmet/tests => tests}/broken/test_importers.py | 0 .../broken/test_interactive_importer.py | 0 .../tests => tests}/broken/test_plugin_loader.py | 0 .../tests => tests}/dogtail/test_unit_converter.py | 0 .../old_databases/gourmet-0.11.2/recipes.db | Bin .../old_databases/gourmet-0.13.8/guiprefs | 0 .../old_databases/gourmet-0.13.8/recipes.db | Bin {gourmet/tests => tests}/old_databases_test.sh | 0 .../recipe_files/allrecipes_com.html | 0 {gourmet/tests => tests}/recipe_files/athenos.mx2 | 0 {gourmet/tests => tests}/recipe_files/athenos1.mx2 | 0 .../recipe_files/epicurious_com.html | 0 .../tests => tests}/recipe_files/foodnetwork.html | 0 {gourmet/tests => tests}/recipe_files/ica_se.html | 0 .../tests => tests}/recipe_files/mealmaster.mmf | 0 .../recipe_files/mealmaster_2_col.mmf | 0 {gourmet/tests => tests}/recipe_files/nytimes.html | 0 {gourmet/tests => tests}/recipe_files/sample.kreml | 0 .../tests => tests}/recipe_files/sample_site.html | 0 {gourmet/tests => tests}/recipe_files/test_set.grmt | 0 {gourmet/tests => tests}/reference_setup/recipes.db | Bin .../tests => tests}/test_allrecipes_com_plugin.py | 0 {gourmet/tests => tests}/test_convert.py | 0 {gourmet/tests => tests}/test_db.py | 0 {gourmet/tests => tests}/test_epicurious_plugin.py | 0 {gourmet/tests => tests}/test_foodnetwork_plugin.py | 0 {gourmet/tests => tests}/test_ica_se_plugin.py | 0 {gourmet/tests => tests}/test_image_utils.py | 3 ++- {gourmet/tests => tests}/test_importer.py | 0 {gourmet/tests => tests}/test_nytimes_plugin.py | 0 {gourmet/tests => tests}/test_pango_html.py | 0 {gourmet/tests => tests}/test_prefs.py | 0 {gourmet/tests => tests}/test_reccard.py | 0 39 files changed, 3 insertions(+), 2 deletions(-) rename {gourmet/tests => tests}/broken/obsolete_test_set.py (100%) rename {gourmet/tests => tests}/broken/readme.md (100%) rename {gourmet/tests => tests}/broken/test_exportManager.py (100%) rename {gourmet/tests => tests}/broken/test_gui.py (100%) rename {gourmet/tests => tests}/broken/test_importManager.py (100%) rename {gourmet/tests => tests}/broken/test_importers.py (100%) rename {gourmet/tests => tests}/broken/test_interactive_importer.py (100%) rename {gourmet/tests => tests}/broken/test_plugin_loader.py (100%) rename {gourmet/tests => tests}/dogtail/test_unit_converter.py (100%) rename {gourmet/tests => tests}/old_databases/gourmet-0.11.2/recipes.db (100%) rename {gourmet/tests => tests}/old_databases/gourmet-0.13.8/guiprefs (100%) rename {gourmet/tests => tests}/old_databases/gourmet-0.13.8/recipes.db (100%) rename {gourmet/tests => tests}/old_databases_test.sh (100%) rename {gourmet/tests => tests}/recipe_files/allrecipes_com.html (100%) rename {gourmet/tests => tests}/recipe_files/athenos.mx2 (100%) rename {gourmet/tests => tests}/recipe_files/athenos1.mx2 (100%) rename {gourmet/tests => tests}/recipe_files/epicurious_com.html (100%) rename {gourmet/tests => tests}/recipe_files/foodnetwork.html (100%) rename {gourmet/tests => tests}/recipe_files/ica_se.html (100%) rename {gourmet/tests => tests}/recipe_files/mealmaster.mmf (100%) rename {gourmet/tests => tests}/recipe_files/mealmaster_2_col.mmf (100%) rename {gourmet/tests => tests}/recipe_files/nytimes.html (100%) rename {gourmet/tests => tests}/recipe_files/sample.kreml (100%) rename {gourmet/tests => tests}/recipe_files/sample_site.html (100%) rename {gourmet/tests => tests}/recipe_files/test_set.grmt (100%) rename {gourmet/tests => tests}/reference_setup/recipes.db (100%) rename {gourmet/tests => tests}/test_allrecipes_com_plugin.py (100%) rename {gourmet/tests => tests}/test_convert.py (100%) rename {gourmet/tests => tests}/test_db.py (100%) rename {gourmet/tests => tests}/test_epicurious_plugin.py (100%) rename {gourmet/tests => tests}/test_foodnetwork_plugin.py (100%) rename {gourmet/tests => tests}/test_ica_se_plugin.py (100%) rename {gourmet/tests => tests}/test_image_utils.py (97%) rename {gourmet/tests => tests}/test_importer.py (100%) rename {gourmet/tests => tests}/test_nytimes_plugin.py (100%) rename {gourmet/tests => tests}/test_pango_html.py (100%) rename {gourmet/tests => tests}/test_prefs.py (100%) rename {gourmet/tests => tests}/test_reccard.py (100%) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a23510910..06405a009 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,7 +36,7 @@ jobs: pip install . - name: Test with pytest - run: xvfb-run -a pytest -vv gourmet/tests/test_* + run: xvfb-run -a pytest -vv tests/test_* # - name: Test with mypy # run: mypy gourmet/ diff --git a/gourmet/tests/broken/obsolete_test_set.py b/tests/broken/obsolete_test_set.py similarity index 100% rename from gourmet/tests/broken/obsolete_test_set.py rename to tests/broken/obsolete_test_set.py diff --git a/gourmet/tests/broken/readme.md b/tests/broken/readme.md similarity index 100% rename from gourmet/tests/broken/readme.md rename to tests/broken/readme.md diff --git a/gourmet/tests/broken/test_exportManager.py b/tests/broken/test_exportManager.py similarity index 100% rename from gourmet/tests/broken/test_exportManager.py rename to tests/broken/test_exportManager.py diff --git a/gourmet/tests/broken/test_gui.py b/tests/broken/test_gui.py similarity index 100% rename from gourmet/tests/broken/test_gui.py rename to tests/broken/test_gui.py diff --git a/gourmet/tests/broken/test_importManager.py b/tests/broken/test_importManager.py similarity index 100% rename from gourmet/tests/broken/test_importManager.py rename to tests/broken/test_importManager.py diff --git a/gourmet/tests/broken/test_importers.py b/tests/broken/test_importers.py similarity index 100% rename from gourmet/tests/broken/test_importers.py rename to tests/broken/test_importers.py diff --git a/gourmet/tests/broken/test_interactive_importer.py b/tests/broken/test_interactive_importer.py similarity index 100% rename from gourmet/tests/broken/test_interactive_importer.py rename to tests/broken/test_interactive_importer.py diff --git a/gourmet/tests/broken/test_plugin_loader.py b/tests/broken/test_plugin_loader.py similarity index 100% rename from gourmet/tests/broken/test_plugin_loader.py rename to tests/broken/test_plugin_loader.py diff --git a/gourmet/tests/dogtail/test_unit_converter.py b/tests/dogtail/test_unit_converter.py similarity index 100% rename from gourmet/tests/dogtail/test_unit_converter.py rename to tests/dogtail/test_unit_converter.py diff --git a/gourmet/tests/old_databases/gourmet-0.11.2/recipes.db b/tests/old_databases/gourmet-0.11.2/recipes.db similarity index 100% rename from gourmet/tests/old_databases/gourmet-0.11.2/recipes.db rename to tests/old_databases/gourmet-0.11.2/recipes.db diff --git a/gourmet/tests/old_databases/gourmet-0.13.8/guiprefs b/tests/old_databases/gourmet-0.13.8/guiprefs similarity index 100% rename from gourmet/tests/old_databases/gourmet-0.13.8/guiprefs rename to tests/old_databases/gourmet-0.13.8/guiprefs diff --git a/gourmet/tests/old_databases/gourmet-0.13.8/recipes.db b/tests/old_databases/gourmet-0.13.8/recipes.db similarity index 100% rename from gourmet/tests/old_databases/gourmet-0.13.8/recipes.db rename to tests/old_databases/gourmet-0.13.8/recipes.db diff --git a/gourmet/tests/old_databases_test.sh b/tests/old_databases_test.sh similarity index 100% rename from gourmet/tests/old_databases_test.sh rename to tests/old_databases_test.sh diff --git a/gourmet/tests/recipe_files/allrecipes_com.html b/tests/recipe_files/allrecipes_com.html similarity index 100% rename from gourmet/tests/recipe_files/allrecipes_com.html rename to tests/recipe_files/allrecipes_com.html diff --git a/gourmet/tests/recipe_files/athenos.mx2 b/tests/recipe_files/athenos.mx2 similarity index 100% rename from gourmet/tests/recipe_files/athenos.mx2 rename to tests/recipe_files/athenos.mx2 diff --git a/gourmet/tests/recipe_files/athenos1.mx2 b/tests/recipe_files/athenos1.mx2 similarity index 100% rename from gourmet/tests/recipe_files/athenos1.mx2 rename to tests/recipe_files/athenos1.mx2 diff --git a/gourmet/tests/recipe_files/epicurious_com.html b/tests/recipe_files/epicurious_com.html similarity index 100% rename from gourmet/tests/recipe_files/epicurious_com.html rename to tests/recipe_files/epicurious_com.html diff --git a/gourmet/tests/recipe_files/foodnetwork.html b/tests/recipe_files/foodnetwork.html similarity index 100% rename from gourmet/tests/recipe_files/foodnetwork.html rename to tests/recipe_files/foodnetwork.html diff --git a/gourmet/tests/recipe_files/ica_se.html b/tests/recipe_files/ica_se.html similarity index 100% rename from gourmet/tests/recipe_files/ica_se.html rename to tests/recipe_files/ica_se.html diff --git a/gourmet/tests/recipe_files/mealmaster.mmf b/tests/recipe_files/mealmaster.mmf similarity index 100% rename from gourmet/tests/recipe_files/mealmaster.mmf rename to tests/recipe_files/mealmaster.mmf diff --git a/gourmet/tests/recipe_files/mealmaster_2_col.mmf b/tests/recipe_files/mealmaster_2_col.mmf similarity index 100% rename from gourmet/tests/recipe_files/mealmaster_2_col.mmf rename to tests/recipe_files/mealmaster_2_col.mmf diff --git a/gourmet/tests/recipe_files/nytimes.html b/tests/recipe_files/nytimes.html similarity index 100% rename from gourmet/tests/recipe_files/nytimes.html rename to tests/recipe_files/nytimes.html diff --git a/gourmet/tests/recipe_files/sample.kreml b/tests/recipe_files/sample.kreml similarity index 100% rename from gourmet/tests/recipe_files/sample.kreml rename to tests/recipe_files/sample.kreml diff --git a/gourmet/tests/recipe_files/sample_site.html b/tests/recipe_files/sample_site.html similarity index 100% rename from gourmet/tests/recipe_files/sample_site.html rename to tests/recipe_files/sample_site.html diff --git a/gourmet/tests/recipe_files/test_set.grmt b/tests/recipe_files/test_set.grmt similarity index 100% rename from gourmet/tests/recipe_files/test_set.grmt rename to tests/recipe_files/test_set.grmt diff --git a/gourmet/tests/reference_setup/recipes.db b/tests/reference_setup/recipes.db similarity index 100% rename from gourmet/tests/reference_setup/recipes.db rename to tests/reference_setup/recipes.db diff --git a/gourmet/tests/test_allrecipes_com_plugin.py b/tests/test_allrecipes_com_plugin.py similarity index 100% rename from gourmet/tests/test_allrecipes_com_plugin.py rename to tests/test_allrecipes_com_plugin.py diff --git a/gourmet/tests/test_convert.py b/tests/test_convert.py similarity index 100% rename from gourmet/tests/test_convert.py rename to tests/test_convert.py diff --git a/gourmet/tests/test_db.py b/tests/test_db.py similarity index 100% rename from gourmet/tests/test_db.py rename to tests/test_db.py diff --git a/gourmet/tests/test_epicurious_plugin.py b/tests/test_epicurious_plugin.py similarity index 100% rename from gourmet/tests/test_epicurious_plugin.py rename to tests/test_epicurious_plugin.py diff --git a/gourmet/tests/test_foodnetwork_plugin.py b/tests/test_foodnetwork_plugin.py similarity index 100% rename from gourmet/tests/test_foodnetwork_plugin.py rename to tests/test_foodnetwork_plugin.py diff --git a/gourmet/tests/test_ica_se_plugin.py b/tests/test_ica_se_plugin.py similarity index 100% rename from gourmet/tests/test_ica_se_plugin.py rename to tests/test_ica_se_plugin.py diff --git a/gourmet/tests/test_image_utils.py b/tests/test_image_utils.py similarity index 97% rename from gourmet/tests/test_image_utils.py rename to tests/test_image_utils.py index 4cf7b6d95..787a67583 100644 --- a/gourmet/tests/test_image_utils.py +++ b/tests/test_image_utils.py @@ -11,8 +11,9 @@ def test_make_thumbnail(): + # TODO: Switch to using resources instead of hard-coded paths path = Path(__file__) - logo = path.parent.parent / 'data' / 'images' / 'splash.png' + logo = path.parent.parent / 'gourmet'/ 'data' / 'images' / 'splash.png' thumbnail = make_thumbnail(str(logo)) x, y = thumbnail.size diff --git a/gourmet/tests/test_importer.py b/tests/test_importer.py similarity index 100% rename from gourmet/tests/test_importer.py rename to tests/test_importer.py diff --git a/gourmet/tests/test_nytimes_plugin.py b/tests/test_nytimes_plugin.py similarity index 100% rename from gourmet/tests/test_nytimes_plugin.py rename to tests/test_nytimes_plugin.py diff --git a/gourmet/tests/test_pango_html.py b/tests/test_pango_html.py similarity index 100% rename from gourmet/tests/test_pango_html.py rename to tests/test_pango_html.py diff --git a/gourmet/tests/test_prefs.py b/tests/test_prefs.py similarity index 100% rename from gourmet/tests/test_prefs.py rename to tests/test_prefs.py diff --git a/gourmet/tests/test_reccard.py b/tests/test_reccard.py similarity index 100% rename from gourmet/tests/test_reccard.py rename to tests/test_reccard.py From ee87fc3f228770e1bf3c16c1159c8a9fee526a69 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Fri, 30 Oct 2020 10:05:01 -0500 Subject: [PATCH 04/12] setup.py: Don't import ourselves This can cause installation to fail if we end up trying to import a dependency that isn't (yet) installed. --- setup.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/setup.py b/setup.py index 4f320f0a6..d74a84a9f 100644 --- a/setup.py +++ b/setup.py @@ -5,8 +5,6 @@ from setuptools import find_packages from setuptools import setup -from gourmet import version - package = 'gourmet' podir = Path('po') @@ -119,14 +117,18 @@ def run(self): ] +# TODO: Single-source this metadata with version.py? +# https://packaging.python.org/guides/single-sourcing-package-version/ provides +# some recommendations, however as noted under item 6, we do not want to import +# our own package from setup.py as it may cause installation to fail setup( - name=version.name, - version=version.version, - description=version.description, - author=version.author, - author_email=version.author_email, - url=version.website, - license=version.license, + name='gourmet', + version='0.17.5', + description='Recipe Organizer and Shopping List Generator', + author='Thomas Mills Hinkle', + author_email='Thomas_Hinkle@alumni.brown.edu', + url='http://thinkle.github.io/gourmet/', + license='GPL', packages=find_packages(), package_data={'gourmet': package_data}, cmdclass={'build_i18n': build_i18n}, From 4e6a5b790131dc357cfdc622c3b5611d60393735 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Fri, 30 Oct 2020 12:31:09 -0500 Subject: [PATCH 05/12] Move gourmet source into a 'src' directory Generally the project root will be our current working directory, which Python automatically includes in its system path. Since gourmet is no longer in the project root, we must now explicitly install it to run it, which helps ensure we have a working, installable distribution. --- po/POTFILES.in | 344 +++++++----------- setup.py | 3 +- .../gourmet}/GourmetRecipeManager.py | 0 {gourmet => src/gourmet}/Undo.py | 0 {gourmet => src/gourmet}/__init__.py | 0 {gourmet => src/gourmet}/__main__.py | 0 .../gourmet}/backends/DatabaseChooser.py | 0 {gourmet => src/gourmet}/backends/__init__.py | 0 {gourmet => src/gourmet}/backends/db.py | 0 {gourmet => src/gourmet}/backends/default.db | Bin {gourmet => src/gourmet}/batchEditor.py | 0 {gourmet => src/gourmet}/check_encodings.py | 0 {gourmet => src/gourmet}/convert.py | 0 {gourmet => src/gourmet}/data/ABBREV.txt | 0 {gourmet => src/gourmet}/data/FOOD_DES.txt | 0 {gourmet => src/gourmet}/data/WEIGHT.txt | 0 .../data/icons/48x48/apps/gourmet.png | Bin .../gourmet}/data/icons/gourmet.ico | Bin .../data/icons/scalable/apps/gourmet.svg | 0 .../data/images/AddToShoppingList.png | Bin .../gourmet}/data/images/blue_star.png | Bin .../gourmet}/data/images/gold_star.png | Bin .../gourmet}/data/images/half_blue_star.png | Bin .../gourmet}/data/images/half_gold_star.png | Bin .../gourmet}/data/images/no_star.png | Bin .../gourmet}/data/images/reccard.png | Bin .../gourmet}/data/images/reccard_edit.png | Bin .../gourmet}/data/images/splash.png | Bin .../gourmet}/data/images/splash.svg | 0 .../gourmet}/data/nutritional_data_sr_version | 0 {gourmet => src/gourmet}/data/recipe.dtd | 0 {gourmet => src/gourmet}/data/sound/error.wav | Bin {gourmet => src/gourmet}/data/sound/phone.wav | Bin .../gourmet}/data/sound/warning.wav | Bin .../gourmet}/data/style/default.css | 0 .../gourmet}/data/style/epubdefault.css | 0 {gourmet => src/gourmet}/defaults/__init__.py | 0 .../gourmet}/defaults/abstractLang.py | 0 {gourmet => src/gourmet}/defaults/defaults.py | 0 .../gourmet}/defaults/defaults_de.py | 0 .../gourmet}/defaults/defaults_en.py | 0 .../gourmet}/defaults/defaults_en_GB.py | 0 .../gourmet}/defaults/defaults_es.py | 0 .../gourmet}/defaults/defaults_fr.py | 0 .../gourmet}/defaults/defaults_nl.py | 0 .../gourmet}/defaults/defaults_pt.py | 0 .../gourmet}/defaults/defaults_ru.py | 0 .../gourmet}/defaults/defaults_sk.py | 0 .../gourmet}/defaults/defaults_sv.py | 0 .../gourmet}/exporters/MarkupString.py | 0 .../gourmet}/exporters/__init__.py | 0 .../exporters/eatdrinkfeelgood_exporter.py | 0 .../gourmet}/exporters/exportManager.py | 0 .../gourmet}/exporters/exporter.py | 0 .../gourmet}/exporters/gxml_exporter.py | 0 {gourmet => src/gourmet}/exporters/printer.py | 0 .../gourmet}/exporters/recipe_emailer.py | 0 .../exporters/reference_setup/recipes.mk | Bin .../gourmet}/exporters/rtf_exporter.py | 0 .../gourmet}/exporters/xml_exporter.py | 0 {gourmet => src/gourmet}/gdebug.py | 0 {gourmet => src/gourmet}/gglobals.py | 0 .../gourmet}/gtk_extras/LinkedTextView.py | 0 .../gourmet}/gtk_extras/WidgetSaver.py | 0 .../gourmet}/gtk_extras/__init__.py | 0 .../gourmet}/gtk_extras/cb_extras.py | 0 .../gourmet}/gtk_extras/dialog_extras.py | 0 .../gourmet}/gtk_extras/mnemonic_manager.py | 0 .../gourmet}/gtk_extras/optionTable.py | 0 .../gourmet}/gtk_extras/pageable_store.py | 0 .../gourmet}/gtk_extras/pango_buffer.py | 0 .../gourmet}/gtk_extras/pango_html.py | 0 .../gourmet}/gtk_extras/ratingWidget.py | 0 .../gourmet}/gtk_extras/treeview_extras.py | 0 .../gourmet}/gtk_extras/validation.py | 0 {gourmet => src/gourmet}/image_utils.py | 0 .../gourmet}/importers/__init__.py | 0 .../importers/generic_recipe_parser.py | 0 .../gourmet}/importers/html_importer.py | 0 .../gourmet}/importers/importManager.py | 0 .../gourmet}/importers/importer.py | 0 .../importers/interactive_importer.py | 0 .../gourmet}/importers/plaintext_importer.py | 0 .../gourmet}/importers/rezkonv_importer.py | 0 .../gourmet}/importers/webextras.py | 0 .../gourmet}/importers/xml_importer.py | 0 {gourmet => src/gourmet}/keymanager.py | 0 {gourmet => src/gourmet}/optionparser.py | 0 {gourmet => src/gourmet}/plugin.py | 0 {gourmet => src/gourmet}/plugin_gui.py | 0 {gourmet => src/gourmet}/plugin_loader.py | 0 {gourmet => src/gourmet}/plugins/__init__.py | 0 .../plugins/browse_plugin.gourmet-plugin.in | 0 .../plugins/browse_recipes/__init__.py | 0 .../plugins/browse_recipes/browser.py | 0 .../plugins/browse_recipes/icon_helpers.py | 0 .../plugins/browse_recipes/images/__init__.py | 0 .../browse_recipes/images/cooktime.png | Bin .../images/cooktime_empty_clock.png | Bin .../plugins/browse_recipes/images/cuisine.png | Bin .../images/generic_category.png | Bin .../browse_recipes/images/generic_recipe.png | Bin .../browse_recipes/images/preptime.png | Bin .../images/preptime_empty_clock.png | Bin .../plugins/browse_recipes/images/rating.png | Bin .../plugins/browse_recipes/images/source.png | Bin .../plugins/check_for_unicode_16/__init__.py | 0 .../duplicate_finder.gourmet-plugin.in | 0 .../plugins/duplicate_finder/__init__.py | 0 .../plugins/duplicate_finder/recipeMerger.py | 0 .../plugins/duplicate_finder/recipeMerger.ui | 0 .../duplicate_finder/recipeMergerPlugin.py | 0 .../gourmet}/plugins/email.gourmet-plugin.in | 0 .../gourmet}/plugins/email_plugin/__init__.py | 0 .../gourmet}/plugins/email_plugin/emailer.py | 0 .../plugins/email_plugin/emailer_plugin.py | 0 .../plugins/email_plugin/recipe_emailer.py | 0 .../plugins/field_editor.gourmet-plugin.in | 0 .../gourmet}/plugins/field_editor/__init__.py | 0 .../plugins/field_editor/fieldEditor.py | 0 .../plugins/import_export/__init__.py | 0 .../import_export/archive.gourmet-plugin.in | 0 .../import_export/archive_plugin/__init__.py | 0 .../archive_plugin/zip_importer_plugin.py | 0 .../archive_plugin/zip_readers.py | 0 .../import_export/epub.gourmet-plugin.in | 0 .../import_export/epub_plugin/__init__.py | 0 .../epub_plugin/epub_exporter.py | 0 .../epub_plugin/epub_exporter_plugin.py | 0 .../import_export/gxml.gourmet-plugin.in | 0 .../import_export/gxml_plugin/__init__.py | 0 .../gxml_plugin/gxml2_exporter.py | 0 .../gxml_plugin/gxml2_importer.py | 1 - .../gxml_plugin/gxml_exporter_plugin.py | 0 .../gxml_plugin/gxml_importer.py | 1 - .../gxml_plugin/gxml_importer_plugin.py | 0 .../import_export/html.gourmet-plugin.in | 0 .../import_export/html_plugin/__init__.py | 0 .../html_plugin/html_exporter.py | 0 .../html_plugin/html_exporter_plugin.py | 0 .../krecipe_plugin.gourmet-plugin.in | 0 .../import_export/krecipe_plugin/__init__.py | 0 .../krecipe_plugin/krecipe_importer.py | 0 .../krecipe_plugin/krecipe_importer_plugin.py | 0 .../mastercook_import_plugin/__init__.py | 0 .../mastercook_importer.py | 0 .../mastercook_importer_plugin.py | 0 .../mastercook_plaintext_importer.py | 1 - .../mastercook_plugin.gourmet-plugin.in | 0 .../mealmaster.gourmet-plugin.in | 0 .../mealmaster_plugin/__init__.py | 0 .../mealmaster_plugin/mealmaster_exporter.py | 0 .../mealmaster_exporter_plugin.py | 0 .../mealmaster_plugin/mealmaster_importer.py | 3 - .../mealmaster_importer_plugin.py | 0 .../mycookbook_plugin.gourmet-plugin.in | 0 .../mycookbook_plugin/__init__.py | 0 .../mycookbook_plugin/mycookbook_exporter.py | 0 .../mycookbook_exporter_plugin.py | 0 .../mycookbook_plugin/mycookbook_importer.py | 0 .../mycookbook_importer_plugin.py | 0 .../import_export/pdf.gourmet-plugin.in | 0 .../import_export/pdf_plugin/__init__.py | 0 .../import_export/pdf_plugin/page_drawer.py | 0 .../import_export/pdf_plugin/pdf_exporter.py | 0 .../pdf_plugin/pdf_exporter_plugin.py | 0 .../import_export/pdf_plugin/print_plugin.py | 0 .../import_export/plaintext.gourmet-plugin.in | 0 .../plaintext_plugin/__init__.py | 0 .../plaintext_exporter_plugin.py | 0 .../plaintext_importer_plugin.py | 0 .../web_import_plugin/__init__.py | 0 .../generic_web_importer_plugin.py | 0 .../web_import_plugin/webpage_importer.py | 0 .../import_export/webimport.gourmet-plugin.in | 0 .../website_import.gourmet-plugin.in | 0 .../website_import_plugins/__init__.py | 0 .../about_dot_com_plugin.py | 0 .../allrecipes_plugin.py | 0 .../cooksillustrated_plugin.py | 0 .../epicurious_plugin.py | 0 .../foodnetwork_plugin.py | 0 .../website_import_plugins/ica_se_plugin.py | 0 .../website_import_plugins/nytimes_plugin.py | 0 .../schema_org_parser.py | 0 .../website_import_plugins/state.py | 0 .../plugins/key_editor.gourmet-plugin.in | 0 .../gourmet}/plugins/key_editor/__init__.py | 0 .../gourmet}/plugins/key_editor/keyEditor.py | 0 .../plugins/key_editor/keyEditorPluggable.py | 0 .../plugins/key_editor/keyEditorPlugin.py | 0 .../gourmet}/plugins/key_editor/keyeditor.ui | 0 .../plugins/key_editor/recipeEditorPlugin.py | 0 .../plugins/listsaver.gourmet-plugin.in | 0 .../gourmet}/plugins/listsaver/__init__.py | 0 .../plugins/listsaver/shoppingSaverPlugin.py | 0 .../nutritional_information.gourmet-plugin.in | 0 .../nutritional_information/__init__.py | 0 .../nutritional_information/data_plugin.py | 0 .../databaseGrabber.py | 0 .../enter_nutritional_defaults.py | 0 .../nutritional_information/export_plugin.py | 0 .../images/Nutrition.png | Bin .../images/__init__.py | 0 .../nutritional_information/main_plugin.py | 0 .../nutritional_information/nutPrefsPlugin.py | 0 .../nut_recipe_card_display.ui | 0 .../nutritional_information/nutrition.py | 0 .../nutritionDisplay.py | 0 .../nutritional_information/nutritionDruid.py | 0 .../nutritional_information/nutritionDruid.ui | 0 .../nutritionGrabberGui.py | 0 .../nutritionInfoEditor.py | 0 .../nutritional_information/nutritionLabel.py | 0 .../nutritional_information/nutritionModel.py | 0 .../nutritional_information/nutritionView.py | 0 .../nutritional_information/parser_data.py | 0 .../nutritional_information/reccard_plugin.py | 0 .../shopping_plugin.py | 0 .../plugins/python_shell.gourmet-plugin.in | 0 .../gourmet}/plugins/python_shell/__init__.py | 0 .../plugins/python_shell/ipython_view.py | 0 .../shopping_associations.gourmet-plugin.in | 0 .../plugins/shopping_associations/__init__.py | 0 .../shopping_key_editor_plugin.py | 0 .../plugins/spellcheck.gourmet-plugin.in | 0 .../gourmet}/plugins/spellcheck/__init__.py | 0 .../spellcheck/reccard_spellcheck_plugin.py | 0 .../plugins/unit_converter.gourmet-plugin.in | 0 .../plugins/unit_converter/__init__.py | 0 .../plugins/unit_converter/convertGui.py | 0 .../plugins/unit_converter/converter.ui | 0 .../unit_display_prefs.gourmet-plugin.in | 0 .../plugins/unit_display_prefs/__init__.py | 0 .../unit_display_prefs/unit_prefs_dialog.py | 0 .../gourmet}/plugins/utf16.gourmet-plugin.in | 0 .../gourmet}/plugins/web_plugin/__init__.py | 0 .../plugins/web_plugin/gourmetweb/__init__.py | 0 .../web_plugin/gourmetweb/recview/__init__.py | 0 .../web_plugin/gourmetweb/recview/models.py | 0 .../web_plugin/gourmetweb/recview/tests.py | 0 .../web_plugin/gourmetweb/recview/views.py | 0 .../plugins/web_plugin/gourmetweb/settings.py | 0 .../gourmetweb/templates/about.html | 0 .../gourmetweb/templates/detect_screensize.js | 0 .../gourmetweb/templates/index.html | 0 .../web_plugin/gourmetweb/templates/jquery.js | 0 .../web_plugin/gourmetweb/templates/list.html | 0 .../web_plugin/gourmetweb/templates/menu.css | 0 .../web_plugin/gourmetweb/templates/menu.html | 0 .../web_plugin/gourmetweb/templates/rec.html | 0 .../web_plugin/gourmetweb/templates/shop.html | 0 .../plugins/web_plugin/gourmetweb/urls.py | 0 .../plugins/web_plugin/gourmetweb/wsgi.py | 0 .../gourmet}/plugins/web_plugin/manage.py | 0 {gourmet => src/gourmet}/prefs.py | 0 {gourmet => src/gourmet}/prefsGui.py | 0 {gourmet => src/gourmet}/reccard.py | 0 {gourmet => src/gourmet}/recindex.py | 0 {gourmet => src/gourmet}/recipeIdentifier.py | 0 {gourmet => src/gourmet}/recipeManager.py | 1 - {gourmet => src/gourmet}/settings.py | 0 {gourmet => src/gourmet}/shopEditor.py | 0 {gourmet => src/gourmet}/shopgui.py | 0 {gourmet => src/gourmet}/shopping.py | 0 {gourmet => src/gourmet}/sound.py | 0 {gourmet => src/gourmet}/threadManager.py | 0 {gourmet => src/gourmet}/timeScanner.py | 0 {gourmet => src/gourmet}/timer.py | 0 {gourmet => src/gourmet}/ui/app.ui | 0 {gourmet => src/gourmet}/ui/batchEditor.ui | 0 {gourmet => src/gourmet}/ui/catalog/README | 0 .../gourmet}/ui/catalog/gourmetwidgets.py | 0 .../gourmet}/ui/catalog/gourmetwidgets.xml | 0 .../gourmet}/ui/databaseChooser.ui | 0 .../gourmet}/ui/generic_importer.ui | 0 .../gourmet}/ui/preferenceDialog.ui | 0 .../gourmet}/ui/recCardDescriptionEditor.ui | 0 {gourmet => src/gourmet}/ui/recCardDisplay.ui | 0 .../gourmet}/ui/recCardIngredientsEditor.ui | 0 {gourmet => src/gourmet}/ui/recipe_index.ui | 0 {gourmet => src/gourmet}/ui/shopCatEditor.ui | 0 {gourmet => src/gourmet}/ui/timerDialog.ui | 0 {gourmet => src/gourmet}/ui/valueEditor.ui | 0 {gourmet => src/gourmet}/version.py | 0 tests/test_image_utils.py | 2 +- 286 files changed, 128 insertions(+), 228 deletions(-) rename {gourmet => src/gourmet}/GourmetRecipeManager.py (100%) rename {gourmet => src/gourmet}/Undo.py (100%) rename {gourmet => src/gourmet}/__init__.py (100%) rename {gourmet => src/gourmet}/__main__.py (100%) rename {gourmet => src/gourmet}/backends/DatabaseChooser.py (100%) rename {gourmet => src/gourmet}/backends/__init__.py (100%) rename {gourmet => src/gourmet}/backends/db.py (100%) rename {gourmet => src/gourmet}/backends/default.db (100%) rename {gourmet => src/gourmet}/batchEditor.py (100%) rename {gourmet => src/gourmet}/check_encodings.py (100%) rename {gourmet => src/gourmet}/convert.py (100%) rename {gourmet => src/gourmet}/data/ABBREV.txt (100%) rename {gourmet => src/gourmet}/data/FOOD_DES.txt (100%) rename {gourmet => src/gourmet}/data/WEIGHT.txt (100%) rename {gourmet => src/gourmet}/data/icons/48x48/apps/gourmet.png (100%) rename {gourmet => src/gourmet}/data/icons/gourmet.ico (100%) rename {gourmet => src/gourmet}/data/icons/scalable/apps/gourmet.svg (100%) rename {gourmet => src/gourmet}/data/images/AddToShoppingList.png (100%) rename {gourmet => src/gourmet}/data/images/blue_star.png (100%) rename {gourmet => src/gourmet}/data/images/gold_star.png (100%) rename {gourmet => src/gourmet}/data/images/half_blue_star.png (100%) rename {gourmet => src/gourmet}/data/images/half_gold_star.png (100%) rename {gourmet => src/gourmet}/data/images/no_star.png (100%) rename {gourmet => src/gourmet}/data/images/reccard.png (100%) rename {gourmet => src/gourmet}/data/images/reccard_edit.png (100%) rename {gourmet => src/gourmet}/data/images/splash.png (100%) rename {gourmet => src/gourmet}/data/images/splash.svg (100%) rename {gourmet => src/gourmet}/data/nutritional_data_sr_version (100%) rename {gourmet => src/gourmet}/data/recipe.dtd (100%) rename {gourmet => src/gourmet}/data/sound/error.wav (100%) rename {gourmet => src/gourmet}/data/sound/phone.wav (100%) rename {gourmet => src/gourmet}/data/sound/warning.wav (100%) rename {gourmet => src/gourmet}/data/style/default.css (100%) rename {gourmet => src/gourmet}/data/style/epubdefault.css (100%) rename {gourmet => src/gourmet}/defaults/__init__.py (100%) rename {gourmet => src/gourmet}/defaults/abstractLang.py (100%) rename {gourmet => src/gourmet}/defaults/defaults.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_de.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_en.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_en_GB.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_es.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_fr.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_nl.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_pt.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_ru.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_sk.py (100%) rename {gourmet => src/gourmet}/defaults/defaults_sv.py (100%) rename {gourmet => src/gourmet}/exporters/MarkupString.py (100%) rename {gourmet => src/gourmet}/exporters/__init__.py (100%) rename {gourmet => src/gourmet}/exporters/eatdrinkfeelgood_exporter.py (100%) rename {gourmet => src/gourmet}/exporters/exportManager.py (100%) rename {gourmet => src/gourmet}/exporters/exporter.py (100%) rename {gourmet => src/gourmet}/exporters/gxml_exporter.py (100%) rename {gourmet => src/gourmet}/exporters/printer.py (100%) rename {gourmet => src/gourmet}/exporters/recipe_emailer.py (100%) rename {gourmet => src/gourmet}/exporters/reference_setup/recipes.mk (100%) rename {gourmet => src/gourmet}/exporters/rtf_exporter.py (100%) rename {gourmet => src/gourmet}/exporters/xml_exporter.py (100%) rename {gourmet => src/gourmet}/gdebug.py (100%) rename {gourmet => src/gourmet}/gglobals.py (100%) rename {gourmet => src/gourmet}/gtk_extras/LinkedTextView.py (100%) rename {gourmet => src/gourmet}/gtk_extras/WidgetSaver.py (100%) rename {gourmet => src/gourmet}/gtk_extras/__init__.py (100%) rename {gourmet => src/gourmet}/gtk_extras/cb_extras.py (100%) rename {gourmet => src/gourmet}/gtk_extras/dialog_extras.py (100%) rename {gourmet => src/gourmet}/gtk_extras/mnemonic_manager.py (100%) rename {gourmet => src/gourmet}/gtk_extras/optionTable.py (100%) rename {gourmet => src/gourmet}/gtk_extras/pageable_store.py (100%) rename {gourmet => src/gourmet}/gtk_extras/pango_buffer.py (100%) rename {gourmet => src/gourmet}/gtk_extras/pango_html.py (100%) rename {gourmet => src/gourmet}/gtk_extras/ratingWidget.py (100%) rename {gourmet => src/gourmet}/gtk_extras/treeview_extras.py (100%) rename {gourmet => src/gourmet}/gtk_extras/validation.py (100%) rename {gourmet => src/gourmet}/image_utils.py (100%) rename {gourmet => src/gourmet}/importers/__init__.py (100%) rename {gourmet => src/gourmet}/importers/generic_recipe_parser.py (100%) rename {gourmet => src/gourmet}/importers/html_importer.py (100%) rename {gourmet => src/gourmet}/importers/importManager.py (100%) rename {gourmet => src/gourmet}/importers/importer.py (100%) rename {gourmet => src/gourmet}/importers/interactive_importer.py (100%) rename {gourmet => src/gourmet}/importers/plaintext_importer.py (100%) rename {gourmet => src/gourmet}/importers/rezkonv_importer.py (100%) rename {gourmet => src/gourmet}/importers/webextras.py (100%) rename {gourmet => src/gourmet}/importers/xml_importer.py (100%) rename {gourmet => src/gourmet}/keymanager.py (100%) rename {gourmet => src/gourmet}/optionparser.py (100%) rename {gourmet => src/gourmet}/plugin.py (100%) rename {gourmet => src/gourmet}/plugin_gui.py (100%) rename {gourmet => src/gourmet}/plugin_loader.py (100%) rename {gourmet => src/gourmet}/plugins/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/browse_plugin.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/browser.py (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/icon_helpers.py (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/cooktime.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/cooktime_empty_clock.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/cuisine.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/generic_category.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/generic_recipe.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/preptime.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/preptime_empty_clock.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/rating.png (100%) rename {gourmet => src/gourmet}/plugins/browse_recipes/images/source.png (100%) rename {gourmet => src/gourmet}/plugins/check_for_unicode_16/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/duplicate_finder.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/duplicate_finder/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/duplicate_finder/recipeMerger.py (100%) rename {gourmet => src/gourmet}/plugins/duplicate_finder/recipeMerger.ui (100%) rename {gourmet => src/gourmet}/plugins/duplicate_finder/recipeMergerPlugin.py (100%) rename {gourmet => src/gourmet}/plugins/email.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/email_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/email_plugin/emailer.py (100%) rename {gourmet => src/gourmet}/plugins/email_plugin/emailer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/email_plugin/recipe_emailer.py (100%) rename {gourmet => src/gourmet}/plugins/field_editor.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/field_editor/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/field_editor/fieldEditor.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/archive.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/archive_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/archive_plugin/zip_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/archive_plugin/zip_readers.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/epub.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/epub_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/epub_plugin/epub_exporter.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/epub_plugin/epub_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/gxml.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/gxml_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/gxml_plugin/gxml2_exporter.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/gxml_plugin/gxml2_importer.py (98%) rename {gourmet => src/gourmet}/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/gxml_plugin/gxml_importer.py (99%) rename {gourmet => src/gourmet}/plugins/import_export/gxml_plugin/gxml_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/html.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/html_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/html_plugin/html_exporter.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/html_plugin/html_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/krecipe_plugin.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/krecipe_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/krecipe_plugin/krecipe_importer.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mastercook_import_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mastercook_import_plugin/mastercook_importer.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py (99%) rename {gourmet => src/gourmet}/plugins/import_export/mastercook_plugin.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/mealmaster.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/mealmaster_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mealmaster_plugin/mealmaster_importer.py (99%) rename {gourmet => src/gourmet}/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mycookbook_plugin.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/mycookbook_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mycookbook_plugin/mycookbook_exporter.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mycookbook_plugin/mycookbook_importer.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/pdf.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/pdf_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/pdf_plugin/page_drawer.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/pdf_plugin/pdf_exporter.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/pdf_plugin/print_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/plaintext.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/plaintext_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/web_import_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/web_import_plugin/webpage_importer.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/webimport.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/about_dot_com_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/allrecipes_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/cooksillustrated_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/epicurious_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/foodnetwork_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/ica_se_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/nytimes_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/schema_org_parser.py (100%) rename {gourmet => src/gourmet}/plugins/import_export/website_import_plugins/state.py (100%) rename {gourmet => src/gourmet}/plugins/key_editor.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/key_editor/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/key_editor/keyEditor.py (100%) rename {gourmet => src/gourmet}/plugins/key_editor/keyEditorPluggable.py (100%) rename {gourmet => src/gourmet}/plugins/key_editor/keyEditorPlugin.py (100%) rename {gourmet => src/gourmet}/plugins/key_editor/keyeditor.ui (100%) rename {gourmet => src/gourmet}/plugins/key_editor/recipeEditorPlugin.py (100%) rename {gourmet => src/gourmet}/plugins/listsaver.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/listsaver/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/listsaver/shoppingSaverPlugin.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/data_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/databaseGrabber.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/enter_nutritional_defaults.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/export_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/images/Nutrition.png (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/images/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/main_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutPrefsPlugin.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nut_recipe_card_display.ui (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutrition.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionDisplay.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionDruid.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionDruid.ui (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionGrabberGui.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionInfoEditor.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionLabel.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionModel.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/nutritionView.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/parser_data.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/reccard_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/nutritional_information/shopping_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/python_shell.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/python_shell/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/python_shell/ipython_view.py (100%) rename {gourmet => src/gourmet}/plugins/shopping_associations.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/shopping_associations/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/shopping_associations/shopping_key_editor_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/spellcheck.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/spellcheck/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/spellcheck/reccard_spellcheck_plugin.py (100%) rename {gourmet => src/gourmet}/plugins/unit_converter.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/unit_converter/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/unit_converter/convertGui.py (100%) rename {gourmet => src/gourmet}/plugins/unit_converter/converter.ui (100%) rename {gourmet => src/gourmet}/plugins/unit_display_prefs.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/unit_display_prefs/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/unit_display_prefs/unit_prefs_dialog.py (100%) rename {gourmet => src/gourmet}/plugins/utf16.gourmet-plugin.in (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/recview/__init__.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/recview/models.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/recview/tests.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/recview/views.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/settings.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/about.html (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/detect_screensize.js (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/index.html (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/jquery.js (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/list.html (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/menu.css (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/menu.html (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/rec.html (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/templates/shop.html (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/urls.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/gourmetweb/wsgi.py (100%) rename {gourmet => src/gourmet}/plugins/web_plugin/manage.py (100%) rename {gourmet => src/gourmet}/prefs.py (100%) rename {gourmet => src/gourmet}/prefsGui.py (100%) rename {gourmet => src/gourmet}/reccard.py (100%) rename {gourmet => src/gourmet}/recindex.py (100%) rename {gourmet => src/gourmet}/recipeIdentifier.py (100%) rename {gourmet => src/gourmet}/recipeManager.py (98%) rename {gourmet => src/gourmet}/settings.py (100%) rename {gourmet => src/gourmet}/shopEditor.py (100%) rename {gourmet => src/gourmet}/shopgui.py (100%) rename {gourmet => src/gourmet}/shopping.py (100%) rename {gourmet => src/gourmet}/sound.py (100%) rename {gourmet => src/gourmet}/threadManager.py (100%) rename {gourmet => src/gourmet}/timeScanner.py (100%) rename {gourmet => src/gourmet}/timer.py (100%) rename {gourmet => src/gourmet}/ui/app.ui (100%) rename {gourmet => src/gourmet}/ui/batchEditor.ui (100%) rename {gourmet => src/gourmet}/ui/catalog/README (100%) rename {gourmet => src/gourmet}/ui/catalog/gourmetwidgets.py (100%) rename {gourmet => src/gourmet}/ui/catalog/gourmetwidgets.xml (100%) rename {gourmet => src/gourmet}/ui/databaseChooser.ui (100%) rename {gourmet => src/gourmet}/ui/generic_importer.ui (100%) rename {gourmet => src/gourmet}/ui/preferenceDialog.ui (100%) rename {gourmet => src/gourmet}/ui/recCardDescriptionEditor.ui (100%) rename {gourmet => src/gourmet}/ui/recCardDisplay.ui (100%) rename {gourmet => src/gourmet}/ui/recCardIngredientsEditor.ui (100%) rename {gourmet => src/gourmet}/ui/recipe_index.ui (100%) rename {gourmet => src/gourmet}/ui/shopCatEditor.ui (100%) rename {gourmet => src/gourmet}/ui/timerDialog.ui (100%) rename {gourmet => src/gourmet}/ui/valueEditor.ui (100%) rename {gourmet => src/gourmet}/version.py (100%) diff --git a/po/POTFILES.in b/po/POTFILES.in index e37f74733..603e554cf 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,221 +1,127 @@ -[type: gettext/glade]gourmet/ui/app.ui -[type: gettext/glade]gourmet/ui/batchEditor.ui -[type: gettext/glade]gourmet/ui/databaseChooser.ui -[type: gettext/glade]gourmet/ui/generic_importer.ui -[type: gettext/glade]gourmet/ui/preferenceDialog.ui -[type: gettext/glade]gourmet/ui/recCardDescriptionEditor.ui -[type: gettext/glade]gourmet/ui/recCardDisplay.ui -[type: gettext/glade]gourmet/ui/recCardIngredientsEditor.ui -[type: gettext/glade]gourmet/ui/recipe_index.ui -[type: gettext/glade]gourmet/ui/shopCatEditor.ui -[type: gettext/glade]gourmet/ui/timerDialog.ui -[type: gettext/glade]gourmet/ui/valueEditor.ui +[type: gettext/glade]src/gourmet/ui/app.ui +[type: gettext/glade]src/gourmet/ui/batchEditor.ui +[type: gettext/glade]src/gourmet/ui/databaseChooser.ui +[type: gettext/glade]src/gourmet/ui/generic_importer.ui +[type: gettext/glade]src/gourmet/ui/preferenceDialog.ui +[type: gettext/glade]src/gourmet/ui/recCardDescriptionEditor.ui +[type: gettext/glade]src/gourmet/ui/recCardDisplay.ui +[type: gettext/glade]src/gourmet/ui/recCardIngredientsEditor.ui +[type: gettext/glade]src/gourmet/ui/recipe_index.ui +[type: gettext/glade]src/gourmet/ui/shopCatEditor.ui +[type: gettext/glade]src/gourmet/ui/timerDialog.ui +[type: gettext/glade]src/gourmet/ui/valueEditor.ui +src/gourmet/version.py +src/gourmet/backends/DatabaseChooser.py +src/gourmet/backends/db.py +src/gourmet/shopgui.py +src/gourmet/reccard.py +src/gourmet/timer.py +src/gourmet/plugin_gui.py +src/gourmet/gglobals.py +src/gourmet/gtk_extras/validation.py +src/gourmet/gtk_extras/ratingWidget.py +src/gourmet/gtk_extras/dialog_extras.py +src/gourmet/shopping.py +src/gourmet/check_encodings.py +src/gourmet/GourmetRecipeManager.py +src/gourmet/plugins/web_plugin/gourmetweb/recview/views.py +src/gourmet/plugins/key_editor/keyEditorPlugin.py +src/gourmet/plugins/key_editor/keyEditor.py +src/gourmet/plugins/key_editor/recipeEditorPlugin.py +[type: gettext/glade]src/gourmet/plugins/key_editor/keyeditor.ui +src/gourmet/plugins/python_shell/__init__.py +src/gourmet/plugins/shopping_associations/shopping_key_editor_plugin.py +src/gourmet/plugins/unit_display_prefs/unit_prefs_dialog.py +src/gourmet/plugins/unit_display_prefs/__init__.py +src/gourmet/plugins/browse_recipes/browser.py +src/gourmet/plugins/duplicate_finder/recipeMerger.py +src/gourmet/plugins/duplicate_finder/recipeMergerPlugin.py +[type: gettext/glade]src/gourmet/plugins/duplicate_finder/recipeMerger.ui +src/gourmet/plugins/field_editor/fieldEditor.py +src/gourmet/plugins/field_editor/__init__.py +src/gourmet/plugins/email_plugin/emailer_plugin.py +src/gourmet/plugins/email_plugin/recipe_emailer.py +src/gourmet/plugins/unit_converter/convertGui.py +src/gourmet/plugins/unit_converter/__init__.py +[type: gettext/glade]src/gourmet/plugins/unit_converter/converter.ui +src/gourmet/plugins/import_export/archive_plugin/zip_importer_plugin.py +src/gourmet/plugins/import_export/archive_plugin/zip_readers.py +src/gourmet/plugins/import_export/html_plugin/html_exporter_plugin.py +src/gourmet/plugins/import_export/html_plugin/html_exporter.py +src/gourmet/plugins/import_export/epub_plugin/epub_exporter.py +src/gourmet/plugins/import_export/epub_plugin/epub_exporter_plugin.py +src/gourmet/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py +src/gourmet/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py +src/gourmet/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py +src/gourmet/plugins/import_export/website_import_plugins/cooksillustrated_plugin.py +src/gourmet/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py +src/gourmet/plugins/import_export/gxml_plugin/gxml_importer_plugin.py +src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py +src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer.py +src/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py +src/gourmet/plugins/import_export/pdf_plugin/print_plugin.py +src/gourmet/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py +src/gourmet/plugins/import_export/pdf_plugin/pdf_exporter.py +src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py +src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py +src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py +src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py +src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py +src/gourmet/plugins/listsaver/shoppingSaverPlugin.py +src/gourmet/plugins/nutritional_information/export_plugin.py +src/gourmet/plugins/nutritional_information/nutritionDruid.py +src/gourmet/plugins/nutritional_information/nutPrefsPlugin.py +src/gourmet/plugins/nutritional_information/reccard_plugin.py +src/gourmet/plugins/nutritional_information/nutritionModel.py +src/gourmet/plugins/nutritional_information/nutritionDisplay.py +src/gourmet/plugins/nutritional_information/nutritionLabel.py +src/gourmet/plugins/nutritional_information/nutritionGrabberGui.py +src/gourmet/plugins/nutritional_information/databaseGrabber.py +src/gourmet/plugins/nutritional_information/main_plugin.py +src/gourmet/plugins/nutritional_information/parser_data.py +src/gourmet/plugins/nutritional_information/nutritionInfoEditor.py +src/gourmet/plugins/nutritional_information/shopping_plugin.py +[type: gettext/glade]src/gourmet/plugins/nutritional_information/nut_recipe_card_display.ui +[type: gettext/glade]src/gourmet/plugins/nutritional_information/nutritionDruid.ui +src/gourmet/exporters/exporter.py +src/gourmet/exporters/recipe_emailer.py +src/gourmet/exporters/exportManager.py +src/gourmet/exporters/printer.py +src/gourmet/exporters/rtf_exporter.py +src/gourmet/recipeIdentifier.py +src/gourmet/importers/webextras.py +src/gourmet/importers/generic_recipe_parser.py +src/gourmet/importers/importManager.py +src/gourmet/importers/plaintext_importer.py +src/gourmet/importers/importer.py +src/gourmet/importers/html_importer.py +src/gourmet/importers/interactive_importer.py +src/gourmet/recindex.py +src/gourmet/threadManager.py +src/gourmet/convert.py gourmet.appdata.xml.in gourmet.desktop.in -gourmet/GourmetRecipeManager.py -gourmet/Undo.py -gourmet/__init__.py -gourmet/backends/DatabaseChooser.py -gourmet/backends/__init__.py -gourmet/backends/db.py -gourmet/batchEditor.py -gourmet/check_encodings.py -gourmet/convert.py -gourmet/defaults/__init__.py -gourmet/defaults/defaults.py -gourmet/defaults/defaults_de.py -gourmet/defaults/defaults_en.py -gourmet/defaults/defaults_en_GB.py -gourmet/defaults/defaults_es.py -gourmet/defaults/defaults_fr.py -gourmet/defaults/defaults_nl.py -gourmet/defaults/defaults_pt.py -gourmet/defaults/defaults_sk.py -gourmet/defaults/defaults_sv.py -gourmet/exporters/MarkupString.py -gourmet/exporters/__init__.py -gourmet/exporters/eatdrinkfeelgood_exporter.py -gourmet/exporters/exportManager.py -gourmet/exporters/exporter.py -gourmet/exporters/gxml_exporter.py -gourmet/exporters/printer.py -gourmet/exporters/recipe_emailer.py -gourmet/exporters/rtf_exporter.py -gourmet/exporters/xml_exporter.py -gourmet/gdebug.py -gourmet/gglobals.py -gourmet/gtk_extras/LinkedTextView.py -gourmet/gtk_extras/WidgetSaver.py -gourmet/gtk_extras/__init__.py -gourmet/gtk_extras/cb_extras.py -gourmet/gtk_extras/dialog_extras.py -gourmet/gtk_extras/mnemonic_manager.py -gourmet/gtk_extras/optionTable.py -gourmet/gtk_extras/pageable_store.py -gourmet/gtk_extras/ratingWidget.py -gourmet/gtk_extras/treeview_extras.py -gourmet/gtk_extras/validation.py -gourmet/importers/__init__.py -gourmet/importers/generic_recipe_parser.py -gourmet/importers/html_importer.py -gourmet/importers/imageBrowser.py -gourmet/importers/importManager.py -gourmet/importers/importer.py -gourmet/importers/interactive_importer.py -gourmet/importers/plaintext_importer.py -gourmet/importers/rezkonv_importer.py -gourmet/importers/webextras.py -gourmet/importers/xml_importer.py -gourmet/keymanager.py -gourmet/plugin.py -gourmet/plugin_gui.py -gourmet/plugin_loader.py -gourmet/plugins/__init__.py -[type: gettext/ini]gourmet/plugins/browse_plugin.gourmet-plugin.in -gourmet/plugins/browse_recipes/__init__.py -gourmet/plugins/browse_recipes/browser.py -gourmet/plugins/browse_recipes/icon_helpers.py -gourmet/plugins/browse_recipes/images/__init__.py -gourmet/plugins/check_for_unicode_16/__init__.py -[type: gettext/ini]gourmet/plugins/duplicate_finder.gourmet-plugin.in -gourmet/plugins/duplicate_finder/__init__.py -gourmet/plugins/duplicate_finder/recipeMerger.py -[type: gettext/glade]gourmet/plugins/duplicate_finder/recipeMerger.ui -gourmet/plugins/duplicate_finder/recipeMergerPlugin.py -[type: gettext/ini]gourmet/plugins/email.gourmet-plugin.in -gourmet/plugins/email_plugin/__init__.py -gourmet/plugins/email_plugin/emailer.py -gourmet/plugins/email_plugin/emailer_plugin.py -gourmet/plugins/email_plugin/recipe_emailer.py -[type: gettext/ini]gourmet/plugins/field_editor.gourmet-plugin.in -gourmet/plugins/field_editor/__init__.py -gourmet/plugins/field_editor/fieldEditor.py -gourmet/plugins/import_export/__init__.py -[type: gettext/ini]gourmet/plugins/import_export/archive.gourmet-plugin.in -gourmet/plugins/import_export/archive_plugin/__init__.py -gourmet/plugins/import_export/archive_plugin/zip_importer_plugin.py -gourmet/plugins/import_export/archive_plugin/zip_readers.py -[type: gettext/ini]gourmet/plugins/import_export/gxml.gourmet-plugin.in -gourmet/plugins/import_export/gxml_plugin/__init__.py -gourmet/plugins/import_export/gxml_plugin/gxml2_exporter.py -gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py -gourmet/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py -gourmet/plugins/import_export/gxml_plugin/gxml_importer.py -gourmet/plugins/import_export/gxml_plugin/gxml_importer_plugin.py -[type: gettext/ini]gourmet/plugins/import_export/html.gourmet-plugin.in -gourmet/plugins/import_export/html_plugin/__init__.py -gourmet/plugins/import_export/html_plugin/html_exporter.py -gourmet/plugins/import_export/html_plugin/html_exporter_plugin.py -[type: gettext/ini]gourmet/plugins/import_export/krecipe_plugin.gourmet-plugin.in -gourmet/plugins/import_export/krecipe_plugin/__init__.py -gourmet/plugins/import_export/krecipe_plugin/krecipe_importer.py -gourmet/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py -gourmet/plugins/import_export/mastercook_import_plugin/__init__.py -gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer.py -gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py -gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py -[type: gettext/ini]gourmet/plugins/import_export/mastercook_plugin.gourmet-plugin.in -[type: gettext/ini]gourmet/plugins/import_export/mycookbook_plugin.gourmet-plugin.in -gourmet/plugins/import_export/mycookbook_plugin/__init__.py -gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter.py -gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py -gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer.py -gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py -[type: gettext/ini]gourmet/plugins/import_export/mealmaster.gourmet-plugin.in -gourmet/plugins/import_export/mealmaster_plugin/__init__.py -gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py -gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py -gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py -gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py -[type: gettext/ini]gourmet/plugins/import_export/pdf.gourmet-plugin.in -gourmet/plugins/import_export/pdf_plugin/__init__.py -gourmet/plugins/import_export/pdf_plugin/page_drawer.py -gourmet/plugins/import_export/pdf_plugin/pdf_exporter.py -gourmet/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py -gourmet/plugins/import_export/pdf_plugin/print_plugin.py -[type: gettext/ini]gourmet/plugins/import_export/plaintext.gourmet-plugin.in -gourmet/plugins/import_export/plaintext_plugin/__init__.py -gourmet/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py -gourmet/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py -gourmet/plugins/import_export/web_import_plugin/__init__.py -gourmet/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py -gourmet/plugins/import_export/web_import_plugin/webpage_importer.py -[type: gettext/ini]gourmet/plugins/import_export/webimport.gourmet-plugin.in -[type: gettext/ini]gourmet/plugins/import_export/website_import.gourmet-plugin.in -gourmet/plugins/import_export/website_import_plugins/__init__.py -gourmet/plugins/import_export/website_import_plugins/about_dot_com_plugin.py -gourmet/plugins/import_export/website_import_plugins/allrecipes_plugin.py -gourmet/plugins/import_export/website_import_plugins/foodnetwork_plugin.py -[type: gettext/ini]gourmet/plugins/key_editor.gourmet-plugin.in -gourmet/plugins/key_editor/__init__.py -gourmet/plugins/key_editor/keyEditor.py -gourmet/plugins/key_editor/keyEditorPluggable.py -gourmet/plugins/key_editor/keyEditorPlugin.py -[type: gettext/glade]gourmet/plugins/key_editor/keyeditor.ui -gourmet/plugins/key_editor/recipeEditorPlugin.py -[type: gettext/ini]gourmet/plugins/listsaver.gourmet-plugin.in -gourmet/plugins/listsaver/__init__.py -gourmet/plugins/listsaver/shoppingSaverPlugin.py -[type: gettext/ini]gourmet/plugins/nutritional_information.gourmet-plugin.in -gourmet/plugins/nutritional_information/__init__.py -gourmet/plugins/nutritional_information/data_plugin.py -gourmet/plugins/nutritional_information/databaseGrabber.py -gourmet/plugins/nutritional_information/enter_nutritional_defaults.py -gourmet/plugins/nutritional_information/export_plugin.py -gourmet/plugins/nutritional_information/images/__init__.py -gourmet/plugins/nutritional_information/main_plugin.py -gourmet/plugins/nutritional_information/nutPrefsPlugin.py -[type: gettext/glade]gourmet/plugins/nutritional_information/nut_recipe_card_display.ui -gourmet/plugins/nutritional_information/nutrition.py -gourmet/plugins/nutritional_information/nutritionDisplay.py -[type: gettext/glade]gourmet/plugins/nutritional_information/nutritionDruid.ui -gourmet/plugins/nutritional_information/nutritionDruid.py -gourmet/plugins/nutritional_information/nutritionGrabberGui.py -gourmet/plugins/nutritional_information/nutritionInfoEditor.py -gourmet/plugins/nutritional_information/nutritionLabel.py -gourmet/plugins/nutritional_information/nutritionModel.py -gourmet/plugins/nutritional_information/nutritionView.py -gourmet/plugins/nutritional_information/parser_data.py -gourmet/plugins/nutritional_information/reccard_plugin.py -gourmet/plugins/nutritional_information/shopping_plugin.py -[type: gettext/ini]gourmet/plugins/python_shell.gourmet-plugin.in -gourmet/plugins/python_shell/__init__.py -gourmet/plugins/python_shell/ipython_view.py -[type: gettext/ini]gourmet/plugins/shopping_associations.gourmet-plugin.in -gourmet/plugins/shopping_associations/__init__.py -gourmet/plugins/shopping_associations/shopping_key_editor_plugin.py -[type: gettext/ini]gourmet/plugins/spellcheck.gourmet-plugin.in -gourmet/plugins/spellcheck/__init__.py -gourmet/plugins/spellcheck/reccard_spellcheck_plugin.py -[type: gettext/ini]gourmet/plugins/unit_converter.gourmet-plugin.in -gourmet/plugins/unit_converter/__init__.py -gourmet/plugins/unit_converter/convertGui.py -[type: gettext/glade]gourmet/plugins/unit_converter/converter.ui -[type: gettext/ini]gourmet/plugins/unit_display_prefs.gourmet-plugin.in -gourmet/plugins/unit_display_prefs/__init__.py -gourmet/plugins/unit_display_prefs/unit_prefs_dialog.py -[type: gettext/ini]gourmet/plugins/utf16.gourmet-plugin.in -gourmet/plugins/web_plugin/manage.py -gourmet/plugins/web_plugin/gourmetweb/__init__.py -gourmet/plugins/web_plugin/gourmetweb/recview/__init__.py -gourmet/plugins/web_plugin/gourmetweb/recview/models.py -gourmet/plugins/web_plugin/gourmetweb/recview/tests.py -gourmet/plugins/web_plugin/gourmetweb/recview/views.py -gourmet/plugins/web_plugin/gourmetweb/settings.py -gourmet/plugins/web_plugin/gourmetweb/urls.py -gourmet/prefs.py -gourmet/prefsGui.py -gourmet/reccard.py -gourmet/recindex.py -gourmet/recipeIdentifier.py -gourmet/recipeManager.py -gourmet/shopEditor.py -gourmet/shopgui.py -gourmet/shopping.py -gourmet/sound.py -gourmet/sound_gst.py -gourmet/sound_windows.py -gourmet/threadManager.py -gourmet/timeScanner.py -gourmet/timer.py -gourmet/version.py +[type: gettext/ini]src/gourmet/plugins/browse_plugin.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/duplicate_finder.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/email.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/field_editor.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/archive.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/gxml.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/html.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/krecipe_plugin.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/mastercook_plugin.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/mycookbook_plugin.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/mealmaster.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/pdf.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/plaintext.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/webimport.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/import_export/website_import.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/key_editor.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/listsaver.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/nutritional_information.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/python_shell.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/shopping_associations.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/spellcheck.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/unit_converter.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/unit_display_prefs.gourmet-plugin.in +[type: gettext/ini]src/gourmet/plugins/utf16.gourmet-plugin.in diff --git a/setup.py b/setup.py index d74a84a9f..a5ded348d 100644 --- a/setup.py +++ b/setup.py @@ -129,7 +129,8 @@ def run(self): author_email='Thomas_Hinkle@alumni.brown.edu', url='http://thinkle.github.io/gourmet/', license='GPL', - packages=find_packages(), + package_dir={'': 'src'}, + packages=find_packages('src'), package_data={'gourmet': package_data}, cmdclass={'build_i18n': build_i18n}, entry_points={ diff --git a/gourmet/GourmetRecipeManager.py b/src/gourmet/GourmetRecipeManager.py similarity index 100% rename from gourmet/GourmetRecipeManager.py rename to src/gourmet/GourmetRecipeManager.py diff --git a/gourmet/Undo.py b/src/gourmet/Undo.py similarity index 100% rename from gourmet/Undo.py rename to src/gourmet/Undo.py diff --git a/gourmet/__init__.py b/src/gourmet/__init__.py similarity index 100% rename from gourmet/__init__.py rename to src/gourmet/__init__.py diff --git a/gourmet/__main__.py b/src/gourmet/__main__.py similarity index 100% rename from gourmet/__main__.py rename to src/gourmet/__main__.py diff --git a/gourmet/backends/DatabaseChooser.py b/src/gourmet/backends/DatabaseChooser.py similarity index 100% rename from gourmet/backends/DatabaseChooser.py rename to src/gourmet/backends/DatabaseChooser.py diff --git a/gourmet/backends/__init__.py b/src/gourmet/backends/__init__.py similarity index 100% rename from gourmet/backends/__init__.py rename to src/gourmet/backends/__init__.py diff --git a/gourmet/backends/db.py b/src/gourmet/backends/db.py similarity index 100% rename from gourmet/backends/db.py rename to src/gourmet/backends/db.py diff --git a/gourmet/backends/default.db b/src/gourmet/backends/default.db similarity index 100% rename from gourmet/backends/default.db rename to src/gourmet/backends/default.db diff --git a/gourmet/batchEditor.py b/src/gourmet/batchEditor.py similarity index 100% rename from gourmet/batchEditor.py rename to src/gourmet/batchEditor.py diff --git a/gourmet/check_encodings.py b/src/gourmet/check_encodings.py similarity index 100% rename from gourmet/check_encodings.py rename to src/gourmet/check_encodings.py diff --git a/gourmet/convert.py b/src/gourmet/convert.py similarity index 100% rename from gourmet/convert.py rename to src/gourmet/convert.py diff --git a/gourmet/data/ABBREV.txt b/src/gourmet/data/ABBREV.txt similarity index 100% rename from gourmet/data/ABBREV.txt rename to src/gourmet/data/ABBREV.txt diff --git a/gourmet/data/FOOD_DES.txt b/src/gourmet/data/FOOD_DES.txt similarity index 100% rename from gourmet/data/FOOD_DES.txt rename to src/gourmet/data/FOOD_DES.txt diff --git a/gourmet/data/WEIGHT.txt b/src/gourmet/data/WEIGHT.txt similarity index 100% rename from gourmet/data/WEIGHT.txt rename to src/gourmet/data/WEIGHT.txt diff --git a/gourmet/data/icons/48x48/apps/gourmet.png b/src/gourmet/data/icons/48x48/apps/gourmet.png similarity index 100% rename from gourmet/data/icons/48x48/apps/gourmet.png rename to src/gourmet/data/icons/48x48/apps/gourmet.png diff --git a/gourmet/data/icons/gourmet.ico b/src/gourmet/data/icons/gourmet.ico similarity index 100% rename from gourmet/data/icons/gourmet.ico rename to src/gourmet/data/icons/gourmet.ico diff --git a/gourmet/data/icons/scalable/apps/gourmet.svg b/src/gourmet/data/icons/scalable/apps/gourmet.svg similarity index 100% rename from gourmet/data/icons/scalable/apps/gourmet.svg rename to src/gourmet/data/icons/scalable/apps/gourmet.svg diff --git a/gourmet/data/images/AddToShoppingList.png b/src/gourmet/data/images/AddToShoppingList.png similarity index 100% rename from gourmet/data/images/AddToShoppingList.png rename to src/gourmet/data/images/AddToShoppingList.png diff --git a/gourmet/data/images/blue_star.png b/src/gourmet/data/images/blue_star.png similarity index 100% rename from gourmet/data/images/blue_star.png rename to src/gourmet/data/images/blue_star.png diff --git a/gourmet/data/images/gold_star.png b/src/gourmet/data/images/gold_star.png similarity index 100% rename from gourmet/data/images/gold_star.png rename to src/gourmet/data/images/gold_star.png diff --git a/gourmet/data/images/half_blue_star.png b/src/gourmet/data/images/half_blue_star.png similarity index 100% rename from gourmet/data/images/half_blue_star.png rename to src/gourmet/data/images/half_blue_star.png diff --git a/gourmet/data/images/half_gold_star.png b/src/gourmet/data/images/half_gold_star.png similarity index 100% rename from gourmet/data/images/half_gold_star.png rename to src/gourmet/data/images/half_gold_star.png diff --git a/gourmet/data/images/no_star.png b/src/gourmet/data/images/no_star.png similarity index 100% rename from gourmet/data/images/no_star.png rename to src/gourmet/data/images/no_star.png diff --git a/gourmet/data/images/reccard.png b/src/gourmet/data/images/reccard.png similarity index 100% rename from gourmet/data/images/reccard.png rename to src/gourmet/data/images/reccard.png diff --git a/gourmet/data/images/reccard_edit.png b/src/gourmet/data/images/reccard_edit.png similarity index 100% rename from gourmet/data/images/reccard_edit.png rename to src/gourmet/data/images/reccard_edit.png diff --git a/gourmet/data/images/splash.png b/src/gourmet/data/images/splash.png similarity index 100% rename from gourmet/data/images/splash.png rename to src/gourmet/data/images/splash.png diff --git a/gourmet/data/images/splash.svg b/src/gourmet/data/images/splash.svg similarity index 100% rename from gourmet/data/images/splash.svg rename to src/gourmet/data/images/splash.svg diff --git a/gourmet/data/nutritional_data_sr_version b/src/gourmet/data/nutritional_data_sr_version similarity index 100% rename from gourmet/data/nutritional_data_sr_version rename to src/gourmet/data/nutritional_data_sr_version diff --git a/gourmet/data/recipe.dtd b/src/gourmet/data/recipe.dtd similarity index 100% rename from gourmet/data/recipe.dtd rename to src/gourmet/data/recipe.dtd diff --git a/gourmet/data/sound/error.wav b/src/gourmet/data/sound/error.wav similarity index 100% rename from gourmet/data/sound/error.wav rename to src/gourmet/data/sound/error.wav diff --git a/gourmet/data/sound/phone.wav b/src/gourmet/data/sound/phone.wav similarity index 100% rename from gourmet/data/sound/phone.wav rename to src/gourmet/data/sound/phone.wav diff --git a/gourmet/data/sound/warning.wav b/src/gourmet/data/sound/warning.wav similarity index 100% rename from gourmet/data/sound/warning.wav rename to src/gourmet/data/sound/warning.wav diff --git a/gourmet/data/style/default.css b/src/gourmet/data/style/default.css similarity index 100% rename from gourmet/data/style/default.css rename to src/gourmet/data/style/default.css diff --git a/gourmet/data/style/epubdefault.css b/src/gourmet/data/style/epubdefault.css similarity index 100% rename from gourmet/data/style/epubdefault.css rename to src/gourmet/data/style/epubdefault.css diff --git a/gourmet/defaults/__init__.py b/src/gourmet/defaults/__init__.py similarity index 100% rename from gourmet/defaults/__init__.py rename to src/gourmet/defaults/__init__.py diff --git a/gourmet/defaults/abstractLang.py b/src/gourmet/defaults/abstractLang.py similarity index 100% rename from gourmet/defaults/abstractLang.py rename to src/gourmet/defaults/abstractLang.py diff --git a/gourmet/defaults/defaults.py b/src/gourmet/defaults/defaults.py similarity index 100% rename from gourmet/defaults/defaults.py rename to src/gourmet/defaults/defaults.py diff --git a/gourmet/defaults/defaults_de.py b/src/gourmet/defaults/defaults_de.py similarity index 100% rename from gourmet/defaults/defaults_de.py rename to src/gourmet/defaults/defaults_de.py diff --git a/gourmet/defaults/defaults_en.py b/src/gourmet/defaults/defaults_en.py similarity index 100% rename from gourmet/defaults/defaults_en.py rename to src/gourmet/defaults/defaults_en.py diff --git a/gourmet/defaults/defaults_en_GB.py b/src/gourmet/defaults/defaults_en_GB.py similarity index 100% rename from gourmet/defaults/defaults_en_GB.py rename to src/gourmet/defaults/defaults_en_GB.py diff --git a/gourmet/defaults/defaults_es.py b/src/gourmet/defaults/defaults_es.py similarity index 100% rename from gourmet/defaults/defaults_es.py rename to src/gourmet/defaults/defaults_es.py diff --git a/gourmet/defaults/defaults_fr.py b/src/gourmet/defaults/defaults_fr.py similarity index 100% rename from gourmet/defaults/defaults_fr.py rename to src/gourmet/defaults/defaults_fr.py diff --git a/gourmet/defaults/defaults_nl.py b/src/gourmet/defaults/defaults_nl.py similarity index 100% rename from gourmet/defaults/defaults_nl.py rename to src/gourmet/defaults/defaults_nl.py diff --git a/gourmet/defaults/defaults_pt.py b/src/gourmet/defaults/defaults_pt.py similarity index 100% rename from gourmet/defaults/defaults_pt.py rename to src/gourmet/defaults/defaults_pt.py diff --git a/gourmet/defaults/defaults_ru.py b/src/gourmet/defaults/defaults_ru.py similarity index 100% rename from gourmet/defaults/defaults_ru.py rename to src/gourmet/defaults/defaults_ru.py diff --git a/gourmet/defaults/defaults_sk.py b/src/gourmet/defaults/defaults_sk.py similarity index 100% rename from gourmet/defaults/defaults_sk.py rename to src/gourmet/defaults/defaults_sk.py diff --git a/gourmet/defaults/defaults_sv.py b/src/gourmet/defaults/defaults_sv.py similarity index 100% rename from gourmet/defaults/defaults_sv.py rename to src/gourmet/defaults/defaults_sv.py diff --git a/gourmet/exporters/MarkupString.py b/src/gourmet/exporters/MarkupString.py similarity index 100% rename from gourmet/exporters/MarkupString.py rename to src/gourmet/exporters/MarkupString.py diff --git a/gourmet/exporters/__init__.py b/src/gourmet/exporters/__init__.py similarity index 100% rename from gourmet/exporters/__init__.py rename to src/gourmet/exporters/__init__.py diff --git a/gourmet/exporters/eatdrinkfeelgood_exporter.py b/src/gourmet/exporters/eatdrinkfeelgood_exporter.py similarity index 100% rename from gourmet/exporters/eatdrinkfeelgood_exporter.py rename to src/gourmet/exporters/eatdrinkfeelgood_exporter.py diff --git a/gourmet/exporters/exportManager.py b/src/gourmet/exporters/exportManager.py similarity index 100% rename from gourmet/exporters/exportManager.py rename to src/gourmet/exporters/exportManager.py diff --git a/gourmet/exporters/exporter.py b/src/gourmet/exporters/exporter.py similarity index 100% rename from gourmet/exporters/exporter.py rename to src/gourmet/exporters/exporter.py diff --git a/gourmet/exporters/gxml_exporter.py b/src/gourmet/exporters/gxml_exporter.py similarity index 100% rename from gourmet/exporters/gxml_exporter.py rename to src/gourmet/exporters/gxml_exporter.py diff --git a/gourmet/exporters/printer.py b/src/gourmet/exporters/printer.py similarity index 100% rename from gourmet/exporters/printer.py rename to src/gourmet/exporters/printer.py diff --git a/gourmet/exporters/recipe_emailer.py b/src/gourmet/exporters/recipe_emailer.py similarity index 100% rename from gourmet/exporters/recipe_emailer.py rename to src/gourmet/exporters/recipe_emailer.py diff --git a/gourmet/exporters/reference_setup/recipes.mk b/src/gourmet/exporters/reference_setup/recipes.mk similarity index 100% rename from gourmet/exporters/reference_setup/recipes.mk rename to src/gourmet/exporters/reference_setup/recipes.mk diff --git a/gourmet/exporters/rtf_exporter.py b/src/gourmet/exporters/rtf_exporter.py similarity index 100% rename from gourmet/exporters/rtf_exporter.py rename to src/gourmet/exporters/rtf_exporter.py diff --git a/gourmet/exporters/xml_exporter.py b/src/gourmet/exporters/xml_exporter.py similarity index 100% rename from gourmet/exporters/xml_exporter.py rename to src/gourmet/exporters/xml_exporter.py diff --git a/gourmet/gdebug.py b/src/gourmet/gdebug.py similarity index 100% rename from gourmet/gdebug.py rename to src/gourmet/gdebug.py diff --git a/gourmet/gglobals.py b/src/gourmet/gglobals.py similarity index 100% rename from gourmet/gglobals.py rename to src/gourmet/gglobals.py diff --git a/gourmet/gtk_extras/LinkedTextView.py b/src/gourmet/gtk_extras/LinkedTextView.py similarity index 100% rename from gourmet/gtk_extras/LinkedTextView.py rename to src/gourmet/gtk_extras/LinkedTextView.py diff --git a/gourmet/gtk_extras/WidgetSaver.py b/src/gourmet/gtk_extras/WidgetSaver.py similarity index 100% rename from gourmet/gtk_extras/WidgetSaver.py rename to src/gourmet/gtk_extras/WidgetSaver.py diff --git a/gourmet/gtk_extras/__init__.py b/src/gourmet/gtk_extras/__init__.py similarity index 100% rename from gourmet/gtk_extras/__init__.py rename to src/gourmet/gtk_extras/__init__.py diff --git a/gourmet/gtk_extras/cb_extras.py b/src/gourmet/gtk_extras/cb_extras.py similarity index 100% rename from gourmet/gtk_extras/cb_extras.py rename to src/gourmet/gtk_extras/cb_extras.py diff --git a/gourmet/gtk_extras/dialog_extras.py b/src/gourmet/gtk_extras/dialog_extras.py similarity index 100% rename from gourmet/gtk_extras/dialog_extras.py rename to src/gourmet/gtk_extras/dialog_extras.py diff --git a/gourmet/gtk_extras/mnemonic_manager.py b/src/gourmet/gtk_extras/mnemonic_manager.py similarity index 100% rename from gourmet/gtk_extras/mnemonic_manager.py rename to src/gourmet/gtk_extras/mnemonic_manager.py diff --git a/gourmet/gtk_extras/optionTable.py b/src/gourmet/gtk_extras/optionTable.py similarity index 100% rename from gourmet/gtk_extras/optionTable.py rename to src/gourmet/gtk_extras/optionTable.py diff --git a/gourmet/gtk_extras/pageable_store.py b/src/gourmet/gtk_extras/pageable_store.py similarity index 100% rename from gourmet/gtk_extras/pageable_store.py rename to src/gourmet/gtk_extras/pageable_store.py diff --git a/gourmet/gtk_extras/pango_buffer.py b/src/gourmet/gtk_extras/pango_buffer.py similarity index 100% rename from gourmet/gtk_extras/pango_buffer.py rename to src/gourmet/gtk_extras/pango_buffer.py diff --git a/gourmet/gtk_extras/pango_html.py b/src/gourmet/gtk_extras/pango_html.py similarity index 100% rename from gourmet/gtk_extras/pango_html.py rename to src/gourmet/gtk_extras/pango_html.py diff --git a/gourmet/gtk_extras/ratingWidget.py b/src/gourmet/gtk_extras/ratingWidget.py similarity index 100% rename from gourmet/gtk_extras/ratingWidget.py rename to src/gourmet/gtk_extras/ratingWidget.py diff --git a/gourmet/gtk_extras/treeview_extras.py b/src/gourmet/gtk_extras/treeview_extras.py similarity index 100% rename from gourmet/gtk_extras/treeview_extras.py rename to src/gourmet/gtk_extras/treeview_extras.py diff --git a/gourmet/gtk_extras/validation.py b/src/gourmet/gtk_extras/validation.py similarity index 100% rename from gourmet/gtk_extras/validation.py rename to src/gourmet/gtk_extras/validation.py diff --git a/gourmet/image_utils.py b/src/gourmet/image_utils.py similarity index 100% rename from gourmet/image_utils.py rename to src/gourmet/image_utils.py diff --git a/gourmet/importers/__init__.py b/src/gourmet/importers/__init__.py similarity index 100% rename from gourmet/importers/__init__.py rename to src/gourmet/importers/__init__.py diff --git a/gourmet/importers/generic_recipe_parser.py b/src/gourmet/importers/generic_recipe_parser.py similarity index 100% rename from gourmet/importers/generic_recipe_parser.py rename to src/gourmet/importers/generic_recipe_parser.py diff --git a/gourmet/importers/html_importer.py b/src/gourmet/importers/html_importer.py similarity index 100% rename from gourmet/importers/html_importer.py rename to src/gourmet/importers/html_importer.py diff --git a/gourmet/importers/importManager.py b/src/gourmet/importers/importManager.py similarity index 100% rename from gourmet/importers/importManager.py rename to src/gourmet/importers/importManager.py diff --git a/gourmet/importers/importer.py b/src/gourmet/importers/importer.py similarity index 100% rename from gourmet/importers/importer.py rename to src/gourmet/importers/importer.py diff --git a/gourmet/importers/interactive_importer.py b/src/gourmet/importers/interactive_importer.py similarity index 100% rename from gourmet/importers/interactive_importer.py rename to src/gourmet/importers/interactive_importer.py diff --git a/gourmet/importers/plaintext_importer.py b/src/gourmet/importers/plaintext_importer.py similarity index 100% rename from gourmet/importers/plaintext_importer.py rename to src/gourmet/importers/plaintext_importer.py diff --git a/gourmet/importers/rezkonv_importer.py b/src/gourmet/importers/rezkonv_importer.py similarity index 100% rename from gourmet/importers/rezkonv_importer.py rename to src/gourmet/importers/rezkonv_importer.py diff --git a/gourmet/importers/webextras.py b/src/gourmet/importers/webextras.py similarity index 100% rename from gourmet/importers/webextras.py rename to src/gourmet/importers/webextras.py diff --git a/gourmet/importers/xml_importer.py b/src/gourmet/importers/xml_importer.py similarity index 100% rename from gourmet/importers/xml_importer.py rename to src/gourmet/importers/xml_importer.py diff --git a/gourmet/keymanager.py b/src/gourmet/keymanager.py similarity index 100% rename from gourmet/keymanager.py rename to src/gourmet/keymanager.py diff --git a/gourmet/optionparser.py b/src/gourmet/optionparser.py similarity index 100% rename from gourmet/optionparser.py rename to src/gourmet/optionparser.py diff --git a/gourmet/plugin.py b/src/gourmet/plugin.py similarity index 100% rename from gourmet/plugin.py rename to src/gourmet/plugin.py diff --git a/gourmet/plugin_gui.py b/src/gourmet/plugin_gui.py similarity index 100% rename from gourmet/plugin_gui.py rename to src/gourmet/plugin_gui.py diff --git a/gourmet/plugin_loader.py b/src/gourmet/plugin_loader.py similarity index 100% rename from gourmet/plugin_loader.py rename to src/gourmet/plugin_loader.py diff --git a/gourmet/plugins/__init__.py b/src/gourmet/plugins/__init__.py similarity index 100% rename from gourmet/plugins/__init__.py rename to src/gourmet/plugins/__init__.py diff --git a/gourmet/plugins/browse_plugin.gourmet-plugin.in b/src/gourmet/plugins/browse_plugin.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/browse_plugin.gourmet-plugin.in rename to src/gourmet/plugins/browse_plugin.gourmet-plugin.in diff --git a/gourmet/plugins/browse_recipes/__init__.py b/src/gourmet/plugins/browse_recipes/__init__.py similarity index 100% rename from gourmet/plugins/browse_recipes/__init__.py rename to src/gourmet/plugins/browse_recipes/__init__.py diff --git a/gourmet/plugins/browse_recipes/browser.py b/src/gourmet/plugins/browse_recipes/browser.py similarity index 100% rename from gourmet/plugins/browse_recipes/browser.py rename to src/gourmet/plugins/browse_recipes/browser.py diff --git a/gourmet/plugins/browse_recipes/icon_helpers.py b/src/gourmet/plugins/browse_recipes/icon_helpers.py similarity index 100% rename from gourmet/plugins/browse_recipes/icon_helpers.py rename to src/gourmet/plugins/browse_recipes/icon_helpers.py diff --git a/gourmet/plugins/browse_recipes/images/__init__.py b/src/gourmet/plugins/browse_recipes/images/__init__.py similarity index 100% rename from gourmet/plugins/browse_recipes/images/__init__.py rename to src/gourmet/plugins/browse_recipes/images/__init__.py diff --git a/gourmet/plugins/browse_recipes/images/cooktime.png b/src/gourmet/plugins/browse_recipes/images/cooktime.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/cooktime.png rename to src/gourmet/plugins/browse_recipes/images/cooktime.png diff --git a/gourmet/plugins/browse_recipes/images/cooktime_empty_clock.png b/src/gourmet/plugins/browse_recipes/images/cooktime_empty_clock.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/cooktime_empty_clock.png rename to src/gourmet/plugins/browse_recipes/images/cooktime_empty_clock.png diff --git a/gourmet/plugins/browse_recipes/images/cuisine.png b/src/gourmet/plugins/browse_recipes/images/cuisine.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/cuisine.png rename to src/gourmet/plugins/browse_recipes/images/cuisine.png diff --git a/gourmet/plugins/browse_recipes/images/generic_category.png b/src/gourmet/plugins/browse_recipes/images/generic_category.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/generic_category.png rename to src/gourmet/plugins/browse_recipes/images/generic_category.png diff --git a/gourmet/plugins/browse_recipes/images/generic_recipe.png b/src/gourmet/plugins/browse_recipes/images/generic_recipe.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/generic_recipe.png rename to src/gourmet/plugins/browse_recipes/images/generic_recipe.png diff --git a/gourmet/plugins/browse_recipes/images/preptime.png b/src/gourmet/plugins/browse_recipes/images/preptime.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/preptime.png rename to src/gourmet/plugins/browse_recipes/images/preptime.png diff --git a/gourmet/plugins/browse_recipes/images/preptime_empty_clock.png b/src/gourmet/plugins/browse_recipes/images/preptime_empty_clock.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/preptime_empty_clock.png rename to src/gourmet/plugins/browse_recipes/images/preptime_empty_clock.png diff --git a/gourmet/plugins/browse_recipes/images/rating.png b/src/gourmet/plugins/browse_recipes/images/rating.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/rating.png rename to src/gourmet/plugins/browse_recipes/images/rating.png diff --git a/gourmet/plugins/browse_recipes/images/source.png b/src/gourmet/plugins/browse_recipes/images/source.png similarity index 100% rename from gourmet/plugins/browse_recipes/images/source.png rename to src/gourmet/plugins/browse_recipes/images/source.png diff --git a/gourmet/plugins/check_for_unicode_16/__init__.py b/src/gourmet/plugins/check_for_unicode_16/__init__.py similarity index 100% rename from gourmet/plugins/check_for_unicode_16/__init__.py rename to src/gourmet/plugins/check_for_unicode_16/__init__.py diff --git a/gourmet/plugins/duplicate_finder.gourmet-plugin.in b/src/gourmet/plugins/duplicate_finder.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/duplicate_finder.gourmet-plugin.in rename to src/gourmet/plugins/duplicate_finder.gourmet-plugin.in diff --git a/gourmet/plugins/duplicate_finder/__init__.py b/src/gourmet/plugins/duplicate_finder/__init__.py similarity index 100% rename from gourmet/plugins/duplicate_finder/__init__.py rename to src/gourmet/plugins/duplicate_finder/__init__.py diff --git a/gourmet/plugins/duplicate_finder/recipeMerger.py b/src/gourmet/plugins/duplicate_finder/recipeMerger.py similarity index 100% rename from gourmet/plugins/duplicate_finder/recipeMerger.py rename to src/gourmet/plugins/duplicate_finder/recipeMerger.py diff --git a/gourmet/plugins/duplicate_finder/recipeMerger.ui b/src/gourmet/plugins/duplicate_finder/recipeMerger.ui similarity index 100% rename from gourmet/plugins/duplicate_finder/recipeMerger.ui rename to src/gourmet/plugins/duplicate_finder/recipeMerger.ui diff --git a/gourmet/plugins/duplicate_finder/recipeMergerPlugin.py b/src/gourmet/plugins/duplicate_finder/recipeMergerPlugin.py similarity index 100% rename from gourmet/plugins/duplicate_finder/recipeMergerPlugin.py rename to src/gourmet/plugins/duplicate_finder/recipeMergerPlugin.py diff --git a/gourmet/plugins/email.gourmet-plugin.in b/src/gourmet/plugins/email.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/email.gourmet-plugin.in rename to src/gourmet/plugins/email.gourmet-plugin.in diff --git a/gourmet/plugins/email_plugin/__init__.py b/src/gourmet/plugins/email_plugin/__init__.py similarity index 100% rename from gourmet/plugins/email_plugin/__init__.py rename to src/gourmet/plugins/email_plugin/__init__.py diff --git a/gourmet/plugins/email_plugin/emailer.py b/src/gourmet/plugins/email_plugin/emailer.py similarity index 100% rename from gourmet/plugins/email_plugin/emailer.py rename to src/gourmet/plugins/email_plugin/emailer.py diff --git a/gourmet/plugins/email_plugin/emailer_plugin.py b/src/gourmet/plugins/email_plugin/emailer_plugin.py similarity index 100% rename from gourmet/plugins/email_plugin/emailer_plugin.py rename to src/gourmet/plugins/email_plugin/emailer_plugin.py diff --git a/gourmet/plugins/email_plugin/recipe_emailer.py b/src/gourmet/plugins/email_plugin/recipe_emailer.py similarity index 100% rename from gourmet/plugins/email_plugin/recipe_emailer.py rename to src/gourmet/plugins/email_plugin/recipe_emailer.py diff --git a/gourmet/plugins/field_editor.gourmet-plugin.in b/src/gourmet/plugins/field_editor.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/field_editor.gourmet-plugin.in rename to src/gourmet/plugins/field_editor.gourmet-plugin.in diff --git a/gourmet/plugins/field_editor/__init__.py b/src/gourmet/plugins/field_editor/__init__.py similarity index 100% rename from gourmet/plugins/field_editor/__init__.py rename to src/gourmet/plugins/field_editor/__init__.py diff --git a/gourmet/plugins/field_editor/fieldEditor.py b/src/gourmet/plugins/field_editor/fieldEditor.py similarity index 100% rename from gourmet/plugins/field_editor/fieldEditor.py rename to src/gourmet/plugins/field_editor/fieldEditor.py diff --git a/gourmet/plugins/import_export/__init__.py b/src/gourmet/plugins/import_export/__init__.py similarity index 100% rename from gourmet/plugins/import_export/__init__.py rename to src/gourmet/plugins/import_export/__init__.py diff --git a/gourmet/plugins/import_export/archive.gourmet-plugin.in b/src/gourmet/plugins/import_export/archive.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/archive.gourmet-plugin.in rename to src/gourmet/plugins/import_export/archive.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/archive_plugin/__init__.py b/src/gourmet/plugins/import_export/archive_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/archive_plugin/__init__.py rename to src/gourmet/plugins/import_export/archive_plugin/__init__.py diff --git a/gourmet/plugins/import_export/archive_plugin/zip_importer_plugin.py b/src/gourmet/plugins/import_export/archive_plugin/zip_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/archive_plugin/zip_importer_plugin.py rename to src/gourmet/plugins/import_export/archive_plugin/zip_importer_plugin.py diff --git a/gourmet/plugins/import_export/archive_plugin/zip_readers.py b/src/gourmet/plugins/import_export/archive_plugin/zip_readers.py similarity index 100% rename from gourmet/plugins/import_export/archive_plugin/zip_readers.py rename to src/gourmet/plugins/import_export/archive_plugin/zip_readers.py diff --git a/gourmet/plugins/import_export/epub.gourmet-plugin.in b/src/gourmet/plugins/import_export/epub.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/epub.gourmet-plugin.in rename to src/gourmet/plugins/import_export/epub.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/epub_plugin/__init__.py b/src/gourmet/plugins/import_export/epub_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/epub_plugin/__init__.py rename to src/gourmet/plugins/import_export/epub_plugin/__init__.py diff --git a/gourmet/plugins/import_export/epub_plugin/epub_exporter.py b/src/gourmet/plugins/import_export/epub_plugin/epub_exporter.py similarity index 100% rename from gourmet/plugins/import_export/epub_plugin/epub_exporter.py rename to src/gourmet/plugins/import_export/epub_plugin/epub_exporter.py diff --git a/gourmet/plugins/import_export/epub_plugin/epub_exporter_plugin.py b/src/gourmet/plugins/import_export/epub_plugin/epub_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/epub_plugin/epub_exporter_plugin.py rename to src/gourmet/plugins/import_export/epub_plugin/epub_exporter_plugin.py diff --git a/gourmet/plugins/import_export/gxml.gourmet-plugin.in b/src/gourmet/plugins/import_export/gxml.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/gxml.gourmet-plugin.in rename to src/gourmet/plugins/import_export/gxml.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/gxml_plugin/__init__.py b/src/gourmet/plugins/import_export/gxml_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/gxml_plugin/__init__.py rename to src/gourmet/plugins/import_export/gxml_plugin/__init__.py diff --git a/gourmet/plugins/import_export/gxml_plugin/gxml2_exporter.py b/src/gourmet/plugins/import_export/gxml_plugin/gxml2_exporter.py similarity index 100% rename from gourmet/plugins/import_export/gxml_plugin/gxml2_exporter.py rename to src/gourmet/plugins/import_export/gxml_plugin/gxml2_exporter.py diff --git a/gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py b/src/gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py similarity index 98% rename from gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py rename to src/gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py index f8b5316f4..b7a1c165d 100644 --- a/gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py +++ b/src/gourmet/plugins/import_export/gxml_plugin/gxml2_importer.py @@ -3,7 +3,6 @@ from gourmet.convert import NUMBER_FINDER from gourmet.gglobals import REC_ATTRS, TEXT_ATTR_DIC import base64 -from gettext import gettext as _ class RecHandler (xml_importer.RecHandler): ING_ATTRS = { diff --git a/gourmet/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py b/src/gourmet/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py rename to src/gourmet/plugins/import_export/gxml_plugin/gxml_exporter_plugin.py diff --git a/gourmet/plugins/import_export/gxml_plugin/gxml_importer.py b/src/gourmet/plugins/import_export/gxml_plugin/gxml_importer.py similarity index 99% rename from gourmet/plugins/import_export/gxml_plugin/gxml_importer.py rename to src/gourmet/plugins/import_export/gxml_plugin/gxml_importer.py index 18c12fd8a..30eb9b929 100644 --- a/gourmet/plugins/import_export/gxml_plugin/gxml_importer.py +++ b/src/gourmet/plugins/import_export/gxml_plugin/gxml_importer.py @@ -2,7 +2,6 @@ from gourmet.importers import xml_importer from gourmet.gdebug import debug import base64 -from gettext import gettext as _ unquoteattr = xml_importer.unquoteattr diff --git a/gourmet/plugins/import_export/gxml_plugin/gxml_importer_plugin.py b/src/gourmet/plugins/import_export/gxml_plugin/gxml_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/gxml_plugin/gxml_importer_plugin.py rename to src/gourmet/plugins/import_export/gxml_plugin/gxml_importer_plugin.py diff --git a/gourmet/plugins/import_export/html.gourmet-plugin.in b/src/gourmet/plugins/import_export/html.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/html.gourmet-plugin.in rename to src/gourmet/plugins/import_export/html.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/html_plugin/__init__.py b/src/gourmet/plugins/import_export/html_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/html_plugin/__init__.py rename to src/gourmet/plugins/import_export/html_plugin/__init__.py diff --git a/gourmet/plugins/import_export/html_plugin/html_exporter.py b/src/gourmet/plugins/import_export/html_plugin/html_exporter.py similarity index 100% rename from gourmet/plugins/import_export/html_plugin/html_exporter.py rename to src/gourmet/plugins/import_export/html_plugin/html_exporter.py diff --git a/gourmet/plugins/import_export/html_plugin/html_exporter_plugin.py b/src/gourmet/plugins/import_export/html_plugin/html_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/html_plugin/html_exporter_plugin.py rename to src/gourmet/plugins/import_export/html_plugin/html_exporter_plugin.py diff --git a/gourmet/plugins/import_export/krecipe_plugin.gourmet-plugin.in b/src/gourmet/plugins/import_export/krecipe_plugin.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/krecipe_plugin.gourmet-plugin.in rename to src/gourmet/plugins/import_export/krecipe_plugin.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/krecipe_plugin/__init__.py b/src/gourmet/plugins/import_export/krecipe_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/krecipe_plugin/__init__.py rename to src/gourmet/plugins/import_export/krecipe_plugin/__init__.py diff --git a/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer.py b/src/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer.py similarity index 100% rename from gourmet/plugins/import_export/krecipe_plugin/krecipe_importer.py rename to src/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer.py diff --git a/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py b/src/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py rename to src/gourmet/plugins/import_export/krecipe_plugin/krecipe_importer_plugin.py diff --git a/gourmet/plugins/import_export/mastercook_import_plugin/__init__.py b/src/gourmet/plugins/import_export/mastercook_import_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/mastercook_import_plugin/__init__.py rename to src/gourmet/plugins/import_export/mastercook_import_plugin/__init__.py diff --git a/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer.py b/src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer.py similarity index 100% rename from gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer.py rename to src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer.py diff --git a/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py b/src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py rename to src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_importer_plugin.py diff --git a/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py b/src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py similarity index 99% rename from gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py rename to src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py index 73098b635..231cdc57f 100644 --- a/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py +++ b/src/gourmet/plugins/import_export/mastercook_import_plugin/mastercook_plaintext_importer.py @@ -2,7 +2,6 @@ import re from gourmet import check_encodings from gourmet.gdebug import debug -from gettext import gettext as _ MASTERCOOK_START_REGEXP=r'\s*\*\s*Exported\s*from\s*MasterCook.*\*\s*' diff --git a/gourmet/plugins/import_export/mastercook_plugin.gourmet-plugin.in b/src/gourmet/plugins/import_export/mastercook_plugin.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/mastercook_plugin.gourmet-plugin.in rename to src/gourmet/plugins/import_export/mastercook_plugin.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/mealmaster.gourmet-plugin.in b/src/gourmet/plugins/import_export/mealmaster.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/mealmaster.gourmet-plugin.in rename to src/gourmet/plugins/import_export/mealmaster.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/mealmaster_plugin/__init__.py b/src/gourmet/plugins/import_export/mealmaster_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/mealmaster_plugin/__init__.py rename to src/gourmet/plugins/import_export/mealmaster_plugin/__init__.py diff --git a/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py b/src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py similarity index 100% rename from gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py rename to src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter.py diff --git a/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py b/src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py rename to src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_exporter_plugin.py diff --git a/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py b/src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py similarity index 99% rename from gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py rename to src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py index 26c4c10a4..43600b77e 100644 --- a/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py +++ b/src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer.py @@ -3,7 +3,6 @@ from gourmet import convert, check_encodings from gourmet.gdebug import debug,TimeAction #from gourmet.gglobals import gt -from gettext import gettext as _ class mmf_constants: def __init__ (self): @@ -570,5 +569,3 @@ def find_columns (strings, char=" "): import pstats p = pstats.Stats(profi) p.strip_dirs().sort_stats('cumulative').print_stats() - - diff --git a/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py b/src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py rename to src/gourmet/plugins/import_export/mealmaster_plugin/mealmaster_importer_plugin.py diff --git a/gourmet/plugins/import_export/mycookbook_plugin.gourmet-plugin.in b/src/gourmet/plugins/import_export/mycookbook_plugin.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/mycookbook_plugin.gourmet-plugin.in rename to src/gourmet/plugins/import_export/mycookbook_plugin.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/mycookbook_plugin/__init__.py b/src/gourmet/plugins/import_export/mycookbook_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/mycookbook_plugin/__init__.py rename to src/gourmet/plugins/import_export/mycookbook_plugin/__init__.py diff --git a/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter.py b/src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter.py similarity index 100% rename from gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter.py rename to src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter.py diff --git a/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py b/src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py rename to src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_exporter_plugin.py diff --git a/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer.py b/src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer.py similarity index 100% rename from gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer.py rename to src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer.py diff --git a/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py b/src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py rename to src/gourmet/plugins/import_export/mycookbook_plugin/mycookbook_importer_plugin.py diff --git a/gourmet/plugins/import_export/pdf.gourmet-plugin.in b/src/gourmet/plugins/import_export/pdf.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/pdf.gourmet-plugin.in rename to src/gourmet/plugins/import_export/pdf.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/pdf_plugin/__init__.py b/src/gourmet/plugins/import_export/pdf_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/pdf_plugin/__init__.py rename to src/gourmet/plugins/import_export/pdf_plugin/__init__.py diff --git a/gourmet/plugins/import_export/pdf_plugin/page_drawer.py b/src/gourmet/plugins/import_export/pdf_plugin/page_drawer.py similarity index 100% rename from gourmet/plugins/import_export/pdf_plugin/page_drawer.py rename to src/gourmet/plugins/import_export/pdf_plugin/page_drawer.py diff --git a/gourmet/plugins/import_export/pdf_plugin/pdf_exporter.py b/src/gourmet/plugins/import_export/pdf_plugin/pdf_exporter.py similarity index 100% rename from gourmet/plugins/import_export/pdf_plugin/pdf_exporter.py rename to src/gourmet/plugins/import_export/pdf_plugin/pdf_exporter.py diff --git a/gourmet/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py b/src/gourmet/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py rename to src/gourmet/plugins/import_export/pdf_plugin/pdf_exporter_plugin.py diff --git a/gourmet/plugins/import_export/pdf_plugin/print_plugin.py b/src/gourmet/plugins/import_export/pdf_plugin/print_plugin.py similarity index 100% rename from gourmet/plugins/import_export/pdf_plugin/print_plugin.py rename to src/gourmet/plugins/import_export/pdf_plugin/print_plugin.py diff --git a/gourmet/plugins/import_export/plaintext.gourmet-plugin.in b/src/gourmet/plugins/import_export/plaintext.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/plaintext.gourmet-plugin.in rename to src/gourmet/plugins/import_export/plaintext.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/plaintext_plugin/__init__.py b/src/gourmet/plugins/import_export/plaintext_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/plaintext_plugin/__init__.py rename to src/gourmet/plugins/import_export/plaintext_plugin/__init__.py diff --git a/gourmet/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py b/src/gourmet/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py similarity index 100% rename from gourmet/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py rename to src/gourmet/plugins/import_export/plaintext_plugin/plaintext_exporter_plugin.py diff --git a/gourmet/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py b/src/gourmet/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py rename to src/gourmet/plugins/import_export/plaintext_plugin/plaintext_importer_plugin.py diff --git a/gourmet/plugins/import_export/web_import_plugin/__init__.py b/src/gourmet/plugins/import_export/web_import_plugin/__init__.py similarity index 100% rename from gourmet/plugins/import_export/web_import_plugin/__init__.py rename to src/gourmet/plugins/import_export/web_import_plugin/__init__.py diff --git a/gourmet/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py b/src/gourmet/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py similarity index 100% rename from gourmet/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py rename to src/gourmet/plugins/import_export/web_import_plugin/generic_web_importer_plugin.py diff --git a/gourmet/plugins/import_export/web_import_plugin/webpage_importer.py b/src/gourmet/plugins/import_export/web_import_plugin/webpage_importer.py similarity index 100% rename from gourmet/plugins/import_export/web_import_plugin/webpage_importer.py rename to src/gourmet/plugins/import_export/web_import_plugin/webpage_importer.py diff --git a/gourmet/plugins/import_export/webimport.gourmet-plugin.in b/src/gourmet/plugins/import_export/webimport.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/webimport.gourmet-plugin.in rename to src/gourmet/plugins/import_export/webimport.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/website_import.gourmet-plugin.in b/src/gourmet/plugins/import_export/website_import.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/import_export/website_import.gourmet-plugin.in rename to src/gourmet/plugins/import_export/website_import.gourmet-plugin.in diff --git a/gourmet/plugins/import_export/website_import_plugins/__init__.py b/src/gourmet/plugins/import_export/website_import_plugins/__init__.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/__init__.py rename to src/gourmet/plugins/import_export/website_import_plugins/__init__.py diff --git a/gourmet/plugins/import_export/website_import_plugins/about_dot_com_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/about_dot_com_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/about_dot_com_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/about_dot_com_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/allrecipes_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/allrecipes_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/allrecipes_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/allrecipes_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/cooksillustrated_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/cooksillustrated_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/cooksillustrated_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/cooksillustrated_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/epicurious_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/epicurious_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/epicurious_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/epicurious_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/foodnetwork_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/foodnetwork_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/foodnetwork_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/foodnetwork_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/ica_se_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/ica_se_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/ica_se_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/ica_se_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/nytimes_plugin.py b/src/gourmet/plugins/import_export/website_import_plugins/nytimes_plugin.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/nytimes_plugin.py rename to src/gourmet/plugins/import_export/website_import_plugins/nytimes_plugin.py diff --git a/gourmet/plugins/import_export/website_import_plugins/schema_org_parser.py b/src/gourmet/plugins/import_export/website_import_plugins/schema_org_parser.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/schema_org_parser.py rename to src/gourmet/plugins/import_export/website_import_plugins/schema_org_parser.py diff --git a/gourmet/plugins/import_export/website_import_plugins/state.py b/src/gourmet/plugins/import_export/website_import_plugins/state.py similarity index 100% rename from gourmet/plugins/import_export/website_import_plugins/state.py rename to src/gourmet/plugins/import_export/website_import_plugins/state.py diff --git a/gourmet/plugins/key_editor.gourmet-plugin.in b/src/gourmet/plugins/key_editor.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/key_editor.gourmet-plugin.in rename to src/gourmet/plugins/key_editor.gourmet-plugin.in diff --git a/gourmet/plugins/key_editor/__init__.py b/src/gourmet/plugins/key_editor/__init__.py similarity index 100% rename from gourmet/plugins/key_editor/__init__.py rename to src/gourmet/plugins/key_editor/__init__.py diff --git a/gourmet/plugins/key_editor/keyEditor.py b/src/gourmet/plugins/key_editor/keyEditor.py similarity index 100% rename from gourmet/plugins/key_editor/keyEditor.py rename to src/gourmet/plugins/key_editor/keyEditor.py diff --git a/gourmet/plugins/key_editor/keyEditorPluggable.py b/src/gourmet/plugins/key_editor/keyEditorPluggable.py similarity index 100% rename from gourmet/plugins/key_editor/keyEditorPluggable.py rename to src/gourmet/plugins/key_editor/keyEditorPluggable.py diff --git a/gourmet/plugins/key_editor/keyEditorPlugin.py b/src/gourmet/plugins/key_editor/keyEditorPlugin.py similarity index 100% rename from gourmet/plugins/key_editor/keyEditorPlugin.py rename to src/gourmet/plugins/key_editor/keyEditorPlugin.py diff --git a/gourmet/plugins/key_editor/keyeditor.ui b/src/gourmet/plugins/key_editor/keyeditor.ui similarity index 100% rename from gourmet/plugins/key_editor/keyeditor.ui rename to src/gourmet/plugins/key_editor/keyeditor.ui diff --git a/gourmet/plugins/key_editor/recipeEditorPlugin.py b/src/gourmet/plugins/key_editor/recipeEditorPlugin.py similarity index 100% rename from gourmet/plugins/key_editor/recipeEditorPlugin.py rename to src/gourmet/plugins/key_editor/recipeEditorPlugin.py diff --git a/gourmet/plugins/listsaver.gourmet-plugin.in b/src/gourmet/plugins/listsaver.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/listsaver.gourmet-plugin.in rename to src/gourmet/plugins/listsaver.gourmet-plugin.in diff --git a/gourmet/plugins/listsaver/__init__.py b/src/gourmet/plugins/listsaver/__init__.py similarity index 100% rename from gourmet/plugins/listsaver/__init__.py rename to src/gourmet/plugins/listsaver/__init__.py diff --git a/gourmet/plugins/listsaver/shoppingSaverPlugin.py b/src/gourmet/plugins/listsaver/shoppingSaverPlugin.py similarity index 100% rename from gourmet/plugins/listsaver/shoppingSaverPlugin.py rename to src/gourmet/plugins/listsaver/shoppingSaverPlugin.py diff --git a/gourmet/plugins/nutritional_information.gourmet-plugin.in b/src/gourmet/plugins/nutritional_information.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/nutritional_information.gourmet-plugin.in rename to src/gourmet/plugins/nutritional_information.gourmet-plugin.in diff --git a/gourmet/plugins/nutritional_information/__init__.py b/src/gourmet/plugins/nutritional_information/__init__.py similarity index 100% rename from gourmet/plugins/nutritional_information/__init__.py rename to src/gourmet/plugins/nutritional_information/__init__.py diff --git a/gourmet/plugins/nutritional_information/data_plugin.py b/src/gourmet/plugins/nutritional_information/data_plugin.py similarity index 100% rename from gourmet/plugins/nutritional_information/data_plugin.py rename to src/gourmet/plugins/nutritional_information/data_plugin.py diff --git a/gourmet/plugins/nutritional_information/databaseGrabber.py b/src/gourmet/plugins/nutritional_information/databaseGrabber.py similarity index 100% rename from gourmet/plugins/nutritional_information/databaseGrabber.py rename to src/gourmet/plugins/nutritional_information/databaseGrabber.py diff --git a/gourmet/plugins/nutritional_information/enter_nutritional_defaults.py b/src/gourmet/plugins/nutritional_information/enter_nutritional_defaults.py similarity index 100% rename from gourmet/plugins/nutritional_information/enter_nutritional_defaults.py rename to src/gourmet/plugins/nutritional_information/enter_nutritional_defaults.py diff --git a/gourmet/plugins/nutritional_information/export_plugin.py b/src/gourmet/plugins/nutritional_information/export_plugin.py similarity index 100% rename from gourmet/plugins/nutritional_information/export_plugin.py rename to src/gourmet/plugins/nutritional_information/export_plugin.py diff --git a/gourmet/plugins/nutritional_information/images/Nutrition.png b/src/gourmet/plugins/nutritional_information/images/Nutrition.png similarity index 100% rename from gourmet/plugins/nutritional_information/images/Nutrition.png rename to src/gourmet/plugins/nutritional_information/images/Nutrition.png diff --git a/gourmet/plugins/nutritional_information/images/__init__.py b/src/gourmet/plugins/nutritional_information/images/__init__.py similarity index 100% rename from gourmet/plugins/nutritional_information/images/__init__.py rename to src/gourmet/plugins/nutritional_information/images/__init__.py diff --git a/gourmet/plugins/nutritional_information/main_plugin.py b/src/gourmet/plugins/nutritional_information/main_plugin.py similarity index 100% rename from gourmet/plugins/nutritional_information/main_plugin.py rename to src/gourmet/plugins/nutritional_information/main_plugin.py diff --git a/gourmet/plugins/nutritional_information/nutPrefsPlugin.py b/src/gourmet/plugins/nutritional_information/nutPrefsPlugin.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutPrefsPlugin.py rename to src/gourmet/plugins/nutritional_information/nutPrefsPlugin.py diff --git a/gourmet/plugins/nutritional_information/nut_recipe_card_display.ui b/src/gourmet/plugins/nutritional_information/nut_recipe_card_display.ui similarity index 100% rename from gourmet/plugins/nutritional_information/nut_recipe_card_display.ui rename to src/gourmet/plugins/nutritional_information/nut_recipe_card_display.ui diff --git a/gourmet/plugins/nutritional_information/nutrition.py b/src/gourmet/plugins/nutritional_information/nutrition.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutrition.py rename to src/gourmet/plugins/nutritional_information/nutrition.py diff --git a/gourmet/plugins/nutritional_information/nutritionDisplay.py b/src/gourmet/plugins/nutritional_information/nutritionDisplay.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionDisplay.py rename to src/gourmet/plugins/nutritional_information/nutritionDisplay.py diff --git a/gourmet/plugins/nutritional_information/nutritionDruid.py b/src/gourmet/plugins/nutritional_information/nutritionDruid.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionDruid.py rename to src/gourmet/plugins/nutritional_information/nutritionDruid.py diff --git a/gourmet/plugins/nutritional_information/nutritionDruid.ui b/src/gourmet/plugins/nutritional_information/nutritionDruid.ui similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionDruid.ui rename to src/gourmet/plugins/nutritional_information/nutritionDruid.ui diff --git a/gourmet/plugins/nutritional_information/nutritionGrabberGui.py b/src/gourmet/plugins/nutritional_information/nutritionGrabberGui.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionGrabberGui.py rename to src/gourmet/plugins/nutritional_information/nutritionGrabberGui.py diff --git a/gourmet/plugins/nutritional_information/nutritionInfoEditor.py b/src/gourmet/plugins/nutritional_information/nutritionInfoEditor.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionInfoEditor.py rename to src/gourmet/plugins/nutritional_information/nutritionInfoEditor.py diff --git a/gourmet/plugins/nutritional_information/nutritionLabel.py b/src/gourmet/plugins/nutritional_information/nutritionLabel.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionLabel.py rename to src/gourmet/plugins/nutritional_information/nutritionLabel.py diff --git a/gourmet/plugins/nutritional_information/nutritionModel.py b/src/gourmet/plugins/nutritional_information/nutritionModel.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionModel.py rename to src/gourmet/plugins/nutritional_information/nutritionModel.py diff --git a/gourmet/plugins/nutritional_information/nutritionView.py b/src/gourmet/plugins/nutritional_information/nutritionView.py similarity index 100% rename from gourmet/plugins/nutritional_information/nutritionView.py rename to src/gourmet/plugins/nutritional_information/nutritionView.py diff --git a/gourmet/plugins/nutritional_information/parser_data.py b/src/gourmet/plugins/nutritional_information/parser_data.py similarity index 100% rename from gourmet/plugins/nutritional_information/parser_data.py rename to src/gourmet/plugins/nutritional_information/parser_data.py diff --git a/gourmet/plugins/nutritional_information/reccard_plugin.py b/src/gourmet/plugins/nutritional_information/reccard_plugin.py similarity index 100% rename from gourmet/plugins/nutritional_information/reccard_plugin.py rename to src/gourmet/plugins/nutritional_information/reccard_plugin.py diff --git a/gourmet/plugins/nutritional_information/shopping_plugin.py b/src/gourmet/plugins/nutritional_information/shopping_plugin.py similarity index 100% rename from gourmet/plugins/nutritional_information/shopping_plugin.py rename to src/gourmet/plugins/nutritional_information/shopping_plugin.py diff --git a/gourmet/plugins/python_shell.gourmet-plugin.in b/src/gourmet/plugins/python_shell.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/python_shell.gourmet-plugin.in rename to src/gourmet/plugins/python_shell.gourmet-plugin.in diff --git a/gourmet/plugins/python_shell/__init__.py b/src/gourmet/plugins/python_shell/__init__.py similarity index 100% rename from gourmet/plugins/python_shell/__init__.py rename to src/gourmet/plugins/python_shell/__init__.py diff --git a/gourmet/plugins/python_shell/ipython_view.py b/src/gourmet/plugins/python_shell/ipython_view.py similarity index 100% rename from gourmet/plugins/python_shell/ipython_view.py rename to src/gourmet/plugins/python_shell/ipython_view.py diff --git a/gourmet/plugins/shopping_associations.gourmet-plugin.in b/src/gourmet/plugins/shopping_associations.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/shopping_associations.gourmet-plugin.in rename to src/gourmet/plugins/shopping_associations.gourmet-plugin.in diff --git a/gourmet/plugins/shopping_associations/__init__.py b/src/gourmet/plugins/shopping_associations/__init__.py similarity index 100% rename from gourmet/plugins/shopping_associations/__init__.py rename to src/gourmet/plugins/shopping_associations/__init__.py diff --git a/gourmet/plugins/shopping_associations/shopping_key_editor_plugin.py b/src/gourmet/plugins/shopping_associations/shopping_key_editor_plugin.py similarity index 100% rename from gourmet/plugins/shopping_associations/shopping_key_editor_plugin.py rename to src/gourmet/plugins/shopping_associations/shopping_key_editor_plugin.py diff --git a/gourmet/plugins/spellcheck.gourmet-plugin.in b/src/gourmet/plugins/spellcheck.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/spellcheck.gourmet-plugin.in rename to src/gourmet/plugins/spellcheck.gourmet-plugin.in diff --git a/gourmet/plugins/spellcheck/__init__.py b/src/gourmet/plugins/spellcheck/__init__.py similarity index 100% rename from gourmet/plugins/spellcheck/__init__.py rename to src/gourmet/plugins/spellcheck/__init__.py diff --git a/gourmet/plugins/spellcheck/reccard_spellcheck_plugin.py b/src/gourmet/plugins/spellcheck/reccard_spellcheck_plugin.py similarity index 100% rename from gourmet/plugins/spellcheck/reccard_spellcheck_plugin.py rename to src/gourmet/plugins/spellcheck/reccard_spellcheck_plugin.py diff --git a/gourmet/plugins/unit_converter.gourmet-plugin.in b/src/gourmet/plugins/unit_converter.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/unit_converter.gourmet-plugin.in rename to src/gourmet/plugins/unit_converter.gourmet-plugin.in diff --git a/gourmet/plugins/unit_converter/__init__.py b/src/gourmet/plugins/unit_converter/__init__.py similarity index 100% rename from gourmet/plugins/unit_converter/__init__.py rename to src/gourmet/plugins/unit_converter/__init__.py diff --git a/gourmet/plugins/unit_converter/convertGui.py b/src/gourmet/plugins/unit_converter/convertGui.py similarity index 100% rename from gourmet/plugins/unit_converter/convertGui.py rename to src/gourmet/plugins/unit_converter/convertGui.py diff --git a/gourmet/plugins/unit_converter/converter.ui b/src/gourmet/plugins/unit_converter/converter.ui similarity index 100% rename from gourmet/plugins/unit_converter/converter.ui rename to src/gourmet/plugins/unit_converter/converter.ui diff --git a/gourmet/plugins/unit_display_prefs.gourmet-plugin.in b/src/gourmet/plugins/unit_display_prefs.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/unit_display_prefs.gourmet-plugin.in rename to src/gourmet/plugins/unit_display_prefs.gourmet-plugin.in diff --git a/gourmet/plugins/unit_display_prefs/__init__.py b/src/gourmet/plugins/unit_display_prefs/__init__.py similarity index 100% rename from gourmet/plugins/unit_display_prefs/__init__.py rename to src/gourmet/plugins/unit_display_prefs/__init__.py diff --git a/gourmet/plugins/unit_display_prefs/unit_prefs_dialog.py b/src/gourmet/plugins/unit_display_prefs/unit_prefs_dialog.py similarity index 100% rename from gourmet/plugins/unit_display_prefs/unit_prefs_dialog.py rename to src/gourmet/plugins/unit_display_prefs/unit_prefs_dialog.py diff --git a/gourmet/plugins/utf16.gourmet-plugin.in b/src/gourmet/plugins/utf16.gourmet-plugin.in similarity index 100% rename from gourmet/plugins/utf16.gourmet-plugin.in rename to src/gourmet/plugins/utf16.gourmet-plugin.in diff --git a/gourmet/plugins/web_plugin/__init__.py b/src/gourmet/plugins/web_plugin/__init__.py similarity index 100% rename from gourmet/plugins/web_plugin/__init__.py rename to src/gourmet/plugins/web_plugin/__init__.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/__init__.py b/src/gourmet/plugins/web_plugin/gourmetweb/__init__.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/__init__.py rename to src/gourmet/plugins/web_plugin/gourmetweb/__init__.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/recview/__init__.py b/src/gourmet/plugins/web_plugin/gourmetweb/recview/__init__.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/recview/__init__.py rename to src/gourmet/plugins/web_plugin/gourmetweb/recview/__init__.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/recview/models.py b/src/gourmet/plugins/web_plugin/gourmetweb/recview/models.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/recview/models.py rename to src/gourmet/plugins/web_plugin/gourmetweb/recview/models.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/recview/tests.py b/src/gourmet/plugins/web_plugin/gourmetweb/recview/tests.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/recview/tests.py rename to src/gourmet/plugins/web_plugin/gourmetweb/recview/tests.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/recview/views.py b/src/gourmet/plugins/web_plugin/gourmetweb/recview/views.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/recview/views.py rename to src/gourmet/plugins/web_plugin/gourmetweb/recview/views.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/settings.py b/src/gourmet/plugins/web_plugin/gourmetweb/settings.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/settings.py rename to src/gourmet/plugins/web_plugin/gourmetweb/settings.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/about.html b/src/gourmet/plugins/web_plugin/gourmetweb/templates/about.html similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/about.html rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/about.html diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/detect_screensize.js b/src/gourmet/plugins/web_plugin/gourmetweb/templates/detect_screensize.js similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/detect_screensize.js rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/detect_screensize.js diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/index.html b/src/gourmet/plugins/web_plugin/gourmetweb/templates/index.html similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/index.html rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/index.html diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/jquery.js b/src/gourmet/plugins/web_plugin/gourmetweb/templates/jquery.js similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/jquery.js rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/jquery.js diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/list.html b/src/gourmet/plugins/web_plugin/gourmetweb/templates/list.html similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/list.html rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/list.html diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/menu.css b/src/gourmet/plugins/web_plugin/gourmetweb/templates/menu.css similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/menu.css rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/menu.css diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/menu.html b/src/gourmet/plugins/web_plugin/gourmetweb/templates/menu.html similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/menu.html rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/menu.html diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/rec.html b/src/gourmet/plugins/web_plugin/gourmetweb/templates/rec.html similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/rec.html rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/rec.html diff --git a/gourmet/plugins/web_plugin/gourmetweb/templates/shop.html b/src/gourmet/plugins/web_plugin/gourmetweb/templates/shop.html similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/templates/shop.html rename to src/gourmet/plugins/web_plugin/gourmetweb/templates/shop.html diff --git a/gourmet/plugins/web_plugin/gourmetweb/urls.py b/src/gourmet/plugins/web_plugin/gourmetweb/urls.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/urls.py rename to src/gourmet/plugins/web_plugin/gourmetweb/urls.py diff --git a/gourmet/plugins/web_plugin/gourmetweb/wsgi.py b/src/gourmet/plugins/web_plugin/gourmetweb/wsgi.py similarity index 100% rename from gourmet/plugins/web_plugin/gourmetweb/wsgi.py rename to src/gourmet/plugins/web_plugin/gourmetweb/wsgi.py diff --git a/gourmet/plugins/web_plugin/manage.py b/src/gourmet/plugins/web_plugin/manage.py similarity index 100% rename from gourmet/plugins/web_plugin/manage.py rename to src/gourmet/plugins/web_plugin/manage.py diff --git a/gourmet/prefs.py b/src/gourmet/prefs.py similarity index 100% rename from gourmet/prefs.py rename to src/gourmet/prefs.py diff --git a/gourmet/prefsGui.py b/src/gourmet/prefsGui.py similarity index 100% rename from gourmet/prefsGui.py rename to src/gourmet/prefsGui.py diff --git a/gourmet/reccard.py b/src/gourmet/reccard.py similarity index 100% rename from gourmet/reccard.py rename to src/gourmet/reccard.py diff --git a/gourmet/recindex.py b/src/gourmet/recindex.py similarity index 100% rename from gourmet/recindex.py rename to src/gourmet/recindex.py diff --git a/gourmet/recipeIdentifier.py b/src/gourmet/recipeIdentifier.py similarity index 100% rename from gourmet/recipeIdentifier.py rename to src/gourmet/recipeIdentifier.py diff --git a/gourmet/recipeManager.py b/src/gourmet/recipeManager.py similarity index 98% rename from gourmet/recipeManager.py rename to src/gourmet/recipeManager.py index e565a9955..dcbeb5f40 100644 --- a/gourmet/recipeManager.py +++ b/src/gourmet/recipeManager.py @@ -1,4 +1,3 @@ -from gettext import gettext as _ import os.path from gourmet import convert from gourmet import shopping diff --git a/gourmet/settings.py b/src/gourmet/settings.py similarity index 100% rename from gourmet/settings.py rename to src/gourmet/settings.py diff --git a/gourmet/shopEditor.py b/src/gourmet/shopEditor.py similarity index 100% rename from gourmet/shopEditor.py rename to src/gourmet/shopEditor.py diff --git a/gourmet/shopgui.py b/src/gourmet/shopgui.py similarity index 100% rename from gourmet/shopgui.py rename to src/gourmet/shopgui.py diff --git a/gourmet/shopping.py b/src/gourmet/shopping.py similarity index 100% rename from gourmet/shopping.py rename to src/gourmet/shopping.py diff --git a/gourmet/sound.py b/src/gourmet/sound.py similarity index 100% rename from gourmet/sound.py rename to src/gourmet/sound.py diff --git a/gourmet/threadManager.py b/src/gourmet/threadManager.py similarity index 100% rename from gourmet/threadManager.py rename to src/gourmet/threadManager.py diff --git a/gourmet/timeScanner.py b/src/gourmet/timeScanner.py similarity index 100% rename from gourmet/timeScanner.py rename to src/gourmet/timeScanner.py diff --git a/gourmet/timer.py b/src/gourmet/timer.py similarity index 100% rename from gourmet/timer.py rename to src/gourmet/timer.py diff --git a/gourmet/ui/app.ui b/src/gourmet/ui/app.ui similarity index 100% rename from gourmet/ui/app.ui rename to src/gourmet/ui/app.ui diff --git a/gourmet/ui/batchEditor.ui b/src/gourmet/ui/batchEditor.ui similarity index 100% rename from gourmet/ui/batchEditor.ui rename to src/gourmet/ui/batchEditor.ui diff --git a/gourmet/ui/catalog/README b/src/gourmet/ui/catalog/README similarity index 100% rename from gourmet/ui/catalog/README rename to src/gourmet/ui/catalog/README diff --git a/gourmet/ui/catalog/gourmetwidgets.py b/src/gourmet/ui/catalog/gourmetwidgets.py similarity index 100% rename from gourmet/ui/catalog/gourmetwidgets.py rename to src/gourmet/ui/catalog/gourmetwidgets.py diff --git a/gourmet/ui/catalog/gourmetwidgets.xml b/src/gourmet/ui/catalog/gourmetwidgets.xml similarity index 100% rename from gourmet/ui/catalog/gourmetwidgets.xml rename to src/gourmet/ui/catalog/gourmetwidgets.xml diff --git a/gourmet/ui/databaseChooser.ui b/src/gourmet/ui/databaseChooser.ui similarity index 100% rename from gourmet/ui/databaseChooser.ui rename to src/gourmet/ui/databaseChooser.ui diff --git a/gourmet/ui/generic_importer.ui b/src/gourmet/ui/generic_importer.ui similarity index 100% rename from gourmet/ui/generic_importer.ui rename to src/gourmet/ui/generic_importer.ui diff --git a/gourmet/ui/preferenceDialog.ui b/src/gourmet/ui/preferenceDialog.ui similarity index 100% rename from gourmet/ui/preferenceDialog.ui rename to src/gourmet/ui/preferenceDialog.ui diff --git a/gourmet/ui/recCardDescriptionEditor.ui b/src/gourmet/ui/recCardDescriptionEditor.ui similarity index 100% rename from gourmet/ui/recCardDescriptionEditor.ui rename to src/gourmet/ui/recCardDescriptionEditor.ui diff --git a/gourmet/ui/recCardDisplay.ui b/src/gourmet/ui/recCardDisplay.ui similarity index 100% rename from gourmet/ui/recCardDisplay.ui rename to src/gourmet/ui/recCardDisplay.ui diff --git a/gourmet/ui/recCardIngredientsEditor.ui b/src/gourmet/ui/recCardIngredientsEditor.ui similarity index 100% rename from gourmet/ui/recCardIngredientsEditor.ui rename to src/gourmet/ui/recCardIngredientsEditor.ui diff --git a/gourmet/ui/recipe_index.ui b/src/gourmet/ui/recipe_index.ui similarity index 100% rename from gourmet/ui/recipe_index.ui rename to src/gourmet/ui/recipe_index.ui diff --git a/gourmet/ui/shopCatEditor.ui b/src/gourmet/ui/shopCatEditor.ui similarity index 100% rename from gourmet/ui/shopCatEditor.ui rename to src/gourmet/ui/shopCatEditor.ui diff --git a/gourmet/ui/timerDialog.ui b/src/gourmet/ui/timerDialog.ui similarity index 100% rename from gourmet/ui/timerDialog.ui rename to src/gourmet/ui/timerDialog.ui diff --git a/gourmet/ui/valueEditor.ui b/src/gourmet/ui/valueEditor.ui similarity index 100% rename from gourmet/ui/valueEditor.ui rename to src/gourmet/ui/valueEditor.ui diff --git a/gourmet/version.py b/src/gourmet/version.py similarity index 100% rename from gourmet/version.py rename to src/gourmet/version.py diff --git a/tests/test_image_utils.py b/tests/test_image_utils.py index 787a67583..78e826fda 100644 --- a/tests/test_image_utils.py +++ b/tests/test_image_utils.py @@ -13,7 +13,7 @@ def test_make_thumbnail(): # TODO: Switch to using resources instead of hard-coded paths path = Path(__file__) - logo = path.parent.parent / 'gourmet'/ 'data' / 'images' / 'splash.png' + logo = path.parent.parent / 'src' / 'gourmet'/ 'data' / 'images' / 'splash.png' thumbnail = make_thumbnail(str(logo)) x, y = thumbnail.size From 2d596223d854ee109ad16b7ebb76e7ebd3ae7426 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Fri, 30 Oct 2020 13:54:41 -0500 Subject: [PATCH 06/12] setup.py: Use MANIFEST.in to specify package data We can now just "graft" the src directory, which means any additional package data will be automatically included. --- MANIFEST.in | 9 +++++++++ setup.py | 37 +------------------------------------ 2 files changed, 10 insertions(+), 36 deletions(-) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..e91f42db2 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,9 @@ +graft src +graft tests + +include FAQ +include INSTALL.md +include LICENSE +include README.md + +global-exclude *.py[cod] __pycache__/* *.so *.dylib diff --git a/setup.py b/setup.py index a5ded348d..c99494ae2 100644 --- a/setup.py +++ b/setup.py @@ -82,41 +82,6 @@ def run(self): merge_i18n() -package_data = [ - 'backends/default.db', - 'plugins/*.gourmet-plugin', - 'plugins/*/*.gourmet-plugin', - 'data/recipe.dtd', - 'data/WEIGHT.txt', - 'data/FOOD_DES.txt', - 'data/ABBREV.txt', - 'data/nutritional_data_sr_version', - 'data/images/no_star.png', - 'data/images/reccard_edit.png', - 'data/images/AddToShoppingList.png', - 'data/images/half_gold_star.png', - 'data/images/half_blue_star.png', - 'data/images/gold_star.png', - 'data/images/blue_star.png', - 'data/images/reccard.png', - 'data/sound/phone.wav', - 'data/sound/warning.wav', - 'data/sound/error.wav', - 'data/icons/gourmet.ico', - 'data/icons/scalable/apps/gourmet.svg', - 'data/icons/48x48/apps/gourmet.png', - 'data/style/epubdefault.css', - 'data/style/default.css', - 'plugins/*/*.ui', - 'plugins/*/images/*.png', - 'plugins/*/*/images/*.png', - 'ui/*.ui', - 'ui/catalog/*', - '../LICENSE', - '../FAQ', -] - - # TODO: Single-source this metadata with version.py? # https://packaging.python.org/guides/single-sourcing-package-version/ provides # some recommendations, however as noted under item 6, we do not want to import @@ -131,7 +96,7 @@ def run(self): license='GPL', package_dir={'': 'src'}, packages=find_packages('src'), - package_data={'gourmet': package_data}, + include_package_data=True, cmdclass={'build_i18n': build_i18n}, entry_points={ "console_scripts": [ From 022b041038cb96cfca0ecf2ccf77c3118be0e624 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Fri, 30 Oct 2020 16:20:27 -0500 Subject: [PATCH 07/12] Move requirements into setup.py Gourmet can now be installed in one step and plugin-specific dependencies can be optionally installed using 'extras_require'. setuptools is removed as a requirement since this provides the build system and must already be installed for anything to work. --- .flatpak/io.github.thinkle.Gourmet.yml | 5 ++--- .github/workflows/build.yml | 7 +++---- .github/workflows/tests.yml | 18 +++++++++--------- development.txt | 1 - requirements.txt | 17 ----------------- setup.py | 16 ++++++++++++++++ 6 files changed, 30 insertions(+), 34 deletions(-) delete mode 100644 requirements.txt diff --git a/.flatpak/io.github.thinkle.Gourmet.yml b/.flatpak/io.github.thinkle.Gourmet.yml index db670420d..77f0b9acf 100644 --- a/.flatpak/io.github.thinkle.Gourmet.yml +++ b/.flatpak/io.github.thinkle.Gourmet.yml @@ -40,11 +40,10 @@ modules: build-args: - --share=network build-commands: - - python3 -m pip install --upgrade pip + - python3 -m pip install --upgrade pip setuptools wheel - pip3 install pyenchant pygobject Sphinx - - pip3 install -r requirements.txt - python3 setup.py build_i18n - - python3 setup.py install --prefix=/app + - pip3 install --prefix=/app .[epub-export,mycookbook,pdf-export,spellcheck,web-import] - install -Dm644 .flatpak/io.github.thinkle.Gourmet.desktop -t /app/share/applications/ - install -Dm644 .flatpak/io.github.thinkle.Gourmet.svg -t /app/share/icons/hicolor/scalable/apps/ sources: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d7aba8abf..9ec11976e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,13 +18,12 @@ jobs: sudo apt-get update -q && sudo apt-get install --no-install-recommends -y xvfb python3-dev python3-gi python3-gi-cairo gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev - intltool enchant python3-enchant python3-gst-1.0 + intltool enchant python3-enchant gir1.2-poppler-0.18 python3-gst-1.0 - name: Install dependencies run: | - python3 -m pip install --upgrade pip + python3 -m pip install --upgrade pip setuptools pip3 install --upgrade keyrings.alt - if [ -f requirements.txt ]; then pip3 install -r requirements.txt; fi - name: Create Internationalization run: | @@ -33,7 +32,7 @@ jobs: - name: Install run: | - pip3 install . + pip3 install .[epub-export,mycookbook,pdf-export,spellcheck,web-import] - name: Create wheel and source distributions run: | diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 06405a009..eb23b9b38 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,21 +19,21 @@ jobs: run: > sudo apt-get update -q && sudo apt-get install --no-install-recommends -y xvfb python3-dev python3-gi - python3-gi-cairo gir1.2-gtk-3.0 libgirepository1.0-dev - gir1.2-poppler-0.18 libcairo2-dev enchant python3-enchant intltool - python3-gst-1.0 + python3-gi-cairo gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev + intltool enchant python3-enchant gir1.2-poppler-0.18 python3-gst-1.0 - name: Install dependencies run: | - sudo python3 -m pip install --upgrade pip - if [ -f development.txt ]; then sudo pip3 install -r development.txt; fi + sudo python3 -m pip install --upgrade pip setuptools sudo pip3 install --upgrade keyrings.alt - if [ -f requirements.txt ]; then sudo pip3 install -r requirements.txt; fi - - name: Prepare plugins + - name: Create Internationalization + run: python3 setup.py build_i18n + + - name: Install run: | - python3 setup.py build_i18n - pip install . + sudo pip3 install -r development.txt + sudo pip3 install .[epub-export,mycookbook,pdf-export,spellcheck,web-import] - name: Test with pytest run: xvfb-run -a pytest -vv tests/test_* diff --git a/development.txt b/development.txt index 1241b03ab..4046f5ba1 100644 --- a/development.txt +++ b/development.txt @@ -2,5 +2,4 @@ dogtail flake8 mypy pytest -setuptools wheel diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 5e4461239..000000000 --- a/requirements.txt +++ /dev/null @@ -1,17 +0,0 @@ -argcomplete -BeautifulSoup4 -ebooklib -keyring -lxml -Pillow -pycairo -pyenchant -pygobject -pygtkspellcheck -reportlab -requests -scrape-schema-recipe -selenium -setuptools -SQLAlchemy -toml diff --git a/setup.py b/setup.py index c99494ae2..79dee1672 100644 --- a/setup.py +++ b/setup.py @@ -97,6 +97,22 @@ def run(self): package_dir={'': 'src'}, packages=find_packages('src'), include_package_data=True, + install_requires=[ + 'argcomplete', # argument completion when parsing arguments + 'beautifulsoup4', # converting pango to html + 'pillow', # image processing + 'pygobject', # gobject bindings (for GTK, etc.) + 'requests', # retrieving remote images + 'sqlalchemy', # database driver + 'toml', # parsing preferences file(s) + ], + extras_require={ + 'epub-export': ['ebooklib'], + 'mycookbook': ['lxml'], + 'pdf-export': ['reportlab'], + 'spellcheck': ['pyenchant', 'pygtkspellcheck'], + 'web-import': ['beautifulsoup4', 'keyring', 'scrape-schema-recipe', 'selenium'], + }, cmdclass={'build_i18n': build_i18n}, entry_points={ "console_scripts": [ From 889ecfd16a65934fa91579c20f043b4080706800 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Fri, 30 Oct 2020 17:15:45 -0500 Subject: [PATCH 08/12] Simpify installing a development environment A development install can now be installed in one step using 'development.in'. This installs gourmet in "editable" mode as well as additional development dependencies. 'development.txt' is renamed to 'development.in' to support pinning of dependencies (using, e.g., pip-tools). Unfortunately, this only works for local installs since gourmet is a "local" package and results in a non-portable, absolute file path being generated in 'development.txt'. Consequently, 'development.txt' is added to .gitignore, and build environments can just use 'development.in' directly. wheel is removed as a development dependency since it must already be installed in order for pip to build wheels when installing dependencies. --- .github/workflows/tests.yml | 6 ++---- .gitignore | 3 +++ development.in | 5 +++++ development.txt | 5 ----- 4 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 development.in delete mode 100644 development.txt diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index eb23b9b38..a657659cd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,16 +24,14 @@ jobs: - name: Install dependencies run: | - sudo python3 -m pip install --upgrade pip setuptools + sudo python3 -m pip install --upgrade pip setuptools wheel sudo pip3 install --upgrade keyrings.alt - name: Create Internationalization run: python3 setup.py build_i18n - name: Install - run: | - sudo pip3 install -r development.txt - sudo pip3 install .[epub-export,mycookbook,pdf-export,spellcheck,web-import] + run: sudo pip3 install -r development.in - name: Test with pytest run: xvfb-run -a pytest -vv tests/test_* diff --git a/.gitignore b/.gitignore index c07f55bc8..03a0bab24 100644 --- a/.gitignore +++ b/.gitignore @@ -11,10 +11,13 @@ gourmet.pot gourmet.appdata.xml gourmet.desktop po/.intltool-merge-cache +/development.txt + # Virtual environments /env/ + # Editors *.swp .idea/ diff --git a/development.in b/development.in new file mode 100644 index 000000000..d07193879 --- /dev/null +++ b/development.in @@ -0,0 +1,5 @@ +-e .[epub-export,mycookbook,pdf-export,spellcheck,web-import] +dogtail +flake8 +mypy +pytest diff --git a/development.txt b/development.txt deleted file mode 100644 index 4046f5ba1..000000000 --- a/development.txt +++ /dev/null @@ -1,5 +0,0 @@ -dogtail -flake8 -mypy -pytest -wheel From 56df2579d61ceac53c8018ade2b51e715edc930a Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Sat, 31 Oct 2020 03:44:02 -0500 Subject: [PATCH 09/12] Update contributing documentation --- CONTRIBUTING.md | 121 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 82 insertions(+), 39 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 591044272..756461f33 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,54 +1,97 @@ -# Getting Started -Install Gourmet's dependencies: - - pip3 install -r requirements.txt - pip3 install -r development.txt - -`requirements.txt` contains the dependencies needed for Gourmet itself, -`development.txt` contains the packages required for testing. - -Before you start development, you should first build localized *.mo and -*.gourmet-plugin files within a build/ subdirectory of the source tree by -running - - python3 setup.py build_i18n - -You can then install Gourmet in edit mode so: +# Contributing - pip3 install --user -e . +Thank you for taking an interest in contributing to Gourmet! We appreciate that +you're thinking about offering your time to improving the project, and it's our +goal to respect your contribution accordingly. -By doing so, you will be able to test your changes when launching Gourmet. +Although this document focuses on code contributions, you can contribute in +several ways: +- File a bug report. +- Add or improve documentation. +- Promote the project to others. -# Style -New code follows the [PEP 8](http://www.python.org/dev/peps/pep-0008/) standard. -The following conventions are not strictly followed in Gourmet, old code -should be reformatted only when modifying it. +## Contributing Code -# Getting the Source -Gourmet's source code is hosted on [GitHub](https://github.com/thinkle/gourmet). -You can clone it by opening a command prompt and typing: +In general, the process for contributing code is: - git clone https://github.com/thinkle/gourmet.git +1. Pick or open an [issue](https://github.com/thinkle/gourmet/issues) to work + on +2. Post a comment expressing your intent to make sure nobody else is already + working on it +3. Set up a development environment, as described below +4. Hack the code, and when ready +5. Push your changes to your forked repo and create a pull request. -If you don't have any previous experience with Git, you might want to take a -look at the [official Git tutorial](http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html), -or the [GitHub Help pages](http://help.github.com/). +Make sure to also check out our upcoming [milestones](https://github.com/thinkle/gourmet/milestones). -# Contributing -## Development -If you'd like to contribute, -1. [fork](https://github.com/thinkle/gourmet/fork) and clone the repository -2. pick an [issue](https://github.com/thinkle/gourmet/issues) to work on -3. post a little comment expressing your intent to make sure nobody else is - already working on it -4. hack the code, and when ready -5. push to your forked repo, and create a pull request. +## Setting Up a Development Environment + +You'll want to clone Gourmet to your computer and probably +[fork](https://github.com/thinkle/gourmet/fork) it as well. + +Ensure your system has the necessary prerequisites installed: +- [Python](https://www.python.org/), which is what Gourmet is written in. Only + currently-supported versions of Python 3 are supported. +- [PyGObject](https://pygobject.readthedocs.io/en/latest/) for GTK+ 3 and other + GNOME libraries. You may either install your system's `pygobject` package(s), + or (perhaps recommended) only install the necessary system requirements so + you can install `pygobject` using `pip` (described below). +- [intltool](https://freedesktop.org/wiki/Software/intltool/) for + internationalization. +- (optional) [poppler](https://poppler.freedesktop.org/) for exporting PDFs. + Python bindings are provided through PyGObject, so install the GLIB bindings + and associated GObject introspection data. +- (optional) [Enchant](https://abiword.github.io/enchant/) for spell-checking. + At least one of the backends must be installed as well. + +You may want to setup a [Python virtual +environment](https://docs.python.org/3/library/venv.html). This is optional but +highly recommended: +```bash +$ python -m venv --prompt gourmet env +$ source env/bin/activate +(gourmet) $ pip install -U pip setuptools wheel +``` + +Next, you should build localized files. Although this step isn't strictly +necessary, plugins will not work without it: +```bash +(gourmet) $ python setup.py build_i18n +``` + +Finally, you are ready to install Gourmet itself: +```bash +(gourmet) $ pip install -r development.in +``` +**Note:** If you encounter an error during the installation of +`pygtkspellcheck`, first install `pyenchant` and `pygobject` on their own: +```bash +(gourmet) $ pip install pyenchant pygobject +(gourmet) $ pip install -r development.in +``` +This installs the remaining Python dependencies and Gourmet itself in editable +mode, which allows you to run Gourmet and see your changes without having to +reinstall it. + + +At this point, you should be able to launch and run Gourmet: +```bash +(gourmet) $ gourmet +``` + + +## Style + +Gourmet is an old code base, consequently its style is not always consistent or +conformant to contemporary tastes. We are not interested in bikeshedding, but +please follow [PEP 8](http://www.python.org/dev/peps/pep-0008/) when writing new +code, and when working on old code, please tidy up as you go. -Make sure to also check out our upcoming [milestones](https://github.com/thinkle/gourmet/milestones). ## Issues and Suggestions + We welcome feedback and issue reporting. You can do so by browsing existing issues and commenting on them, or creating a new one. From fc82a009427968580d36618911ec1b96819ee278 Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Sun, 1 Nov 2020 10:33:46 -0600 Subject: [PATCH 10/12] GitHub Actions: don't build and test on every push But do allow them to be manually triggered. This reverts commit 65ffca7dedd9192ed4bd918895aa3ff9259d470b. --- .github/workflows/build.yml | 7 ++++++- .github/workflows/tests.yml | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9ec11976e..81e6a91b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,7 +3,12 @@ name: Build -on: [push, pull_request] +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: jobs: build: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a657659cd..79d8a7630 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,7 +3,12 @@ name: Tests -on: [push, pull_request] +on: + push: + branches: [master] + pull_request: + branches: [master] + workflow_dispatch: jobs: test: From 9083d9b2fca6945db21a69693df6bb501f3860cc Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Sun, 1 Nov 2020 10:37:10 -0600 Subject: [PATCH 11/12] Update contributing documentation --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 756461f33..a07568e11 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ You'll want to clone Gourmet to your computer and probably Ensure your system has the necessary prerequisites installed: - [Python](https://www.python.org/), which is what Gourmet is written in. Only - currently-supported versions of Python 3 are supported. + Python 3 is supported. - [PyGObject](https://pygobject.readthedocs.io/en/latest/) for GTK+ 3 and other GNOME libraries. You may either install your system's `pygobject` package(s), or (perhaps recommended) only install the necessary system requirements so From 96496770316de8b85b34056371eb5b8794708ada Mon Sep 17 00:00:00 2001 From: Karl Nack Date: Sun, 1 Nov 2020 10:39:05 -0600 Subject: [PATCH 12/12] development.in: use long option name --- development.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/development.in b/development.in index d07193879..9c565ff08 100644 --- a/development.in +++ b/development.in @@ -1,4 +1,4 @@ --e .[epub-export,mycookbook,pdf-export,spellcheck,web-import] +--editable .[epub-export,mycookbook,pdf-export,spellcheck,web-import] dogtail flake8 mypy