PyFunceble-dev 4.2.22__py3-none-any.whl → 4.2.24__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.
@@ -0,0 +1,104 @@
1
+ """
2
+ The tool to check the availability or syntax of domain, IP or URL.
3
+
4
+ ::
5
+
6
+
7
+ ██████╗ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗ ██████╗███████╗██████╗ ██╗ ███████╗
8
+ ██╔══██╗╚██╗ ██╔╝██╔════╝██║ ██║████╗ ██║██╔════╝██╔════╝██╔══██╗██║ ██╔════╝
9
+ ██████╔╝ ╚████╔╝ █████╗ ██║ ██║██╔██╗ ██║██║ █████╗ ██████╔╝██║ █████╗
10
+ ██╔═══╝ ╚██╔╝ ██╔══╝ ██║ ██║██║╚██╗██║██║ ██╔══╝ ██╔══██╗██║ ██╔══╝
11
+ ██║ ██║ ██║ ╚██████╔╝██║ ╚████║╚██████╗███████╗██████╔╝███████╗███████╗
12
+ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ ╚══════╝╚══════╝
13
+
14
+ Provides the CI engine and detection tool for standalone instances.
15
+
16
+ Author:
17
+ Nissar Chababy, @funilrys, contactTATAfunilrysTODTODcom
18
+
19
+ Special thanks:
20
+ https://pyfunceble.github.io/#/special-thanks
21
+
22
+ Contributors:
23
+ https://pyfunceble.github.io/#/contributors
24
+
25
+ Project link:
26
+ https://github.com/funilrys/PyFunceble
27
+
28
+ Project documentation:
29
+ https://pyfunceble.readthedocs.io/en/dev/
30
+
31
+ Project homepage:
32
+ https://pyfunceble.github.io/
33
+
34
+ License:
35
+ ::
36
+
37
+
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
+
40
+ Licensed under the Apache License, Version 2.0 (the "License");
41
+ you may not use this file except in compliance with the License.
42
+ You may obtain a copy of the License at
43
+
44
+ https://www.apache.org/licenses/LICENSE-2.0
45
+
46
+ Unless required by applicable law or agreed to in writing, software
47
+ distributed under the License is distributed on an "AS IS" BASIS,
48
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
49
+ See the License for the specific language governing permissions and
50
+ limitations under the License.
51
+ """
52
+
53
+ import PyFunceble.cli.continuous_integration.exceptions
54
+ import PyFunceble.facility
55
+ from PyFunceble.cli.continuous_integration.base import ContinuousIntegrationBase
56
+ from PyFunceble.helpers.environment_variable import EnvironmentVariableHelper
57
+
58
+
59
+ class Standalone(ContinuousIntegrationBase):
60
+ """
61
+ Provides a standalone interface which let end-user run PyFunceble in a standalone
62
+ environment, without any GIT related CI/CD stuff.
63
+ """
64
+
65
+ def guess_and_set_authorized(self) -> "Standalone":
66
+ """
67
+ Tries to guess the authorization.
68
+ """
69
+
70
+ needed_environment_vars = ["PYFUNCEBLE_STANDALONE_CI"]
71
+
72
+ if all(EnvironmentVariableHelper(x).exists() for x in needed_environment_vars):
73
+ self.authorized = True
74
+ elif PyFunceble.facility.ConfigLoader.is_already_loaded():
75
+ if bool(PyFunceble.storage.CONFIGURATION.cli_testing.ci.active):
76
+ self.authorized = all(
77
+ EnvironmentVariableHelper(x).exists()
78
+ for x in needed_environment_vars
79
+ )
80
+ else:
81
+ super().guess_and_set_authorized()
82
+ else:
83
+ super().guess_and_set_authorized()
84
+
85
+ return self
86
+
87
+ def guess_and_set_token(self) -> "Standalone":
88
+ return self
89
+
90
+ @ContinuousIntegrationBase.execute_if_authorized(None)
91
+ def init_git(self) -> ContinuousIntegrationBase:
92
+ return self
93
+
94
+ @ContinuousIntegrationBase.execute_if_authorized(None)
95
+ def bypass(self) -> None:
96
+ return None
97
+
98
+ @ContinuousIntegrationBase.execute_if_authorized(None)
99
+ def init_git_remote_with_token(self) -> "Standalone":
100
+ return self
101
+
102
+ @ContinuousIntegrationBase.execute_if_authorized(None)
103
+ def apply_commit(self, *, push: bool = True) -> None:
104
+ return super().apply_end_commit(push=push)
@@ -55,6 +55,7 @@ from PyFunceble.cli.continuous_integration.base import ContinuousIntegrationBase
55
55
  from PyFunceble.cli.continuous_integration.github_actions import GitHubActions
56
56
  from PyFunceble.cli.continuous_integration.gitlab_ci import GitLabCI
57
57
  from PyFunceble.cli.continuous_integration.jenkins import Jenkins
58
+ from PyFunceble.cli.continuous_integration.standalone import Standalone
58
59
  from PyFunceble.cli.continuous_integration.travis_ci import TravisCI
59
60
 
60
61
 
@@ -63,7 +64,7 @@ def ci_object(*args, **kwargs) -> ContinuousIntegrationBase:
63
64
  A placeholder which provides the CI object to use.
64
65
  """
65
66
 
66
- known_objects = [Jenkins, GitHubActions, TravisCI, GitLabCI]
67
+ known_objects = [Jenkins, GitHubActions, TravisCI, GitLabCI, Standalone]
67
68
  result = None
68
69
 
69
70
  for known in known_objects:
@@ -53,7 +53,7 @@ License:
53
53
  import copy
54
54
  import functools
55
55
  import string
56
- from typing import Dict, Optional
56
+ from typing import Dict, List, Optional
57
57
 
58
58
 
59
59
  class PrinterBase:
@@ -118,12 +118,14 @@ class PrinterBase:
118
118
 
119
119
  _template_to_use: Optional[str] = None
120
120
  _dataset: Optional[Dict[str, str]] = None
121
+ _skip_column: Optional[List[str]] = []
121
122
 
122
123
  def __init__(
123
124
  self,
124
125
  template_to_use: Optional[str] = None,
125
126
  *,
126
127
  dataset: Optional[Dict[str, str]] = None,
128
+ skip_column: Optional[List[str]] = None,
127
129
  ) -> None:
128
130
  if template_to_use is not None:
129
131
  self.template_to_use = template_to_use
@@ -131,6 +133,9 @@ class PrinterBase:
131
133
  if dataset is not None:
132
134
  self.dataset = dataset
133
135
 
136
+ if skip_column is not None:
137
+ self.skip_column = skip_column
138
+
134
139
  def ensure_template_to_use_is_given(func): # pylint: disable=no-self-argument
135
140
  """
136
141
  Ensures that the template to use is given before launching the
@@ -167,6 +172,46 @@ class PrinterBase:
167
172
 
168
173
  return wrapper
169
174
 
175
+ @property
176
+ def skip_column(self) -> Optional[List[str]]:
177
+ """
178
+ Provides the current state of the :code:`_skip_column` attribute.
179
+ """
180
+
181
+ return self._skip_column
182
+
183
+ @skip_column.setter
184
+ def skip_column(self, value: List[str]) -> None:
185
+ """
186
+ Sets the columns to skip.
187
+
188
+ :param value:
189
+ The value to set.
190
+
191
+ :raise TypeError:
192
+ When the given :code:`value` is not a :py:class:`list`.
193
+ """
194
+
195
+ if not isinstance(value, list):
196
+ raise TypeError(f"<value> should be {list}, {type(value)} given.")
197
+
198
+ if any(not isinstance(x, str) for x in value):
199
+ raise TypeError(f"<value> should be a list of {str}, {type(value)} given.")
200
+
201
+ self._skip_column = value
202
+
203
+ def set_skip_column(self, value: List[str]) -> "PrinterBase":
204
+ """
205
+ Sets the columns to skip.
206
+
207
+ :param value:
208
+ The value to set.
209
+ """
210
+
211
+ self.skip_column = value
212
+
213
+ return self
214
+
170
215
  @property
171
216
  def template_to_use(self) -> Optional[str]:
172
217
  """
@@ -269,6 +314,12 @@ class PrinterBase:
269
314
  if key not in self.TEMPLATES[self.template_to_use].template:
270
315
  continue
271
316
 
317
+ if key in self.skip_column:
318
+ self.TEMPLATES[self.template_to_use].template = self.TEMPLATES[
319
+ self.template_to_use
320
+ ].template.replace(f"${key} ", "")
321
+ continue
322
+
272
323
  to_print_data[0][key] = f"{value:<{self.STD_LENGTH[key]}}"
273
324
 
274
325
  for key, value in to_print_data[0].items():
@@ -297,7 +348,7 @@ class PrinterBase:
297
348
  ignore_length = ["simple", "hosts", "plain", "execution_time"]
298
349
 
299
350
  for key, value in self.dataset.items():
300
- if key not in self.HEADERS:
351
+ if key not in self.HEADERS or key in self.skip_column:
301
352
  continue
302
353
 
303
354
  if not value and value != 0:
@@ -82,11 +82,12 @@ class FilePrinter(PrinterBase):
82
82
  *,
83
83
  dataset: Optional[Dict[str, str]] = None,
84
84
  destination: Optional[str] = None,
85
+ **kwargs,
85
86
  ) -> None:
86
87
  if destination is not None:
87
88
  self.destination = destination
88
89
 
89
- super().__init__(template_to_use=template_to_use, dataset=dataset)
90
+ super().__init__(template_to_use=template_to_use, dataset=dataset, **kwargs)
90
91
 
91
92
  def ensure_destination_is_given(func): # pylint: disable=no-self-argument
92
93
  """
@@ -110,13 +110,14 @@ class StdoutPrinter(PrinterBase):
110
110
  *,
111
111
  dataset: Optional[Dict[str, str]] = None,
112
112
  allow_coloration: Optional[bool] = None,
113
+ **kwargs,
113
114
  ) -> None:
114
115
  if allow_coloration is not None:
115
116
  self.allow_coloration = allow_coloration
116
117
  else:
117
118
  self.guess_allow_coloration()
118
119
 
119
- super().__init__(template_to_use=template_to_use, dataset=dataset)
120
+ super().__init__(template_to_use=template_to_use, dataset=dataset, **kwargs)
120
121
 
121
122
  @property
122
123
  def allow_coloration(self) -> bool:
@@ -105,8 +105,13 @@ class ProducerWorker(WorkerBase):
105
105
  )
106
106
 
107
107
  def __post_init__(self) -> None:
108
- self.stdout_printer = StdoutPrinter()
109
- self.file_printer = FilePrinter()
108
+ skip_columns = []
109
+
110
+ if not PyFunceble.storage.CONFIGURATION.cli_testing.display_mode.registrar:
111
+ skip_columns.append("registrar")
112
+
113
+ self.stdout_printer = StdoutPrinter(skip_column=skip_columns)
114
+ self.file_printer = FilePrinter(skip_column=skip_columns)
110
115
  self.whois_dataset = get_whois_dataset_object(db_session=self.db_session)
111
116
  self.inactive_dataset = get_inactive_dataset_object(db_session=self.db_session)
112
117
  self.continue_dataset = get_continue_databaset_object(
PyFunceble/storage.py CHANGED
@@ -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.22.dev (Blue Duckling: Ixora)"
64
+ PROJECT_VERSION: str = "4.2.24.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"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyFunceble-dev
3
- Version: 4.2.22
3
+ Version: 4.2.24
4
4
  Summary: The tool to check the availability or syntax of domain, IP or URL.
5
5
  Home-page: https://github.com/funilrys/PyFunceble
6
6
  Author: funilrys
@@ -21,81 +21,81 @@ Classifier: Programming Language :: Python :: 3
21
21
  Classifier: License :: OSI Approved
22
22
  Requires-Python: >=3.8, <4
23
23
  License-File: LICENSE
24
- Requires-Dist: packaging
25
- Requires-Dist: domain2idna ~=1.12.0
26
- Requires-Dist: inflection
24
+ Requires-Dist: cryptography ~=42.0
25
+ Requires-Dist: dnspython[doh] ~=2.6.0
27
26
  Requires-Dist: PyMySQL
28
27
  Requires-Dist: SQLAlchemy ~=2.0
29
- Requires-Dist: cryptography ~=42.0
28
+ Requires-Dist: python-dotenv
29
+ Requires-Dist: colorama
30
+ Requires-Dist: shtab
31
+ Requires-Dist: inflection
30
32
  Requires-Dist: PyYAML
31
33
  Requires-Dist: requests[socks] <3
32
- Requires-Dist: shtab
33
- Requires-Dist: setuptools >=65.5.1
34
- Requires-Dist: dnspython[doh] ~=2.6.0
34
+ Requires-Dist: packaging
35
+ Requires-Dist: domain2idna ~=1.12.0
35
36
  Requires-Dist: python-box[all] ~=6.0.0
36
- Requires-Dist: python-dotenv
37
- Requires-Dist: colorama
38
37
  Requires-Dist: alembic
38
+ Requires-Dist: setuptools >=65.5.1
39
39
  Provides-Extra: dev
40
40
  Requires-Dist: flake8 ; extra == 'dev'
41
- Requires-Dist: pylint ; extra == 'dev'
42
41
  Requires-Dist: black ; extra == 'dev'
43
42
  Requires-Dist: isort ; extra == 'dev'
43
+ Requires-Dist: pylint ; extra == 'dev'
44
44
  Provides-Extra: docs
45
+ Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'docs'
45
46
  Requires-Dist: requests >=2.32.0 ; extra == 'docs'
47
+ Requires-Dist: sphinx >=3.4.3 ; extra == 'docs'
48
+ Requires-Dist: urllib3 >=2.2.2 ; extra == 'docs'
46
49
  Requires-Dist: Pygments >=2.0 ; extra == 'docs'
47
50
  Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
48
- Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'docs'
49
- Requires-Dist: urllib3 >=2.2.2 ; extra == 'docs'
50
- Requires-Dist: sphinx >=3.4.3 ; extra == 'docs'
51
51
  Provides-Extra: full
52
- Requires-Dist: requests >=2.32.0 ; extra == 'full'
53
- Requires-Dist: packaging ; extra == 'full'
54
- Requires-Dist: black ; extra == 'full'
55
52
  Requires-Dist: cryptography ~=42.0 ; extra == 'full'
56
- Requires-Dist: PyYAML ; extra == 'full'
57
- Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'full'
58
- Requires-Dist: tox ; extra == 'full'
59
- Requires-Dist: alembic ; extra == 'full'
60
- Requires-Dist: sphinx >=3.4.3 ; extra == 'full'
61
- Requires-Dist: inflection ; extra == 'full'
53
+ Requires-Dist: colorama ; extra == 'full'
54
+ Requires-Dist: requests[socks] <3 ; extra == 'full'
62
55
  Requires-Dist: flake8 ; extra == 'full'
63
- Requires-Dist: shtab ; extra == 'full'
64
- Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'full'
65
- Requires-Dist: pylint ; extra == 'full'
66
56
  Requires-Dist: isort ; extra == 'full'
67
- Requires-Dist: Pygments >=2.0 ; extra == 'full'
68
- Requires-Dist: requests[socks] <3 ; extra == 'full'
57
+ Requires-Dist: sphinx >=3.4.3 ; extra == 'full'
69
58
  Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'full'
70
- Requires-Dist: python-dotenv ; extra == 'full'
71
- Requires-Dist: colorama ; extra == 'full'
72
- Requires-Dist: urllib3 >=2.2.2 ; extra == 'full'
59
+ Requires-Dist: Pygments >=2.0 ; extra == 'full'
60
+ Requires-Dist: black ; extra == 'full'
61
+ Requires-Dist: setuptools >=65.5.1 ; extra == 'full'
73
62
  Requires-Dist: coverage ; extra == 'full'
63
+ Requires-Dist: python-dotenv ; extra == 'full'
64
+ Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'full'
65
+ Requires-Dist: packaging ; extra == 'full'
74
66
  Requires-Dist: domain2idna ~=1.12.0 ; extra == 'full'
67
+ Requires-Dist: urllib3 >=2.2.2 ; extra == 'full'
68
+ Requires-Dist: alembic ; extra == 'full'
69
+ Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'full'
70
+ Requires-Dist: inflection ; extra == 'full'
71
+ Requires-Dist: requests >=2.32.0 ; extra == 'full'
72
+ Requires-Dist: tox ; extra == 'full'
73
+ Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'full'
75
74
  Requires-Dist: PyMySQL ; extra == 'full'
75
+ Requires-Dist: pylint ; extra == 'full'
76
+ Requires-Dist: shtab ; extra == 'full'
77
+ Requires-Dist: PyYAML ; extra == 'full'
76
78
  Requires-Dist: sphinx-rtd-theme ; extra == 'full'
77
- Requires-Dist: setuptools >=65.5.1 ; extra == 'full'
78
- Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'full'
79
79
  Provides-Extra: psql
80
- Requires-Dist: packaging ; extra == 'psql'
81
- Requires-Dist: domain2idna ~=1.12.0 ; extra == 'psql'
82
- Requires-Dist: inflection ; extra == 'psql'
80
+ Requires-Dist: cryptography ~=42.0 ; extra == 'psql'
81
+ Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'psql'
83
82
  Requires-Dist: PyMySQL ; extra == 'psql'
84
83
  Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'psql'
85
- Requires-Dist: cryptography ~=42.0 ; extra == 'psql'
86
- Requires-Dist: PyYAML ; extra == 'psql'
87
- Requires-Dist: requests[socks] <3 ; extra == 'psql'
88
- Requires-Dist: shtab ; extra == 'psql'
89
84
  Requires-Dist: psycopg2 ; extra == 'psql'
90
- Requires-Dist: setuptools >=65.5.1 ; extra == 'psql'
91
- Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'psql'
92
- Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'psql'
93
85
  Requires-Dist: python-dotenv ; extra == 'psql'
94
86
  Requires-Dist: colorama ; extra == 'psql'
87
+ Requires-Dist: shtab ; extra == 'psql'
88
+ Requires-Dist: inflection ; extra == 'psql'
89
+ Requires-Dist: PyYAML ; extra == 'psql'
90
+ Requires-Dist: requests[socks] <3 ; extra == 'psql'
91
+ Requires-Dist: packaging ; extra == 'psql'
92
+ Requires-Dist: domain2idna ~=1.12.0 ; extra == 'psql'
93
+ Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'psql'
95
94
  Requires-Dist: alembic ; extra == 'psql'
95
+ Requires-Dist: setuptools >=65.5.1 ; extra == 'psql'
96
96
  Provides-Extra: test
97
- Requires-Dist: tox ; extra == 'test'
98
97
  Requires-Dist: coverage ; extra == 'test'
98
+ Requires-Dist: tox ; extra == 'test'
99
99
 
100
100
  .. image:: https://raw.githubusercontent.com/PyFunceble/logo/dev/Green/HD/RM.png
101
101
 
@@ -4,7 +4,7 @@ PyFunceble/facility.py,sha256=zwQ-5JFtBr-n0uahkCLIheXNADX34A3uzVcEdFTWT8o,2640
4
4
  PyFunceble/factory.py,sha256=EIMObS1gaWpGamlqIoLoHAg9xpcXdfKEnDGe31O9WIw,2590
5
5
  PyFunceble/logger.py,sha256=8ex6ccGeV8sXtF6MMZsIfCAv2ZJmwKrvRQZd_4cIDCM,16829
6
6
  PyFunceble/sessions.py,sha256=lmqepbwtCCU8KVBNZ-XBo6kFFh5cpCKPgT_GegiLhk8,2582
7
- PyFunceble/storage.py,sha256=o_pDOBKX1rcc0flpi7qE8a2UG7FyUVk2UHhS2hupYIs,6297
7
+ PyFunceble/storage.py,sha256=grTlJDH3sBuqnqbEG03IKAVCqjDtA6Kz2ziGZkDuLJ4,6297
8
8
  PyFunceble/storage_facility.py,sha256=dnjRkVbH3kFtbWlX7evPyNT6rfo7nGCd4oNC9AajWtY,4833
9
9
  PyFunceble/checker/__init__.py,sha256=aiQBstQTw1nXwZ3IGxf_k3CofRbbtFB4WAu_ezvmi_0,2444
10
10
  PyFunceble/checker/base.py,sha256=0Jg-tI46Pqc_9-rSURzXEoViK1pz-pRL_P4W7PvryBs,13629
@@ -63,8 +63,9 @@ PyFunceble/cli/continuous_integration/exceptions.py,sha256=398w9PjMAgVgkRdvKKR7L
63
63
  PyFunceble/cli/continuous_integration/github_actions.py,sha256=socfgqyQmM4c-3cRVSuYxc-KaUpnJWUTv3no2r961Hg,3969
64
64
  PyFunceble/cli/continuous_integration/gitlab_ci.py,sha256=zm2Elx2MbrQjU_zeWaaERb23xdNaUedoElIauhjoYUA,4285
65
65
  PyFunceble/cli/continuous_integration/jenkins.py,sha256=AZzNvfaGKBhGP1dz56wtgoSt4-6U97I7jcrHWeknVpM,3907
66
+ PyFunceble/cli/continuous_integration/standalone.py,sha256=E7o7sMeWB-7hQTUrHTzudF3KEB5PCouVzmjpZyu8vO4,4331
66
67
  PyFunceble/cli/continuous_integration/travis_ci.py,sha256=uapmmpMqKnOdUS1jlSKkYSSVxbO7gDIKKQffTN-ynNw,3899
67
- PyFunceble/cli/continuous_integration/utils.py,sha256=oHDLmIGrHpSMHUc9yxCZXnp70gv9LuvVnmhmsphVsbI,3615
68
+ PyFunceble/cli/continuous_integration/utils.py,sha256=tXo8SgBT1fBgpGFrXsFvTjlXC8bMD8WJFc1JwfFULJU,3699
68
69
  PyFunceble/cli/entry_points/__init__.py,sha256=f0KvLvKAQGjj_r1z0pd5dRBhMOz0Ygn8N3LIZqHWU_o,2452
69
70
  PyFunceble/cli/entry_points/clean.py,sha256=tQfUxIoIrJW7vxWdAqU-s40zgPXgTUA0129C4P4lhyI,5167
70
71
  PyFunceble/cli/entry_points/iana.py,sha256=CxdYfXl3dptauUnfMjZIo1ufad3sQi8cjYoQsyZIrQA,4161
@@ -85,9 +86,9 @@ PyFunceble/cli/filesystem/dir_structure/backup.py,sha256=gKrnCvtVzNgQQEgDwhx8E3u
85
86
  PyFunceble/cli/filesystem/dir_structure/base.py,sha256=h2WFobPno4RE6yMjJ_kSLNJQvMVstuyYhfM4gvQzSqE,5376
86
87
  PyFunceble/cli/filesystem/dir_structure/restore.py,sha256=LcAawKCrD4lPclGKbeFEQ8pNeTsHhKdv0dDBAxzOm3g,5883
87
88
  PyFunceble/cli/filesystem/printer/__init__.py,sha256=fi-WMsgj79J8LOCebCdfNEGP9SuDFvCbqtInS0E-_ZM,2498
88
- PyFunceble/cli/filesystem/printer/base.py,sha256=Ffh2mAagtvkmP_tOsr-no2V4Bop7-ngWhXMKKHkNJto,10789
89
- PyFunceble/cli/filesystem/printer/file.py,sha256=vPSrGhs6Abakp9-VCPBLwkBBvyA3P_RaZN_B1_nOAIU,6844
90
- PyFunceble/cli/filesystem/printer/stdout.py,sha256=qNXRzwNyN9thwR8709e-FcvAsLe-LiJN3CBL7kKX6gY,7681
89
+ PyFunceble/cli/filesystem/printer/base.py,sha256=apTNYZnRjhk9l2g-RFrkq6FmI08O7g30m3qGocz0K0M,12265
90
+ PyFunceble/cli/filesystem/printer/file.py,sha256=VKmzSR8Z0C4oNTjasGt2yx8tihlpH8uLjeh218LHSBE,6872
91
+ PyFunceble/cli/filesystem/printer/stdout.py,sha256=QnY2Rfn0NzHrKzfM1bu8W8BnEP9xiMfZzX5RRqlXQS4,7709
91
92
  PyFunceble/cli/migrators/__init__.py,sha256=8YY6QMam9Bkox-FAMIlrglJQTEUVXhjCWFkJ1rLiRac,2452
92
93
  PyFunceble/cli/migrators/alembic.py,sha256=fVhPeWCfpjrOFtuzA8Xqz11Oz88B1CMR93RU2qSuOgg,7523
93
94
  PyFunceble/cli/migrators/base.py,sha256=3fjp0p9ojimzy1YhnOx0-RxUfzL1BuRLHbNfDKPceWY,3296
@@ -128,7 +129,7 @@ PyFunceble/cli/processes/workers/file_sorter.py,sha256=KLjplewupcLHzpKqWylwAU1_A
128
129
  PyFunceble/cli/processes/workers/file_sorter_base.py,sha256=1GCbEqvLnk9mk0obx5HfCxvo0zkGojhY7tJjV-QBRf0,8042
129
130
  PyFunceble/cli/processes/workers/migrator.py,sha256=jNNplKW4oMj_f0-ApTE-xJk4lEvjiN2rYlgOScOkKmY,3517
130
131
  PyFunceble/cli/processes/workers/miner.py,sha256=ZHxxo6oyVzTWV4IEQEispFSzetq7gO_KfWWqWLq05WQ,7127
131
- PyFunceble/cli/processes/workers/producer.py,sha256=gOjQCtmoDKXswOn1vredAVQMgQyeQrsSwNojwHV8_2c,17161
132
+ PyFunceble/cli/processes/workers/producer.py,sha256=vutG0r1j9YNz881gDUV0x9NhzEKsPhzbFL8Hcn4KCkE,17366
132
133
  PyFunceble/cli/processes/workers/tester.py,sha256=1VLbhVeAaN4EE0l3fdD0R69Kv4QTL3i9yXvSHiO1SrM,11751
133
134
  PyFunceble/cli/scripts/__init__.py,sha256=jSHEdUgOBxuhESK-n_unZDV7Vts09LNCNRiSJIe9Fno,2451
134
135
  PyFunceble/cli/scripts/iana.py,sha256=IQAu_TKtL-54Lh2q4ymet6T1faqQmiJXg4hME1Md3PU,9991
@@ -274,9 +275,9 @@ PyFunceble/utils/__init__.py,sha256=l6Mz-0GPHPCSPXuNFtHbnjD0fYI5BRr-RwDbVgAUdmI,
274
275
  PyFunceble/utils/platform.py,sha256=px_pauOFMCEtc9ST0vYZvDWDhcWNP1S595iKK4P3n7c,3920
275
276
  PyFunceble/utils/profile.py,sha256=Fp5yntq5Ys5eQe-FbQsUpx4ydxDxVYW3ACn-3KcTk_A,4566
276
277
  PyFunceble/utils/version.py,sha256=Tb3DWk96Xl6WbdDa2t3QQGBBDcnKDNJV_iFWMVQfCoc,8330
277
- PyFunceble_dev-4.2.22.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
278
- PyFunceble_dev-4.2.22.dist-info/METADATA,sha256=oOB4AvaDzH4ui49E02qdltbgq0VqvvGP13uKnH90T9I,15319
279
- PyFunceble_dev-4.2.22.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
280
- PyFunceble_dev-4.2.22.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
281
- PyFunceble_dev-4.2.22.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
282
- PyFunceble_dev-4.2.22.dist-info/RECORD,,
278
+ PyFunceble_dev-4.2.24.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
279
+ PyFunceble_dev-4.2.24.dist-info/METADATA,sha256=LA3My94sZb_3yFPgD6-6U6ypO60h54fhNjvsxXiUhQQ,15319
280
+ PyFunceble_dev-4.2.24.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
281
+ PyFunceble_dev-4.2.24.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
282
+ PyFunceble_dev-4.2.24.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
283
+ PyFunceble_dev-4.2.24.dist-info/RECORD,,