PyFunceble-dev 4.3.0a10__py3-none-any.whl → 4.3.0a12__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.
- PyFunceble/cli/entry_points/pyfunceble/cli.py +25 -0
- PyFunceble/cli/filesystem/printer/base.py +19 -6
- PyFunceble/cli/processes/workers/producer.py +15 -2
- PyFunceble/data/infrastructure/.PyFunceble_production.yaml +25 -0
- PyFunceble/dataset/user_agent.py +37 -3
- PyFunceble/storage.py +1 -1
- {PyFunceble_dev-4.3.0a10.dist-info → PyFunceble_dev-4.3.0a12.dist-info}/METADATA +102 -102
- {PyFunceble_dev-4.3.0a10.dist-info → PyFunceble_dev-4.3.0a12.dist-info}/RECORD +12 -12
- {PyFunceble_dev-4.3.0a10.dist-info → PyFunceble_dev-4.3.0a12.dist-info}/LICENSE +0 -0
- {PyFunceble_dev-4.3.0a10.dist-info → PyFunceble_dev-4.3.0a12.dist-info}/WHEEL +0 -0
- {PyFunceble_dev-4.3.0a10.dist-info → PyFunceble_dev-4.3.0a12.dist-info}/entry_points.txt +0 -0
- {PyFunceble_dev-4.3.0a10.dist-info → PyFunceble_dev-4.3.0a12.dist-info}/top_level.txt +0 -0
@@ -103,6 +103,9 @@ def get_configured_value(
|
|
103
103
|
else:
|
104
104
|
result = PyFunceble.facility.ConfigLoader.get_configured_value(entry)
|
105
105
|
|
106
|
+
if isinstance(result, str) and "%" in result:
|
107
|
+
result = result.replace("%", "%%")
|
108
|
+
|
106
109
|
if negate:
|
107
110
|
result = not result
|
108
111
|
|
@@ -587,6 +590,18 @@ def get_test_control_group_data() -> List[Tuple[List[str], dict]]:
|
|
587
590
|
"get the latest (automatically) for you.",
|
588
591
|
},
|
589
592
|
),
|
593
|
+
(
|
594
|
+
[
|
595
|
+
"--user-agent-reference",
|
596
|
+
],
|
597
|
+
{
|
598
|
+
"dest": "user_agent.reference",
|
599
|
+
"type": str,
|
600
|
+
"help": "Sets the reference to append to the user agent.\n\n"
|
601
|
+
"This is useful when you want to add a reference to the "
|
602
|
+
"user agent. %s" % get_configured_value("user_agent.reference"),
|
603
|
+
},
|
604
|
+
),
|
590
605
|
(
|
591
606
|
[
|
592
607
|
"-vsc",
|
@@ -833,6 +848,16 @@ def get_output_control_group_data() -> List[Tuple[List[str], dict]]:
|
|
833
848
|
"default": "all",
|
834
849
|
},
|
835
850
|
),
|
851
|
+
(
|
852
|
+
["--display-datetime-fmt"],
|
853
|
+
{
|
854
|
+
"dest": "cli_testing.display_mode.datetime_format",
|
855
|
+
"type": str,
|
856
|
+
"help": "Sets the datetime format to use when displaying the\n"
|
857
|
+
"datetime of the test. %s"
|
858
|
+
% get_configured_value("cli_testing.display_mode.datetime_format"),
|
859
|
+
},
|
860
|
+
),
|
836
861
|
(
|
837
862
|
[
|
838
863
|
"--dots",
|
@@ -53,7 +53,7 @@ License:
|
|
53
53
|
import copy
|
54
54
|
import functools
|
55
55
|
import string
|
56
|
-
from typing import Dict, List, Optional
|
56
|
+
from typing import Any, Callable, Dict, List, Optional
|
57
57
|
|
58
58
|
|
59
59
|
class PrinterBase:
|
@@ -81,14 +81,15 @@ class PrinterBase:
|
|
81
81
|
"minutes": 2,
|
82
82
|
"seconds": 6,
|
83
83
|
"registrar": 30,
|
84
|
+
"tested_at": 19,
|
84
85
|
}
|
85
86
|
|
86
87
|
TEMPLATES: Dict[str, string.Template] = {
|
87
88
|
"all": string.Template(
|
88
89
|
"$idna_subject $status $status_source $expiration_date $registrar "
|
89
|
-
"$http_status_code $checker_type"
|
90
|
+
"$http_status_code $checker_type $tested_at"
|
90
91
|
),
|
91
|
-
"less": string.Template("$idna_subject $status $status_source"),
|
92
|
+
"less": string.Template("$idna_subject $status $status_source $tested_at"),
|
92
93
|
"simple": string.Template("$idna_subject $status"),
|
93
94
|
"percentage": string.Template("$status $percentage $amount"),
|
94
95
|
"hosts": string.Template("$ip $idna_subject"),
|
@@ -114,8 +115,11 @@ class PrinterBase:
|
|
114
115
|
"minutes": "Minutes",
|
115
116
|
"seconds": "Seconds",
|
116
117
|
"registrar": "Registrar",
|
118
|
+
"tested_at": "Tested At",
|
117
119
|
}
|
118
120
|
|
121
|
+
extra_formatters: Dict[str, Callable[..., Any]] = {}
|
122
|
+
|
119
123
|
_template_to_use: Optional[str] = None
|
120
124
|
_dataset: Optional[Dict[str, str]] = None
|
121
125
|
_skip_column: Optional[List[str]] = []
|
@@ -126,6 +130,7 @@ class PrinterBase:
|
|
126
130
|
*,
|
127
131
|
dataset: Optional[Dict[str, str]] = None,
|
128
132
|
skip_column: Optional[List[str]] = None,
|
133
|
+
extra_formatters: Optional[Dict[str, Callable[..., Any]]] = None,
|
129
134
|
) -> None:
|
130
135
|
if template_to_use is not None:
|
131
136
|
self.template_to_use = template_to_use
|
@@ -136,6 +141,9 @@ class PrinterBase:
|
|
136
141
|
if skip_column is not None:
|
137
142
|
self.skip_column = skip_column
|
138
143
|
|
144
|
+
if extra_formatters is not None:
|
145
|
+
self.extra_formatters.update(extra_formatters)
|
146
|
+
|
139
147
|
def ensure_template_to_use_is_given(func): # pylint: disable=no-self-argument
|
140
148
|
"""
|
141
149
|
Ensures that the template to use is given before launching the
|
@@ -315,9 +323,11 @@ class PrinterBase:
|
|
315
323
|
continue
|
316
324
|
|
317
325
|
if key in self.skip_column:
|
318
|
-
self.TEMPLATES[self.template_to_use].template =
|
319
|
-
self.template_to_use
|
320
|
-
|
326
|
+
self.TEMPLATES[self.template_to_use].template = (
|
327
|
+
self.TEMPLATES[self.template_to_use]
|
328
|
+
.template.replace(f"${key} ", "")
|
329
|
+
.replace(f" ${key}", "")
|
330
|
+
)
|
321
331
|
continue
|
322
332
|
|
323
333
|
to_print_data[0][key] = f"{value:<{self.STD_LENGTH[key]}}"
|
@@ -354,6 +364,9 @@ class PrinterBase:
|
|
354
364
|
if not value and value != 0:
|
355
365
|
value = self.STD_UNKNOWN
|
356
366
|
|
367
|
+
if key in self.extra_formatters:
|
368
|
+
value = self.extra_formatters[key](value)
|
369
|
+
|
357
370
|
if self.template_to_use not in ignore_length:
|
358
371
|
to_print[key] = f"{value:<{self.STD_LENGTH[key]}}"
|
359
372
|
else:
|
@@ -106,12 +106,25 @@ class ProducerWorker(WorkerBase):
|
|
106
106
|
|
107
107
|
def __post_init__(self) -> None:
|
108
108
|
skip_columns = []
|
109
|
+
extra_formatters = {}
|
109
110
|
|
110
111
|
if not PyFunceble.storage.CONFIGURATION.cli_testing.display_mode.registrar:
|
111
112
|
skip_columns.append("registrar")
|
112
113
|
|
113
|
-
|
114
|
-
|
114
|
+
if not PyFunceble.storage.CONFIGURATION.cli_testing.display_mode.datetime:
|
115
|
+
skip_columns.append("tested_at")
|
116
|
+
else:
|
117
|
+
# pylint: disable=line-too-long
|
118
|
+
extra_formatters["tested_at"] = lambda x: x.strftime(
|
119
|
+
PyFunceble.storage.CONFIGURATION.cli_testing.display_mode.datetime_format
|
120
|
+
)
|
121
|
+
|
122
|
+
self.stdout_printer = StdoutPrinter(
|
123
|
+
skip_column=skip_columns, extra_formatters=extra_formatters
|
124
|
+
)
|
125
|
+
self.file_printer = FilePrinter(
|
126
|
+
skip_column=skip_columns, extra_formatters=extra_formatters
|
127
|
+
)
|
115
128
|
self.whois_dataset = get_whois_dataset_object(db_session=self.db_session)
|
116
129
|
self.inactive_dataset = get_inactive_dataset_object(db_session=self.db_session)
|
117
130
|
self.continue_dataset = get_continue_databaset_object(
|
@@ -377,6 +377,20 @@ cli_testing:
|
|
377
377
|
# CLI Argument: --max-registrar
|
378
378
|
max_registrar: 15
|
379
379
|
|
380
|
+
# Enable/Disable the printing of the datetime of the test.
|
381
|
+
#
|
382
|
+
# CLI Argument: --display-datetime
|
383
|
+
datetime: no
|
384
|
+
|
385
|
+
# The format to use when displaying the datetime of the test.
|
386
|
+
#
|
387
|
+
# WARNING:
|
388
|
+
# This parameter is only taken into consideration when `datetime` is set
|
389
|
+
# to `yes`.
|
390
|
+
#
|
391
|
+
# CLI Argument: --display-datetime-fmt
|
392
|
+
datetime_format: "%Y-%m-%d %H:%M:%S"
|
393
|
+
|
380
394
|
testing_mode:
|
381
395
|
# Provides and select the testing mode.
|
382
396
|
#
|
@@ -615,6 +629,17 @@ user_agent:
|
|
615
629
|
# CLI Argument: -ua | --user-agent
|
616
630
|
custom: null
|
617
631
|
|
632
|
+
# Set the reference to add to the User-Agent.
|
633
|
+
# This is useful when you want to add a reference (e.g. a link) to the User-Agent.
|
634
|
+
#
|
635
|
+
# The reference will be added at the end of the User-Agent in the following format:
|
636
|
+
# {user_agent}; +{reference}
|
637
|
+
#
|
638
|
+
# When set to `null`, no reference will be added.
|
639
|
+
#
|
640
|
+
# CLI Argument: --user-agent-reference
|
641
|
+
reference: null
|
642
|
+
|
618
643
|
proxy:
|
619
644
|
# Provides everything related to the proxy usage and configuration.
|
620
645
|
#
|
PyFunceble/dataset/user_agent.py
CHANGED
@@ -196,6 +196,30 @@ class UserAgentDataset(DatasetBase):
|
|
196
196
|
and bool(self[browser_short_name.lower()][platform.lower()])
|
197
197
|
)
|
198
198
|
|
199
|
+
def format_user_agent(
|
200
|
+
self, user_agent: str, *, reference: Optional[str] = None
|
201
|
+
) -> str:
|
202
|
+
"""
|
203
|
+
Given a user agent and a reference, it returns the formatted user agent
|
204
|
+
that we have to use.
|
205
|
+
|
206
|
+
:param user_agent:
|
207
|
+
The user agent to format.
|
208
|
+
:param reference:
|
209
|
+
The reference to append to the user agent.
|
210
|
+
|
211
|
+
:return:
|
212
|
+
The formatted user agent.
|
213
|
+
"""
|
214
|
+
|
215
|
+
user_agent = user_agent.strip()
|
216
|
+
|
217
|
+
if reference:
|
218
|
+
if user_agent.endswith(";"):
|
219
|
+
return f"{user_agent} +{reference}"
|
220
|
+
return f"{user_agent}; +{reference}"
|
221
|
+
return user_agent
|
222
|
+
|
199
223
|
def get_latest(self) -> str:
|
200
224
|
"""
|
201
225
|
Provides the latest user agent for the given platform.
|
@@ -205,12 +229,19 @@ class UserAgentDataset(DatasetBase):
|
|
205
229
|
(if exists).
|
206
230
|
"""
|
207
231
|
|
232
|
+
reference = None
|
233
|
+
|
208
234
|
if PyFunceble.storage.CONFIGURATION:
|
235
|
+
reference = PyFunceble.storage.CONFIGURATION.user_agent.reference
|
236
|
+
|
209
237
|
if (
|
210
238
|
PyFunceble.storage.CONFIGURATION.user_agent
|
211
239
|
and PyFunceble.storage.CONFIGURATION.user_agent.custom
|
212
240
|
):
|
213
|
-
return
|
241
|
+
return self.format_user_agent(
|
242
|
+
PyFunceble.storage.CONFIGURATION.user_agent.custom,
|
243
|
+
reference=reference,
|
244
|
+
)
|
214
245
|
|
215
246
|
self.set_preferred(
|
216
247
|
PyFunceble.storage.CONFIGURATION.user_agent.browser,
|
@@ -220,6 +251,9 @@ class UserAgentDataset(DatasetBase):
|
|
220
251
|
result = self[self.preferred_browser][self.preferred_platform]
|
221
252
|
|
222
253
|
if isinstance(result, (list, tuple)):
|
223
|
-
return
|
254
|
+
return self.format_user_agent(
|
255
|
+
secrets.choice(result),
|
256
|
+
reference=reference,
|
257
|
+
)
|
224
258
|
|
225
|
-
return result
|
259
|
+
return self.format_user_agent(result, reference=reference)
|
PyFunceble/storage.py
CHANGED
@@ -60,7 +60,7 @@ from dotenv import load_dotenv
|
|
60
60
|
from PyFunceble.storage_facility import get_config_directory
|
61
61
|
|
62
62
|
PROJECT_NAME: str = "PyFunceble"
|
63
|
-
PROJECT_VERSION: str = "4.3.
|
63
|
+
PROJECT_VERSION: str = "4.3.0a12.dev (Blue Duckling: Tulip)"
|
64
64
|
|
65
65
|
DISTRIBUTED_CONFIGURATION_FILENAME: str = ".PyFunceble_production.yaml"
|
66
66
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: PyFunceble-dev
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.0a12
|
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,169 +22,169 @@ Classifier: License :: OSI Approved
|
|
22
22
|
Requires-Python: >=3.9, <4
|
23
23
|
Description-Content-Type: text/markdown
|
24
24
|
License-File: LICENSE
|
25
|
-
Requires-Dist: python-box[all]~=6.0.0
|
26
|
-
Requires-Dist: colorama
|
27
|
-
Requires-Dist: requests[socks]<3
|
28
|
-
Requires-Dist: setuptools>=65.5.1
|
29
25
|
Requires-Dist: dnspython[DOH]~=2.6.0
|
30
|
-
Requires-Dist: alembic
|
31
26
|
Requires-Dist: packaging
|
27
|
+
Requires-Dist: python-box[all]~=6.0.0
|
28
|
+
Requires-Dist: PyYAML
|
32
29
|
Requires-Dist: python-dotenv
|
30
|
+
Requires-Dist: PyMySQL
|
33
31
|
Requires-Dist: SQLAlchemy~=2.0
|
32
|
+
Requires-Dist: alembic
|
33
|
+
Requires-Dist: domain2idna~=1.12.0
|
34
|
+
Requires-Dist: colorama
|
34
35
|
Requires-Dist: inflection
|
36
|
+
Requires-Dist: requests[socks]<3
|
35
37
|
Requires-Dist: shtab
|
36
|
-
Requires-Dist:
|
37
|
-
Requires-Dist: PyYAML
|
38
|
-
Requires-Dist: PyMySQL
|
38
|
+
Requires-Dist: setuptools>=65.5.1
|
39
39
|
Provides-Extra: docs
|
40
|
-
Requires-Dist: mkdocs-
|
41
|
-
Requires-Dist:
|
42
|
-
Requires-Dist: pymdown-extensions~=10.9; extra == "docs"
|
43
|
-
Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "docs"
|
40
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "docs"
|
41
|
+
Requires-Dist: mkdocs-literate-nav~=0.6; extra == "docs"
|
44
42
|
Requires-Dist: mkdocs-gen-files~=0.5; extra == "docs"
|
45
|
-
Requires-Dist:
|
43
|
+
Requires-Dist: pymdown-extensions~=10.9; extra == "docs"
|
44
|
+
Requires-Dist: zipp>=3.19.1; extra == "docs"
|
46
45
|
Requires-Dist: mkdocs-section-index~=0.3; extra == "docs"
|
46
|
+
Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "docs"
|
47
|
+
Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "docs"
|
48
|
+
Requires-Dist: mkdocstrings[python]~=0.26; extra == "docs"
|
47
49
|
Requires-Dist: mkdocs~=1.5; extra == "docs"
|
48
|
-
Requires-Dist: mkdocs-
|
49
|
-
Requires-Dist: zipp>=3.19.1; extra == "docs"
|
50
|
-
Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "docs"
|
50
|
+
Requires-Dist: mkdocs-material~=9.5; extra == "docs"
|
51
51
|
Provides-Extra: dev
|
52
|
-
Requires-Dist: black; extra == "dev"
|
53
52
|
Requires-Dist: flake8; extra == "dev"
|
53
|
+
Requires-Dist: black; extra == "dev"
|
54
54
|
Requires-Dist: pylint; extra == "dev"
|
55
55
|
Requires-Dist: isort; extra == "dev"
|
56
56
|
Provides-Extra: test
|
57
|
-
Requires-Dist: tox; extra == "test"
|
58
57
|
Requires-Dist: coverage; extra == "test"
|
58
|
+
Requires-Dist: tox; extra == "test"
|
59
59
|
Provides-Extra: psql
|
60
|
-
Requires-Dist: python-box[all]~=6.0.0; extra == "psql"
|
61
|
-
Requires-Dist: psycopg2; extra == "psql"
|
62
|
-
Requires-Dist: colorama; extra == "psql"
|
63
|
-
Requires-Dist: requests[socks]<3; extra == "psql"
|
64
|
-
Requires-Dist: setuptools>=65.5.1; extra == "psql"
|
65
60
|
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "psql"
|
66
|
-
Requires-Dist: alembic; extra == "psql"
|
67
61
|
Requires-Dist: packaging; extra == "psql"
|
62
|
+
Requires-Dist: python-box[all]~=6.0.0; extra == "psql"
|
63
|
+
Requires-Dist: PyYAML; extra == "psql"
|
68
64
|
Requires-Dist: python-dotenv; extra == "psql"
|
65
|
+
Requires-Dist: psycopg2; extra == "psql"
|
66
|
+
Requires-Dist: PyMySQL; extra == "psql"
|
69
67
|
Requires-Dist: SQLAlchemy~=2.0; extra == "psql"
|
68
|
+
Requires-Dist: alembic; extra == "psql"
|
69
|
+
Requires-Dist: domain2idna~=1.12.0; extra == "psql"
|
70
|
+
Requires-Dist: colorama; extra == "psql"
|
70
71
|
Requires-Dist: inflection; extra == "psql"
|
72
|
+
Requires-Dist: requests[socks]<3; extra == "psql"
|
71
73
|
Requires-Dist: shtab; extra == "psql"
|
72
|
-
Requires-Dist:
|
73
|
-
Requires-Dist: PyYAML; extra == "psql"
|
74
|
-
Requires-Dist: PyMySQL; extra == "psql"
|
74
|
+
Requires-Dist: setuptools>=65.5.1; extra == "psql"
|
75
75
|
Provides-Extra: psql-binary
|
76
|
-
Requires-Dist: python-box[all]~=6.0.0; extra == "psql-binary"
|
77
|
-
Requires-Dist: colorama; extra == "psql-binary"
|
78
|
-
Requires-Dist: requests[socks]<3; extra == "psql-binary"
|
79
|
-
Requires-Dist: setuptools>=65.5.1; extra == "psql-binary"
|
80
76
|
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "psql-binary"
|
81
|
-
Requires-Dist: alembic; extra == "psql-binary"
|
82
77
|
Requires-Dist: packaging; extra == "psql-binary"
|
78
|
+
Requires-Dist: python-box[all]~=6.0.0; extra == "psql-binary"
|
79
|
+
Requires-Dist: PyYAML; extra == "psql-binary"
|
83
80
|
Requires-Dist: python-dotenv; extra == "psql-binary"
|
84
|
-
Requires-Dist:
|
81
|
+
Requires-Dist: PyMySQL; extra == "psql-binary"
|
85
82
|
Requires-Dist: SQLAlchemy~=2.0; extra == "psql-binary"
|
83
|
+
Requires-Dist: alembic; extra == "psql-binary"
|
84
|
+
Requires-Dist: psycopg2-binary; extra == "psql-binary"
|
85
|
+
Requires-Dist: domain2idna~=1.12.0; extra == "psql-binary"
|
86
|
+
Requires-Dist: colorama; extra == "psql-binary"
|
86
87
|
Requires-Dist: inflection; extra == "psql-binary"
|
88
|
+
Requires-Dist: requests[socks]<3; extra == "psql-binary"
|
87
89
|
Requires-Dist: shtab; extra == "psql-binary"
|
88
|
-
Requires-Dist:
|
89
|
-
Requires-Dist: PyYAML; extra == "psql-binary"
|
90
|
-
Requires-Dist: PyMySQL; extra == "psql-binary"
|
90
|
+
Requires-Dist: setuptools>=65.5.1; extra == "psql-binary"
|
91
91
|
Provides-Extra: postgresql
|
92
|
-
Requires-Dist: python-box[all]~=6.0.0; extra == "postgresql"
|
93
|
-
Requires-Dist: psycopg2; extra == "postgresql"
|
94
|
-
Requires-Dist: colorama; extra == "postgresql"
|
95
|
-
Requires-Dist: requests[socks]<3; extra == "postgresql"
|
96
|
-
Requires-Dist: setuptools>=65.5.1; extra == "postgresql"
|
97
92
|
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "postgresql"
|
98
|
-
Requires-Dist: alembic; extra == "postgresql"
|
99
93
|
Requires-Dist: packaging; extra == "postgresql"
|
94
|
+
Requires-Dist: python-box[all]~=6.0.0; extra == "postgresql"
|
95
|
+
Requires-Dist: PyYAML; extra == "postgresql"
|
100
96
|
Requires-Dist: python-dotenv; extra == "postgresql"
|
97
|
+
Requires-Dist: psycopg2; extra == "postgresql"
|
98
|
+
Requires-Dist: PyMySQL; extra == "postgresql"
|
101
99
|
Requires-Dist: SQLAlchemy~=2.0; extra == "postgresql"
|
100
|
+
Requires-Dist: alembic; extra == "postgresql"
|
101
|
+
Requires-Dist: domain2idna~=1.12.0; extra == "postgresql"
|
102
|
+
Requires-Dist: colorama; extra == "postgresql"
|
102
103
|
Requires-Dist: inflection; extra == "postgresql"
|
104
|
+
Requires-Dist: requests[socks]<3; extra == "postgresql"
|
103
105
|
Requires-Dist: shtab; extra == "postgresql"
|
104
|
-
Requires-Dist:
|
105
|
-
Requires-Dist: PyYAML; extra == "postgresql"
|
106
|
-
Requires-Dist: PyMySQL; extra == "postgresql"
|
106
|
+
Requires-Dist: setuptools>=65.5.1; extra == "postgresql"
|
107
107
|
Provides-Extra: postgresql-binary
|
108
|
-
Requires-Dist: python-box[all]~=6.0.0; extra == "postgresql-binary"
|
109
|
-
Requires-Dist: colorama; extra == "postgresql-binary"
|
110
|
-
Requires-Dist: requests[socks]<3; extra == "postgresql-binary"
|
111
|
-
Requires-Dist: setuptools>=65.5.1; extra == "postgresql-binary"
|
112
108
|
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "postgresql-binary"
|
113
|
-
Requires-Dist: alembic; extra == "postgresql-binary"
|
114
109
|
Requires-Dist: packaging; extra == "postgresql-binary"
|
110
|
+
Requires-Dist: python-box[all]~=6.0.0; extra == "postgresql-binary"
|
111
|
+
Requires-Dist: PyYAML; extra == "postgresql-binary"
|
115
112
|
Requires-Dist: python-dotenv; extra == "postgresql-binary"
|
116
|
-
Requires-Dist:
|
113
|
+
Requires-Dist: PyMySQL; extra == "postgresql-binary"
|
117
114
|
Requires-Dist: SQLAlchemy~=2.0; extra == "postgresql-binary"
|
115
|
+
Requires-Dist: alembic; extra == "postgresql-binary"
|
116
|
+
Requires-Dist: psycopg2-binary; extra == "postgresql-binary"
|
117
|
+
Requires-Dist: domain2idna~=1.12.0; extra == "postgresql-binary"
|
118
|
+
Requires-Dist: colorama; extra == "postgresql-binary"
|
118
119
|
Requires-Dist: inflection; extra == "postgresql-binary"
|
120
|
+
Requires-Dist: requests[socks]<3; extra == "postgresql-binary"
|
119
121
|
Requires-Dist: shtab; extra == "postgresql-binary"
|
120
|
-
Requires-Dist:
|
121
|
-
Requires-Dist: PyYAML; extra == "postgresql-binary"
|
122
|
-
Requires-Dist: PyMySQL; extra == "postgresql-binary"
|
122
|
+
Requires-Dist: setuptools>=65.5.1; extra == "postgresql-binary"
|
123
123
|
Provides-Extra: full
|
124
|
-
Requires-Dist:
|
125
|
-
Requires-Dist: mkdocstrings[python]~=0.26; extra == "full"
|
126
|
-
Requires-Dist: isort; extra == "full"
|
127
|
-
Requires-Dist: packaging; extra == "full"
|
128
|
-
Requires-Dist: shtab; extra == "full"
|
129
|
-
Requires-Dist: requests[socks]<3; extra == "full"
|
130
|
-
Requires-Dist: tox; extra == "full"
|
131
|
-
Requires-Dist: mkdocs-gen-files~=0.5; extra == "full"
|
132
|
-
Requires-Dist: mkdocs-section-index~=0.3; extra == "full"
|
133
|
-
Requires-Dist: alembic; extra == "full"
|
134
|
-
Requires-Dist: mkdocs-literate-nav~=0.6; extra == "full"
|
135
|
-
Requires-Dist: python-box[all]~=6.0.0; extra == "full"
|
124
|
+
Requires-Dist: PyMySQL; extra == "full"
|
136
125
|
Requires-Dist: black; extra == "full"
|
137
|
-
Requires-Dist: domain2idna~=1.12.0; extra == "full"
|
138
|
-
Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "full"
|
139
126
|
Requires-Dist: colorama; extra == "full"
|
140
|
-
Requires-Dist:
|
127
|
+
Requires-Dist: tox; extra == "full"
|
128
|
+
Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "full"
|
129
|
+
Requires-Dist: setuptools>=65.5.1; extra == "full"
|
130
|
+
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "full"
|
131
|
+
Requires-Dist: mkdocs-material~=9.5; extra == "full"
|
132
|
+
Requires-Dist: mkdocs-literate-nav~=0.6; extra == "full"
|
141
133
|
Requires-Dist: SQLAlchemy~=2.0; extra == "full"
|
142
|
-
Requires-Dist:
|
134
|
+
Requires-Dist: pylint; extra == "full"
|
135
|
+
Requires-Dist: mkdocs~=1.5; extra == "full"
|
136
|
+
Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "full"
|
137
|
+
Requires-Dist: packaging; extra == "full"
|
143
138
|
Requires-Dist: PyYAML; extra == "full"
|
144
139
|
Requires-Dist: coverage; extra == "full"
|
140
|
+
Requires-Dist: mkdocs-gen-files~=0.5; extra == "full"
|
145
141
|
Requires-Dist: pymdown-extensions~=10.9; extra == "full"
|
146
|
-
Requires-Dist: mkdocs-material~=9.5; extra == "full"
|
147
|
-
Requires-Dist: setuptools>=65.5.1; extra == "full"
|
148
|
-
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "full"
|
149
|
-
Requires-Dist: flake8; extra == "full"
|
150
|
-
Requires-Dist: mkdocs~=1.5; extra == "full"
|
151
|
-
Requires-Dist: pylint; extra == "full"
|
152
142
|
Requires-Dist: inflection; extra == "full"
|
143
|
+
Requires-Dist: flake8; extra == "full"
|
144
|
+
Requires-Dist: requests[socks]<3; extra == "full"
|
145
|
+
Requires-Dist: mkdocstrings[python]~=0.26; extra == "full"
|
146
|
+
Requires-Dist: python-box[all]~=6.0.0; extra == "full"
|
153
147
|
Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "full"
|
154
|
-
Requires-Dist:
|
148
|
+
Requires-Dist: python-dotenv; extra == "full"
|
149
|
+
Requires-Dist: alembic; extra == "full"
|
150
|
+
Requires-Dist: domain2idna~=1.12.0; extra == "full"
|
151
|
+
Requires-Dist: zipp>=3.19.1; extra == "full"
|
152
|
+
Requires-Dist: mkdocs-section-index~=0.3; extra == "full"
|
153
|
+
Requires-Dist: shtab; extra == "full"
|
154
|
+
Requires-Dist: isort; extra == "full"
|
155
155
|
Provides-Extra: all
|
156
|
-
Requires-Dist:
|
157
|
-
Requires-Dist: mkdocstrings[python]~=0.26; extra == "all"
|
158
|
-
Requires-Dist: isort; extra == "all"
|
159
|
-
Requires-Dist: packaging; extra == "all"
|
160
|
-
Requires-Dist: shtab; extra == "all"
|
161
|
-
Requires-Dist: requests[socks]<3; extra == "all"
|
162
|
-
Requires-Dist: tox; extra == "all"
|
163
|
-
Requires-Dist: mkdocs-gen-files~=0.5; extra == "all"
|
164
|
-
Requires-Dist: mkdocs-section-index~=0.3; extra == "all"
|
165
|
-
Requires-Dist: alembic; extra == "all"
|
166
|
-
Requires-Dist: mkdocs-literate-nav~=0.6; extra == "all"
|
167
|
-
Requires-Dist: python-box[all]~=6.0.0; extra == "all"
|
156
|
+
Requires-Dist: PyMySQL; extra == "all"
|
168
157
|
Requires-Dist: black; extra == "all"
|
169
|
-
Requires-Dist: domain2idna~=1.12.0; extra == "all"
|
170
|
-
Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "all"
|
171
158
|
Requires-Dist: colorama; extra == "all"
|
172
|
-
Requires-Dist:
|
159
|
+
Requires-Dist: tox; extra == "all"
|
160
|
+
Requires-Dist: mkdocs-git-authors-plugin~=0.9; extra == "all"
|
161
|
+
Requires-Dist: setuptools>=65.5.1; extra == "all"
|
162
|
+
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "all"
|
163
|
+
Requires-Dist: mkdocs-material~=9.5; extra == "all"
|
164
|
+
Requires-Dist: mkdocs-literate-nav~=0.6; extra == "all"
|
173
165
|
Requires-Dist: SQLAlchemy~=2.0; extra == "all"
|
174
|
-
Requires-Dist:
|
166
|
+
Requires-Dist: pylint; extra == "all"
|
167
|
+
Requires-Dist: mkdocs~=1.5; extra == "all"
|
168
|
+
Requires-Dist: mkdocs-macros-plugin~=1.2; extra == "all"
|
169
|
+
Requires-Dist: packaging; extra == "all"
|
175
170
|
Requires-Dist: PyYAML; extra == "all"
|
176
171
|
Requires-Dist: coverage; extra == "all"
|
177
|
-
Requires-Dist: pymdown-extensions~=10.9; extra == "all"
|
178
|
-
Requires-Dist: mkdocs-material~=9.5; extra == "all"
|
179
|
-
Requires-Dist: setuptools>=65.5.1; extra == "all"
|
180
|
-
Requires-Dist: dnspython[DOH]~=2.6.0; extra == "all"
|
181
172
|
Requires-Dist: psycopg2-binary; extra == "all"
|
182
|
-
Requires-Dist:
|
183
|
-
Requires-Dist:
|
184
|
-
Requires-Dist: pylint; extra == "all"
|
173
|
+
Requires-Dist: mkdocs-gen-files~=0.5; extra == "all"
|
174
|
+
Requires-Dist: pymdown-extensions~=10.9; extra == "all"
|
185
175
|
Requires-Dist: inflection; extra == "all"
|
176
|
+
Requires-Dist: flake8; extra == "all"
|
177
|
+
Requires-Dist: requests[socks]<3; extra == "all"
|
178
|
+
Requires-Dist: mkdocstrings[python]~=0.26; extra == "all"
|
179
|
+
Requires-Dist: python-box[all]~=6.0.0; extra == "all"
|
186
180
|
Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.2; extra == "all"
|
187
|
-
Requires-Dist:
|
181
|
+
Requires-Dist: python-dotenv; extra == "all"
|
182
|
+
Requires-Dist: alembic; extra == "all"
|
183
|
+
Requires-Dist: domain2idna~=1.12.0; extra == "all"
|
184
|
+
Requires-Dist: zipp>=3.19.1; extra == "all"
|
185
|
+
Requires-Dist: mkdocs-section-index~=0.3; extra == "all"
|
186
|
+
Requires-Dist: shtab; extra == "all"
|
187
|
+
Requires-Dist: isort; extra == "all"
|
188
188
|
|
189
189
|

|
190
190
|
|
@@ -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=
|
7
|
+
PyFunceble/storage.py,sha256=l-irElCfBaHqwf9f8nPprRKrBhGx-FCacEtYY8WMFO0,5349
|
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=
|
76
|
+
PyFunceble/cli/entry_points/pyfunceble/cli.py,sha256=tQcQiwQ3N6bo9X8seB5afCIc9sZy4rhAMabOYEoLnvE,49254
|
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
|
@@ -86,7 +86,7 @@ PyFunceble/cli/filesystem/dir_structure/backup.py,sha256=IomFlcp6XMPbvFrGiqSreo8
|
|
86
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
|
-
PyFunceble/cli/filesystem/printer/base.py,sha256=
|
89
|
+
PyFunceble/cli/filesystem/printer/base.py,sha256=ZEFxTFvcn2hdKtwvdZ6GbXsUIwlK0VHL1NyHKBitBEE,12760
|
90
90
|
PyFunceble/cli/filesystem/printer/file.py,sha256=YqUXB1-Bw7INYhX7RdQgmRc7LDxDLdEEnq77ALifoOY,6858
|
91
91
|
PyFunceble/cli/filesystem/printer/stdout.py,sha256=eWAKQf1bUANLZwQDvEibw6MmDLo-nM3iy7YAv70iu8c,7695
|
92
92
|
PyFunceble/cli/migrators/__init__.py,sha256=SNg9YIhkG_Uv5E6GtGnmD2hjeAD6Pno5U7-clQdWo0g,2438
|
@@ -129,7 +129,7 @@ PyFunceble/cli/processes/workers/file_sorter.py,sha256=OEAsOFBUyM1mFt9AEFfN8-_mQ
|
|
129
129
|
PyFunceble/cli/processes/workers/file_sorter_base.py,sha256=KodJbkydFNRb3_2t1OcQ9qx5ersi3N-SG8uxFMjsYpg,8002
|
130
130
|
PyFunceble/cli/processes/workers/migrator.py,sha256=9G7uAkXNdIqSoQAcbW1LjznmPoTKh0Hg6703HZH4w98,3477
|
131
131
|
PyFunceble/cli/processes/workers/miner.py,sha256=Xxr3lSAinfpNfL-S1DPWjWoYqDzFC_DM8kh1L2UGx9o,6991
|
132
|
-
PyFunceble/cli/processes/workers/producer.py,sha256=
|
132
|
+
PyFunceble/cli/processes/workers/producer.py,sha256=aqMimnzbyV4Ue88R69lOOowNEcN6IJ71XZIccBvzylM,17853
|
133
133
|
PyFunceble/cli/processes/workers/tester.py,sha256=WRRYbWWckww1LuF_5wJTUPKVRpNMMZpdne90_cclpwo,11598
|
134
134
|
PyFunceble/cli/scripts/__init__.py,sha256=iAXtKOkDEGrBa-zuzvVjGKH1PgjcxnGujMZzZqWj7T0,2437
|
135
135
|
PyFunceble/cli/scripts/iana.py,sha256=VLZiLhvLx-LFpAiS0FIq4KGqsgYAM59e1EMPFR6x-Us,10346
|
@@ -184,7 +184,7 @@ PyFunceble/data/alembic/postgresql/env.py,sha256=UfJff9bY99TTC0z9bQgsm17NqsGnLmz
|
|
184
184
|
PyFunceble/data/alembic/postgresql/script.py.mako,sha256=8_xgA-gm_OhehnO7CiIijWgnm00ZlszEHtIHrAYFJl0,494
|
185
185
|
PyFunceble/data/alembic/postgresql/versions/__init__.py,sha256=5E57ZZeUcnx4sgc3LJh6e6bjgeaQhS4W-f2UVuUYsrs,2452
|
186
186
|
PyFunceble/data/alembic/postgresql/versions/a32ac5d66eee_initial_version.py,sha256=xJdnoCnHAG1vmt-nBeomuIEDRwUK1Upv1mtkUt1txQM,2487
|
187
|
-
PyFunceble/data/infrastructure/.PyFunceble_production.yaml,sha256=
|
187
|
+
PyFunceble/data/infrastructure/.PyFunceble_production.yaml,sha256=Mpz5HKewJvZNhyOV0W4WLURgoOVtPC7bQJ2-yh3StE4,25411
|
188
188
|
PyFunceble/data/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
189
189
|
PyFunceble/data/infrastructure/dir_structure_production.json,sha256=XpWin49SkoWu3pvnsoNlbNh6j9MlTGVKkvTmX99jZkM,5722
|
190
190
|
PyFunceble/database/__init__.py,sha256=r8zmExtTZguf07GzlaYW5hz11DCC1C6qeU3XvkSQXSU,2492
|
@@ -210,7 +210,7 @@ PyFunceble/dataset/iana.py,sha256=oMSx8p2PQV0tsHejqqqyacos9AzksEOq6YucDAFncBw,40
|
|
210
210
|
PyFunceble/dataset/ipv4_reputation.py,sha256=a0KjYvXpaNCKOsK9yIgre-3YP2m3w_jO0_yk9b2mdOI,3977
|
211
211
|
PyFunceble/dataset/public_suffix.py,sha256=q3cUQwHP9_WxAykH45M4EhDOXxUJifpJafAAcOhg51Q,4085
|
212
212
|
PyFunceble/dataset/sql_base.py,sha256=bkUd-1iC_D_uhSfmZ4LGLMaZS3BJqzLOlVjhXqJWORk,10545
|
213
|
-
PyFunceble/dataset/user_agent.py,sha256=
|
213
|
+
PyFunceble/dataset/user_agent.py,sha256=sj4SLbvxltcNAyz_sBvzZ_ynwKPkLJP31s7Q8CPWx_I,9004
|
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
|
@@ -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.3.
|
279
|
-
PyFunceble_dev-4.3.
|
280
|
-
PyFunceble_dev-4.3.
|
281
|
-
PyFunceble_dev-4.3.
|
282
|
-
PyFunceble_dev-4.3.
|
283
|
-
PyFunceble_dev-4.3.
|
278
|
+
PyFunceble_dev-4.3.0a12.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
|
279
|
+
PyFunceble_dev-4.3.0a12.dist-info/METADATA,sha256=GpLyEPEnZkt_glJF6_X5EiUPX3DT0M1xLuhUdI6SyTs,46666
|
280
|
+
PyFunceble_dev-4.3.0a12.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
281
|
+
PyFunceble_dev-4.3.0a12.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
|
282
|
+
PyFunceble_dev-4.3.0a12.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
|
283
|
+
PyFunceble_dev-4.3.0a12.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|