インストール
pip install politylink
politylink.nlp.keyphraseを使用する場合は、追加で以下を実行してください。
pip install git+https://github.com/boudinfl/pke.git
python -m nltk.downloader stopwords
使い方
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='特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案')]
Metadata
Release files for politylink 0.1.90
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| politylink-0.1.90.tar.gz | 46.2 kB | Without provenance | Details for politylink-0.1.90.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| politylink-0.1.90-py3-none-any.whl | Python 3 | none | any | Details for politylink-0.1.90-py3-none-any.whl |
Total release size: 95.8 kB
Release files / politylink-0.1.90.tar.gz
| Download URL | politylink-0.1.90.tar.gz |
|---|---|
| Size | 46.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e28193c229cd406557ca5cd017f50f496af121b39ca0a2ae862f393a8edf804f
|
|
BLAKE2b-256 checksum How to use checksums |
936705f26f54c0db38311632147ef665ca6ecb741bcf69ad20b000fb84db6a6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.13 CPython/3.9.12 Darwin/21.4.0
|
Release files / politylink-0.1.90-py3-none-any.whl
| Download URL | politylink-0.1.90-py3-none-any.whl |
|---|---|
| Size | 49.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a89dcf6bd06831adca94b8a45a52d2eaa8dab032216047b9d41befcaa2982d1f
|
|
BLAKE2b-256 checksum How to use checksums |
547bdf24e9182918b7e84b80fcbcd03abafdbc23c05794e4e69ff2eac33dae35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.13 CPython/3.9.12 Darwin/21.4.0
|
Security for politylink 0.1.90
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.