PyFunceble-dev 4.2.9__tar.gz → 4.2.11__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.
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PKG-INFO +1 -1
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/base.py +7 -1
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/pyfunceble/cli.py +72 -6
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/base.py +12 -3
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/producer.py +5 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/system/launcher.py +47 -1
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/config/loader.py +10 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/infrastructure/.PyFunceble_production.yaml +3 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/collection.py +135 -18
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/storage.py +1 -1
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble_dev.egg-info/PKG-INFO +1 -1
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/version.yaml +1 -1
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/CODE_OF_CONDUCT.rst +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/CONTRIBUTING.rst +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/LICENSE +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/MANIFEST.in +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/domain.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/domain_and_ip.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/dns.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/etoxic.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/parked.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/rules.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/subject_switch.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/ip.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/params.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/status.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/url.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/complex_json_encoder.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/params_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/domain.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/domain_and_ip.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/ip.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/params.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/status.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/url.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/status_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/domain.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/domain_and_ip.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/domain_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/ip.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/ipv4.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/ipv6.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/params.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/second_lvl_domain.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/status.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/subdomain.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/url.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/utils/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/utils/whois.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/exceptions.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/github_actions.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/gitlab_ci.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/jenkins.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/travis_ci.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/utils.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/credential_loader.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/clean.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/iana.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/production.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/public_suffix.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/pyfunceble/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/pyfunceble/argsparser.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/execution_time.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/facility.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/factory.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/file_preloader.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/cleanup.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/counter.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/dir_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/dir_structure/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/dir_structure/backup.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/dir_structure/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/dir_structure/restore.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/json_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/printer/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/printer/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/printer/file.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/printer/stdout.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/registrar_counter.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/filesystem/status_file.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/alembic.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/csv_file/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/csv_file/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/csv_file/inactive_source_delete.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/csv_file/whois_registrar_add.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/db_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/file_cleanup/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/file_cleanup/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/file_cleanup/hashes_file.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/file_cleanup/mining_file.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/file_cleanup/production_config_file.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/json2csv/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/json2csv/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/json2csv/inactive.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/json2csv/whois.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/mariadb/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/mariadb/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/mariadb/file_and_status.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/migrators/mariadb/whois_record_idna_subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/chancy_producer.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/chancy_tester.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/dir_files_sorter.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/file_sorter.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/migrator.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/miner.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/producer.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/tester.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/chancy_producer.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/chancy_tester.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/dir_files_sorter.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/file_sorter.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/file_sorter_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/migrator.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/miner.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/processes/workers/tester.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/scripts/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/scripts/iana.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/scripts/production.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/scripts/public_suffix.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/storage.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/storage_facility.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/system/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/system/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/system/integrator.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/utils/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/utils/ascii_logo.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/utils/sort.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/utils/stdout.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/utils/testing.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/utils/version.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/config/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/config/compare.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/adblock_input_line2subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/cidr2subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/input_line2subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/internal_url.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/rpz_input_line2subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/rpz_policy2subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/subject2complements.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/url2netloc.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/converter/wildcard2subject.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/env.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/script.py.mako +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/35c79626ecb9_fix_some_columns.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/3a4c55a9320d_add_continue_table.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/3d6f4a33cdb2_add_inactive_table.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/45713fea8097_deletion_uneeded_columns_from_whois_.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/459a0d7b8f09_add_idna_subject_column_into_whois.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/6f4729deaf03_delete_inactive_source_column.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/7bcf7fa64ba1_rename_created_to_created_at_and.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/83ada95132bf_delete_the_file_table.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/912bbcb77a6c_add_registrar_column.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/95dc17ddd729_introduction_of_the_session_id_column.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/ade87195b0a0_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/bef7bcaac3f2_make_id_a_bigint.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/d8893cd406db_allow_whois_record_to_be_empty_null.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/mysql/versions/e04e8301d1a2_deletion_of_the_mined_table.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/postgresql/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/postgresql/env.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/postgresql/script.py.mako +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/postgresql/versions/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/alembic/postgresql/versions/a32ac5d66eee_initial_version.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/infrastructure/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/data/infrastructure/dir_structure_production.json +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/credential/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/credential/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/credential/mariadb.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/credential/mysql.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/credential/postgresql.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/schemas/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/schemas/autocontinue.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/schemas/inactive.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/schemas/status.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/schemas/whois_record.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/session.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/sqlalchemy/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/sqlalchemy/all_schemas.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/database/sqlalchemy/base_schema.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/autocontinue/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/autocontinue/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/autocontinue/csv.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/autocontinue/sql.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/csv_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/db_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/iana.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/inactive/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/inactive/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/inactive/csv.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/inactive/sql.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/ipv4_reputation.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/public_suffix.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/sql_base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/user_agent.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/whois/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/whois/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/whois/csv.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/dataset/whois/sql.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/exceptions.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/iana.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/ipv4_reputation.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/public_suffix.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/downloader/user_agents.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/exceptions.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/facility.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/factory.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/command.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/dict.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/directory.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/download.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/environment_variable.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/exceptions.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/file.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/hash.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/list.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/merge.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/helpers/regex.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/logger.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/dns/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/dns/nameserver.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/dns/query_tool.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/dns/resolver.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/http_status_code.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/netinfo/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/netinfo/address.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/netinfo/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/netinfo/hostbyaddr.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/record/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/record/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/record/dns.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/record/whois.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/requests/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/requests/adapter/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/requests/adapter/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/requests/adapter/http.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/requests/adapter/https.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/requests/requester.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/converter/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/converter/base.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/converter/digit2digits.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/converter/expiration_date.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/converter/month2unified.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/converter/registrar.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/query/whois/query_tool.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/sessions.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/storage_facility.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/utils/__init__.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/utils/platform.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/utils/profile.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/utils/version.py +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble_dev.egg-info/SOURCES.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble_dev.egg-info/dependency_links.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble_dev.egg-info/entry_points.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble_dev.egg-info/requires.txt +42 -42
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble_dev.egg-info/top_level.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/README.rst +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/requirements.dev.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/requirements.docs.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/requirements.test.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/requirements.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/requirements.win.txt +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/setup.cfg +0 -0
- {PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/setup.py +0 -0
@@ -1043,7 +1043,13 @@ class AvailabilityCheckerBase(CheckerBase):
|
|
1043
1043
|
self.collection_query_tool.preferred_status_origin == "latest"
|
1044
1044
|
and data["status"]["availability"]["latest"]
|
1045
1045
|
):
|
1046
|
-
|
1046
|
+
try:
|
1047
|
+
# legacy
|
1048
|
+
self.status.status = data["status"]["availability"]["latest"][
|
1049
|
+
"status"
|
1050
|
+
]
|
1051
|
+
except KeyError:
|
1052
|
+
self.status.status = data["status"]["availability"]["latest"]
|
1047
1053
|
self.status.status_source = "COLLECTION"
|
1048
1054
|
elif (
|
1049
1055
|
self.collection_query_tool.preferred_status_origin == "recommended"
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/entry_points/pyfunceble/cli.py
RENAMED
@@ -69,7 +69,9 @@ from PyFunceble.cli.system.launcher import SystemLauncher
|
|
69
69
|
from PyFunceble.helpers.regex import RegexHelper
|
70
70
|
|
71
71
|
|
72
|
-
def get_configured_value(
|
72
|
+
def get_configured_value(
|
73
|
+
entry: str, *, negate: bool = False, value_only: bool = False
|
74
|
+
) -> Any:
|
73
75
|
"""
|
74
76
|
Provides the currently configured value.
|
75
77
|
|
@@ -81,6 +83,9 @@ def get_configured_value(entry: str, *, negate=False) -> Any:
|
|
81
83
|
:param negate:
|
82
84
|
Allows us to negate the result from the configuration.
|
83
85
|
|
86
|
+
:param value_only:
|
87
|
+
Whether we should only return the value or the full message.
|
88
|
+
|
84
89
|
:raise ValueError:
|
85
90
|
When the given :code:`entry` is not found.
|
86
91
|
"""
|
@@ -102,10 +107,14 @@ def get_configured_value(entry: str, *, negate=False) -> Any:
|
|
102
107
|
result = not result
|
103
108
|
|
104
109
|
return (
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
110
|
+
(
|
111
|
+
f"\n{colorama.Fore.YELLOW}{colorama.Style.BRIGHT}"
|
112
|
+
f"Configured value: {colorama.Fore.BLUE}"
|
113
|
+
f"{result!r}"
|
114
|
+
f"{colorama.Style.RESET_ALL}"
|
115
|
+
)
|
116
|
+
if not value_only
|
117
|
+
else result
|
109
118
|
)
|
110
119
|
|
111
120
|
|
@@ -122,6 +131,12 @@ def add_arguments_to_parser(
|
|
122
131
|
if "dest" in opt_args:
|
123
132
|
opt_args["dest"] = opt_args["dest"].replace(".", "__")
|
124
133
|
|
134
|
+
for index, value in enumerate(pos_args):
|
135
|
+
if value.startswith("-") and "." not in value:
|
136
|
+
continue
|
137
|
+
|
138
|
+
pos_args[index] = value.replace(".", "__")
|
139
|
+
|
125
140
|
parser.add_argument(*pos_args, **opt_args)
|
126
141
|
|
127
142
|
|
@@ -1184,6 +1199,42 @@ def get_default_group_data() -> List[Tuple[List[str], dict]]:
|
|
1184
1199
|
]
|
1185
1200
|
|
1186
1201
|
|
1202
|
+
def platform_parser(
|
1203
|
+
parser: Union[argparse.ArgumentParser, argparse._SubParsersAction]
|
1204
|
+
) -> None:
|
1205
|
+
"""
|
1206
|
+
Adds the platform group to the given parser.
|
1207
|
+
"""
|
1208
|
+
|
1209
|
+
platform = parser.add_parser(
|
1210
|
+
"platform",
|
1211
|
+
add_help=False,
|
1212
|
+
epilog=PyFunceble.cli.storage.STD_EPILOG,
|
1213
|
+
)
|
1214
|
+
|
1215
|
+
args = [
|
1216
|
+
(
|
1217
|
+
["cli_testing.testing_mode.platform_contribution"],
|
1218
|
+
{
|
1219
|
+
"default": get_configured_value(
|
1220
|
+
"cli_testing.testing_mode.platform_contribution", value_only=True
|
1221
|
+
),
|
1222
|
+
"action": "store_%s"
|
1223
|
+
% str(
|
1224
|
+
not get_configured_value(
|
1225
|
+
"cli_testing.testing_mode.platform_contribution",
|
1226
|
+
value_only=True,
|
1227
|
+
)
|
1228
|
+
).lower(),
|
1229
|
+
"help": argparse.SUPPRESS,
|
1230
|
+
},
|
1231
|
+
)
|
1232
|
+
]
|
1233
|
+
|
1234
|
+
add_arguments_to_parser(platform, args)
|
1235
|
+
add_arguments_to_parser(platform, get_default_group_data())
|
1236
|
+
|
1237
|
+
|
1187
1238
|
def ask_authorization_to_merge_config(missing_key: Optional[str] = None) -> bool:
|
1188
1239
|
"""
|
1189
1240
|
Asks the end-user for the authorization to merge the upstream
|
@@ -1292,6 +1343,8 @@ def tool() -> None:
|
|
1292
1343
|
|
1293
1344
|
# pylint: disable=possibly-unused-variable
|
1294
1345
|
|
1346
|
+
command_sub = parser.add_subparsers(dest="command", help=argparse.SUPPRESS)
|
1347
|
+
|
1295
1348
|
shtab.add_argument_to(
|
1296
1349
|
parser,
|
1297
1350
|
option_string=["--show-completion"],
|
@@ -1321,6 +1374,8 @@ def tool() -> None:
|
|
1321
1374
|
get_ci_group_data,
|
1322
1375
|
]
|
1323
1376
|
|
1377
|
+
parse_funcs = [platform_parser]
|
1378
|
+
|
1324
1379
|
for func in funcs:
|
1325
1380
|
parser_name = func.__name__.replace("get_", "").replace("_data", "")
|
1326
1381
|
|
@@ -1348,10 +1403,21 @@ def tool() -> None:
|
|
1348
1403
|
)
|
1349
1404
|
sys.exit(1)
|
1350
1405
|
|
1406
|
+
for func in parse_funcs:
|
1407
|
+
func(command_sub)
|
1408
|
+
|
1351
1409
|
add_arguments_to_parser(parser, get_default_group_data())
|
1352
1410
|
|
1353
1411
|
args = parser.parse_args()
|
1354
1412
|
|
1355
|
-
if any(
|
1413
|
+
if any(
|
1414
|
+
getattr(args, x)
|
1415
|
+
for x in [
|
1416
|
+
"domains",
|
1417
|
+
"urls",
|
1418
|
+
"files",
|
1419
|
+
"url_files",
|
1420
|
+
]
|
1421
|
+
) or bool(args.command):
|
1356
1422
|
SystemIntegrator(args).start()
|
1357
1423
|
SystemLauncher(args).start()
|
@@ -318,8 +318,10 @@ class WorkerBase(multiprocessing.Process):
|
|
318
318
|
|
319
319
|
try:
|
320
320
|
worker_name, destination_worker, consumed = self.input_queue.get()
|
321
|
-
except EOFError:
|
322
|
-
PyFunceble.facility.Logger.info(
|
321
|
+
except (EOFError, KeyboardInterrupt):
|
322
|
+
PyFunceble.facility.Logger.info(
|
323
|
+
"Got EOFError/KeyboardInterrupt. Stopping worker."
|
324
|
+
)
|
323
325
|
self.global_exit_event.set()
|
324
326
|
break
|
325
327
|
|
@@ -370,7 +372,14 @@ class WorkerBase(multiprocessing.Process):
|
|
370
372
|
self.share_waiting_message(apply_breakoff=wait_for_stop)
|
371
373
|
continue
|
372
374
|
|
373
|
-
|
375
|
+
try:
|
376
|
+
result = self.target(consumed)
|
377
|
+
except (EOFError, KeyboardInterrupt):
|
378
|
+
PyFunceble.facility.Logger.info(
|
379
|
+
"Got EOFError/KeyboardInterrupt. Stopping worker."
|
380
|
+
)
|
381
|
+
self.global_exit_event.set()
|
382
|
+
break
|
374
383
|
|
375
384
|
if result is not None:
|
376
385
|
self.add_to_output_queue(result)
|
@@ -399,6 +399,11 @@ class ProducerWorker(WorkerBase):
|
|
399
399
|
)
|
400
400
|
return None
|
401
401
|
|
402
|
+
if test_dataset["type"] == "platform-contribution":
|
403
|
+
self.collection_query_tool.deliver_contract(
|
404
|
+
test_dataset["contract"], test_result
|
405
|
+
)
|
406
|
+
|
402
407
|
if (
|
403
408
|
PyFunceble.storage.CONFIGURATION.collection.push
|
404
409
|
and test_result.status_source != "COLLECTION"
|
@@ -119,6 +119,7 @@ from PyFunceble.dataset.inactive.base import InactiveDatasetBase
|
|
119
119
|
from PyFunceble.helpers.directory import DirectoryHelper
|
120
120
|
from PyFunceble.helpers.download import DownloadHelper
|
121
121
|
from PyFunceble.helpers.file import FileHelper
|
122
|
+
from PyFunceble.query.collection import CollectionQueryTool
|
122
123
|
|
123
124
|
|
124
125
|
class SystemLauncher(SystemBase):
|
@@ -222,7 +223,7 @@ class SystemLauncher(SystemBase):
|
|
222
223
|
)
|
223
224
|
self.producer_process_manager = ChancyProducerProcessesManager(
|
224
225
|
self.manager,
|
225
|
-
max_worker=
|
226
|
+
max_worker=PyFunceble.storage.CONFIGURATION.cli_testing.max_workers,
|
226
227
|
continuous_integration=self.continuous_integration,
|
227
228
|
input_queue=self.tester_process_manager.output_queue[0],
|
228
229
|
daemon=True,
|
@@ -406,6 +407,21 @@ class SystemLauncher(SystemBase):
|
|
406
407
|
"Added to the protocol:\n%r", to_append
|
407
408
|
)
|
408
409
|
|
410
|
+
# pylint: disable=line-too-long
|
411
|
+
if (
|
412
|
+
PyFunceble.storage.CONFIGURATION.cli_testing.testing_mode.platform_contribution
|
413
|
+
):
|
414
|
+
self.testing_protocol.append(
|
415
|
+
{
|
416
|
+
"type": "platform-contribution",
|
417
|
+
"subject_type": "any",
|
418
|
+
"destination": None,
|
419
|
+
"checker_type": None,
|
420
|
+
"output_dir": None,
|
421
|
+
"session_id": None,
|
422
|
+
}
|
423
|
+
)
|
424
|
+
|
409
425
|
def ci_stop_in_the_middle_if_time_exceeded(self) -> "SystemLauncher":
|
410
426
|
"""
|
411
427
|
Stops our processes as soon as the time is exceeded.
|
@@ -648,7 +664,37 @@ class SystemLauncher(SystemBase):
|
|
648
664
|
)
|
649
665
|
elif protocol["type"] == "file":
|
650
666
|
handle_file(protocol)
|
667
|
+
elif protocol["type"] == "platform-contribution":
|
668
|
+
query_tool = CollectionQueryTool()
|
669
|
+
|
670
|
+
while True:
|
671
|
+
for next_contract in next(
|
672
|
+
query_tool.pull_contract(
|
673
|
+
PyFunceble.storage.CONFIGURATION.cli_testing.max_workers
|
674
|
+
)
|
675
|
+
):
|
676
|
+
if (
|
677
|
+
"subject" not in next_contract
|
678
|
+
or not next_contract["subject"]
|
679
|
+
):
|
680
|
+
continue
|
651
681
|
|
682
|
+
protocol_data = copy.deepcopy(protocol)
|
683
|
+
|
684
|
+
protocol_data["checker_type"] = next_contract[
|
685
|
+
"checker_type"
|
686
|
+
].upper()
|
687
|
+
protocol_data["subject_type"] = next_contract["subject_type"]
|
688
|
+
protocol_data["subject"] = protocol_data["idna_subject"] = (
|
689
|
+
next_contract["subject"]["subject"]
|
690
|
+
)
|
691
|
+
protocol_data["contract"] = copy.deepcopy(next_contract)
|
692
|
+
|
693
|
+
self.tester_process_manager.add_to_input_queue(
|
694
|
+
protocol_data, worker_name="main"
|
695
|
+
)
|
696
|
+
|
697
|
+
self.ci_stop_in_the_middle_if_time_exceeded()
|
652
698
|
return self
|
653
699
|
|
654
700
|
def generate_waiting_files(self) -> "SystemLauncher":
|
@@ -172,6 +172,16 @@ class ConfigLoader:
|
|
172
172
|
# If timeout is set to a negative digit, switch to the default one.
|
173
173
|
config["lookup"]["timeout"] = 5
|
174
174
|
|
175
|
+
if (
|
176
|
+
"cli_testing" in config
|
177
|
+
and "testing_mode" in config["cli_testing"]
|
178
|
+
and "platform_contribution" in config["cli_testing"]["testing_mode"]
|
179
|
+
and config["cli_testing"]["testing_mode"]["platform_contribution"]
|
180
|
+
):
|
181
|
+
# If we are under a special testing mode. We shouldn't generate
|
182
|
+
# any files
|
183
|
+
config["cli_testing"]["file_generation"]["no_file"] = True
|
184
|
+
|
175
185
|
return config
|
176
186
|
|
177
187
|
@staticmethod
|
@@ -51,7 +51,7 @@ License:
|
|
51
51
|
"""
|
52
52
|
|
53
53
|
import json
|
54
|
-
from typing import List, Optional, Union
|
54
|
+
from typing import Generator, List, Optional, Union
|
55
55
|
|
56
56
|
import requests
|
57
57
|
import requests.exceptions
|
@@ -447,7 +447,7 @@ class CollectionQueryTool:
|
|
447
447
|
|
448
448
|
return self
|
449
449
|
|
450
|
-
def
|
450
|
+
def ensure_modern_api(func): # pylint: disable=no-self-argument
|
451
451
|
"""
|
452
452
|
Ensures that the :code:`is_modern_api` attribute is set before running
|
453
453
|
the decorated method.
|
@@ -461,7 +461,7 @@ class CollectionQueryTool:
|
|
461
461
|
|
462
462
|
return wrapper
|
463
463
|
|
464
|
-
@
|
464
|
+
@ensure_modern_api
|
465
465
|
def pull(self, subject: str) -> Optional[dict]:
|
466
466
|
"""
|
467
467
|
Pulls all data related to the subject or :py:class:`None`
|
@@ -520,7 +520,113 @@ class CollectionQueryTool:
|
|
520
520
|
|
521
521
|
return None
|
522
522
|
|
523
|
-
@
|
523
|
+
@ensure_modern_api
|
524
|
+
def pull_contract(self, amount: int = 1) -> Generator[dict, None, None]:
|
525
|
+
"""
|
526
|
+
Pulls the next amount of contracts.
|
527
|
+
|
528
|
+
:param int amount:
|
529
|
+
The amount of data to pull.
|
530
|
+
|
531
|
+
:return:
|
532
|
+
The response of the query.
|
533
|
+
"""
|
534
|
+
|
535
|
+
PyFunceble.facility.Logger.info("Starting to pull next contract")
|
536
|
+
|
537
|
+
url = f"{self.url_base}/v1/contracts/next"
|
538
|
+
params = {
|
539
|
+
"limit": amount,
|
540
|
+
"shuffle": True,
|
541
|
+
}
|
542
|
+
|
543
|
+
try:
|
544
|
+
response = self.session.get(
|
545
|
+
url,
|
546
|
+
params=params,
|
547
|
+
timeout=self.timeout,
|
548
|
+
)
|
549
|
+
|
550
|
+
response_json = response.json()
|
551
|
+
|
552
|
+
if response.status_code == 200:
|
553
|
+
PyFunceble.facility.Logger.debug(
|
554
|
+
"Successfully pulled next %r contracts. Response: %r", response_json
|
555
|
+
)
|
556
|
+
|
557
|
+
PyFunceble.facility.Logger.info("Finished to pull next contract")
|
558
|
+
|
559
|
+
yield response_json
|
560
|
+
except (requests.RequestException, json.decoder.JSONDecodeError):
|
561
|
+
response_json = [{"subject": {}}]
|
562
|
+
|
563
|
+
PyFunceble.facility.Logger.debug(
|
564
|
+
"Failed to pull next contract. Response: %r", response_json
|
565
|
+
)
|
566
|
+
PyFunceble.facility.Logger.info("Finished to pull next contracts")
|
567
|
+
|
568
|
+
yield response_json
|
569
|
+
|
570
|
+
@ensure_modern_api
|
571
|
+
def deliver_contract(self, contract: dict, contract_data: dict) -> Optional[dict]:
|
572
|
+
"""
|
573
|
+
Delivers the given contract data.
|
574
|
+
|
575
|
+
:param contract:
|
576
|
+
The contract to deliver.
|
577
|
+
:param contract_data:
|
578
|
+
The data to deliver.
|
579
|
+
|
580
|
+
:return:
|
581
|
+
The response of the query.
|
582
|
+
"""
|
583
|
+
|
584
|
+
PyFunceble.facility.Logger.info(
|
585
|
+
"Starting to deliver contract data: %r", contract
|
586
|
+
)
|
587
|
+
|
588
|
+
contract_id = contract["id"]
|
589
|
+
contract_data = (
|
590
|
+
contract_data.to_json()
|
591
|
+
if not isinstance(contract_data, dict)
|
592
|
+
else contract_data
|
593
|
+
)
|
594
|
+
url = f"{self.url_base}/v1/contracts/{contract_id}/delivery"
|
595
|
+
|
596
|
+
try:
|
597
|
+
response = self.session.post(
|
598
|
+
url,
|
599
|
+
data=contract_data.encode("utf-8"),
|
600
|
+
timeout=self.timeout,
|
601
|
+
)
|
602
|
+
|
603
|
+
response_json = response.json()
|
604
|
+
|
605
|
+
if response.status_code == 200:
|
606
|
+
PyFunceble.facility.Logger.debug(
|
607
|
+
"Successfully delivered contract: %r. Response: %r",
|
608
|
+
contract_data,
|
609
|
+
response_json,
|
610
|
+
)
|
611
|
+
|
612
|
+
PyFunceble.facility.Logger.info(
|
613
|
+
"Finished to deliver contract: %r", contract_data
|
614
|
+
)
|
615
|
+
|
616
|
+
return response_json
|
617
|
+
except (requests.RequestException, json.decoder.JSONDecodeError):
|
618
|
+
response_json = {}
|
619
|
+
|
620
|
+
PyFunceble.facility.Logger.debug(
|
621
|
+
"Failed to deliver contract: %r. Response: %r", contract_data, response_json
|
622
|
+
)
|
623
|
+
PyFunceble.facility.Logger.info(
|
624
|
+
"Finished to deliver contract: %r", contract_data
|
625
|
+
)
|
626
|
+
|
627
|
+
return None
|
628
|
+
|
629
|
+
@ensure_modern_api
|
524
630
|
def push(
|
525
631
|
self,
|
526
632
|
checker_status: Union[
|
@@ -705,25 +811,36 @@ class CollectionQueryTool:
|
|
705
811
|
if not self.token:
|
706
812
|
return None
|
707
813
|
|
708
|
-
if isinstance(
|
709
|
-
data,
|
710
|
-
(AvailabilityCheckerStatus, SyntaxCheckerStatus, ReputationCheckerStatus),
|
711
|
-
):
|
712
|
-
data = data.to_dict()
|
713
|
-
|
714
|
-
if not isinstance(data, dict): # pragma: no cover ## Should never happen
|
715
|
-
raise TypeError(f"<data> should be {dict}, {type(data)} given.")
|
716
|
-
|
717
814
|
PyFunceble.facility.Logger.info("Starting to submit WHOIS: %r", data)
|
718
815
|
|
719
816
|
url = f"{self.url_base}/v1/status/whois"
|
720
817
|
|
721
818
|
try:
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
819
|
+
if isinstance(data, dict):
|
820
|
+
response = self.session.post(
|
821
|
+
url,
|
822
|
+
json=data,
|
823
|
+
timeout=self.timeout,
|
824
|
+
)
|
825
|
+
elif isinstance(
|
826
|
+
data,
|
827
|
+
(
|
828
|
+
AvailabilityCheckerStatus,
|
829
|
+
SyntaxCheckerStatus,
|
830
|
+
ReputationCheckerStatus,
|
831
|
+
),
|
832
|
+
):
|
833
|
+
response = self.session.post(
|
834
|
+
url,
|
835
|
+
data=data.to_json(),
|
836
|
+
timeout=self.timeout,
|
837
|
+
)
|
838
|
+
else:
|
839
|
+
response = self.session.post(
|
840
|
+
url,
|
841
|
+
data=data,
|
842
|
+
timeout=self.timeout,
|
843
|
+
)
|
727
844
|
|
728
845
|
response_json = response.json()
|
729
846
|
|
@@ -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.2.
|
64
|
+
PROJECT_VERSION: str = "4.2.11.dev (Blue Duckling: Ixora)"
|
65
65
|
|
66
66
|
DISTRIBUTED_CONFIGURATION_FILENAME: str = ".PyFunceble_production.yaml"
|
67
67
|
DISTRIBUTED_DIR_STRUCTURE_FILENAME: str = "dir_structure_production.json"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/domain_and_ip.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/__init__.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/base.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/dns.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/etoxic.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/parked.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/availability/extras/rules.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/reputation/domain_and_ip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/checker/syntax/second_lvl_domain.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/__init__.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/base.py
RENAMED
File without changes
|
{PyFunceble-dev-4.2.9 → PyFunceble-dev-4.2.11}/PyFunceble/cli/continuous_integration/exceptions.py
RENAMED
File without changes
|
File without changes
|