2023-03-28T10:43:02,368 Created temporary directory: /tmp/pip-ephem-wheel-cache-kkcx2ieg 2023-03-28T10:43:02,371 Created temporary directory: /tmp/pip-build-tracker-8ecx2fo8 2023-03-28T10:43:02,372 Initialized build tracking at /tmp/pip-build-tracker-8ecx2fo8 2023-03-28T10:43:02,372 Created build tracker: /tmp/pip-build-tracker-8ecx2fo8 2023-03-28T10:43:02,372 Entered build tracker: /tmp/pip-build-tracker-8ecx2fo8 2023-03-28T10:43:02,373 Created temporary directory: /tmp/pip-wheel-e1qi6_0x 2023-03-28T10:43:02,379 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-03-28T10:43:02,383 Created temporary directory: /tmp/pip-ephem-wheel-cache-5msu521l 2023-03-28T10:43:02,414 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-28T10:43:02,419 2 location(s) to search for versions of pystatic-language: 2023-03-28T10:43:02,419 * https://pypi.org/simple/pystatic-language/ 2023-03-28T10:43:02,419 * https://www.piwheels.org/simple/pystatic-language/ 2023-03-28T10:43:02,419 Fetching project page and analyzing links: https://pypi.org/simple/pystatic-language/ 2023-03-28T10:43:02,420 Getting page https://pypi.org/simple/pystatic-language/ 2023-03-28T10:43:02,422 Found index url https://pypi.org/simple 2023-03-28T10:43:02,489 Fetched page https://pypi.org/simple/pystatic-language/ as application/vnd.pypi.simple.v1+json 2023-03-28T10:43:02,490 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-03-28T10:43:02,490 Fetching project page and analyzing links: https://www.piwheels.org/simple/pystatic-language/ 2023-03-28T10:43:02,491 Getting page https://www.piwheels.org/simple/pystatic-language/ 2023-03-28T10:43:02,492 Found index url https://www.piwheels.org/simple 2023-03-28T10:43:02,658 Fetched page https://www.piwheels.org/simple/pystatic-language/ as text/html 2023-03-28T10:43:02,659 Skipping link: not a file: https://www.piwheels.org/simple/pystatic-language/ 2023-03-28T10:43:02,659 Skipping link: not a file: https://pypi.org/simple/pystatic-language/ 2023-03-28T10:43:02,684 Given no hashes to check 1 links for project 'pystatic-language': discarding no candidates 2023-03-28T10:43:02,711 Collecting pystatic-language==1.0.0 2023-03-28T10:43:02,718 Created temporary directory: /tmp/pip-unpack-5yawgfb2 2023-03-28T10:43:02,770 Downloading pystatic-language-1.0.0.tar.gz (16 kB) 2023-03-28T10:43:02,856 Added pystatic-language==1.0.0 from https://files.pythonhosted.org/packages/cc/a5/e4354678339913084bdafe1e4e208b67f4207abdf72cf6efafaeb1e55b4f/pystatic-language-1.0.0.tar.gz to build tracker '/tmp/pip-build-tracker-8ecx2fo8' 2023-03-28T10:43:02,860 Created temporary directory: /tmp/pip-build-env-fvqq063w 2023-03-28T10:43:02,873 Installing build dependencies: started 2023-03-28T10:43:02,875 Running command pip subprocess to install build dependencies 2023-03-28T10:43:04,572 Using pip 23.0.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9) 2023-03-28T10:43:05,439 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-03-28T10:43:05,479 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-28T10:43:07,654 Collecting setuptools 2023-03-28T10:43:07,780 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.6.0-py3-none-any.whl (1.1 MB) 2023-03-28T10:43:10,992 Installing collected packages: setuptools 2023-03-28T10:43:14,036 Successfully installed setuptools-67.6.0 2023-03-28T10:43:14,688 Installing build dependencies: finished with status 'done' 2023-03-28T10:43:14,695 Getting requirements to build wheel: started 2023-03-28T10:43:14,696 Running command Getting requirements to build wheel 2023-03-28T10:43:15,400 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-03-28T10:43:15,401 warnings.warn(msg) 2023-03-28T10:43:15,464 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:15,464 !! 2023-03-28T10:43:15,465 ########################################################################## 2023-03-28T10:43:15,465 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:15,465 ########################################################################## 2023-03-28T10:43:15,465 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:15,466 `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-03-28T10:43:15,466 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:15,467 consider this value unless 'readme' is listed as `dynamic`. 2023-03-28T10:43:15,467 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:15,468 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:15,468 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:15,468 follow strictly the standard. 2023-03-28T10:43:15,469 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-28T10:43:15,470 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:15,470 configuration. 2023-03-28T10:43:15,472 !! 2023-03-28T10:43:15,472 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:15,472 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:15,473 !! 2023-03-28T10:43:15,474 ########################################################################## 2023-03-28T10:43:15,475 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:15,475 ########################################################################## 2023-03-28T10:43:15,476 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:15,476 `license = 'MIT'` 2023-03-28T10:43:15,477 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:15,478 consider this value unless 'license' is listed as `dynamic`. 2023-03-28T10:43:15,478 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:15,479 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:15,479 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:15,480 follow strictly the standard. 2023-03-28T10:43:15,481 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-28T10:43:15,481 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:15,482 configuration. 2023-03-28T10:43:15,483 !! 2023-03-28T10:43:15,483 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:15,484 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'authors' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:15,484 !! 2023-03-28T10:43:15,485 ########################################################################## 2023-03-28T10:43:15,486 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:15,486 ########################################################################## 2023-03-28T10:43:15,487 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:15,488 `authors = 'Shahaf Frank-Shapir'` 2023-03-28T10:43:15,488 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:15,489 consider this value unless 'authors' is listed as `dynamic`. 2023-03-28T10:43:15,489 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:15,490 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:15,490 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:15,490 follow strictly the standard. 2023-03-28T10:43:15,491 To prevent this warning, you can list 'authors' under `dynamic` or alternatively 2023-03-28T10:43:15,492 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:15,492 configuration. 2023-03-28T10:43:15,493 !! 2023-03-28T10:43:15,494 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:15,494 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:15,494 !! 2023-03-28T10:43:15,495 ########################################################################## 2023-03-28T10:43:15,496 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:15,496 ########################################################################## 2023-03-28T10:43:15,497 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:15,497 `dependencies = ['dill', 'typeguard']` 2023-03-28T10:43:15,498 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:15,498 consider this value unless 'dependencies' is listed as `dynamic`. 2023-03-28T10:43:15,499 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:15,500 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:15,500 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:15,500 follow strictly the standard. 2023-03-28T10:43:15,501 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-03-28T10:43:15,502 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:15,502 configuration. 2023-03-28T10:43:15,503 !! 2023-03-28T10:43:15,504 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:15,504 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'optional-dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:15,505 !! 2023-03-28T10:43:15,506 ########################################################################## 2023-03-28T10:43:15,506 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:15,506 ########################################################################## 2023-03-28T10:43:15,507 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:15,507 `optional-dependencies = {'dev': ['pdoc3']}` 2023-03-28T10:43:15,508 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:15,508 consider this value unless 'optional-dependencies' is listed as `dynamic`. 2023-03-28T10:43:15,509 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:15,510 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:15,510 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:15,511 follow strictly the standard. 2023-03-28T10:43:15,513 To prevent this warning, you can list 'optional-dependencies' under `dynamic` or alternatively 2023-03-28T10:43:15,513 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:15,514 configuration. 2023-03-28T10:43:15,516 !! 2023-03-28T10:43:15,518 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:15,850 running egg_info 2023-03-28T10:43:15,857 writing pystatic_language.egg-info/PKG-INFO 2023-03-28T10:43:15,861 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-03-28T10:43:15,866 writing requirements to pystatic_language.egg-info/requires.txt 2023-03-28T10:43:15,868 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-03-28T10:43:15,892 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:15,895 reading manifest template 'MANIFEST.in' 2023-03-28T10:43:15,900 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:16,045 Getting requirements to build wheel: finished with status 'done' 2023-03-28T10:43:16,062 Installing backend dependencies: started 2023-03-28T10:43:16,063 Running command pip subprocess to install backend dependencies 2023-03-28T10:43:17,896 Using pip 23.0.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9) 2023-03-28T10:43:18,817 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-03-28T10:43:18,857 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-28T10:43:19,431 Collecting wheel 2023-03-28T10:43:19,455 Using cached https://www.piwheels.org/simple/wheel/wheel-0.40.0-py3-none-any.whl (64 kB) 2023-03-28T10:43:22,149 Installing collected packages: wheel 2023-03-28T10:43:22,478 Creating /tmp/pip-build-env-fvqq063w/normal/bin 2023-03-28T10:43:22,482 changing mode of /tmp/pip-build-env-fvqq063w/normal/bin/wheel to 755 2023-03-28T10:43:22,502 Successfully installed wheel-0.40.0 2023-03-28T10:43:23,082 Installing backend dependencies: finished with status 'done' 2023-03-28T10:43:23,085 Created temporary directory: /tmp/pip-modern-metadata-gbal58__ 2023-03-28T10:43:23,090 Preparing metadata (pyproject.toml): started 2023-03-28T10:43:23,092 Running command Preparing metadata (pyproject.toml) 2023-03-28T10:43:23,791 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-03-28T10:43:23,792 warnings.warn(msg) 2023-03-28T10:43:23,858 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:23,859 !! 2023-03-28T10:43:23,860 ########################################################################## 2023-03-28T10:43:23,860 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:23,860 ########################################################################## 2023-03-28T10:43:23,861 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:23,862 `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-03-28T10:43:23,862 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:23,863 consider this value unless 'readme' is listed as `dynamic`. 2023-03-28T10:43:23,863 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:23,864 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:23,864 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:23,865 follow strictly the standard. 2023-03-28T10:43:23,865 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-28T10:43:23,866 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:23,866 configuration. 2023-03-28T10:43:23,867 !! 2023-03-28T10:43:23,868 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:23,869 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:23,869 !! 2023-03-28T10:43:23,870 ########################################################################## 2023-03-28T10:43:23,870 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:23,871 ########################################################################## 2023-03-28T10:43:23,871 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:23,872 `license = 'MIT'` 2023-03-28T10:43:23,873 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:23,873 consider this value unless 'license' is listed as `dynamic`. 2023-03-28T10:43:23,874 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:23,874 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:23,875 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:23,875 follow strictly the standard. 2023-03-28T10:43:23,876 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-28T10:43:23,876 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:23,877 configuration. 2023-03-28T10:43:23,878 !! 2023-03-28T10:43:23,879 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:23,879 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'authors' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:23,879 !! 2023-03-28T10:43:23,881 ########################################################################## 2023-03-28T10:43:23,881 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:23,881 ########################################################################## 2023-03-28T10:43:23,882 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:23,883 `authors = 'Shahaf Frank-Shapir'` 2023-03-28T10:43:23,883 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:23,884 consider this value unless 'authors' is listed as `dynamic`. 2023-03-28T10:43:23,884 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:23,885 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:23,885 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:23,885 follow strictly the standard. 2023-03-28T10:43:23,886 To prevent this warning, you can list 'authors' under `dynamic` or alternatively 2023-03-28T10:43:23,886 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:23,887 configuration. 2023-03-28T10:43:23,888 !! 2023-03-28T10:43:23,888 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:23,889 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:23,889 !! 2023-03-28T10:43:23,890 ########################################################################## 2023-03-28T10:43:23,891 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:23,891 ########################################################################## 2023-03-28T10:43:23,892 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:23,892 `dependencies = ['dill', 'typeguard']` 2023-03-28T10:43:23,893 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:23,893 consider this value unless 'dependencies' is listed as `dynamic`. 2023-03-28T10:43:23,894 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:23,895 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:23,895 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:23,895 follow strictly the standard. 2023-03-28T10:43:23,896 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-03-28T10:43:23,897 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:23,897 configuration. 2023-03-28T10:43:23,898 !! 2023-03-28T10:43:23,899 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:23,899 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'optional-dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:23,900 !! 2023-03-28T10:43:23,901 ########################################################################## 2023-03-28T10:43:23,901 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:23,901 ########################################################################## 2023-03-28T10:43:23,902 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:23,903 `optional-dependencies = {'dev': ['pdoc3']}` 2023-03-28T10:43:23,904 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:23,904 consider this value unless 'optional-dependencies' is listed as `dynamic`. 2023-03-28T10:43:23,904 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:23,905 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:23,905 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:23,905 follow strictly the standard. 2023-03-28T10:43:23,906 To prevent this warning, you can list 'optional-dependencies' under `dynamic` or alternatively 2023-03-28T10:43:23,907 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:23,907 configuration. 2023-03-28T10:43:23,908 !! 2023-03-28T10:43:23,909 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:24,326 running dist_info 2023-03-28T10:43:24,335 creating /tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info 2023-03-28T10:43:24,341 writing /tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/PKG-INFO 2023-03-28T10:43:24,348 writing dependency_links to /tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/dependency_links.txt 2023-03-28T10:43:24,356 writing requirements to /tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/requires.txt 2023-03-28T10:43:24,360 writing top-level names to /tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/top_level.txt 2023-03-28T10:43:24,366 writing manifest file '/tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:24,386 reading manifest file '/tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:24,389 reading manifest template 'MANIFEST.in' 2023-03-28T10:43:24,394 writing manifest file '/tmp/pip-modern-metadata-gbal58__/pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:24,395 creating '/tmp/pip-modern-metadata-gbal58__/pystatic_language-1.0.0.dist-info' 2023-03-28T10:43:24,580 Preparing metadata (pyproject.toml): finished with status 'done' 2023-03-28T10:43:24,590 Source in /tmp/pip-wheel-e1qi6_0x/pystatic-language_70db6df940d54040b08c5b87253bce94 has version 1.0.0, which satisfies requirement pystatic-language==1.0.0 from https://files.pythonhosted.org/packages/cc/a5/e4354678339913084bdafe1e4e208b67f4207abdf72cf6efafaeb1e55b4f/pystatic-language-1.0.0.tar.gz 2023-03-28T10:43:24,591 Removed pystatic-language==1.0.0 from https://files.pythonhosted.org/packages/cc/a5/e4354678339913084bdafe1e4e208b67f4207abdf72cf6efafaeb1e55b4f/pystatic-language-1.0.0.tar.gz from build tracker '/tmp/pip-build-tracker-8ecx2fo8' 2023-03-28T10:43:24,598 Created temporary directory: /tmp/pip-unpack-9xa2mwe0 2023-03-28T10:43:24,598 Building wheels for collected packages: pystatic-language 2023-03-28T10:43:24,605 Created temporary directory: /tmp/pip-wheel-ekola5ky 2023-03-28T10:43:24,605 Destination directory: /tmp/pip-wheel-ekola5ky 2023-03-28T10:43:24,609 Building wheel for pystatic-language (pyproject.toml): started 2023-03-28T10:43:24,615 Running command Building wheel for pystatic-language (pyproject.toml) 2023-03-28T10:43:25,286 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:265: UserWarning: Unknown distribution option: 'project' 2023-03-28T10:43:25,287 warnings.warn(msg) 2023-03-28T10:43:25,351 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:25,351 !! 2023-03-28T10:43:25,352 ########################################################################## 2023-03-28T10:43:25,352 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:25,352 ########################################################################## 2023-03-28T10:43:25,353 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:25,354 `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-03-28T10:43:25,354 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:25,355 consider this value unless 'readme' is listed as `dynamic`. 2023-03-28T10:43:25,355 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:25,356 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:25,356 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:25,356 follow strictly the standard. 2023-03-28T10:43:25,356 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-28T10:43:25,357 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:25,357 configuration. 2023-03-28T10:43:25,358 !! 2023-03-28T10:43:25,359 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:25,359 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:25,359 !! 2023-03-28T10:43:25,360 ########################################################################## 2023-03-28T10:43:25,360 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:25,360 ########################################################################## 2023-03-28T10:43:25,361 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:25,362 `license = 'MIT'` 2023-03-28T10:43:25,362 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:25,362 consider this value unless 'license' is listed as `dynamic`. 2023-03-28T10:43:25,363 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:25,363 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:25,364 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:25,364 follow strictly the standard. 2023-03-28T10:43:25,365 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-28T10:43:25,365 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:25,365 configuration. 2023-03-28T10:43:25,366 !! 2023-03-28T10:43:25,366 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:25,367 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'authors' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:25,367 !! 2023-03-28T10:43:25,368 ########################################################################## 2023-03-28T10:43:25,368 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:25,368 ########################################################################## 2023-03-28T10:43:25,369 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:25,369 `authors = 'Shahaf Frank-Shapir'` 2023-03-28T10:43:25,370 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:25,370 consider this value unless 'authors' is listed as `dynamic`. 2023-03-28T10:43:25,370 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:25,371 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:25,371 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:25,371 follow strictly the standard. 2023-03-28T10:43:25,372 To prevent this warning, you can list 'authors' under `dynamic` or alternatively 2023-03-28T10:43:25,372 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:25,372 configuration. 2023-03-28T10:43:25,373 !! 2023-03-28T10:43:25,374 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:25,374 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:25,374 !! 2023-03-28T10:43:25,375 ########################################################################## 2023-03-28T10:43:25,375 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:25,375 ########################################################################## 2023-03-28T10:43:25,376 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:25,377 `dependencies = ['dill', 'typeguard']` 2023-03-28T10:43:25,377 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:25,377 consider this value unless 'dependencies' is listed as `dynamic`. 2023-03-28T10:43:25,378 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:25,378 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:25,379 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:25,379 follow strictly the standard. 2023-03-28T10:43:25,379 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-03-28T10:43:25,380 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:25,380 configuration. 2023-03-28T10:43:25,381 !! 2023-03-28T10:43:25,381 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:25,381 /tmp/pip-build-env-fvqq063w/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'optional-dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-28T10:43:25,382 !! 2023-03-28T10:43:25,382 ########################################################################## 2023-03-28T10:43:25,383 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-28T10:43:25,383 ########################################################################## 2023-03-28T10:43:25,383 The following seems to be defined outside of `pyproject.toml`: 2023-03-28T10:43:25,384 `optional-dependencies = {'dev': ['pdoc3']}` 2023-03-28T10:43:25,384 According to the spec (see the link below), however, setuptools CANNOT 2023-03-28T10:43:25,385 consider this value unless 'optional-dependencies' is listed as `dynamic`. 2023-03-28T10:43:25,385 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-28T10:43:25,386 For the time being, `setuptools` will still consider the given value (as a 2023-03-28T10:43:25,386 **transitional** measure), but please note that future releases of setuptools will 2023-03-28T10:43:25,386 follow strictly the standard. 2023-03-28T10:43:25,387 To prevent this warning, you can list 'optional-dependencies' under `dynamic` or alternatively 2023-03-28T10:43:25,387 remove the `[project]` table from your file and rely entirely on other means of 2023-03-28T10:43:25,387 configuration. 2023-03-28T10:43:25,388 !! 2023-03-28T10:43:25,388 warnings.warn(msg, _WouldIgnoreField) 2023-03-28T10:43:25,760 running bdist_wheel 2023-03-28T10:43:25,779 running build 2023-03-28T10:43:25,780 running build_py 2023-03-28T10:43:25,786 creating build 2023-03-28T10:43:25,787 creating build/lib 2023-03-28T10:43:25,789 creating build/lib/pystatic 2023-03-28T10:43:25,790 copying pystatic/casting.py -> build/lib/pystatic 2023-03-28T10:43:25,794 copying pystatic/document.py -> build/lib/pystatic 2023-03-28T10:43:25,796 copying pystatic/types.py -> build/lib/pystatic 2023-03-28T10:43:25,800 copying pystatic/overload.py -> build/lib/pystatic 2023-03-28T10:43:25,803 copying pystatic/private.py -> build/lib/pystatic 2023-03-28T10:43:25,806 copying pystatic/clean.py -> build/lib/pystatic 2023-03-28T10:43:25,809 copying pystatic/base.py -> build/lib/pystatic 2023-03-28T10:43:25,811 running egg_info 2023-03-28T10:43:25,822 writing pystatic_language.egg-info/PKG-INFO 2023-03-28T10:43:25,825 writing dependency_links to pystatic_language.egg-info/dependency_links.txt 2023-03-28T10:43:25,828 writing requirements to pystatic_language.egg-info/requires.txt 2023-03-28T10:43:25,829 writing top-level names to pystatic_language.egg-info/top_level.txt 2023-03-28T10:43:25,840 reading manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:25,842 reading manifest template 'MANIFEST.in' 2023-03-28T10:43:25,847 writing manifest file 'pystatic_language.egg-info/SOURCES.txt' 2023-03-28T10:43:25,860 installing to build/bdist.linux-armv7l/wheel 2023-03-28T10:43:25,861 running install 2023-03-28T10:43:25,892 running install_lib 2023-03-28T10:43:25,899 creating build/bdist.linux-armv7l 2023-03-28T10:43:25,900 creating build/bdist.linux-armv7l/wheel 2023-03-28T10:43:25,903 creating build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,905 copying build/lib/pystatic/casting.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,909 copying build/lib/pystatic/document.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,912 copying build/lib/pystatic/types.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,915 copying build/lib/pystatic/overload.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,919 copying build/lib/pystatic/private.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,923 copying build/lib/pystatic/clean.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,926 copying build/lib/pystatic/base.py -> build/bdist.linux-armv7l/wheel/pystatic 2023-03-28T10:43:25,929 running install_egg_info 2023-03-28T10:43:25,936 Copying pystatic_language.egg-info to build/bdist.linux-armv7l/wheel/pystatic_language-1.0.0-py3.9.egg-info 2023-03-28T10:43:25,954 running install_scripts 2023-03-28T10:43:25,978 creating build/bdist.linux-armv7l/wheel/pystatic_language-1.0.0.dist-info/WHEEL 2023-03-28T10:43:25,986 creating '/tmp/pip-wheel-ekola5ky/.tmp-2jdl4ppu/pystatic_language-1.0.0-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-03-28T10:43:25,990 adding 'pystatic/base.py' 2023-03-28T10:43:25,993 adding 'pystatic/casting.py' 2023-03-28T10:43:25,996 adding 'pystatic/clean.py' 2023-03-28T10:43:25,998 adding 'pystatic/document.py' 2023-03-28T10:43:26,000 adding 'pystatic/overload.py' 2023-03-28T10:43:26,002 adding 'pystatic/private.py' 2023-03-28T10:43:26,005 adding 'pystatic/types.py' 2023-03-28T10:43:26,009 adding 'pystatic_language-1.0.0.dist-info/METADATA' 2023-03-28T10:43:26,012 adding 'pystatic_language-1.0.0.dist-info/WHEEL' 2023-03-28T10:43:26,015 adding 'pystatic_language-1.0.0.dist-info/top_level.txt' 2023-03-28T10:43:26,017 adding 'pystatic_language-1.0.0.dist-info/RECORD' 2023-03-28T10:43:26,021 removing build/bdist.linux-armv7l/wheel 2023-03-28T10:43:26,168 Building wheel for pystatic-language (pyproject.toml): finished with status 'done' 2023-03-28T10:43:26,179 Created wheel for pystatic-language: filename=pystatic_language-1.0.0-py3-none-any.whl size=12798 sha256=7b02518baa92b91dbbf3d41f858357655d7496a4991c836606f25ece43e4c7f8 2023-03-28T10:43:26,181 Stored in directory: /tmp/pip-ephem-wheel-cache-5msu521l/wheels/9e/de/e3/4b01c67f42f49ead3047c4439fc1eefbad7317068f5ba70139 2023-03-28T10:43:26,198 Successfully built pystatic-language 2023-03-28T10:43:26,203 Removed build tracker: '/tmp/pip-build-tracker-8ecx2fo8'