graph-games-proto 0.3.2099__py3-none-any.whl → 0.3.2107__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
graph_games_proto/fns.py CHANGED
@@ -1170,7 +1170,6 @@ class PrivateState(PClass):
1170
1170
  class PublicDeck(PClass):
1171
1171
  idx = field(type=int)
1172
1172
  uuid = field(type=str)
1173
- units = field(type=list) # List[Card]
1174
1173
  facedown_stack_len = field(type=int)
1175
1174
  discard_len = field(type=int)
1176
1175
  faceup_spots = field(type=list) # List[Card]
@@ -1178,7 +1177,6 @@ class PublicDeck(PClass):
1178
1177
  return {
1179
1178
  "idx": self.idx,
1180
1179
  "uuid": self.uuid,
1181
- "units": [unit.__todict__() for unit in self.units],
1182
1180
  "facedown_stack_len": self.facedown_stack_len,
1183
1181
  "discard_len": self.discard_len,
1184
1182
  "faceup_spots": self.faceup_spots,
@@ -1188,7 +1186,6 @@ class PublicDeck(PClass):
1188
1186
  return PublicDeck(
1189
1187
  idx=d["idx"],
1190
1188
  uuid=d["uuid"],
1191
- units=[Card.__fromdict__(card) for card in d["units"]],
1192
1189
  facedown_stack_len=d["facedown_stack_len"],
1193
1190
  discard_len=d["discard_len"],
1194
1191
  faceup_spots=d["faceup_spots"],
@@ -1687,31 +1684,76 @@ class Action2(PClass):
1687
1684
  )
1688
1685
 
1689
1686
 
1687
+ class CardStack(PClass):
1688
+ hidden = field(type=bool)
1689
+ cards = field(type=list) # List[Card]
1690
+ def __todict__(self):
1691
+ return {
1692
+ "hidden": self.hidden,
1693
+ "cards": self.cards,
1694
+ }
1695
+ @staticmethod
1696
+ def __fromdict__(d):
1697
+ return CardStack(
1698
+ hidden=d["hidden"],
1699
+ cards=d["cards"],
1700
+ )
1701
+
1702
+
1703
+ class CardSpread(PClass):
1704
+ hidden = field(type=bool)
1705
+ spots = field(type=list) # List[Card|None]
1706
+ def __todict__(self):
1707
+ return {
1708
+ "hidden": self.hidden,
1709
+ "spots": self.spots,
1710
+ }
1711
+ @staticmethod
1712
+ def __fromdict__(d):
1713
+ return CardSpread(
1714
+ hidden=d["hidden"],
1715
+ spots=d["spots"],
1716
+ )
1717
+
1718
+
1719
+
1690
1720
  class Deck(PClass):
1691
1721
  idx = field(type=int)
1692
1722
  uuid = field(type=str)
1693
- units = field(type=list) # List[Card]
1694
- facedown_stack = field(type=list) # List[str]
1695
- discard = field(type=list) # List[str]
1696
- faceup_spots = field(type=list) # List[str]
1723
+ faceup_stack = field(type=CardStack)
1724
+ faceup_spread = field(type=CardSpread)
1725
+ facedown_stack = field(type=CardStack)
1726
+ facedown_spread = field(type=CardSpread)
1727
+ discard_faceup_stack = field(type=CardStack)
1728
+ discard_faceup_spread = field(type=CardSpread)
1729
+ discard_facedown_stack = field(type=CardStack)
1730
+ discard_facedown_spread = field(type=CardSpread)
1697
1731
  def __todict__(self):
1698
1732
  return {
1699
1733
  "idx": self.idx,
1700
1734
  "uuid": self.uuid,
1701
- "units": [unit.__todict__() for unit in self.units],
1702
- "facedown_stack": self.facedown_stack,
1703
- "discard": self.discard,
1704
- "faceup_spots": self.faceup_spots,
1735
+ "faceup_stack": self.faceup_stack.__todict(),
1736
+ "faceup_spread": self.faceup_spread.__todict(),
1737
+ "facedown_stack": self.facedown_stack.__todict(),
1738
+ "facedown_spread": self.facedown_spread.__todict(),
1739
+ "discard_faceup_stack": self.discard_faceup_stack.__todict(),
1740
+ "discard_faceup_spread": self.discard_faceup_spread.__todict(),
1741
+ "discard_facedown_stack": self.discard_facedown_stack.__todict(),
1742
+ "discard_facedown_spread": self.discard_facedown_spread.__todict(),
1705
1743
  }
1706
1744
  @staticmethod
1707
1745
  def __fromdict__(d):
1708
1746
  return Deck(
1709
1747
  idx=d["idx"],
1710
1748
  uuid=d["uuid"],
1711
- units=[], # TODO: Card.__fromdict__(card) for card in d["cards"]
1712
- facedown_stack=d["facedown_stack"],
1713
- discard=d["discard"],
1714
- faceup_spots=d["faceup_spots"],
1749
+ faceup_stack=CardStack.__fromdict__(d["faceup_stack"]),
1750
+ faceup_spread=CardSpread.__fromdict__(d["faceup_spread"]),
1751
+ facedown_stack=CardStack.__fromdict__(d["facedown_stack"]),
1752
+ facedown_spread=CardSpread.__fromdict__(d["facedown_spread"]),
1753
+ discard_faceup_stack=CardStack.__fromdict__(d["discard_faceup_stack"]),
1754
+ discard_faceup_spread=CardSpread.__fromdict__(d["discard_faceup_spread"]),
1755
+ discard_facedown_stack=CardStack.__fromdict__(d["discard_facedown_stack"]),
1756
+ discard_facedown_spread=CardSpread.__fromdict__(d["discard_facedown_spread"]),
1715
1757
  )
1716
1758
 
1717
1759
 
@@ -2237,10 +2279,9 @@ def init_state_kernel(game_config, **kwargs):
2237
2279
  deck_obj = Deck(
2238
2280
  uuid=dek.uuid,
2239
2281
  idx=dek.idx,
2240
- units=[],
2241
- faceup_spots=[],
2242
- discard=[],
2243
- facedown_stack=[card.uuid for card in cards],
2282
+ facedown_stack=CardStack(hidden=True, cards=[c.uuid for c in cards]),
2283
+ faceup_spread=CardSpread(hidden=False, spots=[]),
2284
+ discard_facedown_stack=CardStack(hidden=True, cards=[]),
2244
2285
  )
2245
2286
  starting_decks.append(deck_obj)
2246
2287
 
@@ -3205,13 +3246,13 @@ def replenish_decks_if_needed(kernel):
3205
3246
  def replenish_faceup_spot_if_needed(kernel, deck_idx, spot_idx):
3206
3247
  deck = kernel.decks[deck_idx]
3207
3248
 
3208
- if deck.faceup_spots[spot_idx] is not None:
3249
+ if deck.faceup_spread.spots[spot_idx] is not None:
3209
3250
  return kernel
3210
3251
 
3211
- if len(deck.facedown_stack) == 0:
3252
+ if len(deck.facedown_stack.cards) == 0:
3212
3253
  return kernel
3213
-
3214
- deck.faceup_spots[spot_idx] = deck.facedown_stack.pop()
3254
+
3255
+ deck.faceup_spread.spots[spot_idx] = deck.facedown_stack.cards.pop()
3215
3256
 
3216
3257
  kernel = ensure_faceup_spots_valid(kernel)
3217
3258
 
@@ -3223,7 +3264,7 @@ def replenish_faceup_spot_if_needed(kernel, deck_idx, spot_idx):
3223
3264
  @dispatch(StateKernel, int)
3224
3265
  def replenish_faceup_if_needed(kernel, deck_idx):
3225
3266
  deck = kernel.decks[deck_idx]
3226
- for spot_idx in range(len(deck.faceup_spots)):
3267
+ for spot_idx in range(len(deck.faceup_spread.spots)):
3227
3268
  kernel = replenish_faceup_spot_if_needed(kernel, deck_idx, spot_idx)
3228
3269
  return kernel
3229
3270
 
@@ -3231,12 +3272,12 @@ def replenish_faceup_if_needed(kernel, deck_idx):
3231
3272
  @dispatch(StateKernel, int)
3232
3273
  def recycle_if_needed(kernel, deck_idx):
3233
3274
  deck = kernel.decks[deck_idx]
3234
- if len(deck.facedown_stack) == 0:
3235
- shuffled_discards = list(deck.discard)
3275
+ if len(deck.facedown_stack.cards) == 0:
3276
+ shuffled_discards = list(deck.discard_facedown_stack.cards)
3236
3277
  kernel.rng.shuffle(shuffled_discards)
3237
3278
  deck = deck.set(
3238
- facedown_stack = shuffled_discards,
3239
- discard = []
3279
+ facedown_stack=CardStack(hidden=True, cards=shuffled_discards),
3280
+ discard_facedown_stack=CardStack(hidden=True, cards=[])
3240
3281
  )
3241
3282
  kernel = set_deck(kernel, deck.idx, deck)
3242
3283
  return kernel
@@ -3251,11 +3292,11 @@ def handle_draw_action(kernel, action):
3251
3292
  player = kernel.players[legal_action.player_idx]
3252
3293
  deck = kernel.decks[draw.deck_idx]
3253
3294
 
3254
- if len(deck.facedown_stack) == 0:
3295
+ if len(deck.facedown_stack.cards) == 0:
3255
3296
  return kernel # No cards to draw
3256
3297
 
3257
3298
  for _ in range(draw.quantity):
3258
- drawn_card = deck.facedown_stack.pop()
3299
+ drawn_card = deck.facedown_stack.cards.pop()
3259
3300
  player.cards.append(drawn_card)
3260
3301
  kernel = recycle_if_needed(kernel, draw.deck_idx)
3261
3302
 
@@ -3279,11 +3320,11 @@ def handle_draw_discard_action(kernel, action):
3279
3320
  player = kernel.players[legal_action.player_idx]
3280
3321
  deck = kernel.decks[draw_discard.deck_idx]
3281
3322
 
3282
- if len(deck.facedown_stack) == 0:
3323
+ if len(deck.facedown_stack.cards) == 0:
3283
3324
  return kernel # No cards to draw
3284
3325
 
3285
3326
  for _ in range(draw_discard.quantity):
3286
- drawn_card = deck.facedown_stack.pop()
3327
+ drawn_card = deck.facedown_stack.cards.pop()
3287
3328
  player.discard_tray.append(drawn_card)
3288
3329
 
3289
3330
  return kernel.set(
@@ -3299,8 +3340,8 @@ def get_follow_up_draw_legal_actions(kernel, action):
3299
3340
  if len(kernel.history) >= 2:
3300
3341
  last_action = kernel.history[-2]
3301
3342
  if (last_action.legal_action.player_idx != legal_action.player_idx) or last_action.legal_action.name == "INITIAL-GOAL-KEEP":
3302
-
3303
- if len(kernel.decks[0].facedown_stack) >= 1:
3343
+
3344
+ if len(kernel.decks[0].facedown_stack.cards) >= 1:
3304
3345
  to_return.append(
3305
3346
  LegalAction(
3306
3347
  auto_preferred=True,
@@ -3315,8 +3356,8 @@ def get_follow_up_draw_legal_actions(kernel, action):
3315
3356
  )
3316
3357
  )
3317
3358
  )
3318
-
3319
- for card_uuid in kernel.decks[0].faceup_spots:
3359
+
3360
+ for card_uuid in kernel.decks[0].faceup_spread.spots:
3320
3361
  if card_uuid:
3321
3362
  if not kernel.carduuid2card[card_uuid].is_wild:
3322
3363
  to_return.append(
@@ -3339,7 +3380,7 @@ def get_follow_up_draw_legal_actions(kernel, action):
3339
3380
  @dispatch(StateKernel, int)
3340
3381
  def get_num_faceup_wilds(kernel, deck_idx):
3341
3382
  deck = kernel.decks[deck_idx]
3342
- non_empty_spots = [spot for spot in deck.faceup_spots if spot]
3383
+ non_empty_spots = [spot for spot in deck.faceup_spread.spots if spot]
3343
3384
  if not non_empty_spots:
3344
3385
  return 0
3345
3386
  return sum(1 for card_uuid in non_empty_spots if kernel.carduuid2card[card_uuid].is_wild)
@@ -3359,14 +3400,14 @@ def ensure_faceup_spots_valid(kernel):
3359
3400
  @dispatch(StateKernel, int)
3360
3401
  def discardfaceup_shuffle_flip(kernel, deck_idx):
3361
3402
  deck = kernel.decks[deck_idx]
3362
- num_faceup_spots = len(deck.faceup_spots)
3363
- for faceup_spot in deck.faceup_spots:
3403
+ num_faceup_spots = len(deck.faceup_spread.spots)
3404
+ for faceup_spot in deck.faceup_spread.spots:
3364
3405
  if faceup_spot:
3365
- deck.discard.append(faceup_spot)
3366
- deck = deck.set(faceup_spots=[])
3367
- while len(deck.discard) > 0:
3368
- card = deck.discard.pop()
3369
- deck.facedown_stack.append(card)
3406
+ deck.discard_facedown_stack.cards.append(faceup_spot)
3407
+ deck = deck.set(faceup_spread=CardStack(hidden=False, cards=[]))
3408
+ while len(deck.discard_facedown_stack.cards) > 0:
3409
+ card = deck.discard_facedown_stack.cards.pop()
3410
+ deck.facedown_stack.cards.append(card)
3370
3411
  deck = shuffle(kernel.rng, deck)
3371
3412
  kernel = set_deck(kernel, deck.idx, deck)
3372
3413
  kernel = flip_cards(kernel, deck.idx, num_faceup_spots)
@@ -3382,11 +3423,11 @@ def handle_faceup_draw_action(kernel, action):
3382
3423
  player = kernel.players[legal_action.player_idx]
3383
3424
  deck = kernel.decks[faceup_draw.deck_idx]
3384
3425
  # find the faceup spot idx with uuid "faceup_draw.card_uuid"
3385
- spot_idx = next((i for i, card_uuid in enumerate(deck.faceup_spots) if card_uuid == faceup_draw.card_uuid), None)
3386
- drawn_card = deck.faceup_spots[spot_idx] if spot_idx is not None else None
3426
+ spot_idx = next((i for i, card_uuid in enumerate(deck.faceup_spread.spots) if card_uuid == faceup_draw.card_uuid), None)
3427
+ drawn_card = deck.faceup_spread.spots[spot_idx] if spot_idx is not None else None
3387
3428
  player.cards.append(drawn_card)
3388
-
3389
- deck.faceup_spots[spot_idx] = None
3429
+
3430
+ deck.faceup_spread.spots[spot_idx] = None
3390
3431
  kernel = kernel.set(decks=kernel.decks)
3391
3432
  kernel = replenish_faceup_spot_if_needed(kernel, faceup_draw.deck_idx, spot_idx)
3392
3433
 
@@ -3603,9 +3644,9 @@ def handle_move_longest_path_card(kernel, action):
3603
3644
 
3604
3645
  if len(kernel.decks) > 2:
3605
3646
  longest_path_deck = kernel.decks[2]
3606
- if longest_path_deck.facedown_stack:
3647
+ if longest_path_deck.facedown_stack.cards:
3607
3648
  # Move the longest path card to the player's hand
3608
- longest_path_card = longest_path_deck.facedown_stack.pop()
3649
+ longest_path_card = longest_path_deck.facedown_stack.cards.pop()
3609
3650
  else:
3610
3651
  # Search for the longest path card in each player's cards
3611
3652
  player_with_card = find_player_with_longest_path_card(kernel)
@@ -3671,7 +3712,7 @@ def handle_move_pieces_to_path_action(kernel, action):
3671
3712
  # Remove the card from player's cards
3672
3713
  card_uuid = player.cards.pop(card_idx)
3673
3714
  # add to discard
3674
- kernel.decks[kernel.carduuid2card[card_uuid].deck_idx].discard.append(card_uuid)
3715
+ kernel.decks[kernel.carduuid2card[card_uuid].deck_idx].discard_facedown_stack.cards.append(card_uuid)
3675
3716
 
3676
3717
  kernel = recycle_decks_if_needed(kernel)
3677
3718
  kernel = replenish_decks_if_needed(kernel)
@@ -3763,7 +3804,7 @@ def handle_keep_action(kernel, action):
3763
3804
 
3764
3805
 
3765
3806
  # Discard the non-kept cards to the deck's discard pile
3766
- deck.discard.extend(non_kept_cards)
3807
+ deck.discard_facedown_stack.cards.extend(non_kept_cards)
3767
3808
 
3768
3809
  # Clear the discard tray and add the kept cards back
3769
3810
  player.cards.extend([c for c in kept_cards if c is not None])
@@ -3805,7 +3846,7 @@ def handle_discard_action(kernel, action):
3805
3846
  print("****************************** handle_discard_action 6", non_kept_cards)
3806
3847
 
3807
3848
  # Discard the non-kept cards to the deck's discard pile
3808
- deck.discard.extend(non_kept_cards)
3849
+ deck.discard_facedown_stack.cards.extend(non_kept_cards)
3809
3850
 
3810
3851
  # Clear the discard tray and add the kept cards back
3811
3852
  player.cards.extend([c for c in kept_cards if c is not None])
@@ -3834,9 +3875,9 @@ def set_deck(kernel, deck_idx, deck):
3834
3875
 
3835
3876
 
3836
3877
  def shuffle(rng, deck):
3837
- shuffled_cards = list(deck.facedown_stack)
3878
+ shuffled_cards = list(deck.facedown_stack.cards)
3838
3879
  rng.shuffle(shuffled_cards)
3839
- return deck.set(facedown_stack=shuffled_cards)
3880
+ return deck.set(facedown_stack=CardStack(hidden=True, cards=shuffled_cards))
3840
3881
 
3841
3882
 
3842
3883
  @dispatch(StateKernel, int)
@@ -3845,7 +3886,7 @@ def shuffle_deck(kernel, deck_idx):
3845
3886
  return kernel
3846
3887
 
3847
3888
  deck = kernel.decks[deck_idx]
3848
- if not deck or not deck.facedown_stack:
3889
+ if not deck or not deck.facedown_stack.cards:
3849
3890
  return kernel
3850
3891
 
3851
3892
  shuffled_deck = shuffle(kernel.rng, deck)
@@ -3871,14 +3912,14 @@ def flip_cards(kernel, deck_idx, num_cards):
3871
3912
  return kernel
3872
3913
 
3873
3914
  deck = kernel.decks[deck_idx]
3874
- if not deck or not deck.facedown_stack:
3915
+ if not deck or not deck.facedown_stack.cards:
3875
3916
  return kernel
3876
3917
 
3877
- # Flip the top num_cards from the facedown_stack to the faceup_spots
3918
+ # Flip the top num_cards from the facedown_stack to the faceup_spread
3878
3919
  for _ in range(num_cards):
3879
- if deck.facedown_stack:
3880
- card = deck.facedown_stack.pop()
3881
- deck.faceup_spots.append(card)
3920
+ if deck.facedown_stack.cards:
3921
+ card = deck.facedown_stack.cards.pop()
3922
+ deck.faceup_spread.spots.append(card)
3882
3923
 
3883
3924
  return kernel.set(decks=kernel.decks)
3884
3925
 
@@ -3906,14 +3947,14 @@ def deal_cards_to_each_player_discard_tray(kernel, deck_idx, num_cards):
3906
3947
  return kernel
3907
3948
 
3908
3949
  deck = kernel.decks[deck_idx]
3909
- if not deck or not deck.facedown_stack:
3950
+ if not deck or not deck.facedown_stack.cards:
3910
3951
  return kernel
3911
3952
 
3912
3953
  for player in kernel.players:
3913
3954
  # Deal cards to the player's discard tray
3914
3955
  for _ in range(num_cards):
3915
- if deck.facedown_stack:
3916
- card = deck.facedown_stack.pop()
3956
+ if deck.facedown_stack.cards:
3957
+ card = deck.facedown_stack.cards.pop()
3917
3958
  player.discard_tray.append(card)
3918
3959
 
3919
3960
  return kernel.set(players=kernel.players, decks=kernel.decks)
@@ -3925,15 +3966,15 @@ def deal_cards_to_each_player(kernel, deck_idx, num_cards):
3925
3966
  return kernel
3926
3967
 
3927
3968
  deck = kernel.decks[deck_idx]
3928
- if not deck or not deck.facedown_stack:
3969
+ if not deck or not deck.facedown_stack.cards:
3929
3970
  return kernel
3930
3971
 
3931
3972
  for player in kernel.players:
3932
3973
  player_hand = player.cards
3933
3974
  # Deal cards to the player's hand
3934
3975
  for _ in range(num_cards):
3935
- if deck.facedown_stack:
3936
- card = deck.facedown_stack.pop()
3976
+ if deck.facedown_stack.cards:
3977
+ card = deck.facedown_stack.cards.pop()
3937
3978
  player_hand.append(card)
3938
3979
 
3939
3980
  return kernel.set(players=kernel.players, decks=kernel.decks)
@@ -4758,10 +4799,9 @@ def getpublicdeck(s, d):
4758
4799
  return PublicDeck(
4759
4800
  idx=d.idx,
4760
4801
  uuid=d.uuid,
4761
- units=d.units,
4762
- facedown_stack_len=len(d.facedown_stack),
4763
- discard_len=len(d.discard),
4764
- faceup_spots=d.faceup_spots,
4802
+ facedown_stack_len=len(d.facedown_stack.cards),
4803
+ discard_len=len(d.discard_facedown_stack.cards),
4804
+ faceup_spots=d.faceup_spread.spots,
4765
4805
  )
4766
4806
 
4767
4807
 
@@ -5361,7 +5401,7 @@ def getscorecodes(f):
5361
5401
  # filter(n -> !isnothing(s.faceup_spots[n]), 1:length(s.faceup_spots))
5362
5402
  # end
5363
5403
  def getvalidspotnums(s):
5364
- return [n for n in range(1, len(s.faceup_spots) + 1) if s.faceup_spots[n-1] is not None]
5404
+ return [n for n in range(1, len(s.faceup_spread.spots) + 1) if s.faceup_spread.spots[n-1] is not None]
5365
5405
 
5366
5406
 
5367
5407
  def json_serializer(obj):
@@ -5797,7 +5837,7 @@ def get_default_legal_actions(state_kernel, player_idx):
5797
5837
  allotted_since_action_idx = len(state_kernel.history) - 1
5798
5838
  legal_actions = []
5799
5839
 
5800
- if len(state_kernel.decks[1].facedown_stack) >= 1:
5840
+ if len(state_kernel.decks[1].facedown_stack.cards) >= 1:
5801
5841
  legal_actions.append(
5802
5842
  LegalAction(
5803
5843
  player_idx=player_idx,
@@ -5813,7 +5853,7 @@ def get_default_legal_actions(state_kernel, player_idx):
5813
5853
  )
5814
5854
  )
5815
5855
 
5816
- if len(state_kernel.decks[0].facedown_stack) >= 1:
5856
+ if len(state_kernel.decks[0].facedown_stack.cards) >= 1:
5817
5857
  legal_actions.append(
5818
5858
  LegalAction(
5819
5859
  auto_preferred=True,
@@ -5829,7 +5869,7 @@ def get_default_legal_actions(state_kernel, player_idx):
5829
5869
  )
5830
5870
  )
5831
5871
 
5832
- if len(state_kernel.decks[0].facedown_stack) >= 2:
5872
+ if len(state_kernel.decks[0].facedown_stack.cards) >= 2:
5833
5873
  legal_actions.append(
5834
5874
  LegalAction(
5835
5875
  player_idx=player_idx,
@@ -5844,7 +5884,7 @@ def get_default_legal_actions(state_kernel, player_idx):
5844
5884
  )
5845
5885
  )
5846
5886
 
5847
- for card_uuid in state_kernel.decks[0].faceup_spots:
5887
+ for card_uuid in state_kernel.decks[0].faceup_spread.spots:
5848
5888
  if card_uuid:
5849
5889
  legal_actions.append(
5850
5890
  LegalAction(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: graph_games_proto
3
- Version: 0.3.2099
3
+ Version: 0.3.2107
4
4
  Requires-Dist: multipledispatch==1.0.0
5
5
  Requires-Dist: pyrsistent==0.20.0
6
6
  Requires-Dist: numpy==2.2.4
@@ -1,9 +1,9 @@
1
1
  graph_games_proto/__init__.py,sha256=_EVQR-51XehfH45XZlba1WPdx3omS3Gm1nTwrgGyn2Q,667
2
2
  graph_games_proto/all_types.py,sha256=IpbwftEcHS5Ewz-saFNk0lO9FvcbuHG36odRTayCXUk,54911
3
- graph_games_proto/fns.py,sha256=c5Vj7Ye-LnNQBbOm7tQg0EWvcinATUSeDLWduCdrHaw,199901
3
+ graph_games_proto/fns.py,sha256=hjbhH7cyvxpZncYg2LTGqlBt_mrDAjKG56VuvCiO54Y,202019
4
4
  graph_games_proto/main.py,sha256=fj2U7KcwrpZtuUhjOX5yVxY18LZvvsxDFYZ_S5mxe04,145
5
5
  graph_games_proto/state.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- graph_games_proto-0.3.2099.dist-info/METADATA,sha256=tsn8lVkH1Vnv04mvMZhdfh8vRmWeDEW65g-VkZ5GXRQ,188
7
- graph_games_proto-0.3.2099.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
8
- graph_games_proto-0.3.2099.dist-info/top_level.txt,sha256=-4QSrBMf_MM4BGsr2QXBpqDx8c8k_OPnzGyFjqjakes,18
9
- graph_games_proto-0.3.2099.dist-info/RECORD,,
6
+ graph_games_proto-0.3.2107.dist-info/METADATA,sha256=dutsrkox9vObZA9gR7Cqk0htBKvxmDQKB6erQi69UyQ,188
7
+ graph_games_proto-0.3.2107.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
8
+ graph_games_proto-0.3.2107.dist-info/top_level.txt,sha256=-4QSrBMf_MM4BGsr2QXBpqDx8c8k_OPnzGyFjqjakes,18
9
+ graph_games_proto-0.3.2107.dist-info/RECORD,,