Extra directives look ugly to me. Trying to keep the language lean.
I'd just have a Python-level feature and you'd have to write your own main
with load_file().
It's pretty exotic anyway.

On Sat, Jun 5, 2021 at 12:53 AM Ben Blount <[email protected]> wrote:

> Custom booking methods would be fantastic.
>
> Does anyone have thoughts on how such a registry would be configured?
> The only mechanism that comes to mind as workable would be to register it
> like plugins are currently. Given the plans to add pre-booking plugins in
> v3 that work on direct-from-parser inputs, I imagine those would take a
> similar approach.
>
> So maybe we'd have 2 additional plugin directives:
> pre_plugin <python_path>
> booking_plugin <python_path>
>
> which matches today's  plugin <python_path>
>
> On Fri, Jun 4, 2021 at 9:28 PM [email protected] <
> [email protected]> wrote:
>
>> Thanks for the reply, Martin!
>>
>> In the absence of anyone piping up to say such a plugin already exists
>> that I've overlooked, I might implement this as a plugin first to share
>> with you all, and then consider contributing to a "custom booking method"
>> registry feature if there's interest in it. But it will be a little while
>> before I can contribute either in any case.
>>
>> On Saturday, 5 June 2021 at 2:20:16 pm UTC+10 [email protected] wrote:
>>
>>> Sure why not.
>>>
>>> But you could also write your own booking method that does just this
>>> instead?
>>> I would call it "CHECK_FIFO".
>>> (Problem is it's orthogonal to all the methods, e.g. CHECK_LIFO, etc..
>>> Whatever.)
>>>
>>> Right now I don't have a registration mechanism so you'd have to either
>>> - patch the code
>>> - monkey-patch the code without change the library (not sure if possible)
>>> - send me a patch to add a registry so you can do this cleanly
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Jun 4, 2021 at 11:52 PM [email protected] <
>>> [email protected]> wrote:
>>>
>>>> Hi folks,
>>>>
>>>> I use a FIFO methodology for capital gains but with STRICT booking,
>>>> inputting the lots I sell explicitly (relying heavily on vim-beancount's
>>>> GetContext, but increasingly also automating this with importers that
>>>> accept the prior entries).
>>>>
>>>> I have two reasons: I'm affected by the "transfer lots with cost" issue
>>>> discussed at length in crypto contexts, but a crypto transfer with a fee
>>>> means increasing the cost base slightly while preserving the date. All
>>>> things considered, this is safer to do explicitly so I can see what's going
>>>> on. I also find it personally preferable for everything to be explicitly
>>>> expressed in the text. It's aesthetically appealing and reassuring to me
>>>> that I haven't misunderstood beancount if it's done explicitly.
>>>>
>>>> Which brings me to my question: I have in mind a plugin that would
>>>> check the transactions after all the parsing and processing is complete,
>>>> and assert that the lots I've explicitly reduced are the ones that are
>>>> consistent with a FIFO approach.
>>>>
>>>> I think this is something useful and that I could reasonably write (and
>>>> open-source) when I have time, but I wanted to ask if anyone's aware of an
>>>> existing plugin that does this?
>>>>
>>>> A further thought is that if I choose `option "booking_method"
>>>> "FIFO"`, then it would be extremely cool if beancount would not just
>>>> interpolate missing bookings according to FIFO but also consider it an
>>>> error if I have explicitly booked a reduction that doesn't conform to FIFO.
>>>> I'll leave it up to Martin to decide whether this validation is in the
>>>> scope of `booking_method` or whether this belongs to a plugin.
>>>>
>>>> Thanks for reading!
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Beancount" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/beancount/2a2682b6-83d9-4288-a3d5-c7c5b2659cafn%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/beancount/2a2682b6-83d9-4288-a3d5-c7c5b2659cafn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Beancount" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beancount/37a15b36-1b13-4166-9402-2a81f4c56249n%40googlegroups.com
>> <https://groups.google.com/d/msgid/beancount/37a15b36-1b13-4166-9402-2a81f4c56249n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Beancount" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beancount/CACGEkZtm9-OuYNxk8ccseyqPYrwT-nGPMdNyZiovLN%2Bp2kGRGA%40mail.gmail.com
> <https://groups.google.com/d/msgid/beancount/CACGEkZtm9-OuYNxk8ccseyqPYrwT-nGPMdNyZiovLN%2Bp2kGRGA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/CAK21%2BhPTCp_%3D%2BSCfVEqZdHDcTqhLNhdPn2pyMRPgu9Owda%2BxCQ%40mail.gmail.com.

Reply via email to