summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 05:15:33 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 05:15:33 +0000
commitdebd974ba2f6670c7aaaba7a09df80b5973619b2 (patch)
tree0245b6ea6547b5498748cf9ed5d4a8128e25a79d
parent7456fd2c988fcc95042f542fe1032b99b410cb30 (diff)
automatic import of python-beancount-reds-importersopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-beancount-reds-importers.spec456
-rw-r--r--sources1
3 files changed, 458 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..adb223e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/beancount_reds_importers-0.6.0.tar.gz
diff --git a/python-beancount-reds-importers.spec b/python-beancount-reds-importers.spec
new file mode 100644
index 0000000..97759e1
--- /dev/null
+++ b/python-beancount-reds-importers.spec
@@ -0,0 +1,456 @@
+%global _empty_manifest_terminate_build 0
+Name: python-beancount-reds-importers
+Version: 0.6.0
+Release: 1
+Summary: Importers for various institutions for Beancount
+License: GPL-3.0
+URL: https://github.com/redstreet/beancount_reds_ingestor
+Source0: https://mirrors.aliyun.com/pypi/web/packages/5d/ef/b41f779275b0ae7457d51cc0ccbfb9d4c0e2e49ab4c82e6658881902c072/beancount_reds_importers-0.6.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-Click
+Requires: python3-beancount
+Requires: python3-click-aliases
+Requires: python3-ofxparse
+Requires: python3-openpyxl
+Requires: python3-packaging
+Requires: python3-petl
+Requires: python3-tabulate
+Requires: python3-tqdm
+
+%description
+# Beancount Red's Importers
+
+Simple importers and tools for [Beancount](https://beancount.github.io/), software for
+[plain text](https://plaintextaccounting.org/), double entry bookkeeping. _More
+importantly, a framework to allow you to easily write your own importers._
+
+### Introduction
+
+This is a reference implementation of the principles expressed in
+**[The Five Minute Ledger Update](https://reds-rants.netlify.app/personal-finance/the-five-minute-ledger-update/).**
+
+Importers can be ugly and painful to write, yet are important in automating the grunt
+work out of maintaining personal finance software. The philosophy is to make writing
+sustainable, dependable importers easy. To achieve this, the design separates importers
+in to three parts:
+
+1. file format reader (reusable)
+2. transaction builder (reusable)
+3. institution-specific declarations and code (minimal, institution specific) <- _The
+ only one you have to write_
+
+This design helps move most of the heavy-lifting common code into (1) and (2) above.
+Writing new importers is made easier since one only has to write code to address the
+institution-specific formatting and quirks for each bank/brokerage. See working examples
+of an [ofx based](https://github.com/redstreet/beancount_reds_importers/blob/main/beancount_reds_importers/citi/__init__.py) and [csv](https://github.com/redstreet/beancount_reds_importers/blob/main/beancount_reds_importers/schwab_csv/__init__.py) based importers.
+
+### Importers
+
+File format readers included are:
+- `.ofx`
+- `.csv` (single and multitable support)
+- `.xlsx` (single and multitable support)
+
+Transaction builders included are:
+- banking (for banks and credit cards, which benefit from a postings predictor like
+ [smart_importer](https://github.com/beancount/smart_importer)
+- investments/brokerages (to handle the very many distinct cases of investment related
+ transactions)
+- paychecks (to handle paychecks, which typically contain very many mostly
+ pre-determined postings in a single entry)
+
+[Input in `.ofx` format (over `.csv`) is preferred](https://reds-rants.netlify.app/personal-finance/a-word-about-input-formats-use-ofx-when-you-can/),
+when provided by the institution, as it minimizes data and coding errors, eliminates
+format breaking changes in .csv files, and typically includes balances that are used to
+generate balance assertions, and commodity prices.
+
+See [here](https://github.com/redstreet/beancount_reds_importers/tree/main/beancount_reds_importers)
+for a list of institutions built-in. More investment, credit card, and banking
+institutions will be added in the future. Contributions welcome.
+
+### Tools and Utilities
+These commands are installed as a part of the pip installation:
+
+- `ofx-summarize`: Quick and dirty way to summarize a .ofx file, and peek inside it
+- `bean-download`: [Download account statements automatically](https://reds-rants.netlify.app/personal-finance/direct-downloads/)
+ (for supporting institutions), from your configuration of accounts. Multi-threaded.
+
+The commands include shell auto-completion (tab-to-complete) via
+[click](https://click.palletsprojects.com/en/8.1.x/shell-completion/). `bean-download`, in
+particular, can complete the account or account groups you want to download, which can
+be handy. To enable it, do:
+
+```
+mkdir -p ~/.zcomplete
+_OFX_SUMMARIZE_COMPLETE=zsh_source ofx-summarize > ~/.zcomplete/ofx-summarize-complete.zsh
+_BEAN_DOWNLOAD_COMPLETE=zsh_source bean-download > ~/.zcomplete/bean-download-complete.zsh
+
+# Place this in your shell's rc file (.zshrc or .bashrc or .fishrc):
+for f in ~/.zcomplete/*; do source $f; done
+```
+
+## Features
+- supports [Beancount](https://github.com/beancount/beancount) output via `bean-extract`
+ - should be easy to extend to ledger/hledger, etc. (contributions welcome)
+- automatically generates [balance assertions](https://reds-rants.netlify.app/personal-finance/automating-balance-assertions/)
+- support for:
+ - investment accounts (brokerages including retirement accounts)
+ - handles sweep funds, money market funds, and all standard brokerage transactions
+ - banking and credit card
+ - paychecks
+- file format independent (ofx, csv, xlsx supported out of the box; single and
+ multitable for csv and xlsx; write your own reusable handler if needed)
+- supports commodity-leaf accounts
+- see [The Five Minute Ledger Update](https://reds-rants.netlify.app/personal-finance/the-five-minute-ledger-update/)
+ for automating downloads via `ofxclient`, connecting to `smart_importer` to
+ auto-classify transactions, and more
+
+
+## Installation
+```
+pip3 install beancount-reds-importers
+```
+
+Or to install the bleeding edge version from git:
+```
+pip3 install git+https://github.com/redstreet/beancount_reds_importers
+```
+
+
+## Running
+
+### Running the included examples:
+1. `cd <your pip installed dir>/example #eg: cd ~/.local/lib/python3.8/site-packages/beancount_reds_importers/example`
+2. `./import.sh OfxDownload.qfx` # Imports investments
+3. `./import.sh transactions.qfx` # Import bank transactions; uses smart_importer to classify transactions
+
+
+### Creating and running your own config:
+1. Create your own my.import. An example my.import is provided. At the least, include your account numbers
+2. Include fund information. Copy the included `fund_info.py` to start with.
+3. You can now run `bean-identify`, `bean-extract`, etc. See the included script: Run `./import.sh <your_input_ofx>`
+4. If identifier/cusip/isin info is missing, the importer will let you know. Add it to your
+ `fund_info.py` See
+ [this article](https://reds-rants.netlify.app/personal-finance/tickers-and-identifiers/)
+ for automating and managing identifier info
+
+## Testing
+I run tests across hundreds of actual ofx and csv files, against reference outputs that
+I know to be correct from my personal file. However, I'm unable to share them since
+these are personal. Testing against real world files is best, so I recommend you do this
+with your own input files.
+
+## Contributions
+Contributions welcome. New importers for institutions and test input files appreciated.
+Sharing importers helps the community.
+
+
+%package -n python3-beancount-reds-importers
+Summary: Importers for various institutions for Beancount
+Provides: python-beancount-reds-importers
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-beancount-reds-importers
+# Beancount Red's Importers
+
+Simple importers and tools for [Beancount](https://beancount.github.io/), software for
+[plain text](https://plaintextaccounting.org/), double entry bookkeeping. _More
+importantly, a framework to allow you to easily write your own importers._
+
+### Introduction
+
+This is a reference implementation of the principles expressed in
+**[The Five Minute Ledger Update](https://reds-rants.netlify.app/personal-finance/the-five-minute-ledger-update/).**
+
+Importers can be ugly and painful to write, yet are important in automating the grunt
+work out of maintaining personal finance software. The philosophy is to make writing
+sustainable, dependable importers easy. To achieve this, the design separates importers
+in to three parts:
+
+1. file format reader (reusable)
+2. transaction builder (reusable)
+3. institution-specific declarations and code (minimal, institution specific) <- _The
+ only one you have to write_
+
+This design helps move most of the heavy-lifting common code into (1) and (2) above.
+Writing new importers is made easier since one only has to write code to address the
+institution-specific formatting and quirks for each bank/brokerage. See working examples
+of an [ofx based](https://github.com/redstreet/beancount_reds_importers/blob/main/beancount_reds_importers/citi/__init__.py) and [csv](https://github.com/redstreet/beancount_reds_importers/blob/main/beancount_reds_importers/schwab_csv/__init__.py) based importers.
+
+### Importers
+
+File format readers included are:
+- `.ofx`
+- `.csv` (single and multitable support)
+- `.xlsx` (single and multitable support)
+
+Transaction builders included are:
+- banking (for banks and credit cards, which benefit from a postings predictor like
+ [smart_importer](https://github.com/beancount/smart_importer)
+- investments/brokerages (to handle the very many distinct cases of investment related
+ transactions)
+- paychecks (to handle paychecks, which typically contain very many mostly
+ pre-determined postings in a single entry)
+
+[Input in `.ofx` format (over `.csv`) is preferred](https://reds-rants.netlify.app/personal-finance/a-word-about-input-formats-use-ofx-when-you-can/),
+when provided by the institution, as it minimizes data and coding errors, eliminates
+format breaking changes in .csv files, and typically includes balances that are used to
+generate balance assertions, and commodity prices.
+
+See [here](https://github.com/redstreet/beancount_reds_importers/tree/main/beancount_reds_importers)
+for a list of institutions built-in. More investment, credit card, and banking
+institutions will be added in the future. Contributions welcome.
+
+### Tools and Utilities
+These commands are installed as a part of the pip installation:
+
+- `ofx-summarize`: Quick and dirty way to summarize a .ofx file, and peek inside it
+- `bean-download`: [Download account statements automatically](https://reds-rants.netlify.app/personal-finance/direct-downloads/)
+ (for supporting institutions), from your configuration of accounts. Multi-threaded.
+
+The commands include shell auto-completion (tab-to-complete) via
+[click](https://click.palletsprojects.com/en/8.1.x/shell-completion/). `bean-download`, in
+particular, can complete the account or account groups you want to download, which can
+be handy. To enable it, do:
+
+```
+mkdir -p ~/.zcomplete
+_OFX_SUMMARIZE_COMPLETE=zsh_source ofx-summarize > ~/.zcomplete/ofx-summarize-complete.zsh
+_BEAN_DOWNLOAD_COMPLETE=zsh_source bean-download > ~/.zcomplete/bean-download-complete.zsh
+
+# Place this in your shell's rc file (.zshrc or .bashrc or .fishrc):
+for f in ~/.zcomplete/*; do source $f; done
+```
+
+## Features
+- supports [Beancount](https://github.com/beancount/beancount) output via `bean-extract`
+ - should be easy to extend to ledger/hledger, etc. (contributions welcome)
+- automatically generates [balance assertions](https://reds-rants.netlify.app/personal-finance/automating-balance-assertions/)
+- support for:
+ - investment accounts (brokerages including retirement accounts)
+ - handles sweep funds, money market funds, and all standard brokerage transactions
+ - banking and credit card
+ - paychecks
+- file format independent (ofx, csv, xlsx supported out of the box; single and
+ multitable for csv and xlsx; write your own reusable handler if needed)
+- supports commodity-leaf accounts
+- see [The Five Minute Ledger Update](https://reds-rants.netlify.app/personal-finance/the-five-minute-ledger-update/)
+ for automating downloads via `ofxclient`, connecting to `smart_importer` to
+ auto-classify transactions, and more
+
+
+## Installation
+```
+pip3 install beancount-reds-importers
+```
+
+Or to install the bleeding edge version from git:
+```
+pip3 install git+https://github.com/redstreet/beancount_reds_importers
+```
+
+
+## Running
+
+### Running the included examples:
+1. `cd <your pip installed dir>/example #eg: cd ~/.local/lib/python3.8/site-packages/beancount_reds_importers/example`
+2. `./import.sh OfxDownload.qfx` # Imports investments
+3. `./import.sh transactions.qfx` # Import bank transactions; uses smart_importer to classify transactions
+
+
+### Creating and running your own config:
+1. Create your own my.import. An example my.import is provided. At the least, include your account numbers
+2. Include fund information. Copy the included `fund_info.py` to start with.
+3. You can now run `bean-identify`, `bean-extract`, etc. See the included script: Run `./import.sh <your_input_ofx>`
+4. If identifier/cusip/isin info is missing, the importer will let you know. Add it to your
+ `fund_info.py` See
+ [this article](https://reds-rants.netlify.app/personal-finance/tickers-and-identifiers/)
+ for automating and managing identifier info
+
+## Testing
+I run tests across hundreds of actual ofx and csv files, against reference outputs that
+I know to be correct from my personal file. However, I'm unable to share them since
+these are personal. Testing against real world files is best, so I recommend you do this
+with your own input files.
+
+## Contributions
+Contributions welcome. New importers for institutions and test input files appreciated.
+Sharing importers helps the community.
+
+
+%package help
+Summary: Development documents and examples for beancount-reds-importers
+Provides: python3-beancount-reds-importers-doc
+%description help
+# Beancount Red's Importers
+
+Simple importers and tools for [Beancount](https://beancount.github.io/), software for
+[plain text](https://plaintextaccounting.org/), double entry bookkeeping. _More
+importantly, a framework to allow you to easily write your own importers._
+
+### Introduction
+
+This is a reference implementation of the principles expressed in
+**[The Five Minute Ledger Update](https://reds-rants.netlify.app/personal-finance/the-five-minute-ledger-update/).**
+
+Importers can be ugly and painful to write, yet are important in automating the grunt
+work out of maintaining personal finance software. The philosophy is to make writing
+sustainable, dependable importers easy. To achieve this, the design separates importers
+in to three parts:
+
+1. file format reader (reusable)
+2. transaction builder (reusable)
+3. institution-specific declarations and code (minimal, institution specific) <- _The
+ only one you have to write_
+
+This design helps move most of the heavy-lifting common code into (1) and (2) above.
+Writing new importers is made easier since one only has to write code to address the
+institution-specific formatting and quirks for each bank/brokerage. See working examples
+of an [ofx based](https://github.com/redstreet/beancount_reds_importers/blob/main/beancount_reds_importers/citi/__init__.py) and [csv](https://github.com/redstreet/beancount_reds_importers/blob/main/beancount_reds_importers/schwab_csv/__init__.py) based importers.
+
+### Importers
+
+File format readers included are:
+- `.ofx`
+- `.csv` (single and multitable support)
+- `.xlsx` (single and multitable support)
+
+Transaction builders included are:
+- banking (for banks and credit cards, which benefit from a postings predictor like
+ [smart_importer](https://github.com/beancount/smart_importer)
+- investments/brokerages (to handle the very many distinct cases of investment related
+ transactions)
+- paychecks (to handle paychecks, which typically contain very many mostly
+ pre-determined postings in a single entry)
+
+[Input in `.ofx` format (over `.csv`) is preferred](https://reds-rants.netlify.app/personal-finance/a-word-about-input-formats-use-ofx-when-you-can/),
+when provided by the institution, as it minimizes data and coding errors, eliminates
+format breaking changes in .csv files, and typically includes balances that are used to
+generate balance assertions, and commodity prices.
+
+See [here](https://github.com/redstreet/beancount_reds_importers/tree/main/beancount_reds_importers)
+for a list of institutions built-in. More investment, credit card, and banking
+institutions will be added in the future. Contributions welcome.
+
+### Tools and Utilities
+These commands are installed as a part of the pip installation:
+
+- `ofx-summarize`: Quick and dirty way to summarize a .ofx file, and peek inside it
+- `bean-download`: [Download account statements automatically](https://reds-rants.netlify.app/personal-finance/direct-downloads/)
+ (for supporting institutions), from your configuration of accounts. Multi-threaded.
+
+The commands include shell auto-completion (tab-to-complete) via
+[click](https://click.palletsprojects.com/en/8.1.x/shell-completion/). `bean-download`, in
+particular, can complete the account or account groups you want to download, which can
+be handy. To enable it, do:
+
+```
+mkdir -p ~/.zcomplete
+_OFX_SUMMARIZE_COMPLETE=zsh_source ofx-summarize > ~/.zcomplete/ofx-summarize-complete.zsh
+_BEAN_DOWNLOAD_COMPLETE=zsh_source bean-download > ~/.zcomplete/bean-download-complete.zsh
+
+# Place this in your shell's rc file (.zshrc or .bashrc or .fishrc):
+for f in ~/.zcomplete/*; do source $f; done
+```
+
+## Features
+- supports [Beancount](https://github.com/beancount/beancount) output via `bean-extract`
+ - should be easy to extend to ledger/hledger, etc. (contributions welcome)
+- automatically generates [balance assertions](https://reds-rants.netlify.app/personal-finance/automating-balance-assertions/)
+- support for:
+ - investment accounts (brokerages including retirement accounts)
+ - handles sweep funds, money market funds, and all standard brokerage transactions
+ - banking and credit card
+ - paychecks
+- file format independent (ofx, csv, xlsx supported out of the box; single and
+ multitable for csv and xlsx; write your own reusable handler if needed)
+- supports commodity-leaf accounts
+- see [The Five Minute Ledger Update](https://reds-rants.netlify.app/personal-finance/the-five-minute-ledger-update/)
+ for automating downloads via `ofxclient`, connecting to `smart_importer` to
+ auto-classify transactions, and more
+
+
+## Installation
+```
+pip3 install beancount-reds-importers
+```
+
+Or to install the bleeding edge version from git:
+```
+pip3 install git+https://github.com/redstreet/beancount_reds_importers
+```
+
+
+## Running
+
+### Running the included examples:
+1. `cd <your pip installed dir>/example #eg: cd ~/.local/lib/python3.8/site-packages/beancount_reds_importers/example`
+2. `./import.sh OfxDownload.qfx` # Imports investments
+3. `./import.sh transactions.qfx` # Import bank transactions; uses smart_importer to classify transactions
+
+
+### Creating and running your own config:
+1. Create your own my.import. An example my.import is provided. At the least, include your account numbers
+2. Include fund information. Copy the included `fund_info.py` to start with.
+3. You can now run `bean-identify`, `bean-extract`, etc. See the included script: Run `./import.sh <your_input_ofx>`
+4. If identifier/cusip/isin info is missing, the importer will let you know. Add it to your
+ `fund_info.py` See
+ [this article](https://reds-rants.netlify.app/personal-finance/tickers-and-identifiers/)
+ for automating and managing identifier info
+
+## Testing
+I run tests across hundreds of actual ofx and csv files, against reference outputs that
+I know to be correct from my personal file. However, I'm unable to share them since
+these are personal. Testing against real world files is best, so I recommend you do this
+with your own input files.
+
+## Contributions
+Contributions welcome. New importers for institutions and test input files appreciated.
+Sharing importers helps the community.
+
+
+%prep
+%autosetup -n beancount_reds_importers-0.6.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-beancount-reds-importers -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3a81d33
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+3e56a5897b5bca24f44145c95bab1717 beancount_reds_importers-0.6.0.tar.gz