mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-10-31 07:04:17 +00:00 
			
		
		
		
	Initial commit of open source Workload Automation.
This commit is contained in:
		
							
								
								
									
										74
									
								
								doc/source/conventions.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								doc/source/conventions.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| =========== | ||||
| Conventions | ||||
| =========== | ||||
|  | ||||
| Interface Definitions | ||||
| ===================== | ||||
|  | ||||
| Throughout this documentation a number of stubbed-out class definitions will be | ||||
| presented showing an interface defined by a base class that needs to be | ||||
| implemented by the deriving classes. The following conventions will be used when | ||||
| presenting such an interface: | ||||
|  | ||||
|    - Methods shown raising :class:`NotImplementedError` are abstract and *must* | ||||
|      be overridden by subclasses. | ||||
|    - Methods with ``pass`` in their body *may* be (but do not need to be)  overridden  | ||||
|      by subclasses. If not overridden, these methods will default to the base | ||||
|      class implementation, which may or may not be a no-op (the ``pass`` in the | ||||
|      interface specification does not necessarily mean that the method does not have an  | ||||
|      actual implementation in the base class). | ||||
|  | ||||
|      .. note:: If you *do* override these methods you must remember to call the | ||||
|                base class' version inside your implementation as well. | ||||
|  | ||||
|    - Attributes who's value is shown as ``None`` *must* be redefined by the | ||||
|      subclasses with an appropriate value. | ||||
|    - Attributes who's value is shown as something other than ``None`` (including | ||||
|      empty strings/lists/dicts) *may* be (but do not need to be) overridden by  | ||||
|      subclasses. If not overridden, they will default to the value shown. | ||||
|  | ||||
| Keep in mind that the above convention applies only when showing interface | ||||
| definitions and may not apply elsewhere in the documentation. Also, in the | ||||
| interest of clarity, only the relevant parts of the base class definitions will | ||||
| be shown some members (such as internal methods) may be omitted. | ||||
|  | ||||
|  | ||||
| Code Snippets | ||||
| ============= | ||||
|  | ||||
| Code snippets provided are intended to be valid Python code, and to be complete. | ||||
| However, for the sake of clarity, in some cases only the relevant parts will be | ||||
| shown with some details omitted (details that may necessary to validity of the code  | ||||
| but not to understanding of the concept being illustrated). In such cases, a | ||||
| commented ellipsis will be used to indicate that parts of the code have been | ||||
| dropped. E.g.  :: | ||||
|  | ||||
|         # ... | ||||
|  | ||||
|         def update_result(self, context): | ||||
|            # ... | ||||
|            context.result.add_metric('energy', 23.6, 'Joules', lower_is_better=True) | ||||
|  | ||||
|         # ... | ||||
|  | ||||
|  | ||||
| Core Class Names | ||||
| ================ | ||||
|  | ||||
| When core classes are referenced throughout the documentation, usually their | ||||
| fully-qualified names are given e.g. :class:`wlauto.core.workload.Workload`. | ||||
| This is done so that Sphinx_ can resolve them and provide a link. While | ||||
| implementing extensions, however, you should *not* be importing anything | ||||
| directly form under :mod:`wlauto.core`. Instead, classes you are meant to | ||||
| instantiate or subclass have been aliased in the root :mod:`wlauto` package, | ||||
| and should be imported from there, e.g. :: | ||||
|  | ||||
|         from wlauto import Workload | ||||
|  | ||||
| All examples given in the documentation follow this convention. Please note that | ||||
| this only applies to the :mod:`wlauto.core` subpackage; all other classes | ||||
| should be imported for their corresponding subpackages. | ||||
|  | ||||
| .. _Sphinx: http://sphinx-doc.org/ | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user