%global _empty_manifest_terminate_build 0 Name: python-amxtelnet Version: 1.3.3 Release: 1 Summary: xlsx to amx dict list License: MIT License URL: https://github.com/logantv/amxtelnet Source0: https://mirrors.aliyun.com/pypi/web/packages/e5/83/8445621185e84befe5aee4fa8b0eb4364f53f9b5fb5276f343dfe5017d55/amxtelnet-1.3.3.tar.gz BuildArch: noarch %description # amxtelnet ### amx telnet functions ## Telnet(): #### Handles the actual telnet connection and communication with the AMX devices. This class is very universal, but if you run into issues using it on a non-AMX device, it may be caused by the modifications I had to make for AMX: ##### Using the default telnetlib.py with AMX was causing an infinite handshake loop. ##### _write() lines 269, 270 disabled IAC (telnet negotiation) doubling. ##### process_rawq() lines 373, 374 changed when raw chars go to buf when IAC. ## AMXConnect(): ### returns: #### commands are send to AMX masters. If desired, replies are written to file as .txt and/or logged. ### set_systems(): #### list of dicts where each dict is an AMX system. #### minimum key requirements: ##### 'full_name' (string) ##### 'master_ip' (string) ##### 'master_model' (string) (NX-1200, NI-700, etc.) ### config(): #### user_name: user name to login to AMX #### password: password to login to AMX #### alt_username: user name to use if user_name fails #### alt_password: password to use with alt_user_name #### write_results: True or False; write replies to individual .txt files per system. #### output_path: file path to use if write_results is True. This path should also be used for the path in ParseAMXResponse(). #### set_requests(): list of strings to send to the AMX master. $0D is automaticallyv appended. #### run(): Begin connecting to systems in set_systems(), sending requests from set_requests(), using settings from config() ## ParseAMXResponse(): #### Use this class to parse the information gathered from AMXConnect(). #### This class is less universal in that it expects the .txt files to contain responses to the following commands in the following order: ##### 'show device','get ip','program info','list' #### You can append additional commands as needed. The output of ParseAMXResponse().read_telnet_text() is a list of amx system dicts. Current uses of this list: ##### export to excel using amxtoexcel.py to archive campus system status ##### code creation using code_creator_django.py or code_creator_usm.py #### AMXConnect.path and ParseAMXResponse.path will normally refer to the same location. If you use the default locations in each class, they'll work together using systems/telnet responses/. #### If there's already .txt files in 'path' you can skip AMXConnect() and go straight to ParseAMXResponse() if using potentially outdated information is acceptable. %package -n python3-amxtelnet Summary: xlsx to amx dict list Provides: python-amxtelnet BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-amxtelnet # amxtelnet ### amx telnet functions ## Telnet(): #### Handles the actual telnet connection and communication with the AMX devices. This class is very universal, but if you run into issues using it on a non-AMX device, it may be caused by the modifications I had to make for AMX: ##### Using the default telnetlib.py with AMX was causing an infinite handshake loop. ##### _write() lines 269, 270 disabled IAC (telnet negotiation) doubling. ##### process_rawq() lines 373, 374 changed when raw chars go to buf when IAC. ## AMXConnect(): ### returns: #### commands are send to AMX masters. If desired, replies are written to file as .txt and/or logged. ### set_systems(): #### list of dicts where each dict is an AMX system. #### minimum key requirements: ##### 'full_name' (string) ##### 'master_ip' (string) ##### 'master_model' (string) (NX-1200, NI-700, etc.) ### config(): #### user_name: user name to login to AMX #### password: password to login to AMX #### alt_username: user name to use if user_name fails #### alt_password: password to use with alt_user_name #### write_results: True or False; write replies to individual .txt files per system. #### output_path: file path to use if write_results is True. This path should also be used for the path in ParseAMXResponse(). #### set_requests(): list of strings to send to the AMX master. $0D is automaticallyv appended. #### run(): Begin connecting to systems in set_systems(), sending requests from set_requests(), using settings from config() ## ParseAMXResponse(): #### Use this class to parse the information gathered from AMXConnect(). #### This class is less universal in that it expects the .txt files to contain responses to the following commands in the following order: ##### 'show device','get ip','program info','list' #### You can append additional commands as needed. The output of ParseAMXResponse().read_telnet_text() is a list of amx system dicts. Current uses of this list: ##### export to excel using amxtoexcel.py to archive campus system status ##### code creation using code_creator_django.py or code_creator_usm.py #### AMXConnect.path and ParseAMXResponse.path will normally refer to the same location. If you use the default locations in each class, they'll work together using systems/telnet responses/. #### If there's already .txt files in 'path' you can skip AMXConnect() and go straight to ParseAMXResponse() if using potentially outdated information is acceptable. %package help Summary: Development documents and examples for amxtelnet Provides: python3-amxtelnet-doc %description help # amxtelnet ### amx telnet functions ## Telnet(): #### Handles the actual telnet connection and communication with the AMX devices. This class is very universal, but if you run into issues using it on a non-AMX device, it may be caused by the modifications I had to make for AMX: ##### Using the default telnetlib.py with AMX was causing an infinite handshake loop. ##### _write() lines 269, 270 disabled IAC (telnet negotiation) doubling. ##### process_rawq() lines 373, 374 changed when raw chars go to buf when IAC. ## AMXConnect(): ### returns: #### commands are send to AMX masters. If desired, replies are written to file as .txt and/or logged. ### set_systems(): #### list of dicts where each dict is an AMX system. #### minimum key requirements: ##### 'full_name' (string) ##### 'master_ip' (string) ##### 'master_model' (string) (NX-1200, NI-700, etc.) ### config(): #### user_name: user name to login to AMX #### password: password to login to AMX #### alt_username: user name to use if user_name fails #### alt_password: password to use with alt_user_name #### write_results: True or False; write replies to individual .txt files per system. #### output_path: file path to use if write_results is True. This path should also be used for the path in ParseAMXResponse(). #### set_requests(): list of strings to send to the AMX master. $0D is automaticallyv appended. #### run(): Begin connecting to systems in set_systems(), sending requests from set_requests(), using settings from config() ## ParseAMXResponse(): #### Use this class to parse the information gathered from AMXConnect(). #### This class is less universal in that it expects the .txt files to contain responses to the following commands in the following order: ##### 'show device','get ip','program info','list' #### You can append additional commands as needed. The output of ParseAMXResponse().read_telnet_text() is a list of amx system dicts. Current uses of this list: ##### export to excel using amxtoexcel.py to archive campus system status ##### code creation using code_creator_django.py or code_creator_usm.py #### AMXConnect.path and ParseAMXResponse.path will normally refer to the same location. If you use the default locations in each class, they'll work together using systems/telnet responses/. #### If there's already .txt files in 'path' you can skip AMXConnect() and go straight to ParseAMXResponse() if using potentially outdated information is acceptable. %prep %autosetup -n amxtelnet-1.3.3 %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-amxtelnet -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 1.3.3-1 - Package Spec generated