PyFunceble-dev 4.3.1__tar.gz → 4.4.0__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.
Files changed (299) hide show
  1. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PKG-INFO +108 -108
  2. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/base.py +11 -3
  3. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/domain.py +3 -1
  4. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/domain_and_ip.py +2 -0
  5. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/base.py +13 -1
  6. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/base.py +10 -2
  7. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/base.py +5 -2
  8. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/utils/whois.py +7 -3
  9. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/base.py +7 -0
  10. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/producer.py +9 -3
  11. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/tester.py +5 -5
  12. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/system/launcher.py +18 -5
  13. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/utils/testing.py +9 -3
  14. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/autocontinue/csv.py +15 -1
  15. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/base.py +25 -0
  16. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/csv_base.py +3 -0
  17. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/db_base.py +14 -0
  18. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/iana.py +6 -1
  19. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/ipv4_reputation.py +7 -1
  20. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/public_suffix.py +6 -1
  21. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/user_agent.py +6 -1
  22. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/storage.py +1 -1
  23. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble_dev.egg-info/PKG-INFO +108 -108
  24. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/requirements.win.txt +1 -0
  25. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/version.yaml +2 -1
  26. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/CODE_OF_CONDUCT.md +0 -0
  27. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/CONTRIBUTING.md +0 -0
  28. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/CONTRIBUTORS.md +0 -0
  29. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/LICENSE +0 -0
  30. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/MANIFEST.in +0 -0
  31. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/__init__.py +0 -0
  32. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/__init__.py +0 -0
  33. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/__init__.py +0 -0
  34. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/__init__.py +0 -0
  35. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/base.py +0 -0
  36. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/dns.py +0 -0
  37. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/etoxic.py +0 -0
  38. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/external.py +0 -0
  39. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/parked.py +0 -0
  40. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/rules.py +0 -0
  41. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/extras/subject_switch.py +0 -0
  42. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/ip.py +0 -0
  43. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/params.py +0 -0
  44. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/status.py +0 -0
  45. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/availability/url.py +0 -0
  46. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/complex_json_encoder.py +0 -0
  47. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/params_base.py +0 -0
  48. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/__init__.py +0 -0
  49. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/domain.py +0 -0
  50. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/domain_and_ip.py +0 -0
  51. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/ip.py +0 -0
  52. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/params.py +0 -0
  53. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/status.py +0 -0
  54. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/reputation/url.py +0 -0
  55. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/status_base.py +0 -0
  56. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/__init__.py +0 -0
  57. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/domain.py +0 -0
  58. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/domain_and_ip.py +0 -0
  59. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/domain_base.py +0 -0
  60. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/ip.py +0 -0
  61. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/ipv4.py +0 -0
  62. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/ipv6.py +0 -0
  63. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/params.py +0 -0
  64. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/second_lvl_domain.py +0 -0
  65. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/status.py +0 -0
  66. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/subdomain.py +0 -0
  67. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/syntax/url.py +0 -0
  68. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/checker/utils/__init__.py +0 -0
  69. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/__init__.py +0 -0
  70. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/__init__.py +0 -0
  71. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/base.py +0 -0
  72. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/exceptions.py +0 -0
  73. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/github_actions.py +0 -0
  74. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/gitlab_ci.py +0 -0
  75. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/jenkins.py +0 -0
  76. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/standalone.py +0 -0
  77. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/travis_ci.py +0 -0
  78. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/continuous_integration/utils.py +0 -0
  79. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/credential_loader.py +0 -0
  80. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/__init__.py +0 -0
  81. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/clean.py +0 -0
  82. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/iana.py +0 -0
  83. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/production.py +0 -0
  84. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/public_suffix.py +0 -0
  85. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/pyfunceble/__init__.py +0 -0
  86. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/pyfunceble/argsparser.py +0 -0
  87. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/entry_points/pyfunceble/cli.py +0 -0
  88. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/execution_time.py +0 -0
  89. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/facility.py +0 -0
  90. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/factory.py +0 -0
  91. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/file_preloader.py +0 -0
  92. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/__init__.py +0 -0
  93. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/cleanup.py +0 -0
  94. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/counter.py +0 -0
  95. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/dir_base.py +0 -0
  96. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/dir_structure/__init__.py +0 -0
  97. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/dir_structure/backup.py +0 -0
  98. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/dir_structure/base.py +0 -0
  99. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/dir_structure/restore.py +0 -0
  100. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/json_base.py +0 -0
  101. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/printer/__init__.py +0 -0
  102. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/printer/base.py +0 -0
  103. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/printer/file.py +0 -0
  104. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/printer/stdout.py +0 -0
  105. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/registrar_counter.py +0 -0
  106. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/filesystem/status_file.py +0 -0
  107. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/__init__.py +0 -0
  108. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/alembic.py +0 -0
  109. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/base.py +0 -0
  110. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/csv_file/__init__.py +0 -0
  111. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/csv_file/base.py +0 -0
  112. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/csv_file/inactive_source_delete.py +0 -0
  113. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/csv_file/whois_registrar_add.py +0 -0
  114. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/db_base.py +0 -0
  115. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/file_cleanup/__init__.py +0 -0
  116. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/file_cleanup/base.py +0 -0
  117. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/file_cleanup/hashes_file.py +0 -0
  118. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/file_cleanup/mining_file.py +0 -0
  119. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/file_cleanup/production_config_file.py +0 -0
  120. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/json2csv/__init__.py +0 -0
  121. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/json2csv/base.py +0 -0
  122. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/json2csv/inactive.py +0 -0
  123. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/json2csv/whois.py +0 -0
  124. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/mariadb/__init__.py +0 -0
  125. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/mariadb/base.py +0 -0
  126. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/mariadb/file_and_status.py +0 -0
  127. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/migrators/mariadb/whois_record_idna_subject.py +0 -0
  128. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/__init__.py +0 -0
  129. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/chancy_producer.py +0 -0
  130. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/chancy_tester.py +0 -0
  131. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/dir_files_sorter.py +0 -0
  132. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/file_sorter.py +0 -0
  133. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/migrator.py +0 -0
  134. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/miner.py +0 -0
  135. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/producer.py +0 -0
  136. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/tester.py +0 -0
  137. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/__init__.py +0 -0
  138. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/base.py +0 -0
  139. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/chancy_producer.py +0 -0
  140. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/chancy_tester.py +0 -0
  141. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/dir_files_sorter.py +0 -0
  142. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/file_sorter.py +0 -0
  143. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/file_sorter_base.py +0 -0
  144. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/migrator.py +0 -0
  145. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/processes/workers/miner.py +0 -0
  146. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/scripts/__init__.py +0 -0
  147. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/scripts/iana.py +0 -0
  148. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/scripts/production.py +0 -0
  149. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/scripts/public_suffix.py +0 -0
  150. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/storage.py +0 -0
  151. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/storage_facility.py +0 -0
  152. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/system/__init__.py +0 -0
  153. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/system/base.py +0 -0
  154. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/system/integrator.py +0 -0
  155. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/utils/__init__.py +0 -0
  156. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/utils/ascii_logo.py +0 -0
  157. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/utils/sort.py +0 -0
  158. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/utils/stdout.py +0 -0
  159. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/cli/utils/version.py +0 -0
  160. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/config/__init__.py +0 -0
  161. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/config/compare.py +0 -0
  162. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/config/loader.py +0 -0
  163. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/__init__.py +0 -0
  164. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/adblock_input_line2subject.py +0 -0
  165. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/base.py +0 -0
  166. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/cidr2subject.py +0 -0
  167. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/input_line2subject.py +0 -0
  168. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/internal_url.py +0 -0
  169. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/rpz_input_line2subject.py +0 -0
  170. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/rpz_policy2subject.py +0 -0
  171. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/subject2complements.py +0 -0
  172. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/url2netloc.py +0 -0
  173. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/converter/wildcard2subject.py +0 -0
  174. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/__init__.py +0 -0
  175. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/__init__.py +0 -0
  176. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/__init__.py +0 -0
  177. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/env.py +0 -0
  178. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/script.py.mako +0 -0
  179. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/35c79626ecb9_fix_some_columns.py +0 -0
  180. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/3a4c55a9320d_add_continue_table.py +0 -0
  181. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/3d6f4a33cdb2_add_inactive_table.py +0 -0
  182. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/45713fea8097_deletion_uneeded_columns_from_whois_.py +0 -0
  183. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/459a0d7b8f09_add_idna_subject_column_into_whois.py +0 -0
  184. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/6f4729deaf03_delete_inactive_source_column.py +0 -0
  185. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/7bcf7fa64ba1_rename_created_to_created_at_and.py +0 -0
  186. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/83ada95132bf_delete_the_file_table.py +0 -0
  187. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/912bbcb77a6c_add_registrar_column.py +0 -0
  188. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/95dc17ddd729_introduction_of_the_session_id_column.py +0 -0
  189. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/__init__.py +0 -0
  190. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/ade87195b0a0_base.py +0 -0
  191. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/bef7bcaac3f2_make_id_a_bigint.py +0 -0
  192. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/d8893cd406db_allow_whois_record_to_be_empty_null.py +0 -0
  193. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/mysql/versions/e04e8301d1a2_deletion_of_the_mined_table.py +0 -0
  194. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/postgresql/__init__.py +0 -0
  195. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/postgresql/env.py +0 -0
  196. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/postgresql/script.py.mako +0 -0
  197. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/postgresql/versions/__init__.py +0 -0
  198. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/alembic/postgresql/versions/a32ac5d66eee_initial_version.py +0 -0
  199. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/infrastructure/.PyFunceble_production.yaml +0 -0
  200. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/infrastructure/__init__.py +0 -0
  201. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/data/infrastructure/dir_structure_production.json +0 -0
  202. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/__init__.py +0 -0
  203. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/credential/__init__.py +0 -0
  204. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/credential/base.py +0 -0
  205. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/credential/mariadb.py +0 -0
  206. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/credential/mysql.py +0 -0
  207. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/credential/postgresql.py +0 -0
  208. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/schemas/__init__.py +0 -0
  209. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/schemas/autocontinue.py +0 -0
  210. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/schemas/inactive.py +0 -0
  211. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/schemas/status.py +0 -0
  212. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/schemas/whois_record.py +0 -0
  213. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/session.py +0 -0
  214. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/sqlalchemy/__init__.py +0 -0
  215. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/sqlalchemy/all_schemas.py +0 -0
  216. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/database/sqlalchemy/base_schema.py +0 -0
  217. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/__init__.py +0 -0
  218. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/autocontinue/__init__.py +0 -0
  219. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/autocontinue/base.py +0 -0
  220. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/autocontinue/sql.py +0 -0
  221. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/inactive/__init__.py +0 -0
  222. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/inactive/base.py +0 -0
  223. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/inactive/csv.py +0 -0
  224. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/inactive/sql.py +0 -0
  225. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/sql_base.py +0 -0
  226. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/whois/__init__.py +0 -0
  227. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/whois/base.py +0 -0
  228. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/whois/csv.py +0 -0
  229. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/dataset/whois/sql.py +0 -0
  230. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/__init__.py +0 -0
  231. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/base.py +0 -0
  232. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/exceptions.py +0 -0
  233. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/iana.py +0 -0
  234. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/ipv4_reputation.py +0 -0
  235. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/public_suffix.py +0 -0
  236. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/downloader/user_agents.py +0 -0
  237. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/exceptions.py +0 -0
  238. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/facility.py +0 -0
  239. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/factory.py +0 -0
  240. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/__init__.py +0 -0
  241. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/command.py +0 -0
  242. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/dict.py +0 -0
  243. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/directory.py +0 -0
  244. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/download.py +0 -0
  245. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/environment_variable.py +0 -0
  246. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/exceptions.py +0 -0
  247. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/file.py +0 -0
  248. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/hash.py +0 -0
  249. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/list.py +0 -0
  250. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/merge.py +0 -0
  251. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/helpers/regex.py +0 -0
  252. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/logger.py +0 -0
  253. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/__init__.py +0 -0
  254. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/dns/__init__.py +0 -0
  255. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/dns/nameserver.py +0 -0
  256. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/dns/query_tool.py +0 -0
  257. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/dns/resolver.py +0 -0
  258. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/http_status_code.py +0 -0
  259. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/netinfo/__init__.py +0 -0
  260. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/netinfo/address.py +0 -0
  261. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/netinfo/base.py +0 -0
  262. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/netinfo/hostbyaddr.py +0 -0
  263. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/platform.py +0 -0
  264. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/record/__init__.py +0 -0
  265. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/record/base.py +0 -0
  266. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/record/dns.py +0 -0
  267. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/record/whois.py +0 -0
  268. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/requests/__init__.py +0 -0
  269. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/requests/adapter/__init__.py +0 -0
  270. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/requests/adapter/base.py +0 -0
  271. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/requests/adapter/http.py +0 -0
  272. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/requests/adapter/https.py +0 -0
  273. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/requests/requester.py +0 -0
  274. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/__init__.py +0 -0
  275. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/converter/__init__.py +0 -0
  276. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/converter/base.py +0 -0
  277. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/converter/digit2digits.py +0 -0
  278. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/converter/expiration_date.py +0 -0
  279. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/converter/month2unified.py +0 -0
  280. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/converter/registrar.py +0 -0
  281. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/query/whois/query_tool.py +0 -0
  282. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/sessions.py +0 -0
  283. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/storage_facility.py +0 -0
  284. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/utils/__init__.py +0 -0
  285. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/utils/platform.py +0 -0
  286. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/utils/profile.py +0 -0
  287. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble/utils/version.py +0 -0
  288. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble_dev.egg-info/SOURCES.txt +0 -0
  289. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble_dev.egg-info/dependency_links.txt +0 -0
  290. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble_dev.egg-info/entry_points.txt +0 -0
  291. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble_dev.egg-info/requires.txt +107 -107
  292. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/PyFunceble_dev.egg-info/top_level.txt +0 -0
  293. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/README.md +0 -0
  294. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/requirements.dev.txt +0 -0
  295. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/requirements.docs.txt +0 -0
  296. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/requirements.test.txt +0 -0
  297. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/requirements.txt +0 -0
  298. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/setup.cfg +0 -0
  299. {pyfunceble_dev-4.3.1 → pyfunceble_dev-4.4.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFunceble-dev
3
- Version: 4.3.1
3
+ Version: 4.4.0
4
4
  Summary: The tool to check the availability or syntax of domain, IP or URL.
5
5
  Home-page: https://github.com/funilrys/PyFunceble
6
6
  Author: funilrys
@@ -21,179 +21,179 @@ Classifier: Programming Language :: Python :: 3
21
21
  Requires-Python: >=3.10, <4
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
- Requires-Dist: dnspython[DOH]~=2.8.0
25
- Requires-Dist: PyMySQL
24
+ Requires-Dist: pyfunceble-process-manager==1.0.10
26
25
  Requires-Dist: python-box[all]~=7.3.2
27
- Requires-Dist: requests[socks]<3
28
- Requires-Dist: domain2idna~=1.12.0
26
+ Requires-Dist: PyYAML
29
27
  Requires-Dist: setuptools>=65.5.1
30
- Requires-Dist: python-dotenv
28
+ Requires-Dist: alembic
29
+ Requires-Dist: domain2idna~=1.12.0
31
30
  Requires-Dist: SQLAlchemy~=2.0
32
31
  Requires-Dist: colorama
33
- Requires-Dist: PyYAML
34
- Requires-Dist: packaging
35
- Requires-Dist: pyfunceble-process-manager==1.0.10
36
32
  Requires-Dist: shtab
37
- Requires-Dist: alembic
33
+ Requires-Dist: PyMySQL
38
34
  Requires-Dist: inflection
35
+ Requires-Dist: packaging
36
+ Requires-Dist: requests[socks]<3
37
+ Requires-Dist: dnspython[DOH]~=2.8.0
38
+ Requires-Dist: python-dotenv
39
39
  Provides-Extra: docs
40
- Requires-Dist: mkdocs-literate-nav~=0.6; extra == "docs"
40
+ Requires-Dist: mkdocs-material~=9.5; extra == "docs"
41
41
  Requires-Dist: mkdocs-section-index~=0.3; extra == "docs"
42
- Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "docs"
43
- Requires-Dist: zipp>=3.19.1; extra == "docs"
42
+ Requires-Dist: mkdocs-literate-nav~=0.6; extra == "docs"
44
43
  Requires-Dist: mkdocs-gen-files~=0.5; extra == "docs"
45
44
  Requires-Dist: mkdocs~=1.5; extra == "docs"
46
- Requires-Dist: pymdown-extensions~=10.9; extra == "docs"
47
- Requires-Dist: mkdocstrings[python]~=1.0; extra == "docs"
45
+ Requires-Dist: zipp>=3.19.1; extra == "docs"
46
+ Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "docs"
48
47
  Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "docs"
49
48
  Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "docs"
50
- Requires-Dist: mkdocs-material~=9.5; extra == "docs"
49
+ Requires-Dist: mkdocstrings[python]~=1.0; extra == "docs"
50
+ Requires-Dist: pymdown-extensions~=10.9; extra == "docs"
51
51
  Provides-Extra: dev
52
- Requires-Dist: flake8; extra == "dev"
53
- Requires-Dist: isort; extra == "dev"
54
52
  Requires-Dist: black; extra == "dev"
55
53
  Requires-Dist: pylint; extra == "dev"
54
+ Requires-Dist: flake8; extra == "dev"
56
55
  Requires-Dist: bandit; extra == "dev"
56
+ Requires-Dist: isort; extra == "dev"
57
57
  Provides-Extra: test
58
- Requires-Dist: coverage; extra == "test"
59
58
  Requires-Dist: tox; extra == "test"
59
+ Requires-Dist: coverage; extra == "test"
60
60
  Provides-Extra: psql
61
- Requires-Dist: dnspython[DOH]~=2.8.0; extra == "psql"
62
- Requires-Dist: PyMySQL; extra == "psql"
61
+ Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "psql"
63
62
  Requires-Dist: python-box[all]~=7.3.2; extra == "psql"
64
- Requires-Dist: requests[socks]<3; extra == "psql"
65
- Requires-Dist: domain2idna~=1.12.0; extra == "psql"
63
+ Requires-Dist: PyYAML; extra == "psql"
66
64
  Requires-Dist: setuptools>=65.5.1; extra == "psql"
67
- Requires-Dist: python-dotenv; extra == "psql"
65
+ Requires-Dist: psycopg2; extra == "psql"
66
+ Requires-Dist: alembic; extra == "psql"
67
+ Requires-Dist: domain2idna~=1.12.0; extra == "psql"
68
68
  Requires-Dist: SQLAlchemy~=2.0; extra == "psql"
69
69
  Requires-Dist: colorama; extra == "psql"
70
- Requires-Dist: PyYAML; extra == "psql"
71
- Requires-Dist: psycopg2; extra == "psql"
72
- Requires-Dist: packaging; extra == "psql"
73
- Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "psql"
74
70
  Requires-Dist: shtab; extra == "psql"
75
- Requires-Dist: alembic; extra == "psql"
71
+ Requires-Dist: PyMySQL; extra == "psql"
76
72
  Requires-Dist: inflection; extra == "psql"
73
+ Requires-Dist: packaging; extra == "psql"
74
+ Requires-Dist: requests[socks]<3; extra == "psql"
75
+ Requires-Dist: dnspython[DOH]~=2.8.0; extra == "psql"
76
+ Requires-Dist: python-dotenv; extra == "psql"
77
77
  Provides-Extra: psql-binary
78
- Requires-Dist: dnspython[DOH]~=2.8.0; extra == "psql-binary"
79
- Requires-Dist: psycopg2-binary; extra == "psql-binary"
80
- Requires-Dist: PyMySQL; extra == "psql-binary"
78
+ Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "psql-binary"
81
79
  Requires-Dist: python-box[all]~=7.3.2; extra == "psql-binary"
82
- Requires-Dist: requests[socks]<3; extra == "psql-binary"
83
- Requires-Dist: domain2idna~=1.12.0; extra == "psql-binary"
80
+ Requires-Dist: PyYAML; extra == "psql-binary"
84
81
  Requires-Dist: setuptools>=65.5.1; extra == "psql-binary"
85
- Requires-Dist: python-dotenv; extra == "psql-binary"
82
+ Requires-Dist: alembic; extra == "psql-binary"
83
+ Requires-Dist: domain2idna~=1.12.0; extra == "psql-binary"
86
84
  Requires-Dist: SQLAlchemy~=2.0; extra == "psql-binary"
87
85
  Requires-Dist: colorama; extra == "psql-binary"
88
- Requires-Dist: PyYAML; extra == "psql-binary"
89
- Requires-Dist: packaging; extra == "psql-binary"
90
- Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "psql-binary"
91
86
  Requires-Dist: shtab; extra == "psql-binary"
92
- Requires-Dist: alembic; extra == "psql-binary"
87
+ Requires-Dist: PyMySQL; extra == "psql-binary"
93
88
  Requires-Dist: inflection; extra == "psql-binary"
89
+ Requires-Dist: psycopg2-binary; extra == "psql-binary"
90
+ Requires-Dist: packaging; extra == "psql-binary"
91
+ Requires-Dist: requests[socks]<3; extra == "psql-binary"
92
+ Requires-Dist: dnspython[DOH]~=2.8.0; extra == "psql-binary"
93
+ Requires-Dist: python-dotenv; extra == "psql-binary"
94
94
  Provides-Extra: postgresql
95
- Requires-Dist: dnspython[DOH]~=2.8.0; extra == "postgresql"
96
- Requires-Dist: PyMySQL; extra == "postgresql"
95
+ Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "postgresql"
97
96
  Requires-Dist: python-box[all]~=7.3.2; extra == "postgresql"
98
- Requires-Dist: requests[socks]<3; extra == "postgresql"
99
- Requires-Dist: domain2idna~=1.12.0; extra == "postgresql"
97
+ Requires-Dist: PyYAML; extra == "postgresql"
100
98
  Requires-Dist: setuptools>=65.5.1; extra == "postgresql"
101
- Requires-Dist: python-dotenv; extra == "postgresql"
99
+ Requires-Dist: psycopg2; extra == "postgresql"
100
+ Requires-Dist: alembic; extra == "postgresql"
101
+ Requires-Dist: domain2idna~=1.12.0; extra == "postgresql"
102
102
  Requires-Dist: SQLAlchemy~=2.0; extra == "postgresql"
103
103
  Requires-Dist: colorama; extra == "postgresql"
104
- Requires-Dist: PyYAML; extra == "postgresql"
105
- Requires-Dist: psycopg2; extra == "postgresql"
106
- Requires-Dist: packaging; extra == "postgresql"
107
- Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "postgresql"
108
104
  Requires-Dist: shtab; extra == "postgresql"
109
- Requires-Dist: alembic; extra == "postgresql"
105
+ Requires-Dist: PyMySQL; extra == "postgresql"
110
106
  Requires-Dist: inflection; extra == "postgresql"
107
+ Requires-Dist: packaging; extra == "postgresql"
108
+ Requires-Dist: requests[socks]<3; extra == "postgresql"
109
+ Requires-Dist: dnspython[DOH]~=2.8.0; extra == "postgresql"
110
+ Requires-Dist: python-dotenv; extra == "postgresql"
111
111
  Provides-Extra: postgresql-binary
112
- Requires-Dist: dnspython[DOH]~=2.8.0; extra == "postgresql-binary"
113
- Requires-Dist: psycopg2-binary; extra == "postgresql-binary"
114
- Requires-Dist: PyMySQL; extra == "postgresql-binary"
112
+ Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "postgresql-binary"
115
113
  Requires-Dist: python-box[all]~=7.3.2; extra == "postgresql-binary"
116
- Requires-Dist: requests[socks]<3; extra == "postgresql-binary"
117
- Requires-Dist: domain2idna~=1.12.0; extra == "postgresql-binary"
114
+ Requires-Dist: PyYAML; extra == "postgresql-binary"
118
115
  Requires-Dist: setuptools>=65.5.1; extra == "postgresql-binary"
119
- Requires-Dist: python-dotenv; extra == "postgresql-binary"
116
+ Requires-Dist: alembic; extra == "postgresql-binary"
117
+ Requires-Dist: domain2idna~=1.12.0; extra == "postgresql-binary"
120
118
  Requires-Dist: SQLAlchemy~=2.0; extra == "postgresql-binary"
121
119
  Requires-Dist: colorama; extra == "postgresql-binary"
122
- Requires-Dist: PyYAML; extra == "postgresql-binary"
123
- Requires-Dist: packaging; extra == "postgresql-binary"
124
- Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "postgresql-binary"
125
120
  Requires-Dist: shtab; extra == "postgresql-binary"
126
- Requires-Dist: alembic; extra == "postgresql-binary"
121
+ Requires-Dist: PyMySQL; extra == "postgresql-binary"
127
122
  Requires-Dist: inflection; extra == "postgresql-binary"
123
+ Requires-Dist: psycopg2-binary; extra == "postgresql-binary"
124
+ Requires-Dist: packaging; extra == "postgresql-binary"
125
+ Requires-Dist: requests[socks]<3; extra == "postgresql-binary"
126
+ Requires-Dist: dnspython[DOH]~=2.8.0; extra == "postgresql-binary"
127
+ Requires-Dist: python-dotenv; extra == "postgresql-binary"
128
128
  Provides-Extra: full
129
- Requires-Dist: python-box[all]~=7.3.2; extra == "full"
130
- Requires-Dist: flake8; extra == "full"
131
- Requires-Dist: mkdocs-literate-nav~=0.6; extra == "full"
132
- Requires-Dist: domain2idna~=1.12.0; extra == "full"
133
- Requires-Dist: tox; extra == "full"
134
- Requires-Dist: SQLAlchemy~=2.0; extra == "full"
135
- Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "full"
129
+ Requires-Dist: PyYAML; extra == "full"
136
130
  Requires-Dist: mkdocs-gen-files~=0.5; extra == "full"
131
+ Requires-Dist: shtab; extra == "full"
132
+ Requires-Dist: PyMySQL; extra == "full"
133
+ Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "full"
134
+ Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "full"
135
+ Requires-Dist: tox; extra == "full"
136
+ Requires-Dist: bandit; extra == "full"
137
137
  Requires-Dist: isort; extra == "full"
138
+ Requires-Dist: mkdocs-material~=9.5; extra == "full"
139
+ Requires-Dist: mkdocs-section-index~=0.3; extra == "full"
140
+ Requires-Dist: mkdocs~=1.5; extra == "full"
141
+ Requires-Dist: SQLAlchemy~=2.0; extra == "full"
138
142
  Requires-Dist: coverage; extra == "full"
139
- Requires-Dist: mkdocstrings[python]~=1.0; extra == "full"
140
- Requires-Dist: alembic; extra == "full"
141
143
  Requires-Dist: inflection; extra == "full"
142
144
  Requires-Dist: dnspython[DOH]~=2.8.0; extra == "full"
143
- Requires-Dist: bandit; extra == "full"
144
- Requires-Dist: PyMySQL; extra == "full"
145
+ Requires-Dist: pymdown-extensions~=10.9; extra == "full"
146
+ Requires-Dist: python-box[all]~=7.3.2; extra == "full"
147
+ Requires-Dist: mkdocs-literate-nav~=0.6; extra == "full"
148
+ Requires-Dist: alembic; extra == "full"
145
149
  Requires-Dist: colorama; extra == "full"
146
- Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "full"
147
- Requires-Dist: zipp>=3.19.1; extra == "full"
148
- Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "full"
149
- Requires-Dist: mkdocs~=1.5; extra == "full"
150
- Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "full"
151
- Requires-Dist: setuptools>=65.5.1; extra == "full"
152
- Requires-Dist: python-dotenv; extra == "full"
153
- Requires-Dist: mkdocs-section-index~=0.3; extra == "full"
154
- Requires-Dist: PyYAML; extra == "full"
155
150
  Requires-Dist: packaging; extra == "full"
156
- Requires-Dist: pymdown-extensions~=10.9; extra == "full"
157
- Requires-Dist: pylint; extra == "full"
158
151
  Requires-Dist: requests[socks]<3; extra == "full"
159
- Requires-Dist: shtab; extra == "full"
152
+ Requires-Dist: python-dotenv; extra == "full"
153
+ Requires-Dist: mkdocstrings[python]~=1.0; extra == "full"
154
+ Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "full"
160
155
  Requires-Dist: black; extra == "full"
161
- Requires-Dist: mkdocs-material~=9.5; extra == "full"
156
+ Requires-Dist: setuptools>=65.5.1; extra == "full"
157
+ Requires-Dist: domain2idna~=1.12.0; extra == "full"
158
+ Requires-Dist: zipp>=3.19.1; extra == "full"
159
+ Requires-Dist: flake8; extra == "full"
160
+ Requires-Dist: pylint; extra == "full"
161
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "full"
162
162
  Provides-Extra: all
163
- Requires-Dist: psycopg2-binary; extra == "all"
164
- Requires-Dist: python-box[all]~=7.3.2; extra == "all"
165
- Requires-Dist: flake8; extra == "all"
166
- Requires-Dist: mkdocs-literate-nav~=0.6; extra == "all"
167
- Requires-Dist: domain2idna~=1.12.0; extra == "all"
168
- Requires-Dist: tox; extra == "all"
169
- Requires-Dist: SQLAlchemy~=2.0; extra == "all"
170
- Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "all"
163
+ Requires-Dist: PyYAML; extra == "all"
171
164
  Requires-Dist: mkdocs-gen-files~=0.5; extra == "all"
165
+ Requires-Dist: shtab; extra == "all"
166
+ Requires-Dist: PyMySQL; extra == "all"
167
+ Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "all"
168
+ Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "all"
169
+ Requires-Dist: tox; extra == "all"
170
+ Requires-Dist: bandit; extra == "all"
172
171
  Requires-Dist: isort; extra == "all"
172
+ Requires-Dist: mkdocs-material~=9.5; extra == "all"
173
+ Requires-Dist: mkdocs-section-index~=0.3; extra == "all"
174
+ Requires-Dist: mkdocs~=1.5; extra == "all"
175
+ Requires-Dist: SQLAlchemy~=2.0; extra == "all"
173
176
  Requires-Dist: coverage; extra == "all"
174
- Requires-Dist: mkdocstrings[python]~=1.0; extra == "all"
175
- Requires-Dist: alembic; extra == "all"
176
177
  Requires-Dist: inflection; extra == "all"
177
178
  Requires-Dist: dnspython[DOH]~=2.8.0; extra == "all"
178
- Requires-Dist: bandit; extra == "all"
179
- Requires-Dist: PyMySQL; extra == "all"
179
+ Requires-Dist: pymdown-extensions~=10.9; extra == "all"
180
+ Requires-Dist: python-box[all]~=7.3.2; extra == "all"
181
+ Requires-Dist: mkdocs-literate-nav~=0.6; extra == "all"
182
+ Requires-Dist: alembic; extra == "all"
180
183
  Requires-Dist: colorama; extra == "all"
181
- Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "all"
182
- Requires-Dist: zipp>=3.19.1; extra == "all"
183
- Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "all"
184
- Requires-Dist: mkdocs~=1.5; extra == "all"
185
- Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "all"
186
- Requires-Dist: setuptools>=65.5.1; extra == "all"
187
- Requires-Dist: python-dotenv; extra == "all"
188
- Requires-Dist: mkdocs-section-index~=0.3; extra == "all"
189
- Requires-Dist: PyYAML; extra == "all"
190
184
  Requires-Dist: packaging; extra == "all"
191
- Requires-Dist: pymdown-extensions~=10.9; extra == "all"
192
- Requires-Dist: pylint; extra == "all"
193
185
  Requires-Dist: requests[socks]<3; extra == "all"
194
- Requires-Dist: shtab; extra == "all"
186
+ Requires-Dist: python-dotenv; extra == "all"
187
+ Requires-Dist: mkdocstrings[python]~=1.0; extra == "all"
188
+ Requires-Dist: pyfunceble-process-manager==1.0.10; extra == "all"
195
189
  Requires-Dist: black; extra == "all"
196
- Requires-Dist: mkdocs-material~=9.5; extra == "all"
190
+ Requires-Dist: setuptools>=65.5.1; extra == "all"
191
+ Requires-Dist: domain2idna~=1.12.0; extra == "all"
192
+ Requires-Dist: zipp>=3.19.1; extra == "all"
193
+ Requires-Dist: flake8; extra == "all"
194
+ Requires-Dist: pylint; extra == "all"
195
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "all"
196
+ Requires-Dist: psycopg2-binary; extra == "all"
197
197
  Dynamic: author
198
198
  Dynamic: author-email
199
199
  Dynamic: classifier
@@ -54,7 +54,7 @@ License:
54
54
 
55
55
  import multiprocessing
56
56
  from datetime import datetime
57
- from typing import Dict, List, Optional
57
+ from typing import Any, Dict, List, Optional
58
58
 
59
59
  from sqlalchemy.orm import Session
60
60
 
@@ -110,8 +110,12 @@ class AvailabilityCheckerBase(CheckerBase):
110
110
  Optional, Activates/Disables the check of the status before the actual
111
111
  status gathering.
112
112
  :param bool use_whois_db:
113
- Optional, Activates/Disable the usage of a local database to store the
113
+ Optional, Activates/Disables the usage of a local database to store the
114
114
  WHOIS datasets.
115
+ :param bool use_platform:
116
+ Optional, Activates/Disables the usage of the platform features.
117
+ :param multiprocessing.Lock shared_lock:
118
+ Optional, The shared lock to use to access shared resources.
115
119
  """
116
120
 
117
121
  # pylint: disable=too-many-public-methods, too-many-instance-attributes
@@ -160,6 +164,7 @@ class AvailabilityCheckerBase(CheckerBase):
160
164
  db_session: Optional[Session] = None,
161
165
  use_whois_db: Optional[bool] = None,
162
166
  use_platform: Optional[bool] = None,
167
+ shared_lock: Optional[Any] = None,
163
168
  ) -> None:
164
169
  self.dns_query_tool = DNSQueryTool()
165
170
  self.whois_query_tool = WhoisQueryTool()
@@ -226,6 +231,7 @@ class AvailabilityCheckerBase(CheckerBase):
226
231
  do_syntax_check_first=do_syntax_check_first,
227
232
  db_session=db_session,
228
233
  use_platform=use_platform,
234
+ shared_lock=shared_lock,
229
235
  )
230
236
 
231
237
  @property
@@ -761,7 +767,9 @@ class AvailabilityCheckerBase(CheckerBase):
761
767
  if (
762
768
  PyFunceble.facility.ConfigLoader.is_already_loaded() and self.use_whois_db
763
769
  ): # pragma: no cover ## Not interesting enough to spend time on it.
764
- whois_object = get_whois_dataset_object(db_session=self.db_session)
770
+ whois_object = get_whois_dataset_object(
771
+ db_session=self.db_session, shared_lock=self.shared_lock
772
+ )
765
773
  known_record = whois_object[self.subject]
766
774
 
767
775
  if known_record and not isinstance(known_record, dict):
@@ -115,7 +115,9 @@ class DomainAvailabilityChecker(AvailabilityCheckerBase):
115
115
  self.status.idna_subject,
116
116
  )
117
117
 
118
- lookup_result = DomainReputationChecker(self.status.idna_subject).get_status()
118
+ lookup_result = DomainReputationChecker(
119
+ self.status.idna_subject, shared_lock=self.shared_lock
120
+ ).get_status()
119
121
 
120
122
  # pylint: disable=no-member
121
123
  if lookup_result and lookup_result.is_malicious():
@@ -112,6 +112,7 @@ class DomainAndIPAvailabilityChecker(AvailabilityCheckerBase):
112
112
  db_session=self.db_session,
113
113
  use_whois_db=self.use_whois_db,
114
114
  use_platform=self.use_platform,
115
+ shared_lock=self.shared_lock,
115
116
  )
116
117
  else:
117
118
  query_object = DomainAvailabilityChecker(
@@ -126,6 +127,7 @@ class DomainAndIPAvailabilityChecker(AvailabilityCheckerBase):
126
127
  db_session=self.db_session,
127
128
  use_whois_db=self.use_whois_db,
128
129
  use_platform=self.use_platform,
130
+ shared_lock=self.shared_lock,
129
131
  )
130
132
 
131
133
  query_object.dns_query_tool = self.dns_query_tool
@@ -52,7 +52,7 @@ License:
52
52
 
53
53
  import datetime
54
54
  import functools
55
- from typing import Optional
55
+ from typing import Any, Optional
56
56
 
57
57
  import domain2idna
58
58
  from sqlalchemy.orm import Session
@@ -77,6 +77,12 @@ class CheckerBase:
77
77
 
78
78
  .. warning::
79
79
  This does not apply to the syntax checker - itself.
80
+ :param Session db_session:
81
+ Optional, The database session to use.
82
+ :param bool use_platform:
83
+ Optional, Authorizes the usage of the platform.
84
+ :param Any shared_lock:
85
+ Optional, The shared lock to use to access shared resources.
80
86
  """
81
87
 
82
88
  STD_DO_SYNTAX_CHECK_FIRST: bool = False
@@ -97,6 +103,8 @@ class CheckerBase:
97
103
  status: Optional[CheckerStatusBase] = None
98
104
  params: Optional[CheckerParamsBase] = None
99
105
 
106
+ shared_lock: Optional[Any] = None
107
+
100
108
  def __init__(
101
109
  self,
102
110
  subject: Optional[str] = None,
@@ -104,6 +112,7 @@ class CheckerBase:
104
112
  do_syntax_check_first: Optional[bool] = None,
105
113
  db_session: Optional[Session] = None,
106
114
  use_platform: Optional[bool] = None,
115
+ shared_lock: Optional[Any] = None,
107
116
  ) -> None:
108
117
  self.platform_query_tool = PlatformQueryTool()
109
118
  self.url2netloc = Url2Netloc()
@@ -115,6 +124,9 @@ class CheckerBase:
115
124
  if self.status is None:
116
125
  self.status = CheckerStatusBase()
117
126
 
127
+ if shared_lock is not None:
128
+ self.shared_lock = shared_lock
129
+
118
130
  if subject is not None:
119
131
  self.subject = subject
120
132
 
@@ -50,7 +50,7 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- from typing import List, Optional
53
+ from typing import Any, List, Optional
54
54
 
55
55
  from sqlalchemy.orm import Session
56
56
 
@@ -75,6 +75,12 @@ class ReputationCheckerBase(CheckerBase):
75
75
  :param bool do_syntax_check_first:
76
76
  Optional, Activates/Disables the check of the status before the actual
77
77
  status gathering.
78
+ :param Session db_session:
79
+ Optional, The database session to use.
80
+ :param bool use_platform:
81
+ Optional, Authorizes the usage of the platform.
82
+ :param Any shared_lock:
83
+ Optional, The shared lock to use to access shared resources.
78
84
  """
79
85
 
80
86
  dns_query_tool: Optional[DNSQueryTool] = None
@@ -92,9 +98,10 @@ class ReputationCheckerBase(CheckerBase):
92
98
  do_syntax_check_first: Optional[bool] = None,
93
99
  db_session: Optional[Session] = None,
94
100
  use_platform: Optional[bool] = None,
101
+ shared_lock: Optional[Any] = None,
95
102
  ) -> None:
96
103
  self.dns_query_tool = DNSQueryTool()
97
- self.ipv4_reputation_query_tool = IPV4ReputationDataset()
104
+ self.ipv4_reputation_query_tool = IPV4ReputationDataset(shared_lock=shared_lock)
98
105
  self.domain_syntax_checker = DomainSyntaxChecker()
99
106
  self.ip_syntax_checker = IPSyntaxChecker()
100
107
  self.url_syntax_checker = URLSyntaxChecker()
@@ -110,6 +117,7 @@ class ReputationCheckerBase(CheckerBase):
110
117
  do_syntax_check_first=do_syntax_check_first,
111
118
  db_session=db_session,
112
119
  use_platform=use_platform,
120
+ shared_lock=shared_lock,
113
121
  )
114
122
 
115
123
  @staticmethod
@@ -50,7 +50,7 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- from typing import Optional
53
+ from typing import Any, Optional
54
54
 
55
55
  from sqlalchemy.orm import Session
56
56
 
@@ -78,13 +78,16 @@ class SyntaxCheckerBase(CheckerBase):
78
78
  self,
79
79
  subject: Optional[str] = None,
80
80
  db_session: Optional[Session] = None,
81
+ shared_lock: Optional[Any] = None,
81
82
  ) -> None:
82
83
  self.params = SyntaxCheckerParams()
83
84
 
84
85
  self.status = SyntaxCheckerStatus()
85
86
  self.status.params = self.params
86
87
 
87
- super().__init__(subject=subject, db_session=db_session)
88
+ super().__init__(
89
+ subject=subject, db_session=db_session, shared_lock=shared_lock
90
+ )
88
91
 
89
92
  def subject_propagator(self) -> "CheckerBase":
90
93
  """
@@ -50,7 +50,7 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- from typing import Optional, Union
53
+ from typing import Any, Optional, Union
54
54
 
55
55
  from sqlalchemy.orm import Session
56
56
 
@@ -64,13 +64,17 @@ from PyFunceble.dataset.whois.sql import SQLDBWhoisDataset
64
64
 
65
65
 
66
66
  def get_whois_dataset_object(
67
- *, db_session: Optional[Session] = None
67
+ *,
68
+ db_session: Optional[Session] = None,
69
+ shared_lock: Optional[Any] = None,
68
70
  ) -> Union[DatasetBase, CSVDatasetBase, DBDatasetBase]:
69
71
  """
70
72
  Provides the whois dataset object to work with.
71
73
 
72
74
  :param db_session:
73
75
  A database session to use.
76
+ :param shared_lock:
77
+ Optional, The shared lock to use to access shared resources.
74
78
 
75
79
  :raise ValueError:
76
80
  When the given database type is unknown.
@@ -80,7 +84,7 @@ def get_whois_dataset_object(
80
84
 
81
85
  if PyFunceble.facility.ConfigLoader.is_already_loaded():
82
86
  if PyFunceble.storage.CONFIGURATION.cli_testing.db_type == "csv":
83
- return CSVWhoisDataset().set_authorized(
87
+ return CSVWhoisDataset(shared_lock=shared_lock).set_authorized(
84
88
  bool(PyFunceble.storage.CONFIGURATION.cli_testing.whois_db)
85
89
  )
86
90
 
@@ -60,3 +60,10 @@ class ProcessesManagerBase(PyFunceble.ext.process_manager.ProcessManagerCore):
60
60
  """
61
61
  Provides the base of all classes.
62
62
  """
63
+
64
+ def __init__(self, *args, **kwargs) -> None:
65
+ # Better handling of shared locks.
66
+ # This help be be retro-compatible. Allowing existing users to
67
+ # not get exceptions.
68
+ shared_lock = kwargs.pop("shared_lock", None)
69
+ super().__init__(*args, **kwargs, shared_lock=shared_lock)
@@ -125,9 +125,15 @@ class ProducerWorker(WorkerBase):
125
125
  self.file_printer = FilePrinter(
126
126
  skip_column=skip_columns, extra_formatters=extra_formatters
127
127
  )
128
- self.whois_dataset = get_whois_dataset_object(db_session=self.db_session)
129
- self.inactive_dataset = get_inactive_dataset_object(db_session=self.db_session)
130
- self.continue_dataset = get_continue_dataset_object(db_session=self.db_session)
128
+ self.whois_dataset = get_whois_dataset_object(
129
+ db_session=self.db_session, shared_lock=self.shared_lock
130
+ )
131
+ self.inactive_dataset = get_inactive_dataset_object(
132
+ db_session=self.db_session, shared_lock=self.shared_lock
133
+ )
134
+ self.continue_dataset = get_continue_dataset_object(
135
+ db_session=self.db_session, shared_lock=self.shared_lock
136
+ )
131
137
  self.status_file_generator = StatusFileGenerator().guess_all_settings()
132
138
  self.counter = FilesystemCounter()
133
139
  self.registrar_counter = RegistrarCounter()
@@ -90,12 +90,12 @@ class TesterWorker(WorkerBase):
90
90
 
91
91
  self.continue_dataset = (
92
92
  PyFunceble.cli.utils.testing.get_continue_dataset_object(
93
- db_session=self.db_session
93
+ db_session=self.db_session, shared_lock=self.shared_lock
94
94
  )
95
95
  )
96
96
  self.inactive_dataset = (
97
97
  PyFunceble.cli.utils.testing.get_inactive_dataset_object(
98
- db_session=self.db_session
98
+ db_session=self.db_session, shared_lock=self.shared_lock
99
99
  )
100
100
  )
101
101
 
@@ -191,7 +191,7 @@ class TesterWorker(WorkerBase):
191
191
  self.initiated_testing_objects[checker_type][
192
192
  subject_type
193
193
  ] = self.known_testing_objects[checker_type][subject_type](
194
- db_session=self.db_session
194
+ db_session=self.db_session, shared_lock=self.shared_lock
195
195
  ).set_do_syntax_check_first(
196
196
  # We want to always check the syntax first (ONLY UNDER THE CLI)
197
197
  not bool(PyFunceble.storage.CONFIGURATION.cli_testing.local_network)
@@ -278,12 +278,12 @@ class TesterWorker(WorkerBase):
278
278
  test_dataset["idna_subject"],
279
279
  )
280
280
 
281
- self._init_testing_object(
281
+ testing_object = self._init_testing_object(
282
282
  test_dataset["subject_type"], test_dataset["checker_type"]
283
283
  )
284
284
 
285
285
  result = (
286
- self.testing_object.set_subject(test_dataset["idna_subject"])
286
+ testing_object.set_subject(test_dataset["idna_subject"])
287
287
  .query_status()
288
288
  .get_status()
289
289
  )