0

I am attempting to use the below loader class to import data from a bulkloader generated CSV:

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]

CSV data:

url,market_name,parent_market_name,last_modified,key,timestamp somedata,moredata,yadata,2013-09-14T03:34:22,123143244,2013-09-14T03:34:22

Adjusting the property formatters or omitting them altogether does nothing to prevent this error being received:

02:22 PM Application: s~myapp 02:22 PM Uploading data records. [INFO ] Logging to bulkloader-log-20131005.142241 [INFO
] 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(file, 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 call 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 init lambda x: datetime.datetime.strptime( File "/home/azureuser/google_appengine/google/appengine/tools/bulkloader.py", line 2698, in init 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/init.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'

The stacktrace always mentions the last formatter, regardless of which one is set as the last.

ljs.dev
  • 4,449
  • 3
  • 47
  • 80

0 Answers0