Skip to main content

No project description provided

Project description

インストール

pip install politylink

使い方

GraphQLClient

PolityLinkのGraphQLエンドポイントにアクセスするためのGraphQLClientが用意されています。

from politylink.graphql.client import GraphQLClient
client = GraphQLClient()

基本編

execメソッドを使えば任意のGraphQLクエリを実行することができます。

query = """
query {
  Bill(filter: {submittedDate: {year: 2020, month: 1, day: 20}}) {
    name
  }
}
"""
client.exec(query)

2020年1月20日に提出された3つの法律案の名前がJSON形式で得られるはずです。

{'data': {'Bill': [{'name': '特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案'},
   {'name': '地方交付税法及び特別会計に関する法律の一部を改正する法律案'},
   {'name': '平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'}]}}

また、get_all_*メソッドを使うことで、返り値をJSONではなくPythonクラスのインスタンスとして取得することができます。 例えばget_all_billsでは法律案をBillインスタンスとして取得することができます。

bills = client.get_all_bills(fields=['id', 'name'])
first_bill = bills[0]

print(f'{len(bills)}件の法律案を取得しました')
print(f'最初の法律案は「{first_bill.name}」({first_bill.id})です')

全ての法律案のidと名前(name)が得られるはずです。 返り値はBillインスタンスなので、ドットを使って各フィールドにアクセスできます。

207件の法律案を取得しました
最初の法律案は「地方交付税法及び特別会計に関する法律の一部を改正する法律案」(Bill:s1QZfjoCPyfdXXbrplP3-A)です

またfilter_を引数に渡すことで条件を指定して取得することもできます。詳しくは応用編を見てください。

応用編

GraphQLClientはsgqlcのラッパークラスであり、クエリをコードで組み立てることも可能です。 例えば最初のexecの例のクエリを組み立てると以下のようになります。

from politylink.graphql.schema import Query, _BillFilter, _Neo4jDateTimeInput
from sgqlc.operation import Operation

op = Operation(Query)
filter_ = _BillFilter(None)
filter_.submitted_date = _Neo4jDateTimeInput(year=2020, month=1, day=20)
bills = op.bill(filter=filter_)
bills.name()
client.exec(op)

組み立てたOperationは自動で文字列に変換されるのでexecに直接渡すことができます。

また上で作ったfilter_はget_all_*メソッドの引数として渡すこともできます。

client.get_all_bills(fields=['name'], filter_=filter_)

最初の3件の法律案がBillインスタンスとして取得できました。

[Bill(name='地方交付税法及び特別会計に関する法律の一部を改正する法律案'),
 Bill(name='平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'),
 Bill(name='特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案')]

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

politylink-0.1.51.tar.gz (34.0 kB view hashes)

Uploaded Source

Built Distribution

politylink-0.1.51-py3-none-any.whl (35.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page