%global _empty_manifest_terminate_build 0 Name: python-AmiAutomation Version: 0.1.4.2 Release: 1 Summary: Package to extract binary files into pandas dataframes License: MIT License URL: https://pypi.org/project/AmiAutomation/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6c/b5/1a9152dd7bb2e02b011f50ad0c5e57c7686ac57ff6598942d4fa1948d1d5/AmiAutomation-0.1.4.2.tar.gz BuildArch: noarch Requires: python3-pandas %description # RPH extraction Contains a tool to read a .rph file into a RphData structure. #### Usage A simple example is given below: ``` from AmiAutomation import RphData data = RphData.rphToDf(path = "path_to_rph_file") # Table data inside a dataframe dataframe = data.dataFrame ``` # Binaries extraction This package contains the tools to easily extract binary data from PX3's: * Heat Log * 2 Second Log * Wave Log * Composite * Histogram Into a pandas dataframe for further processing ## Usage Importing a function is done the same way as any python package: ``` from AmiAutomation import PX3_Bin, LogData ``` From there you can call a method with the module prefix: ``` dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries") ``` or ``` dataFrame = LogData.binFileToDF(path = "C:\\Binaries") ``` ## LogData Methods You can get Binary log data in a LogData format that contains useful data about the binary file, including samples inside a pandas dataframe #### LogData.binFileToDF Unpacks binary file into LogData - Parameters: * **path** : str Complete file path * **extension** : str, optional Explicitly enforce file extension. ex: 'bin' * **null_promoting** : dict, optional A dictionary with a .NET Source Type key and a value of either one of the following (default, object, float, Int64, string, error). The possible dictionary keys are the .NET simple types: - "SByte" : Signed Byte - "Byte" : Unsigned Byte - "Int16" : 16 bit integer - "UInt16" : 16 bit unsigned integer - "Int32" : 32 bit integer - "UInt32" : 32 bit unsigned integer - "Int64" : 64 bit integer - "UInt64" : 64 bit unsigned integer - "Char" : Character - "Single" : Floating point single precision - "Double" : Floating point double precision - "Boolean" : bit - "Decimal" : 16 byte decimal precision - "DateTime" : Date time This dictionary values determines how null values in deserialization affect the resulting LogData dataframe column: * "default" : use pandas automatic inference when dealing with null values on a column * "object" : The returned type is the generic python object type * "float" : The returned type is the python float type * "Int64" : The returned type is the pandas Nullable Integer Int64 type * "string" : Values are returned as strings * "error" : Raises and exception when null values are encountered - Returns: * LogData - Structure containing most file data **Examples** Simple file conversion ``` from AmiAutomation import LogData #This returns the whole data logData = LogData.binFileToDF("bin_file_path.bin") #To access samples just access the dataframe inside the LogData object dataFrame = logData.dataFrame ``` Conversion with null promoting ``` from AmiAutomation import LogData #Adding null promoting to handle missing values in these types of data as object logData = LogData.binFileToDF("bin_file_path.bin", null_promoting={"Int32":"object", "Int16":"object", "Int64":"object"}) #To access samples just access the dataframe inside the LogData object dataFrame = logData.dataFrame ``` This method can also be used to retrive the data table from inside a ".cpst" or ".hist" file, detection is automatic based on file extension, if none is given, ".bin" is assumed #### PX3_Bin Methods This method returns a single pandas dataframe containing extracted data from the provided file, path or path with constrained dates * **file_to_df ( path, file, start_time, end_time, verbose = False )** * To process a single file you need to provide the absolute path in the file argument ``` dataFrame = PX3_Bin.file_to_df(file = "C:\\Binaries\\20240403T002821Z$-4038953271967.bin") ``` * To process several files just provide the directory path where the binaries are (binaries inside sub-directories are also included) ``` dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\") ``` * You can constrain the binaries inside a directory (and sub-directories) by also providing a start-date or both a start date and end date as a python datetime.datetime object ``` import datetime time = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM ### This returns ALL the data available in the path from the given date to the actual time dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time) ``` ``` import datetime time_start = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM time_end = datetime.datetime(2020,2,15,13,45) # February 15th 2020, 1:45 PM ### This returns all the data available in the path from the given 15 minutes dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time_start, end_time=time_end ) ``` #### Tested with package version * pythonnet 2.5.1 * pandas 1.1.0 %package -n python3-AmiAutomation Summary: Package to extract binary files into pandas dataframes Provides: python-AmiAutomation BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-AmiAutomation # RPH extraction Contains a tool to read a .rph file into a RphData structure. #### Usage A simple example is given below: ``` from AmiAutomation import RphData data = RphData.rphToDf(path = "path_to_rph_file") # Table data inside a dataframe dataframe = data.dataFrame ``` # Binaries extraction This package contains the tools to easily extract binary data from PX3's: * Heat Log * 2 Second Log * Wave Log * Composite * Histogram Into a pandas dataframe for further processing ## Usage Importing a function is done the same way as any python package: ``` from AmiAutomation import PX3_Bin, LogData ``` From there you can call a method with the module prefix: ``` dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries") ``` or ``` dataFrame = LogData.binFileToDF(path = "C:\\Binaries") ``` ## LogData Methods You can get Binary log data in a LogData format that contains useful data about the binary file, including samples inside a pandas dataframe #### LogData.binFileToDF Unpacks binary file into LogData - Parameters: * **path** : str Complete file path * **extension** : str, optional Explicitly enforce file extension. ex: 'bin' * **null_promoting** : dict, optional A dictionary with a .NET Source Type key and a value of either one of the following (default, object, float, Int64, string, error). The possible dictionary keys are the .NET simple types: - "SByte" : Signed Byte - "Byte" : Unsigned Byte - "Int16" : 16 bit integer - "UInt16" : 16 bit unsigned integer - "Int32" : 32 bit integer - "UInt32" : 32 bit unsigned integer - "Int64" : 64 bit integer - "UInt64" : 64 bit unsigned integer - "Char" : Character - "Single" : Floating point single precision - "Double" : Floating point double precision - "Boolean" : bit - "Decimal" : 16 byte decimal precision - "DateTime" : Date time This dictionary values determines how null values in deserialization affect the resulting LogData dataframe column: * "default" : use pandas automatic inference when dealing with null values on a column * "object" : The returned type is the generic python object type * "float" : The returned type is the python float type * "Int64" : The returned type is the pandas Nullable Integer Int64 type * "string" : Values are returned as strings * "error" : Raises and exception when null values are encountered - Returns: * LogData - Structure containing most file data **Examples** Simple file conversion ``` from AmiAutomation import LogData #This returns the whole data logData = LogData.binFileToDF("bin_file_path.bin") #To access samples just access the dataframe inside the LogData object dataFrame = logData.dataFrame ``` Conversion with null promoting ``` from AmiAutomation import LogData #Adding null promoting to handle missing values in these types of data as object logData = LogData.binFileToDF("bin_file_path.bin", null_promoting={"Int32":"object", "Int16":"object", "Int64":"object"}) #To access samples just access the dataframe inside the LogData object dataFrame = logData.dataFrame ``` This method can also be used to retrive the data table from inside a ".cpst" or ".hist" file, detection is automatic based on file extension, if none is given, ".bin" is assumed #### PX3_Bin Methods This method returns a single pandas dataframe containing extracted data from the provided file, path or path with constrained dates * **file_to_df ( path, file, start_time, end_time, verbose = False )** * To process a single file you need to provide the absolute path in the file argument ``` dataFrame = PX3_Bin.file_to_df(file = "C:\\Binaries\\20240403T002821Z$-4038953271967.bin") ``` * To process several files just provide the directory path where the binaries are (binaries inside sub-directories are also included) ``` dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\") ``` * You can constrain the binaries inside a directory (and sub-directories) by also providing a start-date or both a start date and end date as a python datetime.datetime object ``` import datetime time = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM ### This returns ALL the data available in the path from the given date to the actual time dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time) ``` ``` import datetime time_start = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM time_end = datetime.datetime(2020,2,15,13,45) # February 15th 2020, 1:45 PM ### This returns all the data available in the path from the given 15 minutes dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time_start, end_time=time_end ) ``` #### Tested with package version * pythonnet 2.5.1 * pandas 1.1.0 %package help Summary: Development documents and examples for AmiAutomation Provides: python3-AmiAutomation-doc %description help # RPH extraction Contains a tool to read a .rph file into a RphData structure. #### Usage A simple example is given below: ``` from AmiAutomation import RphData data = RphData.rphToDf(path = "path_to_rph_file") # Table data inside a dataframe dataframe = data.dataFrame ``` # Binaries extraction This package contains the tools to easily extract binary data from PX3's: * Heat Log * 2 Second Log * Wave Log * Composite * Histogram Into a pandas dataframe for further processing ## Usage Importing a function is done the same way as any python package: ``` from AmiAutomation import PX3_Bin, LogData ``` From there you can call a method with the module prefix: ``` dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries") ``` or ``` dataFrame = LogData.binFileToDF(path = "C:\\Binaries") ``` ## LogData Methods You can get Binary log data in a LogData format that contains useful data about the binary file, including samples inside a pandas dataframe #### LogData.binFileToDF Unpacks binary file into LogData - Parameters: * **path** : str Complete file path * **extension** : str, optional Explicitly enforce file extension. ex: 'bin' * **null_promoting** : dict, optional A dictionary with a .NET Source Type key and a value of either one of the following (default, object, float, Int64, string, error). The possible dictionary keys are the .NET simple types: - "SByte" : Signed Byte - "Byte" : Unsigned Byte - "Int16" : 16 bit integer - "UInt16" : 16 bit unsigned integer - "Int32" : 32 bit integer - "UInt32" : 32 bit unsigned integer - "Int64" : 64 bit integer - "UInt64" : 64 bit unsigned integer - "Char" : Character - "Single" : Floating point single precision - "Double" : Floating point double precision - "Boolean" : bit - "Decimal" : 16 byte decimal precision - "DateTime" : Date time This dictionary values determines how null values in deserialization affect the resulting LogData dataframe column: * "default" : use pandas automatic inference when dealing with null values on a column * "object" : The returned type is the generic python object type * "float" : The returned type is the python float type * "Int64" : The returned type is the pandas Nullable Integer Int64 type * "string" : Values are returned as strings * "error" : Raises and exception when null values are encountered - Returns: * LogData - Structure containing most file data **Examples** Simple file conversion ``` from AmiAutomation import LogData #This returns the whole data logData = LogData.binFileToDF("bin_file_path.bin") #To access samples just access the dataframe inside the LogData object dataFrame = logData.dataFrame ``` Conversion with null promoting ``` from AmiAutomation import LogData #Adding null promoting to handle missing values in these types of data as object logData = LogData.binFileToDF("bin_file_path.bin", null_promoting={"Int32":"object", "Int16":"object", "Int64":"object"}) #To access samples just access the dataframe inside the LogData object dataFrame = logData.dataFrame ``` This method can also be used to retrive the data table from inside a ".cpst" or ".hist" file, detection is automatic based on file extension, if none is given, ".bin" is assumed #### PX3_Bin Methods This method returns a single pandas dataframe containing extracted data from the provided file, path or path with constrained dates * **file_to_df ( path, file, start_time, end_time, verbose = False )** * To process a single file you need to provide the absolute path in the file argument ``` dataFrame = PX3_Bin.file_to_df(file = "C:\\Binaries\\20240403T002821Z$-4038953271967.bin") ``` * To process several files just provide the directory path where the binaries are (binaries inside sub-directories are also included) ``` dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\") ``` * You can constrain the binaries inside a directory (and sub-directories) by also providing a start-date or both a start date and end date as a python datetime.datetime object ``` import datetime time = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM ### This returns ALL the data available in the path from the given date to the actual time dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time) ``` ``` import datetime time_start = datetime.datetime(2020,2,15,13,30) # February 15th 2020, 1:30 PM time_end = datetime.datetime(2020,2,15,13,45) # February 15th 2020, 1:45 PM ### This returns all the data available in the path from the given 15 minutes dataFrame = PX3_Bin.file_to_df(path = "C:\\Binaries\\", start_time=time_start, end_time=time_end ) ``` #### Tested with package version * pythonnet 2.5.1 * pandas 1.1.0 %prep %autosetup -n AmiAutomation-0.1.4.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-AmiAutomation -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.1.4.2-1 - Package Spec generated