diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 09:54:59 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 09:54:59 +0000 |
commit | 1fd26b33b41139db67dee0a0db59edaa4fb8b7cb (patch) | |
tree | c556f41c4214c043b3dbb4ee15834b06928998dc | |
parent | 0489048ee31c85a02e644b96cc112ec4e2957e65 (diff) |
automatic import of python-hisockopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-hisock.spec | 349 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 351 insertions, 0 deletions
@@ -0,0 +1 @@ +/hisock-2.0.2.tar.gz diff --git a/python-hisock.spec b/python-hisock.spec new file mode 100644 index 0000000..bfcf3ac --- /dev/null +++ b/python-hisock.spec @@ -0,0 +1,349 @@ +%global _empty_manifest_terminate_build 0 +Name: python-hisock +Version: 2.0.2 +Release: 1 +Summary: A higher-level extension of the socket module, with simpler and more efficient usages +License: MIT +URL: https://github.com/SSS-Says-Snek/hisock +Source0: https://mirrors.aliyun.com/pypi/web/packages/0e/c9/4d06c6e5dcb96c3946b93e56071e7d8ee82caac5f7aeaa35d7d6d99d74b6/hisock-2.0.2.tar.gz +BuildArch: noarch + +Requires: python3-pycryptodome + +%description +To build the *bleeding-edge* version of hisock from GitHub, download the repository with your favorite way, `cd` into it, then type: +```shell +$ python -m pip install -e . (WINDOWS) + OR +$ pip3 install -e . (MAC/LINUX) +``` +Note that you **MUST** cd into the cloned directory for this to work. +## Code of Conduct and Contributing Guidelines: +[Code of Conduct](.github/CODE_OF_CONDUCT.md) +[Contributing Guidelines](.github/CONTRIBUTING.md) +## Examples +hisock utilizes decorators as the core of receiving messages instead of having +if statements handling all of the logic. +More in-depth examples are located in the `examples` directory, including a tic-tac-toe game. Here is what a basic +server script would look like using hisock: +#### Server +```python +import sys +import time +import random +from hisock import start_server, get_local_ip +ADDR = get_local_ip() +PORT = 6969 +if len(sys.argv) == 2: + ADDR = sys.argv[1] +if len(sys.argv) == 3: + PORT = int(sys.argv[2]) +print(f"Serving at {ADDR}") +server = start_server((ADDR, PORT)) +@server.on("join") +def client_join(client_data): + print(f"Cool, {client_data.ip_as_str} joined!") + if client_data['name'] is not None: + print(f" - With a sick name \"{client_data.name}\", very cool!") + if client_data['group'] is not None: + print(f" - In a sick group \"{client_data.group}\", cool!") + print("I'm gonna send them a quick hello message") + server.send_client(client_data['ip'], "hello_message", str(time.time()).encode()) +@server.on("processing1") +def process(client_data, process_request: str): + print(f"\nAlright, looks like {client_data.ip_as_str} received the hello message, " + "\nas now they're trying to compute something on the server, because they have " + "potato computers") + print("Their processing request is:", process_request) + for _ in range(process_request.count("randnum")): + randnum = str(random.randint(1, 100000000)) + process_request = process_request.replace("randnum", randnum, 1) + result = eval(process_request) # Insecure, but I'm lazy, so... + print(f"Cool! The result is {result}! I'mma send it to the client") + server.send_client(client_data, "something", str(result)) +server.start() +``` +#### Client +```python +import time +from hisock import connect, get_local_ip +server_to_connect = input("Enter server IP to connect to (Press enter for default of your local IP): ") +port = input("Enter Server port number (Press enter for default of 6969): ") +if server_to_connect == '': + server_to_connect = get_local_ip() +if port == '': + port = 6969 +else: + port = int(port) +name = input("Name? (Press enter for no name) ") +group = input("Group? (Press enter for no group) ") +print("======================================= ESTABLISHING CONNECTION =======================================") +if name == '': + name = None +if group == '': + group = None +client = connect( + (server_to_connect, port), + name=name, group=group +) +join_time = time.time() +@client.on("hello_message") +def handle_hello(msg: str): + print("Thanks, server, for sending a hello, just for me!") + print(f"Looks like, the message was sent on timestamp {msg}, " + f"which is just {round(float(msg) - join_time, 6) * 1000} milliseconds since the connection!") + print("In response, I'm going to send the server a request to do some processing") + client.send("processing1", b"randnum**2") + result = client.recv("something", int) + print(f"WHOAAA! The result is {result}! Thanks server!") +client.start() +``` +## Contributors +Special thanks to the following: +- Sheepy0125, for refactoring the underhood code as well as the API +- SSS-Says-Snek, for maintaining and developing the library +- Ankith26, for helping me understand the usages of headers +###### Copyright SSS-Says-Snek, 2021-present + +%package -n python3-hisock +Summary: A higher-level extension of the socket module, with simpler and more efficient usages +Provides: python-hisock +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-hisock +To build the *bleeding-edge* version of hisock from GitHub, download the repository with your favorite way, `cd` into it, then type: +```shell +$ python -m pip install -e . (WINDOWS) + OR +$ pip3 install -e . (MAC/LINUX) +``` +Note that you **MUST** cd into the cloned directory for this to work. +## Code of Conduct and Contributing Guidelines: +[Code of Conduct](.github/CODE_OF_CONDUCT.md) +[Contributing Guidelines](.github/CONTRIBUTING.md) +## Examples +hisock utilizes decorators as the core of receiving messages instead of having +if statements handling all of the logic. +More in-depth examples are located in the `examples` directory, including a tic-tac-toe game. Here is what a basic +server script would look like using hisock: +#### Server +```python +import sys +import time +import random +from hisock import start_server, get_local_ip +ADDR = get_local_ip() +PORT = 6969 +if len(sys.argv) == 2: + ADDR = sys.argv[1] +if len(sys.argv) == 3: + PORT = int(sys.argv[2]) +print(f"Serving at {ADDR}") +server = start_server((ADDR, PORT)) +@server.on("join") +def client_join(client_data): + print(f"Cool, {client_data.ip_as_str} joined!") + if client_data['name'] is not None: + print(f" - With a sick name \"{client_data.name}\", very cool!") + if client_data['group'] is not None: + print(f" - In a sick group \"{client_data.group}\", cool!") + print("I'm gonna send them a quick hello message") + server.send_client(client_data['ip'], "hello_message", str(time.time()).encode()) +@server.on("processing1") +def process(client_data, process_request: str): + print(f"\nAlright, looks like {client_data.ip_as_str} received the hello message, " + "\nas now they're trying to compute something on the server, because they have " + "potato computers") + print("Their processing request is:", process_request) + for _ in range(process_request.count("randnum")): + randnum = str(random.randint(1, 100000000)) + process_request = process_request.replace("randnum", randnum, 1) + result = eval(process_request) # Insecure, but I'm lazy, so... + print(f"Cool! The result is {result}! I'mma send it to the client") + server.send_client(client_data, "something", str(result)) +server.start() +``` +#### Client +```python +import time +from hisock import connect, get_local_ip +server_to_connect = input("Enter server IP to connect to (Press enter for default of your local IP): ") +port = input("Enter Server port number (Press enter for default of 6969): ") +if server_to_connect == '': + server_to_connect = get_local_ip() +if port == '': + port = 6969 +else: + port = int(port) +name = input("Name? (Press enter for no name) ") +group = input("Group? (Press enter for no group) ") +print("======================================= ESTABLISHING CONNECTION =======================================") +if name == '': + name = None +if group == '': + group = None +client = connect( + (server_to_connect, port), + name=name, group=group +) +join_time = time.time() +@client.on("hello_message") +def handle_hello(msg: str): + print("Thanks, server, for sending a hello, just for me!") + print(f"Looks like, the message was sent on timestamp {msg}, " + f"which is just {round(float(msg) - join_time, 6) * 1000} milliseconds since the connection!") + print("In response, I'm going to send the server a request to do some processing") + client.send("processing1", b"randnum**2") + result = client.recv("something", int) + print(f"WHOAAA! The result is {result}! Thanks server!") +client.start() +``` +## Contributors +Special thanks to the following: +- Sheepy0125, for refactoring the underhood code as well as the API +- SSS-Says-Snek, for maintaining and developing the library +- Ankith26, for helping me understand the usages of headers +###### Copyright SSS-Says-Snek, 2021-present + +%package help +Summary: Development documents and examples for hisock +Provides: python3-hisock-doc +%description help +To build the *bleeding-edge* version of hisock from GitHub, download the repository with your favorite way, `cd` into it, then type: +```shell +$ python -m pip install -e . (WINDOWS) + OR +$ pip3 install -e . (MAC/LINUX) +``` +Note that you **MUST** cd into the cloned directory for this to work. +## Code of Conduct and Contributing Guidelines: +[Code of Conduct](.github/CODE_OF_CONDUCT.md) +[Contributing Guidelines](.github/CONTRIBUTING.md) +## Examples +hisock utilizes decorators as the core of receiving messages instead of having +if statements handling all of the logic. +More in-depth examples are located in the `examples` directory, including a tic-tac-toe game. Here is what a basic +server script would look like using hisock: +#### Server +```python +import sys +import time +import random +from hisock import start_server, get_local_ip +ADDR = get_local_ip() +PORT = 6969 +if len(sys.argv) == 2: + ADDR = sys.argv[1] +if len(sys.argv) == 3: + PORT = int(sys.argv[2]) +print(f"Serving at {ADDR}") +server = start_server((ADDR, PORT)) +@server.on("join") +def client_join(client_data): + print(f"Cool, {client_data.ip_as_str} joined!") + if client_data['name'] is not None: + print(f" - With a sick name \"{client_data.name}\", very cool!") + if client_data['group'] is not None: + print(f" - In a sick group \"{client_data.group}\", cool!") + print("I'm gonna send them a quick hello message") + server.send_client(client_data['ip'], "hello_message", str(time.time()).encode()) +@server.on("processing1") +def process(client_data, process_request: str): + print(f"\nAlright, looks like {client_data.ip_as_str} received the hello message, " + "\nas now they're trying to compute something on the server, because they have " + "potato computers") + print("Their processing request is:", process_request) + for _ in range(process_request.count("randnum")): + randnum = str(random.randint(1, 100000000)) + process_request = process_request.replace("randnum", randnum, 1) + result = eval(process_request) # Insecure, but I'm lazy, so... + print(f"Cool! The result is {result}! I'mma send it to the client") + server.send_client(client_data, "something", str(result)) +server.start() +``` +#### Client +```python +import time +from hisock import connect, get_local_ip +server_to_connect = input("Enter server IP to connect to (Press enter for default of your local IP): ") +port = input("Enter Server port number (Press enter for default of 6969): ") +if server_to_connect == '': + server_to_connect = get_local_ip() +if port == '': + port = 6969 +else: + port = int(port) +name = input("Name? (Press enter for no name) ") +group = input("Group? (Press enter for no group) ") +print("======================================= ESTABLISHING CONNECTION =======================================") +if name == '': + name = None +if group == '': + group = None +client = connect( + (server_to_connect, port), + name=name, group=group +) +join_time = time.time() +@client.on("hello_message") +def handle_hello(msg: str): + print("Thanks, server, for sending a hello, just for me!") + print(f"Looks like, the message was sent on timestamp {msg}, " + f"which is just {round(float(msg) - join_time, 6) * 1000} milliseconds since the connection!") + print("In response, I'm going to send the server a request to do some processing") + client.send("processing1", b"randnum**2") + result = client.recv("something", int) + print(f"WHOAAA! The result is {result}! Thanks server!") +client.start() +``` +## Contributors +Special thanks to the following: +- Sheepy0125, for refactoring the underhood code as well as the API +- SSS-Says-Snek, for maintaining and developing the library +- Ankith26, for helping me understand the usages of headers +###### Copyright SSS-Says-Snek, 2021-present + +%prep +%autosetup -n hisock-2.0.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-hisock -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.2-1 +- Package Spec generated @@ -0,0 +1 @@ +8f2b770b7f47f6e99cacbd5a004b1352 hisock-2.0.2.tar.gz |