funboost 45.0__tar.gz → 45.3__tar.gz

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 funboost might be problematic. Click here for more details.

Files changed (290) hide show
  1. {funboost-45.0/funboost.egg-info → funboost-45.3}/PKG-INFO +6 -5
  2. {funboost-45.0 → funboost-45.3}/README.md +4 -4
  3. {funboost-45.0 → funboost-45.3}/funboost/__init__.py +1 -1
  4. {funboost-45.0 → funboost-45.3}/funboost/__init__old.py +1 -1
  5. {funboost-45.0 → funboost-45.3}/funboost/constant.py +3 -0
  6. {funboost-45.0 → funboost-45.3}/funboost/consumers/base_consumer.py +10 -2
  7. {funboost-45.0 → funboost-45.3}/funboost/core/booster.py +6 -5
  8. {funboost-45.0 → funboost-45.3}/funboost/core/current_task.py +1 -1
  9. {funboost-45.0 → funboost-45.3}/funboost/core/func_params_model.py +5 -6
  10. {funboost-45.0 → funboost-45.3}/funboost/core/helper_funs.py +1 -1
  11. funboost-45.3/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
  12. funboost-45.3/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
  13. {funboost-45.0 → funboost-45.3}/funboost/publishers/base_publisher.py +17 -7
  14. {funboost-45.0 → funboost-45.3}/funboost/set_frame_config.py +1 -1
  15. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
  16. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
  17. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
  18. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
  19. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
  20. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
  21. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +59 -59
  22. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
  23. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
  24. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
  25. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
  26. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
  27. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
  28. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
  29. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
  30. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
  31. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
  32. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
  33. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
  34. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
  35. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
  36. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
  37. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
  38. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
  39. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
  40. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
  41. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
  42. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
  43. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +4804 -4804
  44. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +8 -8
  45. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +1668 -1668
  46. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +96 -96
  47. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +306 -306
  48. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +15 -15
  49. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +329 -329
  50. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +61 -61
  51. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +16 -16
  52. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
  53. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
  54. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
  55. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
  56. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
  57. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
  58. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
  59. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
  60. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
  61. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
  62. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
  63. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
  64. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
  65. funboost-45.3/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
  66. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
  67. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +98 -98
  68. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +7 -7
  69. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +7 -7
  70. {funboost-45.0 → funboost-45.3}/funboost/utils/times/__init__.py +85 -85
  71. {funboost-45.0 → funboost-45.3}/funboost/utils/times/version.py +1 -1
  72. {funboost-45.0 → funboost-45.3/funboost.egg-info}/PKG-INFO +6 -5
  73. {funboost-45.0 → funboost-45.3}/funboost.egg-info/SOURCES.txt +30 -2
  74. {funboost-45.0 → funboost-45.3}/funboost.egg-info/entry_points.txt +1 -0
  75. {funboost-45.0 → funboost-45.3}/funboost.egg-info/requires.txt +1 -1
  76. {funboost-45.0 → funboost-45.3}/setup.py +1 -1
  77. funboost-45.0/funboost/core/funboost_current_task_context_thread.py +0 -12
  78. funboost-45.0/funboost/function_result_web/__pycache__/functions.cpython-39.pyc +0 -0
  79. funboost-45.0/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
  80. funboost-45.0/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
  81. funboost-45.0/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
  82. {funboost-45.0 → funboost-45.3}/LICENSE +0 -0
  83. {funboost-45.0 → funboost-45.3}/MANIFEST.in +0 -0
  84. {funboost-45.0 → funboost-45.3}/funboost/__main__.py +0 -0
  85. {funboost-45.0 → funboost-45.3}/funboost/assist/__init__.py +0 -0
  86. {funboost-45.0 → funboost-45.3}/funboost/assist/celery_helper.py +0 -0
  87. {funboost-45.0 → funboost-45.3}/funboost/assist/dramatiq_helper.py +0 -0
  88. {funboost-45.0 → funboost-45.3}/funboost/assist/huey_helper.py +0 -0
  89. {funboost-45.0 → funboost-45.3}/funboost/assist/rocketry_helper.py +0 -0
  90. {funboost-45.0 → funboost-45.3}/funboost/assist/rq_helper.py +0 -0
  91. {funboost-45.0 → funboost-45.3}/funboost/assist/rq_windows_worker.py +0 -0
  92. {funboost-45.0 → funboost-45.3}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
  93. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/__init__.py +0 -0
  94. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/async_helper.py +0 -0
  95. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/async_pool_executor.py +0 -0
  96. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/backup/__init__.py +0 -0
  97. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
  98. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
  99. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
  100. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/base_pool_type.py +0 -0
  101. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
  102. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
  103. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
  104. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
  105. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
  106. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
  107. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
  108. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
  109. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
  110. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
  111. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/pool_commons.py +0 -0
  112. {funboost-45.0 → funboost-45.3}/funboost/concurrent_pool/single_thread_executor.py +0 -0
  113. {funboost-45.0 → funboost-45.3}/funboost/consumers/__init__.py +0 -0
  114. {funboost-45.0 → funboost-45.3}/funboost/consumers/celery_consumer.py +0 -0
  115. {funboost-45.0 → funboost-45.3}/funboost/consumers/confirm_mixin.py +0 -0
  116. {funboost-45.0 → funboost-45.3}/funboost/consumers/dramatiq_consumer.py +0 -0
  117. {funboost-45.0 → funboost-45.3}/funboost/consumers/empty_consumer.py +0 -0
  118. {funboost-45.0 → funboost-45.3}/funboost/consumers/http_consumer.py +0 -0
  119. {funboost-45.0 → funboost-45.3}/funboost/consumers/http_consumer000.py +0 -0
  120. {funboost-45.0 → funboost-45.3}/funboost/consumers/httpsqs_consumer.py +0 -0
  121. {funboost-45.0 → funboost-45.3}/funboost/consumers/huey_consumer.py +0 -0
  122. {funboost-45.0 → funboost-45.3}/funboost/consumers/kafka_consumer.py +0 -0
  123. {funboost-45.0 → funboost-45.3}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
  124. {funboost-45.0 → funboost-45.3}/funboost/consumers/kombu_consumer.py +0 -0
  125. {funboost-45.0 → funboost-45.3}/funboost/consumers/local_python_queue_consumer.py +0 -0
  126. {funboost-45.0 → funboost-45.3}/funboost/consumers/memory_deque_consumer.py +0 -0
  127. {funboost-45.0 → funboost-45.3}/funboost/consumers/mongomq_consumer.py +0 -0
  128. {funboost-45.0 → funboost-45.3}/funboost/consumers/mqtt_consumer.py +0 -0
  129. {funboost-45.0 → funboost-45.3}/funboost/consumers/nameko_consumer.py +0 -0
  130. {funboost-45.0 → funboost-45.3}/funboost/consumers/nats_consumer.py +0 -0
  131. {funboost-45.0 → funboost-45.3}/funboost/consumers/nsq_consumer.py +0 -0
  132. {funboost-45.0 → funboost-45.3}/funboost/consumers/peewee_conusmer.py +0 -0
  133. {funboost-45.0 → funboost-45.3}/funboost/consumers/persist_queue_consumer.py +0 -0
  134. {funboost-45.0 → funboost-45.3}/funboost/consumers/pulsar_consumer.py +0 -0
  135. {funboost-45.0 → funboost-45.3}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
  136. {funboost-45.0 → funboost-45.3}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
  137. {funboost-45.0 → funboost-45.3}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
  138. {funboost-45.0 → funboost-45.3}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
  139. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
  140. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_consumer.py +0 -0
  141. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_consumer_ack_able.py +0 -0
  142. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_consumer_ack_using_timeout.py +0 -0
  143. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_consumer_priority.py +0 -0
  144. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_consumer_simple.py +0 -0
  145. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_filter.py +0 -0
  146. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_pubsub_consumer.py +0 -0
  147. {funboost-45.0 → funboost-45.3}/funboost/consumers/redis_stream_consumer.py +0 -0
  148. {funboost-45.0 → funboost-45.3}/funboost/consumers/rocketmq_consumer.py +0 -0
  149. {funboost-45.0 → funboost-45.3}/funboost/consumers/rq_consumer.py +0 -0
  150. {funboost-45.0 → funboost-45.3}/funboost/consumers/sqlachemy_consumer.py +0 -0
  151. {funboost-45.0 → funboost-45.3}/funboost/consumers/tcp_consumer.py +0 -0
  152. {funboost-45.0 → funboost-45.3}/funboost/consumers/txt_file_consumer.py +0 -0
  153. {funboost-45.0 → funboost-45.3}/funboost/consumers/udp_consumer.py +0 -0
  154. {funboost-45.0 → funboost-45.3}/funboost/consumers/zeromq_consumer.py +0 -0
  155. {funboost-45.0 → funboost-45.3}/funboost/contrib/__init__.py +0 -0
  156. {funboost-45.0 → funboost-45.3}/funboost/contrib/api_publish_msg.py +0 -0
  157. {funboost-45.0 → funboost-45.3}/funboost/contrib/django_db_deco.py +0 -0
  158. {funboost-45.0 → funboost-45.3}/funboost/contrib/queue2queue.py +0 -0
  159. {funboost-45.0 → funboost-45.3}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
  160. {funboost-45.0 → funboost-45.3}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
  161. {funboost-45.0 → funboost-45.3}/funboost/core/__init__.py +0 -0
  162. {funboost-45.0 → funboost-45.3}/funboost/core/active_cousumer_info_getter.py +0 -0
  163. {funboost-45.0 → funboost-45.3}/funboost/core/cli/__init__.py +0 -0
  164. {funboost-45.0 → funboost-45.3}/funboost/core/cli/discovery_boosters.py +0 -0
  165. {funboost-45.0 → funboost-45.3}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
  166. {funboost-45.0 → funboost-45.3}/funboost/core/cli/funboost_fire.py +0 -0
  167. {funboost-45.0 → funboost-45.3}/funboost/core/exceptions.py +0 -0
  168. {funboost-45.0 → funboost-45.3}/funboost/core/fabric_deploy_helper.py +0 -0
  169. {funboost-45.0 → funboost-45.3}/funboost/core/funboost_config_getter.py +0 -0
  170. {funboost-45.0 → funboost-45.3}/funboost/core/funboost_time.py +0 -0
  171. {funboost-45.0 → funboost-45.3}/funboost/core/function_result_status_config.py +0 -0
  172. {funboost-45.0 → funboost-45.3}/funboost/core/function_result_status_saver.py +0 -0
  173. {funboost-45.0 → funboost-45.3}/funboost/core/kill_remote_task.py +0 -0
  174. {funboost-45.0 → funboost-45.3}/funboost/core/lazy_impoter.py +0 -0
  175. {funboost-45.0 → funboost-45.3}/funboost/core/loggers.py +0 -0
  176. {funboost-45.0 → funboost-45.3}/funboost/core/msg_result_getter.py +0 -0
  177. {funboost-45.0 → funboost-45.3}/funboost/core/muliti_process_enhance.py +0 -0
  178. {funboost-45.0 → funboost-45.3}/funboost/core/task_id_logger.py +0 -0
  179. {funboost-45.0 → funboost-45.3}/funboost/factories/__init__.py +0 -0
  180. {funboost-45.0 → funboost-45.3}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
  181. {funboost-45.0 → funboost-45.3}/funboost/factories/consumer_factory.py +0 -0
  182. {funboost-45.0 → funboost-45.3}/funboost/factories/publisher_factotry.py +0 -0
  183. {funboost-45.0 → funboost-45.3}/funboost/funboost_config_deafult.py +0 -0
  184. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/app.py +0 -0
  185. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/functions.py +0 -0
  186. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/assets/css/custom.css +0 -0
  187. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
  188. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
  189. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/assets/js/custom.js +0 -0
  190. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
  191. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/css/style.css +0 -0
  192. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/images/bg.jpg +0 -0
  193. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/images/password.png +0 -0
  194. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/images/tick.png +0 -0
  195. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/images/user.png +0 -0
  196. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
  197. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/templates/index.html +0 -0
  198. {funboost-45.0 → funboost-45.3}/funboost/function_result_web/templates/login.html +0 -0
  199. {funboost-45.0 → funboost-45.3}/funboost/publishers/__init__.py +0 -0
  200. {funboost-45.0 → funboost-45.3}/funboost/publishers/celery_publisher.py +0 -0
  201. {funboost-45.0 → funboost-45.3}/funboost/publishers/celery_publisher000.py +0 -0
  202. {funboost-45.0 → funboost-45.3}/funboost/publishers/confluent_kafka_publisher.py +0 -0
  203. {funboost-45.0 → funboost-45.3}/funboost/publishers/dramatiq_publisher.py +0 -0
  204. {funboost-45.0 → funboost-45.3}/funboost/publishers/empty_publisher.py +0 -0
  205. {funboost-45.0 → funboost-45.3}/funboost/publishers/http_publisher.py +0 -0
  206. {funboost-45.0 → funboost-45.3}/funboost/publishers/httpsqs_publisher.py +0 -0
  207. {funboost-45.0 → funboost-45.3}/funboost/publishers/huey_publisher.py +0 -0
  208. {funboost-45.0 → funboost-45.3}/funboost/publishers/kafka_publisher.py +0 -0
  209. {funboost-45.0 → funboost-45.3}/funboost/publishers/kombu_publisher.py +0 -0
  210. {funboost-45.0 → funboost-45.3}/funboost/publishers/local_python_queue_publisher.py +0 -0
  211. {funboost-45.0 → funboost-45.3}/funboost/publishers/meomory_deque_publisher.py +0 -0
  212. {funboost-45.0 → funboost-45.3}/funboost/publishers/mongomq_publisher.py +0 -0
  213. {funboost-45.0 → funboost-45.3}/funboost/publishers/mqtt_publisher.py +0 -0
  214. {funboost-45.0 → funboost-45.3}/funboost/publishers/nameko_publisher.py +0 -0
  215. {funboost-45.0 → funboost-45.3}/funboost/publishers/nats_publisher.py +0 -0
  216. {funboost-45.0 → funboost-45.3}/funboost/publishers/nsq_publisher.py +0 -0
  217. {funboost-45.0 → funboost-45.3}/funboost/publishers/peewee_publisher.py +0 -0
  218. {funboost-45.0 → funboost-45.3}/funboost/publishers/persist_queue_publisher.py +0 -0
  219. {funboost-45.0 → funboost-45.3}/funboost/publishers/pulsar_publisher.py +0 -0
  220. {funboost-45.0 → funboost-45.3}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
  221. {funboost-45.0 → funboost-45.3}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
  222. {funboost-45.0 → funboost-45.3}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
  223. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_publisher.py +0 -0
  224. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_publisher_lpush.py +0 -0
  225. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_publisher_priority.py +0 -0
  226. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_publisher_simple.py +0 -0
  227. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_pubsub_publisher.py +0 -0
  228. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
  229. {funboost-45.0 → funboost-45.3}/funboost/publishers/redis_stream_publisher.py +0 -0
  230. {funboost-45.0 → funboost-45.3}/funboost/publishers/rocketmq_publisher.py +0 -0
  231. {funboost-45.0 → funboost-45.3}/funboost/publishers/rq_publisher.py +0 -0
  232. {funboost-45.0 → funboost-45.3}/funboost/publishers/sqla_queue_publisher.py +0 -0
  233. {funboost-45.0 → funboost-45.3}/funboost/publishers/tcp_publisher.py +0 -0
  234. {funboost-45.0 → funboost-45.3}/funboost/publishers/txt_file_publisher.py +0 -0
  235. {funboost-45.0 → funboost-45.3}/funboost/publishers/udp_publisher.py +0 -0
  236. {funboost-45.0 → funboost-45.3}/funboost/publishers/zeromq_publisher.py +0 -0
  237. {funboost-45.0 → funboost-45.3}/funboost/queues/__init__.py +0 -0
  238. {funboost-45.0 → funboost-45.3}/funboost/queues/peewee_queue.py +0 -0
  239. {funboost-45.0 → funboost-45.3}/funboost/queues/sqla_queue.py +0 -0
  240. {funboost-45.0 → funboost-45.3}/funboost/timing_job/__init__.py +0 -0
  241. {funboost-45.0 → funboost-45.3}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
  242. {funboost-45.0 → funboost-45.3}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
  243. {funboost-45.0 → funboost-45.3}/funboost/utils/__init__.py +0 -0
  244. {funboost-45.0 → funboost-45.3}/funboost/utils/apscheduler_monkey.py +0 -0
  245. {funboost-45.0 → funboost-45.3}/funboost/utils/block_exit.py +0 -0
  246. {funboost-45.0 → funboost-45.3}/funboost/utils/bulk_operation.py +0 -0
  247. {funboost-45.0 → funboost-45.3}/funboost/utils/class_utils.py +0 -0
  248. {funboost-45.0 → funboost-45.3}/funboost/utils/ctrl_c_end.py +0 -0
  249. {funboost-45.0 → funboost-45.3}/funboost/utils/custom_pysnooper.py +0 -0
  250. {funboost-45.0 → funboost-45.3}/funboost/utils/decorators.py +0 -0
  251. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/__init__.py +0 -0
  252. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
  253. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
  254. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
  255. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
  256. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
  257. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
  258. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
  259. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
  260. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
  261. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
  262. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
  263. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
  264. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
  265. {funboost-45.0 → funboost-45.3}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
  266. {funboost-45.0 → funboost-45.3}/funboost/utils/develop_log.py +0 -0
  267. {funboost-45.0 → funboost-45.3}/funboost/utils/expire_lock.py +0 -0
  268. {funboost-45.0 → funboost-45.3}/funboost/utils/json_helper.py +0 -0
  269. {funboost-45.0 → funboost-45.3}/funboost/utils/mongo_util.py +0 -0
  270. {funboost-45.0 → funboost-45.3}/funboost/utils/monkey_color_log.py +0 -0
  271. {funboost-45.0 → funboost-45.3}/funboost/utils/monkey_patches.py +0 -0
  272. {funboost-45.0 → funboost-45.3}/funboost/utils/mqtt_util.py +0 -0
  273. {funboost-45.0 → funboost-45.3}/funboost/utils/paramiko_util.py +0 -0
  274. {funboost-45.0 → funboost-45.3}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
  275. {funboost-45.0 → funboost-45.3}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
  276. {funboost-45.0 → funboost-45.3}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
  277. {funboost-45.0 → funboost-45.3}/funboost/utils/pysnooper_ydf/utils.py +0 -0
  278. {funboost-45.0 → funboost-45.3}/funboost/utils/pysnooper_ydf/variables.py +0 -0
  279. {funboost-45.0 → funboost-45.3}/funboost/utils/rabbitmq_factory.py +0 -0
  280. {funboost-45.0 → funboost-45.3}/funboost/utils/redis_manager.py +0 -0
  281. {funboost-45.0 → funboost-45.3}/funboost/utils/redis_manager_old.py +0 -0
  282. {funboost-45.0 → funboost-45.3}/funboost/utils/resource_monitoring.py +0 -0
  283. {funboost-45.0 → funboost-45.3}/funboost/utils/restart_python.py +0 -0
  284. {funboost-45.0 → funboost-45.3}/funboost/utils/simple_data_class.py +0 -0
  285. {funboost-45.0 → funboost-45.3}/funboost/utils/str_utils.py +0 -0
  286. {funboost-45.0 → funboost-45.3}/funboost/utils/time_util.py +0 -0
  287. {funboost-45.0 → funboost-45.3}/funboost/utils/un_strict_json_dumps.py +0 -0
  288. {funboost-45.0 → funboost-45.3}/funboost.egg-info/dependency_links.txt +0 -0
  289. {funboost-45.0 → funboost-45.3}/funboost.egg-info/top_level.txt +0 -0
  290. {funboost-45.0 → funboost-45.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 45.0
3
+ Version: 45.3
4
4
  Summary: pip install funboost,python全功能分布式函数调度框架,。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
5
5
  Home-page: https://github.com/ydf0509/funboost
6
6
  Author: bfzs
@@ -87,8 +87,8 @@ funboost的旧框架名字是function_scheduling_distributed_framework , 关系
87
87
 
88
88
  ## 1.0 github地址和文档地址
89
89
 
90
- ### 1.0.1 [分布式函数调度框架文档地址 ](https://funboost.readthedocs.io/zh/latest/index.html)
91
- [查看分布式函数调度框架文档 https://funboost.readthedocs.io/zh/latest/index.html](https://funboost.readthedocs.io/zh/latest/index.html)
90
+ ### 1.0.1 [分布式函数调度框架文档地址 ](https://funboost.readthedocs.io/zh-cn/latest/index.html)
91
+ [查看分布式函数调度框架文档 https://funboost.readthedocs.io/zh-cn/latest/index.html](https://funboost.readthedocs.io/zh-cn/latest/index.html)
92
92
 
93
93
 
94
94
  [funboost依赖的nb_log日志文档 https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#id2](https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#id2)
@@ -235,7 +235,7 @@ if __name__ == '__main__':
235
235
 
236
236
  框架支持的中间件种类大全和选型见文档3.1章节的介绍:
237
237
 
238
- [3.1 各种中间件选择的场景和优势](https://funboost.readthedocs.io/zh/latest/articles/c3.html#id2)
238
+ [3.1 各种中间件选择的场景和优势](https://funboost.readthedocs.io/zh-cn/latest/articles/c3.html#id2)
239
239
 
240
240
 
241
241
  ### 1.2.3 框架对任务支持30种控制功能。
@@ -478,7 +478,7 @@ python比其他语言更需要分布式函数调度框架来执行函数,有
478
478
  funboost通过支持celery作为broker_kind,使celer框架变成了funboost的一个子集
479
479
  ```
480
480
 
481
- [查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/zh/latest/index.html)
481
+ [查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/zh-cn/latest/index.html)
482
482
 
483
483
 
484
484
 
@@ -492,3 +492,4 @@ funboost通过支持celery作为broker_kind,使celer框架变成了funboost的
492
492
  ![](https://visitor-badge.glitch.me/badge?page_id=distributed_framework)
493
493
 
494
494
  <div> </div>
495
+
@@ -55,8 +55,8 @@ funboost的旧框架名字是function_scheduling_distributed_framework , 关系
55
55
 
56
56
  ## 1.0 github地址和文档地址
57
57
 
58
- ### 1.0.1 [分布式函数调度框架文档地址 ](https://funboost.readthedocs.io/zh/latest/index.html)
59
- [查看分布式函数调度框架文档 https://funboost.readthedocs.io/zh/latest/index.html](https://funboost.readthedocs.io/zh/latest/index.html)
58
+ ### 1.0.1 [分布式函数调度框架文档地址 ](https://funboost.readthedocs.io/zh-cn/latest/index.html)
59
+ [查看分布式函数调度框架文档 https://funboost.readthedocs.io/zh-cn/latest/index.html](https://funboost.readthedocs.io/zh-cn/latest/index.html)
60
60
 
61
61
 
62
62
  [funboost依赖的nb_log日志文档 https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#id2](https://nb-log-doc.readthedocs.io/zh_CN/latest/articles/c9.html#id2)
@@ -203,7 +203,7 @@ if __name__ == '__main__':
203
203
 
204
204
  框架支持的中间件种类大全和选型见文档3.1章节的介绍:
205
205
 
206
- [3.1 各种中间件选择的场景和优势](https://funboost.readthedocs.io/zh/latest/articles/c3.html#id2)
206
+ [3.1 各种中间件选择的场景和优势](https://funboost.readthedocs.io/zh-cn/latest/articles/c3.html#id2)
207
207
 
208
208
 
209
209
  ### 1.2.3 框架对任务支持30种控制功能。
@@ -446,7 +446,7 @@ python比其他语言更需要分布式函数调度框架来执行函数,有
446
446
  funboost通过支持celery作为broker_kind,使celer框架变成了funboost的一个子集
447
447
  ```
448
448
 
449
- [查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/zh/latest/index.html)
449
+ [查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/zh-cn/latest/index.html)
450
450
 
451
451
 
452
452
 
@@ -13,7 +13,7 @@ set_frame_config这个模块的 use_config_form_funboost_config_module() 是核
13
13
  这段注释说明和使用的用户无关,只和框架开发人员有关.
14
14
  '''
15
15
 
16
- __version__ = "45.0"
16
+ __version__ = "45.3"
17
17
 
18
18
  from funboost.set_frame_config import show_frame_config
19
19
 
@@ -179,7 +179,7 @@ def boost(queue_name,
179
179
  funboost.funboost_config_deafult.BoostDecoratorDefaultParams 的值会自动被你项目根目录下的funboost_config.BoostDecoratorDefaultParams的值覆盖,
180
180
  如果boost装饰器不传参,默认使用funboost_config.BoostDecoratorDefaultParams的配置
181
181
 
182
- 入参也可以看文档 https://funboost.readthedocs.io/zh/latest/articles/c3.html 3.3章节。
182
+ 入参也可以看文档 https://funboost.readthedocs.io/zh-cn/latest/articles/c3.html 3.3章节。
183
183
 
184
184
  # 为了代码提示好,这里重复一次入参意义。被此装饰器装饰的函数f,函数f对象本身自动加了一些方法,例如f.push 、 f.consume等。
185
185
  :param queue_name: 队列名字。
@@ -103,3 +103,6 @@ class ConstStrForClassMethod:
103
103
  FIRST_PARAM_NAME = 'first_param_name'
104
104
  CLS_NAME = 'cls_name'
105
105
  OBJ_INIT_PARAMS = 'obj_init_params'
106
+ CLS_MODULE = 'cls_module'
107
+ CLS_FILE = 'cls_file'
108
+
@@ -38,6 +38,7 @@ from funboost.core.func_params_model import BoosterParams, PublisherParams, Base
38
38
  from funboost.core.task_id_logger import TaskIdLogger
39
39
  from funboost.constant import FunctionKind
40
40
  from funboost.utils.json_helper import JsonUtils
41
+ from nb_libs.path_helper import PathHelper
41
42
  from nb_log import (get_logger, LoggerLevelSetterMixin, LogManager, is_main_process,
42
43
  nb_log_config_default)
43
44
  from funboost.core.loggers import FunboostFileLoggerMixin, logger_prompt
@@ -581,11 +582,13 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
581
582
  method_first_param_name = k
582
583
  method_first_param_value = v
583
584
  break
584
- method_cls = getattr(sys.modules[self.consumer_params.consuming_function_class_module],
585
- self.consumer_params.consuming_function_class_name)
585
+ # method_cls = getattr(sys.modules[self.consumer_params.consuming_function_class_module],
586
+ # self.consumer_params.consuming_function_class_name)
586
587
  if self.publisher_params.consuming_function_kind == FunctionKind.CLASS_METHOD:
588
+ method_cls = getattr(PathHelper(method_first_param_value[ConstStrForClassMethod.CLS_FILE]).import_as_module(),method_first_param_value[ConstStrForClassMethod.CLS_NAME])
587
589
  real_function_only_params[method_first_param_name] = method_cls
588
590
  elif self.publisher_params.consuming_function_kind == FunctionKind.INSTANCE_METHOD:
591
+ method_cls = getattr(PathHelper(method_first_param_value[ConstStrForClassMethod.CLS_FILE]).import_as_module(), method_first_param_value[ConstStrForClassMethod.CLS_NAME])
589
592
  obj = method_cls(**method_first_param_value[ConstStrForClassMethod.OBJ_INIT_PARAMS])
590
593
  real_function_only_params[method_first_param_name] = obj
591
594
  # print(real_function_only_params)
@@ -672,6 +675,8 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
672
675
  # self.logger.critical(msg=f'{log_msg} \n', exc_info=True)
673
676
  # self.error_file_logger.critical(msg=f'{log_msg} \n', exc_info=True)
674
677
  self.logger.critical(msg=log_msg, exc_info=True)
678
+ fct = funboost_current_task()
679
+ fct.set_fct_context(None)
675
680
 
676
681
  # noinspection PyProtectedMember
677
682
  def _run_consuming_function_with_confirm_and_retry(self, kw: dict, current_retry_times,
@@ -844,6 +849,9 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
844
849
  # self.logger.critical(msg=f'{log_msg} \n', exc_info=True)
845
850
  # self.error_file_logger.critical(msg=f'{log_msg} \n', exc_info=True)
846
851
  self.logger.critical(msg=log_msg, exc_info=True)
852
+ fct = funboost_current_task()
853
+ fct.set_fct_context(None)
854
+
847
855
 
848
856
  # noinspection PyProtectedMember
849
857
  async def _async_run_consuming_function_with_confirm_and_retry(self, kw: dict, current_retry_times,
@@ -90,16 +90,17 @@ class Booster:
90
90
  if len(kwargs) == 0 and len(args) == 1 and isinstance(args[0], typing.Callable):
91
91
  consuming_function = args[0]
92
92
  self.boost_params.consuming_function = consuming_function
93
+ self.boost_params.consuming_function_raw = consuming_function
93
94
  # print(consuming_function)
94
95
  # print(ClsHelper.get_method_kind(consuming_function))
95
96
  # print(inspect.getsourcelines(consuming_function))
96
97
  if self.boost_params.consuming_function_kind is None:
97
98
  self.boost_params.consuming_function_kind = ClsHelper.get_method_kind(consuming_function)
98
- if self.boost_params.consuming_function_kind in [FunctionKind.CLASS_METHOD,FunctionKind.INSTANCE_METHOD]:
99
- if self.boost_params.consuming_function_class_module is None:
100
- self.boost_params.consuming_function_class_module = consuming_function.__module__
101
- if self.boost_params.consuming_function_class_name is None:
102
- self.boost_params.consuming_function_class_name = consuming_function.__qualname__.split('.')[0]
99
+ # if self.boost_params.consuming_function_kind in [FunctionKind.CLASS_METHOD,FunctionKind.INSTANCE_METHOD]:
100
+ # if self.boost_params.consuming_function_class_module is None:
101
+ # self.boost_params.consuming_function_class_module = consuming_function.__module__
102
+ # if self.boost_params.consuming_function_class_name is None:
103
+ # self.boost_params.consuming_function_class_name = consuming_function.__qualname__.split('.')[0]
103
104
  logger_prompt.debug(f''' {self.boost_params.queue_name} booster 配置是 {self.boost_params.json_str_value()}''')
104
105
  self.consuming_function = consuming_function
105
106
  self.is_decorated_as_consume_function = True
@@ -150,7 +150,7 @@ def is_asyncio_environment():
150
150
 
151
151
  def funboost_current_task():
152
152
  if is_asyncio_environment():
153
- if thread_current_task.get_fct_context().asyncio_use_thread_concurrent_mode is True:
153
+ if hasattr(thread_current_task._fct_local_data,'fct_context') and thread_current_task.get_fct_context().asyncio_use_thread_concurrent_mode is True:
154
154
  # 如果用户使用的是默认的ConcurrentModeEnum.THREADING并发模式来运行async def 函数,那么也使用线程获取上下文
155
155
  return thread_current_task
156
156
  else:
@@ -179,8 +179,9 @@ class BoosterParams(BaseJsonAbleModel):
179
179
  schedule_tasks_on_main_thread: bool = False # 直接在主线程调度任务,意味着不能直接在当前主线程同时开启两个消费者。
180
180
 
181
181
  consuming_function: typing.Callable = None # 消费函数,在@boost时候不用指定,因为装饰器知道下面的函数.
182
+ consuming_function_raw: typing.Callable = None
182
183
 
183
- broker_kind: str = BrokerEnum.SQLITE_QUEUE # 中间件选型见3.1章节 https://funboost.readthedocs.io/zh/latest/articles/c3.html
184
+ broker_kind: str = BrokerEnum.SQLITE_QUEUE # 中间件选型见3.1章节 https://funboost.readthedocs.io/zh-cn/latest/articles/c3.html
184
185
 
185
186
  broker_exclusive_config: dict = {} # 加上一个不同种类中间件非通用的配置,不同中间件自身独有的配置,不是所有中间件都兼容的配置,因为框架支持30种消息队列,消息队列不仅仅是一般的先进先出queue这么简单的概念,
186
187
  # 例如kafka支持消费者组,rabbitmq也支持各种独特概念例如各种ack机制 复杂路由机制,有的中间件原生能支持消息优先级有的中间件不支持,每一种消息队列都有独特的配置参数意义,可以通过这里传递。每种中间件能传递的键值对可以看consumer类的 BROKER_EXCLUSIVE_CONFIG_DEFAULT
@@ -193,10 +194,9 @@ class BoosterParams(BaseJsonAbleModel):
193
194
  # func_params_is_pydantic_model: bool = False # funboost 兼容支持 函数娼还是 pydantic model类型,funboost在发布之前和取出来时候自己转化。
194
195
 
195
196
  auto_generate_info: dict = {} # 自动生成的信息,不需要用户主动传参.
196
- consuming_function_class:typing.Optional[typing.Type] = None
197
+
197
198
  consuming_function_kind :typing.Optional[str]= None #自动生成的信息,不需要用户主动传参.
198
- consuming_function_class_module:typing.Optional[str] = None #自动生成的信息,不需要用户主动传参.
199
- consuming_function_class_name: typing.Optional[str] = None #自动生成的信息,不需要用户主动传参.
199
+
200
200
 
201
201
  @root_validator(skip_on_failure=True)
202
202
  def check_values(cls, values: dict):
@@ -295,8 +295,7 @@ class PublisherParams(BaseJsonAbleModel):
295
295
  # func_params_is_pydantic_model: bool = False # funboost 兼容支持 函数娼还是 pydantic model类型,funboost在发布之前和取出来时候自己转化。
296
296
 
297
297
  consuming_function_kind: typing.Optional[str] = None # 自动生成的信息,不需要用户主动传参.
298
- consuming_function_class_module: typing.Optional[str] = None # 自动生成的信息,不需要用户主动传参.
299
- consuming_function_class_name: typing.Optional[str] = None # 自动生成的信息,不需要用户主动传参.
298
+
300
299
 
301
300
 
302
301
  if __name__ == '__main__':
@@ -28,7 +28,7 @@ def delete_keys_and_return_new_dict(dictx: dict, keys: list = None):
28
28
  def block_python_main_thread_exit():
29
29
  """
30
30
 
31
- https://funboost.readthedocs.io/zh/latest/articles/c10.html#runtimeerror-cannot-schedule-new-futures-after-interpreter-shutdown
31
+ https://funboost.readthedocs.io/zh-cn/latest/articles/c10.html#runtimeerror-cannot-schedule-new-futures-after-interpreter-shutdown
32
32
 
33
33
  主要是用于 python3.9以上 定时任务报错, 定时任务报错 RuntimeError: cannot schedule new futures after interpreter shutdown
34
34
  如果主线程结束了,apscheduler就会报这个错,加上这个while 1 : time.sleep(100) 目的就是阻止主线程退出。
@@ -1,6 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # @Author : ydf
3
3
  # @Time : 2022/8/8 0008 11:57
4
+ from pathlib import Path
5
+
4
6
  import abc
5
7
  import copy
6
8
  import inspect
@@ -8,6 +10,7 @@ import atexit
8
10
  import json
9
11
  import logging
10
12
  import multiprocessing
13
+ import sys
11
14
  import threading
12
15
  import time
13
16
  import typing
@@ -30,8 +33,6 @@ from funboost.core.task_id_logger import TaskIdLogger
30
33
  from funboost.utils import decorators
31
34
  from funboost.funboost_config_deafult import BrokerConnConfig, FunboostCommonConfig
32
35
 
33
-
34
-
35
36
  RedisAsyncResult = AsyncResult # 别名
36
37
  RedisAioAsyncResult = AioAsyncResult # 别名
37
38
 
@@ -257,14 +258,23 @@ class AbstractPublisher(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
257
258
  # func_args_list.insert(0, {'first_param_name': self.publish_params_checker.all_arg_name[0],
258
259
  # 'cls_type': ClsHelper.get_classs_method_cls(self.publisher_params.consuming_function).__name__},
259
260
  # )
260
- func_args_list.insert(0, {ConstStrForClassMethod.FIRST_PARAM_NAME: self.publish_params_checker.all_arg_name[0],
261
- ConstStrForClassMethod.CLS_NAME: self.publisher_params.consuming_function_class_name,})
261
+ cls = func_args_list[0]
262
+ # print(cls,cls.__name__, sys.modules[cls.__module__].__file__)
263
+ func_args_list[0] = {ConstStrForClassMethod.FIRST_PARAM_NAME: self.publish_params_checker.all_arg_name[0],
264
+ ConstStrForClassMethod.CLS_NAME: cls.__name__,
265
+ ConstStrForClassMethod.CLS_FILE: Path(sys.modules[cls.__module__].__file__).resolve().as_posix(),
266
+ }
262
267
  elif self.publisher_params.consuming_function_kind == FunctionKind.INSTANCE_METHOD:
263
- if not hasattr(func_args[0],ConstStrForClassMethod.OBJ_INIT_PARAMS):
268
+ obj = func_args[0]
269
+ cls = type(obj)
270
+ if not hasattr(obj, ConstStrForClassMethod.OBJ_INIT_PARAMS):
264
271
  raise ValueError(f'消费函数 {self.publisher_params.consuming_function} 是实例方法,实例必须有 {ConstStrForClassMethod.OBJ_INIT_PARAMS} 属性')
265
272
  func_args_list[0] = {ConstStrForClassMethod.FIRST_PARAM_NAME: self.publish_params_checker.all_arg_name[0],
266
- ConstStrForClassMethod.OBJ_INIT_PARAMS: getattr(func_args[0],ConstStrForClassMethod.OBJ_INIT_PARAMS),
267
- ConstStrForClassMethod.CLS_NAME: self.publisher_params.consuming_function_class_name}
273
+ ConstStrForClassMethod.CLS_NAME: cls.__name__,
274
+ ConstStrForClassMethod.CLS_FILE: Path(sys.modules[cls.__module__].__file__).resolve().as_posix(),
275
+ ConstStrForClassMethod.OBJ_INIT_PARAMS: getattr(obj, ConstStrForClassMethod.OBJ_INIT_PARAMS),
276
+
277
+ }
268
278
 
269
279
  for index, arg in enumerate(func_args_list):
270
280
  # print(index,arg,self.publish_params_checker.position_arg_name_list)
@@ -63,7 +63,7 @@ def show_funboost_flag():
63
63
 
64
64
  logger_prompt.debug('\033[0m' + funboost_flag_str2 + '\033[0m')
65
65
 
66
- logger_prompt.debug(f'''分布式函数调度框架funboost文档地址: \033[0m https://funboost.readthedocs.io/zh/latest/ \033[0m ''')
66
+ logger_prompt.debug(f'''分布式函数调度框架funboost文档地址: \033[0m https://funboost.readthedocs.io/zh-cn/latest/ \033[0m ''')
67
67
 
68
68
 
69
69
  show_funboost_flag()
@@ -1,59 +1,59 @@
1
- from aioredis.client import Redis, StrictRedis
2
- from aioredis.connection import (
3
- BlockingConnectionPool,
4
- Connection,
5
- ConnectionPool,
6
- SSLConnection,
7
- UnixDomainSocketConnection,
8
- )
9
- from aioredis.exceptions import (
10
- AuthenticationError,
11
- AuthenticationWrongNumberOfArgsError,
12
- BusyLoadingError,
13
- ChildDeadlockedError,
14
- ConnectionError,
15
- DataError,
16
- InvalidResponse,
17
- PubSubError,
18
- ReadOnlyError,
19
- RedisError,
20
- ResponseError,
21
- TimeoutError,
22
- WatchError,
23
- )
24
- from aioredis.utils import from_url
25
-
26
-
27
- def int_or_str(value):
28
- try:
29
- return int(value)
30
- except ValueError:
31
- return value
32
-
33
-
34
- __version__ = "2.0.1"
35
- VERSION = tuple(map(int_or_str, __version__.split(".")))
36
-
37
- __all__ = [
38
- "AuthenticationError",
39
- "AuthenticationWrongNumberOfArgsError",
40
- "BlockingConnectionPool",
41
- "BusyLoadingError",
42
- "ChildDeadlockedError",
43
- "Connection",
44
- "ConnectionError",
45
- "ConnectionPool",
46
- "DataError",
47
- "from_url",
48
- "InvalidResponse",
49
- "PubSubError",
50
- "ReadOnlyError",
51
- "Redis",
52
- "RedisError",
53
- "ResponseError",
54
- "SSLConnection",
55
- "StrictRedis",
56
- "TimeoutError",
57
- "UnixDomainSocketConnection",
58
- "WatchError",
59
- ]
1
+ from aioredis.client import Redis, StrictRedis
2
+ from aioredis.connection import (
3
+ BlockingConnectionPool,
4
+ Connection,
5
+ ConnectionPool,
6
+ SSLConnection,
7
+ UnixDomainSocketConnection,
8
+ )
9
+ from aioredis.exceptions import (
10
+ AuthenticationError,
11
+ AuthenticationWrongNumberOfArgsError,
12
+ BusyLoadingError,
13
+ ChildDeadlockedError,
14
+ ConnectionError,
15
+ DataError,
16
+ InvalidResponse,
17
+ PubSubError,
18
+ ReadOnlyError,
19
+ RedisError,
20
+ ResponseError,
21
+ TimeoutError,
22
+ WatchError,
23
+ )
24
+ from aioredis.utils import from_url
25
+
26
+
27
+ def int_or_str(value):
28
+ try:
29
+ return int(value)
30
+ except ValueError:
31
+ return value
32
+
33
+
34
+ __version__ = "2.0.1"
35
+ VERSION = tuple(map(int_or_str, __version__.split(".")))
36
+
37
+ __all__ = [
38
+ "AuthenticationError",
39
+ "AuthenticationWrongNumberOfArgsError",
40
+ "BlockingConnectionPool",
41
+ "BusyLoadingError",
42
+ "ChildDeadlockedError",
43
+ "Connection",
44
+ "ConnectionError",
45
+ "ConnectionPool",
46
+ "DataError",
47
+ "from_url",
48
+ "InvalidResponse",
49
+ "PubSubError",
50
+ "ReadOnlyError",
51
+ "Redis",
52
+ "RedisError",
53
+ "ResponseError",
54
+ "SSLConnection",
55
+ "StrictRedis",
56
+ "TimeoutError",
57
+ "UnixDomainSocketConnection",
58
+ "WatchError",
59
+ ]