Metadata-Version: 2.1
Name: protoclass
Version: 0.0.1
Summary: Prototype-Oriented Programming in Python
Home-page: https://github.com/jellowfish/protoclass
Author: Armando Herrera
Author-email: mail@jellowfish.com
License: Apache-2.0
Description: protoclass
        =========
        [![PyPi](https://badge.fury.io/py/protoclass.svg)]
        [![PyVersions](https://img.shields.io/pypi/pyversions/protoclass.svg)]
        
        Prototype-Oriented Programming in Python.
        
        Installation
        ------------
        `pip install protoclass`
        
        Usage
        -----
        ```Python
        from protoclass import proto
        
        # We create a basic object and add some functionality
        jane = proto(first="Jane", last="Doe")
        jane.greet = lambda self: print(self)
        jane.greet()
        # >>> <proto object at ...>
        
        # Oh no, we want something prettier...
        # We could modify the `greet` function...
        # Or we could create a `person` object an inherit from it
        person = proto(first="", last="")
        person.__str__ = lambda self: f"{self.first} {self.last}"
        jane.link(person)
        
        # Now we get a nicer greeting
        jane.greet()
        # >>> Jane Doe
        ```
        
        API Reference
        -------------
        | | |
        | --- | --- |
        | `proto(**kwargs)` | Make a new prototype object with the given attributes. If no properties are given, and empty prototype will be created. The latter is useful when only a clone of another object is needed. |
        | `proto.link(self, other)` | Make current object a prototype of another object. This is similar to single inheritance. Each object can have multiple child links, but only one parent link. Parent links can be changed at any time, but objects that are children of this one will be affected by this. This enables change propagation. |
        
        License
        -------
        [Apache-2.0](./LICENSE)
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
