summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-amiautomation.spec538
-rw-r--r--sources1
3 files changed, 540 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d5a9407 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/AmiAutomation-0.1.4.2.tar.gz
diff --git a/python-amiautomation.spec b/python-amiautomation.spec
new file mode 100644
index 0000000..2582fcf
--- /dev/null
+++ b/python-amiautomation.spec
@@ -0,0 +1,538 @@
+%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 <Python_Bot@openeuler.org> - 0.1.4.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..871ea4d
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+fbbc09bdb6bac7ca48ced3619247c310 AmiAutomation-0.1.4.2.tar.gz