summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 07:23:25 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 07:23:25 +0000
commit314862dc80656103e784fa5aca294e991b18c153 (patch)
tree28ebe2abf96c1ec7bd8cf1eadc046485969184a3
parentfc39ffa837476d0c57d6dcf279c308a735e8c44c (diff)
automatic import of python-apstrim
-rw-r--r--.gitignore1
-rw-r--r--python-apstrim.spec326
-rw-r--r--sources1
3 files changed, 328 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..1a84ffa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..467f95e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+774b7d2b6d833cec071b24394780aedc apstrim-2.0.6.tar.gz