PyFunceble-dev 4.0.0b35__tar.gz → 4.0.0b36__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 (271) hide show
  1. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PKG-INFO +1 -1
  2. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/base.py +2 -0
  3. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/pyfunceble/cli.py +9 -0
  4. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/file_preloader.py +5 -0
  5. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/system/launcher.py +4 -0
  6. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/utils/testing.py +12 -0
  7. PyFunceble-dev-4.0.0b36/PyFunceble/converter/cidr2subject.py +114 -0
  8. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/infrastructure/.PyFunceble_production.yaml +3 -0
  9. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/infrastructure/dir_structure_production.json +1 -1
  10. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/dns/query_tool.py +1 -1
  11. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/storage.py +1 -1
  12. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble_dev.egg-info/PKG-INFO +1 -1
  13. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble_dev.egg-info/SOURCES.txt +1 -0
  14. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/version.yaml +1 -1
  15. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/.PyFunceble_production.yaml +0 -0
  16. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/CODE_OF_CONDUCT.rst +0 -0
  17. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/CONTRIBUTING.rst +0 -0
  18. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/LICENSE +0 -0
  19. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/MANIFEST.in +0 -0
  20. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/.vscode/settings.json +0 -0
  21. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/__init__.py +0 -0
  22. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/__init__.py +0 -0
  23. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/__init__.py +0 -0
  24. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/domain.py +0 -0
  25. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/domain_and_ip.py +0 -0
  26. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/extra_rules.py +0 -0
  27. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/ip.py +0 -0
  28. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/params.py +0 -0
  29. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/status.py +0 -0
  30. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/availability/url.py +0 -0
  31. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/base.py +0 -0
  32. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/complex_json_encoder.py +0 -0
  33. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/params_base.py +0 -0
  34. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/__init__.py +0 -0
  35. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/base.py +0 -0
  36. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/domain.py +0 -0
  37. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/domain_and_ip.py +0 -0
  38. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/ip.py +0 -0
  39. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/params.py +0 -0
  40. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/status.py +0 -0
  41. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/reputation/url.py +0 -0
  42. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/status_base.py +0 -0
  43. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/__init__.py +0 -0
  44. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/base.py +0 -0
  45. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/domain.py +0 -0
  46. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/domain_base.py +0 -0
  47. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/ip.py +0 -0
  48. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/ipv4.py +0 -0
  49. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/ipv6.py +0 -0
  50. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/params.py +0 -0
  51. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/second_lvl_domain.py +0 -0
  52. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/status.py +0 -0
  53. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/subdomain.py +0 -0
  54. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/syntax/url.py +0 -0
  55. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/utils/__init__.py +0 -0
  56. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/checker/utils/whois.py +0 -0
  57. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/__init__.py +0 -0
  58. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/__init__.py +0 -0
  59. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/base.py +0 -0
  60. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/exceptions.py +0 -0
  61. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/github_actions.py +0 -0
  62. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/gitlab_ci.py +0 -0
  63. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/jenkins.py +0 -0
  64. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/travis_ci.py +0 -0
  65. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/continuous_integration/utils.py +0 -0
  66. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/credential_loader.py +0 -0
  67. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/__init__.py +0 -0
  68. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/clean.py +0 -0
  69. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/iana.py +0 -0
  70. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/production.py +0 -0
  71. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/public_suffix.py +0 -0
  72. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/pyfunceble/__init__.py +0 -0
  73. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/entry_points/pyfunceble/argsparser.py +0 -0
  74. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/execution_time.py +0 -0
  75. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/facility.py +0 -0
  76. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/factory.py +0 -0
  77. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/__init__.py +0 -0
  78. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/cleanup.py +0 -0
  79. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/counter.py +0 -0
  80. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/dir_base.py +0 -0
  81. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/dir_structure/__init__.py +0 -0
  82. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/dir_structure/backup.py +0 -0
  83. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/dir_structure/base.py +0 -0
  84. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/dir_structure/restore.py +0 -0
  85. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/printer/__init__.py +0 -0
  86. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/printer/base.py +0 -0
  87. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/printer/file.py +0 -0
  88. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/printer/stdout.py +0 -0
  89. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/filesystem/status_file.py +0 -0
  90. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/__init__.py +0 -0
  91. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/alembic.py +0 -0
  92. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/base.py +0 -0
  93. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/csv_file/__init__.py +0 -0
  94. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/csv_file/base.py +0 -0
  95. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/csv_file/inactive_source_delete.py +0 -0
  96. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/db_base.py +0 -0
  97. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/file_cleanup/__init__.py +0 -0
  98. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/file_cleanup/base.py +0 -0
  99. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/file_cleanup/hashes_file.py +0 -0
  100. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/file_cleanup/mining_file.py +0 -0
  101. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/file_cleanup/production_config_file.py +0 -0
  102. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/json2csv/__init__.py +0 -0
  103. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/json2csv/base.py +0 -0
  104. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/json2csv/inactive.py +0 -0
  105. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/json2csv/whois.py +0 -0
  106. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/mariadb/__init__.py +0 -0
  107. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/mariadb/base.py +0 -0
  108. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/mariadb/file_and_status.py +0 -0
  109. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/migrators/mariadb/whois_record_idna_subject.py +0 -0
  110. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/__init__.py +0 -0
  111. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/base.py +0 -0
  112. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/file_sorter.py +0 -0
  113. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/migrator.py +0 -0
  114. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/miner.py +0 -0
  115. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/producer.py +0 -0
  116. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/tester.py +0 -0
  117. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/__init__.py +0 -0
  118. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/base.py +0 -0
  119. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/file_sorter.py +0 -0
  120. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/migrator.py +0 -0
  121. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/miner.py +0 -0
  122. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/producer.py +0 -0
  123. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/processes/workers/tester.py +0 -0
  124. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/scripts/__init__.py +0 -0
  125. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/scripts/iana.py +0 -0
  126. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/scripts/production.py +0 -0
  127. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/scripts/public_suffix.py +0 -0
  128. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/storage.py +0 -0
  129. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/storage_facility.py +0 -0
  130. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/system/__init__.py +0 -0
  131. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/system/base.py +0 -0
  132. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/system/integrator.py +0 -0
  133. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/utils/__init__.py +0 -0
  134. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/utils/ascii_logo.py +0 -0
  135. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/utils/sort.py +0 -0
  136. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/utils/stdout.py +0 -0
  137. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/cli/utils/version.py +0 -0
  138. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/config/__init__.py +0 -0
  139. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/config/compare.py +0 -0
  140. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/config/loader.py +0 -0
  141. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/__init__.py +0 -0
  142. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/adblock_input_line2subject.py +0 -0
  143. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/base.py +0 -0
  144. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/input_line2subject.py +0 -0
  145. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/internal_url.py +0 -0
  146. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/rpz_input_line2subject.py +0 -0
  147. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/rpz_policy2subject.py +0 -0
  148. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/subject2complements.py +0 -0
  149. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/url2netloc.py +0 -0
  150. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/converter/wildcard2subject.py +0 -0
  151. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/__init__.py +0 -0
  152. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/__init__.py +0 -0
  153. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/env.py +0 -0
  154. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/script.py.mako +0 -0
  155. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/35c79626ecb9_fix_some_columns.py +0 -0
  156. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/3a4c55a9320d_add_continue_table.py +0 -0
  157. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/3d6f4a33cdb2_add_inactive_table.py +0 -0
  158. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/45713fea8097_deletion_uneeded_columns_from_whois_.py +0 -0
  159. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/459a0d7b8f09_add_idna_subject_column_into_whois.py +0 -0
  160. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/6f4729deaf03_delete_inactive_source_column.py +0 -0
  161. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/7bcf7fa64ba1_rename_created_to_created_at_and.py +0 -0
  162. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/83ada95132bf_delete_the_file_table.py +0 -0
  163. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/95dc17ddd729_introduction_of_the_session_id_column.py +0 -0
  164. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/__init__.py +0 -0
  165. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/ade87195b0a0_base.py +0 -0
  166. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/bef7bcaac3f2_make_id_a_bigint.py +0 -0
  167. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/d8893cd406db_allow_whois_record_to_be_empty_null.py +0 -0
  168. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/alembic/versions/e04e8301d1a2_deletion_of_the_mined_table.py +0 -0
  169. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/data/infrastructure/__init__.py +0 -0
  170. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/__init__.py +0 -0
  171. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/credential/__init__.py +0 -0
  172. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/credential/base.py +0 -0
  173. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/credential/mariadb.py +0 -0
  174. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/credential/mysql.py +0 -0
  175. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/schemas/__init__.py +0 -0
  176. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/schemas/autocontinue.py +0 -0
  177. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/schemas/inactive.py +0 -0
  178. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/schemas/status.py +0 -0
  179. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/schemas/whois_record.py +0 -0
  180. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/session.py +0 -0
  181. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/sqlalchemy/__init__.py +0 -0
  182. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/sqlalchemy/all_schemas.py +0 -0
  183. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/database/sqlalchemy/base_schema.py +0 -0
  184. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/__init__.py +0 -0
  185. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/autocontinue/__init__.py +0 -0
  186. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/autocontinue/base.py +0 -0
  187. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/autocontinue/csv.py +0 -0
  188. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/autocontinue/mariadb.py +0 -0
  189. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/autocontinue/mysql.py +0 -0
  190. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/base.py +0 -0
  191. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/csv_base.py +0 -0
  192. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/db_base.py +0 -0
  193. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/iana.py +0 -0
  194. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/inactive/__init__.py +0 -0
  195. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/inactive/base.py +0 -0
  196. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/inactive/csv.py +0 -0
  197. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/inactive/mariadb.py +0 -0
  198. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/inactive/mysql.py +0 -0
  199. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/ipv4_reputation.py +0 -0
  200. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/mariadb_base.py +0 -0
  201. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/public_suffix.py +0 -0
  202. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/user_agent.py +0 -0
  203. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/whois/__init__.py +0 -0
  204. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/whois/base.py +0 -0
  205. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/whois/csv.py +0 -0
  206. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/whois/mariadb.py +0 -0
  207. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/dataset/whois/mysql.py +0 -0
  208. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/__init__.py +0 -0
  209. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/base.py +0 -0
  210. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/exceptions.py +0 -0
  211. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/iana.py +0 -0
  212. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/ipv4_reputation.py +0 -0
  213. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/public_suffix.py +0 -0
  214. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/downloader/user_agents.py +0 -0
  215. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/exceptions.py +0 -0
  216. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/facility.py +0 -0
  217. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/factory.py +0 -0
  218. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/__init__.py +0 -0
  219. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/command.py +0 -0
  220. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/dict.py +0 -0
  221. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/directory.py +0 -0
  222. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/download.py +0 -0
  223. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/environment_variable.py +0 -0
  224. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/exceptions.py +0 -0
  225. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/file.py +0 -0
  226. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/hash.py +0 -0
  227. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/list.py +0 -0
  228. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/merge.py +0 -0
  229. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/helpers/regex.py +0 -0
  230. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/logger.py +0 -0
  231. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/__init__.py +0 -0
  232. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/dns/__init__.py +0 -0
  233. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/dns/nameserver.py +0 -0
  234. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/dns/resolver.py +0 -0
  235. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/http_status_code.py +0 -0
  236. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/netinfo/__init__.py +0 -0
  237. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/netinfo/address.py +0 -0
  238. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/netinfo/base.py +0 -0
  239. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/netinfo/hostbyaddr.py +0 -0
  240. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/record/__init__.py +0 -0
  241. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/record/base.py +0 -0
  242. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/record/dns.py +0 -0
  243. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/record/whois.py +0 -0
  244. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/requests/__init__.py +0 -0
  245. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/requests/adapter/__init__.py +0 -0
  246. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/requests/adapter/base.py +0 -0
  247. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/requests/adapter/http.py +0 -0
  248. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/requests/adapter/https.py +0 -0
  249. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/requests/requester.py +0 -0
  250. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/__init__.py +0 -0
  251. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/converter/__init__.py +0 -0
  252. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/converter/base.py +0 -0
  253. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/converter/digit2digits.py +0 -0
  254. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/converter/expiration_date.py +0 -0
  255. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/converter/month2unified.py +0 -0
  256. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/query/whois/query_tool.py +0 -0
  257. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/sessions.py +0 -0
  258. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/storage_facility.py +0 -0
  259. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/utils/__init__.py +0 -0
  260. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/utils/platform.py +0 -0
  261. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/utils/profile.py +0 -0
  262. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble/utils/version.py +0 -0
  263. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble_dev.egg-info/dependency_links.txt +0 -0
  264. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble_dev.egg-info/entry_points.txt +0 -0
  265. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble_dev.egg-info/requires.txt +0 -0
  266. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/PyFunceble_dev.egg-info/top_level.txt +0 -0
  267. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/README.rst +0 -0
  268. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/dir_structure_production.json +0 -0
  269. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/requirements.txt +0 -0
  270. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/setup.cfg +0 -0
  271. {PyFunceble-dev-4.0.0b35 → PyFunceble-dev-4.0.0b36}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: PyFunceble-dev
3
- Version: 4.0.0b35
3
+ Version: 4.0.0b36
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
@@ -841,6 +841,8 @@ class AvailabilityCheckerBase(CheckerBase):
841
841
  lookup_result = self.addressinfo_query_tool.get_info()
842
842
  elif self.status.ip_syntax:
843
843
  lookup_result = self.hostbyaddr_query_tool.get_info()
844
+ elif self.status.idna_subject.isdigit():
845
+ lookup_result = None
844
846
  else:
845
847
  lookup_result = self.addressinfo_query_tool.get_info()
846
848
 
@@ -219,6 +219,15 @@ def get_filtering_group_data() -> List[Tuple[List[str], dict]]:
219
219
  "help": argparse.SUPPRESS,
220
220
  },
221
221
  ),
222
+ (
223
+ ["--cidr"],
224
+ {
225
+ "dest": "cli_testing.cidr_expand",
226
+ "action": "store_true",
227
+ "help": "Activates or disables the expansion of CIDR formatted\n"
228
+ "addresses. %s" % get_configured_value("cli_testing.cidr_expand"),
229
+ },
230
+ ),
222
231
  (
223
232
  [
224
233
  "--complements",
@@ -66,6 +66,7 @@ from PyFunceble.cli.processes.workers.tester import TesterWorker
66
66
  from PyFunceble.cli.utils.stdout import print_single_line
67
67
  from PyFunceble.cli.utils.testing import get_subjects_from_line
68
68
  from PyFunceble.converter.adblock_input_line2subject import AdblockInputLine2Subject
69
+ from PyFunceble.converter.cidr2subject import CIDR2Subject
69
70
  from PyFunceble.converter.input_line2subject import InputLine2Subject
70
71
  from PyFunceble.converter.rpz_input_line2subject import RPZInputLine2Subject
71
72
  from PyFunceble.converter.rpz_policy2subject import RPZPolicy2Subject
@@ -122,6 +123,7 @@ class FilePreloader:
122
123
  rpz_policy2subject: Optional[RPZPolicy2Subject] = None
123
124
  rpz_inputline2subject: Optional[RPZInputLine2Subject] = None
124
125
  url2netloc: Optional[Url2Netloc] = None
126
+ cidr2subject: Optional[CIDR2Subject] = None
125
127
 
126
128
  def __init__(
127
129
  self,
@@ -139,6 +141,7 @@ class FilePreloader:
139
141
  url2netloc: Optional[Url2Netloc] = None,
140
142
  continue_dataset: Optional[ContinueDatasetBase] = None,
141
143
  inactive_dataset: Optional[InactiveDatasetBase] = None,
144
+ cidr2subject: Optional[CIDR2Subject] = None,
142
145
  ) -> None:
143
146
  if authorized is not None:
144
147
  self.authorized = authorized
@@ -160,6 +163,7 @@ class FilePreloader:
160
163
  self.url2netloc = url2netloc
161
164
  self.continue_dataset = continue_dataset
162
165
  self.inactive_dataset = inactive_dataset
166
+ self.cidr2subject = cidr2subject
163
167
 
164
168
  def execute_if_authorized(default: Any = None): # pylint: disable=no-self-argument
165
169
  """
@@ -394,6 +398,7 @@ class FilePreloader:
394
398
  inputline2subject=self.inputline2subject,
395
399
  subject2complements=self.subject2complements,
396
400
  url2netloc=self.url2netloc,
401
+ cidr2subject=self.cidr2subject,
397
402
  ):
398
403
 
399
404
  to_send = copy.deepcopy(self.protocol)
@@ -101,6 +101,7 @@ from PyFunceble.cli.utils.testing import (
101
101
  )
102
102
  from PyFunceble.cli.utils.version import print_central_messages
103
103
  from PyFunceble.converter.adblock_input_line2subject import AdblockInputLine2Subject
104
+ from PyFunceble.converter.cidr2subject import CIDR2Subject
104
105
  from PyFunceble.converter.input_line2subject import InputLine2Subject
105
106
  from PyFunceble.converter.rpz_input_line2subject import RPZInputLine2Subject
106
107
  from PyFunceble.converter.rpz_policy2subject import RPZPolicy2Subject
@@ -133,6 +134,7 @@ class SystemLauncher(SystemBase):
133
134
  rpz_policy2subject: RPZPolicy2Subject = RPZPolicy2Subject()
134
135
  rpz_inputline2subject: RPZInputLine2Subject = RPZInputLine2Subject()
135
136
  url2netloc: Url2Netloc = Url2Netloc()
137
+ cidr2subject: CIDR2Subject = CIDR2Subject()
136
138
 
137
139
  stdout_printer: StdoutPrinter = StdoutPrinter()
138
140
  file_printer: FilePrinter = FilePrinter()
@@ -528,6 +530,7 @@ class SystemLauncher(SystemBase):
528
530
  inputline2subject=self.inputline2subject,
529
531
  subject2complements=self.subject2complements,
530
532
  url2netloc=self.url2netloc,
533
+ cidr2subject=self.cidr2subject,
531
534
  ):
532
535
  to_send = copy.deepcopy(protocol)
533
536
  to_send["subject"] = subject
@@ -575,6 +578,7 @@ class SystemLauncher(SystemBase):
575
578
  inputline2subject=self.inputline2subject,
576
579
  subject2complements=self.subject2complements,
577
580
  url2netloc=self.url2netloc,
581
+ cidr2subject=self.cidr2subject,
578
582
  ):
579
583
  to_send = copy.deepcopy(protocol)
580
584
  to_send["subject"], to_send["idna_subject"] = (
@@ -57,6 +57,7 @@ from sqlalchemy.orm import Session
57
57
 
58
58
  import PyFunceble.storage
59
59
  from PyFunceble.converter.adblock_input_line2subject import AdblockInputLine2Subject
60
+ from PyFunceble.converter.cidr2subject import CIDR2Subject
60
61
  from PyFunceble.converter.input_line2subject import InputLine2Subject
61
62
  from PyFunceble.converter.rpz_input_line2subject import RPZInputLine2Subject
62
63
  from PyFunceble.converter.rpz_policy2subject import RPZPolicy2Subject
@@ -186,6 +187,7 @@ def get_subjects_from_line(
186
187
  inputline2subject: Optional[InputLine2Subject] = None,
187
188
  subject2complements: Optional[Subject2Complements] = None,
188
189
  url2netloc: Optional[Url2Netloc] = None,
190
+ cidr2subject: Optional[CIDR2Subject] = None,
189
191
  ) -> List[str]:
190
192
  """
191
193
  Provides the list of subject to test.
@@ -214,6 +216,9 @@ def get_subjects_from_line(
214
216
  if url2netloc is None:
215
217
  url2netloc = Url2Netloc()
216
218
 
219
+ if cidr2subject is None:
220
+ cidr2subject = CIDR2Subject()
221
+
217
222
  if PyFunceble.storage.CONFIGURATION.cli_decoding.adblock:
218
223
  result.extend(
219
224
  # pylint: disable=line-too-long
@@ -244,6 +249,13 @@ def get_subjects_from_line(
244
249
  ]
245
250
  )
246
251
 
252
+ if PyFunceble.storage.CONFIGURATION.cli_testing.cidr_expand:
253
+ result = [
254
+ y
255
+ for x in result
256
+ for y in cidr2subject.set_data_to_convert(x).get_converted()
257
+ ]
258
+
247
259
  if checker_type.lower() != "syntax":
248
260
  for index, subject in enumerate(result):
249
261
  if not subject:
@@ -0,0 +1,114 @@
1
+ # pylint:disable=line-too-long
2
+ """
3
+ The tool to check the availability or syntax of domain, IP or URL.
4
+
5
+ ::
6
+
7
+
8
+ ██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
9
+ ██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
10
+ ██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
11
+ ██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
12
+ ██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
13
+ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
14
+
15
+ Provides the converter of CIDR to subjects.
16
+
17
+ Author:
18
+ Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
19
+
20
+ Special thanks:
21
+ https://pyfunceble.github.io/#/special-thanks
22
+
23
+ Contributors:
24
+ https://pyfunceble.github.io/#/contributors
25
+
26
+ Project link:
27
+ https://github.com/funilrys/PyFunceble
28
+
29
+ Project documentation:
30
+ https://pyfunceble.readthedocs.io/en/dev/
31
+
32
+ Project homepage:
33
+ https://pyfunceble.github.io/
34
+
35
+ License:
36
+ ::
37
+
38
+
39
+ Copyright 2017, 2018, 2019, 2020, 2021 Nissar Chababy
40
+
41
+ Licensed under the Apache License, Version 2.0 (the "License");
42
+ you may not use this file except in compliance with the License.
43
+ You may obtain a copy of the License at
44
+
45
+ http://www.apache.org/licenses/LICENSE-2.0
46
+
47
+ Unless required by applicable law or agreed to in writing, software
48
+ distributed under the License is distributed on an "AS IS" BASIS,
49
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
50
+ See the License for the specific language governing permissions and
51
+ limitations under the License.
52
+ """
53
+
54
+ from ipaddress import IPv4Network
55
+ from typing import Any, List, Optional
56
+
57
+ from PyFunceble.checker.syntax.ip import IPSyntaxChecker
58
+ from PyFunceble.converter.base import ConverterBase
59
+
60
+
61
+ class CIDR2Subject(ConverterBase):
62
+ """
63
+ Converts/Extracts the subjects of from the given CIDR.
64
+ """
65
+
66
+ ip_syntax_checker: Optional[IPSyntaxChecker] = None
67
+
68
+ def __init__(self, data_to_convert: Optional[Any] = None) -> None:
69
+ super().__init__(data_to_convert=data_to_convert)
70
+
71
+ self.ip_syntax_checker = IPSyntaxChecker()
72
+
73
+ @ConverterBase.data_to_convert.setter
74
+ def data_to_convert(self, value: Any) -> None:
75
+ """
76
+ Overrites the default behavior.
77
+
78
+ :raise TypeError:
79
+ When the given data to convert is not :py:class:`str`
80
+ """
81
+
82
+ if not isinstance(value, str):
83
+ raise TypeError(f"<value> should be {str}, {type(value)} given.")
84
+
85
+ # pylint: disable=no-member
86
+ super(CIDR2Subject, self.__class__).data_to_convert.fset(self, value)
87
+
88
+ def get_converted(self) -> List[str]:
89
+ """
90
+ Provides the subject-s to test.
91
+ """
92
+
93
+ result = set()
94
+
95
+ subject = self.data_to_convert.strip()
96
+
97
+ if subject:
98
+ try:
99
+ self.ip_syntax_checker.set_subject(subject)
100
+ if self.ip_syntax_checker.is_valid_v4_range():
101
+ result.update(
102
+ str(x) for x in IPv4Network(self.ip_syntax_checker.subject)
103
+ )
104
+ elif self.ip_syntax_checker.is_valid_v6_range():
105
+ ...
106
+
107
+ # Not Implemented yet.
108
+ result.add(subject)
109
+ else:
110
+ result.add(subject)
111
+ except ValueError:
112
+ result.add(subject)
113
+
114
+ return list(result)
@@ -45,6 +45,9 @@ cli_testing:
45
45
  # Activates the generation of complements.
46
46
  complements: False
47
47
 
48
+ # Activates the expansion of CIDR to single addresses.
49
+ cidr_expand: False
50
+
48
51
  # Sets the cooldown time to apply between each tests.
49
52
  cooldown_time: 0.0
50
53
 
@@ -116,7 +116,7 @@
116
116
  "logs": {
117
117
  ".gitignore": {
118
118
  "content": "*\n!.gitignore\n!/date_format/\n!/no_referrer/\n!/percentage/\n!/whois/\n",
119
- "hash": "475d7b0dedad050e4551466a8a17bff7cf0af0a5ef5e463979981cba"
119
+ "hash": "7e533b26a45b8712a1ed4895b52b2cc798a03a632074800af98a52e7"
120
120
  }
121
121
  },
122
122
  "logs/percentage": {
@@ -268,7 +268,7 @@ class DNSQueryTool:
268
268
  except ValueError:
269
269
  return dns.name.from_text(self.subject)
270
270
  return dns.name.from_text(self.subject)
271
- except dns.name.LabelTooLong:
271
+ except (dns.name.LabelTooLong, dns.name.EmptyLabel):
272
272
  return None
273
273
 
274
274
  @property
@@ -61,7 +61,7 @@ from dotenv import load_dotenv
61
61
  from PyFunceble.storage_facility import get_config_directory
62
62
 
63
63
  PROJECT_NAME: str = "PyFunceble"
64
- PROJECT_VERSION: str = "4.0.0b35.dev (Blue Duckling)"
64
+ PROJECT_VERSION: str = "4.0.0b36.dev (Blue Duckling)"
65
65
 
66
66
  DISTRIBUTED_CONFIGURATION_FILENAME: str = ".PyFunceble_production.yaml"
67
67
  DISTRIBUTED_DIR_STRUCTURE_FILENAME: str = "dir_structure_production.json"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: PyFunceble-dev
3
- Version: 4.0.0b35
3
+ Version: 4.0.0b36
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
@@ -145,6 +145,7 @@ PyFunceble/config/loader.py
145
145
  PyFunceble/converter/__init__.py
146
146
  PyFunceble/converter/adblock_input_line2subject.py
147
147
  PyFunceble/converter/base.py
148
+ PyFunceble/converter/cidr2subject.py
148
149
  PyFunceble/converter/input_line2subject.py
149
150
  PyFunceble/converter/internal_url.py
150
151
  PyFunceble/converter/rpz_input_line2subject.py
@@ -1,4 +1,4 @@
1
- current_version: 4.0.0b35.dev (Blue Duckling)
1
+ current_version: 4.0.0b36.dev (Blue Duckling)
2
2
  deprecated:
3
3
  - 3.0.21
4
4
  - 3.1.20