cli.py 文件源码

python
阅读 16 收藏 0 点赞 0 评论 0

项目:smartcontainers 作者: crcresearch 项目源码 文件源码
def cli(ctx):
    """Smartcontainers for software and data preservation.
    Smartcontainers provides a mechanism to add metadata to Docker
    containers as a JSON-LD label. The metadata is contextualized using
    W3C recommended PROV-O and ORCID IDs to capture provenance information.
    The sc command wraps the docker commandline interface and passes any
    docker command line parameters through to docker. Any command that changes
    the state of the container is recorded in a prov graph and attached to the resultant
    image.
    """

    # Ignore config loading if we intend to create an orcid config
    if ctx.args[0] == "config" and ctx.args[1] == "orcid":
        return

    Success = False
    while not Success:
        result = config_file.read_config()
        if 'Configuration does not exist.' in result:
            print("User configuration needs to be initialized")
            selected = None
            while not selected:
                try:
                    selected = click.prompt('Do you have an ORCID profile (Y/N)')
                    if selected.lower() == 'y' or selected.lower() == 'yes':
                        config_by_search()
                        continue

                    if selected.lower() == 'n' or selected.lower() == 'no':
                        print("Please provide some basic information:")
                        query = {
                            'first_name': click.prompt(
                                'Please enter a first name', default='',
                                show_default=False
                            ),
                            'last_name': click.prompt(
                                'Please enter a last name', default='',
                                show_default=False
                            )
                        }
                        dockerUseruuid = str(uuid.uuid4())
                        UUIDNS = Namespace("urn:uuid:")
                        config_file.graph.bind("foaf", FOAF)
                        config_file.graph.add( ( UUIDNS[dockerUseruuid], FOAF.givenName, Literal(query['first_name']) ) )
                        config_file.graph.add( ( UUIDNS[dockerUseruuid], FOAF.familyName, Literal(query['last_name']) ) )

                        config_file.config_obj = config_file.graph.serialize(format='turtle')
                        config_file.write_config()
                except KeyError:
                    print('That is not a valid selection.  Please try again.\n')
        else:
            Success = True
            graph = config_file.graph
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号