Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

Native SDK for Python のクイック・リファレンス

これは、InterSystems IRIS Native SDK for Python のクイック・リファレンスで、以下のクラスに関する情報を提供します。

  • パッケージ iris

    • iris Package のメソッドIRIS のインスタンスを接続および作成します。

    • クラス IRIS は、Native SDK の主なエントリ・ポイントです。

    • クラス IRISConnection は、IRIS インスタンスをデータベースに接続します。

    • クラス IRISList は、インターシステムズの $LIST シリアライゼーションをサポートします。

    • クラス iris.IRISGlobalNode は、グローバル配列を操作します。

    • クラス iris.IRISGlobalNodeView は、子ノードのディクショナリのようなビューです。

    • クラス IRISReference は、メソッドの引数を参照渡しします。

    • クラス IRISObject は、外部サーバの逆プロキシ・オブジェクトのためのメソッドを提供します。

型キャスト・メソッドおよびサポートされるデータ型

Native SDK では、データ型 boolbytesbytearrayDecimalfloatintstrIRISList、および None がサポートされます。

多くの場合、クラスには、既定の値タイプを返す汎用メソッド (多くの場合 get() と呼ばれる) に加えて、その汎用メソッドとまったく同じように機能するだけでなく、返り値を特定のデータ型にキャストする一連の型キャスト・メソッドが含まれます。例えば、IRIS.get() の後ろには、getBoolean()getBytes() といった型キャスト・メソッドが続きます。

ほぼ同じリストを多数提示することでこのクイック・リファレンスが長くならないように、すべての型キャスト・メソッドを汎用バージョン (IRIS.get() 型キャスト・メソッドなど) の後にひとまとめにして示しています。

一連の型キャスト・メソッドは、IRIS.classMethodValue()IRIS.function()IRIS.get()IRISList.get()IRISObject.get()IRISObject.invoke()、および IRISReference.getValue() で使用できます。

iris パッケージのメソッド

iris パッケージには、接続を作成するためのメソッド connect()、およびその接続を使用するクラス IRIS の新しいインスタンスを作成するためのメソッド createIris() が含まれています。Native SDK を使用するには、接続された iris.IRIS のインスタンスが必要です。

Python での接続の作成

以下のコードは、データベース接続を開き、irispy. という名前の iris.IRIS のインスタンスを作成する方法を示しています。このドキュメントのほとんどの例で、接続済みの irispy のインスタンスが既に存在すると想定しています。

import iris

# Open a connection to the server
args = {'hostname':'127.0.0.1', 'port':52773,
    'namespace':'USER', 'username':'_SYSTEM', 'password':'SYS'
}
conn = iris.connect(**args)
# Create an iris object
irispy = iris.createIRIS(conn)

iris.connect() および iris.createIRIS() の詳細は、以下のセクションを参照してください。

iris パッケージのメソッドの詳細

connect()

iris.connect() は、新しい IRISConnection オブジェクトを返し、データベースへの新規接続の作成を試みます。このオブジェクトは、接続が成功すると開かれます。接続を確立できないと、例外がスローされます。

  iris.connect(hostname,port,namespace,username,password,timeout,sharedmemory,logfile)
  iris.connect(connectionstr,username,password,timeout,sharedmemory,logfile)

最後に成功した接続試行の hostnameportnamespacetimeout、および logfile が接続オブジェクトのプロパティとして保存されます。

パラメータ :

パラメータは位置またはキーワードによって渡すことができます。

  • hostname — サーバ URL を指定する str

  • port — スーパーサーバ・ポート番号を指定する int

  • namespace — ネームスペース・サーバを指定する str

  • 以下のパラメータを、hostnameport、および namespace の引数の代わりに使用できます。

    • connectionstrhostname:port/namespace の形式の str

  • username — ユーザ名を指定する str

  • password — パスワードを指定する str

  • timeout (オプション) — 接続試行時に待機する最大ミリ秒数を指定する int既定値は 10000 です。

  • sharedmemory (オプション) — boolTrue に指定すると、ホスト名が localhost または 127.0.0.1 の場合に共有メモリ接続を試行します。False に指定すると、TCP/IP 経由の接続を強制します。既定値は True です。

  • logfile (オプション) — クライアント側のログ・ファイル・パスを指定する strパスの最大長は、255 文字の ASCII 文字です。

createIRIS()

iris.createIRIS() は、指定された IRISConnection を使用する IRIS の新規インスタンスを返します。接続が閉じられている場合は、例外をスローします。

    iris.createIRIS(conn)

返り値 : iris. の新しいインスタンスIRIS

パラメータ :

  • conn — サーバ接続を提供する IRISConnection オブジェクト

クラス iris.IRIS

Native SDK を使用するには、アプリケーションで、データベースに接続された IRIS のインスタンスを作成する必要があります。IRIS のインスタンスは、iris パッケージのメソッド createIris() を呼び出すことによって作成されます。

IRIS メソッドの詳細

classMethodValue()

IRIS.classMethodValue() は、クラス・メソッドを呼び出して、0 個以上の引数を渡し、ObjectScript の返り値のデータ型に対応するタイプとして値を返します。ObjectScript の返り値が空の文字列 ($$$NULLOREF) の場合は、None を返します。詳細と例は、“Python からのクラス・メソッドの呼び出し” を参照してください。

  classMethodValue (className, methodName, args)

返り値 : boolbytesbytearrayintfloatDecimalstrIRISList、または None。特定のタイプを返す方法は、"classMethodValue() 型キャスト・メソッド" を参照してください。

パラメータ :

  • class_name — 呼び出されるメソッドが属するクラスの完全修飾名。

  • method_name — クラス・メソッドの名前。

  • *args — 0 個以上のメソッド引数。タイプが boolbytesDecimalfloatintstr、および IRISList の引数は、リテラルとして投影されます。その他のタイプはすべて、プロキシ・オブジェクトとして投影されます。

classMethodValue() に似ていて値を返さない "classMethodVoid()" も参照してください。

classMethodValue() 型キャスト・メソッド

以下に示す IRIS.classMethodValue() 型キャスト・メソッドのすべてが、IRIS.classMethodValue() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。ObjectScript の返り値が空の文字列 ($$$NULLOREF) の場合、これらはすべて None を返します。詳細と例は、“Python からのクラス・メソッドの呼び出し” を参照してください。

  classMethodBoolean (className, methodName, args)
  classMethodBytes (className, methodName, args)
  classMethodDecimal (className, methodName, args)
  classMethodFloat (className, methodName, args)
  classMethodInteger (className, methodName, args)
  classMethodIRISList (className, methodName, args)
  classMethodString (className, methodName, args)
  classMethodObject (className, methodName, args)

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • class_name — 呼び出されるメソッドが属するクラスの完全修飾名。

  • method_name — クラス・メソッドの名前。

  • *args — サポートされるタイプの 0 個以上のメソッド引数。タイプが boolbytesDecimalfloatintstr、および IRISList の引数は、リテラルとして投影されます。その他のタイプはすべて、プロキシ・オブジェクトとして投影されます。

classMethodValue() に似ていて値を返さない "classMethodVoid()" も参照してください。

classMethodVoid()

IRIS..classMethodVoid() は、返り値のない ObjectScript クラス・メソッドを呼び出し、0 個以上の引数を渡します。詳細と例は、“Python からのクラス・メソッドの呼び出し” を参照してください。

   classMethodVoid (className, methodName, args) 

パラメータ :

  • class_name — 呼び出されるメソッドが属するクラスの完全修飾名。

  • method_name — クラス・メソッドの名前。

  • *args — サポートされるタイプの 0 個以上のメソッド引数。タイプが boolbytesDecimalfloatintstr、および IRISList の引数は、リテラルとして投影されます。その他のタイプはすべて、プロキシ・オブジェクトとして投影されます。

このメソッドは、返り値がないことを想定していますが、任意のクラス・メソッドの呼び出しに使用できます。classMethodVoid() を使用して、値を返すメソッドを呼び出した場合、メソッドは実行されますが、返り値は無視されます。

close()

IRIS..close()IRIS オブジェクトを閉じます。

  close () 
function()

IRIS.function() は、関数を呼び出して、0 個以上の引数を渡し、ObjectScript の返り値のデータ型に対応するタイプとして値を返します。ObjectScript の返り値が空の文字列 ($$$NULLOREF) の場合は、None を返します。詳細と例は、“Python からの関数とプロシージャの呼び出し” を参照してください。

  function (functionName, routineName, args) 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None。特定のタイプを返す方法は、"function() 型キャスト・メソッド" を参照してください。

パラメータ :

  • function_name — 呼び出す関数の名前。

  • routine_name — 関数を含むルーチンの名前。

  • *args — サポートされるタイプの 0 個以上のメソッド引数。タイプが boolbytesDecimalfloatintstr、および IRISList の引数は、リテラルとして投影されます。その他のタイプはすべて、プロキシ・オブジェクトとして投影されます。

function() に似ていて値を返さない "procedure()" も参照してください。

function() 型キャスト・メソッド

以下に示す IRIS.function() 型キャスト・メソッドのすべてが、IRIS.function() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。ObjectScript の返り値が空の文字列 ($$$NULLOREF) の場合、これらはすべて None を返します。詳細と例は、“Python からの関数とプロシージャの呼び出し” を参照してください。

  functionBoolean (functionName, routineName, args)
  functionBytes (functionName, routineName, args)
  functionDecimal (functionName, routineName, args)
  functionFloat (functionName, routineName, args)
  functionInteger (functionName, routineName, args)
  functionIRISList (functionName, routineName, args)
  functionString (functionName, routineName, args)
  functionObject (functionName, routineName, args) 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • function_name — 呼び出す関数の名前。

  • routine_name — 関数を含むルーチンの名前。

  • *args — サポートされるタイプの 0 個以上のメソッド引数。タイプが boolbytesDecimalfloatintstr、および IRISList の引数は、リテラルとして投影されます。その他のタイプはすべて、プロキシ・オブジェクトとして投影されます。

function() に似ていて値を返さない "procedure()" も参照してください。

get()

IRIS.get() は、プロパティの ObjectScript データ型に対応するタイプとしてグローバル・ノードの値を返します。ノードが空の文字列であるか、値がないか、またはノードが存在しない場合は、None を返します。

  get (globalName, subscripts) 

返り値 : boolbytesintfloatDecimalstrIRISListObject、または None。他のタイプを返す方法は、"get() 型キャスト・メソッド" を参照してください。

パラメータ :

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

get() 型キャスト・メソッド

以下に示す IRIS.get() 型キャスト・メソッドのすべてが、IRIS.get() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。ノードが空の文字列であるか、値がないか、またはノードが存在しない場合は、これらすべてのメソッドが None を返します。

  getBoolean (globalName, subscripts)
  getBytes (globalName, subscripts)
  getDecimal (globalName, subscripts)
  getFloat (globalName, subscripts)
  getInteger (globalName, subscripts)
  getIRISList (globalName, subscripts)
  getString (globalName, subscripts)
  getObject (globalName, subscripts)

返り値 : boolbytesintfloatDecimalstrIRISListObject、または None

パラメータ :

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

非推奨の型キャスト・メソッド "getLong()" も参照してください。

getAPIVersion() [static]

IRIS.getAPIVersion() は、このバージョンの Native SDK のバージョン文字列を返します。"getServerVersion()" も参照してください。

  getAPIVersion () 

返り値 : str

getLong() [非推奨]

IRIS.getLong()。Python long 型は、Python 3 で不要になりました。同じ精度をサポートする IRIS.get() 型キャスト・メソッド getInteger() を使用してください。

getServerVersion()

IRIS.getServerVersion() は、現在接続されている InterSystems IRIS サーバのバージョン文字列を返します。"getAPIVersion()" も参照してください。

  getServerVersion () 

返り値 : str

getTLevel()

IRIS.getTLevel() は、セッションで現在開いている入れ子になったトランザクションの数を返します (現在のトランザクションが入れ子になっていない場合は 1、開いているトランザクションがない場合は 0)。これは、ObjectScript $TLEVEL 特殊変数の値のフェッチと同じです。詳細と例は、“Python でのトランザクションの処理” を参照してください。

  getTLevel () 

返り値 : int

increment()

IRIS.increment() は、value 引数だけグローバル・ノードをインクリメントして、グローバル・ノードの新しい値を返します。指定されたアドレスに既存のノードがない場合は、指定した値で新しいノードが作成されます。このメソッドはきわめて高速のスレッドセーフなアトミック処理を使用して、ノードの値を変更します。したがって、ノードは決してロックされません。詳細と例は、“Python でのトランザクションの処理” を参照してください。

  increment (value, globalName, subscripts) 

返り値 : float

パラメータ :

  • value — インクリメントする int または float の数値

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

$INCREMENT は通常、新しいエントリをデータベースに追加する前に、カウンタをインクリメントするために使用します。$INCREMENT を使用すると、LOCK コマンドを使用しなくても、この操作を迅速に行うことができます。"ObjectScript リファレンス" の “$INCREMENT とトランザクション処理” を参照してください。

isDefined()

IRIS.isDefined() は、ノードが値、子ノード、またはその両方を持つかどうかを示す値を返します。

  isDefined (globalName, subscripts)

返り値 : 以下のいずれかの int

  • 0 : ノードが存在しない場合

  • 1 : ノードに値はあるが、子ノードがない場合

  • 10 : ノードに値はないが、1 つ以上の子ノードがある場合

  • 11 : ノードに値と子ノードの両方がある場合

パラメータ :

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

iterator() [非推奨]

IRIS.iterator() は非推奨です。代わりに node() を使用してください。既存のアプリケーションで継続使用される機能の詳細は、"クラス iris.LegacyIterator" を参照してください。

kill()

IRIS.kill() は、指定されたグローバル・ノードとそのすべてのサブノードを削除します。指定されたアドレスにノードがない場合、このコマンドは何も行いません。<UNDEFINED> 例外はスローされません。

  kill (globalName, subscripts) 

パラメータ :

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

lock()

IRIS.lock() は、グローバルをロックします。このメソッドは増分ロックを実行します (前のロックをすべてアンロックする場合は、まず releaseAllLocks() メソッドを呼び出す必要があります)。ロックの取得を待機中に timeout 値に到達した場合は、<TIMEOUT> 例外がスローされます。詳細は、“Python による並列処理の制御” を参照してください。

  lock (lock_mode, timeout, lock_reference, subscripts) 

パラメータ :

  • lock_mode — 次のいずれかの文字列 : 共有ロックの場合は "S"、エスカレート・ロックの場合は "E"、両方の場合は "SE"、どちらでもない場合は ""。空の文字列が既定モードです (非共有または非エスカレート)。

  • timeout — ロックの取得を待機する秒数

  • lock_reference — 曲折アクセント記号 (^) で始まり、その後にグローバル名が続く文字列 (例えば、単なる myGlobal ではなく ^myGlobal)。

    注意 : ほとんどのメソッドで使用される global_name パラメータとは異なり、lock_reference パラメータには先頭に曲折アクセント記号を付ける必要がありますglobal_name ではなく lock_reference を使用するのは、lock() および unlock() のみです。

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

ロックの詳細は、"ObjectScript リファレンス" の “LOCK” を参照してください。

nextSubscript()

IRIS.nextSubscript() は、ノード・アドレスを受け入れ、照合順で次の兄弟ノードの添え字を返します。指定された方向にノードがそれ以上見つからない場合は None が返されます。このメソッドは、ObjectScript の $ORDER と同様です。

  nextSubscript (reversed, globalName, subscripts) 

返り値 : bytesintstr、または float (指定された方向の次の添え字)

パラメータ :

  • reversed — ブーリアン値 true は、ノードを逆方向の照合順に走査する必要があることを示します。

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

"node()" も参照してください。これは、指定されたノードの子を反復処理するオブジェクトを返します (指定されたノードと同じレベルのノードに対する反復処理を可能にする nextSubscript() とは異なります)。

node()

IRIS.node() は、指定されたノードの子に対する反復処理を可能にする IRISGlobalNode オブジェクトを返します。IRISGlobalNode は、グローバル・ノードの直接の子を表す仮想ディクショナリのように動作します。これは、反復処理、逆の操作、インデックス付け、およびスライスが可能です。

def  node (self, globalName, subscripts) 

パラメータ :

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

"nextSubscript()" も参照してください。これを使用すると、指定されたノードと同じレベルのノードを反復処理できます (指定されたノードの子を反復処理する node() とは異なります)。

procedure()

IRIS.procedure() は ObjectScript プロシージャまたは関数を呼び出して、0 個以上の引数を渡し、何も返しません (IRIS.function() も参照)。詳細と例は、“Python からの関数とプロシージャの呼び出し” を参照してください。

  procedure (procedureName, routineName, args) 

パラメータ :

  • procedureName — 呼び出すプロシージャの名前。

  • routine_name — プロシージャを含むルーチンの名前。

  • *args — 0 個以上のメソッド引数。タイプが boolbytesDecimalfloatintstr、および IRISList の引数は、リテラルとして投影されます。その他のタイプはすべて、プロキシ・オブジェクトとして投影されます。

このメソッドは、返り値がないことを想定していますが、任意の関数の呼び出しに使用できます。procedure() を使用して、値を返す関数を呼び出した場合、関数は実行されますが、返り値は無視されます。

releaseAllLocks()

IRIS..releaseAllLocks() は、セッションに関連付けられたすべてのロックを解放します。詳細は、“Python による並列処理の制御” を参照してください。

  releaseAllLocks () 
set()

IRIS.set()は、value を現在のノード値として割り当てます。新しい値は、boolbytesbytearrayDecimalfloatintstr、または IRISList のいずれかです。

  set (value, globalName, subscripts) 

パラメータ :

  • value — グローバル・ノードの新しい値

  • global_name — グローバル名

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

tCommit()

IRIS..tCommit() は、現在のトランザクションをコミットします。詳細と例は、“Python でのトランザクションの処理” を参照してください。

  tCommit () 
tRollback()

IRIS..tRollback() は、セッション内の開いているトランザクションすべてをロールバックします。詳細と例は、“Python でのトランザクションの処理” を参照してください。

  tRollback () 
tRollbackOne()

IRIS..tRollbackOne() は、現在のレベルのトランザクションのみをロールバックします。これは入れ子になったトランザクションを対象としており、呼び出し元が 1 レベルのみをロールバックする場合に使用します。入れ子になったトランザクションである場合、それより上のレベルのトランザクションはロールバックされません。詳細と例は、“Python でのトランザクションの処理” を参照してください。

  tRollbackOne () 
tStart()

IRIS.tStart() は、トランザクションを開始するか、開きます。詳細と例は、“Python でのトランザクションの処理” を参照してください。

  tStart () 
unlock()

IRIS.unlock() は、指定されたロックのロック・カウントをデクリメントし、ロック・カウントが 0 の場合はアンロックします。共有ロックまたはエスカレート・ロックを削除するには、適切な lockMode を指定する必要があります (共有ロックの場合は "S"、エスカレート・ロックの場合は "E")。 詳細は、“Python による並列処理の制御” を参照してください。

  unlock (lock_mode, lock_reference, subscripts) 

パラメータ :

  • lock_mode — 次のいずれかの文字列 : 共有ロックの場合は "S"、エスカレート・ロックの場合は "E"、両方の場合は "SE"、どちらでもない場合は ""。空の文字列が既定モードです (非共有または非エスカレート)。

  • lock_reference — 曲折アクセント記号 (^) で始まり、その後にグローバル名が続く文字列 (例えば、単なる myGlobal ではなく ^myGlobal)。

    注意 : ほとんどのメソッドで使用される global_name パラメータとは異なり、lock_reference パラメータには先頭に曲折アクセント記号を付ける必要がありますglobal_name ではなく lock_reference を使用するのは、lock() および unlock() のみです。

  • *subscripts — ターゲット・ノードを指定する 0 個以上の添え字

クラス iris.IRISList

クラス iris.IRISList は、インターシステムズの $LIST シリアライゼーションのための Python インタフェースを実装します。IRISList は、Native SDK でサポートされるタイプです (“型キャスト・メソッドおよびサポートされるデータ型” を参照)。

IRISList コンストラクタ

IRISList コンストラクタは、以下のパラメータを取ります。

  IRISList(buffer = None, locale = "latin-1", is_unicode = True, compact_double = False)

パラメータ :

  • buffer — オプションのリスト・バッファ。IRISList のインスタンスまたは $LIST 形式のバイト配列 (IRIS.getBytes() などの Native SDK メソッドから返されます) のいずれかです。

  • locale — バッファのロケール設定を示すオプションの str

  • is_unicode — バッファが Unicode かどうかを示すオプションの bool

  • compact_double — Compact Double が有効になっているかどうかを示すオプションの bool

IRISList のインスタンスは以下の方法で作成できます。

  • 空の IRISList を作成する

      list = IRISList()
    
  • 別の IRISList のコピーを作成する

      listcopy = IRISList(myOtherIRISList)
    
  • IRIS.getBytes() やその他さまざまな iris メソッドから返されたものなど、$LIST 形式のバイト配列からインスタンスを構築する

      globalBytes = myIris.getBytes("myGlobal",1)
      listFromByte = IRISList(globalBytes)
    

iris パッケージ内の多くのメソッドは、Native SDK でサポートされるタイプの 1 つである IRISList を返します。

IRISList メソッドの詳細

add()

IRISList.add() は、IRISList の末尾に値を追加して、その IRISList オブジェクトを返します。

  add (value) 

返り値 : self (IRISList オブジェクト)

パラメータ :

  • value — いずれかのサポート対象タイプの値、または値の配列かコレクション。配列またはコレクションの各要素は、個別に追加されます。IRISList のインスタンスは、常に単一要素として追加されます。

add() メソッドが IRISList の 2 つのインスタンスを連結することはありません。ただし、IRISList.toArray() を使用して、IRISList を配列に変換できます。結果として生成される配列で add() を呼び出すと、各要素が個別に追加されます。

clear()

IRISList.clear() は、リストからすべての要素を削除することでリストをリセットして、その IRISList オブジェクトを返します。

  clear () 

返り値 : self (IRISList オブジェクト)

count()

IRISList.count() は、リスト内のデータ要素の数を返します。

  count () 

返り値 : int

equals()

IRISList.equals() は、指定された irislist2IRISList のこのインスタンスと比較し、それらが同一である場合に true を返します。同じであるためには、両方のリストに、同じ数の要素が同じ順序で、シリアライズされた同一の値で含まれている必要があります。

  equals (irislist2) 

返り値 : bool

パラメータ :

  • irislist2 — 比較する IRISList のインスタンス。

get()

IRISList.get() は、リストのカーソルを指定された index に移動し (指定されている場合)、カーソル位置にある要素を Object として返します。インデックスが範囲外の場合 (1 未満であるか、リストの末尾を越えている)、IndexOutOfBoundsException をスローします。以下の場合、None を返します。

  get (index) 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • index — 新しいカーソル位置のインデックス (1 が基点) を指定するオプションの int

get() 型キャスト・メソッド

以下に示す IRISList.get() 型キャスト・メソッドのすべてが、IRISList.get() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。インデックスが範囲外の場合 (1 未満であるか、リストの末尾を越えている)、これらはすべて IndexOutOfBoundsException をスローします。

  getBoolean (index)
  getBytes (index)
  getDecimal (index)
  getFloat (index)
  getInteger (index)
  getIRISList (index)
  getString (index) 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • index — 新しいカーソル位置のインデックス (1 が基点) を指定するオプションの int

remove()

IRISList.remove() は、リストの index にある要素を削除して、その IRISList オブジェクトを返します。

  remove (index) 

返り値 : self (IRISList オブジェクト)

パラメータ :

  • index — 削除する要素のインデックス (1 が基点) を指定する int

set()

IRISList.set() は、index にあるリスト要素を value に置き換えて、その IRISList オブジェクトを返します。

value が配列である場合、各配列要素が index の位置から開始してリストに挿入されます。index の後にある既存のリスト要素は、新しい値の場所を確保するために移動されます。

index がリストの末尾より後にある場合、valueindex に格納され、リストはその位置まで NULL で埋められます。index が 1 未満の場合は、IndexOutOfBoundsException をスローします。

  set (index, value) 

返り値 : self (IRISList オブジェクト)

パラメータ :

  • index — 設定するリスト要素のインデックス (1 が基点) を指定する int

  • valueindex に挿入する Object 値または Object 配列。オブジェクトはサポートされているどのタイプでもかまいません。

size()

IRISList.size() は、この IRISList のシリアライズされた値のバイト長を返します。

  size () 

返り値 : int

クラス iris.IRISConnection

IRISConnection のインスタンスは、パッケージのメソッド iris.connect() を呼び出すことによって作成されます。接続の作成および使用の詳細は、“iris パッケージのメソッド” を参照してください。

close()

IRISConnection.close() は、iris インスタンスの接続を閉じます (開かれている場合)。接続が既に閉じられている場合は、何もしません。

   connection.close()

返り値 : self

isClosed()

IRISConnection.isClosed() は、接続が成功すると True を返し、それ以外の場合は False を返します。

   connection.isClosed()

返り値 : bool

isUsingSharedMemory()

IRISConnection.isUsingSharedMemory() は、接続が開かれていて共有メモリが使用されている場合、True を返します。

   connection.isUsingSharedMemory()

返り値 : bool

プロパティ

最後に成功した接続試行の hostnameportnamespacetimeout、および logfile が接続オブジェクトのプロパティとして保存されます。

クラス iris.IRISObject

クラス iris.IRISObject は、外部サーバの逆プロキシ・オブジェクトを操作するためのメソッドを提供します (詳細と例は、“Python からのデータベース・オブジェクトの制御” を参照)。

呼び出されたメソッドまたは関数が、有効な OREF であるオブジェクトを返した場合、参照オブジェクトの逆プロキシ・オブジェクト (IRISObject のインスタンス) が生成されて返されます。例えば、classMethodObject() は、%New() によって作成されたオブジェクトのプロキシ・オブジェクトを返します。

IRISObject コンストラクタ

IRISObject コンストラクタは、以下のパラメータを取ります。

  IRISObject(connection, oref)

パラメータ :

  • connectionIRISConnection オブジェクト

  • oref — 制御するデータベース・オブジェクトの OREF

IRISObject メソッドの詳細

close()

IRISObject.close() は、IRISObject のこのインスタンスを解放します。

  close () 

返り値 : self

get()

IRISObject.get() は、プロキシ・オブジェクトのプロパティ値をフェッチします。IRIS の空の文字列 ($$$NULLOREF) の場合に None を返し、それ以外の場合は、プロパティの ObjectScript データ型に対応するタイプの変数を返します。

  get (propertyName)  

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • property_name — 返されるプロパティの名前。

get() 型キャスト・メソッド

以下に示す IRISObject.get() 型キャスト・メソッドのすべてが、IRISObject.get() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。これらはすべて、IRIS の空の文字列 ($$$NULLOREF) の場合に None を返し、それ以外の場合は、指定されたタイプの値を返します。

  getBoolean (propertyName)
  getBytes (propertyName)
  getDecimal (propertyName)
  getFloat (propertyName)
  getInteger (propertyName)
  getIRISList (propertyName)
  getString (propertyName)
  getObject (propertyName)

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • property_name — 返されるプロパティの名前。

getConnection()

IRISObject.getConnection() は、現在の接続を IRISConnection オブジェクトとして返します。

  getConnection ()

返り値 : IRISConnection オブジェクト

getOREF()

IRISObject.getOREF() は、この IRISObject にマップされているデータベース・オブジェクトの OREF を返します。

  getOREF ()

返り値 : OREF

invoke()

IRISObject.invoke() は、オブジェクトのインスタンス・メソッドを呼び出して、プロパティの ObjectScript データ型に対応するタイプの変数を返します。

  invoke (methodName, args) 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • method_name — 呼び出されるインスタンス・メソッドの名前。

  • *args — サポートされるタイプの 0 個以上の引数。

invoke() に似ていて値を返さない "invokeVoid()" も参照してください。

invoke() 型キャスト・メソッド

以下に示す IRISObject.invoke() 型キャスト・メソッドのすべてが、IRISObject.invoke() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。これらはすべて、IRIS の空の文字列 ($$$NULLOREF) の場合に None を返し、それ以外の場合は、指定されたタイプの値を返します。

  invokeBoolean (methodName, args)
  invokeBytes (methodName, args)
  invokeDecimal (methodName, args)
  invokeFloat (methodName, args)
  invokeInteger (methodName, args)
  invokeIRISList (methodName, args)
  invokeString (methodName, args)
  invokeObject (methodName, args) 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

パラメータ :

  • method_name — 呼び出されるインスタンス・メソッドの名前。

  • *args — サポートされるタイプの 0 個以上の引数。

invoke() に似ていて値を返さない "invokeVoid()" も参照してください。

invokeVoid()

IRISObject.invokeVoid() は、オブジェクトのインスタンス・メソッドを呼び出しますが、値は返しません。

  invokeVoid (methodName, args) 

パラメータ :

  • method_name — 呼び出されるインスタンス・メソッドの名前。

  • *args — サポートされるタイプの 0 個以上の引数。

set()

IRISObject.set() は、プロキシ・オブジェクトのプロパティを設定します。

  set (propertyName, propertyValue)

パラメータ :

  • property_namevalue が割り当てられるプロパティの名前。

  • value — 割り当てるプロパティ値。値はサポートされているどのタイプでもかまいません。

クラス iris.IRISReference

iris.IRISReference クラスは、データベースのクラス・メソッドを呼び出す際に、参照渡し引数を使用できるようにします。詳細と例は、“引数の参照渡し” を参照してください。

IRISReference コンストラクタ

IRISReference コンストラクタは、以下のパラメータを取ります。

  IRISReference(value, type = None)

パラメータ :

  • value — 参照される引数の初期値。

  • type — 引数の変更された値のマーシャリング解除にタイプ・ヒントとして使用されるオプションの Python タイプ。サポートされるタイプは、boolbytesbytearrayDecimalfloatintstrIRISList、または None です。None が指定されている場合、元のデータベース・タイプに一致するタイプが使用されます。

IRISReference メソッドの詳細

get_type() [非推奨]

IRISReference.get_type() は非推奨です。目的のタイプの返り値を得るには、getValue() 型キャスト・メソッドのいずれかを使用してください。

  get_type () 
get_value() [非推奨]

IRISReference.get_value() は非推奨です。代わりに、getValue() または getObject() 型キャスト・メソッドを使用してください。

getValue()

IRISReference.getValue() は、参照されたパラメータの値を、データベース値のデータ型に対応するタイプとして返します。

  getValue () 

返り値 : 参照されたパラメータの値

getValue() 型キャスト・メソッド

以下に示す IRISReference.getValue() 型キャスト・メソッドのすべてが、IRISReference.getValue() とまったく同じように機能するだけでなく、返り値を特定のタイプにキャストします。

  getBoolean ()
  getBytes ()
  getDecimal ()
  getFloat ()
  getInteger ()
  getIRISList ()
  getString ()
  getObject () 

返り値 : boolbytesbytearrayintfloatDecimalstrIRISListObject、または None

set_type() [非推奨]

IRISReference.set_type() は非推奨です。IRISReference コンストラクタを呼び出す際は、タイプを設定するオプションがあります。

  set_type (type) 
setValue()

IRISReference.setValue() は、参照される引数の値を設定します。

  setValue (value) 

パラメータ :

  • value — この IRISReference オブジェクトの値

set_value() [非推奨]

IRISReference.set_value() は非推奨です。代わりに setValue() を使用してください。

クラス iris.IRISGlobalNode

IRISGlobalNode は、グローバル・ノードの直接の子を表す仮想ディクショナリのように動作する反復処理可能なインタフェースを提供します。これは、反復処理、スライス、逆の操作、インデックス付けが可能で、ビューおよびメンバシップ・テストをサポートします。

  • IRISGlobalNode では、反復処理可能なインタフェースがサポートされています。

    例えば、以下の for ループは、すべての子ノードの添え字を一覧表示します。

    for x in node:
        print(x)
    
  • IRISGlobalNode では、ビューがサポートされています。

    メソッド keys()subscripts()values()items()、および nodes() は、IRISGlobalNodeView ビュー・オブジェクトを返します。これらは、それぞれのデータを生成するために反復処理可能な、IRISGlobalNode エントリに関する特定のビューを提供します。また、メンバシップ・テストをサポートします。例えば、items() メソッドは、添え字と値のペアのリストが含まれるビュー・オブジェクトを返します。

    for sub, val in node.items():
        print('subscript:',sub,' value:', val)
    
  • IRISGlobalNode は、スライス可能です。

    標準の Python スライス構文を使用して、IRISGlobalNode を添え字のより制限された範囲に対して反復処理できます。

    node[start:stop:step]
    
    

    これにより、start (含まれる) から stop (含まれない) までに限定された添え字範囲を持つ新しい IRISGlobalNode オブジェクトが作成されます。step は、1 または -1 で、前方向または逆方向の走査を意味します。

  • IRISGlobalNode は、逆向きの処理が可能です。

    スライス構文で "step" 変数が -1 の場合、IRISGlobalNode は、標準の順序とは逆の後ろ方向に反復処理します。例えば、以下の文では、8 (含まれる) から 2 (含まれない) までの添え字を走査します。

    for x in node[8:2:-1]: print(x)
    
    
  • IRISGlobalNode は、インデックス付け可能で、メンバシップ・テストをサポートします。

    例えば、添え字 x を持つ子ノードの場合、ノード値を node[x] = y と設定して、z = node[x] で返すことができます。x in node のメンバシップ・テストは、ブーリアン値を返します。

IRISGlobalNode コンストラクタ

IRISGlobalNode のインスタンスは、IRIS.node()IRISGlobalNode.node()、または IRISGlobalNode.nodes() を呼び出すことで作成できます。

IRISGlobalNode メソッドの詳細

get()

iris.IRISGlobalNodeget() は、指定された subscript にあるノードの値を返します。ノードに値がない、またはノードが存在しない場合は、default_value を返します。

get (subscript, default_value)

パラメータ :

  • subscript — 取得する値が含まれる、子ノードの添え字

  • default_value — 指定された添え字に値がない場合に返す値

items()

iris.IRISGlobalNode.items() は、このノードのすべての子ノードについて添え字と値のタプルを示したビューを返します。

items ()

返り値 : 添え字と値のタプルを示した IRISGlobalNodeView オブジェクト

keys()

iris.IRISGlobalNode.keys() は、このノードのすべての子ノードの添え字を示したビューを返します。subscripts() とまったく同じです。

keys ()

返り値 : 添え字のみを示した IRISGlobalNodeView オブジェクト

node()

iris.IRISGlobalNode.node() は、指定された添え字にある子ノードを表す IRISGlobalNode オブジェクトを返します。

node (subscript)

返り値 : IRISGlobalNode オブジェクト

パラメータ :

  • subscript — 目的の子ノードの添え字

nodes()

iris.IRISGlobalNode.nodes() は、このノードの子ノードごとの IRISGlobalNode オブジェクトを示したビューを返します。

nodes ()

返り値 : IRISGlobalNode オブジェクトを示す IRISGlobalNodeView オブジェクト

subscripts()

iris.IRISGlobalNode.subscripts() は、このノードのすべての子ノードの添え字を示したビューを返します。keys() とまったく同じです。

subscripts ()

返り値 : 添え字のみを示した IRISGlobalNodeView オブジェクト

values()

iris.IRISGlobalNode.values() は、このノードのすべての子ノードの値を示したビューを返します。ノードに値がない場合は None を返します。

values ()

返り値 : 値のみを示した IRISGlobalNodeView オブジェクト

クラス iris.IRISGlobalNodeView

クラス iris.IRISGlobalNodeView は、子ノードからデータを生成するために反復処理可能な、IRISGlobalNode のビュー・オブジェクトを実装します。IRISGlobalNodeView オブジェクトは、IRISGlobalNode メソッド keys()subscripts()values()items()、および nodes() によって返されます。

従来のサポート対象クラス

これらのクラスは、従来のアプリケーションが変更なしに動作できるように維持されています。これらのクラスを新しいコードで使用することはできません。従来のコードは変更なしで機能します。

クラス iris.LegacyIterator [非推奨]

このクラスは、下位互換性のためだけに提供されています。クラス iris.LegacyIterator を使用すると、非推奨の irisnative.Iterator クラスを使用して記述されているコードを変更なしで引き続き実行できます。

新しいコードでは、代わりに iris.IRISGlobalNode クラスを使用する必要があります。

LegacyIterator メソッドの詳細

next() [非推奨]

iterator.next() は、次の子ノードに反復子を配置して、現在有効になっている返りタイプに応じて、ノード値、ノードの添え字、またはその両方を含むタプルを返します (以下を参照)。反復処理にこれ以上ノードがない場合は、StopIteration 例外をスローします。

   iterator.next()

返り値 : 以下のいずれかの返りタイプのノード情報。

  • subscript and value (default) — 反復処理の次のノードの添え字および値を含むタプル。添え字はタプルの最初の要素で、値は 2 番目の要素です。現在、反復子が別の返りタイプに設定されている場合は、items() を呼び出すことによって、このタイプを有効にします。

  • subscript onlysubscripts() を呼び出すことによって、この返りタイプを有効にします。

  • value onlyvalues() を呼び出すことによって、この返りタイプを有効にします。

startFrom() [非推奨]

iterator.startFrom() は、開始位置が指定の添え字に設定された反復子を返します。next() を呼び出して、指定した位置の後にある次の子ノードに反復子を進めるまで、反復子はノードを指しません。

   iterator.startFrom(subscript)

返り値 : iterator の呼び出し側のインスタンス

パラメータ :

  • subscript — 開始位置を示す単一の添え字。

None を引数としてこのメソッドを呼び出すことは、既定の開始位置を使用することと同じです。既定の開始位置は、反復処理の方向に応じて、最初のノードの直前または最後のノードの直後です。

reversed() [非推奨]

iterator.reversed() は、反復処理の方向を前の設定から逆にした反復子を返します (反復子の作成時に、方向は順方向の反復処理に設定されます)。

   iterator.reversed()

返り値 : iterator の同じインスタンス

subscripts() [非推奨]

iterator.subscripts() は、返りタイプが添え字のみに設定された反復子を返します。

   iterator.subscripts()

返り値 : iterator の同じインスタンス

values() [非推奨]

iterator.values() は、返りタイプが値のみに設定された反復子を返します。

   iterator.values()

返り値 : iterator の同じインスタンス

items() [非推奨]

iterator.items() は、返りタイプが、添え字とノード値の両方を含むタプルに設定された反復子を返します。添え字はタプルの最初の要素で、値は 2 番目の要素です。これは、反復子の作成時の既定の設定です。

   iterator.items()

返り値 : iterator の同じインスタンス

従来の反復処理の例

以下の例では、iterDogs を設定して、グローバル配列 heroes('dogs') の子ノードを反復処理します。subscripts() メソッドは反復子の作成時に呼び出されるため、next() を呼び出すたびに、現在の子ノードの添え字のみが返されます。添え字はそれぞれ output 変数に追加され、ループが終了すると、リスト全体が出力されます。シーケンスにこれ以上子ノードがない場合、StopIteration 例外がスローされます。

next() を使用したノード heroes('dogs') の下の添え字の一覧表示
  # Get a list of child subscripts under node heroes('dogs')
  iterDogs = irispy.iterator('heroes','dogs').subscripts()
  output = "\nSubscripts under node heroes('dogs'): "
  try:
    while True: output += '%s ' % iterDogs.next()
  except StopIteration:  # thrown when there are no more child nodes
    print(output + '\n')

このコードによって、以下のような出力が生成されます。

  Subscripts under node heroes('dogs'): Balto Hachiko Lassie Whitefang

クラス irisnative.IRISNative [非推奨]

このクラスは、下位互換性のためだけに提供されています。クラス irisnative.IRISNative を使用すると、非推奨の irisnative 接続メソッドを使用して記述されているコードを変更なしで引き続き実行できます。

以前の createConnection() メソッドおよび createIris() メソッドは、iris パッケージのメソッド connect() および createIris() (“iris パッケージのメソッド” を参照) として公開されるようになっており、新しいコードでは常にこれらを使用する必要があります。

createConnection() [非推奨]

このメソッドは、iris パッケージのメソッド iris.connect() に置き換えてください。

IRISNative.createConnection() は、IRIS インスタンスへの新しい接続の作成を試み、新しい接続オブジェクトを返します。このオブジェクトは、接続が成功すると開かれ、それ以外の場合は閉じられます。

   irisnative.createConnection(hostname,port,namespace,username,password,timeout,sharedmemory,logfile)
   irisnative.createConnection(connectionstr,username,password,timeout,sharedmemory,logfile)

最後に成功した接続試行の hostnameportnamespacetimeout、および logfile が接続オブジェクトのプロパティとして保存されます。

返り値 : connection の新しいインスタンス

パラメータ : パラメータは位置またはキーワードによって渡すことができます。

  • hostname — サーバ URL を指定する str

  • port — スーパーサーバ・ポート番号を指定する int

  • namespace — ネームスペース・サーバを指定する str

  • 以下のパラメータを、hostnameport、および namespace の引数の代わりに使用できます。

    • connectionstrhostname:port/namespace の形式の str

  • username — ユーザ名を指定する str

  • password — パスワードを指定する str

  • timeout (オプション) — 接続試行時に待機する最大ミリ秒数を指定する int既定値は 10000 です。

  • sharedmemory (オプション) — boolTrue に指定すると、ホスト名が localhost または 127.0.0.1 の場合に共有メモリ接続を試行します。False に指定すると、TCP/IP 経由の接続を強制します。既定値は True です。

  • logfile (オプション) — クライアント側のログ・ファイル・パスを指定する strパスの最大長は、255 文字の ASCII 文字です。

createIris() [非推奨]

このメソッドは、iris パッケージのメソッド iris.createIris() に置き換えてください。

IRISNative.createIris() は、指定された接続を使用する IRIS の新規インスタンスを返します。接続が閉じられている場合は、例外をスローします。

    irisnative.createIris(conn)

返り値 : IRIS の新しいインスタンス

パラメータ :

  • conn — サーバ接続を提供するオブジェクト

FeedbackOpens in a new tab