stbkit.api.experimental.repository¶
repository ¶
バージョンごとのリポジトリ
リポジトリは、読み込んだST-Bridgeの参照解決や検索を行うクラスです。 型注釈を利用したい場合に利用します。 インスタンスはstbkit.api.experimental.get_repositoryを使って取得できます。 モデルのバージョンに対応する型を選ぶため、バージョンごとの分岐が不要になります。
※このモジュール内のAPIは暫定的なものであり、今後変更される可能性があります。 仕様が固まったものはstbkit.apiへ移し、このモジュールからは段階的に外します。 継続的に利用するコードから使う場合は、この点を了解したうえで、バージョンを固定して使用してください。 互換性に関する方針は、GitHubリポジトリのCOMPATIBILITY.mdを参照してください。
RepositoryV2_0_2 ¶
RepositoryV2_0_2(stb: StBridgeElement)
Bases: RepositoryBase
ST-Bridge v2.0.2用のリポジトリ。
インスタンスの生成はget_repositoryの利用を推奨します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
65 66 67 68 69 70 71 72 73 74 75 76 | |
refresh ¶
refresh() -> None
モデルを編集した場合に、索引を作り直します。
リポジトリ構築後に要素を追加・削除したりid,name,guid等の属性を変更した場合に呼び出します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
112 113 114 115 116 117 118 119 | |
get ¶
get(ItemType: type[T], key: int | str) -> T
指定した型とキーで要素を1つ取得します。
キーは一般的にはid、鋼材断面はnameです。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T |
T
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ReferenceElementNotFoundError
|
参照先が見つからなかった場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | |
get_or_none ¶
get_or_none(ItemType: type[T], key: int | str) -> T | None
get()と同じですが、要素が見つからない場合はNoneを返します。
TypeErrorは、Noneにはせずそのまま投げます。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
T | None
|
T | None: 見つかった要素。見つからない場合はNone。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | |
find_equivalent ¶
find_equivalent(instance: T, *, exclude_fields: Iterable[str] | None = None) -> T | None
指定された要素と同等(属性が等価)の要素を検索します。 exclude_fieldsで指定された属性は比較から除外されます。
※現在、子要素は比較に含まれません。含めるかどうかは要協議。
用途としては、同じ形状の鋼材断面などを検索する場合です。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
instance
|
T
|
比較対象要素。 |
必須 |
exclude_fields
|
Iterable[str]
|
比較から除外する フィールド名のリスト。デフォルトはNone。 |
None
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T | None
|
T | None: 同等の要素が見つかった場合はその要素。見つからない場合はNone。 |
|
T | None
|
索引に入っている型だけが対象のため、現状では参照解決に使われない型の場合常にNoneになります。 |
|
TODO |
T | None
|
全要素を対象にするか協議 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | |
get_by_guid ¶
get_by_guid(guid: UUID) -> StBridgeElement
guidで検索します。
guidはキーによる取得、型の宣言は不要です。guid属性を持つすべての要素が対象になります。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
StBridgeElement |
StBridgeElement
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
ReferenceElementNotFoundError
|
要素が見つからない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | |
get_by_guid_or_none ¶
get_by_guid_or_none(guid: UUID) -> StBridgeElement | None
get_by_guid()と同じですが、見つからない場合はNoneを返します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
StBridgeElement | None
|
StBridgeElement | None: 見つかった要素。見つからない場合はNone。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
279 280 281 282 283 284 285 286 287 288 | |
deref ¶
deref(element: StbColumn) -> _StbColumnDeref
deref(element: StbPost) -> _StbPostDeref
deref(element: StbGirder) -> _StbGirderDeref
deref(element: StbBeam) -> _StbBeamDeref
deref(element: StbBrace) -> _StbBraceDeref
deref(element: StbSlab) -> _StbSlabDeref
deref(element: StbWall) -> _StbWallDeref
deref(element: StbFooting) -> _StbFootingDeref
deref(element: StbStripFooting) -> _StbStripFootingDeref
deref(element: StbPile) -> _StbPileDeref
deref(element: StbFoundationColumn) -> _StbFoundationColumnDeref
deref(element: StbParapet) -> _StbParapetDeref
deref(element: StBridgeElement) -> _DerefAccessor
要素の参照解決をするアクセサを返します。
deref(element)の後に、データモデルで参照を表す属性と同じ属性にアクセスすると参照先の要素が取得できます。
末尾に_or_noneを付けると、参照を解決できない場合にNoneを返します。
属性名と参照先の具体的な型は、スタブで定義します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
element
|
StBridgeElement
|
参照を解決する要素。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
_DerefAccessor |
_DerefAccessor
|
参照解決アクセサ。 |
発生:
| タイプ | デスクリプション |
|---|---|
AttributeError
|
属性アクセス時に属性が定義されていない場合。 |
ReferenceElementNotFoundError
|
属性アクセス時に、参照値がNoneの場合、
または参照先の要素が存在しない場合。
|
SchemaError
|
属性アクセス時に、属性の値が不正で
参照先の型が確定できない場合。
|
TypeError
|
属性アクセス時に型が対応したキーの型でない場合。 |
例:
>>> section = repo.deref(girder).id_section
>>> node = repo.deref(girder).id_node_start_or_none
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_v2_0_2.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | |
get_steel ¶
get_steel(name: str) -> StbSecRollH | StbSecBuildH | StbSecRollBox | StbSecBuildBox | StbSecPipe | StbSecRollT | StbSecRollC | StbSecRollL | StbSecLipC | StbSecFlatBar | StbSecRoundBar | StbSecSteelProduct | StbSecSteelUndefined
RepositoryV2_1_0 ¶
RepositoryV2_1_0(stb: StBridgeElement)
Bases: RepositoryBase
ST-Bridge v2.1.0用のリポジトリ。
インスタンスの生成はget_repositoryの利用を推奨します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
65 66 67 68 69 70 71 72 73 74 75 76 | |
refresh ¶
refresh() -> None
モデルを編集した場合に、索引を作り直します。
リポジトリ構築後に要素を追加・削除したりid,name,guid等の属性を変更した場合に呼び出します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
112 113 114 115 116 117 118 119 | |
get ¶
get(ItemType: type[T], key: int | str) -> T
指定した型とキーで要素を1つ取得します。
キーは一般的にはid、鋼材断面はnameです。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T |
T
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ReferenceElementNotFoundError
|
参照先が見つからなかった場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | |
get_or_none ¶
get_or_none(ItemType: type[T], key: int | str) -> T | None
get()と同じですが、要素が見つからない場合はNoneを返します。
TypeErrorは、Noneにはせずそのまま投げます。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
T | None
|
T | None: 見つかった要素。見つからない場合はNone。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | |
find_equivalent ¶
find_equivalent(instance: T, *, exclude_fields: Iterable[str] | None = None) -> T | None
指定された要素と同等(属性が等価)の要素を検索します。 exclude_fieldsで指定された属性は比較から除外されます。
※現在、子要素は比較に含まれません。含めるかどうかは要協議。
用途としては、同じ形状の鋼材断面などを検索する場合です。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
instance
|
T
|
比較対象要素。 |
必須 |
exclude_fields
|
Iterable[str]
|
比較から除外する フィールド名のリスト。デフォルトはNone。 |
None
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T | None
|
T | None: 同等の要素が見つかった場合はその要素。見つからない場合はNone。 |
|
T | None
|
索引に入っている型だけが対象のため、現状では参照解決に使われない型の場合常にNoneになります。 |
|
TODO |
T | None
|
全要素を対象にするか協議 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | |
get_by_guid ¶
get_by_guid(guid: UUID) -> StBridgeElement
guidで検索します。
guidはキーによる取得、型の宣言は不要です。guid属性を持つすべての要素が対象になります。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
StBridgeElement |
StBridgeElement
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
ReferenceElementNotFoundError
|
要素が見つからない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | |
get_by_guid_or_none ¶
get_by_guid_or_none(guid: UUID) -> StBridgeElement | None
get_by_guid()と同じですが、見つからない場合はNoneを返します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
StBridgeElement | None
|
StBridgeElement | None: 見つかった要素。見つからない場合はNone。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
279 280 281 282 283 284 285 286 287 288 | |
deref ¶
deref(element: StbColumn) -> _StbColumnDeref
deref(element: StbPost) -> _StbPostDeref
deref(element: StbGirder) -> _StbGirderDeref
deref(element: StbBeam) -> _StbBeamDeref
deref(element: StbBrace) -> _StbBraceDeref
deref(element: StbSlab) -> _StbSlabDeref
deref(element: StbWall) -> _StbWallDeref
deref(element: StbFooting) -> _StbFootingDeref
deref(element: StbStripFooting) -> _StbStripFootingDeref
deref(element: StbPile) -> _StbPileDeref
deref(element: StbFoundationColumn) -> _StbFoundationColumnDeref
deref(element: StbParapet) -> _StbParapetDeref
deref(element: StBridgeElement) -> _DerefAccessor
要素の参照解決をするアクセサを返します。
deref(element)の後に、データモデルで参照を表す属性と同じ属性にアクセスすると参照先の要素が取得できます。
末尾に_or_noneを付けると、参照を解決できない場合にNoneを返します。
属性名と参照先の具体的な型は、スタブで定義します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
element
|
StBridgeElement
|
参照を解決する要素。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
_DerefAccessor |
_DerefAccessor
|
参照解決アクセサ。 |
発生:
| タイプ | デスクリプション |
|---|---|
AttributeError
|
属性アクセス時に属性が定義されていない場合。 |
ReferenceElementNotFoundError
|
属性アクセス時に、参照値がNoneの場合、
または参照先の要素が存在しない場合。
|
SchemaError
|
属性アクセス時に、属性の値が不正で
参照先の型が確定できない場合。
|
TypeError
|
属性アクセス時に型が対応したキーの型でない場合。 |
例:
>>> section = repo.deref(girder).id_section
>>> node = repo.deref(girder).id_node_start_or_none
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_v2_1_0.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | |
get_steel ¶
get_steel(name: str) -> StbSecRollH | StbSecBuildH | StbSecBuildHAssymmetric | StbSecRollBox | StbSecBuildBox | StbSecPipe | StbSecRollT | StbSecBuildT | StbSecRollC | StbSecRoll2c | StbSecRollL | StbSecRoll2l | StbSecLipC | StbSecLip2c | StbSecFlatBar | StbSecRoundBar | StbSecSteelProduct | StbSecSteelUndefined
RepositoryLatest ¶
RepositoryLatest(stb: StBridgeElement)
Bases: RepositoryBase
ST-Bridge v2.1.1用のリポジトリ。
インスタンスの生成はget_repositoryの利用を推奨します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
65 66 67 68 69 70 71 72 73 74 75 76 | |
refresh ¶
refresh() -> None
モデルを編集した場合に、索引を作り直します。
リポジトリ構築後に要素を追加・削除したりid,name,guid等の属性を変更した場合に呼び出します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
112 113 114 115 116 117 118 119 | |
get ¶
get(ItemType: type[T], key: int | str) -> T
指定した型とキーで要素を1つ取得します。
キーは一般的にはid、鋼材断面はnameです。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T |
T
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ReferenceElementNotFoundError
|
参照先が見つからなかった場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | |
get_or_none ¶
get_or_none(ItemType: type[T], key: int | str) -> T | None
get()と同じですが、要素が見つからない場合はNoneを返します。
TypeErrorは、Noneにはせずそのまま投げます。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
T | None
|
T | None: 見つかった要素。見つからない場合はNone。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | |
find_equivalent ¶
find_equivalent(instance: T, *, exclude_fields: Iterable[str] | None = None) -> T | None
指定された要素と同等(属性が等価)の要素を検索します。 exclude_fieldsで指定された属性は比較から除外されます。
※現在、子要素は比較に含まれません。含めるかどうかは要協議。
用途としては、同じ形状の鋼材断面などを検索する場合です。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
instance
|
T
|
比較対象要素。 |
必須 |
exclude_fields
|
Iterable[str]
|
比較から除外する フィールド名のリスト。デフォルトはNone。 |
None
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T | None
|
T | None: 同等の要素が見つかった場合はその要素。見つからない場合はNone。 |
|
T | None
|
索引に入っている型だけが対象のため、現状では参照解決に使われない型の場合常にNoneになります。 |
|
TODO |
T | None
|
全要素を対象にするか協議 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | |
get_by_guid ¶
get_by_guid(guid: UUID) -> StBridgeElement
guidで検索します。
guidはキーによる取得、型の宣言は不要です。guid属性を持つすべての要素が対象になります。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
StBridgeElement |
StBridgeElement
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
ReferenceElementNotFoundError
|
要素が見つからない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | |
get_by_guid_or_none ¶
get_by_guid_or_none(guid: UUID) -> StBridgeElement | None
get_by_guid()と同じですが、見つからない場合はNoneを返します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
StBridgeElement | None
|
StBridgeElement | None: 見つかった要素。見つからない場合はNone。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
279 280 281 282 283 284 285 286 287 288 | |
deref ¶
deref(element: StbColumn) -> _StbColumnDeref
deref(element: StbPost) -> _StbPostDeref
deref(element: StbGirder) -> _StbGirderDeref
deref(element: StbBeam) -> _StbBeamDeref
deref(element: StbBrace) -> _StbBraceDeref
deref(element: StbSlab) -> _StbSlabDeref
deref(element: StbWall) -> _StbWallDeref
deref(element: StbFooting) -> _StbFootingDeref
deref(element: StbStripFooting) -> _StbStripFootingDeref
deref(element: StbPile) -> _StbPileDeref
deref(element: StbFoundationColumn) -> _StbFoundationColumnDeref
deref(element: StbParapet) -> _StbParapetDeref
deref(element: StBridgeElement) -> _DerefAccessor
要素の参照解決をするアクセサを返します。
deref(element)の後に、データモデルで参照を表す属性と同じ属性にアクセスすると参照先の要素が取得できます。
末尾に_or_noneを付けると、参照を解決できない場合にNoneを返します。
属性名と参照先の具体的な型は、スタブで定義します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
element
|
StBridgeElement
|
参照を解決する要素。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
_DerefAccessor |
_DerefAccessor
|
参照解決アクセサ。 |
発生:
| タイプ | デスクリプション |
|---|---|
AttributeError
|
属性アクセス時に属性が定義されていない場合。 |
ReferenceElementNotFoundError
|
属性アクセス時に、参照値がNoneの場合、
または参照先の要素が存在しない場合。
|
SchemaError
|
属性アクセス時に、属性の値が不正で
参照先の型が確定できない場合。
|
TypeError
|
属性アクセス時に型が対応したキーの型でない場合。 |
例:
>>> section = repo.deref(girder).id_section
>>> node = repo.deref(girder).id_node_start_or_none
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_v2_1_1.py
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | |
get_steel ¶
get_steel(name: str) -> StbSecRollH | StbSecBuildH | StbSecBuildHAsymmetric | StbSecRollBox | StbSecBuildBox | StbSecPipe | StbSecRollT | StbSecBuildT | StbSecRollC | StbSecRoll2c | StbSecRollL | StbSecRoll2l | StbSecLipC | StbSecLip2c | StbSecFlatBar | StbSecRoundBar | StbSecSteelProduct | StbSecSteelUndefined
RepositoryV2_1_1 ¶
RepositoryV2_1_1(stb: StBridgeElement)
Bases: RepositoryBase
ST-Bridge v2.1.1用のリポジトリ。
インスタンスの生成はget_repositoryの利用を推奨します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
65 66 67 68 69 70 71 72 73 74 75 76 | |
refresh ¶
refresh() -> None
モデルを編集した場合に、索引を作り直します。
リポジトリ構築後に要素を追加・削除したりid,name,guid等の属性を変更した場合に呼び出します。
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
112 113 114 115 116 117 118 119 | |
get ¶
get(ItemType: type[T], key: int | str) -> T
指定した型とキーで要素を1つ取得します。
キーは一般的にはid、鋼材断面はnameです。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T |
T
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ReferenceElementNotFoundError
|
参照先が見つからなかった場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | |
get_or_none ¶
get_or_none(ItemType: type[T], key: int | str) -> T | None
get()と同じですが、要素が見つからない場合はNoneを返します。
TypeErrorは、Noneにはせずそのまま投げます。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
ItemType
|
type[T]
|
取得する要素の型。 |
必須 |
key
|
int | str
|
キーの値。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
T | None
|
T | None: 見つかった要素。見つからない場合はNone。 |
発生:
| タイプ | デスクリプション |
|---|---|
TypeError
|
ItemTypeが参照定義されていない場合、 または索引の要素がItemTypeのインスタンスでない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | |
find_equivalent ¶
find_equivalent(instance: T, *, exclude_fields: Iterable[str] | None = None) -> T | None
指定された要素と同等(属性が等価)の要素を検索します。 exclude_fieldsで指定された属性は比較から除外されます。
※現在、子要素は比較に含まれません。含めるかどうかは要協議。
用途としては、同じ形状の鋼材断面などを検索する場合です。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
instance
|
T
|
比較対象要素。 |
必須 |
exclude_fields
|
Iterable[str]
|
比較から除外する フィールド名のリスト。デフォルトはNone。 |
None
|
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
T | None
|
T | None: 同等の要素が見つかった場合はその要素。見つからない場合はNone。 |
|
T | None
|
索引に入っている型だけが対象のため、現状では参照解決に使われない型の場合常にNoneになります。 |
|
TODO |
T | None
|
全要素を対象にするか協議 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | |
get_by_guid ¶
get_by_guid(guid: UUID) -> StBridgeElement
guidで検索します。
guidはキーによる取得、型の宣言は不要です。guid属性を持つすべての要素が対象になります。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
StBridgeElement |
StBridgeElement
|
見つかった要素。 |
発生:
| タイプ | デスクリプション |
|---|---|
ReferenceElementNotFoundError
|
要素が見つからない場合。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | |
get_by_guid_or_none ¶
get_by_guid_or_none(guid: UUID) -> StBridgeElement | None
get_by_guid()と同じですが、見つからない場合はNoneを返します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
guid
|
UUID
|
取得する要素のguid。 |
必須 |
戻り値:
| タイプ | デスクリプション |
|---|---|
StBridgeElement | None
|
StBridgeElement | None: 見つかった要素。見つからない場合はNone。 |
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_common.py
279 280 281 282 283 284 285 286 287 288 | |
deref ¶
deref(element: StbColumn) -> _StbColumnDeref
deref(element: StbPost) -> _StbPostDeref
deref(element: StbGirder) -> _StbGirderDeref
deref(element: StbBeam) -> _StbBeamDeref
deref(element: StbBrace) -> _StbBraceDeref
deref(element: StbSlab) -> _StbSlabDeref
deref(element: StbWall) -> _StbWallDeref
deref(element: StbFooting) -> _StbFootingDeref
deref(element: StbStripFooting) -> _StbStripFootingDeref
deref(element: StbPile) -> _StbPileDeref
deref(element: StbFoundationColumn) -> _StbFoundationColumnDeref
deref(element: StbParapet) -> _StbParapetDeref
deref(element: StBridgeElement) -> _DerefAccessor
要素の参照解決をするアクセサを返します。
deref(element)の後に、データモデルで参照を表す属性と同じ属性にアクセスすると参照先の要素が取得できます。
末尾に_or_noneを付けると、参照を解決できない場合にNoneを返します。
属性名と参照先の具体的な型は、スタブで定義します。
引数:
| 名前 | タイプ | デスクリプション | デフォルト |
|---|---|---|---|
element
|
StBridgeElement
|
参照を解決する要素。 |
必須 |
戻り値:
| 名前 | タイプ | デスクリプション |
|---|---|---|
_DerefAccessor |
_DerefAccessor
|
参照解決アクセサ。 |
発生:
| タイプ | デスクリプション |
|---|---|
AttributeError
|
属性アクセス時に属性が定義されていない場合。 |
ReferenceElementNotFoundError
|
属性アクセス時に、参照値がNoneの場合、
または参照先の要素が存在しない場合。
|
SchemaError
|
属性アクセス時に、属性の値が不正で
参照先の型が確定できない場合。
|
TypeError
|
属性アクセス時に型が対応したキーの型でない場合。 |
例:
>>> section = repo.deref(girder).id_section
>>> node = repo.deref(girder).id_node_start_or_none
ソースコード位置: python/stbkit-core/src/stbkit/core/repository/repo_v2_1_1.py
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | |
get_steel ¶
get_steel(name: str) -> StbSecRollH | StbSecBuildH | StbSecBuildHAsymmetric | StbSecRollBox | StbSecBuildBox | StbSecPipe | StbSecRollT | StbSecBuildT | StbSecRollC | StbSecRoll2c | StbSecRollL | StbSecRoll2l | StbSecLipC | StbSecLip2c | StbSecFlatBar | StbSecRoundBar | StbSecSteelProduct | StbSecSteelUndefined