diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 05:48:55 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 05:48:55 +0000 |
commit | 846a50aa7a4e385e71e6f147767c5f0bb1e67f99 (patch) | |
tree | f9ff516e2a8f8eb693f1d77ed60fc98272bd9bdf | |
parent | 3605c34828011fb36a2f710d1d3ff7e3161ddebe (diff) |
automatic import of python-itkpix-efuse-codec
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-itkpix-efuse-codec.spec | 328 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 330 insertions, 0 deletions
@@ -0,0 +1 @@ +/itkpix_efuse_codec-0.3.2.tar.gz diff --git a/python-itkpix-efuse-codec.spec b/python-itkpix-efuse-codec.spec new file mode 100644 index 0000000..09d9e60 --- /dev/null +++ b/python-itkpix-efuse-codec.spec @@ -0,0 +1,328 @@ +%global _empty_manifest_terminate_build 0 +Name: python-itkpix-efuse-codec +Version: 0.3.2 +Release: 1 +Summary: Utilities for encoding and decoding the data stored in the ITkPix ASIC e-fuses +License: MIT +URL: https://gitlab.cern.ch/berkeleylab/itkpix-efuse-codec +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ce/35/70ee45b24bbe0116905d2d8515168fe48a784710da0254476a16e98d2937/itkpix_efuse_codec-0.3.2.tar.gz +BuildArch: noarch + +Requires: python3-click + +%description +# ITkPix E-fuse Codec + +Utilities for encoding and decoding the data stored in the ITkPix ASIC e-fuses + +# Installation + +## Cpp + +The `itkpix-efuse-codec` C++ library is header-only. +Simply add the [single_include/itkpix_efuse_codec/](single_include/itkpix_efuse_codec/) +directory to your project's include path and you should be able to +`#include "itkpix_efuse_codec.h`. + +## Python + +`itkpix-efuse-codec` is available on [PyPi](https://pypi.org/project/itkpix-efuse-codec/). +Simply run the following command to install: + +```shell +pip install itkpix-efuse-codec +``` + +# Usage + +## Python + +### Command-line Utility + +`pip` installing `itkpix-efuse-codec` givers you the `efuse` command-line utility, which has the `encode` and `decode` sub-commands. + +#### encode + +```verbatim +efuse -v encode BONN 0x146cb +Input: + probe_location name : BONN + chip serial number : 83659 (bin: 0b10100011011001011, hex: 0x146cb) +Encoded: + encoded e-fuse (bin) : 00010001010001101100101100011111 (32 bits) + (hex) : 0x1146cb1f +``` + +#### decode + +``` +efuse -v decode 0x1146cb1f +Input: + e-fuse data (bin): 0b100010100011011001011 + (hex): 0x1146cb +Decoded: + chip serial number : 0x146cb + probe location : BONN (id: 0x1) +``` + +### As a module + +You can import the `itkpix_efuse_codec` module in your existing Python scripts. For example, +to generate the 32-bit encoded E-fuse data you would do: + +```python +import itkpix_efuse_codec + +probe_location_name : str = "BONN" # must be a valid name +chip_sn : int = 0x12345; +efuse_binary_string = itkpix_efuse_codec.encode(probe_location_name, chip_sn) # returns binary string + +efuse_data = int(efuse_binary_string, 2) # parse the binary string into an integer +``` + +To decode 32-bit E-fuse data retreived from the ITkPix ASIC, you would do: + +```python +import itkpix_efuse_codec +from itkpix_efuse_codec import EfuseData + +retrieved_efuse_data : int = ... +decoded_efuse_data = int(itkpix_efuse_codec.decode(retrieved_efuse_data), 2) # parse the binary string into an integer +efuse_data = EfuseData(decoded_efuse_data) # EfuseData class has useful getters + +chip_sn = efuse_data.chip_sn() +probe_location_name = efuse_data.probe_location_name() +probe_location_id = efuse_data.probe_location_id() +``` + + + + +%package -n python3-itkpix-efuse-codec +Summary: Utilities for encoding and decoding the data stored in the ITkPix ASIC e-fuses +Provides: python-itkpix-efuse-codec +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-itkpix-efuse-codec +# ITkPix E-fuse Codec + +Utilities for encoding and decoding the data stored in the ITkPix ASIC e-fuses + +# Installation + +## Cpp + +The `itkpix-efuse-codec` C++ library is header-only. +Simply add the [single_include/itkpix_efuse_codec/](single_include/itkpix_efuse_codec/) +directory to your project's include path and you should be able to +`#include "itkpix_efuse_codec.h`. + +## Python + +`itkpix-efuse-codec` is available on [PyPi](https://pypi.org/project/itkpix-efuse-codec/). +Simply run the following command to install: + +```shell +pip install itkpix-efuse-codec +``` + +# Usage + +## Python + +### Command-line Utility + +`pip` installing `itkpix-efuse-codec` givers you the `efuse` command-line utility, which has the `encode` and `decode` sub-commands. + +#### encode + +```verbatim +efuse -v encode BONN 0x146cb +Input: + probe_location name : BONN + chip serial number : 83659 (bin: 0b10100011011001011, hex: 0x146cb) +Encoded: + encoded e-fuse (bin) : 00010001010001101100101100011111 (32 bits) + (hex) : 0x1146cb1f +``` + +#### decode + +``` +efuse -v decode 0x1146cb1f +Input: + e-fuse data (bin): 0b100010100011011001011 + (hex): 0x1146cb +Decoded: + chip serial number : 0x146cb + probe location : BONN (id: 0x1) +``` + +### As a module + +You can import the `itkpix_efuse_codec` module in your existing Python scripts. For example, +to generate the 32-bit encoded E-fuse data you would do: + +```python +import itkpix_efuse_codec + +probe_location_name : str = "BONN" # must be a valid name +chip_sn : int = 0x12345; +efuse_binary_string = itkpix_efuse_codec.encode(probe_location_name, chip_sn) # returns binary string + +efuse_data = int(efuse_binary_string, 2) # parse the binary string into an integer +``` + +To decode 32-bit E-fuse data retreived from the ITkPix ASIC, you would do: + +```python +import itkpix_efuse_codec +from itkpix_efuse_codec import EfuseData + +retrieved_efuse_data : int = ... +decoded_efuse_data = int(itkpix_efuse_codec.decode(retrieved_efuse_data), 2) # parse the binary string into an integer +efuse_data = EfuseData(decoded_efuse_data) # EfuseData class has useful getters + +chip_sn = efuse_data.chip_sn() +probe_location_name = efuse_data.probe_location_name() +probe_location_id = efuse_data.probe_location_id() +``` + + + + +%package help +Summary: Development documents and examples for itkpix-efuse-codec +Provides: python3-itkpix-efuse-codec-doc +%description help +# ITkPix E-fuse Codec + +Utilities for encoding and decoding the data stored in the ITkPix ASIC e-fuses + +# Installation + +## Cpp + +The `itkpix-efuse-codec` C++ library is header-only. +Simply add the [single_include/itkpix_efuse_codec/](single_include/itkpix_efuse_codec/) +directory to your project's include path and you should be able to +`#include "itkpix_efuse_codec.h`. + +## Python + +`itkpix-efuse-codec` is available on [PyPi](https://pypi.org/project/itkpix-efuse-codec/). +Simply run the following command to install: + +```shell +pip install itkpix-efuse-codec +``` + +# Usage + +## Python + +### Command-line Utility + +`pip` installing `itkpix-efuse-codec` givers you the `efuse` command-line utility, which has the `encode` and `decode` sub-commands. + +#### encode + +```verbatim +efuse -v encode BONN 0x146cb +Input: + probe_location name : BONN + chip serial number : 83659 (bin: 0b10100011011001011, hex: 0x146cb) +Encoded: + encoded e-fuse (bin) : 00010001010001101100101100011111 (32 bits) + (hex) : 0x1146cb1f +``` + +#### decode + +``` +efuse -v decode 0x1146cb1f +Input: + e-fuse data (bin): 0b100010100011011001011 + (hex): 0x1146cb +Decoded: + chip serial number : 0x146cb + probe location : BONN (id: 0x1) +``` + +### As a module + +You can import the `itkpix_efuse_codec` module in your existing Python scripts. For example, +to generate the 32-bit encoded E-fuse data you would do: + +```python +import itkpix_efuse_codec + +probe_location_name : str = "BONN" # must be a valid name +chip_sn : int = 0x12345; +efuse_binary_string = itkpix_efuse_codec.encode(probe_location_name, chip_sn) # returns binary string + +efuse_data = int(efuse_binary_string, 2) # parse the binary string into an integer +``` + +To decode 32-bit E-fuse data retreived from the ITkPix ASIC, you would do: + +```python +import itkpix_efuse_codec +from itkpix_efuse_codec import EfuseData + +retrieved_efuse_data : int = ... +decoded_efuse_data = int(itkpix_efuse_codec.decode(retrieved_efuse_data), 2) # parse the binary string into an integer +efuse_data = EfuseData(decoded_efuse_data) # EfuseData class has useful getters + +chip_sn = efuse_data.chip_sn() +probe_location_name = efuse_data.probe_location_name() +probe_location_id = efuse_data.probe_location_id() +``` + + + + +%prep +%autosetup -n itkpix-efuse-codec-0.3.2 + +%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-itkpix-efuse-codec -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.2-1 +- Package Spec generated @@ -0,0 +1 @@ +09c40dc597f93bc8d277de5c5fb36ae3 itkpix_efuse_codec-0.3.2.tar.gz |