PyFunceble-dev 4.2.21__py3-none-any.whl → 4.2.23__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:
@@ -646,11 +646,9 @@ class SystemLauncher(SystemBase):
646
646
  query_tool = PlatformQueryTool()
647
647
 
648
648
  max_breakoff = 120.0
649
- breakoff_multiplier = 0.5
650
649
 
651
650
  initial_breakoff = (
652
- PyFunceble.storage.CONFIGURATION.cli_testing.max_workers
653
- * breakoff_multiplier
651
+ max_breakoff / PyFunceble.storage.CONFIGURATION.cli_testing.max_workers
654
652
  )
655
653
  breakoff = initial_breakoff
656
654
 
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.21.dev (Blue Duckling: Ixora)"
64
+ PROJECT_VERSION: str = "4.2.23.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.21
3
+ Version: 4.2.23
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,78 +21,78 @@ 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: alembic
25
+ Requires-Dist: SQLAlchemy ~=2.0
26
+ Requires-Dist: inflection
27
+ Requires-Dist: PyYAML
24
28
  Requires-Dist: dnspython[doh] ~=2.6.0
25
- Requires-Dist: requests[socks] <3
26
- Requires-Dist: domain2idna ~=1.12.0
27
29
  Requires-Dist: packaging
28
- Requires-Dist: colorama
29
- Requires-Dist: PyYAML
30
+ Requires-Dist: setuptools >=65.5.1
30
31
  Requires-Dist: PyMySQL
31
- Requires-Dist: shtab
32
- Requires-Dist: inflection
33
- Requires-Dist: alembic
34
- Requires-Dist: python-box[all] ~=6.0.0
35
32
  Requires-Dist: python-dotenv
36
- Requires-Dist: SQLAlchemy ~=2.0
37
- Requires-Dist: setuptools >=65.5.1
33
+ Requires-Dist: colorama
38
34
  Requires-Dist: cryptography ~=42.0
35
+ Requires-Dist: python-box[all] ~=6.0.0
36
+ Requires-Dist: shtab
37
+ Requires-Dist: domain2idna ~=1.12.0
38
+ Requires-Dist: requests[socks] <3
39
39
  Provides-Extra: dev
40
- Requires-Dist: isort ; extra == 'dev'
41
- Requires-Dist: pylint ; extra == 'dev'
42
40
  Requires-Dist: black ; extra == 'dev'
41
+ Requires-Dist: pylint ; extra == 'dev'
42
+ Requires-Dist: isort ; extra == 'dev'
43
43
  Requires-Dist: flake8 ; extra == 'dev'
44
44
  Provides-Extra: docs
45
- Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'docs'
46
- Requires-Dist: sphinx >=3.4.3 ; extra == 'docs'
45
+ Requires-Dist: urllib3 >=2.2.2 ; extra == 'docs'
47
46
  Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
47
+ Requires-Dist: sphinx >=3.4.3 ; extra == 'docs'
48
+ Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'docs'
48
49
  Requires-Dist: requests >=2.32.0 ; extra == 'docs'
49
- Requires-Dist: urllib3 >=2.2.2 ; extra == 'docs'
50
50
  Requires-Dist: Pygments >=2.0 ; extra == 'docs'
51
51
  Provides-Extra: full
52
- Requires-Dist: domain2idna ~=1.12.0 ; extra == 'full'
53
- Requires-Dist: PyYAML ; extra == 'full'
54
- Requires-Dist: PyMySQL ; extra == 'full'
55
- Requires-Dist: shtab ; extra == 'full'
56
- Requires-Dist: flake8 ; extra == 'full'
57
- Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'full'
58
- Requires-Dist: urllib3 >=2.2.2 ; extra == 'full'
59
- Requires-Dist: Pygments >=2.0 ; extra == 'full'
60
52
  Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'full'
61
- Requires-Dist: black ; extra == 'full'
62
- Requires-Dist: requests >=2.32.0 ; extra == 'full'
63
- Requires-Dist: alembic ; extra == 'full'
64
- Requires-Dist: setuptools >=65.5.1 ; extra == 'full'
65
53
  Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'full'
54
+ Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'full'
55
+ Requires-Dist: pylint ; extra == 'full'
56
+ Requires-Dist: cryptography ~=42.0 ; extra == 'full'
57
+ Requires-Dist: domain2idna ~=1.12.0 ; extra == 'full'
58
+ Requires-Dist: urllib3 >=2.2.2 ; extra == 'full'
59
+ Requires-Dist: inflection ; extra == 'full'
60
+ Requires-Dist: packaging ; extra == 'full'
66
61
  Requires-Dist: requests[socks] <3 ; extra == 'full'
62
+ Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'full'
63
+ Requires-Dist: Pygments >=2.0 ; extra == 'full'
64
+ Requires-Dist: flake8 ; extra == 'full'
67
65
  Requires-Dist: sphinx >=3.4.3 ; extra == 'full'
68
- Requires-Dist: packaging ; extra == 'full'
69
- Requires-Dist: colorama ; extra == 'full'
70
- Requires-Dist: coverage ; extra == 'full'
71
- Requires-Dist: isort ; extra == 'full'
72
- Requires-Dist: inflection ; extra == 'full'
73
66
  Requires-Dist: tox ; extra == 'full'
74
- Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'full'
75
- Requires-Dist: sphinx-rtd-theme ; extra == 'full'
67
+ Requires-Dist: setuptools >=65.5.1 ; extra == 'full'
68
+ Requires-Dist: PyMySQL ; extra == 'full'
76
69
  Requires-Dist: python-dotenv ; extra == 'full'
77
- Requires-Dist: pylint ; extra == 'full'
78
- Requires-Dist: cryptography ~=42.0 ; extra == 'full'
70
+ Requires-Dist: requests >=2.32.0 ; extra == 'full'
71
+ Requires-Dist: coverage ; extra == 'full'
72
+ Requires-Dist: shtab ; extra == 'full'
73
+ Requires-Dist: alembic ; extra == 'full'
74
+ Requires-Dist: black ; extra == 'full'
75
+ Requires-Dist: sphinx-rtd-theme ; extra == 'full'
76
+ Requires-Dist: isort ; extra == 'full'
77
+ Requires-Dist: colorama ; extra == 'full'
78
+ Requires-Dist: PyYAML ; extra == 'full'
79
79
  Provides-Extra: psql
80
- Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'psql'
81
- Requires-Dist: requests[socks] <3 ; extra == 'psql'
82
- Requires-Dist: domain2idna ~=1.12.0 ; extra == 'psql'
83
- Requires-Dist: packaging ; extra == 'psql'
84
- Requires-Dist: colorama ; extra == 'psql'
85
80
  Requires-Dist: psycopg2 ; extra == 'psql'
86
- Requires-Dist: PyYAML ; extra == 'psql'
87
- Requires-Dist: PyMySQL ; extra == 'psql'
88
- Requires-Dist: shtab ; extra == 'psql'
89
- Requires-Dist: inflection ; extra == 'psql'
90
81
  Requires-Dist: alembic ; extra == 'psql'
91
- Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'psql'
92
- Requires-Dist: python-dotenv ; extra == 'psql'
93
82
  Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'psql'
83
+ Requires-Dist: inflection ; extra == 'psql'
84
+ Requires-Dist: PyYAML ; extra == 'psql'
85
+ Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'psql'
86
+ Requires-Dist: packaging ; extra == 'psql'
94
87
  Requires-Dist: setuptools >=65.5.1 ; extra == 'psql'
88
+ Requires-Dist: PyMySQL ; extra == 'psql'
89
+ Requires-Dist: python-dotenv ; extra == 'psql'
90
+ Requires-Dist: colorama ; extra == 'psql'
95
91
  Requires-Dist: cryptography ~=42.0 ; extra == 'psql'
92
+ Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'psql'
93
+ Requires-Dist: shtab ; extra == 'psql'
94
+ Requires-Dist: domain2idna ~=1.12.0 ; extra == 'psql'
95
+ Requires-Dist: requests[socks] <3 ; extra == 'psql'
96
96
  Provides-Extra: test
97
97
  Requires-Dist: tox ; extra == 'test'
98
98
  Requires-Dist: coverage ; extra == 'test'
@@ -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=rcOlCczdCFrPFQXars_yMep0QGlErhGwm_-bnj6ChWU,6297
7
+ PyFunceble/storage.py,sha256=f7bZl2LAzTTyYLFSeUk0VXTW7Fm8iy447gJRNF0wQfU,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
@@ -137,7 +138,7 @@ PyFunceble/cli/scripts/public_suffix.py,sha256=-xYAQVv2ug_2Uk7-VoEkVyEHqP5Crmj8C
137
138
  PyFunceble/cli/system/__init__.py,sha256=4jXK5yT6fDjsbNg5LULnpfJ8G1yM_uP78-OLkPM1Skc,2522
138
139
  PyFunceble/cli/system/base.py,sha256=E3TsC7y0qrL7hhLLAlaUhFWU9etTbOKOuqIrDSCeRqA,4888
139
140
  PyFunceble/cli/system/integrator.py,sha256=46UpOie_xG2IXv0dpw94pkSum9IKcz4_BcYaY_u32l0,10830
140
- PyFunceble/cli/system/launcher.py,sha256=w-AuUm6i0AELwk-9UxOyQDt7oIu1kQaxOEr-WVlky70,45478
141
+ PyFunceble/cli/system/launcher.py,sha256=N4R8qikFDNf_iEuZt8NTcbIKnbb7PdaGVODhDZR25Zg,45417
141
142
  PyFunceble/cli/utils/__init__.py,sha256=69PJomADQHaFLgnfTpS7SFTgVkqZiRdvpUKX41nUuXs,2465
142
143
  PyFunceble/cli/utils/ascii_logo.py,sha256=Zff57bUS-2GkjAzyv6OEpw8THrolr0rhjjvjepsMgR8,4236
143
144
  PyFunceble/cli/utils/sort.py,sha256=Vi2V4S55hbqP9Mrk_OsYxESKAnKIS6DOFZ7nZXEv7u4,4375
@@ -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.21.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
278
- PyFunceble_dev-4.2.21.dist-info/METADATA,sha256=teAEINyu0_iy0FruRwgWL5bv_Lvzi40XmRrLrRvAd1Q,15319
279
- PyFunceble_dev-4.2.21.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
280
- PyFunceble_dev-4.2.21.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
281
- PyFunceble_dev-4.2.21.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
282
- PyFunceble_dev-4.2.21.dist-info/RECORD,,
278
+ PyFunceble_dev-4.2.23.dist-info/LICENSE,sha256=JBG6UfPnf3940AtwZB6vwAK6YH82Eo6nzMVnjGqopF0,10796
279
+ PyFunceble_dev-4.2.23.dist-info/METADATA,sha256=ZrBOWZJEnnS6ksK3GnwxOTdD288crkV1HoU6pFjo8cw,15319
280
+ PyFunceble_dev-4.2.23.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
281
+ PyFunceble_dev-4.2.23.dist-info/entry_points.txt,sha256=Ic1suwopOi_XTgiQi2ErtpY5xT3R8EFMI6B_ONDuR9E,201
282
+ PyFunceble_dev-4.2.23.dist-info/top_level.txt,sha256=J7GBKIiNYv93m1AxLy8_gr6ExXyZbMmCVXHMQBTUq2Y,11
283
+ PyFunceble_dev-4.2.23.dist-info/RECORD,,