diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 07:23:25 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 07:23:25 +0000 |
commit | 314862dc80656103e784fa5aca294e991b18c153 (patch) | |
tree | 28ebe2abf96c1ec7bd8cf1eadc046485969184a3 | |
parent | fc39ffa837476d0c57d6dcf279c308a735e8c44c (diff) |
automatic import of python-apstrim
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-apstrim.spec | 326 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 328 insertions, 0 deletions
@@ -0,0 +1 @@ +/apstrim-2.0.6.tar.gz diff --git a/python-apstrim.spec b/python-apstrim.spec new file mode 100644 index 0000000..8abebb9 --- /dev/null +++ b/python-apstrim.spec @@ -0,0 +1,326 @@ +%global _empty_manifest_terminate_build 0 +Name: python-apstrim +Version: 2.0.6 +Release: 1 +Summary: Parameter and Object Serializer for EPICS, ADO or LITE +License: MIT +URL: https://github.com/ASukhanov/apstrim +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/64/d2/ea828c9ed1b57b081eab81c76bb85da1af5e26bfd64da951d6a1762f88cd/apstrim-2.0.6.tar.gz +BuildArch: noarch + +Requires: python3-caproto +Requires: python3-msgpack + +%description +# apstrim +Logger and extractor of time-series data (e.g. EPICS PVs). + +- Data are objects, indexed in time order. +- Supported Control Infrastructures: EPICS, ADO, LITE. Easy extendable. +- Wide range of data objects: strings, lists, maps, numpy arrays, custom. +- Data objects could be inhomogeneous and have arbitrary frequency. +- Self-describing data format, no schema required. +- Data objects are binary-serialized using MessagePack. +- Fast online compression. +- Fast random-access retrieval of data objects for selected time interval. +- Simultaneous writing and reading. +- Typical speed of compressed serialization to a logbook file is 80 MB/s. +- De-serialization speed is up to 1200 MB/s when the logbook is cached in memory. +- Basic plotting of the logged data. + +<img src='/docs/apstrim_file_format.png' width='400'> + +## Installation +Dependencies: **msgpack, caproto, lz4framed**. +These packages will be installed using pip: + + pip3 install apstrim + +The example program for deserialization and plotting **apstrim.view**, +requires additional package: **pyqtgraph**. + +## API refrerence + +[apstrim](https://htmlpreview.github.io/?https://github.com/ASukhanov/apstrim/blob/main/docs/apstrim.html) + +[scan](https://htmlpreview.github.io/?https://github.com/ASukhanov/apstrim/blob/main/docs/scan.html) + +## Examples + +## Serialization + + # Serialization of one float64 parameter from an EPICS simulated scope IOC: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV + Logging finished for 1 sections, 1 parLists, 7.263 KB. + ... + + # The same with compression: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV --compress + Logging finished for 1 sections, 1 parLists, 6.101 KB. Compression ratio:1.19 + ... + + # Serialization 1000-element array and one scalar of floats: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV,Waveform_RBV --compress + Logging finished for 1 sections, 2 parLists, 2405.354 KB. Compression ratio:1.0 + ... + # Note, Compression is poor for floating point arrays with high entropy. + + # Serialization of an incrementing integer parameter: + :python -m apstrim -nLITE --compress liteHost:dev1:cycle + Logging finished for 1 sections, 1 parLists, 56.526 KB. Compression ratio:1.25 + ... + # In this case the normalized compressed volume is 9.3 bytes per entry. + # Each entry consist of an int64 timestamp and an int64 value, which would + # occupy 16 bytes per entry using standard writing. + +### De-serialization +Example of deserialization and plotting of all parameters from several logbooks. + + python -m apstrim.view -i all -p *.aps + +Python code snippet to extract items 1,2 and 3 from a logbook +for 20 seconds interval starting on 2021-08-12 at 23:31:31. + +```python +from apstrim.scan import APScan +apscan = APScan('aLogbook.aps') +headers = apscan.get_headers() +print(f'{headers["Index"]}') +extracted = apscan.extract_objects(span=20, items=[1,2,3], startTime='210812_233131') +print(f'{extracted[3]}')# print the extracted data for item[3] +# returned: +{'par': 'liteBridge.peakSimulator:rps', # object (PV) name of the item[3] +'times': [1628825500.8938403, 1628825510.898658], # list of the item[3] timestamps +'values': [95.675125, 95.55396]} # list of the item[3] values +``` + + + + + +%package -n python3-apstrim +Summary: Parameter and Object Serializer for EPICS, ADO or LITE +Provides: python-apstrim +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-apstrim +# apstrim +Logger and extractor of time-series data (e.g. EPICS PVs). + +- Data are objects, indexed in time order. +- Supported Control Infrastructures: EPICS, ADO, LITE. Easy extendable. +- Wide range of data objects: strings, lists, maps, numpy arrays, custom. +- Data objects could be inhomogeneous and have arbitrary frequency. +- Self-describing data format, no schema required. +- Data objects are binary-serialized using MessagePack. +- Fast online compression. +- Fast random-access retrieval of data objects for selected time interval. +- Simultaneous writing and reading. +- Typical speed of compressed serialization to a logbook file is 80 MB/s. +- De-serialization speed is up to 1200 MB/s when the logbook is cached in memory. +- Basic plotting of the logged data. + +<img src='/docs/apstrim_file_format.png' width='400'> + +## Installation +Dependencies: **msgpack, caproto, lz4framed**. +These packages will be installed using pip: + + pip3 install apstrim + +The example program for deserialization and plotting **apstrim.view**, +requires additional package: **pyqtgraph**. + +## API refrerence + +[apstrim](https://htmlpreview.github.io/?https://github.com/ASukhanov/apstrim/blob/main/docs/apstrim.html) + +[scan](https://htmlpreview.github.io/?https://github.com/ASukhanov/apstrim/blob/main/docs/scan.html) + +## Examples + +## Serialization + + # Serialization of one float64 parameter from an EPICS simulated scope IOC: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV + Logging finished for 1 sections, 1 parLists, 7.263 KB. + ... + + # The same with compression: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV --compress + Logging finished for 1 sections, 1 parLists, 6.101 KB. Compression ratio:1.19 + ... + + # Serialization 1000-element array and one scalar of floats: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV,Waveform_RBV --compress + Logging finished for 1 sections, 2 parLists, 2405.354 KB. Compression ratio:1.0 + ... + # Note, Compression is poor for floating point arrays with high entropy. + + # Serialization of an incrementing integer parameter: + :python -m apstrim -nLITE --compress liteHost:dev1:cycle + Logging finished for 1 sections, 1 parLists, 56.526 KB. Compression ratio:1.25 + ... + # In this case the normalized compressed volume is 9.3 bytes per entry. + # Each entry consist of an int64 timestamp and an int64 value, which would + # occupy 16 bytes per entry using standard writing. + +### De-serialization +Example of deserialization and plotting of all parameters from several logbooks. + + python -m apstrim.view -i all -p *.aps + +Python code snippet to extract items 1,2 and 3 from a logbook +for 20 seconds interval starting on 2021-08-12 at 23:31:31. + +```python +from apstrim.scan import APScan +apscan = APScan('aLogbook.aps') +headers = apscan.get_headers() +print(f'{headers["Index"]}') +extracted = apscan.extract_objects(span=20, items=[1,2,3], startTime='210812_233131') +print(f'{extracted[3]}')# print the extracted data for item[3] +# returned: +{'par': 'liteBridge.peakSimulator:rps', # object (PV) name of the item[3] +'times': [1628825500.8938403, 1628825510.898658], # list of the item[3] timestamps +'values': [95.675125, 95.55396]} # list of the item[3] values +``` + + + + + +%package help +Summary: Development documents and examples for apstrim +Provides: python3-apstrim-doc +%description help +# apstrim +Logger and extractor of time-series data (e.g. EPICS PVs). + +- Data are objects, indexed in time order. +- Supported Control Infrastructures: EPICS, ADO, LITE. Easy extendable. +- Wide range of data objects: strings, lists, maps, numpy arrays, custom. +- Data objects could be inhomogeneous and have arbitrary frequency. +- Self-describing data format, no schema required. +- Data objects are binary-serialized using MessagePack. +- Fast online compression. +- Fast random-access retrieval of data objects for selected time interval. +- Simultaneous writing and reading. +- Typical speed of compressed serialization to a logbook file is 80 MB/s. +- De-serialization speed is up to 1200 MB/s when the logbook is cached in memory. +- Basic plotting of the logged data. + +<img src='/docs/apstrim_file_format.png' width='400'> + +## Installation +Dependencies: **msgpack, caproto, lz4framed**. +These packages will be installed using pip: + + pip3 install apstrim + +The example program for deserialization and plotting **apstrim.view**, +requires additional package: **pyqtgraph**. + +## API refrerence + +[apstrim](https://htmlpreview.github.io/?https://github.com/ASukhanov/apstrim/blob/main/docs/apstrim.html) + +[scan](https://htmlpreview.github.io/?https://github.com/ASukhanov/apstrim/blob/main/docs/scan.html) + +## Examples + +## Serialization + + # Serialization of one float64 parameter from an EPICS simulated scope IOC: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV + Logging finished for 1 sections, 1 parLists, 7.263 KB. + ... + + # The same with compression: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV --compress + Logging finished for 1 sections, 1 parLists, 6.101 KB. Compression ratio:1.19 + ... + + # Serialization 1000-element array and one scalar of floats: + :python -m apstrim -nEPICS -T59 testAPD:scope1:MeanValue_RBV,Waveform_RBV --compress + Logging finished for 1 sections, 2 parLists, 2405.354 KB. Compression ratio:1.0 + ... + # Note, Compression is poor for floating point arrays with high entropy. + + # Serialization of an incrementing integer parameter: + :python -m apstrim -nLITE --compress liteHost:dev1:cycle + Logging finished for 1 sections, 1 parLists, 56.526 KB. Compression ratio:1.25 + ... + # In this case the normalized compressed volume is 9.3 bytes per entry. + # Each entry consist of an int64 timestamp and an int64 value, which would + # occupy 16 bytes per entry using standard writing. + +### De-serialization +Example of deserialization and plotting of all parameters from several logbooks. + + python -m apstrim.view -i all -p *.aps + +Python code snippet to extract items 1,2 and 3 from a logbook +for 20 seconds interval starting on 2021-08-12 at 23:31:31. + +```python +from apstrim.scan import APScan +apscan = APScan('aLogbook.aps') +headers = apscan.get_headers() +print(f'{headers["Index"]}') +extracted = apscan.extract_objects(span=20, items=[1,2,3], startTime='210812_233131') +print(f'{extracted[3]}')# print the extracted data for item[3] +# returned: +{'par': 'liteBridge.peakSimulator:rps', # object (PV) name of the item[3] +'times': [1628825500.8938403, 1628825510.898658], # list of the item[3] timestamps +'values': [95.675125, 95.55396]} # list of the item[3] values +``` + + + + + +%prep +%autosetup -n apstrim-2.0.6 + +%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-apstrim -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.6-1 +- Package Spec generated @@ -0,0 +1 @@ +774b7d2b6d833cec071b24394780aedc apstrim-2.0.6.tar.gz |