Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								c9ff4ab746 
								
							 
						 
						
							
							
								
								plugin: Settle on words-with-dashes metadata keys.  
							
							 
							
							
							
						 
						
							2020-03-15 10:36:49 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								d8afb209f7 
								
							 
						 
						
							
							
								
								gitignore: Add .mypy_cache.  
							
							 
							
							
							
						 
						
							2020-03-15 10:25:10 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								ee038d7b7d 
								
							 
						 
						
							
							
								
								plugin.core: Add type hints.  
							
							 
							
							
							
						 
						
							2020-03-08 18:24:51 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								547ae65780 
								
							 
						 
						
							
							
								
								plugin.core: _meta_set properly handles when post.meta is None.  
							
							 
							
							... 
							
							
							
							post is a NamedTuple, so attribute assignment is not allowed.
Instead we have to construct a whole new Posting. 
							
						 
						
							2020-03-08 11:32:03 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								c3c19b0ad2 
								
							 
						 
						
							
							
								
								plugin.core: Document base classes.  
							
							 
							
							... 
							
							
							
							Since so much other code is built on these, I wanted to make sure I
wrote this while it was all fresh in my head. 
							
						 
						
							2020-03-06 10:37:54 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								6e0c31f0ab 
								
							 
						 
						
							
							
								
								plugin.core: Add missing import.  
							
							 
							
							
							
						 
						
							2020-03-06 09:24:15 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								d34db71542 
								
							 
						 
						
							
							
								
								plugin: Introduce HookRegistry.  
							
							 
							
							... 
							
							
							
							This is the layer that keeps track of the different groups of hooks and
can filter them before runtime. The idea here is that you'll be able
to do things like skip hooks that require network access when you don't
have it, or skip CPU-intensive hooks when you don't need them, etc. 
							
						 
						
							2020-03-06 09:22:55 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								d145e22734 
								
							 
						 
						
							
							
								
								test_plugin_run: Simplify testing strategy.  
							
							 
							
							... 
							
							
							
							Avoid keeping state in the hook classes/instances. 
							
						 
						
							2020-03-05 19:31:07 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								e9e2bb9b00 
								
							 
						 
						
							
							
								
								plugin: Rename the main method of hooks from check to run.  
							
							 
							
							... 
							
							
							
							This will be more appropriate when we have hooks that do more than
check metadata. 
							
						 
						
							2020-03-05 17:48:59 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								53329c7a23 
								
							 
						 
						
							
							
								
								plugin: Start entry point.  
							
							 
							
							... 
							
							
							
							This doesn't integrate with existing hooks but at least sketches out the
main loop. 
							
						 
						
							2020-03-05 17:41:58 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								dbe9362987 
								
							 
						 
						
							
							
								
								meta_tax_implication: Initial module and tests.  
							
							 
							
							
							
						 
						
							2020-03-05 15:48:10 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								5849b562d0 
								
							 
						 
						
							
							
								
								expenseAllocation: Switch to own MetadataEnum class.  
							
							 
							
							... 
							
							
							
							Python's own enum works fine for the simple values that expenseAllocation
uses, but it won't work as well for metadata like taxImplication where
many of the values aren't legal Python identifiers. Introduce our own
MetadataEnum class with the necessary functionality, and switch to that. 
							
						 
						
							2020-03-05 15:33:27 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								16c47c64b2 
								
							 
						 
						
							
							
								
								expenseAllocation: Date-limit the transactions we work on.  
							
							 
							
							... 
							
							
							
							This prevents the plugin from giving meaning to postings that
might not really be there. 
							
						 
						
							2020-03-05 14:37:47 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								910b95c942 
								
							 
						 
						
							
							
								
								errors: Add a __repr__.  
							
							 
							
							... 
							
							
							
							This makes the errors easier to understand in test failures. 
							
						 
						
							2020-03-05 13:57:20 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								34090df23f 
								
							 
						 
						
							
							
								
								expenseAllocation: Set default values by account.  
							
							 
							
							
							
						 
						
							2020-03-05 13:44:36 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								a1ec25a33d 
								
							 
						 
						
							
							
								
								expenseAllocation: Test typos as invalid values.  
							
							 
							
							
							
						 
						
							2020-03-05 12:23:52 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								99f97d3f58 
								
							 
						 
						
							
							
								
								expenseAllocation: Accept 'admin' shorthand for 'administration'.  
							
							 
							
							
							
						 
						
							2020-03-05 12:23:03 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								2ac434b616 
								
							 
						 
						
							
							
								
								expenseAllocation: Test setting at transaction level.  
							
							 
							
							
							
						 
						
							2020-03-05 12:21:20 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								d436a388f7 
								
							 
						 
						
							
							
								
								expenseAllocation: Only check Expenses postings.  
							
							 
							
							
							
						 
						
							2020-03-05 12:10:05 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								7862919022 
								
							 
						 
						
							
							
								
								expenseAllocation: Start checker.  
							
							 
							
							... 
							
							
							
							This is the simplest version of a common validation we're going to do:
make sure that a particular piece of metadata has one of a set of
values.
This checker needs some bounds checking but I wanted to err on the
side of committing this early because it introduces so much base
infrastructure. 
							
						 
						
							2020-03-05 12:05:13 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Brett Smith 
								
							 
						 
						
							
							
							
							
								
							
							
								c5dd7984bc 
								
							 
						 
						
							
							
								
								Initial commit: license, setup.py, gitignore, skeleton structure.  
							
							 
							
							
							
						 
						
							2020-03-05 09:33:23 -05:00