PyFunceble-dev 4.2.22__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:
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.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.22
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: packaging
25
- Requires-Dist: domain2idna ~=1.12.0
26
- Requires-Dist: inflection
27
- Requires-Dist: PyMySQL
24
+ Requires-Dist: alembic
28
25
  Requires-Dist: SQLAlchemy ~=2.0
29
- Requires-Dist: cryptography ~=42.0
26
+ Requires-Dist: inflection
30
27
  Requires-Dist: PyYAML
31
- Requires-Dist: requests[socks] <3
32
- Requires-Dist: shtab
33
- Requires-Dist: setuptools >=65.5.1
34
28
  Requires-Dist: dnspython[doh] ~=2.6.0
35
- Requires-Dist: python-box[all] ~=6.0.0
29
+ Requires-Dist: packaging
30
+ Requires-Dist: setuptools >=65.5.1
31
+ Requires-Dist: PyMySQL
36
32
  Requires-Dist: python-dotenv
37
33
  Requires-Dist: colorama
38
- Requires-Dist: alembic
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: flake8 ; extra == 'dev'
41
- Requires-Dist: pylint ; extra == 'dev'
42
40
  Requires-Dist: black ; extra == 'dev'
41
+ Requires-Dist: pylint ; extra == 'dev'
43
42
  Requires-Dist: isort ; extra == 'dev'
43
+ Requires-Dist: flake8 ; extra == 'dev'
44
44
  Provides-Extra: docs
45
- Requires-Dist: requests >=2.32.0 ; extra == 'docs'
46
- Requires-Dist: Pygments >=2.0 ; extra == 'docs'
47
- Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
48
- Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'docs'
49
45
  Requires-Dist: urllib3 >=2.2.2 ; extra == 'docs'
46
+ Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
50
47
  Requires-Dist: sphinx >=3.4.3 ; extra == 'docs'
48
+ Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'docs'
49
+ Requires-Dist: requests >=2.32.0 ; extra == 'docs'
50
+ Requires-Dist: Pygments >=2.0 ; 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
- Requires-Dist: cryptography ~=42.0 ; extra == 'full'
56
- Requires-Dist: PyYAML ; extra == 'full'
52
+ Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'full'
57
53
  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'
62
- Requires-Dist: flake8 ; extra == 'full'
63
- Requires-Dist: shtab ; extra == 'full'
64
54
  Requires-Dist: alabaster <0.8,>=0.7 ; extra == 'full'
65
55
  Requires-Dist: pylint ; extra == 'full'
66
- Requires-Dist: isort ; extra == 'full'
67
- Requires-Dist: Pygments >=2.0 ; 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'
68
61
  Requires-Dist: requests[socks] <3 ; extra == 'full'
69
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'
65
+ Requires-Dist: sphinx >=3.4.3 ; extra == 'full'
66
+ Requires-Dist: tox ; extra == 'full'
67
+ Requires-Dist: setuptools >=65.5.1 ; extra == 'full'
68
+ Requires-Dist: PyMySQL ; extra == 'full'
70
69
  Requires-Dist: python-dotenv ; extra == 'full'
71
- Requires-Dist: colorama ; extra == 'full'
72
- Requires-Dist: urllib3 >=2.2.2 ; extra == 'full'
70
+ Requires-Dist: requests >=2.32.0 ; extra == 'full'
73
71
  Requires-Dist: coverage ; extra == 'full'
74
- Requires-Dist: domain2idna ~=1.12.0 ; extra == 'full'
75
- Requires-Dist: PyMySQL ; extra == 'full'
72
+ Requires-Dist: shtab ; extra == 'full'
73
+ Requires-Dist: alembic ; extra == 'full'
74
+ Requires-Dist: black ; extra == 'full'
76
75
  Requires-Dist: sphinx-rtd-theme ; extra == 'full'
77
- Requires-Dist: setuptools >=65.5.1 ; extra == 'full'
78
- Requires-Dist: SQLAlchemy ~=2.0 ; 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: packaging ; extra == 'psql'
81
- Requires-Dist: domain2idna ~=1.12.0 ; extra == 'psql'
82
- Requires-Dist: inflection ; extra == 'psql'
83
- Requires-Dist: PyMySQL ; extra == 'psql'
80
+ Requires-Dist: psycopg2 ; extra == 'psql'
81
+ Requires-Dist: alembic ; extra == 'psql'
84
82
  Requires-Dist: SQLAlchemy ~=2.0 ; extra == 'psql'
85
- Requires-Dist: cryptography ~=42.0 ; extra == 'psql'
83
+ Requires-Dist: inflection ; extra == 'psql'
86
84
  Requires-Dist: PyYAML ; extra == 'psql'
87
- Requires-Dist: requests[socks] <3 ; extra == 'psql'
88
- Requires-Dist: shtab ; extra == 'psql'
89
- Requires-Dist: psycopg2 ; extra == 'psql'
90
- Requires-Dist: setuptools >=65.5.1 ; extra == 'psql'
91
85
  Requires-Dist: dnspython[doh] ~=2.6.0 ; extra == 'psql'
92
- Requires-Dist: python-box[all] ~=6.0.0 ; extra == 'psql'
86
+ Requires-Dist: packaging ; extra == 'psql'
87
+ Requires-Dist: setuptools >=65.5.1 ; extra == 'psql'
88
+ Requires-Dist: PyMySQL ; extra == 'psql'
93
89
  Requires-Dist: python-dotenv ; extra == 'psql'
94
90
  Requires-Dist: colorama ; extra == 'psql'
95
- Requires-Dist: alembic ; extra == 'psql'
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=o_pDOBKX1rcc0flpi7qE8a2UG7FyUVk2UHhS2hupYIs,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
@@ -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.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,,