PyFunceble-dev 4.2.29__py3-none-any.whl → 4.3.0a1__py3-none-any.whl

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 (36) hide show
  1. PyFunceble/cli/entry_points/pyfunceble/cli.py +22 -0
  2. PyFunceble/cli/filesystem/dir_structure/base.py +1 -2
  3. PyFunceble/cli/migrators/base.py +47 -1
  4. PyFunceble/cli/migrators/csv_file/inactive_source_delete.py +1 -1
  5. PyFunceble/cli/migrators/csv_file/whois_registrar_add.py +1 -1
  6. PyFunceble/cli/migrators/file_cleanup/hashes_file.py +1 -1
  7. PyFunceble/cli/migrators/file_cleanup/mining_file.py +1 -1
  8. PyFunceble/cli/migrators/file_cleanup/production_config_file.py +1 -1
  9. PyFunceble/cli/migrators/json2csv/inactive.py +1 -1
  10. PyFunceble/cli/migrators/json2csv/whois.py +1 -1
  11. PyFunceble/cli/scripts/production.py +67 -26
  12. PyFunceble/cli/system/integrator.py +51 -14
  13. PyFunceble/cli/system/launcher.py +14 -5
  14. PyFunceble/config/loader.py +146 -22
  15. PyFunceble/database/credential/base.py +46 -3
  16. PyFunceble/dataset/base.py +3 -3
  17. PyFunceble/dataset/db_base.py +44 -0
  18. PyFunceble/dataset/iana.py +3 -6
  19. PyFunceble/dataset/inactive/csv.py +1 -1
  20. PyFunceble/dataset/ipv4_reputation.py +5 -9
  21. PyFunceble/dataset/public_suffix.py +4 -8
  22. PyFunceble/dataset/user_agent.py +4 -7
  23. PyFunceble/dataset/whois/csv.py +1 -1
  24. PyFunceble/downloader/base.py +64 -5
  25. PyFunceble/downloader/iana.py +4 -11
  26. PyFunceble/downloader/ipv4_reputation.py +2 -11
  27. PyFunceble/downloader/public_suffix.py +5 -11
  28. PyFunceble/downloader/user_agents.py +5 -11
  29. PyFunceble/query/whois/query_tool.py +1 -0
  30. PyFunceble/storage.py +2 -19
  31. {PyFunceble_dev-4.2.29.dist-info → PyFunceble_dev-4.3.0a1.dist-info}/METADATA +58 -58
  32. {PyFunceble_dev-4.2.29.dist-info → PyFunceble_dev-4.3.0a1.dist-info}/RECORD +36 -36
  33. {PyFunceble_dev-4.2.29.dist-info → PyFunceble_dev-4.3.0a1.dist-info}/LICENSE +0 -0
  34. {PyFunceble_dev-4.2.29.dist-info → PyFunceble_dev-4.3.0a1.dist-info}/WHEEL +0 -0
  35. {PyFunceble_dev-4.2.29.dist-info → PyFunceble_dev-4.3.0a1.dist-info}/entry_points.txt +0 -0
  36. {PyFunceble_dev-4.2.29.dist-info → PyFunceble_dev-4.3.0a1.dist-info}/top_level.txt +0 -0
@@ -50,9 +50,6 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- import os
54
-
55
- import PyFunceble.storage
56
53
  from PyFunceble.downloader.base import DownloaderBase
57
54
 
58
55
 
@@ -64,14 +61,10 @@ class IANADownloader(DownloaderBase):
64
61
  DOWNTIME_INDEX: str = "iana"
65
62
  DOWNLOAD_FREQUENCY: int = 1
66
63
 
67
- def __init__(self) -> None:
68
- self.destination = os.path.join(
69
- PyFunceble.storage.CONFIG_DIRECTORY,
70
- PyFunceble.storage.IANA_DUMP_FILENAME,
71
- )
72
- self.download_link = PyFunceble.storage.IANA_DUMP_LINK
73
-
74
- super().__init__()
64
+ DEFAULT_DOWNLOAD_URL: str = (
65
+ "https://raw.githubusercontent.com/PyFunceble/iana/master/iana-domains-db.json"
66
+ )
67
+ DEFAULT_FILENAME: str = "iana-domains-db.json"
75
68
 
76
69
  @property
77
70
  def authorized(self) -> bool:
@@ -50,9 +50,6 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- import os
54
-
55
- import PyFunceble.storage
56
53
  from PyFunceble.downloader.base import DownloaderBase
57
54
 
58
55
 
@@ -64,14 +61,8 @@ class IPV4ReputationDownloader(DownloaderBase):
64
61
  DOWNTIME_INDEX: str = "ipv4_reputation"
65
62
  DOWNLOAD_FREQUENCY: int = 1
66
63
 
67
- def __init__(self) -> None:
68
- self.destination = os.path.join(
69
- PyFunceble.storage.CONFIG_DIRECTORY,
70
- PyFunceble.storage.IPV4_REPUTATION_FILENAME,
71
- )
72
- self.download_link = PyFunceble.storage.IPV4_REPUTATION_DUMP_LINK
73
-
74
- super().__init__()
64
+ DEFAULT_DOWNLOAD_URL: str = "https://reputation.alienvault.com/reputation.data"
65
+ DEFAULT_FILENAME: str = "ipv4_reputation.data"
75
66
 
76
67
  @property
77
68
  def authorized(self) -> bool: # pragma: no cover ## Always True.
@@ -50,9 +50,6 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- import os
54
-
55
- import PyFunceble.storage
56
53
  from PyFunceble.downloader.base import DownloaderBase
57
54
 
58
55
 
@@ -64,14 +61,11 @@ class PublicSuffixDownloader(DownloaderBase):
64
61
  DOWNTIME_INDEX: str = "psl"
65
62
  DOWNLOAD_FREQUENCY: int = 1
66
63
 
67
- def __init__(self) -> None:
68
- self.destination = os.path.join(
69
- PyFunceble.storage.CONFIG_DIRECTORY,
70
- PyFunceble.storage.PUBLIC_SUFFIX_DUMP_FILENAME,
71
- )
72
- self.download_link = PyFunceble.storage.PUBLIC_SUFFIX_DUMP_LINK
73
-
74
- super().__init__()
64
+ # pylint: disable=line-too-long
65
+ DEFAULT_DOWNLOAD_URL: str = (
66
+ "https://raw.githubusercontent.com/PyFunceble/public-suffix/master/public-suffix.json"
67
+ )
68
+ DEFAULT_FILENAME: str = "public-suffix.json"
75
69
 
76
70
  @property
77
71
  def authorized(self) -> bool:
@@ -50,9 +50,6 @@ License:
50
50
  limitations under the License.
51
51
  """
52
52
 
53
- import os
54
-
55
- import PyFunceble.storage
56
53
  from PyFunceble.downloader.base import DownloaderBase
57
54
 
58
55
 
@@ -64,14 +61,11 @@ class UserAgentsDownloader(DownloaderBase):
64
61
  DOWNTIME_INDEX: str = "user_agents"
65
62
  DOWNLOAD_FREQUENCY: int = 1
66
63
 
67
- def __init__(self) -> None:
68
- self.destination = os.path.join(
69
- PyFunceble.storage.CONFIG_DIRECTORY,
70
- PyFunceble.storage.USER_AGENT_FILENAME,
71
- )
72
- self.download_link = PyFunceble.storage.USER_AGENT_DUMP_LINK
73
-
74
- super().__init__()
64
+ # pylint: disable=line-too-long
65
+ DEFAULT_DOWNLOAD_URL: str = (
66
+ "https://raw.githubusercontent.com/PyFunceble/user_agents/master/user_agents.json"
67
+ )
68
+ DEFAULT_FILENAME: str = "user_agents.json"
75
69
 
76
70
  @property
77
71
  def authorized(self) -> bool:
@@ -369,6 +369,7 @@ class WhoisQueryTool:
369
369
 
370
370
  return self.iana_dataset.get_whois_server(extension)
371
371
 
372
+ @update_lookup_record
372
373
  def get_lookup_record(
373
374
  self,
374
375
  ) -> Optional[WhoisQueryToolRecord]:
PyFunceble/storage.py CHANGED
@@ -61,36 +61,19 @@ 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.29.dev (Blue Duckling: Tulip)"
64
+ PROJECT_VERSION: str = "4.3.0a1.dev (Blue Duckling: Tulip)"
65
65
 
66
66
  DISTRIBUTED_CONFIGURATION_FILENAME: str = ".PyFunceble_production.yaml"
67
- DISTRIBUTED_DIR_STRUCTURE_FILENAME: str = "dir_structure_production.json"
68
67
 
69
- IANA_DUMP_FILENAME: str = "iana-domains-db.json"
70
- PUBLIC_SUFFIX_DUMP_FILENAME: str = "public-suffix.json"
71
68
  CONFIGURATION_FILENAME: str = ".PyFunceble.yaml"
72
- CONFIGURATION_OVERWRITE_FILENAME: str = ".PyFunceble.overwrite.yaml"
73
69
  ENV_FILENAME: str = ".pyfunceble-env"
74
- DOWN_FILENAME: str = ".pyfunceble_intern_downtime.json"
75
- USER_AGENT_FILENAME: str = "user_agents.json"
76
- IPV4_REPUTATION_FILENAME: str = "ipv4_reputation.data"
77
70
 
78
71
  # pylint: disable=line-too-long
79
- IANA_DUMP_LINK: str = (
80
- "https://raw.githubusercontent.com/PyFunceble/iana/master/iana-domains-db.json"
81
- )
82
- PUBLIC_SUFFIX_DUMP_LINK: str = (
83
- "https://raw.githubusercontent.com/PyFunceble/public-suffix/master/public-suffix.json"
84
- )
85
- USER_AGENT_DUMP_LINK: str = (
86
- "https://raw.githubusercontent.com/PyFunceble/user_agents/master/user_agents.json"
87
- )
88
- IPV4_REPUTATION_DUMP_LINK: str = "https://reputation.alienvault.com/reputation.data"
89
72
 
90
73
  SHORT_REPO_LINK: str = "https://pyfunceble.github.io"
91
74
  REPO_LINK: str = "https://github.com/funilrys/PyFunceble"
92
75
 
93
- NOT_RESOLVED_STD_HOSTNAME: str = f"pyfunceble-{secrets.token_hex(12)}.com"
76
+ NOT_RESOLVED_STD_HOSTNAME: str = f"{secrets.token_hex(12)}.mock-resolver.pyfunceble.com"
94
77
 
95
78
  IANA: Optional[dict] = {}
96
79
  PUBLIC_SUFFIX: Optional[dict] = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyFunceble-dev
3
- Version: 4.2.29
3
+ Version: 4.3.0a1
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
@@ -22,91 +22,91 @@ Classifier: License :: OSI Approved
22
22
  Requires-Python: >=3.8, <4
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
- Requires-Dist: domain2idna~=1.12.0
26
- Requires-Dist: dnspython[doh]~=2.6.0
25
+ Requires-Dist: setuptools>=65.5.1
27
26
  Requires-Dist: requests[socks]<3
28
- Requires-Dist: PyYAML
29
27
  Requires-Dist: inflection
30
- Requires-Dist: python-dotenv
28
+ Requires-Dist: packaging
29
+ Requires-Dist: colorama
30
+ Requires-Dist: PyMySQL
31
+ Requires-Dist: PyYAML
32
+ Requires-Dist: python-box[all]~=6.0.0
31
33
  Requires-Dist: shtab
34
+ Requires-Dist: python-dotenv
35
+ Requires-Dist: dnspython[doh]~=2.6.0
32
36
  Requires-Dist: SQLAlchemy[postgresql-psycopg2binary]~=2.0
33
- Requires-Dist: python-box[all]~=6.0.0
34
- Requires-Dist: setuptools>=65.5.1
35
37
  Requires-Dist: cryptography~=42.0
36
- Requires-Dist: PyMySQL
37
- Requires-Dist: packaging
38
38
  Requires-Dist: alembic
39
- Requires-Dist: colorama
39
+ Requires-Dist: domain2idna~=1.12.0
40
40
  Provides-Extra: dev
41
- Requires-Dist: black; extra == "dev"
42
- Requires-Dist: pylint; extra == "dev"
43
41
  Requires-Dist: isort; extra == "dev"
42
+ Requires-Dist: black; extra == "dev"
44
43
  Requires-Dist: flake8; extra == "dev"
44
+ Requires-Dist: pylint; extra == "dev"
45
45
  Provides-Extra: docs
46
- Requires-Dist: zipp>=3.19.1; extra == "docs"
47
- Requires-Dist: mkdocstrings[python]~=0.26; extra == "docs"
46
+ Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "docs"
47
+ Requires-Dist: mkdocs-material~=9.5; extra == "docs"
48
48
  Requires-Dist: mkdocs-gen-files~=0.5; extra == "docs"
49
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "docs"
49
50
  Requires-Dist: mkdocs-literate-nav~=0.6; extra == "docs"
50
51
  Requires-Dist: mkdocs-section-index~=0.3; extra == "docs"
51
- Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "docs"
52
- Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "docs"
52
+ Requires-Dist: mkdocstrings[python]~=0.26; extra == "docs"
53
+ Requires-Dist: zipp>=3.19.1; extra == "docs"
54
+ Requires-Dist: pymdown-extensions~=10.9; extra == "docs"
53
55
  Requires-Dist: mkdocs~=1.5; extra == "docs"
54
- Requires-Dist: mkdocs-material~=9.5; extra == "docs"
55
56
  Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "docs"
56
- Requires-Dist: pymdown-extensions~=10.9; extra == "docs"
57
57
  Provides-Extra: full
58
- Requires-Dist: zipp>=3.19.1; extra == "full"
59
- Requires-Dist: domain2idna~=1.12.0; extra == "full"
60
- Requires-Dist: dnspython[doh]~=2.6.0; extra == "full"
61
- Requires-Dist: requests[socks]<3; extra == "full"
62
- Requires-Dist: inflection; extra == "full"
58
+ Requires-Dist: mkdocs-section-index~=0.3; extra == "full"
59
+ Requires-Dist: mkdocstrings[python]~=0.26; extra == "full"
63
60
  Requires-Dist: python-dotenv; extra == "full"
61
+ Requires-Dist: SQLAlchemy[postgresql-psycopg2binary]~=2.0; extra == "full"
62
+ Requires-Dist: pymdown-extensions~=10.9; extra == "full"
63
+ Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "full"
64
+ Requires-Dist: tox; extra == "full"
64
65
  Requires-Dist: pylint; extra == "full"
65
- Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "full"
66
- Requires-Dist: PyYAML; extra == "full"
67
- Requires-Dist: mkdocs-gen-files~=0.5; extra == "full"
68
- Requires-Dist: coverage; extra == "full"
69
66
  Requires-Dist: shtab; extra == "full"
70
- Requires-Dist: setuptools>=65.5.1; extra == "full"
71
- Requires-Dist: cryptography~=42.0; extra == "full"
67
+ Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "full"
68
+ Requires-Dist: mkdocs-material~=9.5; extra == "full"
72
69
  Requires-Dist: colorama; extra == "full"
73
- Requires-Dist: flake8; extra == "full"
74
- Requires-Dist: tox; extra == "full"
75
- Requires-Dist: mkdocstrings[python]~=0.26; extra == "full"
76
70
  Requires-Dist: mkdocs-literate-nav~=0.6; extra == "full"
77
- Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "full"
71
+ Requires-Dist: PyMySQL; extra == "full"
72
+ Requires-Dist: dnspython[doh]~=2.6.0; extra == "full"
73
+ Requires-Dist: setuptools>=65.5.1; extra == "full"
78
74
  Requires-Dist: isort; extra == "full"
79
- Requires-Dist: pymdown-extensions~=10.9; extra == "full"
75
+ Requires-Dist: inflection; extra == "full"
80
76
  Requires-Dist: packaging; extra == "full"
81
- Requires-Dist: alembic; extra == "full"
82
- Requires-Dist: mkdocs-section-index~=0.3; extra == "full"
83
- Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "full"
84
- Requires-Dist: SQLAlchemy[postgresql-psycopg2binary]~=2.0; extra == "full"
85
- Requires-Dist: mkdocs~=1.5; extra == "full"
86
77
  Requires-Dist: python-box[all]~=6.0.0; extra == "full"
87
- Requires-Dist: PyMySQL; extra == "full"
88
- Requires-Dist: mkdocs-material~=9.5; extra == "full"
89
78
  Requires-Dist: black; extra == "full"
79
+ Requires-Dist: zipp>=3.19.1; extra == "full"
80
+ Requires-Dist: cryptography~=42.0; extra == "full"
81
+ Requires-Dist: requests[socks]<3; extra == "full"
82
+ Requires-Dist: domain2idna~=1.12.0; extra == "full"
83
+ Requires-Dist: mkdocs-gen-files~=0.5; extra == "full"
84
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "full"
85
+ Requires-Dist: PyYAML; extra == "full"
86
+ Requires-Dist: mkdocs~=1.5; extra == "full"
87
+ Requires-Dist: coverage; extra == "full"
88
+ Requires-Dist: flake8; extra == "full"
89
+ Requires-Dist: alembic; extra == "full"
90
90
  Provides-Extra: psql
91
- Requires-Dist: domain2idna~=1.12.0; extra == "psql"
92
- Requires-Dist: dnspython[doh]~=2.6.0; extra == "psql"
91
+ Requires-Dist: setuptools>=65.5.1; extra == "psql"
93
92
  Requires-Dist: requests[socks]<3; extra == "psql"
94
- Requires-Dist: PyYAML; extra == "psql"
95
93
  Requires-Dist: inflection; extra == "psql"
96
- Requires-Dist: python-dotenv; extra == "psql"
94
+ Requires-Dist: psycopg2; extra == "psql"
95
+ Requires-Dist: packaging; extra == "psql"
96
+ Requires-Dist: colorama; extra == "psql"
97
+ Requires-Dist: PyMySQL; extra == "psql"
98
+ Requires-Dist: PyYAML; extra == "psql"
99
+ Requires-Dist: python-box[all]~=6.0.0; extra == "psql"
97
100
  Requires-Dist: shtab; extra == "psql"
101
+ Requires-Dist: python-dotenv; extra == "psql"
102
+ Requires-Dist: dnspython[doh]~=2.6.0; extra == "psql"
98
103
  Requires-Dist: SQLAlchemy[postgresql-psycopg2binary]~=2.0; extra == "psql"
99
- Requires-Dist: python-box[all]~=6.0.0; extra == "psql"
100
- Requires-Dist: setuptools>=65.5.1; extra == "psql"
101
104
  Requires-Dist: cryptography~=42.0; extra == "psql"
102
- Requires-Dist: PyMySQL; extra == "psql"
103
- Requires-Dist: psycopg2; extra == "psql"
104
- Requires-Dist: packaging; extra == "psql"
105
105
  Requires-Dist: alembic; extra == "psql"
106
- Requires-Dist: colorama; extra == "psql"
106
+ Requires-Dist: domain2idna~=1.12.0; extra == "psql"
107
107
  Provides-Extra: test
108
- Requires-Dist: coverage; extra == "test"
109
108
  Requires-Dist: tox; extra == "test"
109
+ Requires-Dist: coverage; extra == "test"
110
110
 
111
111
  ![image](https://raw.githubusercontent.com/PyFunceble/logo/dev/Green/HD/RM.png)
112
112
 
@@ -153,8 +153,6 @@ Happy testing with PyFunceble!
153
153
 
154
154
  # Table of Content
155
155
 
156
- - [The tool to check the availability or syntax of domain, IP or URL](#the-tool-to-check-the-availability-or-syntax-of-domain-ip-or-url)
157
- - [Table of Content](#table-of-content)
158
156
  - [Installation](#installation)
159
157
  - [Packages \& Versioning](#packages--versioning)
160
158
  - [PyPi - Python Package Index](#pypi---python-package-index)
@@ -507,6 +505,7 @@ contribution(s) and or issue report which made or make
507
505
  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
508
506
  <!-- prettier-ignore-start -->
509
507
  <!-- markdownlint-disable -->
508
+
510
509
  <table>
511
510
  <tbody>
512
511
  <tr>
@@ -524,34 +523,35 @@ contribution(s) and or issue report which made or make
524
523
  <td align="center" valign="top" width="20%"><a href="https://github.com/ybreza"><img src="https://avatars.githubusercontent.com/u/35470865?v=4?s=100" width="100px;" alt="Reza Rizqullah"/><br /><sub><b>Reza Rizqullah</b></sub></a><br /><a href="#design-ybreza" title="Design">🎨</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=ybreza" title="Code">💻</a></td>
525
524
  </tr>
526
525
  <tr>
526
+ <td align="center" valign="top" width="20%"><a href="https://github.com/techdragon"><img src="https://avatars.githubusercontent.com/u/2115079?v=4?s=100" width="100px;" alt="Samuel Bishop"/><br /><sub><b>Samuel Bishop</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Atechdragon" title="Bug reports">🐛</a> <a href="#ideas-techdragon" title="Ideas, Planning, & Feedback">🤔</a></td>
527
527
  <td align="center" valign="top" width="20%"><a href="https://scripttiger.github.io/"><img src="https://avatars.githubusercontent.com/u/29940916?v=4?s=100" width="100px;" alt="ScriptTiger"/><br /><sub><b>ScriptTiger</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AScriptTiger" title="Bug reports">🐛</a> <a href="#ideas-ScriptTiger" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=ScriptTiger" title="Tests">⚠️</a></td>
528
528
  <td align="center" valign="top" width="20%"><a href="https://github.com/sjhgvr"><img src="https://avatars.githubusercontent.com/u/51121527?v=4?s=100" width="100px;" alt="Stephan van Ruth"/><br /><sub><b>Stephan van Ruth</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Asjhgvr" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=sjhgvr" title="Tests">⚠️</a></td>
529
529
  <td align="center" valign="top" width="20%"><a href="http://stevenblack.com/"><img src="https://avatars.githubusercontent.com/u/80144?v=4?s=100" width="100px;" alt="Steven Black"/><br /><sub><b>Steven Black</b></sub></a><br /><a href="#ideas-StevenBlack" title="Ideas, Planning, & Feedback">🤔</a> <a href="#financial-StevenBlack" title="Financial">💵</a></td>
530
530
  <td align="center" valign="top" width="20%"><a href="https://github.com/T145"><img src="https://avatars.githubusercontent.com/u/1214129?v=4?s=100" width="100px;" alt="T145"/><br /><sub><b>T145</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AT145" title="Bug reports">🐛</a> <a href="#ideas-T145" title="Ideas, Planning, & Feedback">🤔</a></td>
531
- <td align="center" valign="top" width="20%"><a href="https://infosec.exchange/@wally3k"><img src="https://avatars.githubusercontent.com/u/3049142?v=4?s=100" width="100px;" alt="WaLLy3K"/><br /><sub><b>WaLLy3K</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AWaLLy3K" title="Bug reports">🐛</a> <a href="#ideas-WaLLy3K" title="Ideas, Planning, & Feedback">🤔</a></td>
532
531
  </tr>
533
532
  <tr>
533
+ <td align="center" valign="top" width="20%"><a href="https://infosec.exchange/@wally3k"><img src="https://avatars.githubusercontent.com/u/3049142?v=4?s=100" width="100px;" alt="WaLLy3K"/><br /><sub><b>WaLLy3K</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AWaLLy3K" title="Bug reports">🐛</a> <a href="#ideas-WaLLy3K" title="Ideas, Planning, & Feedback">🤔</a></td>
534
534
  <td align="center" valign="top" width="20%"><a href="https://github.com/Yuki2718"><img src="https://avatars.githubusercontent.com/u/58900598?v=4?s=100" width="100px;" alt="Yuki2718"/><br /><sub><b>Yuki2718</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AYuki2718" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=Yuki2718" title="Tests">⚠️</a></td>
535
535
  <td align="center" valign="top" width="20%"><a href="https://github.com/Zachinquarantine"><img src="https://avatars.githubusercontent.com/u/69423184?v=4?s=100" width="100px;" alt="Zachinquarantine"/><br /><sub><b>Zachinquarantine</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/commits?author=Zachinquarantine" title="Code">💻</a></td>
536
536
  <td align="center" valign="top" width="20%"><a href="http://bit.ly/cBWeb"><img src="https://avatars.githubusercontent.com/u/28985171?v=4?s=100" width="100px;" alt="ZeroDot1"/><br /><sub><b>ZeroDot1</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AZeroDot1" title="Bug reports">🐛</a> <a href="#ideas-ZeroDot1" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-ZeroDot1" title="Answering Questions">💬</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=ZeroDot1" title="Tests">⚠️</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=ZeroDot1" title="Code">💻</a></td>
537
537
  <td align="center" valign="top" width="20%"><a href="https://github.com/avatartw"><img src="https://avatars.githubusercontent.com/u/69660730?v=4?s=100" width="100px;" alt="avatartw"/><br /><sub><b>avatartw</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Aavatartw" title="Bug reports">🐛</a></td>
538
- <td align="center" valign="top" width="20%"><a href="https://github.com/dnmTX"><img src="https://avatars.githubusercontent.com/u/34774426?v=4?s=100" width="100px;" alt="dnmTX"/><br /><sub><b>dnmTX</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AdnmTX" title="Bug reports">🐛</a> <a href="#ideas-dnmTX" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-dnmTX" title="Answering Questions">💬</a> <a href="https://github.com/funilrys/PyFunceble/pulls?q=is%3Apr+reviewed-by%3AdnmTX" title="Reviewed Pull Requests">👀</a> <a href="#data-dnmTX" title="Data">🔣</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=dnmTX" title="Tests">⚠️</a></td>
539
538
  </tr>
540
539
  <tr>
540
+ <td align="center" valign="top" width="20%"><a href="https://github.com/dnmTX"><img src="https://avatars.githubusercontent.com/u/34774426?v=4?s=100" width="100px;" alt="dnmTX"/><br /><sub><b>dnmTX</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3AdnmTX" title="Bug reports">🐛</a> <a href="#ideas-dnmTX" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-dnmTX" title="Answering Questions">💬</a> <a href="https://github.com/funilrys/PyFunceble/pulls?q=is%3Apr+reviewed-by%3AdnmTX" title="Reviewed Pull Requests">👀</a> <a href="#data-dnmTX" title="Data">🔣</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=dnmTX" title="Tests">⚠️</a></td>
541
541
  <td align="center" valign="top" width="20%"><a href="https://github.com/gwarser"><img src="https://avatars.githubusercontent.com/u/886325?v=4?s=100" width="100px;" alt="gwarser"/><br /><sub><b>gwarser</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Agwarser" title="Bug reports">🐛</a> <a href="#data-gwarser" title="Data">🔣</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=gwarser" title="Tests">⚠️</a></td>
542
542
  <td align="center" valign="top" width="20%"><a href="https://github.com/hawkeye116477"><img src="https://avatars.githubusercontent.com/u/19818572?v=4?s=100" width="100px;" alt="hawkeye116477"/><br /><sub><b>hawkeye116477</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Ahawkeye116477" title="Bug reports">🐛</a></td>
543
543
  <td align="center" valign="top" width="20%"><a href="https://github.com/jawz101"><img src="https://avatars.githubusercontent.com/u/14151703?v=4?s=100" width="100px;" alt="jawz101"/><br /><sub><b>jawz101</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Ajawz101" title="Bug reports">🐛</a> <a href="#ideas-jawz101" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-jawz101" title="Answering Questions">💬</a> <a href="#data-jawz101" title="Data">🔣</a></td>
544
544
  <td align="center" valign="top" width="20%"><a href="https://github.com/keczuppp"><img src="https://avatars.githubusercontent.com/u/74409207?v=4?s=100" width="100px;" alt="keczuppp"/><br /><sub><b>keczuppp</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Akeczuppp" title="Bug reports">🐛</a> <a href="#ideas-keczuppp" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-keczuppp" title="Answering Questions">💬</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=keczuppp" title="Tests">⚠️</a> <a href="#data-keczuppp" title="Data">🔣</a></td>
545
- <td align="center" valign="top" width="20%"><a href="https://github.com/opav"><img src="https://avatars.githubusercontent.com/u/6770347?v=4?s=100" width="100px;" alt="opav"/><br /><sub><b>opav</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Aopav" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=opav" title="Tests">⚠️</a></td>
546
545
  </tr>
547
546
  <tr>
547
+ <td align="center" valign="top" width="20%"><a href="https://github.com/opav"><img src="https://avatars.githubusercontent.com/u/6770347?v=4?s=100" width="100px;" alt="opav"/><br /><sub><b>opav</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Aopav" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=opav" title="Tests">⚠️</a></td>
548
548
  <td align="center" valign="top" width="20%"><a href="https://github.com/rusty-snake"><img src="https://avatars.githubusercontent.com/u/41237666?v=4?s=100" width="100px;" alt="rusty-snake"/><br /><sub><b>rusty-snake</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Arusty-snake" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=rusty-snake" title="Documentation">📖</a></td>
549
549
  <td align="center" valign="top" width="20%"><a href="https://github.com/smed79"><img src="https://avatars.githubusercontent.com/u/1873139?v=4?s=100" width="100px;" alt="smed79"/><br /><sub><b>smed79</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Asmed79" title="Bug reports">🐛</a> <a href="#ideas-smed79" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=smed79" title="Code">💻</a> <a href="#question-smed79" title="Answering Questions">💬</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=smed79" title="Tests">⚠️</a></td>
550
550
  <td align="center" valign="top" width="20%"><a href="https://speedmann.de/"><img src="https://avatars.githubusercontent.com/u/424659?v=4?s=100" width="100px;" alt="speedmann"/><br /><sub><b>speedmann</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Aspeedmann" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=speedmann" title="Tests">⚠️</a></td>
551
551
  <td align="center" valign="top" width="20%"><a href="https://www.mypdns.org/"><img src="https://avatars.githubusercontent.com/u/44526987?v=4?s=100" width="100px;" alt="spirillen"/><br /><sub><b>spirillen</b></sub></a><br /><a href="#a11y-spirillen" title="Accessibility">️️️️♿️</a> <a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Aspirillen" title="Bug reports">🐛</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=spirillen" title="Code">💻</a> <a href="#content-spirillen" title="Content">🖋</a> <a href="#data-spirillen" title="Data">🔣</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=spirillen" title="Documentation">📖</a> <a href="#example-spirillen" title="Examples">💡</a> <a href="#ideas-spirillen" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-spirillen" title="Maintenance">🚧</a> <a href="#mentoring-spirillen" title="Mentoring">🧑‍🏫</a> <a href="#promotion-spirillen" title="Promotion">📣</a> <a href="#question-spirillen" title="Answering Questions">💬</a> <a href="https://github.com/funilrys/PyFunceble/pulls?q=is%3Apr+reviewed-by%3Aspirillen" title="Reviewed Pull Requests">👀</a> <a href="#tool-spirillen" title="Tools">🔧</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=spirillen" title="Tests">⚠️</a> <a href="#tutorial-spirillen" title="Tutorials">✅</a> <a href="#talk-spirillen" title="Talks">📢</a> <a href="#userTesting-spirillen" title="User Testing">📓</a></td>
552
- <td align="center" valign="top" width="20%"><a href="https://github.com/NeolithEra"><img src="https://avatars.githubusercontent.com/u/52778917?v=4?s=100" width="100px;" alt="watchman-pypi"/><br /><sub><b>watchman-pypi</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3ANeolithEra" title="Bug reports">🐛</a></td>
553
552
  </tr>
554
553
  <tr>
554
+ <td align="center" valign="top" width="20%"><a href="https://github.com/NeolithEra"><img src="https://avatars.githubusercontent.com/u/52778917?v=4?s=100" width="100px;" alt="watchman-pypi"/><br /><sub><b>watchman-pypi</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3ANeolithEra" title="Bug reports">🐛</a></td>
555
555
  <td align="center" valign="top" width="20%"><a href="https://github.com/xxcriticxx"><img src="https://avatars.githubusercontent.com/u/15007183?v=4?s=100" width="100px;" alt="xxcriticxx"/><br /><sub><b>xxcriticxx</b></sub></a><br /><a href="https://github.com/funilrys/PyFunceble/issues?q=author%3Axxcriticxx" title="Bug reports">🐛</a> <a href="#ideas-xxcriticxx" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/funilrys/PyFunceble/commits?author=xxcriticxx" title="Tests">⚠️</a></td>
556
556
  </tr>
557
557
  </tbody>
@@ -4,7 +4,7 @@ PyFunceble/facility.py,sha256=hyEzCCTOgtAS0x88uEtv9xNwIXnDCDvgq5RHcPNDE-A,2626
4
4
  PyFunceble/factory.py,sha256=ETvTe1Ss3VaIhSBOj-ro80XFAYiknsGG9B5oKpubr2s,2576
5
5
  PyFunceble/logger.py,sha256=pmValhdu0XB34FrK1rSgOAhr4spQ8a3QbqQ26jpJHa0,16815
6
6
  PyFunceble/sessions.py,sha256=juHBKHSuVd-tAEIMRj3RXyGyUhZQLEBmeMssd_5qo1U,2568
7
- PyFunceble/storage.py,sha256=9ukPKSoukWVR1unQn9wDoQ4Nevq1xgo4vDcnxcvd7vk,6283
7
+ PyFunceble/storage.py,sha256=6GRLCZisSnTCfuZN4ph6HpMVGic7yzv11CyhIAjbbYg,5453
8
8
  PyFunceble/storage_facility.py,sha256=uvW91dOTxF7-2nXxIp2xGI5sDRABBoGMA7D9xfemfGk,4819
9
9
  PyFunceble/checker/__init__.py,sha256=jSCfY25VNBrxLECSgNwU6kTGSl0bM1_JLl_UKvtKP6w,2430
10
10
  PyFunceble/checker/base.py,sha256=WP9Rjl6rvsq69oCaG4a5WDhoWofMpyxfa4K-WY27Gxw,13615
@@ -73,7 +73,7 @@ PyFunceble/cli/entry_points/production.py,sha256=dURFC6pq3cPmdECFea-q8KtJtuH2SoD
73
73
  PyFunceble/cli/entry_points/public_suffix.py,sha256=ES0r2xEhr197fasJlBtqO78RLAXgVVB58L6wIlSC1q0,4332
74
74
  PyFunceble/cli/entry_points/pyfunceble/__init__.py,sha256=RQ_anWOFdIlU2AVC7i_iKcj_Tq-qttbNwHe0HWVBCms,2485
75
75
  PyFunceble/cli/entry_points/pyfunceble/argsparser.py,sha256=FY3H6IcvHcKs2hIbXQBcjslPALc4AYhRwqvCdpU1Gd4,4748
76
- PyFunceble/cli/entry_points/pyfunceble/cli.py,sha256=AnrW1q9OdpaFnL3-5bQGvqr-k1yXFlO0Gb4hCsLsHfw,47666
76
+ PyFunceble/cli/entry_points/pyfunceble/cli.py,sha256=oW9QT3r8I8HzRVNN4gjNz9kbizNF7AOSJW56KnbTz7c,48335
77
77
  PyFunceble/cli/filesystem/__init__.py,sha256=eIS11poQbnYOC9PhQJ2cRuh4_qiPLJdS9O4RkiJD3HA,2483
78
78
  PyFunceble/cli/filesystem/cleanup.py,sha256=4Q04KAfHlkp0NiHmDN_BVuv2QBRN-D_5vJybE7Ohw2E,4813
79
79
  PyFunceble/cli/filesystem/counter.py,sha256=Fp1Tp81hw5T6gY6NBW9hNL7U1vweotNt8plWRwbXtfM,6963
@@ -83,7 +83,7 @@ PyFunceble/cli/filesystem/registrar_counter.py,sha256=BXiJOJoaR0NaL7jHEE-RjkCBqU
83
83
  PyFunceble/cli/filesystem/status_file.py,sha256=TJBHc478WOASx-rEU0YjUxjN6xAH9-OSefkpQB8oO9E,24638
84
84
  PyFunceble/cli/filesystem/dir_structure/__init__.py,sha256=P3bSNNzTzaO8-tyYojF3wCXvDLWjZZ8RqImzHDa6oRE,2491
85
85
  PyFunceble/cli/filesystem/dir_structure/backup.py,sha256=IomFlcp6XMPbvFrGiqSreo8pNBV-HdhCkGrEIRMD-VQ,4282
86
- PyFunceble/cli/filesystem/dir_structure/base.py,sha256=9iVrFaY-MXTx1bdfqQEmfH8bJKBWB9YqvWMoTlerKLw,5362
86
+ PyFunceble/cli/filesystem/dir_structure/base.py,sha256=5hYk53WMjQ9glZhYXYLulEPF57EpWBtCPK2QtLywk-4,5314
87
87
  PyFunceble/cli/filesystem/dir_structure/restore.py,sha256=WxERB43nqD4o0LjpdKJl3nenKaFc1KXed8C_gkaQouw,5869
88
88
  PyFunceble/cli/filesystem/printer/__init__.py,sha256=7f7CgyOD7Rr2E5IGw99XiO1b_VSH_Nb6T6klH3gDJfM,2484
89
89
  PyFunceble/cli/filesystem/printer/base.py,sha256=9SG2gSB6eRJyyQPlpX8qTX7QtFVKb39m5idsJC8v6Oo,12251
@@ -91,21 +91,21 @@ PyFunceble/cli/filesystem/printer/file.py,sha256=YqUXB1-Bw7INYhX7RdQgmRc7LDxDLdE
91
91
  PyFunceble/cli/filesystem/printer/stdout.py,sha256=eWAKQf1bUANLZwQDvEibw6MmDLo-nM3iy7YAv70iu8c,7695
92
92
  PyFunceble/cli/migrators/__init__.py,sha256=SNg9YIhkG_Uv5E6GtGnmD2hjeAD6Pno5U7-clQdWo0g,2438
93
93
  PyFunceble/cli/migrators/alembic.py,sha256=5iL4QSvbBVjFMGto4zka6YNH2DawbMYUZtxtkffDAz8,7509
94
- PyFunceble/cli/migrators/base.py,sha256=3-Inlz0a0NxoA2z9zMtlPkcVsF1WCdoP2F1xWUukyQg,3282
94
+ PyFunceble/cli/migrators/base.py,sha256=KYXwVKvehaeMYEA9j1g_VVPIA2iZMSmre0bsj2xkITM,4395
95
95
  PyFunceble/cli/migrators/db_base.py,sha256=FNUs8a1HfUWWxSqoFiVU-jwcdWiqMraObWAL4K4J01Y,4104
96
96
  PyFunceble/cli/migrators/csv_file/__init__.py,sha256=OXu2jqG7NHd9O7-q-fuymBhfA_kFbAgE0DEbkZ5ZAFs,2443
97
97
  PyFunceble/cli/migrators/csv_file/base.py,sha256=Wkx64Vffai-YZJ-keUWa4Ps9EZSCZu2ZJ7Z_muYef28,5774
98
- PyFunceble/cli/migrators/csv_file/inactive_source_delete.py,sha256=ZZvEZtsz17MEutOueuU7ML1BL8bPXU7cFGeXfHX0wf4,3243
99
- PyFunceble/cli/migrators/csv_file/whois_registrar_add.py,sha256=ZzMQPOE20rddj-epf1XiFC_lTokIRAnNgkxFIywn3l8,3181
98
+ PyFunceble/cli/migrators/csv_file/inactive_source_delete.py,sha256=0YGDim1-aBjezPV64AgrcvjzXm0dP3ZiTM0bIRPCvo8,3223
99
+ PyFunceble/cli/migrators/csv_file/whois_registrar_add.py,sha256=9-esIExBp7dHPWYzKILLZ1GBL4hFg8jV8lwy1blFC5A,3161
100
100
  PyFunceble/cli/migrators/file_cleanup/__init__.py,sha256=p3dm45213UbwqeQufTCBw-Agbp7oqbHNWhPkwOkFP-g,2444
101
101
  PyFunceble/cli/migrators/file_cleanup/base.py,sha256=54YTXe8FzaAFCWC6TyRpSyo7lgOt0DtQd2ZVviPNWrs,4119
102
- PyFunceble/cli/migrators/file_cleanup/hashes_file.py,sha256=ahctAQmPHKAcES3Ti-avGJZx7xBeQ4RvgbaMsTIilOc,2971
103
- PyFunceble/cli/migrators/file_cleanup/mining_file.py,sha256=E5pWwuwyUFWc0KdYYl0-be_yxtg1do0PnFkB1-VbtYg,2971
104
- PyFunceble/cli/migrators/file_cleanup/production_config_file.py,sha256=WUTlRVzFq1nLOyX8IgjAUBZZYGutKgQQui3jreRZwK4,3050
102
+ PyFunceble/cli/migrators/file_cleanup/hashes_file.py,sha256=-bxe4jnCraZfK0_Axq3w_YjqOekRQSbMUG_iNjlRAds,2951
103
+ PyFunceble/cli/migrators/file_cleanup/mining_file.py,sha256=phYR-VIie3py2D8mzU3Q9iJkyXHzEFYVSbbtXJKwzeI,2951
104
+ PyFunceble/cli/migrators/file_cleanup/production_config_file.py,sha256=ViyD1xjV79z5kK5QnGW6oiaBMgaaosGqBBPVS9P_mOU,3030
105
105
  PyFunceble/cli/migrators/json2csv/__init__.py,sha256=4y2mTt48r0cfAzXcdpVf6HH6pMJxPTg2eJ6oiS95qOw,2443
106
106
  PyFunceble/cli/migrators/json2csv/base.py,sha256=VFERYlVWK5G9sj2L8jM1nSNoP2e4eOArSdmN3nHYHHs,4532
107
- PyFunceble/cli/migrators/json2csv/inactive.py,sha256=ZaYaxluHSj3V22oCCnLI8XLYQoAgZy_d0QDJ2D77HSs,6273
108
- PyFunceble/cli/migrators/json2csv/whois.py,sha256=HOKNSRYVA2mWkZPo1G-k-FVisO5qV7lEU9uCyuWOYeA,5686
107
+ PyFunceble/cli/migrators/json2csv/inactive.py,sha256=rEOOr14WMX7nlGcshvniypF2VCQuCglDTpvStX4F-cQ,6253
108
+ PyFunceble/cli/migrators/json2csv/whois.py,sha256=ZaEWzQCiSaVOAQ7Xsd_lOpnEiHpAmMgPbKNqL-DVpGg,5666
109
109
  PyFunceble/cli/migrators/mariadb/__init__.py,sha256=of8XqpZJEJzog2ktSrJslr_-Bh-RiXnbT2lE-8Prf80,2452
110
110
  PyFunceble/cli/migrators/mariadb/base.py,sha256=8GzNPImcSHTXwh9gVnJahZZRC0Ob6S1uqgAKvIU3Oh4,4691
111
111
  PyFunceble/cli/migrators/mariadb/file_and_status.py,sha256=t1ryRIJr1AGLWYzMPAmd6-OHgaguQrVxnzkGe7KSdS8,7102
@@ -133,12 +133,12 @@ PyFunceble/cli/processes/workers/producer.py,sha256=wXMyR8TIlPqW4dLZAifMRb77H41b
133
133
  PyFunceble/cli/processes/workers/tester.py,sha256=0XOiLdbOg9BsRraYPBKIv-A39NSFoKUrKuiB6iplpE8,11737
134
134
  PyFunceble/cli/scripts/__init__.py,sha256=iAXtKOkDEGrBa-zuzvVjGKH1PgjcxnGujMZzZqWj7T0,2437
135
135
  PyFunceble/cli/scripts/iana.py,sha256=4mIGAYUizJBdzTnA9Gdkzvdhm62go-e8wCcYFbTe7kE,9977
136
- PyFunceble/cli/scripts/production.py,sha256=oHJkxyVFNTMjTW4ntNu7IKQBr98yCRCqygw6tG4z_f8,15708
136
+ PyFunceble/cli/scripts/production.py,sha256=obcOEmT0Y9A39F2L1H9Zm-b7gG9WOwLyg5HdFRJB32M,16620
137
137
  PyFunceble/cli/scripts/public_suffix.py,sha256=F0aCE5mAB6HJOcqq00iR_RsU24kfuB0S-w1CB9SGxBA,6479
138
138
  PyFunceble/cli/system/__init__.py,sha256=De7iCb3jgTi6NiPRsWwlEN7syLg3XTqE5qU90U4B0Sg,2508
139
139
  PyFunceble/cli/system/base.py,sha256=f_3bvihJ1YlslxZCeN_XJLh62r96RMQAE4XFLCJUXYw,4874
140
- PyFunceble/cli/system/integrator.py,sha256=qr0pGDUCI0T7K9KFhkHywgLMeLQA6TvQhCGBlJfScjo,10816
141
- PyFunceble/cli/system/launcher.py,sha256=w-_YXyJxWmGvWUPtAGYRk6B183wsPscn2QwwuXRiI4U,45525
140
+ PyFunceble/cli/system/integrator.py,sha256=7CdYWhFPVG9yu17r7JLCkK__SWsDyCfj5FTRqC2ykVM,12332
141
+ PyFunceble/cli/system/launcher.py,sha256=J6OdkhYJkdaJSWxbpcCaYINOwypXz3s53ZrexRMV4yg,45938
142
142
  PyFunceble/cli/utils/__init__.py,sha256=ZoqkMMJCwa5lWxOvK0LyU1BJ7m4F1WPlgCva42s8As8,2451
143
143
  PyFunceble/cli/utils/ascii_logo.py,sha256=wYHrkFfHPrzLPE50ELIDDtQKBdDsyz2ekHMuiJM290Q,4222
144
144
  PyFunceble/cli/utils/sort.py,sha256=cffXEaDgc10MXBG4BbUavWJGm886gEwl_NwyodUQ80Q,4361
@@ -147,7 +147,7 @@ PyFunceble/cli/utils/testing.py,sha256=yobBqTpA-MT8_sPRMohCuP4ujeCfjUMg7DhOVHfD9
147
147
  PyFunceble/cli/utils/version.py,sha256=GUIXO5hlt2uDpQS8_6QtXMaZC4Q7dpmY8fhTTRdtApk,13460
148
148
  PyFunceble/config/__init__.py,sha256=5t7ypzV6rpSz5IC0QwQMEbmWb0H_w3J917L6DC9NaWw,2454
149
149
  PyFunceble/config/compare.py,sha256=x7XeGaSwIdISiBsdvAu4Qg9ZtD1xFG5Wvh9wzZHcqe8,13577
150
- PyFunceble/config/loader.py,sha256=TIBPGMzoU6Mf_GezhuA1hVvJ_3Sxme0VjIDSeRSjGfc,15666
150
+ PyFunceble/config/loader.py,sha256=J7hVhSjYR77pX4mUrh2JNtCb2HAlwyu2UIqdizdXgKs,19428
151
151
  PyFunceble/converter/__init__.py,sha256=xV1NBUxxzsArjJfhSj0c3HLXs0QPHrX196YsbVPvrbw,2436
152
152
  PyFunceble/converter/adblock_input_line2subject.py,sha256=88zGa0BJacMVIV4LkRXX0EqT9Fez8BTUw8pzas0AwPI,12925
153
153
  PyFunceble/converter/base.py,sha256=bhljvSmbqTiEHXkZ01WyD7XYXXxYG9VmW3RNRtcZlB0,4915
@@ -190,7 +190,7 @@ PyFunceble/data/infrastructure/dir_structure_production.json,sha256=XpWin49SkoWu
190
190
  PyFunceble/database/__init__.py,sha256=r8zmExtTZguf07GzlaYW5hz11DCC1C6qeU3XvkSQXSU,2492
191
191
  PyFunceble/database/session.py,sha256=CQLXujhpRwKpOwlGmY25aP1KkxvIOmT-WpKknBfu7yQ,7489
192
192
  PyFunceble/database/credential/__init__.py,sha256=z3Ip0T7MQzWYgdNyn74VuCU6a3F99X7mZ45w4KFd_oM,2462
193
- PyFunceble/database/credential/base.py,sha256=PpGxqrXdkNIDiqYgBWhIPmGGQlTGL0u8q5Qr-dsUtXk,12166
193
+ PyFunceble/database/credential/base.py,sha256=Npc3YdT-REeP5jEGe3hEobPXUReXvECI7YncAERmEeU,13195
194
194
  PyFunceble/database/credential/mariadb.py,sha256=DD3YNMmrdbuOftnXrK_6hrehU75RvWvoGtUP9vDR8GY,2651
195
195
  PyFunceble/database/credential/mysql.py,sha256=gnBU6ZIzlm_WDSX-Km8U8Vp_67qbsP8BonVzNd23rM0,2645
196
196
  PyFunceble/database/credential/postgresql.py,sha256=ferbs7m1qRjeOJx_qE87CzzLYgqEHyxqCWZGAt4jMIY,3013
@@ -203,33 +203,33 @@ PyFunceble/database/sqlalchemy/__init__.py,sha256=9hGXY8z-8BFf5BiNow0GDMHQ8ZRwqx
203
203
  PyFunceble/database/sqlalchemy/all_schemas.py,sha256=03CQGb7fsXElTESKNnzL_zix5Ka8T2re1qL7y4AGw_I,2655
204
204
  PyFunceble/database/sqlalchemy/base_schema.py,sha256=LjDRY9JjsifYNqzpqt8nrWxabk2rlZC6d1pS3pVS0r0,3478
205
205
  PyFunceble/dataset/__init__.py,sha256=p0J-wBVbBuGtBmXLe0MEdB-2QuOa_IfzgGsdzVbNtQk,2455
206
- PyFunceble/dataset/base.py,sha256=nkI6y6YQ0I-Xp0UkX-tp_lZ6JMH_sKXcZqiA39zI0w8,5269
206
+ PyFunceble/dataset/base.py,sha256=V9UiBGAWWuM_G3Az-Qde6ERz5SRjw8A3wbochklgGMI,5269
207
207
  PyFunceble/dataset/csv_base.py,sha256=_2sdwR19wkoZwGocSdOyfSS1BopJDUwS1BoW2gibGfI,9826
208
- PyFunceble/dataset/db_base.py,sha256=LE8GADm2-wD4rlxIZFhs7Xjmt_p7Y-eL2zRtxHc6Hqk,9403
209
- PyFunceble/dataset/iana.py,sha256=xdEumdpJk8tjYRYDRbZ6zjZy-Up4QvVwoli2kdmRd2c,4099
210
- PyFunceble/dataset/ipv4_reputation.py,sha256=agcvD8BDD3boCRNnWloxt6h7daqzNtOmMv8I_xSvKyE,4074
211
- PyFunceble/dataset/public_suffix.py,sha256=_ozm2clNlKMImPC5mExJ4aTKEMgkA5lH8VqFWt1QmHI,4175
208
+ PyFunceble/dataset/db_base.py,sha256=4iTPPtsZRMXSOkJSWFSTuBUSu6dPJMEDD2n3L0nl3i4,10468
209
+ PyFunceble/dataset/iana.py,sha256=oMSx8p2PQV0tsHejqqqyacos9AzksEOq6YucDAFncBw,4021
210
+ PyFunceble/dataset/ipv4_reputation.py,sha256=a0KjYvXpaNCKOsK9yIgre-3YP2m3w_jO0_yk9b2mdOI,3977
211
+ PyFunceble/dataset/public_suffix.py,sha256=q3cUQwHP9_WxAykH45M4EhDOXxUJifpJafAAcOhg51Q,4085
212
212
  PyFunceble/dataset/sql_base.py,sha256=xgJ2g_2Xw4dxIAJRS6EN1n3R8szBYooranfa35MCI4s,10545
213
- PyFunceble/dataset/user_agent.py,sha256=UZhSPtlsFuUJjI484UitYBNcFmaotAN8T_2M-253Nws,8038
213
+ PyFunceble/dataset/user_agent.py,sha256=uQyFEnAW35y488T9zYkqoZ1bpl7xv-W74MiXAOnZGF4,7982
214
214
  PyFunceble/dataset/autocontinue/__init__.py,sha256=GyRntA6zAcd2CBm1fEO1PLYKxi8jbAJei5J88CS315w,2461
215
215
  PyFunceble/dataset/autocontinue/base.py,sha256=46yPQEUtonojqKm8Q0DQjuIaOIKRvO9DlQ-K_79flwQ,3499
216
216
  PyFunceble/dataset/autocontinue/csv.py,sha256=PRcn9xAZp2htb7mao3EgUFOpIcSi5TBOpEIwcb0dDyE,6275
217
217
  PyFunceble/dataset/autocontinue/sql.py,sha256=4qc3GT-YCw1Izh-qmuuBWjqVuYmJAsGNGg6rHzCoMbo,4271
218
218
  PyFunceble/dataset/inactive/__init__.py,sha256=gX8CbnHEcLteWh45TFueDyPrG-KOEeB0nKQW6THYgrc,2470
219
219
  PyFunceble/dataset/inactive/base.py,sha256=d6gC0ToDwwA3eRS23cqh11ZedmypuErnEUz9hLBtESc,3242
220
- PyFunceble/dataset/inactive/csv.py,sha256=4tKeZn8U_Yy9LkXr0jgJu9F9mKpSd7KVoUU_dLV_l0g,4097
220
+ PyFunceble/dataset/inactive/csv.py,sha256=TEHiG_KmdZ5PWjsPajJ5bV92WSfDXNZ8n54x5r4ISuk,4077
221
221
  PyFunceble/dataset/inactive/sql.py,sha256=efT6k05nUIBXc_FW_lRf6dZpLsx-xoSJMewWqhcZt04,3728
222
222
  PyFunceble/dataset/whois/__init__.py,sha256=uNk6WcFWbXSj7YtFjSNLWzjuliBt7Ld1UAqrygm_48Q,2467
223
223
  PyFunceble/dataset/whois/base.py,sha256=6MPRcsiiPFdLDZ7RJzHww4X0_QySs1nnfoiDgRb5q0I,4087
224
- PyFunceble/dataset/whois/csv.py,sha256=_9Od2nfvPj8eUFLAJc630V8M_pTRBexzV4Nxq0XzjAQ,6139
224
+ PyFunceble/dataset/whois/csv.py,sha256=uVkSnk_QewKIgjGet_XoqTaAaBnw9vudYQur-3VoNsw,6119
225
225
  PyFunceble/dataset/whois/sql.py,sha256=3WC2yGfqOmKZuw8EkVnlEDHmnTvnPM6K0WUGA1Mj1sU,6266
226
226
  PyFunceble/downloader/__init__.py,sha256=Vxsj63W9rJmBdu1YrwmaYfz6syx0diKJjwp_p15r4VI,2433
227
- PyFunceble/downloader/base.py,sha256=V182dY0mbr4Y2RAjBIG0PfMcn6Om1j_-k-6pRhRDtdk,8940
227
+ PyFunceble/downloader/base.py,sha256=zTMmch_SUAlPvEJypPclYUwkMc8JhRGGUvbLTFpoooI,10436
228
228
  PyFunceble/downloader/exceptions.py,sha256=JBXMPNfz8ZEc5yAaA0ExD8GXmoi1PuzSeyZsDB7SIn8,2957
229
- PyFunceble/downloader/iana.py,sha256=UgZfhg5mXyrqx3f9gYW-Rq7cB4aIQ9yIw8jd4J2A0Lw,3069
230
- PyFunceble/downloader/ipv4_reputation.py,sha256=FpueIy6gvYZBtR08ejDPLyBVnHoT8Ptm7sj8gyC7QRw,3156
231
- PyFunceble/downloader/public_suffix.py,sha256=6ZmtWl39mCIjn2SL4rHYUtRsPSiQuf-uc3II3MJmS8o,3103
232
- PyFunceble/downloader/user_agents.py,sha256=Mgjo5e3OVIGw3TavhyD2AtS9mRYNVY0ZykpifKX2fpg,3102
229
+ PyFunceble/downloader/iana.py,sha256=1w5k4NKKd3vqbhijLR1jywmLTglvPye5gtFFEW2Ktxk,2937
230
+ PyFunceble/downloader/ipv4_reputation.py,sha256=WijEvmAxxUe2BJiKGv-MzlPJhZlPMvOOFggmJtC8x-g,2963
231
+ PyFunceble/downloader/public_suffix.py,sha256=2WlRJOVBEY2U_xhG6USoH6UPpzCvy3fxxTlLr5cQ4jw,2994
232
+ PyFunceble/downloader/user_agents.py,sha256=Mor91XikTL5mjk2xREsqgcfgB-FdZd_Q1p-zBMitleI,2998
233
233
  PyFunceble/helpers/__init__.py,sha256=zsvfygp9bDStThVzkb2DsqCnZf7Lm09BgJEOFQ4N88k,2429
234
234
  PyFunceble/helpers/command.py,sha256=FfdW4fA6mHgpSePf2IvYoVxfP3OhjfohJqEtAWLMEAg,7630
235
235
  PyFunceble/helpers/dict.py,sha256=NmG0wL6ywDq9TrlKCSE8QnuFumUiL-Wj8Cd0l3AYN0c,13769
@@ -264,7 +264,7 @@ PyFunceble/query/requests/adapter/base.py,sha256=Z-eYZTTAh31yd-qic9azUJs4QW8QINP
264
264
  PyFunceble/query/requests/adapter/http.py,sha256=lbS9oBcTwCMo9BgRmikVzqWplB6cec4idqB9fKKOeyM,5653
265
265
  PyFunceble/query/requests/adapter/https.py,sha256=rJoIrBPRqbI19tixmTAZ8oM_rD8FoRIlMAWeVeznE5g,6132
266
266
  PyFunceble/query/whois/__init__.py,sha256=yVACdVxkkHNF7IItksABuHABeXDsZnCW6ZLsGVBKxIg,2481
267
- PyFunceble/query/whois/query_tool.py,sha256=zqylDPjAUMa97NjioAMOXHobDM5jTZM5cudWcAWc-B8,14644
267
+ PyFunceble/query/whois/query_tool.py,sha256=2bZdwNswvNZRVFAVFVERayWKqwq_YxckQy3mq439-vw,14670
268
268
  PyFunceble/query/whois/converter/__init__.py,sha256=HiooIbYf1zhsFpqOh23Niw2WVl4vULMD03qaYLaT68s,2473
269
269
  PyFunceble/query/whois/converter/base.py,sha256=CLK8jmCk59lnGe6wyuyidbPQXIfJCWT21UqD2OzPAf0,4363
270
270
  PyFunceble/query/whois/converter/digit2digits.py,sha256=---x91T9avGuD0ZkFaTgu7HU4qlQiuUdD6meBDTerJE,3447
@@ -275,9 +275,9 @@ PyFunceble/utils/__init__.py,sha256=Vnhd0wNrWJulWwUUK-vlv5VWBiKfSnXtI2XH_FyYkBA,
275
275
  PyFunceble/utils/platform.py,sha256=JA6rc6Uyx6czNWR9917HGB-EZyMjMK17kUVagMtEEjs,3906
276
276
  PyFunceble/utils/profile.py,sha256=f9FsKuiN3ScftqqrZ3yGpcIFqGSf616dPT_QvBduqxw,4552
277
277
  PyFunceble/utils/version.py,sha256=LvSiIrQWztuQ1qT7ekiDvh5TateyVRGMFRui73O4wFQ,8371
278
- PyFunceble_dev-4.2.29.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
279
- PyFunceble_dev-4.2.29.dist-info/METADATA,sha256=bKjQtgCwl13LHGcpToNfR2qZbxa2QWBk9ObHL5fTeYo,40282
280
- PyFunceble_dev-4.2.29.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
281
- PyFunceble_dev-4.2.29.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
282
- PyFunceble_dev-4.2.29.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
283
- PyFunceble_dev-4.2.29.dist-info/RECORD,,
278
+ PyFunceble_dev-4.3.0a1.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
279
+ PyFunceble_dev-4.3.0a1.dist-info/METADATA,sha256=FEaNLlxic7K6f1HpaJJ2ebEgVJvtQNdNc_DcC5kNFf4,40534
280
+ PyFunceble_dev-4.3.0a1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
281
+ PyFunceble_dev-4.3.0a1.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
282
+ PyFunceble_dev-4.3.0a1.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
283
+ PyFunceble_dev-4.3.0a1.dist-info/RECORD,,