コード例 #1
0
def circle_ci_survey(survey_tags,survey_repo=None,delete=True,survey_file="survey.tsv"):
    '''circle_ci_survey checks format of surveys.tsv file
    :param survey_tags: list of survey folders (exp_id variables) to test
    :param survey_repo: folder with experiments to test. If None, will pull from master branch
    :param delete: delete experiment folders when finished
    '''

    if isinstance(survey_tags,str):
        survey_tags = [survey_tags]

    # If we are running on circle, only test changed experiments
    if "CIRCLE_BRANCH" in os.environ.keys():

        print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..."

        survey_repo = os.getcwd()
        master_folder = os.path.abspath(os.path.join(survey_repo,"master"))
        if not os.path.exists(master_folder):
            os.mkdir(master_folder)
            download_repo("surveys",master_folder)
        changed_surveys = [os.path.split(x)[-1] for x in find_changed(survey_repo,master_folder,repo_type="surveys")]    
        changed_surveys = [e for e in survey_tags if e in changed_surveys]
        
    if len(changed_surveys) > 0:
        validate_surveys(survey_tags=changed_surveys,survey_repo=survey_repo,survey_file=survey_file)
    else:
        print "Skipping surveys %s, no changes detected." %(",".join(survey_tags))
コード例 #2
0
ファイル: tests.py プロジェクト: zenkavi/expfactory-python
def circle_ci_survey(survey_tags,web_folder,survey_repo=None,delete=True,survey_file="survey.tsv"):
    '''circle_ci_survey checks format of surveys.tsv file
    :param survey_tags: list of survey folders (exp_id variables) to test
    :param web folder: folder with generated survey web
    :param survey_repo: folder with experiments to test. If None, will pull from master branch
    :param delete: delete experiment folders when finished
    '''

    if isinstance(survey_tags,str):
        survey_tags = [survey_tags]

    # If we are running on circle, only test changed experiments
    if "CIRCLE_BRANCH" in os.environ.keys():

        print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..."

        survey_repo = os.getcwd()
        master_folder = os.path.abspath(os.path.join(survey_repo,"master"))
        if not os.path.exists(master_folder):
            os.mkdir(master_folder)
            download_repo("surveys",master_folder)
        changed_surveys = [os.path.split(x)[-1] for x in find_changed(survey_repo,master_folder,repo_type="surveys")]    
        changed_surveys = [e for e in survey_tags if e in changed_surveys]
        
    if len(changed_surveys) > 0:
        validate_surveys(survey_tags=changed_surveys,survey_repo=survey_repo,survey_file=survey_file)
        generate_experiment_web(web_folder,survey_folder=os.path.abspath(survey_repo)) 
        survey_robot_web(web_folder,survey_tags=changed_surveys)
    else:
        print "Skipping surveys %s, no changes detected." %(",".join(survey_tags))
コード例 #3
0
def circle_ci_test(experiment_tags,web_folder,experiment_repo=None,delete=True,pause_time=500):
    '''circle_ci_test
    Deploy experiment testing robot, requires generation of web folder, and can be deleted on finish.
    :param experiment_tags: list of experiment folders (exp_id variables) to test
    :param web_folder: output web folder to generate experiment web. Will be created if does not exist
    :param experiment_repo: folder with experiments to test. If None, will pull from master branch
    :param delete: delete experiment folders when finished
    :param pause_time: The time to pause between experiments, in addition to post trial times
    '''

    if isinstance(experiment_tags,str):
        experiment_tags = [experiment_tags]

    # If we are running on circle, only test changed experiments
    if "CIRCLE_BRANCH" in os.environ.keys():

        print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..."

        master_folder = os.path.abspath(os.path.join(os.getcwd(),"master"))
        if not os.path.exists(master_folder):
            os.mkdir(master_folder)
            download_repo("experiments",master_folder)
        changed_experiments = [os.path.split(x)[-1] for x in find_changed(os.getcwd(),master_folder)]    
        changed_experiments = [e for e in experiment_tags if e in changed_experiments]
        
    if len(changed_experiments) > 0:
        generate_experiment_web(web_folder,experiment_folder=os.path.abspath(experiment_repo),make_surveys=False) 
        experiment_robot_web(web_folder,experiment_tags=changed_experiments)
    else:
        print "Skipping experiments %s, no changes detected." %(",".join(experiment_tags))
コード例 #4
0
ファイル: tests.py プロジェクト: zenkavi/expfactory-python
def circle_ci_test(experiment_tags,web_folder,experiment_repo=None,delete=True,pause_time=500,repo_type="experiments"):
    '''circle_ci_test
    Deploy experiment testing robot, requires generation of web folder, and can be deleted on finish.
    :param experiment_tags: list of experiment folders (exp_id variables) to test
    :param web_folder: output web folder to generate experiment web. Will be created if does not exist
    :param experiment_repo: folder with experiments to test. If None, will pull from master branch
    :param delete: delete experiment folders when finished
    :param pause_time: The time to pause between experiments, in addition to post trial times
    '''

    if isinstance(experiment_tags,str):
        experiment_tags = [experiment_tags]

    # If we are running on circle, only test changed experiments
    if "CIRCLE_BRANCH" in os.environ.keys():

        print "DETECTED CONTINUOUS INTEGRATION ENVIRONMENT..."

        master_folder = os.path.abspath(os.path.join(os.getcwd(),"master"))
        if not os.path.exists(master_folder):
            os.mkdir(master_folder)
            download_repo(repo_type,master_folder)
        changed_experiments = [os.path.split(x)[-1] for x in find_changed(os.getcwd(),master_folder)]    
        changed_experiments = [e for e in experiment_tags if e in changed_experiments]
        
    if len(changed_experiments) > 0:
        generate_experiment_web(web_folder,experiment_folder=os.path.abspath(experiment_repo),make_surveys=False) 
        experiment_robot_web(web_folder,experiment_tags=changed_experiments)
    else:
        print "Skipping %s %s, no changes detected." %(repo_type,",".join(experiment_tags))
コード例 #5
0
    is_temp_working_dir = True
    working_dir = tempfile.mkdtemp() # We will set up the repo downloads, etc, in a temporary place

experiments = args.experiments.split(",")

# Download the missing repos to working directory
battery_repo='battery'
experiment_repo='experiments'
survey_repo='surveys'
game_repo='games'

print('Downloading expfactory repos...')
for repo in (battery_repo, experiment_repo, survey_repo, game_repo):
    folder = "%s/%s" %(working_dir,repo)
    if not (os.path.isdir(folder)):
        download_repo(repo_type=repo,
                      destination=folder)

# Generate battery with the experiment(s)
print('Generating base...')
base = generate_base(battery_dest=battery_dest,
                     tasks=experiments,
                     experiment_repo="%s/%s" %(working_dir,experiment_repo),
                     survey_repo="%s/%s" %(working_dir,survey_repo),
                     game_repo="%s/%s" %(working_dir,game_repo),
                     add_experiments=True,
                     add_surveys=False,
                     add_games=False,
                     battery_repo="%s/%s" %(working_dir,battery_repo))

# Customize the battery
custom_variables = dict()