diff options
Diffstat (limited to 'python-pricedb.spec')
| -rw-r--r-- | python-pricedb.spec | 505 |
1 files changed, 505 insertions, 0 deletions
diff --git a/python-pricedb.spec b/python-pricedb.spec new file mode 100644 index 0000000..a4e43d1 --- /dev/null +++ b/python-pricedb.spec @@ -0,0 +1,505 @@ +%global _empty_manifest_terminate_build 0 +Name: python-PriceDb +Version: 2.11.0 +Release: 1 +Summary: Price database storage for commodities +License: GPL version 3 +URL: https://github.com/MisterY/price-database +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/32/19/4006d65211f0a4eae852c575e897958eb8319b4dfb7febb299fc969cfe89/PriceDb-2.11.0.tar.gz +BuildArch: noarch + +Requires: python3-click +Requires: python3-click-log +Requires: python3-sqlalchemy +Requires: python3-beautifulsoup4 +Requires: python3-pydatum +Requires: python3-finance-quote-python +Requires: python3-usersconfig + +%description +# price-database + + + +A simple Python library and a CLI for storage of prices + + + +The purpose of this project is to provide a storage and means of accessing a price database. It can be reused among multiple projects. + + + +The goal is very simple: separate a storage of prices of various elements (commodities) from other applications or components. + + + +The Price object has several properties: + + + +- unique identifier = uniquely identifies each record for ease of accessing + +- namespace = distinguishes the namespace for the symbol. Often the exchange name. + +- symbol = security/commodity symbol that identifies it within the namespace (exchange). + +- date = The date of the price + +- time = The time of the price + +- value = Value in currency + +- currency identifier = identifier for the currency. Can be anything the remote system is using. + + + +With these, it should be possible to store prices for commodities used in GnuCash, GnuCash Portfolio, Asset Allocation and other similar financial packages. + + + +## Development + + + +I'm toggling between using PyCharm and Visual Studio Code, with the following libraries: + + + +- pylint, + +- pytest, + +- rope, for refactoring + + + +## Installation + + + +`pip install -e .` + + + +Then manually copy the `data/prices-template.db` into `data/prices.db`. + + + +Running commands like `pricedb list` for the first time, will create pricedb.ini file in your home directory. Once created, edit the file and add the required values, like the database path and/or the API keys for online services. + + + +### Configuration + + + +PriceDb expects to find a configuration file "pricedb.ini" in the user's profile directory. It will create one if it doesn't find it, but you need to supply the values before the application is functional. + +At a minimum, provide the path to the database file. + + + +## Running + + + +`pricedb` + + + +is a command-line interface to all the provided functionality. + +Using Python, the PriceDbApplication class is the front-end, providing the same functionality through code. + + + +Example: + + + +`pricedb import data\AUD_2017-11-11_142445.csv AUD -v DEBUG` + + + +## Logging + + + +click-log package is used to provide log output. Simply enable by passing + + + +`-v LEVEL` + + + +to the command line, where LEVEL is one of the logging levels. Use empty -v option for details. + + + +# Publishing + + + +Publishing to PyPi: + + + +``` + +python setup.py sdist bdist_wheel + +twine check dist/* + +twine upload --repository-url https://test.pypi.org/legacy/ dist/* + +twine upload dist/* + +``` + + + + + +%package -n python3-PriceDb +Summary: Price database storage for commodities +Provides: python-PriceDb +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-PriceDb +# price-database + + + +A simple Python library and a CLI for storage of prices + + + +The purpose of this project is to provide a storage and means of accessing a price database. It can be reused among multiple projects. + + + +The goal is very simple: separate a storage of prices of various elements (commodities) from other applications or components. + + + +The Price object has several properties: + + + +- unique identifier = uniquely identifies each record for ease of accessing + +- namespace = distinguishes the namespace for the symbol. Often the exchange name. + +- symbol = security/commodity symbol that identifies it within the namespace (exchange). + +- date = The date of the price + +- time = The time of the price + +- value = Value in currency + +- currency identifier = identifier for the currency. Can be anything the remote system is using. + + + +With these, it should be possible to store prices for commodities used in GnuCash, GnuCash Portfolio, Asset Allocation and other similar financial packages. + + + +## Development + + + +I'm toggling between using PyCharm and Visual Studio Code, with the following libraries: + + + +- pylint, + +- pytest, + +- rope, for refactoring + + + +## Installation + + + +`pip install -e .` + + + +Then manually copy the `data/prices-template.db` into `data/prices.db`. + + + +Running commands like `pricedb list` for the first time, will create pricedb.ini file in your home directory. Once created, edit the file and add the required values, like the database path and/or the API keys for online services. + + + +### Configuration + + + +PriceDb expects to find a configuration file "pricedb.ini" in the user's profile directory. It will create one if it doesn't find it, but you need to supply the values before the application is functional. + +At a minimum, provide the path to the database file. + + + +## Running + + + +`pricedb` + + + +is a command-line interface to all the provided functionality. + +Using Python, the PriceDbApplication class is the front-end, providing the same functionality through code. + + + +Example: + + + +`pricedb import data\AUD_2017-11-11_142445.csv AUD -v DEBUG` + + + +## Logging + + + +click-log package is used to provide log output. Simply enable by passing + + + +`-v LEVEL` + + + +to the command line, where LEVEL is one of the logging levels. Use empty -v option for details. + + + +# Publishing + + + +Publishing to PyPi: + + + +``` + +python setup.py sdist bdist_wheel + +twine check dist/* + +twine upload --repository-url https://test.pypi.org/legacy/ dist/* + +twine upload dist/* + +``` + + + + + +%package help +Summary: Development documents and examples for PriceDb +Provides: python3-PriceDb-doc +%description help +# price-database + + + +A simple Python library and a CLI for storage of prices + + + +The purpose of this project is to provide a storage and means of accessing a price database. It can be reused among multiple projects. + + + +The goal is very simple: separate a storage of prices of various elements (commodities) from other applications or components. + + + +The Price object has several properties: + + + +- unique identifier = uniquely identifies each record for ease of accessing + +- namespace = distinguishes the namespace for the symbol. Often the exchange name. + +- symbol = security/commodity symbol that identifies it within the namespace (exchange). + +- date = The date of the price + +- time = The time of the price + +- value = Value in currency + +- currency identifier = identifier for the currency. Can be anything the remote system is using. + + + +With these, it should be possible to store prices for commodities used in GnuCash, GnuCash Portfolio, Asset Allocation and other similar financial packages. + + + +## Development + + + +I'm toggling between using PyCharm and Visual Studio Code, with the following libraries: + + + +- pylint, + +- pytest, + +- rope, for refactoring + + + +## Installation + + + +`pip install -e .` + + + +Then manually copy the `data/prices-template.db` into `data/prices.db`. + + + +Running commands like `pricedb list` for the first time, will create pricedb.ini file in your home directory. Once created, edit the file and add the required values, like the database path and/or the API keys for online services. + + + +### Configuration + + + +PriceDb expects to find a configuration file "pricedb.ini" in the user's profile directory. It will create one if it doesn't find it, but you need to supply the values before the application is functional. + +At a minimum, provide the path to the database file. + + + +## Running + + + +`pricedb` + + + +is a command-line interface to all the provided functionality. + +Using Python, the PriceDbApplication class is the front-end, providing the same functionality through code. + + + +Example: + + + +`pricedb import data\AUD_2017-11-11_142445.csv AUD -v DEBUG` + + + +## Logging + + + +click-log package is used to provide log output. Simply enable by passing + + + +`-v LEVEL` + + + +to the command line, where LEVEL is one of the logging levels. Use empty -v option for details. + + + +# Publishing + + + +Publishing to PyPi: + + + +``` + +python setup.py sdist bdist_wheel + +twine check dist/* + +twine upload --repository-url https://test.pypi.org/legacy/ dist/* + +twine upload dist/* + +``` + + + + + +%prep +%autosetup -n PriceDb-2.11.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-PriceDb -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.11.0-1 +- Package Spec generated |
