def my_import(mod): if verbosity > 1: print(NOTICE("Check for %s" % mod)) # check if module exists before importing try: importlib.import_module(mod) t = __import__(mod, [], [], [" "]) except (ImportError, AttributeError) as e: if str(e).startswith('No module named'): try: exc_type, exc_value, exc_traceback = sys.exc_info() try: if exc_traceback.tb_next.tb_next is None: return False except AttributeError: pass finally: exc_traceback = None if verbosity > 1: if verbosity > 2: traceback.print_exc() print(ERROR("Cannot import module '%s': %s." % (mod, e))) return False if hasattr(t, "run"): if verbosity > 1: print(NOTICE2("Found script '%s' ..." % mod)) return t else: if verbosity > 1: print(ERROR2("Find script '%s' but no run() function found." % mod))
def get_project_root(): """ get the project root directory """ django_settings_module = os.environ.get('DJANGO_SETTINGS_MODULE') if not django_settings_module: module_str = settings.SETTINGS_MODULE else: module_str = django_settings_module.split(".")[0] mod = importlib.import_module(module_str) return os.path.dirname(os.path.abspath(mod.__file__))
def test_error_logging(self): # Ensure command errors are properly logged and reraised from django_extensions.management.base import logger logger.addHandler(MockLoggingHandler()) module_path = "tests.management.commands.error_raising_command" module = importlib.import_module(module_path) error_raising_command = module.Command() self.assertRaises(Exception, error_raising_command.execute) handler = logger.handlers[0] self.assertEqual(len(handler.messages['error']), 1)
def my_import(mod): if verbosity > 1: print(NOTICE("Check for %s" % mod)) # check if module exists before importing try: importlib.import_module(mod) t = __import__(mod, [], [], [" "]) except (ImportError, AttributeError) as e: if str(e).startswith('No module named'): try: exc_type, exc_value, exc_traceback = sys.exc_info() try: if exc_traceback.tb_next.tb_next is None: return False except AttributeError: pass finally: exc_traceback = None if verbosity > 1: if verbosity > 2: traceback.print_exc() print(ERROR("Cannot import module '%s': %s." % (mod, e))) return False #if verbosity > 1: # print(NOTICE("Found script %s ..." % mod)) if hasattr(t, "run"): if verbosity > 1: print(NOTICE2("Found script '%s' ..." % mod)) #if verbosity > 1: # print(NOTICE("found run() in %s. executing..." % mod)) return t else: if verbosity > 1: print( ERROR2( "Find script '%s' but no run() function found." % mod))
def handle(self, *args, **options): if len(args) > 1: raise CommandError("extra arguments supplied") if len(args) < 1: raise CommandError("session_key argument missing") key = args[0].lower() if not set(key).issubset(set(VALID_KEY_CHARS)): raise CommandError("malformed session key") engine = importlib.import_module(settings.SESSION_ENGINE) if not engine.SessionStore().exists(key): print("Session Key does not exist. Expired?") return session = engine.SessionStore(key) data = session.load() print('Session to Expire: %s' % session.get_expiry_date()) print('Raw Data: %s' % data) uid = data.get('_auth_user_id', None) if uid is None: print('No user associated with session') return print("User id: %s" % uid) User = get_user_model() try: user = User.objects.get(pk=uid) except User.DoesNotExist: print("No user associated with that id.") return username_field = 'username' if hasattr(User, 'USERNAME_FIELD') and User.USERNAME_FIELD is not None: username_field = User.USERNAME_FIELD for key in [username_field, 'email', 'first_name', 'last_name']: print("%s: %s" % (key, getattr(user, key)))
def get_field_db_type(self, description, field=None, table_name=None): from django.db import models # DB-API cursor.description #(name, type_code, display_size, internal_size, precision, scale, null_ok) = description type_code = description[1] if type_code in self.DATA_TYPES_REVERSE_OVERRIDE: reverse_type = self.DATA_TYPES_REVERSE_OVERRIDE[type_code] else: try: try: reverse_type = self.introspection.data_types_reverse[type_code] except AttributeError: # backwards compatibility for before introspection refactoring (r8296) reverse_type = self.introspection.DATA_TYPES_REVERSE.get(type_code) except KeyError: reverse_type = self.get_field_db_type_lookup(type_code) if not reverse_type: # type_code not found in data_types_reverse map key = (self.differences[-1][:2], description[:2]) if key not in self.unknown_db_fields: self.unknown_db_fields[key] = 1 self.add_difference('comment', "Unknown database type for field '%s' (%s)" % (description[0], type_code)) return None kwargs = {} if type_code == 16946 and field and getattr(field, 'geom_type', None) == 'POINT': reverse_type = 'django.contrib.gis.db.models.fields.PointField' if isinstance(reverse_type, tuple): kwargs.update(reverse_type[1]) reverse_type = reverse_type[0] if reverse_type == "CharField" and description[3]: kwargs['max_length'] = description[3] if reverse_type == "DecimalField": kwargs['max_digits'] = description[4] kwargs['decimal_places'] = description[5] and abs(description[5]) or description[5] if description[6]: kwargs['blank'] = True if reverse_type not in ('TextField', 'CharField'): kwargs['null'] = True if field and getattr(field, 'geography', False): kwargs['geography'] = True if '.' in reverse_type: from django_extensions.compat import importlib module_path, package_name = reverse_type.rsplit('.', 1) module = importlib.import_module(module_path) field_db_type = getattr(module, package_name)(**kwargs).db_type(connection=connection) else: field_db_type = getattr(models, reverse_type)(**kwargs).db_type(connection=connection) tablespace = field.db_tablespace if not tablespace: tablespace = "public" if (tablespace, table_name, field.column) in self.unsigned: field_db_type = '%s %s' % (field_db_type, self.unsigned_suffix) return field_db_type