2023-05-15T16:52:34,780 Created temporary directory: /tmp/pip-build-tracker-gyzgxe1b 2023-05-15T16:52:34,782 Initialized build tracking at /tmp/pip-build-tracker-gyzgxe1b 2023-05-15T16:52:34,783 Created build tracker: /tmp/pip-build-tracker-gyzgxe1b 2023-05-15T16:52:34,783 Entered build tracker: /tmp/pip-build-tracker-gyzgxe1b 2023-05-15T16:52:34,784 Created temporary directory: /tmp/pip-wheel-ix0_ybnt 2023-05-15T16:52:34,789 Created temporary directory: /tmp/pip-ephem-wheel-cache-kh292fyz 2023-05-15T16:52:34,818 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-05-15T16:52:34,822 2 location(s) to search for versions of pystatic-language: 2023-05-15T16:52:34,822 * https://pypi.org/simple/pystatic-language/ 2023-05-15T16:52:34,822 * https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T16:52:34,822 Fetching project page and analyzing links: https://pypi.org/simple/pystatic-language/ 2023-05-15T16:52:34,822 Getting page https://pypi.org/simple/pystatic-language/ 2023-05-15T16:52:34,824 Found index url https://pypi.org/simple/ 2023-05-15T16:52:34,875 Fetched page https://pypi.org/simple/pystatic-language/ as application/vnd.pypi.simple.v1+json 2023-05-15T16:52:34,876 Found link https://files.pythonhosted.org/packages/cc/a5/e4354678339913084bdafe1e4e208b67f4207abdf72cf6efafaeb1e55b4f/pystatic-language-1.0.0.tar.gz (from https://pypi.org/simple/pystatic-language/), version: 1.0.0 2023-05-15T16:52:34,877 Found link https://files.pythonhosted.org/packages/07/ba/34a74415d16aeac9beff6bd540924f9cfe58625cf07c40a2b4f09b64bac6/pystatic-language-1.0.1.tar.gz (from https://pypi.org/simple/pystatic-language/), version: 1.0.1 2023-05-15T16:52:34,877 Found link https://files.pythonhosted.org/packages/02/58/2cd10f2d6867bb21c79346466084a761c808073281a8e78d7bdd9971d98e/pystatic-language-1.0.2.tar.gz (from https://pypi.org/simple/pystatic-language/), version: 1.0.2 2023-05-15T16:52:34,877 Found link https://files.pythonhosted.org/packages/f4/13/00defb2c2bc0ffed13085f0389fd2ac8494ee5678ad8118a698a1b502c37/pystatic-language-1.0.3.tar.gz (from https://pypi.org/simple/pystatic-language/), version: 1.0.3 2023-05-15T16:52:34,877 Fetching project page and analyzing links: https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T16:52:34,878 Getting page https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T16:52:34,879 Found index url https://www.piwheels.org/simple/ 2023-05-15T16:52:35,033 Fetched page https://www.piwheels.org/simple/pystatic-language/ as text/html 2023-05-15T16:52:35,035 Skipping link: No binaries permitted for pystatic-language: https://www.piwheels.org/simple/pystatic-language/pystatic_language-1.0.2-py3-none-any.whl#sha256=cb53d6d5008dcd460cf0f624b27403b6ded6c4c9b062cd25eb3fd6846ae7068a (from https://www.piwheels.org/simple/pystatic-language/) 2023-05-15T16:52:35,035 Skipping link: No binaries permitted for pystatic-language: https://www.piwheels.org/simple/pystatic-language/pystatic_language-1.0.1-py3-none-any.whl#sha256=92115f7627c5a9879a5d88a6a393b2cb67a71e3b6622edb7e0ced00d073a421c (from https://www.piwheels.org/simple/pystatic-language/) 2023-05-15T16:52:35,036 Skipping link: No binaries permitted for pystatic-language: https://www.piwheels.org/simple/pystatic-language/pystatic_language-1.0.0-py3-none-any.whl#sha256=7b02518baa92b91dbbf3d41f858357655d7496a4991c836606f25ece43e4c7f8 (from https://www.piwheels.org/simple/pystatic-language/) 2023-05-15T16:52:35,036 Skipping link: not a file: https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T16:52:35,036 Skipping link: not a file: https://pypi.org/simple/pystatic-language/ 2023-05-15T16:52:35,055 Given no hashes to check 1 links for project 'pystatic-language': discarding no candidates 2023-05-15T16:52:35,072 Collecting pystatic-language==1.0.3 2023-05-15T16:52:35,074 Created temporary directory: /tmp/pip-unpack-wl4d0_4h 2023-05-15T16:52:35,117 Downloading pystatic-language-1.0.3.tar.gz (16 kB) 2023-05-15T16:52:35,173 Added pystatic-language==1.0.3 from https://files.pythonhosted.org/packages/f4/13/00defb2c2bc0ffed13085f0389fd2ac8494ee5678ad8118a698a1b502c37/pystatic-language-1.0.3.tar.gz to build tracker '/tmp/pip-build-tracker-gyzgxe1b' 2023-05-15T16:52:35,176 Created temporary directory: /tmp/pip-build-env-d1ort0ac 2023-05-15T16:52:35,187 Installing build dependencies: started 2023-05-15T16:52:35,188 Running command pip subprocess to install build dependencies 2023-05-15T16:52:36,406 Using pip 23.1.2 from /home/piwheels/.local/lib/python3.9/site-packages/pip (python 3.9) 2023-05-15T16:52:36,770 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-05-15T16:52:38,458 Collecting setuptools 2023-05-15T16:52:38,533 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.7.2-py3-none-any.whl (1.1 MB) 2023-05-15T16:52:40,338 Installing collected packages: setuptools 2023-05-15T16:52:42,658 Successfully installed setuptools-67.7.2 2023-05-15T16:52:42,918 Installing build dependencies: finished with status 'done' 2023-05-15T16:52:42,924 Getting requirements to build wheel: started 2023-05-15T16:52:42,925 Running command Getting requirements to build wheel 2023-05-15T16:52:43,490 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-05-15T16:52:43,491 warnings.warn(msg) 2023-05-15T16:52:43,540 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:43,541 !! 2023-05-15T16:52:43,541 ******************************************************************************** 2023-05-15T16:52:43,541 ########################################################################## 2023-05-15T16:52:43,541 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:43,541 ########################################################################## 2023-05-15T16:52:43,542 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:43,542 `readme = '# pystatic\n\n> This package is a collection of methods and classes for making python more secure, robust, and reliable.\n> This could be achieved through the simple usage of decorators, function calls and inheritance of base classes.\n> Generally, this package can make python a programming language, closer to other static-typed languages, \n> without losing python\'s dynamic powerful features and.\n\nfirst of all\n------------\n\n#### specifics:\n\n- writen and owned by: Shahaf Frank-Shapir\n- all the rights are saved for: Shahaf Frank-Shapir\n- program version: 0.0.0\n- programming languages: python 3.9.12 (100%)\n\nbefore we start\n---------------\n\n#### description:\n\n> This package contains the following systems to be embedded in any python codebase:\n> \n> - overloading: Functions and methods (static, class and instance) \n> can have the same name yet different arguments\' signature \n> (different arguments - different names or same names and difference \n> in type hints.) through the usage of the overload decorator on top \n> of the base function\\method and inherit from the overloading \n> protocol class, when the usage is made in a class.\n>\n> - privacy: Attributes of classes and instances can now be private \n> in a way that prevents getting access to them in the traditional \n> ways, as well as the more shady ones This can be used whn a class \n> inherits from the private property protocol, or the private attributes \n> being defined as private using the private descriptor.\n>\n> - cleaning: Cleaning of unnecessary objects, values, imported namespaces \n> from your modules, so an object imported into a module cannot be \n> imported with anything else that is written inside the module. \n> Essentially, enforcing what can and cannot be imported from you modules.\n>\n> - scope protection: The protection of attributes that are being accessed \n> from outside their class scope, so they couldn\'t be modified there.\n>\n> - automatic dynamic type checking and enforcement: decorators \n> and functions to check at run-time is the type, and structure of \n> types of the object equals to any type hint This can be done for \n> functions at every call for all the parameters, sing a decorator, \n> or manually, calling a function on a variable.\n\n#### dependencies:\n\n- opening:\n As for this is a really complex program, which uses a lot of modules, there are required dependencies needed\n in order to run the program. keep in mined the program was writen in python 3.9, so any python version lower\n than 3.8 might not work properly. Moreover, built-in python modules are being used, so keep that in mind.\n\n- install app dependencies by writing the "-r" option to install the requirements\n writen in a file, and write the following line in the project directory:\n````\npip install -r requirements.txt\n````\n\nrun a test\n-----------\n\n#### run from windows command line (inside the project directory)\n- run with python by writing to the command line in the project directory:\n````\npython test.py\n````\n\n- An example of the usage of runtime type-enforcement, private attributes and method overloading.\n```python\nimport time\nimport warnings\n\nfrom pystatic.overload import OverloadProtocol, overload\nfrom pystatic.types import statictypes\nfrom pystatic.private import private, PrivatePropertyProtocol\nfrom pystatic.casting import Castable, cast\n\nclass Demo1(Castable):\n\n def __init__(self, a, b, c, x=None):\n\n self.a = a\n self.b = b\n self.c = c\n self.x = x\n\nclass Demo2(Castable):\n\n def __init__(self, a, b, c, x=None, y=None, z=None):\n\n self.a = a\n self.b = b\n self.c = c\n self.x = x\n self.y = y\n self.z = z\n\ndemo2 = Demo2(0, 1, 2, 3, 4, 5)\ndemo1 = cast(Demo1, demo2)\n\nprint(demo2, demo2.dict)\nprint(demo1, demo1.dict)\n\n# noinspection PyNestedDecorators\nclass Foo(OverloadProtocol, PrivatePropertyProtocol):\n\n c = private()\n\n def __init__(self):\n\n print("\\nclass Foo:\\n\\n\\tdef __init__(self):\\n")\n\n self.c = 1\n print("\\t\\t>>> self.c = 1")\n print("\\t\\t>>> print(self.c)")\n print(f"\\t\\t{self.c}\\n")\n\n self.__d = 1\n print("\\t\\t>>> self.__d = 1")\n print("\\t\\t>>> print(self.__d)")\n print(f"\\t\\t{self.__d}\\n")\n\n self.c = 0\n print("\\t\\t>>> self.c = 0")\n print("\\t\\t>>> print(self.c)")\n print(f"\\t\\t{self.c}\\n")\n\n self.__d = 0\n print("\\t\\t>>> self.__d = 0")\n print("\\t\\t>>> print(self.__d)")\n print(f"\\t\\t{self.__d}\\n")\n\n @overload\n def a(self, x: int):\n print("\\n\\tdef a(self, x: int):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @a.overload\n @staticmethod\n def a(x: float):\n print("\\n\\t@staticmethod\\n\\tdef a(x: float):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @a.overload\n @classmethod\n def a(cls, x: float):\n print("\\n\\t@classmethod\\n\\tdef a(cls, x: float):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @statictypes(crush=False)\n def b(self, x: int):\n print("\\n\\t@statictypes(crush=False)\\n\\tdef b(self, x: int):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\nfoo = Foo()\n\nfoo.a(0)\nfoo.a(0.0)\n\nFoo.a(0)\nFoo.a(0.0)\n\nfoo.b(0)\n# noinspection PyTypeChecker\nfoo.b(0.0)\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(Foo.c)")\n print(Foo.c)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(foo.c)")\n print(foo.c)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(foo._Foo__d)")\n # noinspection PyProtectedMember\n print(foo._Foo__d)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n```\n- Output:\n````python\n<__main__.Demo2 object at 0x000001E16DB3F650> {\'a\': 0, \'b\': 1, \'c\': 2, \'x\': 3, \'y\': 4, \'z\': 5}\n<__main__.Demo1 object at 0x000001E16DB3F750> {\'a\': 0, \'b\': 1, \'c\': 2, \'x\': 3, \'y\': 4, \'z\': 5}\n\nclass Foo:\n\n def __init__(self):\n\n >>> self.c = 1\n >>> print(self.c)\n 1\n\n >>> self.__d = 1\n >>> print(self.__d)\n 1\n\n >>> self.c = 0\n >>> print(self.c)\n 0\n\n >>> self.__d = 0\n >>> print(self.__d)\n 0\n\n\n def a(self, x: int):\n\n >>> print(type(x))\n \n\n\n @staticmethod\n def a(x: float):\n\n >>> print(type(x))\n \n\n\n def a(self, x: int):\n\n >>> print(type(x))\n \n\n\n @staticmethod\n def a(x: float):\n\n >>> print(type(x))\n \n\n\n @statictypes(crush=False)\n def b(self, x: int):\n\n >>> print(type(x))\n \n\ntypes.py:166: RuntimeTypeWarning: Unexpected type was passed to x when calling , but should have been instead.\n @statictypes(crush=False)\n def b(self, x: int):\n\n >>> print(type(x))\n \n\n\n>>> print(Foo.c)\ntest.py:85: UserWarning: object of type has no attribute \'c\'\n\n>>> print(foo.c)\ntest.py:95: UserWarning: object of type has no attribute \'c\'\n\n>>> print(foo._Foo__d)\ntest.py:106: UserWarning: object of type has no attribute \'_Foo__d\'\n````'` 2023-05-15T16:52:43,542 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:43,542 consider this value unless `readme` is listed as `dynamic`. 2023-05-15T16:52:43,543 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:43,543 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:43,543 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:43,543 follow strictly the standard. 2023-05-15T16:52:43,543 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-05-15T16:52:43,544 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:43,544 configuration. 2023-05-15T16:52:43,544 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:43,544 or your builds will no longer be supported. 2023-05-15T16:52:43,544 ******************************************************************************** 2023-05-15T16:52:43,545 !! 2023-05-15T16:52:43,545 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:43,545 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:43,545 !! 2023-05-15T16:52:43,545 ******************************************************************************** 2023-05-15T16:52:43,545 ########################################################################## 2023-05-15T16:52:43,545 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:43,545 ########################################################################## 2023-05-15T16:52:43,546 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:43,546 `license = 'MIT'` 2023-05-15T16:52:43,546 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:43,546 consider this value unless `license` is listed as `dynamic`. 2023-05-15T16:52:43,547 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:43,547 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:43,547 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:43,547 follow strictly the standard. 2023-05-15T16:52:43,547 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-05-15T16:52:43,547 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:43,548 configuration. 2023-05-15T16:52:43,548 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:43,548 or your builds will no longer be supported. 2023-05-15T16:52:43,548 ******************************************************************************** 2023-05-15T16:52:43,548 !! 2023-05-15T16:52:43,549 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:43,549 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:43,549 !! 2023-05-15T16:52:43,549 ******************************************************************************** 2023-05-15T16:52:43,549 ########################################################################## 2023-05-15T16:52:43,549 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:43,549 ########################################################################## 2023-05-15T16:52:43,550 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:43,550 `authors = 'Shahaf Frank-Shapir'` 2023-05-15T16:52:43,550 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:43,550 consider this value unless `authors` is listed as `dynamic`. 2023-05-15T16:52:43,551 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:43,551 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:43,551 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:43,551 follow strictly the standard. 2023-05-15T16:52:43,551 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-05-15T16:52:43,551 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:43,552 configuration. 2023-05-15T16:52:43,552 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:43,552 or your builds will no longer be supported. 2023-05-15T16:52:43,552 ******************************************************************************** 2023-05-15T16:52:43,552 !! 2023-05-15T16:52:43,553 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:43,553 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:43,553 !! 2023-05-15T16:52:43,553 ******************************************************************************** 2023-05-15T16:52:43,553 ########################################################################## 2023-05-15T16:52:43,553 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:43,553 ########################################################################## 2023-05-15T16:52:43,554 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:43,554 `dependencies = ['dill', 'typeguard']` 2023-05-15T16:52:43,554 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:43,554 consider this value unless `dependencies` is listed as `dynamic`. 2023-05-15T16:52:43,555 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:43,555 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:43,555 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:43,555 follow strictly the standard. 2023-05-15T16:52:43,555 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-05-15T16:52:43,555 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:43,556 configuration. 2023-05-15T16:52:43,556 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:43,556 or your builds will no longer be supported. 2023-05-15T16:52:43,556 ******************************************************************************** 2023-05-15T16:52:43,556 !! 2023-05-15T16:52:43,557 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:43,557 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `optional-dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:43,557 !! 2023-05-15T16:52:43,557 ******************************************************************************** 2023-05-15T16:52:43,557 ########################################################################## 2023-05-15T16:52:43,557 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:43,557 ########################################################################## 2023-05-15T16:52:43,558 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:43,558 `optional-dependencies = {'dev': ['pdoc3']}` 2023-05-15T16:52:43,558 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:43,558 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-05-15T16:52:43,559 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:43,559 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:43,559 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:43,559 follow strictly the standard. 2023-05-15T16:52:43,559 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-05-15T16:52:43,559 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:43,559 configuration. 2023-05-15T16:52:43,560 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:43,560 or your builds will no longer be supported. 2023-05-15T16:52:43,560 ******************************************************************************** 2023-05-15T16:52:43,560 !! 2023-05-15T16:52:43,560 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:43,810 running egg_info 2023-05-15T16:52:43,815 writing pystatic_language.egg-info/PKG-INFO 2023-05-15T16:52:43,818 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-05-15T16:52:43,821 writing requirements to pystatic_language.egg-info/requires.txt 2023-05-15T16:52:43,822 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-05-15T16:52:43,840 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:43,843 reading manifest template 'MANIFEST.in' 2023-05-15T16:52:43,847 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:43,943 Getting requirements to build wheel: finished with status 'done' 2023-05-15T16:52:43,954 Installing backend dependencies: started 2023-05-15T16:52:43,955 Running command pip subprocess to install backend dependencies 2023-05-15T16:52:45,178 Using pip 23.1.2 from /home/piwheels/.local/lib/python3.9/site-packages/pip (python 3.9) 2023-05-15T16:52:45,556 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-05-15T16:52:46,008 Collecting wheel 2023-05-15T16:52:46,034 Using cached https://www.piwheels.org/simple/wheel/wheel-0.40.0-py3-none-any.whl (64 kB) 2023-05-15T16:52:47,527 Installing collected packages: wheel 2023-05-15T16:52:47,768 Creating /tmp/pip-build-env-d1ort0ac/normal/bin 2023-05-15T16:52:47,770 changing mode of /tmp/pip-build-env-d1ort0ac/normal/bin/wheel to 755 2023-05-15T16:52:47,785 Successfully installed wheel-0.40.0 2023-05-15T16:52:48,001 Installing backend dependencies: finished with status 'done' 2023-05-15T16:52:48,003 Created temporary directory: /tmp/pip-modern-metadata-kofpbeo3 2023-05-15T16:52:48,006 Preparing metadata (pyproject.toml): started 2023-05-15T16:52:48,007 Running command Preparing metadata (pyproject.toml) 2023-05-15T16:52:48,507 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-05-15T16:52:48,508 warnings.warn(msg) 2023-05-15T16:52:48,555 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:48,555 !! 2023-05-15T16:52:48,555 ******************************************************************************** 2023-05-15T16:52:48,555 ########################################################################## 2023-05-15T16:52:48,555 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:48,556 ########################################################################## 2023-05-15T16:52:48,556 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:48,556 `readme = '# pystatic\n\n> This package is a collection of methods and classes for making python more secure, robust, and reliable.\n> This could be achieved through the simple usage of decorators, function calls and inheritance of base classes.\n> Generally, this package can make python a programming language, closer to other static-typed languages, \n> without losing python\'s dynamic powerful features and.\n\nfirst of all\n------------\n\n#### specifics:\n\n- writen and owned by: Shahaf Frank-Shapir\n- all the rights are saved for: Shahaf Frank-Shapir\n- program version: 0.0.0\n- programming languages: python 3.9.12 (100%)\n\nbefore we start\n---------------\n\n#### description:\n\n> This package contains the following systems to be embedded in any python codebase:\n> \n> - overloading: Functions and methods (static, class and instance) \n> can have the same name yet different arguments\' signature \n> (different arguments - different names or same names and difference \n> in type hints.) through the usage of the overload decorator on top \n> of the base function\\method and inherit from the overloading \n> protocol class, when the usage is made in a class.\n>\n> - privacy: Attributes of classes and instances can now be private \n> in a way that prevents getting access to them in the traditional \n> ways, as well as the more shady ones This can be used whn a class \n> inherits from the private property protocol, or the private attributes \n> being defined as private using the private descriptor.\n>\n> - cleaning: Cleaning of unnecessary objects, values, imported namespaces \n> from your modules, so an object imported into a module cannot be \n> imported with anything else that is written inside the module. \n> Essentially, enforcing what can and cannot be imported from you modules.\n>\n> - scope protection: The protection of attributes that are being accessed \n> from outside their class scope, so they couldn\'t be modified there.\n>\n> - automatic dynamic type checking and enforcement: decorators \n> and functions to check at run-time is the type, and structure of \n> types of the object equals to any type hint This can be done for \n> functions at every call for all the parameters, sing a decorator, \n> or manually, calling a function on a variable.\n\n#### dependencies:\n\n- opening:\n As for this is a really complex program, which uses a lot of modules, there are required dependencies needed\n in order to run the program. keep in mined the program was writen in python 3.9, so any python version lower\n than 3.8 might not work properly. Moreover, built-in python modules are being used, so keep that in mind.\n\n- install app dependencies by writing the "-r" option to install the requirements\n writen in a file, and write the following line in the project directory:\n````\npip install -r requirements.txt\n````\n\nrun a test\n-----------\n\n#### run from windows command line (inside the project directory)\n- run with python by writing to the command line in the project directory:\n````\npython test.py\n````\n\n- An example of the usage of runtime type-enforcement, private attributes and method overloading.\n```python\nimport time\nimport warnings\n\nfrom pystatic.overload import OverloadProtocol, overload\nfrom pystatic.types import statictypes\nfrom pystatic.private import private, PrivatePropertyProtocol\nfrom pystatic.casting import Castable, cast\n\nclass Demo1(Castable):\n\n def __init__(self, a, b, c, x=None):\n\n self.a = a\n self.b = b\n self.c = c\n self.x = x\n\nclass Demo2(Castable):\n\n def __init__(self, a, b, c, x=None, y=None, z=None):\n\n self.a = a\n self.b = b\n self.c = c\n self.x = x\n self.y = y\n self.z = z\n\ndemo2 = Demo2(0, 1, 2, 3, 4, 5)\ndemo1 = cast(Demo1, demo2)\n\nprint(demo2, demo2.dict)\nprint(demo1, demo1.dict)\n\n# noinspection PyNestedDecorators\nclass Foo(OverloadProtocol, PrivatePropertyProtocol):\n\n c = private()\n\n def __init__(self):\n\n print("\\nclass Foo:\\n\\n\\tdef __init__(self):\\n")\n\n self.c = 1\n print("\\t\\t>>> self.c = 1")\n print("\\t\\t>>> print(self.c)")\n print(f"\\t\\t{self.c}\\n")\n\n self.__d = 1\n print("\\t\\t>>> self.__d = 1")\n print("\\t\\t>>> print(self.__d)")\n print(f"\\t\\t{self.__d}\\n")\n\n self.c = 0\n print("\\t\\t>>> self.c = 0")\n print("\\t\\t>>> print(self.c)")\n print(f"\\t\\t{self.c}\\n")\n\n self.__d = 0\n print("\\t\\t>>> self.__d = 0")\n print("\\t\\t>>> print(self.__d)")\n print(f"\\t\\t{self.__d}\\n")\n\n @overload\n def a(self, x: int):\n print("\\n\\tdef a(self, x: int):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @a.overload\n @staticmethod\n def a(x: float):\n print("\\n\\t@staticmethod\\n\\tdef a(x: float):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @a.overload\n @classmethod\n def a(cls, x: float):\n print("\\n\\t@classmethod\\n\\tdef a(cls, x: float):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @statictypes(crush=False)\n def b(self, x: int):\n print("\\n\\t@statictypes(crush=False)\\n\\tdef b(self, x: int):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\nfoo = Foo()\n\nfoo.a(0)\nfoo.a(0.0)\n\nFoo.a(0)\nFoo.a(0.0)\n\nfoo.b(0)\n# noinspection PyTypeChecker\nfoo.b(0.0)\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(Foo.c)")\n print(Foo.c)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(foo.c)")\n print(foo.c)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(foo._Foo__d)")\n # noinspection PyProtectedMember\n print(foo._Foo__d)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n```\n- Output:\n````python\n<__main__.Demo2 object at 0x000001E16DB3F650> {\'a\': 0, \'b\': 1, \'c\': 2, \'x\': 3, \'y\': 4, \'z\': 5}\n<__main__.Demo1 object at 0x000001E16DB3F750> {\'a\': 0, \'b\': 1, \'c\': 2, \'x\': 3, \'y\': 4, \'z\': 5}\n\nclass Foo:\n\n def __init__(self):\n\n >>> self.c = 1\n >>> print(self.c)\n 1\n\n >>> self.__d = 1\n >>> print(self.__d)\n 1\n\n >>> self.c = 0\n >>> print(self.c)\n 0\n\n >>> self.__d = 0\n >>> print(self.__d)\n 0\n\n\n def a(self, x: int):\n\n >>> print(type(x))\n \n\n\n @staticmethod\n def a(x: float):\n\n >>> print(type(x))\n \n\n\n def a(self, x: int):\n\n >>> print(type(x))\n \n\n\n @staticmethod\n def a(x: float):\n\n >>> print(type(x))\n \n\n\n @statictypes(crush=False)\n def b(self, x: int):\n\n >>> print(type(x))\n \n\ntypes.py:166: RuntimeTypeWarning: Unexpected type was passed to x when calling , but should have been instead.\n @statictypes(crush=False)\n def b(self, x: int):\n\n >>> print(type(x))\n \n\n\n>>> print(Foo.c)\ntest.py:85: UserWarning: object of type has no attribute \'c\'\n\n>>> print(foo.c)\ntest.py:95: UserWarning: object of type has no attribute \'c\'\n\n>>> print(foo._Foo__d)\ntest.py:106: UserWarning: object of type has no attribute \'_Foo__d\'\n````'` 2023-05-15T16:52:48,557 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:48,557 consider this value unless `readme` is listed as `dynamic`. 2023-05-15T16:52:48,557 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:48,557 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:48,558 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:48,558 follow strictly the standard. 2023-05-15T16:52:48,558 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-05-15T16:52:48,558 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:48,558 configuration. 2023-05-15T16:52:48,558 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:48,558 or your builds will no longer be supported. 2023-05-15T16:52:48,559 ******************************************************************************** 2023-05-15T16:52:48,559 !! 2023-05-15T16:52:48,559 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:48,559 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:48,559 !! 2023-05-15T16:52:48,560 ******************************************************************************** 2023-05-15T16:52:48,560 ########################################################################## 2023-05-15T16:52:48,560 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:48,560 ########################################################################## 2023-05-15T16:52:48,560 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:48,561 `license = 'MIT'` 2023-05-15T16:52:48,561 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:48,561 consider this value unless `license` is listed as `dynamic`. 2023-05-15T16:52:48,561 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:48,562 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:48,562 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:48,562 follow strictly the standard. 2023-05-15T16:52:48,562 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-05-15T16:52:48,562 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:48,562 configuration. 2023-05-15T16:52:48,563 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:48,563 or your builds will no longer be supported. 2023-05-15T16:52:48,563 ******************************************************************************** 2023-05-15T16:52:48,563 !! 2023-05-15T16:52:48,563 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:48,564 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:48,564 !! 2023-05-15T16:52:48,564 ******************************************************************************** 2023-05-15T16:52:48,564 ########################################################################## 2023-05-15T16:52:48,564 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:48,564 ########################################################################## 2023-05-15T16:52:48,565 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:48,565 `authors = 'Shahaf Frank-Shapir'` 2023-05-15T16:52:48,565 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:48,565 consider this value unless `authors` is listed as `dynamic`. 2023-05-15T16:52:48,566 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:48,566 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:48,566 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:48,566 follow strictly the standard. 2023-05-15T16:52:48,566 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-05-15T16:52:48,566 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:48,566 configuration. 2023-05-15T16:52:48,567 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:48,567 or your builds will no longer be supported. 2023-05-15T16:52:48,567 ******************************************************************************** 2023-05-15T16:52:48,567 !! 2023-05-15T16:52:48,567 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:48,567 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:48,568 !! 2023-05-15T16:52:48,568 ******************************************************************************** 2023-05-15T16:52:48,568 ########################################################################## 2023-05-15T16:52:48,568 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:48,568 ########################################################################## 2023-05-15T16:52:48,568 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:48,569 `dependencies = ['dill', 'typeguard']` 2023-05-15T16:52:48,569 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:48,569 consider this value unless `dependencies` is listed as `dynamic`. 2023-05-15T16:52:48,569 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:48,569 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:48,569 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:48,570 follow strictly the standard. 2023-05-15T16:52:48,570 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-05-15T16:52:48,570 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:48,570 configuration. 2023-05-15T16:52:48,570 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:48,570 or your builds will no longer be supported. 2023-05-15T16:52:48,571 ******************************************************************************** 2023-05-15T16:52:48,571 !! 2023-05-15T16:52:48,571 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:48,571 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `optional-dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:48,571 !! 2023-05-15T16:52:48,571 ******************************************************************************** 2023-05-15T16:52:48,571 ########################################################################## 2023-05-15T16:52:48,572 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:48,572 ########################################################################## 2023-05-15T16:52:48,572 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:48,572 `optional-dependencies = {'dev': ['pdoc3']}` 2023-05-15T16:52:48,572 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:48,572 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-05-15T16:52:48,573 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:48,573 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:48,573 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:48,573 follow strictly the standard. 2023-05-15T16:52:48,573 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-05-15T16:52:48,573 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:48,574 configuration. 2023-05-15T16:52:48,574 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:48,574 or your builds will no longer be supported. 2023-05-15T16:52:48,574 ******************************************************************************** 2023-05-15T16:52:48,574 !! 2023-05-15T16:52:48,574 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:48,896 running dist_info 2023-05-15T16:52:48,902 creating /tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info 2023-05-15T16:52:48,906 writing /tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/PKG-INFO 2023-05-15T16:52:48,909 writing dependency_links to /tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/dependency_links.txt 2023-05-15T16:52:48,911 writing requirements to /tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/requires.txt 2023-05-15T16:52:48,913 writing top-level names to /tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/top_level.txt 2023-05-15T16:52:48,914 writing manifest file '/tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:48,929 reading manifest file '/tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:48,931 reading manifest template 'MANIFEST.in' 2023-05-15T16:52:48,934 writing manifest file '/tmp/pip-modern-metadata-kofpbeo3/pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:48,935 creating '/tmp/pip-modern-metadata-kofpbeo3/pystatic_language-1.0.3.dist-info' 2023-05-15T16:52:49,070 Preparing metadata (pyproject.toml): finished with status 'done' 2023-05-15T16:52:49,077 Source in /tmp/pip-wheel-ix0_ybnt/pystatic-language_cd7e831afe25442aa8cb7871c57b39b5 has version 1.0.3, which satisfies requirement pystatic-language==1.0.3 from https://files.pythonhosted.org/packages/f4/13/00defb2c2bc0ffed13085f0389fd2ac8494ee5678ad8118a698a1b502c37/pystatic-language-1.0.3.tar.gz 2023-05-15T16:52:49,078 Removed pystatic-language==1.0.3 from https://files.pythonhosted.org/packages/f4/13/00defb2c2bc0ffed13085f0389fd2ac8494ee5678ad8118a698a1b502c37/pystatic-language-1.0.3.tar.gz from build tracker '/tmp/pip-build-tracker-gyzgxe1b' 2023-05-15T16:52:49,083 Created temporary directory: /tmp/pip-unpack-zbjie8yy 2023-05-15T16:52:49,084 Building wheels for collected packages: pystatic-language 2023-05-15T16:52:49,089 Created temporary directory: /tmp/pip-wheel-0687sems 2023-05-15T16:52:49,089 Destination directory: /tmp/pip-wheel-0687sems 2023-05-15T16:52:49,091 Building wheel for pystatic-language (pyproject.toml): started 2023-05-15T16:52:49,093 Running command Building wheel for pystatic-language (pyproject.toml) 2023-05-15T16:52:49,585 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-05-15T16:52:49,585 warnings.warn(msg) 2023-05-15T16:52:49,631 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:49,631 !! 2023-05-15T16:52:49,632 ******************************************************************************** 2023-05-15T16:52:49,632 ########################################################################## 2023-05-15T16:52:49,632 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:49,632 ########################################################################## 2023-05-15T16:52:49,633 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:49,633 `readme = '# pystatic\n\n> This package is a collection of methods and classes for making python more secure, robust, and reliable.\n> This could be achieved through the simple usage of decorators, function calls and inheritance of base classes.\n> Generally, this package can make python a programming language, closer to other static-typed languages, \n> without losing python\'s dynamic powerful features and.\n\nfirst of all\n------------\n\n#### specifics:\n\n- writen and owned by: Shahaf Frank-Shapir\n- all the rights are saved for: Shahaf Frank-Shapir\n- program version: 0.0.0\n- programming languages: python 3.9.12 (100%)\n\nbefore we start\n---------------\n\n#### description:\n\n> This package contains the following systems to be embedded in any python codebase:\n> \n> - overloading: Functions and methods (static, class and instance) \n> can have the same name yet different arguments\' signature \n> (different arguments - different names or same names and difference \n> in type hints.) through the usage of the overload decorator on top \n> of the base function\\method and inherit from the overloading \n> protocol class, when the usage is made in a class.\n>\n> - privacy: Attributes of classes and instances can now be private \n> in a way that prevents getting access to them in the traditional \n> ways, as well as the more shady ones This can be used whn a class \n> inherits from the private property protocol, or the private attributes \n> being defined as private using the private descriptor.\n>\n> - cleaning: Cleaning of unnecessary objects, values, imported namespaces \n> from your modules, so an object imported into a module cannot be \n> imported with anything else that is written inside the module. \n> Essentially, enforcing what can and cannot be imported from you modules.\n>\n> - scope protection: The protection of attributes that are being accessed \n> from outside their class scope, so they couldn\'t be modified there.\n>\n> - automatic dynamic type checking and enforcement: decorators \n> and functions to check at run-time is the type, and structure of \n> types of the object equals to any type hint This can be done for \n> functions at every call for all the parameters, sing a decorator, \n> or manually, calling a function on a variable.\n\n#### dependencies:\n\n- opening:\n As for this is a really complex program, which uses a lot of modules, there are required dependencies needed\n in order to run the program. keep in mined the program was writen in python 3.9, so any python version lower\n than 3.8 might not work properly. Moreover, built-in python modules are being used, so keep that in mind.\n\n- install app dependencies by writing the "-r" option to install the requirements\n writen in a file, and write the following line in the project directory:\n````\npip install -r requirements.txt\n````\n\nrun a test\n-----------\n\n#### run from windows command line (inside the project directory)\n- run with python by writing to the command line in the project directory:\n````\npython test.py\n````\n\n- An example of the usage of runtime type-enforcement, private attributes and method overloading.\n```python\nimport time\nimport warnings\n\nfrom pystatic.overload import OverloadProtocol, overload\nfrom pystatic.types import statictypes\nfrom pystatic.private import private, PrivatePropertyProtocol\nfrom pystatic.casting import Castable, cast\n\nclass Demo1(Castable):\n\n def __init__(self, a, b, c, x=None):\n\n self.a = a\n self.b = b\n self.c = c\n self.x = x\n\nclass Demo2(Castable):\n\n def __init__(self, a, b, c, x=None, y=None, z=None):\n\n self.a = a\n self.b = b\n self.c = c\n self.x = x\n self.y = y\n self.z = z\n\ndemo2 = Demo2(0, 1, 2, 3, 4, 5)\ndemo1 = cast(Demo1, demo2)\n\nprint(demo2, demo2.dict)\nprint(demo1, demo1.dict)\n\n# noinspection PyNestedDecorators\nclass Foo(OverloadProtocol, PrivatePropertyProtocol):\n\n c = private()\n\n def __init__(self):\n\n print("\\nclass Foo:\\n\\n\\tdef __init__(self):\\n")\n\n self.c = 1\n print("\\t\\t>>> self.c = 1")\n print("\\t\\t>>> print(self.c)")\n print(f"\\t\\t{self.c}\\n")\n\n self.__d = 1\n print("\\t\\t>>> self.__d = 1")\n print("\\t\\t>>> print(self.__d)")\n print(f"\\t\\t{self.__d}\\n")\n\n self.c = 0\n print("\\t\\t>>> self.c = 0")\n print("\\t\\t>>> print(self.c)")\n print(f"\\t\\t{self.c}\\n")\n\n self.__d = 0\n print("\\t\\t>>> self.__d = 0")\n print("\\t\\t>>> print(self.__d)")\n print(f"\\t\\t{self.__d}\\n")\n\n @overload\n def a(self, x: int):\n print("\\n\\tdef a(self, x: int):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @a.overload\n @staticmethod\n def a(x: float):\n print("\\n\\t@staticmethod\\n\\tdef a(x: float):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @a.overload\n @classmethod\n def a(cls, x: float):\n print("\\n\\t@classmethod\\n\\tdef a(cls, x: float):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\n @statictypes(crush=False)\n def b(self, x: int):\n print("\\n\\t@statictypes(crush=False)\\n\\tdef b(self, x: int):")\n print(f"\\n\\t\\t>>> print(type(x))")\n print(f"\\t\\t{type(x)}\\n")\n\nfoo = Foo()\n\nfoo.a(0)\nfoo.a(0.0)\n\nFoo.a(0)\nFoo.a(0.0)\n\nfoo.b(0)\n# noinspection PyTypeChecker\nfoo.b(0.0)\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(Foo.c)")\n print(Foo.c)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(foo.c)")\n print(foo.c)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n\ntry:\n print("\\n>>> print(foo._Foo__d)")\n # noinspection PyProtectedMember\n print(foo._Foo__d)\n\nexcept AttributeError as e:\n warnings.warn(str(e))\n# end try\n\ntime.sleep(0.2)\n```\n- Output:\n````python\n<__main__.Demo2 object at 0x000001E16DB3F650> {\'a\': 0, \'b\': 1, \'c\': 2, \'x\': 3, \'y\': 4, \'z\': 5}\n<__main__.Demo1 object at 0x000001E16DB3F750> {\'a\': 0, \'b\': 1, \'c\': 2, \'x\': 3, \'y\': 4, \'z\': 5}\n\nclass Foo:\n\n def __init__(self):\n\n >>> self.c = 1\n >>> print(self.c)\n 1\n\n >>> self.__d = 1\n >>> print(self.__d)\n 1\n\n >>> self.c = 0\n >>> print(self.c)\n 0\n\n >>> self.__d = 0\n >>> print(self.__d)\n 0\n\n\n def a(self, x: int):\n\n >>> print(type(x))\n \n\n\n @staticmethod\n def a(x: float):\n\n >>> print(type(x))\n \n\n\n def a(self, x: int):\n\n >>> print(type(x))\n \n\n\n @staticmethod\n def a(x: float):\n\n >>> print(type(x))\n \n\n\n @statictypes(crush=False)\n def b(self, x: int):\n\n >>> print(type(x))\n \n\ntypes.py:166: RuntimeTypeWarning: Unexpected type was passed to x when calling , but should have been instead.\n @statictypes(crush=False)\n def b(self, x: int):\n\n >>> print(type(x))\n \n\n\n>>> print(Foo.c)\ntest.py:85: UserWarning: object of type has no attribute \'c\'\n\n>>> print(foo.c)\ntest.py:95: UserWarning: object of type has no attribute \'c\'\n\n>>> print(foo._Foo__d)\ntest.py:106: UserWarning: object of type has no attribute \'_Foo__d\'\n````'` 2023-05-15T16:52:49,633 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:49,634 consider this value unless `readme` is listed as `dynamic`. 2023-05-15T16:52:49,634 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:49,634 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:49,634 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:49,635 follow strictly the standard. 2023-05-15T16:52:49,635 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-05-15T16:52:49,635 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:49,635 configuration. 2023-05-15T16:52:49,635 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:49,636 or your builds will no longer be supported. 2023-05-15T16:52:49,636 ******************************************************************************** 2023-05-15T16:52:49,636 !! 2023-05-15T16:52:49,636 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:49,636 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:49,636 !! 2023-05-15T16:52:49,637 ******************************************************************************** 2023-05-15T16:52:49,637 ########################################################################## 2023-05-15T16:52:49,637 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:49,637 ########################################################################## 2023-05-15T16:52:49,637 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:49,638 `license = 'MIT'` 2023-05-15T16:52:49,638 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:49,638 consider this value unless `license` is listed as `dynamic`. 2023-05-15T16:52:49,639 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:49,639 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:49,639 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:49,639 follow strictly the standard. 2023-05-15T16:52:49,639 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-05-15T16:52:49,640 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:49,640 configuration. 2023-05-15T16:52:49,640 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:49,640 or your builds will no longer be supported. 2023-05-15T16:52:49,640 ******************************************************************************** 2023-05-15T16:52:49,641 !! 2023-05-15T16:52:49,641 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:49,641 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:49,641 !! 2023-05-15T16:52:49,641 ******************************************************************************** 2023-05-15T16:52:49,642 ########################################################################## 2023-05-15T16:52:49,642 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:49,642 ########################################################################## 2023-05-15T16:52:49,642 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:49,642 `authors = 'Shahaf Frank-Shapir'` 2023-05-15T16:52:49,643 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:49,643 consider this value unless `authors` is listed as `dynamic`. 2023-05-15T16:52:49,643 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:49,643 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:49,644 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:49,644 follow strictly the standard. 2023-05-15T16:52:49,644 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-05-15T16:52:49,644 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:49,644 configuration. 2023-05-15T16:52:49,645 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:49,645 or your builds will no longer be supported. 2023-05-15T16:52:49,645 ******************************************************************************** 2023-05-15T16:52:49,646 !! 2023-05-15T16:52:49,646 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:49,646 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:49,646 !! 2023-05-15T16:52:49,646 ******************************************************************************** 2023-05-15T16:52:49,646 ########################################################################## 2023-05-15T16:52:49,647 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:49,647 ########################################################################## 2023-05-15T16:52:49,647 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:49,647 `dependencies = ['dill', 'typeguard']` 2023-05-15T16:52:49,648 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:49,648 consider this value unless `dependencies` is listed as `dynamic`. 2023-05-15T16:52:49,648 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:49,648 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:49,648 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:49,649 follow strictly the standard. 2023-05-15T16:52:49,649 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-05-15T16:52:49,649 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:49,649 configuration. 2023-05-15T16:52:49,649 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:49,649 or your builds will no longer be supported. 2023-05-15T16:52:49,650 ******************************************************************************** 2023-05-15T16:52:49,650 !! 2023-05-15T16:52:49,650 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:49,650 /tmp/pip-build-env-d1ort0ac/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `optional-dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T16:52:49,650 !! 2023-05-15T16:52:49,650 ******************************************************************************** 2023-05-15T16:52:49,651 ########################################################################## 2023-05-15T16:52:49,651 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T16:52:49,651 ########################################################################## 2023-05-15T16:52:49,651 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T16:52:49,651 `optional-dependencies = {'dev': ['pdoc3']}` 2023-05-15T16:52:49,652 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T16:52:49,652 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-05-15T16:52:49,652 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T16:52:49,652 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T16:52:49,652 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T16:52:49,652 follow strictly the standard. 2023-05-15T16:52:49,653 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-05-15T16:52:49,653 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T16:52:49,653 configuration. 2023-05-15T16:52:49,653 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T16:52:49,653 or your builds will no longer be supported. 2023-05-15T16:52:49,653 ******************************************************************************** 2023-05-15T16:52:49,654 !! 2023-05-15T16:52:49,654 _handle_missing_dynamic(dist, project_table) 2023-05-15T16:52:49,926 running bdist_wheel 2023-05-15T16:52:49,941 running build 2023-05-15T16:52:49,941 running build_py 2023-05-15T16:52:49,947 creating build 2023-05-15T16:52:49,947 creating build/lib 2023-05-15T16:52:49,948 creating build/lib/pystatic 2023-05-15T16:52:49,950 copying pystatic/clean.py -> build/lib/pystatic 2023-05-15T16:52:49,952 copying pystatic/types.py -> build/lib/pystatic 2023-05-15T16:52:49,955 copying pystatic/document.py -> build/lib/pystatic 2023-05-15T16:52:49,957 copying pystatic/private.py -> build/lib/pystatic 2023-05-15T16:52:49,959 copying pystatic/base.py -> build/lib/pystatic 2023-05-15T16:52:49,962 copying pystatic/casting.py -> build/lib/pystatic 2023-05-15T16:52:49,965 copying pystatic/overload.py -> build/lib/pystatic 2023-05-15T16:52:49,967 running egg_info 2023-05-15T16:52:49,975 writing pystatic_language.egg-info/PKG-INFO 2023-05-15T16:52:49,977 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-05-15T16:52:49,979 writing requirements to pystatic_language.egg-info/requires.txt 2023-05-15T16:52:49,980 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-05-15T16:52:49,988 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:49,990 reading manifest template 'MANIFEST.in' 2023-05-15T16:52:49,994 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T16:52:50,004 installing to build/bdist.linux-aarch64/wheel 2023-05-15T16:52:50,004 running install 2023-05-15T16:52:50,030 running install_lib 2023-05-15T16:52:50,035 creating build/bdist.linux-aarch64 2023-05-15T16:52:50,035 creating build/bdist.linux-aarch64/wheel 2023-05-15T16:52:50,037 creating build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,038 copying build/lib/pystatic/clean.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,040 copying build/lib/pystatic/types.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,043 copying build/lib/pystatic/document.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,045 copying build/lib/pystatic/private.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,047 copying build/lib/pystatic/base.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,050 copying build/lib/pystatic/casting.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,052 copying build/lib/pystatic/overload.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T16:52:50,054 running install_egg_info 2023-05-15T16:52:50,059 Copying pystatic_language.egg-info to build/bdist.linux-aarch64/wheel/pystatic_language-1.0.3-py3.9.egg-info 2023-05-15T16:52:50,070 running install_scripts 2023-05-15T16:52:50,085 creating build/bdist.linux-aarch64/wheel/pystatic_language-1.0.3.dist-info/WHEEL 2023-05-15T16:52:50,087 creating '/tmp/pip-wheel-0687sems/.tmp-73sh3xzf/pystatic_language-1.0.3-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it 2023-05-15T16:52:50,090 adding 'pystatic/base.py' 2023-05-15T16:52:50,092 adding 'pystatic/casting.py' 2023-05-15T16:52:50,094 adding 'pystatic/clean.py' 2023-05-15T16:52:50,095 adding 'pystatic/document.py' 2023-05-15T16:52:50,097 adding 'pystatic/overload.py' 2023-05-15T16:52:50,098 adding 'pystatic/private.py' 2023-05-15T16:52:50,100 adding 'pystatic/types.py' 2023-05-15T16:52:50,103 adding 'pystatic_language-1.0.3.dist-info/METADATA' 2023-05-15T16:52:50,104 adding 'pystatic_language-1.0.3.dist-info/WHEEL' 2023-05-15T16:52:50,105 adding 'pystatic_language-1.0.3.dist-info/top_level.txt' 2023-05-15T16:52:50,106 adding 'pystatic_language-1.0.3.dist-info/RECORD' 2023-05-15T16:52:50,107 removing build/bdist.linux-aarch64/wheel 2023-05-15T16:52:50,213 Building wheel for pystatic-language (pyproject.toml): finished with status 'done' 2023-05-15T16:52:50,219 Created wheel for pystatic-language: filename=pystatic_language-1.0.3-py3-none-any.whl size=13075 sha256=7a2b099bda297c8cf761a937600be1d48587fe5a9189d2fd7d15e15ca1ac273f 2023-05-15T16:52:50,220 Stored in directory: /tmp/pip-ephem-wheel-cache-kh292fyz/wheels/d9/8e/92/40b65dbdb6af86afba4cf937e1a0669a018b3f077b7162e782 2023-05-15T16:52:50,232 Successfully built pystatic-language 2023-05-15T16:52:50,236 Removed build tracker: '/tmp/pip-build-tracker-gyzgxe1b'