title: "No implementation for kind" importing data to GAE
body: <p>I am attempting to use the below <a href="https://developers.google.com/appengine/docs/python/tools/uploadingdata?csw=1#Python_Creating_loader_classes" rel="nofollow">loader class</a> to import data from a <code>bulkloader</code> generated CSV:</p>
  
  <pre><code>import datetime
  from google.appengine.ext import db
  from google.appengine.tools import bulkloader
  from market import Market
  
  
  class MarketLoader(bulkloader.Loader):
      def __init__(self):
              bulkloader.Loader.__init__(
                  self, 'Market',
                  [('url', str),
                  ('market_name', lambda x: x.decode('utf-8')),
                  ('parent_market_name', lambda x: x.decode('utf-8')),
                  ('last_modified', 
                      lambda x: dateutil.datetime.strptime(
                      x, '%Y-%m-%dT%H:%M:%S').date()),
                  ('key',str),
                  ('timestamp',
                      lambda x: datetime.datetime.strptime(
                      x, '%Y-%m-%dT%H:%M:%S').date())
  
                  ])
  
  loaders = [MarketLoader]
  </code></pre>
  
  <p><strong>CSV data:</strong></p>
  
  <blockquote>
    <p>url,market_name,parent_market_name,last_modified,key,timestamp
    somedata,moredata,yadata,2013-09-14T03:34:22,123143244,2013-09-14T03:34:22</p>
  </blockquote>
  
  <p>Adjusting the property formatters or omitting them altogether does nothing to prevent this error being received:</p>
  
  <blockquote>
    <p>02:22 PM Application: s~myapp 02:22 PM Uploading data
    records. [INFO    ] Logging to bulkloader-log-20131005.142241 [INFO<br>
    ] Throttling transfers: [INFO    ] Bandwidth: 250000 bytes/second
    [INFO    ] HTTP connections: 8/second [INFO    ] Entities
    inserted/fetched/modified: 20/second [INFO    ] Batch Size: 10
    Traceback (most recent call last):   File
    "/home/azureuser/google_appengine/appcfg.py", line 184, in 
        run_file(<strong>file</strong>, globals())   File "/home/azureuser/google_appengine/appcfg.py", line 180, in run_file
        execfile(script_path, globals_)   File "/home/myuser/google_appengine/google/appengine/tools/appcfg.py",
    line 4403, in 
        main(sys.argv)   File "/home/myuser/google_appengine/google/appengine/tools/appcfg.py",
    line 4394, in main
        result = AppCfgApp(argv).Run()   File "/home/azureuser/google_appengine/google/appengine/tools/appcfg.py",
    line 2469, in Run
        self.action(self)   File "/home/azureuser/google_appengine/google/appengine/tools/appcfg.py",
    line 4103, in <strong>call</strong>
        return method()   File "/home/azureuser/google_appengine/google/appengine/tools/appcfg.py",
    line 3915, in PerformUpload
        run_fn(args)   File "/home/azureuser/google_appengine/google/appengine/tools/appcfg.py",
    line 3806, in RunBulkloader
        sys.exit(bulkloader.Run(arg_dict))   File "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py",
    line 4419, in Run
        return _PerformBulkload(arg_dict)   File "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py",
    line 4230, in _PerformBulkload
        LoadConfig(config_file)   File "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py",
    line 3897, in LoadConfig
        Loader.RegisterLoader(cls())   File "/home/azureuser/gaeccscrm/Market_loader.py", line 19, in <strong>init</strong>
        lambda x: datetime.datetime.strptime(   File "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py",
    line 2698, in <strong>init</strong>
        GetImplementationClass(kind)   File "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py",
    line 968, in GetImplementationClass
        implementation_class = db.class_for_kind(kind_or_class_key)   File "/home/azureuser/google_appengine/google/appengine/ext/db/<strong>init</strong>.py",
    line 296, in class_for_kind
        raise KindError('No implementation for kind \'%s\'' % kind) google.appengine.ext.db.KindError: No implementation for kind 'Market'</p>
  </blockquote>
  
  <p>The stacktrace always mentions the last formatter, regardless of which one is set as the last. </p>