diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-apread.spec | 648 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 650 insertions, 0 deletions
@@ -0,0 +1 @@ +/apread-1.1.0.tar.gz diff --git a/python-apread.spec b/python-apread.spec new file mode 100644 index 0000000..7cab42a --- /dev/null +++ b/python-apread.spec @@ -0,0 +1,648 @@ +%global _empty_manifest_terminate_build 0 +Name: python-apread +Version: 1.1.0 +Release: 1 +Summary: Import data from CatmanAP binary files. +License: MIT +URL: https://github.com/leonbohmann/apreader +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6d/e1/19419405d4ee8918789d3b49e3c6fa9197bc38c35e9c3e35da1e3678b5ea/apread-1.1.0.tar.gz +BuildArch: noarch + +Requires: python3-matplotlib +Requires: python3-plotly +Requires: python3-scipy +Requires: python3-typing +Requires: python3-tqdm +Requires: python3-pandas + +%description + +[](https://github.com/leonbohmann/APReader/actions/workflows/python-publish.yml) + + + +# **apread** (Catman AP Reader) +> Read binary files produced from catmanAP projects directly into python. + +CatmanAP procudes .bin files after each measurement. While it is possible to export as a different format (i.e. txt or asc) it's not efficient because one has to change the export format after every measurement. Here comes the treat: Just export as binary and use this package to work with binary files directly. + +After reading all channels from the binary file, the channels are analyzed and every measure-channel will receive a reference to a time channel, depending on the amount of entries in the channels and the fact, that the time-channel has to contain "time" or "zeit" in its name. What that means is, that a channel with x entries and the name "time - 1" will be regarded as the time-channel of any other channel with x Data Entries. + +Here is an example plot, generated directly from a binary file: + + + +## Installation/Update + +Anywhere with python (note the uppercase U): + +```sh +pip install -U apread +``` + +## How it works +The workflow of the package is straight-forward. You supply a binary file created with CatmanAP and the script will read that into python. + +First of all, the binary data is analyzed and packaged into seperate `Channel` objects. When all `Channels` are created, each `Channel.Name` will be checked against `([T|t]ime)|([Z|z]eit)`, which mark time channels which usually are the reference. + +These `Channels` marked as `istime` are the basis for `Groups`. Inside a group you will find the `ChannelX` (time channel) and a bunch of other channels in `ChannelsY`, which are the channels containing data in that time domain. The corresponding channels inside a `Group` are found by analyzing their length. Since the total time measured is the same for all groups, it is assumed that `Channels` with the same data-length belong to the same group. Connecting the matching channels to the group give a structured representation of your measurement data. + +Now that the Data is available in python you are free to do with that whatever you want. Until Version `1.0.x` there were some features in which you can save the data but that feature has been removed. + +## Usage + +Lets say you produced a file called `measurements.bin` and you put it in the directory of your python script, then you can create the `APReader` on that file. It's that simple. The Initialization may take some time depending on how large your .bin-File is. + +```python +from apread import APReader + +reader = APReader('measurements.bin') # this will read in the file +``` + +### Print channels +Afterwards you can access the `Channels` by accessing the `APReader.Channels` Member. `Channel` and `Group` implement `__str__` which will return the name and the length of data inside it. + +```python +for channel in reader.Channels: + print(channel) + +# "Timechannel 1 - Standard" (120341 Entries) +# "T12_ref" (120341 Entries) +# "T33" (120341 Entries) +# "Timechannel 1 - Quick" (3022344 Entries) +# "F1" (3022344 Entries) +# "ast089" (3022344 Entries) +``` + +```python +for group in reader.Groups: + print(group) + +# "Timechannel 1 - Standard" (2 Data-channels, 120341 Entries) +# "Timechannel 1 - Quick" (2 Data-channels, 3022344 Entries) +``` + +### Plot Channels/Groups +To review your data on the fly, you can plot every entity in the data structure by calling `.plot()`. When plotting, every group will get its own figure window, in which all connected channels are plotted. + +```python +# plot the readers data +reader.plot() +# plot all groups +for group in reader.Groups: + group.plot() +# plot all channels +for channel in reader.Channels: + channel.plot() +``` + +As you can see, you can access the channels from the reader, which contains all channels (including time channels) or you can access them from the groups. + +There are some more functions to plot specific data. When plotting multiple channels each channel gets its own y-axis. +```python +group.plotChannel(0) # specific channel +group.plotChannels(0,3) # channel 1 to 3 (1,2,3) +group.plot([0, 2, 4]) # channel 1, 3 and 5 +``` + +The same can be applied to the `APReader`. The only difference is that you can plot specific groups instead of channels. +```python +reader.plotGroup(0) # specific group +reader.plotGroups(0,3) # group 1 to 3 (1,2,3) +reader.plot([0, 2, 4]) # group 1, 3 and 5 +``` +### External Header +Thanks to ([hakonbars PR13](https://github.com/leonbohmann/APReader/pull/13)) you are now able to access external header information using `channel.exthdr`, a dicitionary containing all keys as described in [this sheet](https://github.com/leonbohmann/APReader/blob/dev-2/test/catmanBinaryFormat.xls). + +```python +['T0'] # ACQ timestamp info (NOW format) +['dt'] # ACQ delta t in ms +['SensorType'] # IDS code of sensor type +['SupplyVoltage'] # IDS code supply voltage +['FiltChar'] # IDS code of filter characteristics +['FiltFreq'] # IDS code of filter frequency +['TareVal'] # Current value in tare buffer +['ZeroVal'] # Current value in zero adjustment buffer +['MeasRange'] # IDS code of measuring range +['InChar'] # Input characteristics (0=x1,1=y1,2=x2,3=y2) +['SerNo'] # Amplifier serial number +['PhysUnit'] # Physical unit (if user scaling in effect, this is the user unit!) +['NativeUnit'] # Native unit +['Slot'] # Hardware slot number +['SubSlot'] # Sub-channel, 0 if single channel slot +['AmpType'] # IDS code of amplifier type +['APType'] # IDS code of AP connector type (MGCplus only) +['kFactor'] # Gage factor used in strain gage measurements +['bFactor'] # Bridge factor used in strain gage measurements +['MeasSig'] # IDS code of measurement signal (e.g. GROSS, NET) (MGCplus only) +['AmpInput'] # IDS code of amplifier input (ZERO,CAL,MEAS) +['HPFilt'] # IDS code of highpass filter +['OLImportInfo'] # Special information used in online export file headers +['ScaleType'] # 0=Engineering units, 1=Electrical +['SoftwareTareVal'] # Software tare (zero) for channels carrying a user scale +['WriteProtected'] # If true, write access is denied +['NominalRange'] # CAV value +['CLCFactor'] # Cable length compensation factor (CANHEAD only) +['ExportFormat'] # 0=8-Byte Double, 1=4-Byte Single, 2=2-Byte Integer (FOR CATMAN BINARY EXPORT ONLY!) +``` + + + + +## Release History +### **Version 1.1** + +#### Breaking changes + +* Removed saving functions, this will be up to the user + > Since these function change a lot based on current needs, I decided to remove the post-processing functionality completely. The user now needs to do the post-processing on his own, meaning the creation of plots using time and data channels... + +#### Changes +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Differentiate floating point precision +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Reading additional header information +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Supplying binary format reference +* Fixed null returning string conversion function +* Using regex to find time channels +* Improved plotting with multiple axes +* Printing channels and groups will now give a summary instead of all data + + +#### Version 1.0.22 +* Fixed an issue with groups where time channels are not recognized +* now, user is prompted, when suspected time channel is found +* plotting is not possible when there is no time-channel found +* save groups and channels even when there is no time channel +#### Version 1.0.21 +* Updated serialisation-procedures to always encode in `UTF-8` +#### Version 1.0.20 +* Switched to explicit type hinting with `typing` package (compatibility issues with python <3.9.x) +#### Version 1.0.15/16 +* Fixed an issue with saving and non-existent directories +* Added `getas` to generate formatted string without saving +#### Version 1.0.14 +* Output file-names updated +#### Version 1.0.12/13 +* Group channels with their time-channel into "groups" +* Multiple plot modes: + * Whole file + * Channel/Group only +* Output data + * json + * csv + +#### Version 1.0.11 +* Progressbars indicate read-progress of files +* Multiple plot modes + +#### Version 1.0.0 +* Convert catman files to channels + +## Meta + +Leon Bohmann – mail@leonbohmann.de + +Distributed under the MIT license. See ``LICENSE`` for more information. + +[https://github.com/leonbohmann/apreader](https://github.com/leonbohmann/apreader) + + + + +%package -n python3-apread +Summary: Import data from CatmanAP binary files. +Provides: python-apread +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-apread + +[](https://github.com/leonbohmann/APReader/actions/workflows/python-publish.yml) + + + +# **apread** (Catman AP Reader) +> Read binary files produced from catmanAP projects directly into python. + +CatmanAP procudes .bin files after each measurement. While it is possible to export as a different format (i.e. txt or asc) it's not efficient because one has to change the export format after every measurement. Here comes the treat: Just export as binary and use this package to work with binary files directly. + +After reading all channels from the binary file, the channels are analyzed and every measure-channel will receive a reference to a time channel, depending on the amount of entries in the channels and the fact, that the time-channel has to contain "time" or "zeit" in its name. What that means is, that a channel with x entries and the name "time - 1" will be regarded as the time-channel of any other channel with x Data Entries. + +Here is an example plot, generated directly from a binary file: + + + +## Installation/Update + +Anywhere with python (note the uppercase U): + +```sh +pip install -U apread +``` + +## How it works +The workflow of the package is straight-forward. You supply a binary file created with CatmanAP and the script will read that into python. + +First of all, the binary data is analyzed and packaged into seperate `Channel` objects. When all `Channels` are created, each `Channel.Name` will be checked against `([T|t]ime)|([Z|z]eit)`, which mark time channels which usually are the reference. + +These `Channels` marked as `istime` are the basis for `Groups`. Inside a group you will find the `ChannelX` (time channel) and a bunch of other channels in `ChannelsY`, which are the channels containing data in that time domain. The corresponding channels inside a `Group` are found by analyzing their length. Since the total time measured is the same for all groups, it is assumed that `Channels` with the same data-length belong to the same group. Connecting the matching channels to the group give a structured representation of your measurement data. + +Now that the Data is available in python you are free to do with that whatever you want. Until Version `1.0.x` there were some features in which you can save the data but that feature has been removed. + +## Usage + +Lets say you produced a file called `measurements.bin` and you put it in the directory of your python script, then you can create the `APReader` on that file. It's that simple. The Initialization may take some time depending on how large your .bin-File is. + +```python +from apread import APReader + +reader = APReader('measurements.bin') # this will read in the file +``` + +### Print channels +Afterwards you can access the `Channels` by accessing the `APReader.Channels` Member. `Channel` and `Group` implement `__str__` which will return the name and the length of data inside it. + +```python +for channel in reader.Channels: + print(channel) + +# "Timechannel 1 - Standard" (120341 Entries) +# "T12_ref" (120341 Entries) +# "T33" (120341 Entries) +# "Timechannel 1 - Quick" (3022344 Entries) +# "F1" (3022344 Entries) +# "ast089" (3022344 Entries) +``` + +```python +for group in reader.Groups: + print(group) + +# "Timechannel 1 - Standard" (2 Data-channels, 120341 Entries) +# "Timechannel 1 - Quick" (2 Data-channels, 3022344 Entries) +``` + +### Plot Channels/Groups +To review your data on the fly, you can plot every entity in the data structure by calling `.plot()`. When plotting, every group will get its own figure window, in which all connected channels are plotted. + +```python +# plot the readers data +reader.plot() +# plot all groups +for group in reader.Groups: + group.plot() +# plot all channels +for channel in reader.Channels: + channel.plot() +``` + +As you can see, you can access the channels from the reader, which contains all channels (including time channels) or you can access them from the groups. + +There are some more functions to plot specific data. When plotting multiple channels each channel gets its own y-axis. +```python +group.plotChannel(0) # specific channel +group.plotChannels(0,3) # channel 1 to 3 (1,2,3) +group.plot([0, 2, 4]) # channel 1, 3 and 5 +``` + +The same can be applied to the `APReader`. The only difference is that you can plot specific groups instead of channels. +```python +reader.plotGroup(0) # specific group +reader.plotGroups(0,3) # group 1 to 3 (1,2,3) +reader.plot([0, 2, 4]) # group 1, 3 and 5 +``` +### External Header +Thanks to ([hakonbars PR13](https://github.com/leonbohmann/APReader/pull/13)) you are now able to access external header information using `channel.exthdr`, a dicitionary containing all keys as described in [this sheet](https://github.com/leonbohmann/APReader/blob/dev-2/test/catmanBinaryFormat.xls). + +```python +['T0'] # ACQ timestamp info (NOW format) +['dt'] # ACQ delta t in ms +['SensorType'] # IDS code of sensor type +['SupplyVoltage'] # IDS code supply voltage +['FiltChar'] # IDS code of filter characteristics +['FiltFreq'] # IDS code of filter frequency +['TareVal'] # Current value in tare buffer +['ZeroVal'] # Current value in zero adjustment buffer +['MeasRange'] # IDS code of measuring range +['InChar'] # Input characteristics (0=x1,1=y1,2=x2,3=y2) +['SerNo'] # Amplifier serial number +['PhysUnit'] # Physical unit (if user scaling in effect, this is the user unit!) +['NativeUnit'] # Native unit +['Slot'] # Hardware slot number +['SubSlot'] # Sub-channel, 0 if single channel slot +['AmpType'] # IDS code of amplifier type +['APType'] # IDS code of AP connector type (MGCplus only) +['kFactor'] # Gage factor used in strain gage measurements +['bFactor'] # Bridge factor used in strain gage measurements +['MeasSig'] # IDS code of measurement signal (e.g. GROSS, NET) (MGCplus only) +['AmpInput'] # IDS code of amplifier input (ZERO,CAL,MEAS) +['HPFilt'] # IDS code of highpass filter +['OLImportInfo'] # Special information used in online export file headers +['ScaleType'] # 0=Engineering units, 1=Electrical +['SoftwareTareVal'] # Software tare (zero) for channels carrying a user scale +['WriteProtected'] # If true, write access is denied +['NominalRange'] # CAV value +['CLCFactor'] # Cable length compensation factor (CANHEAD only) +['ExportFormat'] # 0=8-Byte Double, 1=4-Byte Single, 2=2-Byte Integer (FOR CATMAN BINARY EXPORT ONLY!) +``` + + + + +## Release History +### **Version 1.1** + +#### Breaking changes + +* Removed saving functions, this will be up to the user + > Since these function change a lot based on current needs, I decided to remove the post-processing functionality completely. The user now needs to do the post-processing on his own, meaning the creation of plots using time and data channels... + +#### Changes +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Differentiate floating point precision +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Reading additional header information +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Supplying binary format reference +* Fixed null returning string conversion function +* Using regex to find time channels +* Improved plotting with multiple axes +* Printing channels and groups will now give a summary instead of all data + + +#### Version 1.0.22 +* Fixed an issue with groups where time channels are not recognized +* now, user is prompted, when suspected time channel is found +* plotting is not possible when there is no time-channel found +* save groups and channels even when there is no time channel +#### Version 1.0.21 +* Updated serialisation-procedures to always encode in `UTF-8` +#### Version 1.0.20 +* Switched to explicit type hinting with `typing` package (compatibility issues with python <3.9.x) +#### Version 1.0.15/16 +* Fixed an issue with saving and non-existent directories +* Added `getas` to generate formatted string without saving +#### Version 1.0.14 +* Output file-names updated +#### Version 1.0.12/13 +* Group channels with their time-channel into "groups" +* Multiple plot modes: + * Whole file + * Channel/Group only +* Output data + * json + * csv + +#### Version 1.0.11 +* Progressbars indicate read-progress of files +* Multiple plot modes + +#### Version 1.0.0 +* Convert catman files to channels + +## Meta + +Leon Bohmann – mail@leonbohmann.de + +Distributed under the MIT license. See ``LICENSE`` for more information. + +[https://github.com/leonbohmann/apreader](https://github.com/leonbohmann/apreader) + + + + +%package help +Summary: Development documents and examples for apread +Provides: python3-apread-doc +%description help + +[](https://github.com/leonbohmann/APReader/actions/workflows/python-publish.yml) + + + +# **apread** (Catman AP Reader) +> Read binary files produced from catmanAP projects directly into python. + +CatmanAP procudes .bin files after each measurement. While it is possible to export as a different format (i.e. txt or asc) it's not efficient because one has to change the export format after every measurement. Here comes the treat: Just export as binary and use this package to work with binary files directly. + +After reading all channels from the binary file, the channels are analyzed and every measure-channel will receive a reference to a time channel, depending on the amount of entries in the channels and the fact, that the time-channel has to contain "time" or "zeit" in its name. What that means is, that a channel with x entries and the name "time - 1" will be regarded as the time-channel of any other channel with x Data Entries. + +Here is an example plot, generated directly from a binary file: + + + +## Installation/Update + +Anywhere with python (note the uppercase U): + +```sh +pip install -U apread +``` + +## How it works +The workflow of the package is straight-forward. You supply a binary file created with CatmanAP and the script will read that into python. + +First of all, the binary data is analyzed and packaged into seperate `Channel` objects. When all `Channels` are created, each `Channel.Name` will be checked against `([T|t]ime)|([Z|z]eit)`, which mark time channels which usually are the reference. + +These `Channels` marked as `istime` are the basis for `Groups`. Inside a group you will find the `ChannelX` (time channel) and a bunch of other channels in `ChannelsY`, which are the channels containing data in that time domain. The corresponding channels inside a `Group` are found by analyzing their length. Since the total time measured is the same for all groups, it is assumed that `Channels` with the same data-length belong to the same group. Connecting the matching channels to the group give a structured representation of your measurement data. + +Now that the Data is available in python you are free to do with that whatever you want. Until Version `1.0.x` there were some features in which you can save the data but that feature has been removed. + +## Usage + +Lets say you produced a file called `measurements.bin` and you put it in the directory of your python script, then you can create the `APReader` on that file. It's that simple. The Initialization may take some time depending on how large your .bin-File is. + +```python +from apread import APReader + +reader = APReader('measurements.bin') # this will read in the file +``` + +### Print channels +Afterwards you can access the `Channels` by accessing the `APReader.Channels` Member. `Channel` and `Group` implement `__str__` which will return the name and the length of data inside it. + +```python +for channel in reader.Channels: + print(channel) + +# "Timechannel 1 - Standard" (120341 Entries) +# "T12_ref" (120341 Entries) +# "T33" (120341 Entries) +# "Timechannel 1 - Quick" (3022344 Entries) +# "F1" (3022344 Entries) +# "ast089" (3022344 Entries) +``` + +```python +for group in reader.Groups: + print(group) + +# "Timechannel 1 - Standard" (2 Data-channels, 120341 Entries) +# "Timechannel 1 - Quick" (2 Data-channels, 3022344 Entries) +``` + +### Plot Channels/Groups +To review your data on the fly, you can plot every entity in the data structure by calling `.plot()`. When plotting, every group will get its own figure window, in which all connected channels are plotted. + +```python +# plot the readers data +reader.plot() +# plot all groups +for group in reader.Groups: + group.plot() +# plot all channels +for channel in reader.Channels: + channel.plot() +``` + +As you can see, you can access the channels from the reader, which contains all channels (including time channels) or you can access them from the groups. + +There are some more functions to plot specific data. When plotting multiple channels each channel gets its own y-axis. +```python +group.plotChannel(0) # specific channel +group.plotChannels(0,3) # channel 1 to 3 (1,2,3) +group.plot([0, 2, 4]) # channel 1, 3 and 5 +``` + +The same can be applied to the `APReader`. The only difference is that you can plot specific groups instead of channels. +```python +reader.plotGroup(0) # specific group +reader.plotGroups(0,3) # group 1 to 3 (1,2,3) +reader.plot([0, 2, 4]) # group 1, 3 and 5 +``` +### External Header +Thanks to ([hakonbars PR13](https://github.com/leonbohmann/APReader/pull/13)) you are now able to access external header information using `channel.exthdr`, a dicitionary containing all keys as described in [this sheet](https://github.com/leonbohmann/APReader/blob/dev-2/test/catmanBinaryFormat.xls). + +```python +['T0'] # ACQ timestamp info (NOW format) +['dt'] # ACQ delta t in ms +['SensorType'] # IDS code of sensor type +['SupplyVoltage'] # IDS code supply voltage +['FiltChar'] # IDS code of filter characteristics +['FiltFreq'] # IDS code of filter frequency +['TareVal'] # Current value in tare buffer +['ZeroVal'] # Current value in zero adjustment buffer +['MeasRange'] # IDS code of measuring range +['InChar'] # Input characteristics (0=x1,1=y1,2=x2,3=y2) +['SerNo'] # Amplifier serial number +['PhysUnit'] # Physical unit (if user scaling in effect, this is the user unit!) +['NativeUnit'] # Native unit +['Slot'] # Hardware slot number +['SubSlot'] # Sub-channel, 0 if single channel slot +['AmpType'] # IDS code of amplifier type +['APType'] # IDS code of AP connector type (MGCplus only) +['kFactor'] # Gage factor used in strain gage measurements +['bFactor'] # Bridge factor used in strain gage measurements +['MeasSig'] # IDS code of measurement signal (e.g. GROSS, NET) (MGCplus only) +['AmpInput'] # IDS code of amplifier input (ZERO,CAL,MEAS) +['HPFilt'] # IDS code of highpass filter +['OLImportInfo'] # Special information used in online export file headers +['ScaleType'] # 0=Engineering units, 1=Electrical +['SoftwareTareVal'] # Software tare (zero) for channels carrying a user scale +['WriteProtected'] # If true, write access is denied +['NominalRange'] # CAV value +['CLCFactor'] # Cable length compensation factor (CANHEAD only) +['ExportFormat'] # 0=8-Byte Double, 1=4-Byte Single, 2=2-Byte Integer (FOR CATMAN BINARY EXPORT ONLY!) +``` + + + + +## Release History +### **Version 1.1** + +#### Breaking changes + +* Removed saving functions, this will be up to the user + > Since these function change a lot based on current needs, I decided to remove the post-processing functionality completely. The user now needs to do the post-processing on his own, meaning the creation of plots using time and data channels... + +#### Changes +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Differentiate floating point precision +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Reading additional header information +* ([hakonbar PR13](https://github.com/leonbohmann/APReader/pull/13)) Supplying binary format reference +* Fixed null returning string conversion function +* Using regex to find time channels +* Improved plotting with multiple axes +* Printing channels and groups will now give a summary instead of all data + + +#### Version 1.0.22 +* Fixed an issue with groups where time channels are not recognized +* now, user is prompted, when suspected time channel is found +* plotting is not possible when there is no time-channel found +* save groups and channels even when there is no time channel +#### Version 1.0.21 +* Updated serialisation-procedures to always encode in `UTF-8` +#### Version 1.0.20 +* Switched to explicit type hinting with `typing` package (compatibility issues with python <3.9.x) +#### Version 1.0.15/16 +* Fixed an issue with saving and non-existent directories +* Added `getas` to generate formatted string without saving +#### Version 1.0.14 +* Output file-names updated +#### Version 1.0.12/13 +* Group channels with their time-channel into "groups" +* Multiple plot modes: + * Whole file + * Channel/Group only +* Output data + * json + * csv + +#### Version 1.0.11 +* Progressbars indicate read-progress of files +* Multiple plot modes + +#### Version 1.0.0 +* Convert catman files to channels + +## Meta + +Leon Bohmann – mail@leonbohmann.de + +Distributed under the MIT license. See ``LICENSE`` for more information. + +[https://github.com/leonbohmann/apreader](https://github.com/leonbohmann/apreader) + + + + +%prep +%autosetup -n apread-1.1.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-apread -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.0-1 +- Package Spec generated @@ -0,0 +1 @@ +89b3d011c4d12f42029fc050d9d897e1 apread-1.1.0.tar.gz |
