2023-04-15T12:48:29,755 Created temporary directory: /tmp/pip-ephem-wheel-cache-1qun5t1s 2023-04-15T12:48:29,758 Created temporary directory: /tmp/pip-build-tracker-l_b2l9m0 2023-04-15T12:48:29,759 Initialized build tracking at /tmp/pip-build-tracker-l_b2l9m0 2023-04-15T12:48:29,759 Created build tracker: /tmp/pip-build-tracker-l_b2l9m0 2023-04-15T12:48:29,759 Entered build tracker: /tmp/pip-build-tracker-l_b2l9m0 2023-04-15T12:48:29,759 Created temporary directory: /tmp/pip-wheel-f31twvsc 2023-04-15T12:48:29,764 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-04-15T12:48:29,767 Created temporary directory: /tmp/pip-ephem-wheel-cache-n22gwzaw 2023-04-15T12:48:29,795 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-04-15T12:48:29,799 2 location(s) to search for versions of pystatic-language: 2023-04-15T12:48:29,799 * https://pypi.org/simple/pystatic-language/ 2023-04-15T12:48:29,799 * https://www.piwheels.org/simple/pystatic-language/ 2023-04-15T12:48:29,799 Fetching project page and analyzing links: https://pypi.org/simple/pystatic-language/ 2023-04-15T12:48:29,800 Getting page https://pypi.org/simple/pystatic-language/ 2023-04-15T12:48:29,801 Found index url https://pypi.org/simple 2023-04-15T12:48:29,858 Fetched page https://pypi.org/simple/pystatic-language/ as application/vnd.pypi.simple.v1+json 2023-04-15T12:48:29,860 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-04-15T12:48:29,860 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-04-15T12:48:29,861 Fetching project page and analyzing links: https://www.piwheels.org/simple/pystatic-language/ 2023-04-15T12:48:29,861 Getting page https://www.piwheels.org/simple/pystatic-language/ 2023-04-15T12:48:29,863 Found index url https://www.piwheels.org/simple 2023-04-15T12:48:30,043 Fetched page https://www.piwheels.org/simple/pystatic-language/ as text/html 2023-04-15T12:48:30,045 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-04-15T12:48:30,045 Skipping link: not a file: https://www.piwheels.org/simple/pystatic-language/ 2023-04-15T12:48:30,045 Skipping link: not a file: https://pypi.org/simple/pystatic-language/ 2023-04-15T12:48:30,063 Given no hashes to check 1 links for project 'pystatic-language': discarding no candidates 2023-04-15T12:48:30,080 Collecting pystatic-language==1.0.1 2023-04-15T12:48:30,082 Created temporary directory: /tmp/pip-unpack-0apg7vi7 2023-04-15T12:48:30,139 Downloading pystatic-language-1.0.1.tar.gz (16 kB) 2023-04-15T12:48:30,197 Added pystatic-language==1.0.1 from https://files.pythonhosted.org/packages/07/ba/34a74415d16aeac9beff6bd540924f9cfe58625cf07c40a2b4f09b64bac6/pystatic-language-1.0.1.tar.gz to build tracker '/tmp/pip-build-tracker-l_b2l9m0' 2023-04-15T12:48:30,200 Created temporary directory: /tmp/pip-build-env-lefamx4x 2023-04-15T12:48:30,211 Installing build dependencies: started 2023-04-15T12:48:30,212 Running command pip subprocess to install build dependencies 2023-04-15T12:48:31,458 Using pip 23.0.1 from /home/piwheels/.local/lib/python3.9/site-packages/pip (python 3.9) 2023-04-15T12:48:32,091 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-04-15T12:48:32,117 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-04-15T12:48:33,777 Collecting setuptools 2023-04-15T12:48:33,890 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.6.1-py3-none-any.whl (1.1 MB) 2023-04-15T12:48:36,231 Installing collected packages: setuptools 2023-04-15T12:48:38,471 Successfully installed setuptools-67.6.1 2023-04-15T12:48:38,963 Installing build dependencies: finished with status 'done' 2023-04-15T12:48:38,969 Getting requirements to build wheel: started 2023-04-15T12:48:38,970 Running command Getting requirements to build wheel 2023-04-15T12:48:39,492 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-04-15T12:48:39,493 warnings.warn(msg) 2023-04-15T12:48:39,538 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:39,539 !! 2023-04-15T12:48:39,539 ########################################################################## 2023-04-15T12:48:39,539 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:39,539 ########################################################################## 2023-04-15T12:48:39,540 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:39,540 `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-04-15T12:48:39,540 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:39,541 consider this value unless 'readme' is listed as `dynamic`. 2023-04-15T12:48:39,541 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:39,541 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:39,541 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:39,541 follow strictly the standard. 2023-04-15T12:48:39,541 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-04-15T12:48:39,542 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:39,542 configuration. 2023-04-15T12:48:39,542 !! 2023-04-15T12:48:39,542 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:39,542 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:39,543 !! 2023-04-15T12:48:39,543 ########################################################################## 2023-04-15T12:48:39,543 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:39,543 ########################################################################## 2023-04-15T12:48:39,543 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:39,544 `license = 'MIT'` 2023-04-15T12:48:39,544 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:39,544 consider this value unless 'license' is listed as `dynamic`. 2023-04-15T12:48:39,544 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:39,544 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:39,545 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:39,545 follow strictly the standard. 2023-04-15T12:48:39,545 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-04-15T12:48:39,545 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:39,545 configuration. 2023-04-15T12:48:39,546 !! 2023-04-15T12:48:39,546 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:39,546 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'authors' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:39,546 !! 2023-04-15T12:48:39,547 ########################################################################## 2023-04-15T12:48:39,547 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:39,547 ########################################################################## 2023-04-15T12:48:39,547 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:39,547 `authors = 'Shahaf Frank-Shapir'` 2023-04-15T12:48:39,547 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:39,548 consider this value unless 'authors' is listed as `dynamic`. 2023-04-15T12:48:39,548 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:39,548 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:39,548 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:39,548 follow strictly the standard. 2023-04-15T12:48:39,549 To prevent this warning, you can list 'authors' under `dynamic` or alternatively 2023-04-15T12:48:39,549 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:39,549 configuration. 2023-04-15T12:48:39,549 !! 2023-04-15T12:48:39,550 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:39,550 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:39,550 !! 2023-04-15T12:48:39,550 ########################################################################## 2023-04-15T12:48:39,550 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:39,551 ########################################################################## 2023-04-15T12:48:39,551 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:39,551 `dependencies = ['dill', 'typeguard']` 2023-04-15T12:48:39,551 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:39,551 consider this value unless 'dependencies' is listed as `dynamic`. 2023-04-15T12:48:39,552 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:39,552 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:39,552 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:39,552 follow strictly the standard. 2023-04-15T12:48:39,552 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-04-15T12:48:39,552 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:39,553 configuration. 2023-04-15T12:48:39,553 !! 2023-04-15T12:48:39,553 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:39,553 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'optional-dependencies' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:39,553 !! 2023-04-15T12:48:39,554 ########################################################################## 2023-04-15T12:48:39,554 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:39,554 ########################################################################## 2023-04-15T12:48:39,554 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:39,555 `optional-dependencies = {'dev': ['pdoc3']}` 2023-04-15T12:48:39,555 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:39,555 consider this value unless 'optional-dependencies' is listed as `dynamic`. 2023-04-15T12:48:39,555 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:39,555 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:39,555 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:39,556 follow strictly the standard. 2023-04-15T12:48:39,556 To prevent this warning, you can list 'optional-dependencies' under `dynamic` or alternatively 2023-04-15T12:48:39,556 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:39,556 configuration. 2023-04-15T12:48:39,557 !! 2023-04-15T12:48:39,557 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:39,805 running egg_info 2023-04-15T12:48:39,809 writing pystatic_language.egg-info/PKG-INFO 2023-04-15T12:48:39,812 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-04-15T12:48:39,815 writing requirements to pystatic_language.egg-info/requires.txt 2023-04-15T12:48:39,816 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-04-15T12:48:39,833 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:39,836 reading manifest template 'MANIFEST.in' 2023-04-15T12:48:39,839 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:39,934 Getting requirements to build wheel: finished with status 'done' 2023-04-15T12:48:39,946 Installing backend dependencies: started 2023-04-15T12:48:39,947 Running command pip subprocess to install backend dependencies 2023-04-15T12:48:41,200 Using pip 23.0.1 from /home/piwheels/.local/lib/python3.9/site-packages/pip (python 3.9) 2023-04-15T12:48:41,827 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-04-15T12:48:41,854 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-04-15T12:48:42,306 Collecting wheel 2023-04-15T12:48:42,326 Using cached https://www.piwheels.org/simple/wheel/wheel-0.40.0-py3-none-any.whl (64 kB) 2023-04-15T12:48:44,363 Installing collected packages: wheel 2023-04-15T12:48:44,621 Creating /tmp/pip-build-env-lefamx4x/normal/bin 2023-04-15T12:48:44,623 changing mode of /tmp/pip-build-env-lefamx4x/normal/bin/wheel to 755 2023-04-15T12:48:44,638 Successfully installed wheel-0.40.0 2023-04-15T12:48:45,084 Installing backend dependencies: finished with status 'done' 2023-04-15T12:48:45,086 Created temporary directory: /tmp/pip-modern-metadata-m_mj8ph2 2023-04-15T12:48:45,090 Preparing metadata (pyproject.toml): started 2023-04-15T12:48:45,090 Running command Preparing metadata (pyproject.toml) 2023-04-15T12:48:45,601 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-04-15T12:48:45,602 warnings.warn(msg) 2023-04-15T12:48:45,649 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:45,649 !! 2023-04-15T12:48:45,650 ########################################################################## 2023-04-15T12:48:45,650 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:45,650 ########################################################################## 2023-04-15T12:48:45,650 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:45,650 `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-04-15T12:48:45,651 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:45,651 consider this value unless 'readme' is listed as `dynamic`. 2023-04-15T12:48:45,651 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:45,651 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:45,652 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:45,652 follow strictly the standard. 2023-04-15T12:48:45,652 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-04-15T12:48:45,652 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:45,652 configuration. 2023-04-15T12:48:45,653 !! 2023-04-15T12:48:45,653 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:45,653 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:45,653 !! 2023-04-15T12:48:45,653 ########################################################################## 2023-04-15T12:48:45,654 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:45,654 ########################################################################## 2023-04-15T12:48:45,654 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:45,654 `license = 'MIT'` 2023-04-15T12:48:45,654 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:45,655 consider this value unless 'license' is listed as `dynamic`. 2023-04-15T12:48:45,655 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:45,655 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:45,655 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:45,655 follow strictly the standard. 2023-04-15T12:48:45,656 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-04-15T12:48:45,656 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:45,656 configuration. 2023-04-15T12:48:45,656 !! 2023-04-15T12:48:45,656 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:45,657 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'authors' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:45,657 !! 2023-04-15T12:48:45,657 ########################################################################## 2023-04-15T12:48:45,657 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:45,657 ########################################################################## 2023-04-15T12:48:45,657 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:45,658 `authors = 'Shahaf Frank-Shapir'` 2023-04-15T12:48:45,658 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:45,658 consider this value unless 'authors' is listed as `dynamic`. 2023-04-15T12:48:45,658 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:45,659 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:45,659 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:45,659 follow strictly the standard. 2023-04-15T12:48:45,659 To prevent this warning, you can list 'authors' under `dynamic` or alternatively 2023-04-15T12:48:45,659 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:45,660 configuration. 2023-04-15T12:48:45,660 !! 2023-04-15T12:48:45,660 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:45,660 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:45,660 !! 2023-04-15T12:48:45,661 ########################################################################## 2023-04-15T12:48:45,661 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:45,661 ########################################################################## 2023-04-15T12:48:45,661 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:45,662 `dependencies = ['dill', 'typeguard']` 2023-04-15T12:48:45,662 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:45,662 consider this value unless 'dependencies' is listed as `dynamic`. 2023-04-15T12:48:45,662 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:45,662 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:45,662 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:45,663 follow strictly the standard. 2023-04-15T12:48:45,663 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-04-15T12:48:45,663 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:45,663 configuration. 2023-04-15T12:48:45,663 !! 2023-04-15T12:48:45,664 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:45,664 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'optional-dependencies' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:45,664 !! 2023-04-15T12:48:45,664 ########################################################################## 2023-04-15T12:48:45,664 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:45,665 ########################################################################## 2023-04-15T12:48:45,665 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:45,665 `optional-dependencies = {'dev': ['pdoc3']}` 2023-04-15T12:48:45,665 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:45,665 consider this value unless 'optional-dependencies' is listed as `dynamic`. 2023-04-15T12:48:45,666 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:45,666 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:45,666 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:45,666 follow strictly the standard. 2023-04-15T12:48:45,666 To prevent this warning, you can list 'optional-dependencies' under `dynamic` or alternatively 2023-04-15T12:48:45,667 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:45,667 configuration. 2023-04-15T12:48:45,667 !! 2023-04-15T12:48:45,667 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:45,976 running dist_info 2023-04-15T12:48:45,982 creating /tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info 2023-04-15T12:48:45,986 writing /tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/PKG-INFO 2023-04-15T12:48:45,989 writing dependency_links to /tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/dependency_links.txt 2023-04-15T12:48:45,992 writing requirements to /tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/requires.txt 2023-04-15T12:48:45,993 writing top-level names to /tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/top_level.txt 2023-04-15T12:48:45,995 writing manifest file '/tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:46,010 reading manifest file '/tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:46,012 reading manifest template 'MANIFEST.in' 2023-04-15T12:48:46,016 writing manifest file '/tmp/pip-modern-metadata-m_mj8ph2/pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:46,017 creating '/tmp/pip-modern-metadata-m_mj8ph2/pystatic_language-1.0.1.dist-info' 2023-04-15T12:48:46,152 Preparing metadata (pyproject.toml): finished with status 'done' 2023-04-15T12:48:46,160 Source in /tmp/pip-wheel-f31twvsc/pystatic-language_8cafabde7fe849daa3950b972b99129a has version 1.0.1, which satisfies requirement pystatic-language==1.0.1 from https://files.pythonhosted.org/packages/07/ba/34a74415d16aeac9beff6bd540924f9cfe58625cf07c40a2b4f09b64bac6/pystatic-language-1.0.1.tar.gz 2023-04-15T12:48:46,161 Removed pystatic-language==1.0.1 from https://files.pythonhosted.org/packages/07/ba/34a74415d16aeac9beff6bd540924f9cfe58625cf07c40a2b4f09b64bac6/pystatic-language-1.0.1.tar.gz from build tracker '/tmp/pip-build-tracker-l_b2l9m0' 2023-04-15T12:48:46,166 Created temporary directory: /tmp/pip-unpack-bgznzzoj 2023-04-15T12:48:46,166 Building wheels for collected packages: pystatic-language 2023-04-15T12:48:46,171 Created temporary directory: /tmp/pip-wheel-jaxvl28z 2023-04-15T12:48:46,171 Destination directory: /tmp/pip-wheel-jaxvl28z 2023-04-15T12:48:46,177 Building wheel for pystatic-language (pyproject.toml): started 2023-04-15T12:48:46,178 Running command Building wheel for pystatic-language (pyproject.toml) 2023-04-15T12:48:46,655 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-04-15T12:48:46,656 warnings.warn(msg) 2023-04-15T12:48:46,699 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:46,700 !! 2023-04-15T12:48:46,700 ########################################################################## 2023-04-15T12:48:46,700 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:46,700 ########################################################################## 2023-04-15T12:48:46,701 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:46,701 `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-04-15T12:48:46,701 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:46,702 consider this value unless 'readme' is listed as `dynamic`. 2023-04-15T12:48:46,702 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:46,702 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:46,702 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:46,702 follow strictly the standard. 2023-04-15T12:48:46,702 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-04-15T12:48:46,703 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:46,703 configuration. 2023-04-15T12:48:46,703 !! 2023-04-15T12:48:46,703 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:46,703 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:46,704 !! 2023-04-15T12:48:46,704 ########################################################################## 2023-04-15T12:48:46,704 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:46,704 ########################################################################## 2023-04-15T12:48:46,705 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:46,705 `license = 'MIT'` 2023-04-15T12:48:46,705 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:46,705 consider this value unless 'license' is listed as `dynamic`. 2023-04-15T12:48:46,705 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:46,706 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:46,706 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:46,706 follow strictly the standard. 2023-04-15T12:48:46,706 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-04-15T12:48:46,706 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:46,706 configuration. 2023-04-15T12:48:46,707 !! 2023-04-15T12:48:46,707 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:46,707 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'authors' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:46,707 !! 2023-04-15T12:48:46,708 ########################################################################## 2023-04-15T12:48:46,708 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:46,708 ########################################################################## 2023-04-15T12:48:46,708 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:46,709 `authors = 'Shahaf Frank-Shapir'` 2023-04-15T12:48:46,709 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:46,709 consider this value unless 'authors' is listed as `dynamic`. 2023-04-15T12:48:46,709 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:46,709 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:46,710 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:46,710 follow strictly the standard. 2023-04-15T12:48:46,710 To prevent this warning, you can list 'authors' under `dynamic` or alternatively 2023-04-15T12:48:46,710 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:46,710 configuration. 2023-04-15T12:48:46,711 !! 2023-04-15T12:48:46,711 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:46,711 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:46,711 !! 2023-04-15T12:48:46,711 ########################################################################## 2023-04-15T12:48:46,712 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:46,712 ########################################################################## 2023-04-15T12:48:46,712 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:46,712 `dependencies = ['dill', 'typeguard']` 2023-04-15T12:48:46,712 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:46,713 consider this value unless 'dependencies' is listed as `dynamic`. 2023-04-15T12:48:46,713 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:46,713 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:46,713 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:46,713 follow strictly the standard. 2023-04-15T12:48:46,714 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-04-15T12:48:46,714 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:46,714 configuration. 2023-04-15T12:48:46,714 !! 2023-04-15T12:48:46,714 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:46,714 /tmp/pip-build-env-lefamx4x/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'optional-dependencies' defined outside of `pyproject.toml` would be ignored. 2023-04-15T12:48:46,715 !! 2023-04-15T12:48:46,715 ########################################################################## 2023-04-15T12:48:46,715 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-04-15T12:48:46,715 ########################################################################## 2023-04-15T12:48:46,715 The following seems to be defined outside of `pyproject.toml`: 2023-04-15T12:48:46,716 `optional-dependencies = {'dev': ['pdoc3']}` 2023-04-15T12:48:46,716 According to the spec (see the link below), however, setuptools CANNOT 2023-04-15T12:48:46,716 consider this value unless 'optional-dependencies' is listed as `dynamic`. 2023-04-15T12:48:46,716 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-04-15T12:48:46,717 For the time being, `setuptools` will still consider the given value (as a 2023-04-15T12:48:46,717 **transitional** measure), but please note that future releases of setuptools will 2023-04-15T12:48:46,717 follow strictly the standard. 2023-04-15T12:48:46,717 To prevent this warning, you can list 'optional-dependencies' under `dynamic` or alternatively 2023-04-15T12:48:46,717 remove the `[project]` table from your file and rely entirely on other means of 2023-04-15T12:48:46,717 configuration. 2023-04-15T12:48:46,718 !! 2023-04-15T12:48:46,718 warnings.warn(msg, _WouldIgnoreField) 2023-04-15T12:48:46,991 running bdist_wheel 2023-04-15T12:48:47,005 running build 2023-04-15T12:48:47,006 running build_py 2023-04-15T12:48:47,011 creating build 2023-04-15T12:48:47,011 creating build/lib 2023-04-15T12:48:47,012 creating build/lib/pystatic 2023-04-15T12:48:47,013 copying pystatic/base.py -> build/lib/pystatic 2023-04-15T12:48:47,016 copying pystatic/casting.py -> build/lib/pystatic 2023-04-15T12:48:47,018 copying pystatic/private.py -> build/lib/pystatic 2023-04-15T12:48:47,021 copying pystatic/document.py -> build/lib/pystatic 2023-04-15T12:48:47,023 copying pystatic/clean.py -> build/lib/pystatic 2023-04-15T12:48:47,025 copying pystatic/types.py -> build/lib/pystatic 2023-04-15T12:48:47,027 copying pystatic/overload.py -> build/lib/pystatic 2023-04-15T12:48:47,029 running egg_info 2023-04-15T12:48:47,037 writing pystatic_language.egg-info/PKG-INFO 2023-04-15T12:48:47,039 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-04-15T12:48:47,041 writing requirements to pystatic_language.egg-info/requires.txt 2023-04-15T12:48:47,042 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-04-15T12:48:47,050 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:47,052 reading manifest template 'MANIFEST.in' 2023-04-15T12:48:47,055 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-04-15T12:48:47,065 installing to build/bdist.linux-armv7l/wheel 2023-04-15T12:48:47,065 running install 2023-04-15T12:48:47,090 running install_lib 2023-04-15T12:48:47,095 creating build/bdist.linux-armv7l 2023-04-15T12:48:47,095 creating build/bdist.linux-armv7l/wheel 2023-04-15T12:48:47,097 creating build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,098 copying build/lib/pystatic/base.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,100 copying build/lib/pystatic/casting.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,103 copying build/lib/pystatic/private.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,105 copying build/lib/pystatic/document.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,107 copying build/lib/pystatic/clean.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,109 copying build/lib/pystatic/types.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,111 copying build/lib/pystatic/overload.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-04-15T12:48:47,113 running install_egg_info 2023-04-15T12:48:47,117 Copying pystatic_language.egg-info to build/bdist.linux-armv7l/wheel/pystatic_language-1.0.1-py3.9.egg-info 2023-04-15T12:48:47,128 running install_scripts 2023-04-15T12:48:47,143 creating build/bdist.linux-armv7l/wheel/pystatic_language-1.0.1.dist-info/WHEEL 2023-04-15T12:48:47,145 creating '/tmp/pip-wheel-jaxvl28z/.tmp-1g6xkzwk/pystatic_language-1.0.1-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-04-15T12:48:47,148 adding 'pystatic/base.py' 2023-04-15T12:48:47,150 adding 'pystatic/casting.py' 2023-04-15T12:48:47,152 adding 'pystatic/clean.py' 2023-04-15T12:48:47,153 adding 'pystatic/document.py' 2023-04-15T12:48:47,154 adding 'pystatic/overload.py' 2023-04-15T12:48:47,156 adding 'pystatic/private.py' 2023-04-15T12:48:47,158 adding 'pystatic/types.py' 2023-04-15T12:48:47,161 adding 'pystatic_language-1.0.1.dist-info/METADATA' 2023-04-15T12:48:47,162 adding 'pystatic_language-1.0.1.dist-info/WHEEL' 2023-04-15T12:48:47,163 adding 'pystatic_language-1.0.1.dist-info/top_level.txt' 2023-04-15T12:48:47,164 adding 'pystatic_language-1.0.1.dist-info/RECORD' 2023-04-15T12:48:47,165 removing build/bdist.linux-armv7l/wheel 2023-04-15T12:48:47,272 Building wheel for pystatic-language (pyproject.toml): finished with status 'done' 2023-04-15T12:48:47,279 Created wheel for pystatic-language: filename=pystatic_language-1.0.1-py3-none-any.whl size=12717 sha256=92115f7627c5a9879a5d88a6a393b2cb67a71e3b6622edb7e0ced00d073a421c 2023-04-15T12:48:47,280 Stored in directory: /tmp/pip-ephem-wheel-cache-n22gwzaw/wheels/84/62/66/1aca19673527ab63b3481ec08455b944a5675bc52a2f18946d 2023-04-15T12:48:47,292 Successfully built pystatic-language 2023-04-15T12:48:47,296 Removed build tracker: '/tmp/pip-build-tracker-l_b2l9m0'