funboost 41.6__tar.gz → 41.8__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.
- {funboost-41.6/funboost.egg-info → funboost-41.8}/PKG-INFO +1 -1
- {funboost-41.6 → funboost-41.8}/funboost/__init__.py +2 -2
- {funboost-41.6 → funboost-41.8}/funboost/__init__old.py +1 -1
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/async_pool_executor.py +4 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/base_consumer.py +13 -9
- {funboost-41.6 → funboost-41.8}/funboost/consumers/kombu_consumer.py +1 -1
- {funboost-41.6 → funboost-41.8}/funboost/core/func_params_model.py +2 -3
- {funboost-41.6 → funboost-41.8}/funboost/publishers/kombu_publisher.py +1 -1
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_publisher_priority.py +1 -1
- {funboost-41.6 → funboost-41.8}/funboost/utils/redis_manager.py +2 -2
- {funboost-41.6 → funboost-41.8/funboost.egg-info}/PKG-INFO +1 -1
- {funboost-41.6 → funboost-41.8}/LICENSE +0 -0
- {funboost-41.6 → funboost-41.8}/MANIFEST.in +0 -0
- {funboost-41.6 → funboost-41.8}/README.md +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/__main__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/celery_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/huey_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/rq_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/constant.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/celery_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/dramatiq_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/http_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/huey_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/kafka_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/local_python_queue_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/pulsar_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_consumer_ack_able.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_consumer_priority.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_filter.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/redis_stream_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/tcp_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/udp_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/consumers/zeromq_consumer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/contrib/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/contrib/queue2queue.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/booster.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/cli/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/exceptions.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/fabric_deploy_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/function_result_status_config.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/helper_funs.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/kill_remote_task.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/loggers.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/msg_result_getter.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/core/show_funboost_flag.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/factories/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/factories/consumer_factory.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/funboost_config_deafult.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/app.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/functions.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/base_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/http_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/local_python_queue_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/queues/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/queues/peewee_queue.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/queues/sqla_queue.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/set_frame_config.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/timing_job/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/block_exit.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/bulk_operation.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/custom_pysnooper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/decorators.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/develop_log.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/expire_lock.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/json_helper.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/mongo_util.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/monkey_patches.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/mqtt_util.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/paramiko_util.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/pysnooper_ydf/utils.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/pysnooper_ydf/variables.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/restart_python.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/simple_data_class.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/time_util.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/times/__init__.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/times/version.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-41.6 → funboost-41.8}/funboost.egg-info/SOURCES.txt +0 -0
- {funboost-41.6 → funboost-41.8}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-41.6 → funboost-41.8}/funboost.egg-info/entry_points.txt +0 -0
- {funboost-41.6 → funboost-41.8}/funboost.egg-info/requires.txt +0 -0
- {funboost-41.6 → funboost-41.8}/funboost.egg-info/top_level.txt +0 -0
- {funboost-41.6 → funboost-41.8}/setup.cfg +0 -0
- {funboost-41.6 → funboost-41.8}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 41.
|
|
3
|
+
Version: 41.8
|
|
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
|
|
@@ -13,7 +13,7 @@ set_frame_config这个模块的 use_config_form_funboost_config_module() 是核
|
|
|
13
13
|
这段注释说明和使用的用户无关,只和框架开发人员有关.
|
|
14
14
|
'''
|
|
15
15
|
|
|
16
|
-
__version__ = "41.
|
|
16
|
+
__version__ = "41.8"
|
|
17
17
|
|
|
18
18
|
from funboost.set_frame_config import show_frame_config
|
|
19
19
|
|
|
@@ -61,4 +61,4 @@ from funboost.concurrent_pool.custom_threadpool_executor import show_current_thr
|
|
|
61
61
|
# set_interrupt_signal_handler()
|
|
62
62
|
|
|
63
63
|
# 有的包默认没加handlers,原始的日志不漂亮且不可跳转不知道哪里发生的。这里把warnning级别以上的日志默认加上handlers。
|
|
64
|
-
# nb_log.get_logger(name='', log_level_int=30,
|
|
64
|
+
# nb_log.get_logger(name='', log_level_int=30, _log_filename='pywarning.log')
|
|
@@ -25,7 +25,7 @@ from funboost.utils import nb_print, patch_print, LogManager, get_logger, Logger
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# 有的包默认没加handlers,原始的日志不漂亮且不可跳转不知道哪里发生的。这里把warnning级别以上的日志默认加上handlers。
|
|
28
|
-
# nb_log.get_logger(name='', log_level_int=30,
|
|
28
|
+
# nb_log.get_logger(name='', log_level_int=30, _log_filename='pywarning.log')
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class Booster(LoggerMixin):
|
|
@@ -159,6 +159,10 @@ class AsyncPoolExecutorGtPy310(AsyncPoolExecutorLtPy310):
|
|
|
159
159
|
|
|
160
160
|
AsyncPoolExecutor = AsyncPoolExecutorLtPy310 if sys.version_info.minor < 10 else AsyncPoolExecutorGtPy310
|
|
161
161
|
|
|
162
|
+
if sys.platform == "darwin": # mac 上会出错
|
|
163
|
+
import selectors
|
|
164
|
+
selectors.DefaultSelector = selectors.PollSelector
|
|
165
|
+
|
|
162
166
|
if __name__ == '__main__':
|
|
163
167
|
def test_async_pool_executor():
|
|
164
168
|
from funboost.concurrent_pool import CustomThreadPoolExecutor as ThreadPoolExecutor
|
|
@@ -164,7 +164,11 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
164
164
|
self._last_timestamp_print_msg_num = 0
|
|
165
165
|
|
|
166
166
|
self._result_persistence_helper: ResultPersistenceHelper
|
|
167
|
-
self.
|
|
167
|
+
self._check_broker_exclusive_config()
|
|
168
|
+
broker_exclusive_config_merge = dict()
|
|
169
|
+
broker_exclusive_config_merge.update(self.BROKER_EXCLUSIVE_CONFIG_DEFAULT)
|
|
170
|
+
broker_exclusive_config_merge.update(self.consumer_params.broker_exclusive_config)
|
|
171
|
+
self.consumer_params.broker_exclusive_config = broker_exclusive_config_merge
|
|
168
172
|
|
|
169
173
|
self._stop_flag = None
|
|
170
174
|
self._pause_flag = None # 暂停消费标志,从reids读取
|
|
@@ -201,11 +205,11 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
201
205
|
'code_filename': Path(self.consuming_function.__code__.co_filename).as_posix()
|
|
202
206
|
}
|
|
203
207
|
|
|
204
|
-
|
|
208
|
+
|
|
205
209
|
self._has_start_delay_task_scheduler = False
|
|
206
210
|
self._consuming_function_is_asyncio = inspect.iscoroutinefunction(self.consuming_function)
|
|
207
211
|
self.custom_init()
|
|
208
|
-
# develop_logger.warning(consumer_params.
|
|
212
|
+
# develop_logger.warning(consumer_params._log_filename)
|
|
209
213
|
self.publisher_params = PublisherParams(queue_name=consumer_params.queue_name, consuming_function=consumer_params.consuming_function,
|
|
210
214
|
broker_kind=self.BROKER_KIND, log_level=consumer_params.log_level,
|
|
211
215
|
logger_prefix=consumer_params.logger_prefix,
|
|
@@ -213,7 +217,6 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
213
217
|
log_filename=consumer_params.log_filename,
|
|
214
218
|
broker_exclusive_config=self.consumer_params.broker_exclusive_config)
|
|
215
219
|
if is_main_process:
|
|
216
|
-
print(self.consumer_params.get_str_dict())
|
|
217
220
|
self.logger.info(f'{self.queue_name} consumer 的消费者配置:\n {self.consumer_params.json_str_value()}')
|
|
218
221
|
atexit.register(self.join_shedual_task_thread)
|
|
219
222
|
|
|
@@ -232,11 +235,12 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
232
235
|
self.logger.info(f'队列 {self.queue_name} 的日志写入到 {nb_log_config_default.LOG_PATH} 文件夹的 {log_filename} 和 {nb_log.generate_error_file_name(log_filename)} 文件中')
|
|
233
236
|
|
|
234
237
|
def _check_broker_exclusive_config(self):
|
|
235
|
-
broker_exclusive_config_keys = self.
|
|
236
|
-
if
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
broker_exclusive_config_keys = self.BROKER_EXCLUSIVE_CONFIG_DEFAULT.keys()
|
|
239
|
+
if self.consumer_params.broker_exclusive_config:
|
|
240
|
+
if set(self.consumer_params.broker_exclusive_config.keys()).issubset(broker_exclusive_config_keys):
|
|
241
|
+
self.logger.info(f'当前消息队列中间件能支持特殊独有配置 {self.consumer_params.broker_exclusive_config.keys()}')
|
|
242
|
+
else:
|
|
243
|
+
self.logger.warning(f'当前消息队列中间件含有不支持的特殊配置 {self.consumer_params.broker_exclusive_config.keys()},能支持的特殊独有配置包括 {broker_exclusive_config_keys}')
|
|
240
244
|
|
|
241
245
|
def _check_monkey_patch(self):
|
|
242
246
|
if self.consumer_params.concurrent_mode == ConcurrentModeEnum.GEVENT:
|
|
@@ -175,7 +175,7 @@ Transport Options
|
|
|
175
175
|
self._middware_name = self.kombu_url.split(":")[0]
|
|
176
176
|
# logger_name = f'{self.consumer_params.logger_prefix}{self.__class__.__name__}--{self._middware_name}--{self._queue_name}'
|
|
177
177
|
# self.logger = get_logger(logger_name, log_level_int=self.consumer_params.log_level,
|
|
178
|
-
#
|
|
178
|
+
# _log_filename=f'{logger_name}.log' if self.consumer_params.create_logger_file else None,
|
|
179
179
|
# formatter_template=FunboostCommonConfig.NB_LOG_FORMATER_INDEX_FOR_CONSUMER_AND_PUBLISHER,
|
|
180
180
|
# ) #
|
|
181
181
|
if self.kombu_url.startswith('filesystem://'):
|
|
@@ -57,14 +57,13 @@ class BaseJsonAbleModel(BaseModel):
|
|
|
57
57
|
try:
|
|
58
58
|
return json.dumps(self.get_str_dict(), ensure_ascii=False, )
|
|
59
59
|
except TypeError as e:
|
|
60
|
-
return
|
|
61
|
-
|
|
60
|
+
return str(self.get_str_dict())
|
|
62
61
|
|
|
63
62
|
def json_pre(self):
|
|
64
63
|
try:
|
|
65
64
|
return json.dumps(self.get_str_dict(), ensure_ascii=False, indent=4)
|
|
66
65
|
except TypeError as e:
|
|
67
|
-
return
|
|
66
|
+
return str(self.get_str_dict())
|
|
68
67
|
|
|
69
68
|
def update_from_dict(self, dictx: dict):
|
|
70
69
|
for k, v in dictx.items():
|
|
@@ -49,7 +49,7 @@ class KombuPublisher(AbstractPublisher, ):
|
|
|
49
49
|
self._kombu_broker_url_prefix = self.kombu_url.split(":")[0]
|
|
50
50
|
# logger_name = f'{self._logger_prefix}{self.__class__.__name__}--{self._kombu_broker_url_prefix}--{self._queue_name}'
|
|
51
51
|
# self.logger = get_logger(logger_name, log_level_int=self._log_level_int,
|
|
52
|
-
#
|
|
52
|
+
# _log_filename=f'{logger_name}.log' if self._is_add_file_handler else None,
|
|
53
53
|
# formatter_template=FunboostCommonConfig.NB_LOG_FORMATER_INDEX_FOR_CONSUMER_AND_PUBLISHER,
|
|
54
54
|
# ) #
|
|
55
55
|
if self.kombu_url.startswith('filesystem://'):
|
|
@@ -37,7 +37,7 @@ class RedisPriorityPublisher(FlushRedisQueueMixin,AbstractPublisher, RedisMixin,
|
|
|
37
37
|
|
|
38
38
|
def concrete_realization_of_publish(self, msg):
|
|
39
39
|
queue_name = self.build_queue_name_by_msg(msg)
|
|
40
|
-
self.logger.debug([queue_name, msg])
|
|
40
|
+
# self.logger.debug([queue_name, msg])
|
|
41
41
|
self.redis_db_frame.rpush(queue_name, msg)
|
|
42
42
|
|
|
43
43
|
|
|
@@ -30,7 +30,7 @@ class RedisManager(object):
|
|
|
30
30
|
self._key = (host, port, db, username, password,)
|
|
31
31
|
if self._key not in self.__class__._redis_db__conn_map:
|
|
32
32
|
self.__class__._redis_db__conn_map[self._key] = redis5.Redis(host=host, port=port, db=db, username=username,
|
|
33
|
-
password=password, max_connections=
|
|
33
|
+
password=password, max_connections=1000, decode_responses=True)
|
|
34
34
|
self.redis = self.__class__._redis_db__conn_map[self._key]
|
|
35
35
|
|
|
36
36
|
def get_redis(self) -> redis5.Redis:
|
|
@@ -47,7 +47,7 @@ class AioRedisManager(object):
|
|
|
47
47
|
self._key = (host, port, db, username, password,)
|
|
48
48
|
if self._key not in self.__class__._redis_db__conn_map:
|
|
49
49
|
self.__class__._redis_db__conn_map[self._key] = AioRedis(host=host, port=port, db=db, username=username,
|
|
50
|
-
password=password, max_connections=
|
|
50
|
+
password=password, max_connections=1000, decode_responses=True)
|
|
51
51
|
self.redis = self.__class__._redis_db__conn_map[self._key]
|
|
52
52
|
|
|
53
53
|
def get_redis(self) -> AioRedis:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 41.
|
|
3
|
+
Version: 41.8
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-41.6 → funboost-41.8}/funboost/beggar_version_implementation/beggar_redis_consumer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/backup/async_pool_executor_janus.py
RENAMED
|
File without changes
|
|
File without changes
|
{funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-41.6 → funboost-41.8}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-41.6 → funboost-41.8}/funboost/factories/broker_kind__publsiher_consumer_type_map.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-41.6 → funboost-41.8}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|