mirror of
				https://github.com/wting/autojump
				synced 2025-06-13 12:54:07 +00:00 
			
		
		
		
	more pylint
This commit is contained in:
		
							parent
							
								
									43d2d94a48
								
							
						
					
					
						commit
						ed5b2b2fed
					
				
							
								
								
									
										48
									
								
								autojump
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								autojump
									
									
									
									
									
								
							| @ -28,24 +28,28 @@ from tempfile import NamedTemporaryFile | |||||||
| from operator import itemgetter | from operator import itemgetter | ||||||
| import os | import os | ||||||
| import signal | import signal | ||||||
| max_keyweight = 1000 | MAX_KEYWEIGHT = 1000 | ||||||
| max_stored_paths = 600 | MAX_STORED_PATHS = 600 | ||||||
| completion_separator = '__' | COMPLETION_SEPARATOR = '__' | ||||||
| config_dir = os.environ.get("AUTOJUMP_DATA_DIR", os.path.expanduser("~")) | CONFIG_DIR = os.environ.get("AUTOJUMP_DATA_DIR", os.path.expanduser("~")) | ||||||
| 
 | 
 | ||||||
| def signal_handler(arg1, arg2): | def signal_handler(arg1, arg2): | ||||||
|  |     """Autojump shouldn't break on SIGINT"""  | ||||||
|     print("Received SIGINT, trying to continue") |     print("Received SIGINT, trying to continue") | ||||||
| signal.signal(signal.SIGINT, signal_handler) #Don't break on sigint | signal.signal(signal.SIGINT, signal_handler)  | ||||||
| 
 | 
 | ||||||
| def uniqadd(list, key): | def uniqadd(collection, key): | ||||||
|     if key not in list: |     """Adds a key to a list only if it is not already present""" | ||||||
|         list.append(key) |     if key not in collection: | ||||||
|  |         collection.append(key) | ||||||
| 
 | 
 | ||||||
| def dicadd(dic, key, increment=1): | def dicadd(dic, key, increment=1): | ||||||
|  |     """Increment a value in a dic, set it to 0 | ||||||
|  |     if is is not already present""" | ||||||
|     dic[key] = dic.get(key, 0.)+increment |     dic[key] = dic.get(key, 0.)+increment | ||||||
| 
 | 
 | ||||||
| def save(path_dict, dic_file): | def save(path_dict, dic_file): | ||||||
|     f = NamedTemporaryFile(dir=config_dir, delete=False) |     f = NamedTemporaryFile(dir=CONFIG_DIR, delete=False) | ||||||
|     pickle.dump(path_dict, f, -1) |     pickle.dump(path_dict, f, -1) | ||||||
|     f.flush() |     f.flush() | ||||||
|     os.fsync(f) |     os.fsync(f) | ||||||
| @ -66,17 +70,17 @@ def forget(path_dict, dic_file): | |||||||
|     """Gradually forget about directories. Only call |     """Gradually forget about directories. Only call | ||||||
|     from the actual jump since it can take time""" |     from the actual jump since it can take time""" | ||||||
|     keyweight = sum(path_dict.values())  |     keyweight = sum(path_dict.values())  | ||||||
|     if keyweight>max_keyweight:  |     if keyweight>MAX_KEYWEIGHT:  | ||||||
|         for k in path_dict.keys(): |         for k in path_dict.keys(): | ||||||
|             path_dict[k]*=0.9*max_keyweight/keyweight |             path_dict[k]*=0.9*MAX_KEYWEIGHT/keyweight | ||||||
|         save(path_dict, dic_file) |         save(path_dict, dic_file) | ||||||
| 
 | 
 | ||||||
| def clean_dict(sorted_dirs, path_dict): | def clean_dict(sorted_dirs, path_dict): | ||||||
|     """Limits the sized of the path_dict to max_stored_paths.  |     """Limits the sized of the path_dict to MAX_STORED_PATHS.  | ||||||
|     Returns True if keys were deleted""" |     Returns True if keys were deleted""" | ||||||
|     if len(sorted_dirs) > max_stored_paths: |     if len(sorted_dirs) > MAX_STORED_PATHS: | ||||||
|         #remove 25 more than needed, to avoid doing it every time |         #remove 25 more than needed, to avoid doing it every time | ||||||
|         for dir, dummy in sorted_dirs[max_stored_paths-25:]: |         for dir, dummy in sorted_dirs[MAX_STORED_PATHS-25:]: | ||||||
|             del path_dict[dir] |             del path_dict[dir] | ||||||
|         return True |         return True | ||||||
|     else: return False |     else: return False | ||||||
| @ -137,10 +141,10 @@ except getopt.GetoptError as e: | |||||||
|     print("Unknown command line argument: %s" % e) |     print("Unknown command line argument: %s" % e) | ||||||
|     exit(1) |     exit(1) | ||||||
| 
 | 
 | ||||||
| if config_dir == os.path.expanduser("~"): | if CONFIG_DIR == os.path.expanduser("~"): | ||||||
|     dic_file = config_dir+"/.autojump_py" |     dic_file = CONFIG_DIR+"/.autojump_py" | ||||||
| else: | else: | ||||||
|     dic_file = config_dir+"/autojump_py" |     dic_file = CONFIG_DIR+"/autojump_py" | ||||||
| path_dict = open_dic(dic_file) | path_dict = open_dic(dic_file) | ||||||
| if ('-a', '') in optlist: | if ('-a', '') in optlist: | ||||||
|     # The home dir can be reached quickly by "cd" |     # The home dir can be reached quickly by "cd" | ||||||
| @ -174,20 +178,20 @@ else: | |||||||
|     # If the last pattern contains a full path, jump there |     # If the last pattern contains a full path, jump there | ||||||
|     # The regexp is because we need to support stuff like |     # The regexp is because we need to support stuff like | ||||||
|     # "j wo jo__3__/home/joel/workspace/joel" for zsh |     # "j wo jo__3__/home/joel/workspace/joel" for zsh | ||||||
|     last_pattern_path = re.sub("(.*)"+completion_separator, "", patterns[-1]) |     last_pattern_path = re.sub("(.*)"+COMPLETION_SEPARATOR, "", patterns[-1]) | ||||||
|     if (len(last_pattern_path)>0 and |     if (len(last_pattern_path)>0 and | ||||||
|           last_pattern_path[0] == "/" and |           last_pattern_path[0] == "/" and | ||||||
|           os.path.exists(last_pattern_path)): |           os.path.exists(last_pattern_path)): | ||||||
|         if not completion: print(last_pattern_path) |         if not completion: print(last_pattern_path) | ||||||
|     else: |     else: | ||||||
|         #check for ongoing completion, and act accordingly |         #check for ongoing completion, and act accordingly | ||||||
|         endmatch = re.search(completion_separator+"([0-9]+)", patterns[-1]) |         endmatch = re.search(COMPLETION_SEPARATOR+"([0-9]+)", patterns[-1]) | ||||||
|         if endmatch:  #user has selected a completion |         if endmatch:  #user has selected a completion | ||||||
|             userchoice = int(endmatch.group(1)) |             userchoice = int(endmatch.group(1)) | ||||||
|             patterns[-1] = re.sub(completion_separator+"[0-9]+.*", |             patterns[-1] = re.sub(COMPLETION_SEPARATOR+"[0-9]+.*", | ||||||
|                     "", patterns[-1]) |                     "", patterns[-1]) | ||||||
|         else: #user hasn't selected a completion, display the same choices again |         else: #user hasn't selected a completion, display the same choices again | ||||||
|             endmatch = re.match("(.*)"+completion_separator, patterns[-1]) |             endmatch = re.match("(.*)"+COMPLETION_SEPARATOR, patterns[-1]) | ||||||
|             if endmatch: patterns[-1] = endmatch.group(1) |             if endmatch: patterns[-1] = endmatch.group(1) | ||||||
| 
 | 
 | ||||||
|         dirs = list(path_dict.items()) |         dirs = list(path_dict.items()) | ||||||
| @ -214,6 +218,6 @@ else: | |||||||
|                 print(quotes+results[userchoice-1]+quotes) |                 print(quotes+results[userchoice-1]+quotes) | ||||||
|         elif len(results) > 1 and completion: |         elif len(results) > 1 and completion: | ||||||
|             print("\n".join(("%s%s%d%s%s" % (patterns[-1], |             print("\n".join(("%s%s%d%s%s" % (patterns[-1], | ||||||
|                 completion_separator, n+1, completion_separator, r) |                 COMPLETION_SEPARATOR, n+1, COMPLETION_SEPARATOR, r) | ||||||
|                 for n, r in enumerate(results[:8])))) |                 for n, r in enumerate(results[:8])))) | ||||||
|         elif results: print(quotes+results[0]+quotes) |         elif results: print(quotes+results[0]+quotes) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user