yaml を使用して、駅と路線のある列車ネットワークを表現しようとしています。最小の動作例は、直線的に接続された 3 つのステーションである可能性があるため、A<->B<->C
. 私は次のように 3 つの駅を表します。
---
stations:
- A
- B
- C
ここで、ネットワーク上のさまざまな回線と、それらの開始/終了場所を保存したいと考えています。これを行うには、次のように、lines 配列といくつかのアンカーを追加します。
---
stations:
- &S-A A
- &S-B B
- &S-C C
lines:
- &L-A2C A to C:
from: *S-A
to: *S-C
- &L-C2A C to A:
from: *S-C
to: *S-A
ここに私が問題を抱えている部分があります: 各駅で各行の次の停車駅を保存したい. 理想的には、次のようなものです。
---
stations:
- &S-A A:
next:
- *L-A2C: *S-B
- &S-B B:
next:
- *L-A2C: *S-C
- *L-C2A: *S-A
- &S-C C:
next:
- *L-C2A: *S-B
(lines
配列は同じままです)
しかし、これは失敗します-少なくともPython yamlライブラリでは、yaml.composer.ComposerError: found undefined alias 'L-A2C'
. これがなぜなのかはわかっています。線をまだ定義していないからです。でも、路線は駅に依存するので最初に定義することはできませんが、今では駅は路線に依存しています。
これを実装するより良い方法はありますか?