Saravanan666/pypi-org huggingface dataset:
Package: beancount-future-transactions
Beancount future transactionsThis is a very simple plugin for Beancount that filters out transactions with a future date, provided they are tagged with the#futuretag.To use:Install using your favorite Python method — probablypiporpython setup.py install, although you may want to install to your user directory (pip --user).Include the stanzaplugin "beancount_extensions.future_transactions"in your Beancount file.That's it.From this point on, any transaction with a future tagged#futurewill not appear in your reports and queries.If you want to suppressallfuture-dated entries, add the optionsuppress_all_future_entriesto your plugin stanza:; beancount.bean

plugin "beancount_extensions.future_transactions" "suppress_all_future_entries"if you want to suppress entries taggedwith a different tag, say,#excludenow, then you can use the following option:; beancount.bean

plugin "beancount_extensions.future_transactions" "tag_to_suppress=excludenow"
Package: beancount-hangseng
Beancount/CSV parser for HK Bank AccountsFew Hong Kong Banks provide structured formatted (CSVs, OFX, etc) electronic
statements to users, usually only PDFs are available (unless you're a
Business-tier user).This package parses PDF eStatements from some of the HK Banks, and output
results asbeancountorCSV.Currently supports:Hang Seng Integrated Account (OnlySavingstransactions are extracted)Hang Seng MPOWER Credit CardDBS COMPASS VISA Credit CardInstallationInstall external dependencypdftotext. This is normally packaged underpopplerfor most Linux distros. Windows
users may try withthis.Install package viapip:pip install beancount-hangsengUsageBeancountAddHangSengSavingsImporter/MPowerMasterImporter/DBSImporterto your
import config (Seeconfig.pyfor example)Runbean-extract config.py /path/to/eStatement.pdf > output.beancountCSVbeancount-hangseng-csv -o output.csv -f {hangseng,mpower,dbs} /path/to/statement.pdfIf statements are already downloaded in one folder, you may process and verify
output in one go:cd /path/to/output_dir
beancount-hangseng-csv -t {hangseng,mpower,dbs} -v /path/to/HangSeng_*.pdf -d /tmp/Runbeancount-hangseng-csv -hfor more options and debug suggestions.CreditsInspired by @dictcp'sGist."Therefore I say unto you, Take no thought for your life, what ye shall eat,
or what ye shall drink; nor yet for your body, what ye shall put on. Is not
the life more than meat, and the body than raiment?" -- Matthew 6:25
Package: beancount-hypothesis
beancount-hypothesisA package which provides hypothesis strategies for generating beancount types.UsageStrategies are provided for all of the core types present inbeancount. The
below example generates a random list of directives:importbeancount_hypothesisashfromhypothesisimportgiven,strategiesass@given(s.recursive(h.balance()|h.close()|h.commodity()|h.custom()|h.document()|h.event()|h.note()|h.open()|h.query()|h.pad()|h.price()|h.transaction(),s.lists,max_leaves=5,))Most of the types have restrictions placed on them with the following
philosophy:The value shouldn't break thebeancountpackageThe value should be somewhat authentic (i.e. resemble user data)Note that the input generated from the strategies is not intended to be passed
to any beancount functions. In other words, passing the above example to the
loader will result in undefined behavior as it doesn't follow any sensible
rules.TestingtoxWhile testing a package meant for tests seems slightly redundant, there are
some custom compositions present that benefit from testing. In most cases the
tests just assert that generating data doesn't raise any exceptions (i.e. breakbeancountin some way).ContributingCheck out theissuesfor items needing attention or submit your own and
then:Fork the repoCreate your feature branch (git checkout -b feature/fooBar)Commit your changes (git commit -am 'Add some fooBar')Push to the branch (git push origin feature/fooBar)Create a new Pull Request
Package: beancount-import-sparkasse
Beancount Importer - SparkasseInstallationThe importer is available onPyPIpipinstall--userbeancount-import-sparkasseConfigurationAdd the importer to yourbeancountimport configfrombeancount_import_sparkaseimportSparkasseCSVCAMTImporterCONFIG=[SparkasseCSVCAMTImporter(iban="DE01 2345 6789 0123 4567 89",account="Assets:DE:Sparkasse:Giro")]
Package: beancount-ing
Beancount ING-DiBa Importerbeancount-ingprovides an Importer for converting CSV exports ofING-DiBa(Germany) account summaries to theBeancountformat.Installation$pipinstallbeancount-ingIn case you prefer installing from the Github repository, please note thatdevelopis the development branch sostableis what you should be installing
from.UsageIf you're not familiar with how to import external data into Beancount, please
readthis guidefirst.Adjust yourconfig fileto include the providedECImporter. A sample
configuration might look like the following:frombeancount_ingimportECImporterCONFIG=[# ...ECImporter(IBAN_NUMBER,'Assets:INGDiBa:EC','Max Mustermann',file_encoding='ISO-8859-1',),# ...]Once this is in place, you should be able to runbean-extracton the command
line to extract the transactions and pipe all of them into your Beancount file.$bean-extract/path/to/config.pytransaction.csv>>you.beancountContributingContributions are most welcome!Please make sure you have Python 3.6+ andPoetryinstalled.Clone the repository:git clone https://github.com/siddhantgoel/beancount-ingInstall the packages required for development:poetry installThat's basically it. You should now be able to run the test suite:poetry run pytest tests/.
Package: beancount-mbank
Beancount Importer for mBank (PL) CSV exportsInstallationpip install beancount-mbankYou can also install the in-development version with:pip install https://github.com/lstrzepek/beancount-mbank/archive/main.zipDocumentationhttps://beancount-mbank.readthedocs.io/DevelopmentTo run all the tests run:toxNote, to combine the coverage data from all the tox environments run:Windowsset PYTEST_ADDOPTS=--cov-append
toxOtherPYTEST_ADDOPTS=--cov-append toxChangelog0.0.0 (2023-01-22)First release on PyPI.
Package: beancount-mercury
beancount-mercurybeancount-mercury provides an Importer for converting CSV exports Mercury checking transactions intoBeancountv2 format.Installationpipinstallbeancount-mercuryUsageAdd the Mercury importer to your account as follows:importbeancount_mercuryCONFIG=[beancount_mercury.CheckingImporter('Assets:Checking:Mercury',currency='USD',account_patterns=[# These are example patterns. You can add your own.('GITHUB','Expenses:Cloud-Services:Source-Hosting:Github'),('Fedex','Expenses:Postage:FedEx'),]),]Theaccount_patternsparameter is a list of (regex, account) pairs. For each line in your Mercury CSV,CheckingImporterwill attempt to create a matching posting on the transaction by matching the payee or narration to the regexes. The regexes are in priority order, with earlier patterns taking priority over later patterns.Once this configuration is in place, you can usebean-extractto convert a Mercury CSV export of transactions to beancount format:bean-extractconfig.pymercury-transactions.csvResourcesSeeawesome-beancountfor other publicly available Beancount importers.
Package: beancount-mnb
beancount_mnbAz MNB hivatalos középárfolyamainak letöltését megvalósító beancount plugin.Telepítéspipinstallbeancount_mnbHasználatSztenderdbean-priceparancsokkal:csomag neve:beancount_mnbdevizák nevei: hárombetűs ISO devizamegnevezésekPéldákAznapi USD árfolyam lekérése:bean-price-e'HUF:beancount_mnb/USD'január 10-i euró árfolyam lekérése:bean-price--date2018-01-10-e'HUF:beancount_mnb/EUR'Ha a fentiek működnek, akkor a főkönyvbe fixen is beépíthetőek pl. az alábbi két devizanem árfolyamainak forrása:1970-01-01 commodity USD
  price: "HUF:beancount_mnb/USD"
1970-01-01 commodity EUR
  price: "HUF:beancount_mnb/EUR"Ezt követően már nem szükséges expliciten megadni a kívánt devizanemeket:bean-pricefokonyv.beancountMegjegyzésekÜnnepnapokon és hétvégén nincsenek hivatalos középárfolyamok.Ha ekkor is szeretnénk árfolyamokhoz jutni, akkor a beancount lehetőséget ad fallback adatforrás megadására is:1970-01-01 commodity EUR
  price: "HUF:beancount_mnb/EUR,yahoo/EURHUF=X"
1970-01-01 commodity USD
  price: "HUF:beancount_mnb/USD"
Package: beancount-n26
Beancount N26 Importerbeancount-n26provides aBeancountImporter for converting CSV exports ofN26account summaries to the Beancount format.Installation$pipinstallbeancount-n26In case you prefer installing from the Github repository, please note thatmainis the development branch sostableis what you should be installing
from.Usagefrombeancount_n26importN26ImporterCONFIG=[N26Importer(IBAN_NUMBER,'Assets:N26',language='en',file_encoding='utf-8',),]ClassificationTo classify specific recurring transactions automatically, you can specify anaccount_patternsas follows:frombeancount_n26importN26ImporterCONFIG=[N26Importer(IBAN_NUMBER,'Assets:N26',language='en',file_encoding='utf-8',account_patterns={"Expenses:Food:Restaurants":["amorino","five guys.*",]}),]The keys should beaccountswhile the items in the list are regular
expressions that should match apayee.Some helper functions inbeancount_n26/utils/patterns_generation.pyare here
to help you generate this dictionnary.Multiple-currency transactionsTo mark transaction fees associated with multiple-currency transactions, you can
specify theexchange_fees_accountparameter as follows:frombeancount_n26importN26ImporterCONFIG=[N26Importer(IBAN_NUMBER,'Assets:N26',language='en',file_encoding='utf-8',exchange_fees_account='Expenses:TransferWise',),]With this in place, for transactions where both the amount in EUR and amount in
foreign currency are given, the importer will calculate the transaction fee
based on the exchange rate included in the CSV export and automatically allocate
the value to the account specified inexchange_fees_account.ContributingPlease make sure you have Python 3.7+ andPoetryinstalled.Git clone the repository -git clone https://github.com/siddhantgoel/beancount-n26Install the packages required for development -poetry installThat's basically it. You should now be able to run the test suite -poetry run py.test.
Package: beancount-n26-with-regexes
Beancount N26 Importerbeancount-n26-with-regexesprovides aBeancountImporter for converting CSV exports ofN26account summaries to the Beancount format.Installation$pipinstallbeancount-n26In case you prefer installing from the Github repository, please note thatmainis the development branch sostableis what you should be installing
from.Usagefrombeancount_n26_with_regexesimportN26ImporterCONFIG=[N26Importer(IBAN_NUMBER,'Assets:N26',language='en',file_encoding='utf-8',fill_default=True,account_to_ayees={"Expenses:Food:Restaurants":[# Regex 'style' payee name"amorino","five guys.*",]}),]ReferencesThis is a fork of:https://github.com/siddhantgoel/beancount-n26
Package: beancount-nblock
beancount-nblockA collection of beancount plugins.unlinked_documents: find missing links between documents and transactionsIt might be desireable to enforce a link between certain kind of documents and
a corresponding transaction. Typical use cases are incoming and outgoing
invoices where a receipt (referenced via a document directive) should have a
matching transaction.The following is valid, according to this plugin:2019-01-01 * "Payee" "A description" ^ER-some-id
  Assets:Bank:Checking     300.00 EUR
  Expenses:Home

2019-01-01 document Assets:Bank:Checking "/path/to/receipt.pdf" ^ER-some-idAn error is generated in case either of the above directives is missing.UsageAdd the following to your beancount file:plugin "beancount_nblock.unlinked_documents"The default list of patterns is:AR-*,ER-*. A custom list of patterns may
be configured via:plugin "beancount_nblock.unlinked_documents" "PATTERN-FOO-*,PATTERN-BAR-*repel: avoid specific combinations of tags and accounts in a single transactionCheck for combinations of tag and account names and raise an error in case they
occur together in a transaction.Consider the tag/account pair(FOO, Assets:Checking)whereFOOis a tag andAssets:Checkingis an account name. The following transaction is flagged by
the plugin:2019-01-01 * "Payee" "A description" #FOO
  Assets:Checking     300.00 EUR
  Expenses:HomeUsageAdd the following to your beancount file:plugin "beancount_nblock.repel" "PLUGIN CONFIGURATION"wherePLUGIN CONFIGURATIONis a list of tag/account tuples such as"[('FOO', 'Assets:Checking')]". The tagFOOshould not occur in the same transaction as
the accountAssets:Checking.
Package: beancount-oneliner
How to useFit a simple 2-leg transaction onone line.1999-12-31 note Assets:Cash "Expenses:Test 16.18 EUR * A description. *"That will be translated by the plugin to1999-12-31 * "A description."
	Assets:Cash         -16.18 EUR
	Expenses:Test        16.18 EURIt supports payee, exclamation mark, tags, links, meta, cost and price.Recommended VSCode themes:AyuMonokai ProNight OwlInstallPluginpip3installbeancount_oneliner--userOr copy to path used for python. For example,$HOME/.local/lib/python3.4/site-packages/beancount_oneliner/oneliner.pywould do on Debian. If in doubt, look wherebeancountfolder is and copy next to it.Syntax highlightSupported by the following beancount extensions:beancount syntax definition for Sublime TextVSCode Beancount ExtensionOn VSCode, you will need to select the syntax with plugin support (there are two, with and without). To ensure it's selected automatically, add this to VSCode settings:"files.associations": {
        "*.bean": "beancount-oneline",
        "*.beancount": "beancount-oneline",
    }
Package: beancount-parser
beancount-parserStandaloneLarkLALR(1) based Beancount syntax parser (not relying on Beancount library), MIT licensePlease also checkout outbeancount-black, an opinionated beancount code formatter based on beancount-parser.FeaturesMIT licensed- the only dependency isLarkExtremely fast- LALR(1) is usedSection awareness- emac org symbol mark*will be parsedComment awareness- comments will be parsedNot a validator- it does not validate beancount syntax, invalid beancount syntax may still pass the parsingSponsorThe original project beancount-parser was meant to be an internal tool built byLaunch Platform LLCforA modern accounting book service based on the most popular open source version control systemGitand text-based double entry accounting book softwareBeancount.
We realized adding new entries with BeanHub automatically over time makes beancount file a mess.
So obviously, a strong code formatter is needed.
And to deal with comments and other corner cases, it's easier to build a parser from ground up without relying on Beancount.
While SaaS businesses won't be required to open source an internal tool like this, we still love that the service is only possible because of the open-source tool we are using.
We think it would be greatly beneficial for the community to access a tool like this, so we've decided to open source it under MIT license, hope you find this tool useful 😄InstallTo install the parser, simply runpipinstallbeancount-parserUsageIf you want to run the parse beancount code, you can do thisimportiofrombeancount_parser.parserimportmake_parserparser=make_parser()tree=parser.parse(beancount_content)# do whatever you want with the tree hereFeedbacksFeedbacks, bugs reporting or feature requests are welcome 🙌, just please open an issue.
No guarantee we have time to deal with them, but will see what we can do.
Package: beancount-parser-lima
Python Bindings for beancount-parser-limaThe Python bindings are a simplification of the Rust interface, mainly because zero-copy is not possible, and all directives are returned by value.Python bindings are a work-in-progressPerformanceThe main downside with Python compared with Rust is that zero-copy is not possible.  Each value returned to Python must be a Python object allocated on the heap.  It is simply not possible to return pointers to data structures owned by Rust.  The performance goal therefore is to minimize the number of such allocations.Several mechanisms for reducing allocations are employed.Strings are interned and those having the same value are mapped onto a single Python string object.The lists which hold account names are also reused.Example2023-05-01 * "EMERSON S TAPROOM"
  Assets:Bank:Current                           -25.00 NZD
  Expenses:Entertainment:Drinks-and-snacks

2023-05-02 * "EMERSON S TAPROOM"
  Assets:Bank:Current                           -12.50 NZD
  Expenses:Entertainment:Drinks-and-snacks

2023-05-03 * "BANK TRANSFER"
  Assets:Bank:Current                           100.00 NZD
  Assets:Bank:SavingsOnly a single Python string to hold the currency"NZD"is allocated.  It will have a reference count of four (One for each value returned, plus one for the master value in the string table).Similarly only a single Python string is used to hold the four instances of"Assets"(with a reference count of five), and a single Python string holds the value"Bank"(also with a reference count of five).A single list is allocated with contents["Assets", "Bank", "Current"], and this has a reference count of four (three returned values plus the master copy in the account table).  A separate list has the contents["Assets", "Bank", "Savings"], using the same Python string objects as the other list for the first two values in the list.Development ShellIf you have a Rust toolchain and other required tools such asmaturininstalled (for which seeflake.nix), the parser may be built and run locally as follows.$ cd beancount-parser-lima-python
$ python -m venv .venv
$ maturin develop
$ source .venv/bin/activate
$ python-examples/parse.py ../beancount-parser-lima/examples/data/full.beancountOpen Issues and Future WorkSpannedIt would be desirable to be able to return spanned values, for application error reporting.
Package: beancount-payeeverif
beancount payeeverifbeancount_payeeverifis the "payee verification" plugin forbeancount,
fulfilling the following functions:Every transaction has a non-NULLpayeefield:; this will throw an error
2020-06-01  *   ""   "fix faucet leak"
  Expenses:General
  Assets:Bank -150 bean

; this will pass validation
2020-06-02  *   "plumber"   "fix faucet leak"
  Expenses:General
  Assets:Bank -150 beanTODO: coming soonTransactions touching certain accounts must match
anallowed_payeesregex.installationpipinstallbeancount_payeeverifusageIn your toplevel.beancountfile, include:plugin  "beancount_payeeverif"See the.beancountfiles intestfor examples.developingInstall package and dev requirements locally:python3-mpipinstall-e.[dev]Run tests:python3-mpytestBuild both binary and source distributions locally:python3setup.pybdist_wheelsdistSeesanitize.shfor maintainer's personal tooling.
Package: beancount-plugin-utils
Beancount Plugin UtilsA collection of utils for writing beancount plugins:BeancountError& utils - throw anywhereRuntimeErrorand have nice error output instead of crashing beancount.marked- introduce an abstraction ofmarkto liberate user to use any of: tag, tx meta, posting meta.metaset- abstraction overmetadict to have multiple values for the same key.merge_postings- merge postings with equal account names.parse_config_string- parse config string.Also see test framework and feel free to copy it.Note: NOT READY FOR PUBLIC YET, STILL MIGRATING MY OWN PLUGINS. ANYTHING CAN CHANGE WITHOUT NOTICE.InstallAddbeancount_plugin_utilsto your plugin'srequirements.txtfile orpyproject.tomlfile.Reinstall your dependencies.TestsIf the examples above do not suffice your needs, check out the tests.
They consist of human-readable examples for more specific cases.DevelopmentPlease see Makefile and inline comments.Feel free to PR your utils to add them to this repro.
Package: beancount-pygments-lexer
# beancount pygments Lexer[![plaintextaccounting.org](https://img.shields.io/badge/plaintextaccounting.org-beancount-red.svg)]()
[![PyPI](https://img.shields.io/pypi/l/beancount-pygments-lexer.svg)]()
[![PyPI](https://img.shields.io/pypi/v/beancount-pygments-lexer.svg)]()[pygments](http://pygments.org)-Lexerfor
[beancount](http://furius.ca/beancount/)-files.## TODO[ ] Rework matching-rules[ ] Add test casesCaution: This is far from finished. Consider itbeta-software.
Contributions are very welcome :-)
Package: beancount-rabobank
Beancount Rabobank CSV Importerbeancount-rabobankprovides an importer for converting CSV exports ofRabobank(Netherlands) account summaries to theBeancountformat.Installation$pipinstallbeancount-rabobankUsageIf you're not familiar with how to import external data into Beancount, please
readthis guidefirst.Adjust yourconfig fileto include the providedrabobank.Importerclass.
A sample configuration might look like the following:frombeancount_rabobankimportrabobankCONFIG=[# ...rabobank.Importer("EUR","Assets:Liquid:Rabobank:Checkings")# ...]Once this is in place, you should be able to runbean-extracton the command
line to extract the transactions and pipe all of them into your Beancount file.
It should also work in fava using the same configuration.$bean-extract/path/to/config.pytransaction.csv>>you.beancountThis importer works withsmart-importerwhich will auto suggest postings based
on machine learning, which is lovely. In this case a config can look like this:fromsmart_importerimportapply_hooks,PredictPostingsfrombeancount_rabobankimportrabobankCONFIG=[# ...apply_hooks(rabobank.Importer("EUR","Assets:Liquid:Rabobank:Checkings"),[PredictPostings()])# ...]ContributingContributions are most welcome!Please make sure you have Python 3.9+ andPoetryinstalled.Clone the repositoryIf you want to develop using VSCode run the following command:poetry config virtualenvs.in-project trueInstall the packages required for development:poetry installThat's basically it. You should now be able to run the test suite:poetry run py.test.
Package: beancount-reds-plugins
beancount-reds-pluginsA collection of plugins forBeancount, software forplain text, double entry bookkeeping.
See README.md in individual directories for plugin specific documentation.Plugin list:autoclose_tree:
automatically closes all of an account's descendants when an account is closed.capital_gains_classifier:
rebooks capital gains into separate long and short accounts, and separate gains and
losses accountseffective_date:
enables per-posting dates (each posting in a transaction can have a different date)opengroup:
Inserts open statements for sets of accounts based on specifiable rules.rename_accounts:
rename arbitrary accounts on the fly (eg: move Taxes from Expenses to Income when you
temporarily want to view all your Expenses except taxes)zerosum:
find matching pairs of postings that sum up to zero. Useful in de-duplication, and
tracking things such as reimbursements, rebates, etc.Installationpip3 install beancount-reds-pluginsOr to install the bleeding edge version from git:pip3 install git+https://github.com/redstreet/beancount_reds_pluginsUsageInvoke and configure a plugin by including it in your beancount source. For example,
invoke therename_accountsplugin like so:plugin"beancount_reds_plugins.rename_accounts.rename_accounts""{'Expenses:Taxes':'Income:Taxes',}"See README.md in individual directories for how to configure each plugin.