}, ], 'onsite_interview': [{ 'vendor': 'Amir Zadeh (CMU)', 'product': 'Recorder.exe', 'pattern': string.Template('${subject}_.*'), 'protect': True }, { 'vendor': 'Zoom', 'product': 'unknown', 'pattern': string.Template('.*(\.MOV|\.WAV)$'), 'protect': True }] } Module = lochness.lchop(__name__, 'lochness.') Basename = lochness.lchop(__name__, 'lochness.dropbox.') logger = logging.getLogger(__name__) @net.retry(max_attempts=5) def sync(Lochness, subject, dry): delete = lochness.dropbox.delete_on_success(Lochness, Basename) logger.debug('delete_on_success for {0} is {1}'.format(Basename, delete)) for dbx_sid in subject.dropbox[Module]: logger.debug('exploring {0}/{1}'.format(subject.study, subject.id)) _passphrase = keyring.passphrase(Lochness, subject.study) enc_key = enc.kdf(_passphrase) api_token = keyring.dropbox_api_token(Lochness, Module) client = dropbox.Dropbox(api_token)
from pathlib import Path import hashlib from io import BytesIO import lochness.keyring as keyring from os.path import join as pjoin, basename, dirname, isfile import cryptease as enc import re from subprocess import Popen import tempfile import pandas as pd from numpy import nan from distutils.spawn import find_executable import lochness.tree as tree logger = logging.getLogger(__name__) Module = lochness.lchop(__name__, 'lochness.') Basename = lochness.lchop(__name__, 'lochness.mediaflux.') CHUNK_SIZE = 65536 def base(Lochness, study_name): '''get study-specific namespace directory''' return Lochness.get('mediaflux', {}) \ .get(study_name, {}) \ .get('namespace', '') class PatternError(Exception): pass