示例#1
0
	def test_loader(self):
		loader = Loader()
		fm = OpenStruct(loader=loader)
		SettingsAware.settings = Fake()
		FileManagerAware.fm = fm

		# initially, the loader has nothing to do
		self.assertFalse(loader.has_work())

		dir = Directory(TESTDIR)
		self.assertEqual(None, dir.files)
		self.assertFalse(loader.has_work())

		# Calling load_content() will enqueue the loading operation.
		# dir is not loaded yet, but the loader has work
		dir.load_content(schedule=True)
		self.assertEqual(None, dir.files)
		self.assertTrue(loader.has_work())

		iterations = 0
		while loader.has_work():
			iterations += 1
			loader.work()
		#print(iterations)
		self.assertNotEqual(None, dir.files)
		self.assertFalse(loader.has_work())
示例#2
0
    def test_loader(self):
        loader = Loader()
        fm = OpenStruct(loader=loader)
        SettingsAware.settings = Fake()
        FileManagerAware.fm = fm

        # initially, the loader has nothing to do
        self.assertFalse(loader.has_work())

        dir = Directory(TESTDIR)
        self.assertEqual(None, dir.files)
        self.assertFalse(loader.has_work())

        # Calling load_content() will enqueue the loading operation.
        # dir is not loaded yet, but the loader has work
        dir.load_content(schedule=True)
        self.assertEqual(None, dir.files)
        self.assertTrue(loader.has_work())

        iterations = 0
        while loader.has_work():
            iterations += 1
            loader.work()
        #print(iterations)
        self.assertNotEqual(None, dir.files)
        self.assertFalse(loader.has_work())
示例#3
0
class benchmark_load(object):
	def __init__(self):
		self.loader = Loader()
		fm = OpenStruct(loader=self.loader)
		SettingsAware.settings = Fake()
		FileManagerAware.fm = fm
		self.dir = Directory(TESTDIR)

	def bm_run(self, n):
		for _ in range(n):
			self.dir.load_content(schedule=True)
			while self.loader.has_work():
				self.loader.work()
示例#4
0
class benchmark_load(object):
    def __init__(self):
        self.loader = Loader()
        fm = OpenStruct(loader=self.loader)
        SettingsAware.settings = Fake()
        FileManagerAware.fm = fm
        self.dir = Directory(TESTDIR)

    def bm_run(self, n):
        for _ in range(n):
            self.dir.load_content(schedule=True)
            while self.loader.has_work():
                self.loader.work()
示例#5
0
 def get_directory(self, path):
     """Get the directory object at the given path"""
     path = abspath(path)
     try:
         return self.directories[path]
     except KeyError:
         obj = Directory(path)
         self.directories[path] = obj
         return obj
示例#6
0
class benchmark_raw_load(object):
	def __init__(self):
		SettingsAware.settings = Fake()
		self.dir = Directory(TESTDIR)

	def bm_run(self, n):
		generator = self.dir.load_bit_by_bit()
		for _ in range(n):
			raw_load_content(self.dir)
示例#7
0
class benchmark_raw_load(object):
    def __init__(self):
        SettingsAware.settings = Fake()
        self.dir = Directory(TESTDIR)

    def bm_run(self, n):
        generator = self.dir.load_bit_by_bit()
        for _ in range(n):
            raw_load_content(self.dir)
示例#8
0
def raw_load_content(self):
	"""
	The method which is used in a Directory object to load stuff.
	Keep this up to date!
	"""

	from os.path import join, isdir, basename
	from os import listdir
	import ranger.ext.mount_path

	self.loading = True
	self.load_if_outdated()

	try:
		if self.exists and self.runnable:
			# 0.003s:
			self.mount_path = ranger.ext.mount_path.mount_path(self.path)

			# 0.1s:
			filenames = []
			for fname in listdir(self.path):
				if not self.settings.show_hidden:
					hfilter = self.settings.hidden_filter
					if hfilter:
						if isinstance(hfilter, str) and hfilter in fname:
							continue
						if hasattr(hfilter, 'search') and \
							hfilter.search(fname):
							continue
				if isinstance(self.filter, str) and self.filter \
						and self.filter not in fname:
					continue
				filenames.append(join(self.path, fname))
			# ---

			self.load_content_mtime = os.stat(self.path).st_mtime

			marked_paths = [obj.path for obj in self.marked_items]

			# 2.85s:
			files = []
			for name in filenames:
				if isdir(name):
					try:
						item = self.fm.env.get_directory(name)
					except:
						item = Directory(name)
				else:
					item = File(name)
				item.load_if_outdated()
				files.append(item)

			# 0.2s
			self.disk_usage = sum(f.size for f in files if f.is_file)

			self.scroll_offset = 0
			self.filenames = filenames
			self.files = files

			self._clear_marked_items()
			for item in self.files:
				if item.path in marked_paths:
					self.mark_item(item, True)
				else:
					self.mark_item(item, False)

			self.sort()

			if len(self.files) > 0:
				if self.pointed_obj is not None:
					self.sync_index()
				else:
					self.move(to=0)
		else:
			self.filenames = None
			self.files = None

		self.cycle_list = None
		self.content_loaded = True
		self.determine_infostring()
		self.correct_pointer()

	finally:
		self.loading = False
示例#9
0
	def __init__(self):
		SettingsAware.settings = Fake()
		self.dir = Directory(TESTDIR)
示例#10
0
	def __init__(self):
		self.loader = Loader()
		fm = OpenStruct(loader=self.loader)
		SettingsAware.settings = Fake()
		FileManagerAware.fm = fm
		self.dir = Directory(TESTDIR)
示例#11
0
def raw_load_content(self):
    """
	The method which is used in a Directory object to load stuff.
	Keep this up to date!
	"""

    from os.path import join, isdir, basename
    from os import listdir
    import ranger.ext.mount_path

    self.loading = True
    self.load_if_outdated()

    try:
        if self.exists and self.runnable:
            # 0.003s:
            self.mount_path = ranger.ext.mount_path.mount_path(self.path)

            # 0.1s:
            filenames = []
            for fname in listdir(self.path):
                if not self.settings.show_hidden:
                    hfilter = self.settings.hidden_filter
                    if hfilter:
                        if isinstance(hfilter, str) and hfilter in fname:
                            continue
                        if hasattr(hfilter, 'search') and \
                         hfilter.search(fname):
                            continue
                if isinstance(self.filter, str) and self.filter \
                  and self.filter not in fname:
                    continue
                filenames.append(join(self.path, fname))
            # ---

            self.load_content_mtime = os.stat(self.path).st_mtime

            marked_paths = [obj.path for obj in self.marked_items]

            # 2.85s:
            files = []
            for name in filenames:
                if isdir(name):
                    try:
                        item = self.fm.env.get_directory(name)
                    except:
                        item = Directory(name)
                else:
                    item = File(name)
                item.load_if_outdated()
                files.append(item)

            # 0.2s
            self.disk_usage = sum(f.size for f in files if f.is_file)

            self.scroll_offset = 0
            self.filenames = filenames
            self.files = files

            self._clear_marked_items()
            for item in self.files:
                if item.path in marked_paths:
                    self.mark_item(item, True)
                else:
                    self.mark_item(item, False)

            self.sort()

            if len(self.files) > 0:
                if self.pointed_obj is not None:
                    self.sync_index()
                else:
                    self.move(to=0)
        else:
            self.filenames = None
            self.files = None

        self.cycle_list = None
        self.content_loaded = True
        self.determine_infostring()
        self.correct_pointer()

    finally:
        self.loading = False
示例#12
0
 def __init__(self):
     SettingsAware.settings = Fake()
     self.dir = Directory(TESTDIR)
示例#13
0
 def __init__(self):
     self.loader = Loader()
     fm = OpenStruct(loader=self.loader)
     SettingsAware.settings = Fake()
     FileManagerAware.fm = fm
     self.dir = Directory(TESTDIR)