Metadata-Version: 2.1
Name: computed-cached-property
Version: 0.0.1
Summary: A decorator for caching computed properties in classes. like Vue's Computed-Properties
Home-page: https://github.com/lisonge/computed-cached-property
Author: Li Songe
Author-email: i@songe.li
License: MIT
Description: <!--
         * @Date: 2020-06-19 22:44:45
         * @LastEditors: code
         * @Author: code
         * @LastEditTime: 2020-06-23 21:58:40
        -->  
        
        # computed-cached-property
        
        A decorator for caching computed properties in classes. like Vue's Computed-Properties
        
        ## install
        
        ```powershell
        pip install computed-cached-property
        ```
        
        ## example
        
        ```python
        from computed_cached_property import computed_cached_property
        from dataclasses import dataclass
        
        
        @dataclass
        class A:
            v1: int = 1
            v2: str = 'fuck'
            v3: bool = False
        
            @property
            @computed_cached_property
            def v4(self):
                print('run code in v4 function')
                return f'v1:{self.v1}, v2:{self.v2}, v3:{self.v3}'
        
            @property
            @computed_cached_property(typed=Ture)
            # same as @functools.lru_cache(maxsize=1, typed=Ture)
            def v5(self):
                print('run code in v4 function')
                return f'v1:{self.v1}, v2:{self.v2}, v3:{self.v3}'
        
        
        a1 = A(v1=99)
        print(a1.v4)
        print(a1.v4)
        a1.v2 = 'xxoo'
        print(a1.v4)
        
        # output
        # run code in v4 function
        # v1:99, v2:fuck, v3:False
        # v1:99, v2:fuck, v3:False
        # run code in v4 function
        # v1:99, v2:xxoo, v3:False
        ```
        
        ## Hint
        
        Not recommended for use in a production environment
        
        ## License
        
        MIT
        
Keywords: cached-property
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
