2023-05-15T10:47:52,091 Created temporary directory: /tmp/pip-build-tracker-ph3y3ob_ 2023-05-15T10:47:52,092 Initialized build tracking at /tmp/pip-build-tracker-ph3y3ob_ 2023-05-15T10:47:52,093 Created build tracker: /tmp/pip-build-tracker-ph3y3ob_ 2023-05-15T10:47:52,093 Entered build tracker: /tmp/pip-build-tracker-ph3y3ob_ 2023-05-15T10:47:52,094 Created temporary directory: /tmp/pip-wheel-g9u4gpbv 2023-05-15T10:47:52,097 Created temporary directory: /tmp/pip-ephem-wheel-cache-xdiqo5pm 2023-05-15T10:47:52,123 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-05-15T10:47:52,126 2 location(s) to search for versions of pystatic-language: 2023-05-15T10:47:52,126 * https://pypi.org/simple/pystatic-language/ 2023-05-15T10:47:52,126 * https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T10:47:52,127 Fetching project page and analyzing links: https://pypi.org/simple/pystatic-language/ 2023-05-15T10:47:52,127 Getting page https://pypi.org/simple/pystatic-language/ 2023-05-15T10:47:52,129 Found index url https://pypi.org/simple/ 2023-05-15T10:47:52,190 Fetched page https://pypi.org/simple/pystatic-language/ as application/vnd.pypi.simple.v1+json 2023-05-15T10:47:52,191 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-15T10:47:52,192 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-15T10:47:52,192 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-15T10:47:52,192 Fetching project page and analyzing links: https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T10:47:52,193 Getting page https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T10:47:52,194 Found index url https://www.piwheels.org/simple/ 2023-05-15T10:47:52,395 Fetched page https://www.piwheels.org/simple/pystatic-language/ as text/html 2023-05-15T10:47:52,397 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-15T10:47:52,397 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-15T10:47:52,397 Skipping link: not a file: https://www.piwheels.org/simple/pystatic-language/ 2023-05-15T10:47:52,397 Skipping link: not a file: https://pypi.org/simple/pystatic-language/ 2023-05-15T10:47:52,416 Given no hashes to check 1 links for project 'pystatic-language': discarding no candidates 2023-05-15T10:47:52,434 Collecting pystatic-language==1.0.2 2023-05-15T10:47:52,436 Created temporary directory: /tmp/pip-unpack-934tj29h 2023-05-15T10:47:52,482 Downloading pystatic-language-1.0.2.tar.gz (16 kB) 2023-05-15T10:47:52,543 Added pystatic-language==1.0.2 from https://files.pythonhosted.org/packages/02/58/2cd10f2d6867bb21c79346466084a761c808073281a8e78d7bdd9971d98e/pystatic-language-1.0.2.tar.gz to build tracker '/tmp/pip-build-tracker-ph3y3ob_' 2023-05-15T10:47:52,546 Created temporary directory: /tmp/pip-build-env-hw5ju7pa 2023-05-15T10:47:52,557 Installing build dependencies: started 2023-05-15T10:47:52,558 Running command pip subprocess to install build dependencies 2023-05-15T10:47:53,775 Using pip 23.1.2 from /home/piwheels/.local/lib/python3.9/site-packages/pip (python 3.9) 2023-05-15T10:47:54,147 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-05-15T10:47:55,852 Collecting setuptools 2023-05-15T10:47:55,940 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.7.2-py3-none-any.whl (1.1 MB) 2023-05-15T10:47:57,770 Installing collected packages: setuptools 2023-05-15T10:48:00,085 Successfully installed setuptools-67.7.2 2023-05-15T10:48:00,349 Installing build dependencies: finished with status 'done' 2023-05-15T10:48:00,355 Getting requirements to build wheel: started 2023-05-15T10:48:00,356 Running command Getting requirements to build wheel 2023-05-15T10:48:00,878 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-05-15T10:48:00,878 warnings.warn(msg) 2023-05-15T10:48:00,925 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:00,926 !! 2023-05-15T10:48:00,926 ******************************************************************************** 2023-05-15T10:48:00,926 ########################################################################## 2023-05-15T10:48:00,926 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:00,926 ########################################################################## 2023-05-15T10:48:00,927 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:00,927 `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-15T10:48:00,927 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:00,928 consider this value unless `readme` is listed as `dynamic`. 2023-05-15T10:48:00,928 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:00,928 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:00,928 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:00,928 follow strictly the standard. 2023-05-15T10:48:00,929 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-05-15T10:48:00,929 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:00,929 configuration. 2023-05-15T10:48:00,929 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:00,929 or your builds will no longer be supported. 2023-05-15T10:48:00,929 ******************************************************************************** 2023-05-15T10:48:00,930 !! 2023-05-15T10:48:00,930 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:00,930 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:00,930 !! 2023-05-15T10:48:00,930 ******************************************************************************** 2023-05-15T10:48:00,930 ########################################################################## 2023-05-15T10:48:00,930 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:00,931 ########################################################################## 2023-05-15T10:48:00,931 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:00,931 `license = 'MIT'` 2023-05-15T10:48:00,931 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:00,932 consider this value unless `license` is listed as `dynamic`. 2023-05-15T10:48:00,932 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:00,932 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:00,932 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:00,933 follow strictly the standard. 2023-05-15T10:48:00,933 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-05-15T10:48:00,933 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:00,933 configuration. 2023-05-15T10:48:00,933 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:00,934 or your builds will no longer be supported. 2023-05-15T10:48:00,934 ******************************************************************************** 2023-05-15T10:48:00,934 !! 2023-05-15T10:48:00,934 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:00,934 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:00,934 !! 2023-05-15T10:48:00,935 ******************************************************************************** 2023-05-15T10:48:00,935 ########################################################################## 2023-05-15T10:48:00,935 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:00,935 ########################################################################## 2023-05-15T10:48:00,935 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:00,935 `authors = 'Shahaf Frank-Shapir'` 2023-05-15T10:48:00,936 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:00,936 consider this value unless `authors` is listed as `dynamic`. 2023-05-15T10:48:00,936 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:00,936 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:00,937 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:00,937 follow strictly the standard. 2023-05-15T10:48:00,937 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-05-15T10:48:00,937 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:00,938 configuration. 2023-05-15T10:48:00,938 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:00,938 or your builds will no longer be supported. 2023-05-15T10:48:00,938 ******************************************************************************** 2023-05-15T10:48:00,938 !! 2023-05-15T10:48:00,939 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:00,939 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:00,939 !! 2023-05-15T10:48:00,939 ******************************************************************************** 2023-05-15T10:48:00,939 ########################################################################## 2023-05-15T10:48:00,939 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:00,939 ########################################################################## 2023-05-15T10:48:00,940 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:00,940 `dependencies = ['dill', 'typeguard']` 2023-05-15T10:48:00,940 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:00,940 consider this value unless `dependencies` is listed as `dynamic`. 2023-05-15T10:48:00,941 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:00,941 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:00,941 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:00,941 follow strictly the standard. 2023-05-15T10:48:00,941 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-05-15T10:48:00,942 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:00,942 configuration. 2023-05-15T10:48:00,942 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:00,942 or your builds will no longer be supported. 2023-05-15T10:48:00,942 ******************************************************************************** 2023-05-15T10:48:00,942 !! 2023-05-15T10:48:00,942 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:00,943 /tmp/pip-build-env-hw5ju7pa/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-15T10:48:00,943 !! 2023-05-15T10:48:00,943 ******************************************************************************** 2023-05-15T10:48:00,943 ########################################################################## 2023-05-15T10:48:00,943 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:00,943 ########################################################################## 2023-05-15T10:48:00,944 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:00,944 `optional-dependencies = {'dev': ['pdoc3']}` 2023-05-15T10:48:00,944 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:00,944 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-05-15T10:48:00,944 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:00,945 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:00,945 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:00,945 follow strictly the standard. 2023-05-15T10:48:00,945 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-05-15T10:48:00,945 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:00,945 configuration. 2023-05-15T10:48:00,946 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:00,946 or your builds will no longer be supported. 2023-05-15T10:48:00,946 ******************************************************************************** 2023-05-15T10:48:00,946 !! 2023-05-15T10:48:00,946 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:01,188 running egg_info 2023-05-15T10:48:01,193 writing pystatic_language.egg-info/PKG-INFO 2023-05-15T10:48:01,195 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-05-15T10:48:01,198 writing requirements to pystatic_language.egg-info/requires.txt 2023-05-15T10:48:01,199 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-05-15T10:48:01,217 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:01,219 reading manifest template 'MANIFEST.in' 2023-05-15T10:48:01,223 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:01,317 Getting requirements to build wheel: finished with status 'done' 2023-05-15T10:48:01,328 Installing backend dependencies: started 2023-05-15T10:48:01,329 Running command pip subprocess to install backend dependencies 2023-05-15T10:48:02,535 Using pip 23.1.2 from /home/piwheels/.local/lib/python3.9/site-packages/pip (python 3.9) 2023-05-15T10:48:02,908 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-05-15T10:48:03,371 Collecting wheel 2023-05-15T10:48:03,392 Using cached https://www.piwheels.org/simple/wheel/wheel-0.40.0-py3-none-any.whl (64 kB) 2023-05-15T10:48:04,885 Installing collected packages: wheel 2023-05-15T10:48:05,130 Creating /tmp/pip-build-env-hw5ju7pa/normal/bin 2023-05-15T10:48:05,133 changing mode of /tmp/pip-build-env-hw5ju7pa/normal/bin/wheel to 755 2023-05-15T10:48:05,147 Successfully installed wheel-0.40.0 2023-05-15T10:48:05,363 Installing backend dependencies: finished with status 'done' 2023-05-15T10:48:05,366 Created temporary directory: /tmp/pip-modern-metadata-mrhtl_mo 2023-05-15T10:48:05,369 Preparing metadata (pyproject.toml): started 2023-05-15T10:48:05,370 Running command Preparing metadata (pyproject.toml) 2023-05-15T10:48:05,897 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-05-15T10:48:05,897 warnings.warn(msg) 2023-05-15T10:48:05,944 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:05,945 !! 2023-05-15T10:48:05,945 ******************************************************************************** 2023-05-15T10:48:05,945 ########################################################################## 2023-05-15T10:48:05,945 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:05,945 ########################################################################## 2023-05-15T10:48:05,946 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:05,946 `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-15T10:48:05,946 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:05,947 consider this value unless `readme` is listed as `dynamic`. 2023-05-15T10:48:05,947 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:05,947 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:05,947 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:05,947 follow strictly the standard. 2023-05-15T10:48:05,947 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-05-15T10:48:05,948 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:05,948 configuration. 2023-05-15T10:48:05,948 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:05,948 or your builds will no longer be supported. 2023-05-15T10:48:05,948 ******************************************************************************** 2023-05-15T10:48:05,948 !! 2023-05-15T10:48:05,949 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:05,949 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:05,949 !! 2023-05-15T10:48:05,949 ******************************************************************************** 2023-05-15T10:48:05,949 ########################################################################## 2023-05-15T10:48:05,949 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:05,949 ########################################################################## 2023-05-15T10:48:05,950 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:05,950 `license = 'MIT'` 2023-05-15T10:48:05,950 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:05,950 consider this value unless `license` is listed as `dynamic`. 2023-05-15T10:48:05,951 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:05,951 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:05,951 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:05,951 follow strictly the standard. 2023-05-15T10:48:05,951 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-05-15T10:48:05,951 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:05,951 configuration. 2023-05-15T10:48:05,952 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:05,952 or your builds will no longer be supported. 2023-05-15T10:48:05,952 ******************************************************************************** 2023-05-15T10:48:05,952 !! 2023-05-15T10:48:05,952 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:05,952 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:05,953 !! 2023-05-15T10:48:05,953 ******************************************************************************** 2023-05-15T10:48:05,953 ########################################################################## 2023-05-15T10:48:05,953 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:05,953 ########################################################################## 2023-05-15T10:48:05,953 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:05,954 `authors = 'Shahaf Frank-Shapir'` 2023-05-15T10:48:05,954 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:05,954 consider this value unless `authors` is listed as `dynamic`. 2023-05-15T10:48:05,954 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:05,955 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:05,955 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:05,955 follow strictly the standard. 2023-05-15T10:48:05,955 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-05-15T10:48:05,955 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:05,955 configuration. 2023-05-15T10:48:05,956 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:05,956 or your builds will no longer be supported. 2023-05-15T10:48:05,956 ******************************************************************************** 2023-05-15T10:48:05,956 !! 2023-05-15T10:48:05,956 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:05,956 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:05,956 !! 2023-05-15T10:48:05,957 ******************************************************************************** 2023-05-15T10:48:05,957 ########################################################################## 2023-05-15T10:48:05,957 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:05,957 ########################################################################## 2023-05-15T10:48:05,957 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:05,958 `dependencies = ['dill', 'typeguard']` 2023-05-15T10:48:05,958 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:05,958 consider this value unless `dependencies` is listed as `dynamic`. 2023-05-15T10:48:05,958 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:05,958 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:05,959 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:05,959 follow strictly the standard. 2023-05-15T10:48:05,959 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-05-15T10:48:05,959 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:05,959 configuration. 2023-05-15T10:48:05,959 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:05,960 or your builds will no longer be supported. 2023-05-15T10:48:05,960 ******************************************************************************** 2023-05-15T10:48:05,960 !! 2023-05-15T10:48:05,960 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:05,960 /tmp/pip-build-env-hw5ju7pa/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-15T10:48:05,960 !! 2023-05-15T10:48:05,961 ******************************************************************************** 2023-05-15T10:48:05,961 ########################################################################## 2023-05-15T10:48:05,961 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:05,961 ########################################################################## 2023-05-15T10:48:05,961 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:05,961 `optional-dependencies = {'dev': ['pdoc3']}` 2023-05-15T10:48:05,962 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:05,962 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-05-15T10:48:05,962 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:05,962 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:05,962 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:05,962 follow strictly the standard. 2023-05-15T10:48:05,963 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-05-15T10:48:05,963 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:05,963 configuration. 2023-05-15T10:48:05,963 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:05,963 or your builds will no longer be supported. 2023-05-15T10:48:05,963 ******************************************************************************** 2023-05-15T10:48:05,964 !! 2023-05-15T10:48:05,964 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:06,274 running dist_info 2023-05-15T10:48:06,280 creating /tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info 2023-05-15T10:48:06,284 writing /tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/PKG-INFO 2023-05-15T10:48:06,287 writing dependency_links to /tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/dependency_links.txt 2023-05-15T10:48:06,290 writing requirements to /tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/requires.txt 2023-05-15T10:48:06,291 writing top-level names to /tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/top_level.txt 2023-05-15T10:48:06,292 writing manifest file '/tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:06,307 reading manifest file '/tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:06,310 reading manifest template 'MANIFEST.in' 2023-05-15T10:48:06,313 writing manifest file '/tmp/pip-modern-metadata-mrhtl_mo/pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:06,314 creating '/tmp/pip-modern-metadata-mrhtl_mo/pystatic_language-1.0.2.dist-info' 2023-05-15T10:48:06,448 Preparing metadata (pyproject.toml): finished with status 'done' 2023-05-15T10:48:06,456 Source in /tmp/pip-wheel-g9u4gpbv/pystatic-language_209493a212cb4d73b875ec89f8556d8e has version 1.0.2, which satisfies requirement pystatic-language==1.0.2 from https://files.pythonhosted.org/packages/02/58/2cd10f2d6867bb21c79346466084a761c808073281a8e78d7bdd9971d98e/pystatic-language-1.0.2.tar.gz 2023-05-15T10:48:06,457 Removed pystatic-language==1.0.2 from https://files.pythonhosted.org/packages/02/58/2cd10f2d6867bb21c79346466084a761c808073281a8e78d7bdd9971d98e/pystatic-language-1.0.2.tar.gz from build tracker '/tmp/pip-build-tracker-ph3y3ob_' 2023-05-15T10:48:06,462 Created temporary directory: /tmp/pip-unpack-kf7fvy11 2023-05-15T10:48:06,463 Building wheels for collected packages: pystatic-language 2023-05-15T10:48:06,468 Created temporary directory: /tmp/pip-wheel-gllvv_yk 2023-05-15T10:48:06,468 Destination directory: /tmp/pip-wheel-gllvv_yk 2023-05-15T10:48:06,471 Building wheel for pystatic-language (pyproject.toml): started 2023-05-15T10:48:06,472 Running command Building wheel for pystatic-language (pyproject.toml) 2023-05-15T10:48:06,948 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-05-15T10:48:06,949 warnings.warn(msg) 2023-05-15T10:48:06,994 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:06,994 !! 2023-05-15T10:48:06,994 ******************************************************************************** 2023-05-15T10:48:06,994 ########################################################################## 2023-05-15T10:48:06,994 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:06,995 ########################################################################## 2023-05-15T10:48:06,995 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:06,995 `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-15T10:48:06,996 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:06,996 consider this value unless `readme` is listed as `dynamic`. 2023-05-15T10:48:06,996 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:06,996 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:06,996 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:06,996 follow strictly the standard. 2023-05-15T10:48:06,997 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-05-15T10:48:06,997 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:06,997 configuration. 2023-05-15T10:48:06,997 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:06,997 or your builds will no longer be supported. 2023-05-15T10:48:06,997 ******************************************************************************** 2023-05-15T10:48:06,998 !! 2023-05-15T10:48:06,998 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:06,998 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:06,998 !! 2023-05-15T10:48:06,998 ******************************************************************************** 2023-05-15T10:48:06,998 ########################################################################## 2023-05-15T10:48:06,999 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:06,999 ########################################################################## 2023-05-15T10:48:06,999 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:06,999 `license = 'MIT'` 2023-05-15T10:48:06,999 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:07,000 consider this value unless `license` is listed as `dynamic`. 2023-05-15T10:48:07,000 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:07,000 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:07,000 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:07,000 follow strictly the standard. 2023-05-15T10:48:07,001 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-05-15T10:48:07,001 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:07,001 configuration. 2023-05-15T10:48:07,001 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:07,001 or your builds will no longer be supported. 2023-05-15T10:48:07,001 ******************************************************************************** 2023-05-15T10:48:07,002 !! 2023-05-15T10:48:07,002 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:07,002 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:07,002 !! 2023-05-15T10:48:07,002 ******************************************************************************** 2023-05-15T10:48:07,002 ########################################################################## 2023-05-15T10:48:07,002 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:07,003 ########################################################################## 2023-05-15T10:48:07,003 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:07,003 `authors = 'Shahaf Frank-Shapir'` 2023-05-15T10:48:07,003 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:07,003 consider this value unless `authors` is listed as `dynamic`. 2023-05-15T10:48:07,004 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:07,004 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:07,004 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:07,004 follow strictly the standard. 2023-05-15T10:48:07,004 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-05-15T10:48:07,005 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:07,005 configuration. 2023-05-15T10:48:07,005 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:07,005 or your builds will no longer be supported. 2023-05-15T10:48:07,005 ******************************************************************************** 2023-05-15T10:48:07,006 !! 2023-05-15T10:48:07,006 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:07,006 /tmp/pip-build-env-hw5ju7pa/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:62: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-05-15T10:48:07,006 !! 2023-05-15T10:48:07,006 ******************************************************************************** 2023-05-15T10:48:07,006 ########################################################################## 2023-05-15T10:48:07,006 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:07,007 ########################################################################## 2023-05-15T10:48:07,007 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:07,007 `dependencies = ['dill', 'typeguard']` 2023-05-15T10:48:07,007 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:07,007 consider this value unless `dependencies` is listed as `dynamic`. 2023-05-15T10:48:07,008 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:07,008 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:07,008 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:07,008 follow strictly the standard. 2023-05-15T10:48:07,008 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-05-15T10:48:07,008 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:07,009 configuration. 2023-05-15T10:48:07,009 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:07,009 or your builds will no longer be supported. 2023-05-15T10:48:07,009 ******************************************************************************** 2023-05-15T10:48:07,009 !! 2023-05-15T10:48:07,009 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:07,010 /tmp/pip-build-env-hw5ju7pa/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-15T10:48:07,010 !! 2023-05-15T10:48:07,010 ******************************************************************************** 2023-05-15T10:48:07,010 ########################################################################## 2023-05-15T10:48:07,010 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-05-15T10:48:07,010 ########################################################################## 2023-05-15T10:48:07,011 The following seems to be defined outside of `pyproject.toml`: 2023-05-15T10:48:07,011 `optional-dependencies = {'dev': ['pdoc3']}` 2023-05-15T10:48:07,011 According to the spec (see the link below), however, setuptools CANNOT 2023-05-15T10:48:07,011 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-05-15T10:48:07,011 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-05-15T10:48:07,012 For the time being, `setuptools` will still consider the given value (as a 2023-05-15T10:48:07,012 **transitional** measure), but please note that future releases of setuptools will 2023-05-15T10:48:07,012 follow strictly the standard. 2023-05-15T10:48:07,012 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-05-15T10:48:07,012 remove the `[project]` table from your file and rely entirely on other means of 2023-05-15T10:48:07,012 configuration. 2023-05-15T10:48:07,013 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-05-15T10:48:07,013 or your builds will no longer be supported. 2023-05-15T10:48:07,013 ******************************************************************************** 2023-05-15T10:48:07,013 !! 2023-05-15T10:48:07,013 _handle_missing_dynamic(dist, project_table) 2023-05-15T10:48:07,295 running bdist_wheel 2023-05-15T10:48:07,310 running build 2023-05-15T10:48:07,310 running build_py 2023-05-15T10:48:07,316 creating build 2023-05-15T10:48:07,317 creating build/lib 2023-05-15T10:48:07,318 creating build/lib/pystatic 2023-05-15T10:48:07,319 copying pystatic/clean.py -> build/lib/pystatic 2023-05-15T10:48:07,321 copying pystatic/types.py -> build/lib/pystatic 2023-05-15T10:48:07,324 copying pystatic/document.py -> build/lib/pystatic 2023-05-15T10:48:07,326 copying pystatic/private.py -> build/lib/pystatic 2023-05-15T10:48:07,329 copying pystatic/base.py -> build/lib/pystatic 2023-05-15T10:48:07,331 copying pystatic/casting.py -> build/lib/pystatic 2023-05-15T10:48:07,334 copying pystatic/overload.py -> build/lib/pystatic 2023-05-15T10:48:07,336 running egg_info 2023-05-15T10:48:07,344 writing pystatic_language.egg-info/PKG-INFO 2023-05-15T10:48:07,347 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-05-15T10:48:07,348 writing requirements to pystatic_language.egg-info/requires.txt 2023-05-15T10:48:07,349 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-05-15T10:48:07,357 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:07,359 reading manifest template 'MANIFEST.in' 2023-05-15T10:48:07,363 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-05-15T10:48:07,373 installing to build/bdist.linux-aarch64/wheel 2023-05-15T10:48:07,373 running install 2023-05-15T10:48:07,399 running install_lib 2023-05-15T10:48:07,404 creating build/bdist.linux-aarch64 2023-05-15T10:48:07,404 creating build/bdist.linux-aarch64/wheel 2023-05-15T10:48:07,407 creating build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,408 copying build/lib/pystatic/clean.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,410 copying build/lib/pystatic/types.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,413 copying build/lib/pystatic/document.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,415 copying build/lib/pystatic/private.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,417 copying build/lib/pystatic/base.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,420 copying build/lib/pystatic/casting.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,422 copying build/lib/pystatic/overload.py -> build/bdist.linux-aarch64/wheel/pystatic 2023-05-15T10:48:07,425 running install_egg_info 2023-05-15T10:48:07,429 Copying pystatic_language.egg-info to build/bdist.linux-aarch64/wheel/pystatic_language-1.0.2-py3.9.egg-info 2023-05-15T10:48:07,442 running install_scripts 2023-05-15T10:48:07,458 creating build/bdist.linux-aarch64/wheel/pystatic_language-1.0.2.dist-info/WHEEL 2023-05-15T10:48:07,461 creating '/tmp/pip-wheel-gllvv_yk/.tmp-4pxilisp/pystatic_language-1.0.2-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it 2023-05-15T10:48:07,464 adding 'pystatic/base.py' 2023-05-15T10:48:07,466 adding 'pystatic/casting.py' 2023-05-15T10:48:07,468 adding 'pystatic/clean.py' 2023-05-15T10:48:07,469 adding 'pystatic/document.py' 2023-05-15T10:48:07,471 adding 'pystatic/overload.py' 2023-05-15T10:48:07,473 adding 'pystatic/private.py' 2023-05-15T10:48:07,475 adding 'pystatic/types.py' 2023-05-15T10:48:07,477 adding 'pystatic_language-1.0.2.dist-info/METADATA' 2023-05-15T10:48:07,479 adding 'pystatic_language-1.0.2.dist-info/WHEEL' 2023-05-15T10:48:07,480 adding 'pystatic_language-1.0.2.dist-info/top_level.txt' 2023-05-15T10:48:07,480 adding 'pystatic_language-1.0.2.dist-info/RECORD' 2023-05-15T10:48:07,482 removing build/bdist.linux-aarch64/wheel 2023-05-15T10:48:07,589 Building wheel for pystatic-language (pyproject.toml): finished with status 'done' 2023-05-15T10:48:07,595 Created wheel for pystatic-language: filename=pystatic_language-1.0.2-py3-none-any.whl size=13053 sha256=cb53d6d5008dcd460cf0f624b27403b6ded6c4c9b062cd25eb3fd6846ae7068a 2023-05-15T10:48:07,596 Stored in directory: /tmp/pip-ephem-wheel-cache-xdiqo5pm/wheels/97/40/31/a8a8aca3615915459d6a0fc9616fcadaa88eeb0841deea810d 2023-05-15T10:48:07,609 Successfully built pystatic-language 2023-05-15T10:48:07,613 Removed build tracker: '/tmp/pip-build-tracker-ph3y3ob_'