# Path: pyeapi/utils.py
# class ProxyCall(object):
# 
#     def __init__(self, proxy, method):
#         self.proxy = proxy
#         self.method = method
# 
#     def __call__(self, *args, **kwargs):
#         return self.proxy(self.method, *args, **kwargs)


import re
import netaddr
from pyeapi.api import EntityCollection
from pyeapi.utils import ProxyCall
        super(Acls, self).__init__(node, *args, **kwargs)
        self._instances = dict()

    def get(self, name):
        return self.get_instance(name)[name]

    def getall(self):
        """Returns all ACLs in a dict object.

        Returns:
            A Python dictionary object containing all ACL
            configuration indexed by ACL name::

                {
                    "<ACL1 name>": {...},
                    "<ACL2 name>": {...}
                }

        """
        acl_re = re.compile(r'^ip access-list (?:(standard) )?(.+)$', re.M)
        response = {'standard': {}, 'extended': {}}
        for acl_type, name in acl_re.findall(self.config):
            acl = self.get(name)
            if acl_type and acl_type == 'standard':
                response['standard'][name] = acl
            else:
                response['extended'][name] = acl
        return response

    def __getattr__(self, name):

# Path: pyeapi/utils.py
# class ProxyCall(object):
# 
#     def __init__(self, proxy, method):
#         self.proxy = proxy
#         self.method = method
# 
#     def __call__(self, *args, **kwargs):
#         return self.proxy(self.method, *args, **kwargs)


# Path: pyeapi/api/acl.py
import re
import netaddr
from pyeapi.api import EntityCollection
from pyeapi.utils import ProxyCall

        super(Acls, self).__init__(node, *args, **kwargs)
        self._instances = dict()

    def get(self, name):
        return self.get_instance(name)[name]

    def getall(self):
        """Returns all ACLs in a dict object.

        Returns:
            A Python dictionary object containing all ACL
            configuration indexed by ACL name::

                {
                    "<ACL1 name>": {...},
                    "<ACL2 name>": {...}
                }

        """
        acl_re = re.compile(r'^ip access-list (?:(standard) )?(.+)$', re.M)
        response = {'standard': {}, 'extended': {}}
        for acl_type, name in acl_re.findall(self.config):
            acl = self.get(name)
            if acl_type and acl_type == 'standard':
                response['standard'][name] = acl
            else:
                response['extended'][name] = acl
        return response

    def __getattr__(self, name):

        return ProxyCall(self.marshall, name)