MCPcopy
hub / github.com/coleifer/sqlite-web / _add_dataset

Function _add_dataset

sqlite_web/sqlite_web.py:320–358  ·  view source on GitHub ↗
(enable_load, enable_filesystem)

Source from the content-addressed store, hash-verified

318 error=error)
319
320def _add_dataset(enable_load, enable_filesystem):
321 mode = request.form.get('mode')
322 if mode == 'upload':
323 if not enable_load:
324 return None, 'Uploading databases is not allowed.'
325
326 database = request.files.get('database')
327 if not database:
328 return None, 'Database file is required.'
329
330 if app.config['DB_UPLOAD_DIR']:
331 dirname = app.config['DB_UPLOAD_DIR']
332 os.makedirs(dirname, exist_ok=True)
333 else:
334 dirname = tempfile.mkdtemp(prefix='sqlite-web')
335 filename = secure_filename(database.filename) or 'database.db'
336 path = os.path.join(dirname, filename)
337 database.save(path)
338 elif mode == 'filesystem':
339 if not enable_filesystem:
340 return None, 'Loading databases from the filesystem is not allowed.'
341 path = request.form.get('filename')
342 if not path:
343 return None, 'Filename is required.'
344 if not os.path.exists(path):
345 return None, 'File "%s" not found.' % path
346 else:
347 return None, 'Error: unrecognized mode "%s".' % mode
348
349 try:
350 dataset = initialize_dataset(path)
351 except Exception as exc:
352 return None, 'Unable to load database: %s' % exc
353 else:
354 basename = os.path.basename(path)
355 datasets[basename] = dataset
356 session['dataset'] = basename
357
358 return dataset, None
359
360@app.route('/unload/', methods=['GET', 'POST'])
361def unload():

Callers 1

loadFunction · 0.85

Calls 2

initialize_datasetFunction · 0.85
basenameMethod · 0.80

Tested by

no test coverage detected