%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.aliyun.com/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 * Fri Jun 09 2023 Python_Bot - 0.3.2-1 - Package Spec generated