GakuNin RDMのAPIを使って、ファイルのアップロードなどを行う

背景 GakuNin RDMのAPIを使って、ファイルのアップロードなどを行う方法の備忘録です。 参考 以下でPAT(パーソナルアクセストークン)の取得方法などを説明しています。 また以下では、OAuth (Open Authorization)を使った方法を紹介しています。Webアプリなどから使用される場合には、こちらが参考になりましたら幸いです。 方法 nbdevを使って、以下のリポジトリを作成しました。 https://github.com/nakamura196/grdm-tools 以下でドキュメントを確認できます。 https://nakamura196.github.io/grdm-tools/ プロバイダ(osfstorage)とフォルダのID(6735a92e6dc8e1001062ac08)は変更する必要がありますが、以下のようなスクリプトにより、特定のフォルダにファイルをアップロードできます。 f i c p f u c r m l r i r l o p i o l l i m o e j e e r n t e _ = n g t t o c p t r k t a f . d o = e _ t " u m s n i h h p _ G = d t l t r o = t o o d s = p a o m . " s d l C e " . : _ s l n y / / f . i v s s / i a e i 8 a f l p n r 6 m i e i t o g p l ( ( n " l e f i . e s i m g . . l p e p r e o t n d _ r ( g m p t ' " . a G n t G R i h r D i , d M . m _ a u C T c r l O . l i K j ) e E p n N / t ' v ) 1 / r e s o u r c e s / { p r o j e c t _ i d } / p r o v i d e r s / o s f s t o r a g e / 6 7 3 5 a 9 2 e 6 d c 8 e 1 0 0 1 0 6 2 a c 0 8 / ? k i n d = f i l e " ソースコードは以下からご確認いただけます。 ...

2024年11月16日 · 2 分 · Nakamura

ArchivematicaのMETSファイルの内容を可視化するPythonライブラリ

概要 ArchivematicaのMETSファイルの内容を可視化するPythonライブラリを作成しました。 例えば以下のように、AIPの作成過程で行われた処理(premis:event)の集計結果などを可視化します。 背景 以下の記事で、ArchivematicaのMETSファイルを人間に優しい方法で探索するためのウェブアプリケーションであるMETSFlaskを紹介しました。 今回作成したものは、このMETSFlaskで提供されている機能を、Flask以外からも利用しやすいようにライブラリ化したものです。 リポジトリ 以下で公開しています。README.mdファイルに使用方法を記載しています。 https://github.com/nakamura196/mets_tools GitHub Pagesでもドキュメントを公開しています。 https://nakamura196.github.io/mets_tools/ まとめ ArchivematicaおよびAIPの利用にあたり、参考になりましたら幸いです。

2024年10月31日 · 1 分 · Nakamura

画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成する

概要 画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成するライブラリを作成しました。 https://github.com/nakamura196/iiif_tei_py 本ライブラリの使用方法を説明します。 使用方法 以下で使い方などを確認できます。 https://nakamura196.github.io/iiif_tei_py/ ライブラリのインストール GitHubのリポジトリから、ライブラリをインストールします。 p i p i n s t a l l h t t p s : / / g i t h u b . c o m / n a k a m u r a 1 9 6 / i i i f _ t e i _ p y GCのサービスアカウントの作成 以下の記事などを参考に、GC(Google Cloud)のサービスアカウントキー(JSONファイル)をダウンロードします。 ...

2024年8月8日 · 37 分 · Nakamura

concurrent.futures.process.BrokenProcessPoolへの対処

概要 nbdevで、nbdev_prepareを実行した際、以下のエラーが発生しました。 concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending. 対処法 以下を事前に実行することで、エラーを回避できました。 e x p o r t O B J C _ D I S A B L E _ I N I T I A L I Z E _ F O R K _ S A F E T Y = Y E S まとめ 同様の事象でお困りの方の参考になりましたら幸いです。 ...

2024年7月18日 · 1 分 · Nakamura

macOSでnbdev使用時のエラー対応

概要 macOSでnbdevを使用した際、以下のエラーが発生しました。 n o o T c b b b r o d j j a n e c c c c v [ [ e u _ 4 4 b r p 8 8 a r r 3 3 c e e 4 4 k n p 8 8 t a ] ] ( . r : : m f e o u + + s t [ [ t u _ _ r _ _ r e N N e s S S c . C C e p F F n r C C t o o o c n n c e s s a s t t l s a a l . n n B t t l r S S a o t t s k r r t e i i ) n n n : P g g r o i i c n n e i i s t t s i i P a a o l l o i i l z z : e e ] ] A m m p a a r y y o c h h e a a s v v s e e i b b n e e e e t n n h e i i n n p r p p o r r c o o e g g s r r s e e s s p s s o o i i l n n w a a a n n s o o t t t h h e e e r r r m i t t n h h a r r t e e e a a d d d a w w b h h r e e u n n p t f f l o o y r r k k w ( ( h ) ) i l w w e a a s s t h c c e a a l l f l l u e e t d d u . . r e W e w a c s a n r n u o n t n i s n a g f e o l r y p c e a n l d l i n i g t . o r i g n o r e i t i n t h e f o r k ( ) c h i l d p r o c e s s . C r a s h i n g i n s t e a d . S e t a b r e a k p o i n t o n o b j c _ i n i t i a l i z e A f t e r F o r k E r r o r t o d e b u g . このエラーへの対応に関する備忘録です。 ...

2024年6月24日 · 3 分 · Nakamura

PyPIでtwo factor auth enabled...への対応

概要 PyPIで2要素認証が義務化されます。 https://blog.pypi.org/posts/2023-05-25-securing-pypi-with-2fa/ そのため2要素認証の設定を行った上でアップロードを試みたところ、以下のエラーが生じました。 U 1 W E p 0 A R l 0 R R o % N O a I R d ━ N i ━ G n ━ g ━ ━ E H U u x ━ r T s p x ━ r T e l x ━ o P r o x ━ r E a . ━ r < d w ━ d r ア h ━ u o カ i l ━ r r ウ n ━ i : ン ━ n ト p ━ g 4 名 l ━ 0 > a ━ u 1 c ━ p h e ━ l U a ━ o n s o ━ a a f ━ d u t ━ . t w p ━ h o a ━ R o s ━ e r f s ━ t i a w ━ r z c o ━ y e t r ━ d o d ━ w r . ━ i f ━ t r a ━ h o u ━ m t ━ t h ━ h h ━ e t e ━ t n p a 2 s b 2 v : l . e / e 2 r / d / b u , 2 o p 2 s l a . e o n 2 a o d A k p . P B t p I i y • o p T n i o 0 . k 0 f o e : o r n 0 r g 0 / o m l r • o e r g T 6 e a r 5 c u . d y s 2 e / t t e M a d B i / l P s s u . b l i s h e r m u s t b e u s e d t o 対策 ~/.pypircを以下のように設定していました。 ...

2023年9月20日 · 2 分 · Nakamura

nbdevを使用する際の備忘録

概要 Pythonでパッケージを作成する際、nbdevを使用しています。 https://nbdev.fast.ai/ nbdevは以下のように説明されています。 Write, test, document, and distribute software packages and technical articles — all in one place, your notebook. (機械翻訳) ソフトウェア パッケージや技術記事の作成、テスト、文書化、配布をすべて 1 か所のノートブックで行います。 本記事では、nbdevを使用する際の備忘録です。 インストール 以下のチュートリアルのページが参考になります。 https://nbdev.fast.ai/tutorials/tutorial.html 以下、かいつまんで流れを説明します。 関連するツールをインストールした後、GitHubリポジトリを作成し、クローンした先で以下を実行します。 n b d e v _ n e w その後、以下も実行しておきます。 n b d e v _ i n s t a l l _ h o o k s そしてnbsフォルダの中の00_core.ipynbなどを編集して、本ノートブックの最後のセルにある以下を実行します。 ...

2023年3月15日 · 2 分 · Nakamura

Omeka SのREST APIとやりとりするためのPythonパッケージ

概要 Omeka SのREST APIをPythonから操作可能なパッケージが開発されています。 https://github.com/wragge/omeka_s_tools さらに、上記のリポジトリをベースとして、いくつかの機能追加を行なったリポジトリを作成しています。 https://github.com/nakamura196/omeka_s_tools2 本稿では、このリポジトリについて紹介します。 使い方 以下のページを参考にしてください。 https://nakamura196.github.io/omeka_s_tools2/ 本リポジトリはnbdevを用いて開発されており、パッケージの開発とドキュメンテーションを並行して行うことができ、便利な仕組みだと感じました。 追加開発した機能 IIIF画像URLの登録機能 Omeka SではIIIF画像URLの登録機能がありますが、本モジュールではこの登録機能が未実装でした。以下のように、IIIF画像URLの登録を行うメソッドを追加しました。 https://nakamura196.github.io/omeka_s_tools2/api.html#omekaapiclient.add_iiif_to_item アイテムセットの追加機能 本モジュールではアイテムセットの登録機能が未実装でした。以下のように、アイテムセットの登録を行うメソッドを追加しました。 https://nakamura196.github.io/omeka_s_tools2/api.html#adding-item-sets まとめ 今後追加開発していく機能については、いずれ本家のリポジトリに統合できればと考えています。 また今回開発した機能の使用例について、別の記事で紹介したいと思います。 具体的には、IIIFマニフェストファイルを入力データとして、そこに含まれる画像データを本モジュールを用いてOmeka Sに機械的に登録し、さらにScriptoを用いることで、それらの画像データに対する翻刻環境を作成する、といったことが可能になります。

2022年11月7日 · 1 分 · Nakamura