benten register_names

目的

  • 登録名の検索を行います。

Warning

事前にログイン認証を行う必要があります。

概要

  • 認証時のアカウントでアクセスが許可されたデータのみ情報を取得できます。
  • ディレクトリ、またはファイルを指定して検索ができます。
  • クエリで検索ができます。

利用例

  • Help
$ benten.py register_names -h
usage: benten register_names [-h] [--file [FILE]] [--query [QUERY]]
                             [--flag_recursive] [--size [SIZE]]
                             [--begin_from [BEGIN_FROM]] [--flag_own]

optional arguments:
  -h, --help            show this help message and exit
  --file [FILE], -f [FILE]
                        file or directory
  --query [QUERY], -q [QUERY]
                        query
  --flag_recursive, -s  output register_name_list with recursive search for
                        directory
  --size [SIZE]         search size
  --begin_from [BEGIN_FROM]
                        id to begin search
  --flag_own, -o        output with own file_list
  • ディレクトリ指定での検索
$ benten.py register_names -f "/SPring-8/BL14B2/data2/temp"

(benten) C:\Users\matumot>python.exe C:\Users\matumot\Miniconda3\envs\benten\Scripts\\benten.py register_names -f "/SPring-8/BL14B2/data2/temp"
### benten register_names ###
[Repository::authorize] access_token = 0b513fb250d9456a8f900533bd91aeda
==> response
{
    "total_count":1,
    "size":0,
    "begin_from":0,
    "register_name_list":[
        "/SPring-8/BL14B2/data2/temp/Cu-K_Cu-foil_Si111_50ms_120613"
    ]
}
  • クエリ指定での検索 (1)
$ benten.py register_names -q Cu
### benten register_names ###
[Repository::authorize] access_token = 0b513fb250d9456a8f900533bd91aeda
==> response
{
    "total_count":1,
    "size":0,
    "begin_from":0,
    "register_name_list":[
        "/SPring-8/BL14B2/data2/temp/Cu-K_Cu-foil_Si111_50ms_120613"
    ]
}
  • クエリ指定での検索 (2)
$ benten register_names -q "Cu and @subject@proposal_number:2014S0000"
### benten register_names ###
[Repository::authorize] access_token = 0b513fb250d9456a8f900533bd91aeda
==> response
{
    "total_count":1,
    "size":0,
    "begin_from":0,
    "register_name_list":[
        "/SPring-8/BL14B2/data2/temp/Cu-K_Cu-foil_Si111_50ms_120613"
    ]
}

Pythonモジュールとの対応

#!/usr/bin/env python
'''
  example: register_names

  usage: python benten_register_names.py ...

'''

import benten_client

import argparse
from logging import getLogger, StreamHandler, DEBUG
logger = getLogger(__name__)
handler = StreamHandler()
handler.setLevel(DEBUG)
logger.setLevel(DEBUG)
logger.addHandler(handler)
logger.propagate = False

# ... parameters

parser = argparse.ArgumentParser(description="example: register_names")
parser.add_argument("--file", "-f", nargs="?",
                    action="append", help="file or directory")
parser.add_argument("--query", "-q", nargs="?", help="query")
parser.add_argument("--flag_recursive", "-s", action="store_const", const=1,
                    help="output register_name_list with recursive search for directory")
parser.add_argument("--size", nargs="?", help="search size")
parser.add_argument("--begin_from", nargs="?", help="id to begin search")
parser.add_argument("--flag_own", "-o", action="store_const",
                    const=1, help="output with own file_list")
args = parser.parse_args()

file_list = args.file
query = args.query
flag_recursive = args.flag_recursive
size = args.size
begin_from = args.begin_from
flag_own = args.flag_own

v = {}
if file_list is not None:
    v["file_list"] = file_list
if query is not None:
    v["query"] = query
if flag_recursive is not None:
    v["flag_recursive"] = flag_recursive
if size is not None:
    v["size"] = size
if begin_from is not None:
    v["begin_from"] = begin_from
if flag_own is not None:
    v["flag_own"] = flag_own


repo = benten_client.Repository() 

logger.debug("# set access token")

repo.authorize(benten_client.access_token())

logger.debug("# benten register_names")

ret_dict = repo.data.register_names.post(**v)

benten_client.log("==> response")
benten_client.out_json(ret_dict)