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.
- PyFunceble/cli/continuous_integration/standalone.py +104 -0
- PyFunceble/cli/continuous_integration/utils.py +2 -1
- PyFunceble/cli/filesystem/printer/base.py +53 -2
- PyFunceble/cli/filesystem/printer/file.py +2 -1
- PyFunceble/cli/filesystem/printer/stdout.py +2 -1
- PyFunceble/cli/processes/workers/producer.py +7 -2
- PyFunceble/storage.py +1 -1
- {PyFunceble_dev-4.2.22.dist-info → PyFunceble_dev-4.2.24.dist-info}/METADATA +44 -44
- {PyFunceble_dev-4.2.22.dist-info → PyFunceble_dev-4.2.24.dist-info}/RECORD +13 -12
- {PyFunceble_dev-4.2.22.dist-info → PyFunceble_dev-4.2.24.dist-info}/LICENSE +0 -0
- {PyFunceble_dev-4.2.22.dist-info → PyFunceble_dev-4.2.24.dist-info}/WHEEL +0 -0
- {PyFunceble_dev-4.2.22.dist-info → PyFunceble_dev-4.2.24.dist-info}/entry_points.txt +0 -0
- {PyFunceble_dev-4.2.22.dist-info → PyFunceble_dev-4.2.24.dist-info}/top_level.txt +0 -0
@@ -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
|
-
|
109
|
-
|
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.
|
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.
|
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:
|
25
|
-
Requires-Dist:
|
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:
|
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:
|
33
|
-
Requires-Dist:
|
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:
|
57
|
-
Requires-Dist:
|
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:
|
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:
|
71
|
-
Requires-Dist:
|
72
|
-
Requires-Dist:
|
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:
|
81
|
-
Requires-Dist:
|
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=
|
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=
|
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=
|
89
|
-
PyFunceble/cli/filesystem/printer/file.py,sha256=
|
90
|
-
PyFunceble/cli/filesystem/printer/stdout.py,sha256=
|
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=
|
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.
|
278
|
-
PyFunceble_dev-4.2.
|
279
|
-
PyFunceble_dev-4.2.
|
280
|
-
PyFunceble_dev-4.2.
|
281
|
-
PyFunceble_dev-4.2.
|
282
|
-
PyFunceble_dev-4.2.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|