%global _empty_manifest_terminate_build 0 Name: python-banner-storedot Version: 2.3.1 Release: 1 Summary: light dal package License: MIT License URL: https://https://github.com/storedot/banner Source0: https://mirrors.aliyun.com/pypi/web/packages/1e/d1/a1d53b6a74d2ebc3277fa5d5e708c01cc8d8f9020c99f60f66907e8e5895/banner-storedot-2.3.1.tar.gz BuildArch: noarch Requires: python3-wheel Requires: python3-mysqlclient Requires: python3-redis Requires: python3-pandas Requires: python3-joblib Requires: python3-psycopg2 %description # banner.connection: ## Connection(Object): - ABS class ## RelationalConnection(Connection): - ABS class ## Storage(Connection): - ABS class ## PrintableConnection(Connection): - ABS class ## MySqlConnection(RelationalConnection, PrintableConnection)(host, user, passwd, db, ssl_key, ssl_cert, name): - Create Connection object compatible with banner.queries - **raises MySQLError for bad connection** ## PostgresSqlConnection(RelationalConnection, PrintableConnection)(host, user, port=5432, passwd=None, db=None, ssl_key=None, ssl_cert=None, charset='utf8', name=None): - Create Connection object compatible with banner.queries - **raises MySQLError for bad connection** ## RedisConnection(Storage, PrintableConnection)(host, port, passwd, db, ssl_key, ssl_cert, name, ttl): - Create CacheConnection object compatible with banner.queries # banner.queries.Queries: ## CONNECTIONS(conns: Dict[str, Connection] = {}) -> : - Getter/Setter for known(default) Connections dict ## CACHE(con: CacheConnection = None): - Getter/Setter for known(default) CacheConnection ## simple_query(query: str, w2p_parse: bool = True, connection: Union[Connection, str] = None, cache: Storage = None, ttl: int = None) -> pd.DataFrame: - run a simple string query for Connection - connection=None try to get first known connection, **raise KeyError if None found** - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - w2p_parse=True - should parse query according to w2p syntax ## describe_table(table: str, connection: Union[RelationalConnection, str] = None) -> pd.DataFrame: - Describes a table in connection - Raises OperationalError and KeyError(Failed to find a connection for given key) ## describe(connection: Union[RelationalConnection, str] = None) -> pd.DataFrame: - Describe Table names in connection - Raises OperationalError and KeyError(Failed to find a connection for given key) ## table_query(table: str, columns: Union[list, str] = '*', condition: str = 'TRUE', connection=None, cache_connection=None, ttl=None, raw=False) -> pd.DataFrame: - Queries a given connection for 'SELECT {columns} FROM {table} WHERE {condition}' - Accepts both column values and labels - raw=True - column names as in db - Queries a given Connection(ip)/str of a known connection (or first known) return result as DataFrame - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - Raises OperationalError and KeyError(Failed to find a connection for given key) ## neware_cache_query(keys: Iterable, condition: str = 'TRUE', connection: Union[MySqlConnection, str] = None, cache: Storage = None, ttl: int = None) -> pd.DataFrame: - simplified query to retrieve aggregate cache data by condition - condition is a valid where clause for given connection type - requires keys in the form Iterable(Tuple(ip, device, unit, channel, test)), ex: [(241, 240222, 6, 11, 2818575226)] - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set ## neware_query(device: int, unit: int, channel: int, test: int, connection: Union[Connection, str] = None, cache_connection=None, ttl=None, raw=False, dqdv=False, condition: str = '1', temperature: bool = True, cache_data: pd.DataFrame = pd.DataFrame()) -> pd.DataFrame: - query Connection for device, unit, channel, test - connection=None try to get first known connection, **raise KeyError if None found** - temperature=True - fetch temperature data - raw=False - compute temperature, voltage, current aswell as grouping by auxchl_id - dqdv=True -> banner.neware.calc_dq_dv - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - **raises Type err if no data exists** ## neware_tests_query(table: str, experiments: Union[list, Number, str] = [], templates: Union[list, Number, str] = [], tests: Union[list, Number, str] = [], cells: Union[list,Number, str] = [], condition: str = 'cycle < 2', raw=False, dqdv=False, temperature: bool = True, connection: Union[Connection, str] = None, cache_connection=None, ttl=None): - Multi Process Queries.neware_query (number of processes = number of distinct connections found for input) - Queries all available tests for given table AND experiments AND templates AND tests AND cells - Union[list, Number, str] - single/list of numbers or a valid query - temperature=True - fetch temperature data - raw=False - compute temperature, voltage, current aswell as grouping by auxchl_id - dqdv=True -> banner.neware.calc_dq_dv - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - **raises Type err if no data exists** # banner.neware: ## NEWARE_STEPS: - Step number : Step Name Dictionary ## calculate_neware_columns(data: pd.DataFrame): - calculate neware columns for a valid neware DataFrame ## calculate_dq_dv(data: pd.DataFrame, raw=False): - Calculate DQ/DV for a valid neware df - raw=False: remove outliers ## merge_cache(data: pd.DataFrame, cache_data: pd.DataFrame): - Given data(neware df), cache_data(neware_cache df), tries to merge cache_data into data - ** Raises TypeError and Index Error** # banner.utils.web2py: ## JOINS: - Default Joins dictionary - Used when calling DataFrame.join_table without specifing how to join ## COLUMN_TO_LABEL: - Column : Label Dictionary ## LABEL_TO_COLUMN: - Label : Column Dictionary # banner.pandas_decorator: ## Added functionality onto Pandas.DataFrame object ## DataFrame.table_query - banner.queries.Queries.table_query ## DataFrame.calculate_neware_columns - banner.neware.calculate_neware_columns ## DataFrame.calculate_dq_dv - banner.neware.calculate_dq_dv ## join_table(table: str, columns: Union[list, str] = '*', condition: str = 'TRUE', left: Union[str, list, None] = None, right: Union[str, list, None] = None, how: Union[str, None] = None, connection: Union[RelationalConnection, str] = None, raw: bool = False, cache: Storage=None, ttl: Union[bool, None] = None) -> pd.DataFrame: - Given a table, Join its relevant Data with the current table_query DataFrame! - table: any table under the available Connection - columns: select specific columns from the table, default=All - condition: additional filtering condition on merged data - left: columns used to merge left DataFrame, default is picked from banner.utils.web2py.JOINS - right: columns used to merge right DataFrame, default is picked from banner.utils.web2py.JOINS - how: how to merge left and right, default is picked from banner.utils.web2py.JOINS - connection=None try to get first known connection, **raise KeyError if None found** - **raise TypeError If failed to join** %package -n python3-banner-storedot Summary: light dal package Provides: python-banner-storedot BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-banner-storedot # banner.connection: ## Connection(Object): - ABS class ## RelationalConnection(Connection): - ABS class ## Storage(Connection): - ABS class ## PrintableConnection(Connection): - ABS class ## MySqlConnection(RelationalConnection, PrintableConnection)(host, user, passwd, db, ssl_key, ssl_cert, name): - Create Connection object compatible with banner.queries - **raises MySQLError for bad connection** ## PostgresSqlConnection(RelationalConnection, PrintableConnection)(host, user, port=5432, passwd=None, db=None, ssl_key=None, ssl_cert=None, charset='utf8', name=None): - Create Connection object compatible with banner.queries - **raises MySQLError for bad connection** ## RedisConnection(Storage, PrintableConnection)(host, port, passwd, db, ssl_key, ssl_cert, name, ttl): - Create CacheConnection object compatible with banner.queries # banner.queries.Queries: ## CONNECTIONS(conns: Dict[str, Connection] = {}) -> : - Getter/Setter for known(default) Connections dict ## CACHE(con: CacheConnection = None): - Getter/Setter for known(default) CacheConnection ## simple_query(query: str, w2p_parse: bool = True, connection: Union[Connection, str] = None, cache: Storage = None, ttl: int = None) -> pd.DataFrame: - run a simple string query for Connection - connection=None try to get first known connection, **raise KeyError if None found** - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - w2p_parse=True - should parse query according to w2p syntax ## describe_table(table: str, connection: Union[RelationalConnection, str] = None) -> pd.DataFrame: - Describes a table in connection - Raises OperationalError and KeyError(Failed to find a connection for given key) ## describe(connection: Union[RelationalConnection, str] = None) -> pd.DataFrame: - Describe Table names in connection - Raises OperationalError and KeyError(Failed to find a connection for given key) ## table_query(table: str, columns: Union[list, str] = '*', condition: str = 'TRUE', connection=None, cache_connection=None, ttl=None, raw=False) -> pd.DataFrame: - Queries a given connection for 'SELECT {columns} FROM {table} WHERE {condition}' - Accepts both column values and labels - raw=True - column names as in db - Queries a given Connection(ip)/str of a known connection (or first known) return result as DataFrame - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - Raises OperationalError and KeyError(Failed to find a connection for given key) ## neware_cache_query(keys: Iterable, condition: str = 'TRUE', connection: Union[MySqlConnection, str] = None, cache: Storage = None, ttl: int = None) -> pd.DataFrame: - simplified query to retrieve aggregate cache data by condition - condition is a valid where clause for given connection type - requires keys in the form Iterable(Tuple(ip, device, unit, channel, test)), ex: [(241, 240222, 6, 11, 2818575226)] - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set ## neware_query(device: int, unit: int, channel: int, test: int, connection: Union[Connection, str] = None, cache_connection=None, ttl=None, raw=False, dqdv=False, condition: str = '1', temperature: bool = True, cache_data: pd.DataFrame = pd.DataFrame()) -> pd.DataFrame: - query Connection for device, unit, channel, test - connection=None try to get first known connection, **raise KeyError if None found** - temperature=True - fetch temperature data - raw=False - compute temperature, voltage, current aswell as grouping by auxchl_id - dqdv=True -> banner.neware.calc_dq_dv - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - **raises Type err if no data exists** ## neware_tests_query(table: str, experiments: Union[list, Number, str] = [], templates: Union[list, Number, str] = [], tests: Union[list, Number, str] = [], cells: Union[list,Number, str] = [], condition: str = 'cycle < 2', raw=False, dqdv=False, temperature: bool = True, connection: Union[Connection, str] = None, cache_connection=None, ttl=None): - Multi Process Queries.neware_query (number of processes = number of distinct connections found for input) - Queries all available tests for given table AND experiments AND templates AND tests AND cells - Union[list, Number, str] - single/list of numbers or a valid query - temperature=True - fetch temperature data - raw=False - compute temperature, voltage, current aswell as grouping by auxchl_id - dqdv=True -> banner.neware.calc_dq_dv - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - **raises Type err if no data exists** # banner.neware: ## NEWARE_STEPS: - Step number : Step Name Dictionary ## calculate_neware_columns(data: pd.DataFrame): - calculate neware columns for a valid neware DataFrame ## calculate_dq_dv(data: pd.DataFrame, raw=False): - Calculate DQ/DV for a valid neware df - raw=False: remove outliers ## merge_cache(data: pd.DataFrame, cache_data: pd.DataFrame): - Given data(neware df), cache_data(neware_cache df), tries to merge cache_data into data - ** Raises TypeError and Index Error** # banner.utils.web2py: ## JOINS: - Default Joins dictionary - Used when calling DataFrame.join_table without specifing how to join ## COLUMN_TO_LABEL: - Column : Label Dictionary ## LABEL_TO_COLUMN: - Label : Column Dictionary # banner.pandas_decorator: ## Added functionality onto Pandas.DataFrame object ## DataFrame.table_query - banner.queries.Queries.table_query ## DataFrame.calculate_neware_columns - banner.neware.calculate_neware_columns ## DataFrame.calculate_dq_dv - banner.neware.calculate_dq_dv ## join_table(table: str, columns: Union[list, str] = '*', condition: str = 'TRUE', left: Union[str, list, None] = None, right: Union[str, list, None] = None, how: Union[str, None] = None, connection: Union[RelationalConnection, str] = None, raw: bool = False, cache: Storage=None, ttl: Union[bool, None] = None) -> pd.DataFrame: - Given a table, Join its relevant Data with the current table_query DataFrame! - table: any table under the available Connection - columns: select specific columns from the table, default=All - condition: additional filtering condition on merged data - left: columns used to merge left DataFrame, default is picked from banner.utils.web2py.JOINS - right: columns used to merge right DataFrame, default is picked from banner.utils.web2py.JOINS - how: how to merge left and right, default is picked from banner.utils.web2py.JOINS - connection=None try to get first known connection, **raise KeyError if None found** - **raise TypeError If failed to join** %package help Summary: Development documents and examples for banner-storedot Provides: python3-banner-storedot-doc %description help # banner.connection: ## Connection(Object): - ABS class ## RelationalConnection(Connection): - ABS class ## Storage(Connection): - ABS class ## PrintableConnection(Connection): - ABS class ## MySqlConnection(RelationalConnection, PrintableConnection)(host, user, passwd, db, ssl_key, ssl_cert, name): - Create Connection object compatible with banner.queries - **raises MySQLError for bad connection** ## PostgresSqlConnection(RelationalConnection, PrintableConnection)(host, user, port=5432, passwd=None, db=None, ssl_key=None, ssl_cert=None, charset='utf8', name=None): - Create Connection object compatible with banner.queries - **raises MySQLError for bad connection** ## RedisConnection(Storage, PrintableConnection)(host, port, passwd, db, ssl_key, ssl_cert, name, ttl): - Create CacheConnection object compatible with banner.queries # banner.queries.Queries: ## CONNECTIONS(conns: Dict[str, Connection] = {}) -> : - Getter/Setter for known(default) Connections dict ## CACHE(con: CacheConnection = None): - Getter/Setter for known(default) CacheConnection ## simple_query(query: str, w2p_parse: bool = True, connection: Union[Connection, str] = None, cache: Storage = None, ttl: int = None) -> pd.DataFrame: - run a simple string query for Connection - connection=None try to get first known connection, **raise KeyError if None found** - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - w2p_parse=True - should parse query according to w2p syntax ## describe_table(table: str, connection: Union[RelationalConnection, str] = None) -> pd.DataFrame: - Describes a table in connection - Raises OperationalError and KeyError(Failed to find a connection for given key) ## describe(connection: Union[RelationalConnection, str] = None) -> pd.DataFrame: - Describe Table names in connection - Raises OperationalError and KeyError(Failed to find a connection for given key) ## table_query(table: str, columns: Union[list, str] = '*', condition: str = 'TRUE', connection=None, cache_connection=None, ttl=None, raw=False) -> pd.DataFrame: - Queries a given connection for 'SELECT {columns} FROM {table} WHERE {condition}' - Accepts both column values and labels - raw=True - column names as in db - Queries a given Connection(ip)/str of a known connection (or first known) return result as DataFrame - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - Raises OperationalError and KeyError(Failed to find a connection for given key) ## neware_cache_query(keys: Iterable, condition: str = 'TRUE', connection: Union[MySqlConnection, str] = None, cache: Storage = None, ttl: int = None) -> pd.DataFrame: - simplified query to retrieve aggregate cache data by condition - condition is a valid where clause for given connection type - requires keys in the form Iterable(Tuple(ip, device, unit, channel, test)), ex: [(241, 240222, 6, 11, 2818575226)] - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set ## neware_query(device: int, unit: int, channel: int, test: int, connection: Union[Connection, str] = None, cache_connection=None, ttl=None, raw=False, dqdv=False, condition: str = '1', temperature: bool = True, cache_data: pd.DataFrame = pd.DataFrame()) -> pd.DataFrame: - query Connection for device, unit, channel, test - connection=None try to get first known connection, **raise KeyError if None found** - temperature=True - fetch temperature data - raw=False - compute temperature, voltage, current aswell as grouping by auxchl_id - dqdv=True -> banner.neware.calc_dq_dv - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - **raises Type err if no data exists** ## neware_tests_query(table: str, experiments: Union[list, Number, str] = [], templates: Union[list, Number, str] = [], tests: Union[list, Number, str] = [], cells: Union[list,Number, str] = [], condition: str = 'cycle < 2', raw=False, dqdv=False, temperature: bool = True, connection: Union[Connection, str] = None, cache_connection=None, ttl=None): - Multi Process Queries.neware_query (number of processes = number of distinct connections found for input) - Queries all available tests for given table AND experiments AND templates AND tests AND cells - Union[list, Number, str] - single/list of numbers or a valid query - temperature=True - fetch temperature data - raw=False - compute temperature, voltage, current aswell as grouping by auxchl_id - dqdv=True -> banner.neware.calc_dq_dv - Cache the result if cache_connection or Queries.CACHE is set (ttl if provided otherwise use CACHE.ttl) - Cache=False will not cache the result even if Queries.CACHE is set - **raises Type err if no data exists** # banner.neware: ## NEWARE_STEPS: - Step number : Step Name Dictionary ## calculate_neware_columns(data: pd.DataFrame): - calculate neware columns for a valid neware DataFrame ## calculate_dq_dv(data: pd.DataFrame, raw=False): - Calculate DQ/DV for a valid neware df - raw=False: remove outliers ## merge_cache(data: pd.DataFrame, cache_data: pd.DataFrame): - Given data(neware df), cache_data(neware_cache df), tries to merge cache_data into data - ** Raises TypeError and Index Error** # banner.utils.web2py: ## JOINS: - Default Joins dictionary - Used when calling DataFrame.join_table without specifing how to join ## COLUMN_TO_LABEL: - Column : Label Dictionary ## LABEL_TO_COLUMN: - Label : Column Dictionary # banner.pandas_decorator: ## Added functionality onto Pandas.DataFrame object ## DataFrame.table_query - banner.queries.Queries.table_query ## DataFrame.calculate_neware_columns - banner.neware.calculate_neware_columns ## DataFrame.calculate_dq_dv - banner.neware.calculate_dq_dv ## join_table(table: str, columns: Union[list, str] = '*', condition: str = 'TRUE', left: Union[str, list, None] = None, right: Union[str, list, None] = None, how: Union[str, None] = None, connection: Union[RelationalConnection, str] = None, raw: bool = False, cache: Storage=None, ttl: Union[bool, None] = None) -> pd.DataFrame: - Given a table, Join its relevant Data with the current table_query DataFrame! - table: any table under the available Connection - columns: select specific columns from the table, default=All - condition: additional filtering condition on merged data - left: columns used to merge left DataFrame, default is picked from banner.utils.web2py.JOINS - right: columns used to merge right DataFrame, default is picked from banner.utils.web2py.JOINS - how: how to merge left and right, default is picked from banner.utils.web2py.JOINS - connection=None try to get first known connection, **raise KeyError if None found** - **raise TypeError If failed to join** %prep %autosetup -n banner-storedot-2.3.1 %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-banner-storedot -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Jun 09 2023 Python_Bot - 2.3.1-1 - Package Spec generated