Source code for okcupyd.tasks.copy

import importlib
import logging

from invoke import Collection, task

from okcupyd.user import User
from okcupyd.profile_copy import Copy


log = logging.getLogger(__name__)
ns = Collection()


[docs]def build_copy(source_credentials_or_username, dest_credentials): dest_module = importlib.import_module(dest_credentials) dest_user = User.from_credentials(dest_module.USERNAME, dest_module.PASSWORD) try: source_module = importlib.import_module(source_credentials_or_username) except ImportError: source = dest_user.get_profile(source_credentials_or_username) else: source = User.from_credentials(source_module.USERNAME, source_module.PASSWORD) return Copy(source, dest_user)
[docs]def build_copy_task(method): @task def copy_task(source_credentials, dest_credentials): copy = build_copy(source_credentials, dest_credentials) getattr(copy, method)() ns.add_task(copy_task, name=method)
for method in Copy.copy_methods: build_copy_task(method) @ns.add_task @task(default=True) def all(source_credentials, dest_credentials): log.info(build_copy(source_credentials, dest_credentials).all())