Metadata-Version: 1.1
Name: Objects
Version: 0.0.1
Summary: Python catalogs of objects providers
Home-page: https://github.com/rmk135/objects
Author: Roman Mogilatov
Author-email: rmogilatov@gmail.com
License: BSD New
Description: Objects
        =======
        
        Python catalogs of objects providers.
        
        Example:
        
        .. code:: python
        
            """
            Concept example of objects catalogs.
            """
        
            import objects
            import sqlite3
        
        
            # Some example classes.
            class A(object):
                def __init__(self, db):
                    self.db = db
        
        
            class B(object):
                def __init__(self, a, db):
                    self.a = a
                    self.db = db
        
        
            # Catalog of objects providers.
            class Catalog(objects.Catalog):
                """
                Objects catalog.
                """
        
                database = objects.Singleton(provides=sqlite3.Connection,
                                             database='example.db')
                """ :type: (objects.Provider) -> sqlite3.Connection """
        
                object_a = objects.NewInstance(provides=A,
                                               db=database)
                """ :type: (objects.Provider) -> A """
        
                object_b = objects.NewInstance(provides=B,
                                               a=object_a,
                                               db=database)
                """ :type: (objects.Provider) -> B """
        
        
            # Catalog injection into consumer class.
            class Consumer(object):
                catalog = Catalog(Catalog.object_a,
                                  Catalog.object_b)
        
                def return_a_b(self):
                    return (self.catalog.object_a(),
                            self.catalog.object_b())
        
            a1, b1 = Consumer().return_a_b()
        
        
            # Catalog static provides.
            a2 = Catalog.object_a()
            b2 = Catalog.object_b()
        
            # Some asserts.
            assert a1 is not a2
            assert b1 is not b2
            assert a1.db is a2.db is b1.db is b2.db
        
        
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
