atomicshop 2.18.1__py3-none-any.whl → 2.18.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of atomicshop might be problematic. Click here for more details.

atomicshop/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  """Atomic Basic functions and classes to make developer life easier"""
2
2
 
3
3
  __author__ = "Den Kras"
4
- __version__ = '2.18.1'
4
+ __version__ = '2.18.2'
@@ -291,6 +291,11 @@ def thread_worker_main(
291
291
  try:
292
292
  while True:
293
293
  client_message = responder_queue.get()
294
+
295
+ # If the message is not a ClientMessage object, then we'll break the loop, since it is the exit signal.
296
+ if not isinstance(client_message, ClientMessage):
297
+ return
298
+
294
299
  raw_responses: list[bytes] = create_responder_response(client_message)
295
300
 
296
301
  is_socket_closed: bool = False
@@ -377,10 +382,10 @@ def thread_worker_main(
377
382
  # the close on the opposite socket.
378
383
  record_and_statistics_write(client_message)
379
384
 
380
- if is_socket_closed:
381
- exception_or_close_in_receiving_thread = True
382
- finish_thread()
383
- return
385
+ # if is_socket_closed:
386
+ # exception_or_close_in_receiving_thread = True
387
+ # finish_thread()
388
+ # return
384
389
 
385
390
  # If we're in response mode, execute responder.
386
391
  if config_static.TCPServer.server_response_mode:
@@ -404,9 +409,10 @@ def thread_worker_main(
404
409
 
405
410
  record_and_statistics_write(client_message)
406
411
 
407
- # If the socket was closed, then we'll break the loop.
412
+ # If the socket was closed on message receive, then we'll break the loop only after send.
408
413
  if is_socket_closed or error_on_send:
409
414
  exception_or_close_in_receiving_thread = True
415
+ responder_queue.put('exit')
410
416
  finish_thread()
411
417
  return
412
418
  except Exception as exc:
@@ -437,6 +443,7 @@ def thread_worker_main(
437
443
  # record_and_statistics_write(client_message)
438
444
 
439
445
  finish_thread()
446
+ responder_queue.put('exit')
440
447
  exception_queue.put(exc)
441
448
 
442
449
  def handle_exceptions_on_main_connection_thread(
@@ -512,6 +519,9 @@ def thread_worker_main(
512
519
  responder_thread: threading.Thread = threading.Thread(
513
520
  target=responder_thread_worker, name=f"Thread-{thread_id}-Responder", daemon=True)
514
521
  responder_thread.start()
522
+ else:
523
+ # noinspection PyTypeChecker
524
+ responder_thread = None
515
525
 
516
526
  service_client = None
517
527
  client_receive_count: int = 0
@@ -557,6 +567,8 @@ def thread_worker_main(
557
567
 
558
568
  client_thread.join()
559
569
  service_thread.join()
570
+ if config_static.TCPServer.server_response_mode:
571
+ responder_thread.join()
560
572
 
561
573
  # If there was an exception in any of the threads, then we'll raise it here.
562
574
  if not client_exception_queue.empty():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: atomicshop
3
- Version: 2.18.1
3
+ Version: 2.18.2
4
4
  Summary: Atomic functions and classes to make developer life easier
5
5
  Author: Denis Kras
6
6
  License: MIT License
@@ -1,4 +1,4 @@
1
- atomicshop/__init__.py,sha256=sd-5MCzdxJLvLvlvBmT3hqetHRPabTPPEglAUqrWUSo,123
1
+ atomicshop/__init__.py,sha256=EPl1ua1q9CfR8reaw61h0P-bol2bj9D-p6to1iUifSY,123
2
2
  atomicshop/_basics_temp.py,sha256=6cu2dd6r2dLrd1BRNcVDKTHlsHs_26Gpw8QS6v32lQ0,3699
3
3
  atomicshop/_create_pdf_demo.py,sha256=Yi-PGZuMg0RKvQmLqVeLIZYadqEZwUm-4A9JxBl_vYA,3713
4
4
  atomicshop/_patch_import.py,sha256=ENp55sKVJ0e6-4lBvZnpz9PQCt3Otbur7F6aXDlyje4,6334
@@ -127,7 +127,7 @@ atomicshop/file_io/xmls.py,sha256=zh3SuK-dNaFq2NDNhx6ivcf4GYCfGM8M10PcEwDSpxk,21
127
127
  atomicshop/mitm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  atomicshop/mitm/config_static.py,sha256=HIzxyMEj7DZksYvJsN5VuKpB-_HSVvuR6U59ztS9gi0,7871
129
129
  atomicshop/mitm/config_toml_editor.py,sha256=2p1CMcktWRR_NW-SmyDwylu63ad5e0-w1QPMa8ZLDBw,1635
130
- atomicshop/mitm/connection_thread_worker.py,sha256=NHRa_f7k12JH9eDuGmr_-eCPRQVjO77RgCmLe9K2lWA,26073
130
+ atomicshop/mitm/connection_thread_worker.py,sha256=d7XMZoXbXm9IUywg-IIVApad-NKpSdErLWgHtK8A4F4,26623
131
131
  atomicshop/mitm/import_config.py,sha256=0Ij14aISTllTOiWYJpIUMOWobQqGofD6uafui5uWllE,9272
132
132
  atomicshop/mitm/initialize_engines.py,sha256=NWz0yBErSrYBn0xWkJDBcHStBJ-kcsv9VtorcSP9x5M,8258
133
133
  atomicshop/mitm/message.py,sha256=mNo4Lphr_Jo6IlNX5mPJzABpogWGkjOhwI4meAivwHw,2987
@@ -319,8 +319,8 @@ atomicshop/wrappers/socketw/ssl_base.py,sha256=kmiif84kMhBr5yjQW17p935sfjR5JKG0L
319
319
  atomicshop/wrappers/socketw/statistics_csv.py,sha256=fgMzDXI0cybwUEqAxprRmY3lqbh30KAV-jOpoFKT-m8,3395
320
320
  atomicshop/wrappers/winregw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
321
  atomicshop/wrappers/winregw/winreg_network.py,sha256=zZQfps-CdODQaTUADbHAwKHr5RUg7BLafnKWBbKaLN4,8728
322
- atomicshop-2.18.1.dist-info/LICENSE.txt,sha256=lLU7EYycfYcK2NR_1gfnhnRC8b8ccOTElACYplgZN88,1094
323
- atomicshop-2.18.1.dist-info/METADATA,sha256=udb7ZbArHpKHBqBMXmBZbJw4FBWF0EVZeWc3yVZHeak,10499
324
- atomicshop-2.18.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
325
- atomicshop-2.18.1.dist-info/top_level.txt,sha256=EgKJB-7xcrAPeqTRF2laD_Np2gNGYkJkd4OyXqpJphA,11
326
- atomicshop-2.18.1.dist-info/RECORD,,
322
+ atomicshop-2.18.2.dist-info/LICENSE.txt,sha256=lLU7EYycfYcK2NR_1gfnhnRC8b8ccOTElACYplgZN88,1094
323
+ atomicshop-2.18.2.dist-info/METADATA,sha256=jeXe5N1uxADb9T7GA5B10ENn-cmKa6WN6RywG1h3WgY,10499
324
+ atomicshop-2.18.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
325
+ atomicshop-2.18.2.dist-info/top_level.txt,sha256=EgKJB-7xcrAPeqTRF2laD_Np2gNGYkJkd4OyXqpJphA,11
326
+ atomicshop-2.18.2.dist-info/RECORD,,