You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				| from inspect import signature
 | |
| from configspec import *
 | |
| from shepherd import PluginInterface
 | |
| 
 | |
| """
 | |
| Plugin to test basic registration calls.
 | |
| """
 | |
| 
 | |
| interface = PluginInterface()
 | |
| 
 | |
| confspec = ConfigSpecification()
 | |
| confspec.add_spec("spec1", StringSpec())
 | |
| 
 | |
| interface.register_confspec(confspec)
 | |
| 
 | |
| 
 | |
| def my_interface_function():
 | |
|     return 42
 | |
| 
 | |
| 
 | |
| interface.register_function(my_interface_function)
 | |
| 
 | |
| 
 | |
| def basic_attachment():
 | |
|     return "basic attachment"
 | |
| 
 | |
| 
 | |
| def attachment_with_args(arg_a, arg_b):
 | |
|     return F"attachment with args: {arg_a}, {arg_b}"
 | |
| 
 | |
| 
 | |
| def attachment_with_fancy_args(arg_a, arg_b, arg_c=True):
 | |
|     return F"attachment with fancy args: {arg_a}, {arg_b}, {arg_c}"
 | |
| 
 | |
| 
 | |
| interface.register_hook("basic_hook")
 | |
| interface.register_hook("hook_with_args", ("arg_a", "arg_b"))
 | |
| interface.register_hook("hook_with_fancy_args", signature(lambda arg_a, arg_b, arg_c=True: None))
 | |
| 
 | |
| interface.register_attachment(basic_attachment, "basic_hook")
 | |
| interface.register_attachment(attachment_with_args, "simpletestplugin.hook_with_args")
 | |
| interface.register_attachment(attachment_with_fancy_args, "hook_with_fancy_args")
 |