From: Neil Muller <drnlmuller+debian@gmail.com>
Date: Thu, 8 Oct 2015 14:08:56 -0700
Subject: remove pkg_resources usage & --eggs option
Forwarded: not-needed
Last-Update: 2026-09-09

Patch-Name: remove_pkg_resources
---
 sqlobject/conftest.py | 7 -------
 1 file changed, 7 deletions(-)

--- a/sqlobject/conftest.py
+++ b/sqlobject/conftest.py
@@ -1,12 +1,5 @@
 """This module is used by pytest to configure testing"""
 
-try:
-    import pkg_resources
-except ImportError:
-    pass
-else:
-    pkg_resources.require('SQLObject')
-
 # Override some options (doesn't override command line):
 verbose = 0
 exitfirst = True
--- a/scripts/sqlobject-admin
+++ b/scripts/sqlobject-admin
@@ -4,13 +4,6 @@
 import os
 
 try:
-    import pkg_resources
-    pkg_resources.require('SQLObject>0.6.1')
-except (ImportError, pkg_resources.DistributionNotFound):
-    # Oh well, we tried...
-    pass
-
-try:
     import sqlobject.manager
 except ImportError:
     try:
--- a/scripts/sqlobject-convertOldURI
+++ b/scripts/sqlobject-convertOldURI
@@ -8,12 +8,6 @@
 except IndexError:
     sys.exit("Usage: %s old-style-URI" % sys.argv[0])
 
-try:
-    import pkg_resources
-    pkg_resources.require('SQLObject>=1.0.0')
-except (ImportError, pkg_resources.DistributionNotFound):
-    pass
-
 from sqlobject import connectionForURI
 conn = connectionForURI(uri, oldUri=True)
 print(conn.uri())
--- a/sqlobject/manager/command.py
+++ b/sqlobject/manager/command.py
@@ -175,13 +175,6 @@
                           action="count",
                           dest="interactive",
                           default=0)
-    parser.add_option('--egg',
-                      help="Select modules from the given Egg, "
-                      "using sqlobject.txt",
-                      action="append",
-                      metavar="EGG_SPEC",
-                      dest="eggs",
-                      default=[])
     return parser
 
 
@@ -318,8 +311,6 @@
         if conf and conf.get('database'):
             conn = sqlobject.connectionForURI(conf['database'])
             sqlobject.sqlhub.processConnection = conn
-        for egg_spec in getattr(self.options, 'eggs', []):
-            self.load_options_from_egg(egg_spec)
         self.command()
 
     def classes(self, require_connection=True,
@@ -330,8 +321,6 @@
                 moduleloader.load_module(module_name)))
         for package_name in self.options.packages:
             all.extend(self.classes_from_package(package_name))
-        for egg_spec in self.options.eggs:
-            all.extend(self.classes_from_egg(egg_spec))
         if self.options.class_matchers:
             filtered = []
             for soClass in all:
@@ -374,10 +363,6 @@
             if self.options.class_matchers:
                 print('Matching class pattern: %s' %
                       self.options.class_matches)
-            if self.options.eggs:
-                print('Looked in eggs: %s' % ', '.join(self.options.eggs))
-            else:
-                print('No eggs specified')
             sys.exit(1)
         return self.orderClassesByDependencyLevel(all)
 
@@ -499,47 +484,6 @@
             find_classes_in_file(None, dirpath, dirnames + filenames)
         return all
 
-    def classes_from_egg(self, egg_spec):
-        modules = []
-        dist, conf = self.config_from_egg(egg_spec, warn_no_sqlobject=True)
-        for mod in conf.get('db_module', '').split(','):
-            mod = mod.strip()
-            if not mod:
-                continue
-            if self.options.verbose:
-                print('Looking in module %s' % mod)
-            modules.extend(self.classes_from_module(
-                moduleloader.load_module(mod)))
-        return modules
-
-    def load_options_from_egg(self, egg_spec):
-        dist, conf = self.config_from_egg(egg_spec)
-        if (hasattr(self.options, 'output_dir')
-                and not self.options.output_dir and conf.get('history_dir')):
-            dir = conf['history_dir']
-            dir = dir.replace('$base', dist.location)
-            self.options.output_dir = dir
-
-    def config_from_egg(self, egg_spec, warn_no_sqlobject=True):
-        import pkg_resources
-        dist = pkg_resources.get_distribution(egg_spec)
-        if not dist.has_metadata('sqlobject.txt'):
-            if warn_no_sqlobject:
-                print('No sqlobject.txt in %s egg info' % egg_spec)
-            return None, {}
-        result = {}
-        for line in dist.get_metadata_lines('sqlobject.txt'):
-            line = line.strip()
-            if not line or line.startswith('#'):
-                continue
-            name, value = line.split('=', 1)
-            name = name.strip().lower()
-            if name in result:
-                print('Warning: %s appears more than once '
-                      'in sqlobject.txt' % name)
-            result[name.strip().lower()] = value.strip()
-        return dist, result
-
     def command(self):
         raise NotImplementedError
 
