kubernetes-k8s-services-python-local 0.0.2b4509__tar.gz

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.
Files changed (20) hide show
  1. kubernetes_k8s_services_python_local-0.0.2b4509/PKG-INFO +25 -0
  2. kubernetes_k8s_services_python_local-0.0.2b4509/README.md +23 -0
  3. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/__init__.py +0 -0
  4. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/src/__init__.py +0 -0
  5. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/src/constants_src_kubernetes_k8s_services_python_local.py +33 -0
  6. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/src/kubernetes_k8s_services_python_local.py +12 -0
  7. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/src/kubernetes_k8s_services_python_localenum.py +6 -0
  8. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/src/pycallgraph.py +10 -0
  9. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/tests/__init__.py +0 -0
  10. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/tests/unit/__init__.py +0 -0
  11. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/tests/unit/kubernetes_k8s_services_python_local_unit_test.py +58 -0
  12. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local/tests/unit/unit_test_constants_tests_kubernetes_k8s_services_python_local.py +17 -0
  13. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local.egg-info/PKG-INFO +25 -0
  14. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local.egg-info/SOURCES.txt +18 -0
  15. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local.egg-info/dependency_links.txt +1 -0
  16. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local.egg-info/requires.txt +3 -0
  17. kubernetes_k8s_services_python_local-0.0.2b4509/kubernetes_k8s_services_python_local.egg-info/top_level.txt +1 -0
  18. kubernetes_k8s_services_python_local-0.0.2b4509/pyproject.toml +29 -0
  19. kubernetes_k8s_services_python_local-0.0.2b4509/setup.cfg +4 -0
  20. kubernetes_k8s_services_python_local-0.0.2b4509/setup.py +77 -0
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.4
2
+ Name: kubernetes-k8s-services-python-local
3
+ Version: 0.0.2b4509
4
+ Summary: PyPI kubernetes-k8s-services-python-local Python Package owned by Circlez.ai
5
+ Home-page: https://github.com/circles-zone/kubernetes-k8s-services-python-local-package
6
+ Author: Circles
7
+ Author-email: info@circlez.ai
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: python-sdk-remote
12
+ Requires-Dist: logger-local
13
+ Requires-Dist: database-mysql-local
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: classifier
17
+ Dynamic: description
18
+ Dynamic: description-content-type
19
+ Dynamic: home-page
20
+ Dynamic: requires-dist
21
+ Dynamic: summary
22
+
23
+ PyPI kubernetes-k8s-services-python-local Python Package owned by Circlez.ai
24
+ JIRA Work Item: https://circles-zone.atlassian.net/browse/BU-2614
25
+ GHA: https://github.com/circles-zone/logger-local-python-package/actions
@@ -0,0 +1,23 @@
1
+ # General
2
+
3
+ Unlike the README.md in the root directory, this is a README.md of this specific repo/package<br>
4
+
5
+ TODO Please update this README.md of this specific repo/package and not the README.md in the root directory based on the python-package-template repo<br>
6
+
7
+ ## TODOs
8
+
9
+ TODO Methods check status and take Kubernetes k8s service up and down<br>
10
+
11
+ # Versions
12
+
13
+ [pub] 0.0.1 Initial version (change the directories, files, setup.py, .github/workflows/*.yml)<br>
14
+
15
+ # Installing instructions
16
+
17
+ It's advised to use venv<br>
18
+ If you have Windows, it's also advised to use Windows Subsystem for Linux<br>
19
+
20
+ ## Install dependencies
21
+
22
+ Run ./download-beta-sdk.sh from the bash terminal<br>
23
+ Run pip install -r requirements.txt from the bash terminal<br>
@@ -0,0 +1,33 @@
1
+ from typing import Any
2
+
3
+ from logger_local.LoggerComponentEnum import LoggerComponentEnum
4
+
5
+
6
+ class ConstantsSrcKubernetesK8sServices:
7
+ """This is a class of all the constants of Kubernetes K8s Services"""
8
+
9
+ KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_DEVELOPER_EMAIL_ADDRESS: str = 'tal.r@circ.zone'
10
+
11
+ # TODO Replace the 0 with the CODE component id from the Slack channel #request-to-open-component-id
12
+ KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_CODE_COMPONENT_ID: int = 0
13
+
14
+ KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_COMPONENT_NAME = 'Kubernetes K8s Services local Python package'
15
+ KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_CODE_LOGGER_OBJECT: dict[str, Any] = {
16
+ 'componentId': KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_CODE_COMPONENT_ID,
17
+ 'componentName': KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_COMPONENT_NAME,
18
+ 'componentCategory': LoggerComponentEnum.ComponentCategory.Code.value,
19
+ 'developerEmailAddress': KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_DEVELOPER_EMAIL_ADDRESS
20
+ }
21
+
22
+ UNKNOWN_KUBERNETES_K8S_SERVICES_ID = 0
23
+
24
+
25
+ def get_logger_object(category: LoggerComponentEnum.ComponentCategory = LoggerComponentEnum.ComponentCategory.Code):
26
+ get_logger_object_result = {
27
+ 'component_id': ConstantsSrcKubernetesK8sServices.KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_CODE_COMPONENT_ID,
28
+ 'component_name': ConstantsSrcKubernetesK8sServices.KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_COMPONENT_NAME,
29
+ 'component_category': category,
30
+ 'developer_email_address':
31
+ ConstantsSrcKubernetesK8sServices.KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_DEVELOPER_EMAIL_ADDRESS
32
+ }
33
+ return get_logger_object_result
@@ -0,0 +1,12 @@
1
+ ENTITY_NAME = "Kubernetes K8s Services"
2
+
3
+
4
+ class KubernetesK8sServicesLocal:
5
+ """The Kubernetes (K8s) services of the project"""
6
+
7
+ def __init__(self, display_as: str = ENTITY_NAME):
8
+ self.display_as = display_as
9
+
10
+ def get_name(self) -> str:
11
+ name = self.display_as
12
+ return name
@@ -0,0 +1,6 @@
1
+ import enum
2
+
3
+
4
+ class TheExample(enum.Enum):
5
+ VALUE1_ID = 20
6
+ VALUE2_ID = 18
@@ -0,0 +1,10 @@
1
+ # https://stackoverflow.com/questions/582336/how-do-i-profile-a-python-script
2
+ from typing import Callable
3
+
4
+ from pycallgraph import PyCallGraph
5
+ from pycallgraph.output import GraphvizOutput
6
+
7
+
8
+ def profile(code_to_profile: Callable[[], object]) -> None:
9
+ with PyCallGraph(output=GraphvizOutput()):
10
+ code_to_profile()
@@ -0,0 +1,58 @@
1
+ import importlib
2
+ import sys
3
+ from unittest.mock import MagicMock, patch
4
+
5
+ from logger_local.LoggerComponentEnum import LoggerComponentEnum
6
+
7
+ from ...src.constants_src_kubernetes_k8s_services_python_local import (
8
+ ConstantsSrcKubernetesK8sServices, get_logger_object)
9
+ from ...src.kubernetes_k8s_services_python_local import (
10
+ ENTITY_NAME, KubernetesK8sServicesLocal)
11
+ from .unit_test_constants_tests_kubernetes_k8s_services_python_local import KubernetesK8sServicesTestsConstants
12
+
13
+
14
+ def test_get_name_default():
15
+ kubernetes_k8s_services = KubernetesK8sServicesLocal()
16
+ name = kubernetes_k8s_services.get_name()
17
+ assert name == ENTITY_NAME
18
+
19
+
20
+ def test_get_name_custom():
21
+ expected_name = "Custom Kubernetes K8s Services"
22
+ kubernetes_k8s_services = KubernetesK8sServicesLocal(display_as=expected_name)
23
+ name = kubernetes_k8s_services.get_name()
24
+ assert name == expected_name
25
+
26
+
27
+ def test_get_logger_object_default_category_is_code():
28
+ logger_object = get_logger_object()
29
+ assert logger_object['component_category'] == LoggerComponentEnum.ComponentCategory.Code
30
+ assert logger_object['component_id'] == (
31
+ ConstantsSrcKubernetesK8sServices.KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_CODE_COMPONENT_ID)
32
+ assert logger_object['component_name'] == (
33
+ ConstantsSrcKubernetesK8sServices.KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_COMPONENT_NAME)
34
+
35
+
36
+ def test_get_logger_object_unit_test_category():
37
+ logger_object = get_logger_object(category=LoggerComponentEnum.ComponentCategory.Unit_Test)
38
+ assert logger_object['component_category'] == LoggerComponentEnum.ComponentCategory.Unit_Test
39
+
40
+
41
+ def test_tests_logger_object_uses_pytest_unit_test_category():
42
+ test_logger_object = KubernetesK8sServicesTestsConstants.KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_TEST_LOGGER_OBJECT
43
+ assert test_logger_object['component_category'] == LoggerComponentEnum.ComponentCategory.Unit_Test.value
44
+ assert test_logger_object['testing_framework'] == LoggerComponentEnum.testingFramework.pytest.value
45
+
46
+
47
+ def test_pycallgraph_profile_runs_the_given_code_inside_the_call_graph():
48
+ fake_pycallgraph = MagicMock()
49
+ fake_output = MagicMock()
50
+ fake_modules = {'pycallgraph': fake_pycallgraph, 'pycallgraph.output': fake_output}
51
+ code_to_profile = MagicMock()
52
+ with patch.dict(sys.modules, fake_modules):
53
+ pycallgraph_module = importlib.import_module(
54
+ 'kubernetes_k8s_services_python_local.src.pycallgraph')
55
+ pycallgraph_module.profile(code_to_profile)
56
+ code_to_profile.assert_called_once_with()
57
+ fake_pycallgraph.PyCallGraph.assert_called_once_with(output=fake_output.GraphvizOutput.return_value)
58
+ fake_pycallgraph.PyCallGraph.return_value.__enter__.assert_called_once_with()
@@ -0,0 +1,17 @@
1
+ from logger_local.LoggerComponentEnum import LoggerComponentEnum
2
+
3
+
4
+ class KubernetesK8sServicesTestsConstants:
5
+ # TODO Replace the 0 with the TEST component id from the Slack channel #request-to-open-component-id
6
+ KUBERNETES_K8S_SERVICES_TEST_COMPONENT_ID: int = 0
7
+ KUBERNETES_K8S_SERVICES_TEST_COMPONENT_NAME = "Kubernetes K8s Services Tests"
8
+ KUBERNETES_K8S_SERVICES_DEVELOPER_EMAIL_ADDRESS = "tal@circlez.ai"
9
+
10
+ KUBERNETES_K8S_SERVICES_LOCAL_PYTHON_TEST_LOGGER_OBJECT = {
11
+ # At this point of time we do not support camelCase in logger-local
12
+ 'component_id': KUBERNETES_K8S_SERVICES_TEST_COMPONENT_ID,
13
+ 'component_name': KUBERNETES_K8S_SERVICES_TEST_COMPONENT_NAME,
14
+ 'component_category': LoggerComponentEnum.ComponentCategory.Unit_Test.value,
15
+ 'testing_framework': LoggerComponentEnum.testingFramework.pytest.value,
16
+ 'developer_email_address': KUBERNETES_K8S_SERVICES_DEVELOPER_EMAIL_ADDRESS
17
+ }
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.4
2
+ Name: kubernetes-k8s-services-python-local
3
+ Version: 0.0.2b4509
4
+ Summary: PyPI kubernetes-k8s-services-python-local Python Package owned by Circlez.ai
5
+ Home-page: https://github.com/circles-zone/kubernetes-k8s-services-python-local-package
6
+ Author: Circles
7
+ Author-email: info@circlez.ai
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: python-sdk-remote
12
+ Requires-Dist: logger-local
13
+ Requires-Dist: database-mysql-local
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: classifier
17
+ Dynamic: description
18
+ Dynamic: description-content-type
19
+ Dynamic: home-page
20
+ Dynamic: requires-dist
21
+ Dynamic: summary
22
+
23
+ PyPI kubernetes-k8s-services-python-local Python Package owned by Circlez.ai
24
+ JIRA Work Item: https://circles-zone.atlassian.net/browse/BU-2614
25
+ GHA: https://github.com/circles-zone/logger-local-python-package/actions
@@ -0,0 +1,18 @@
1
+ README.md
2
+ pyproject.toml
3
+ setup.py
4
+ kubernetes_k8s_services_python_local/__init__.py
5
+ kubernetes_k8s_services_python_local.egg-info/PKG-INFO
6
+ kubernetes_k8s_services_python_local.egg-info/SOURCES.txt
7
+ kubernetes_k8s_services_python_local.egg-info/dependency_links.txt
8
+ kubernetes_k8s_services_python_local.egg-info/requires.txt
9
+ kubernetes_k8s_services_python_local.egg-info/top_level.txt
10
+ kubernetes_k8s_services_python_local/src/__init__.py
11
+ kubernetes_k8s_services_python_local/src/constants_src_kubernetes_k8s_services_python_local.py
12
+ kubernetes_k8s_services_python_local/src/kubernetes_k8s_services_python_local.py
13
+ kubernetes_k8s_services_python_local/src/kubernetes_k8s_services_python_localenum.py
14
+ kubernetes_k8s_services_python_local/src/pycallgraph.py
15
+ kubernetes_k8s_services_python_local/tests/__init__.py
16
+ kubernetes_k8s_services_python_local/tests/unit/__init__.py
17
+ kubernetes_k8s_services_python_local/tests/unit/kubernetes_k8s_services_python_local_unit_test.py
18
+ kubernetes_k8s_services_python_local/tests/unit/unit_test_constants_tests_kubernetes_k8s_services_python_local.py
@@ -0,0 +1,3 @@
1
+ python-sdk-remote
2
+ logger-local
3
+ database-mysql-local
@@ -0,0 +1,29 @@
1
+ # This file should be in the future instead of setup.py
2
+ # https://python-poetry.org/docs/pyproject
3
+ # https://stackoverflow.com/questions/78048223/adding-folder-with-data-with-pyproject-toml
4
+ # https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
5
+
6
+ # This file is mandatory for the `poetry version patch`
7
+
8
+ # It seems we need to copy this file also to serverless-com repo, as required by dialog-workflow-python-package
9
+
10
+ [build-system]
11
+ requires = ["setuptools>=61.0"]
12
+ build-backend = "setuptools.build_meta"
13
+
14
+ [tool.pytest.ini_options]
15
+ pythonpath = ["."]
16
+
17
+ [tool.poetry]
18
+ name = "kubernetes-k8s-services-python-local"
19
+ # I believe we are still using the version from setup.py and not from here until Potery will work
20
+ version = "0.0.2b4509" # https://pypi.org/project/kubernetes-k8s-services-python-local/
21
+ description = "kubernetes-k8s-services-python-local Python Package"
22
+ readme = "README.md"
23
+ authors = [
24
+ "Circlez.ai <info@circlez.ai>",
25
+ ]
26
+
27
+ [tool.poetry.dev-dependencies]
28
+ pytest = "^8.0"
29
+ pytest-cov = "^5.0"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,77 @@
1
+ # serverless.com repo "python -m build" works without setup.py
2
+ # Should update package_dir if not using our recommended directory structure
3
+
4
+ import setuptools
5
+
6
+ NEW_LINE = "\n"
7
+
8
+ # TODO: Change the PACKAGE_NAME to the package's name - Either xxx-local or
9
+ # xxx-remote (without the -python-package suffix). Only lowercase, no
10
+ # underlines.
11
+ # Used by pypa/gh-action-pypi-publish
12
+ # Package Name should be identical to the inner directory name
13
+ # Changing the package name here, will cause a change in the package directory
14
+ # name as well
15
+ # PACKAGE_NAME should be singular if handling only one instance
16
+ # PACKAGE_NAME should not include the word "main"
17
+
18
+ # e.g.: queue-local, without python-package suffix
19
+ PACKAGE_NAME = "kubernetes-k8s-services-python-local"
20
+
21
+ package_dir = PACKAGE_NAME.replace("-", "_")
22
+ # If we need backward-compatible:
23
+ # old_package_dir = "old_package_name"
24
+
25
+ PACKAGE_DESCRIPTION = f"PyPI {PACKAGE_NAME} Python Package owned by Circlez.ai"
26
+
27
+ setuptools.setup(
28
+ name=PACKAGE_NAME,
29
+ # Increase this number every time you make a change you
30
+ # want to publish. After 0.0.9 switch to 0.0.10 and not 0.1.0
31
+ # version can't be 0.0.
32
+ # If you find yourself increasing the version in more than one patch number (it might indicate there are multiple branches which you should submit their PRs before your PR) # noqa: E501
33
+ # TODO add the Jira Work Item (Jira Issue) number after the version i.e., 0.0.1b2432
34
+ version="0.0.2b4509", # https://pypi.org/project/kubernetes-k8s-services-python-local/
35
+ author="Circles",
36
+ author_email="info@circlez.ai",
37
+ description=f"{PACKAGE_DESCRIPTION}",
38
+ # long_description=f"{description}",
39
+ long_description =f"{PACKAGE_DESCRIPTION}" + NEW_LINE # noqa E501
40
+ + "JIRA Work Item: https://circles-zone.atlassian.net/browse/BU-2614" + NEW_LINE # noqa E501
41
+ + "GHA: https://github.com/circles-zone/logger-local-python-package/actions", # noqa E501
42
+
43
+ long_description_content_type='text/markdown',
44
+ url=f"https://github.com/circles-zone/{PACKAGE_NAME}-package",
45
+ # packages=[package_dir],
46
+ # packages=[package_dir, old_package_dir],
47
+ packages=setuptools.find_packages(),
48
+
49
+ # I'm not sure we need package_dir
50
+ # package_dir={package_dir: f'{package_dir}/src'},
51
+ # TODO Unfortunately in event-main-local-restapi there are no
52
+ # repo-directory and no package directory (flat directory structure)
53
+ # package_dir={package_dir: f'src'},
54
+
55
+ # package_dir={package_dir: f'{package_dir}/src',
56
+ # old_package_dir: f'{package_dir}/src'},
57
+ package_data={package_dir: ['*.py']},
58
+ classifiers=[
59
+ "Programming Language :: Python :: 3",
60
+ # https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
61
+ # TODO Fix all repos, especially the Python templates
62
+ # "License :: MIT AND (Apache-2.0 OR BSD-2-Clause)",
63
+ "Operating System :: OS Independent",
64
+ ],
65
+ # Do not add packages needed only for tests i.e. packages for get_test_xxx(
66
+ # TODO: Update which packages to include with this package in production
67
+ # (dependencies) - Not for development/testing
68
+ install_requires=[
69
+ 'python-sdk-remote',
70
+ # TODO: in -remote package, please use logger-remote instead.
71
+ 'logger-local',
72
+ 'database-mysql-local',
73
+ # TODO: In -local package please uncomment the bellow line. In -remote packages please delete this line. # noqa E501
74
+ # 'smart-datastore-local',
75
+ # 'logzio-python-handler>=4.1.2', # https://pypi.org/project/logzio-python-handler/ # noqa E501
76
+ ]
77
+ )