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.