Welcome, guest | Sign In | My Account | Store | Cart
# Copyright (c) 2010 Clovis Fabricio Costa - All rights reserved
# Distribution allowed under MIT license

"""
This module can give you an infinite arsenal of python functions and classes!

Save this as activestate.py
Then you can run:

>>> from activestate.recipe194373 import mreplace
>>> print mreplace('ectave steta racipas rock!', ('a', 'e'), ('e', 'a'))
active state recipes rock!

"""


import sys
import imp
import re
import urllib2

if __name__ == '__main__':
   
raise ImportError("This module can't be executed directly - it should be imported")

class RecipeImporter(object):
    _regex
= re.compile('%s\.recipe(\d+)' % re.escape(__name__))
    url
= 'http://code.activestate.com/recipes/%s/download/1/'
   
   
def find_module(self, name, pathlist):
       
if name == __name__:
           
return self
       
base, sep, part = name.partition('.')
       
if part.startswith('recipe'):
           
return self

   
def _create_module(self, modulename):
        mod
= imp.new_module(modulename)
        mod
.__file__ = "<(%s)>" % (modulename,)
        mod
.__loader__ = self
        sys
.modules[modulename] = mod
       
return mod

   
def load_module(self, fullname):
       
if fullname in sys.modules:
            mod
= sys.modules[fullname]
       
else:
            mod
= self._get_module(fullname)
       
return mod

   
def _get_module(self, fullname):
       
if fullname == __name__:
            mod
= self._create_module(fullname)
            mod
.__path__ = []
       
else:
            m
= self._regex.match(fullname)
           
if m:
               
try:
                    code
= urllib2.urlopen(self.url % m.groups()).read()
               
except (urllib2.HTTPError, urllib2.URLError) as e:
                   
raise ImportError("Can't load recipe %s: %s" %
                       
(m.group(1), e))
                mod
= self._create_module(fullname)
               
exec code in mod.__dict__
           
else:
               
raise ImportError("Don't know how to import %r" % (fullname,))
       
return mod

sys
.meta_path.append(RecipeImporter())
__path__
= []

History