From 6a21c9ae9d8548309a41cd2ea4f75186fc57b37d Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 19 Jul 2024 02:18:00 -0400 Subject: [PATCH] chore(refactor): Move activate_egg function into caller --- scrapyd/eggutils.py | 22 ---------------------- scrapyd/runner.py | 20 +++++++++++++++++++- tests/test_dont_load_settings.py | 2 +- 3 files changed, 20 insertions(+), 24 deletions(-) delete mode 100644 scrapyd/eggutils.py diff --git a/scrapyd/eggutils.py b/scrapyd/eggutils.py deleted file mode 100644 index a1785d35..00000000 --- a/scrapyd/eggutils.py +++ /dev/null @@ -1,22 +0,0 @@ -import os - -import pkg_resources - -from scrapyd.exceptions import BadEggError - - -def activate_egg(eggpath): - """Activate a Scrapy egg file. This is meant to be used from egg runners - to activate a Scrapy egg file. Don't use it from other code as it may - leave unwanted side effects. - """ - distributions = pkg_resources.find_distributions(eggpath) - if isinstance(distributions, tuple): - raise BadEggError - try: - d = next(distributions) - except StopIteration: - raise BadEggError from None - d.activate() - settings_module = d.get_entry_info("scrapy", "settings").module_name - os.environ.setdefault("SCRAPY_SETTINGS_MODULE", settings_module) diff --git a/scrapyd/runner.py b/scrapyd/runner.py index 58e5661b..0ffe3f08 100644 --- a/scrapyd/runner.py +++ b/scrapyd/runner.py @@ -3,10 +3,28 @@ import tempfile from contextlib import contextmanager +import pkg_resources from scrapy.utils.misc import load_object from scrapyd import Config -from scrapyd.eggutils import activate_egg +from scrapyd.exceptions import BadEggError + + +def activate_egg(eggpath): + """Activate a Scrapy egg file. This is meant to be used from egg runners + to activate a Scrapy egg file. Don't use it from other code as it may + leave unwanted side effects. + """ + distributions = pkg_resources.find_distributions(eggpath) + if isinstance(distributions, tuple): + raise BadEggError + try: + d = next(distributions) + except StopIteration: + raise BadEggError from None + d.activate() + settings_module = d.get_entry_info("scrapy", "settings").module_name + os.environ.setdefault("SCRAPY_SETTINGS_MODULE", settings_module) @contextmanager diff --git a/tests/test_dont_load_settings.py b/tests/test_dont_load_settings.py index 8ea3c2db..27dba0ba 100644 --- a/tests/test_dont_load_settings.py +++ b/tests/test_dont_load_settings.py @@ -8,7 +8,7 @@ class SettingsSafeModulesTest(unittest.TestCase): "scrapy.utils.project", "scrapy.utils.conf", "scrapyd.interfaces", - "scrapyd.eggutils", + "scrapyd.runner", ) def test_modules_that_shouldnt_load_settings(self):