ClementBM commited on
Commit
f32c985
1 Parent(s): 3532cbe
connectfour/app.py CHANGED
@@ -6,16 +6,14 @@ from pettingzoo.classic import connect_four_v3
6
  from ray.rllib.utils.framework import try_import_torch
7
  from ray.tune import register_env
8
 
9
- from connectfour.training.wrappers import Connect4Env
10
  from models import MODEL_PATH
11
  import onnxruntime as ort
12
  from ray.rllib.algorithms.algorithm import Algorithm
13
- from connectfour.checkpoint import CHECKPOINT
14
 
15
  torch, nn = try_import_torch()
16
 
17
  # poetry export -f requirements.txt --output requirements.txt --without-hashes
18
- # tensorboard --logdir ~/ray_results/
19
  # gradio connectfour/app.py
20
 
21
 
 
6
  from ray.rllib.utils.framework import try_import_torch
7
  from ray.tune import register_env
8
 
9
+ from connectfour.wrappers import Connect4Env
10
  from models import MODEL_PATH
11
  import onnxruntime as ort
12
  from ray.rllib.algorithms.algorithm import Algorithm
 
13
 
14
  torch, nn = try_import_torch()
15
 
16
  # poetry export -f requirements.txt --output requirements.txt --without-hashes
 
17
  # gradio connectfour/app.py
18
 
19
 
connectfour/checkpoint/.Rhistory DELETED
File without changes
connectfour/checkpoint/.is_checkpoint DELETED
File without changes
connectfour/checkpoint/.tune_metadata DELETED
Binary file (15.6 kB)
 
connectfour/checkpoint/__init__.py DELETED
@@ -1,3 +0,0 @@
1
- from pathlib import Path
2
-
3
- CHECKPOINT = Path(__file__).parent.absolute()
 
 
 
 
connectfour/training/__init__.py DELETED
File without changes
connectfour/training/__pycache__/__init__.cpython-38.pyc DELETED
Binary file (182 Bytes)
 
connectfour/training/__pycache__/callbacks.cpython-38.pyc DELETED
Binary file (4.42 kB)
 
connectfour/training/__pycache__/dummy_policies.cpython-38.pyc DELETED
Binary file (5.55 kB)
 
connectfour/training/__pycache__/models.cpython-38.pyc DELETED
Binary file (2.91 kB)
 
connectfour/training/__pycache__/wrappers.cpython-38.pyc DELETED
Binary file (1 kB)
 
connectfour/training/callbacks.py DELETED
@@ -1,130 +0,0 @@
1
- from collections import deque
2
-
3
- import numpy as np
4
- from ray.rllib.algorithms.callbacks import DefaultCallbacks
5
-
6
- from connectfour.training.dummy_policies import (
7
- AlwaysSameHeuristic,
8
- BeatLastHeuristic,
9
- LinearHeuristic,
10
- RandomHeuristic,
11
- )
12
-
13
-
14
- def create_self_play_callback(win_rate_thr, opponent_policies, opponent_count=10):
15
- class SelfPlayCallback(DefaultCallbacks):
16
- win_rate_threshold = win_rate_thr
17
-
18
- def __init__(self):
19
- super().__init__()
20
- self.current_opponent = 0
21
- self.opponent_policies = deque(opponent_policies, maxlen=opponent_count)
22
- self.policy_to_remove = None
23
- self.frozen_policies = {
24
- "always_same": AlwaysSameHeuristic,
25
- "linear": LinearHeuristic,
26
- "beat_last": BeatLastHeuristic,
27
- "random": RandomHeuristic,
28
- }
29
-
30
- def on_train_result(self, *, algorithm, result, **kwargs):
31
- """Called at the end of Algorithm.train().
32
-
33
- Args:
34
- algorithm: Current Algorithm instance.
35
- result: Dict of results returned from Algorithm.train() call.
36
- You can mutate this object to add additional metrics.
37
- kwargs: Forward compatibility placeholder.
38
- """
39
- main_rew = result["hist_stats"].pop("policy_learned_reward")
40
- opponent_rew = result["hist_stats"].pop("episode_reward")
41
-
42
- won = 0
43
- for r_main, r_opponent in zip(main_rew, opponent_rew):
44
- if r_main > r_opponent:
45
- won += 1
46
- win_rate = won / len(main_rew)
47
-
48
- result["win_rate"] = win_rate
49
- print(f"Iter={algorithm.iteration} win-rate={win_rate}")
50
-
51
- if win_rate > self.win_rate_threshold:
52
- if len(self.opponent_policies) == self.opponent_policies.maxlen:
53
- self.policy_to_remove = self.opponent_policies[0]
54
-
55
- new_pol_id = None
56
- while new_pol_id is None:
57
- if np.random.choice(range(6)) == 0:
58
- new_pol_id = np.random.choice(list(self.frozen_policies.keys()))
59
- else:
60
- self.current_opponent += 1
61
- new_pol_id = f"learned_v{self.current_opponent}"
62
-
63
- if new_pol_id in self.opponent_policies:
64
- new_pol_id = None
65
- else:
66
- self.opponent_policies.append(new_pol_id)
67
-
68
- print("Non trainable policies", list(self.opponent_policies))
69
-
70
- def policy_mapping_fn(agent_id, episode, worker, **kwargs):
71
- return (
72
- "learned"
73
- if episode.episode_id % 2 == int(agent_id[-1:])
74
- else np.random.choice(list(self.opponent_policies))
75
- )
76
-
77
- print(
78
- f"Iter={algorithm.iteration} Adding new opponent to the mix ({new_pol_id}). League size {len(self.opponent_policies) + 1}"
79
- )
80
-
81
- if new_pol_id in list(self.frozen_policies.keys()):
82
- new_policy = algorithm.add_policy(
83
- policy_id=new_pol_id,
84
- policy_cls=self.frozen_policies[new_pol_id],
85
- policy_mapping_fn=policy_mapping_fn,
86
- )
87
- else:
88
- new_policy = algorithm.add_policy(
89
- policy_id=new_pol_id,
90
- policy_cls=type(algorithm.get_policy("learned")),
91
- policy_mapping_fn=policy_mapping_fn,
92
- )
93
- learned_state = algorithm.get_policy("learned").get_state()
94
- new_policy.set_state(learned_state)
95
- algorithm.workers.sync_weights()
96
-
97
- else:
98
- print("Not good enough... Keep learning ...")
99
-
100
- result["league_size"] = len(self.opponent_policies) + 1
101
-
102
- def on_evaluate_end(self, *, algorithm, evaluation_metrics, **kwargs):
103
- """Runs when the evaluation is done.
104
-
105
- Runs at the end of Algorithm.evaluate().
106
-
107
- Args:
108
- algorithm: Reference to the algorithm instance.
109
- evaluation_metrics: Results dict to be returned from algorithm.evaluate().
110
- You can mutate this object to add additional metrics.
111
- kwargs: Forward compatibility placeholder.
112
- """
113
-
114
- def policy_mapping_fn(agent_id, episode, worker, **kwargs):
115
- return (
116
- "learned"
117
- if episode.episode_id % 2 == int(agent_id[-1:])
118
- else np.random.choice(list(self.opponent_policies))
119
- )
120
-
121
- if self.policy_to_remove is not None:
122
- print("Remove ", self.policy_to_remove, "from opponent policies")
123
- algorithm.remove_policy(
124
- self.policy_to_remove,
125
- policy_mapping_fn=policy_mapping_fn,
126
- )
127
- self.policy_to_remove = None
128
- algorithm.workers.sync_weights()
129
-
130
- return SelfPlayCallback
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
connectfour/training/dummy_policies.py DELETED
@@ -1,134 +0,0 @@
1
- import numpy as np
2
- import random
3
- from ray.rllib.policy.policy import Policy
4
- from ray.rllib.utils.annotations import override
5
- from ray.rllib.models.modelv2 import restore_original_dimensions
6
-
7
-
8
- class HeuristicBase(Policy):
9
- def __init__(self, *args, **kwargs):
10
- super().__init__(*args, **kwargs)
11
- self.exploration = self._create_exploration()
12
-
13
- def learn_on_batch(self, samples):
14
- pass
15
-
16
- @override(Policy)
17
- def get_weights(self):
18
- """No weights to save."""
19
- return {}
20
-
21
- @override(Policy)
22
- def set_weights(self, weights):
23
- """No weights to set."""
24
- pass
25
-
26
- @override(Policy)
27
- def export_model(self, export_dir: str, onnx=None) -> None:
28
- pass
29
-
30
- @override(Policy)
31
- def compute_actions(
32
- self,
33
- obs_batch,
34
- state_batches=None,
35
- prev_action_batch=None,
36
- prev_reward_batch=None,
37
- info_batch=None,
38
- episodes=None,
39
- **kwargs
40
- ):
41
- obs_batch = restore_original_dimensions(
42
- np.array(obs_batch, dtype=np.float32), self.observation_space, tensorlib=np
43
- )
44
- return self._do_compute_actions(obs_batch)
45
-
46
- def pick_legal_action(self, legal_action):
47
- legal_choices = np.arange(len(legal_action))[legal_action == 1]
48
- return np.random.choice(legal_choices)
49
-
50
-
51
- class AlwaysSameHeuristic(HeuristicBase):
52
- """
53
- Pick a random move and stick with it for the entire episode.
54
- """
55
-
56
- _rand_choice = random.choice(range(7))
57
-
58
- def _do_compute_actions(self, obs_batch):
59
- def select_action(legal_action):
60
- legal_choices = np.arange(len(legal_action))[legal_action == 1]
61
-
62
- if self._rand_choice not in legal_choices:
63
- self._rand_choice = np.random.choice(legal_choices)
64
-
65
- return self._rand_choice
66
-
67
- return [select_action(x) for x in obs_batch["action_mask"]], [], {}
68
-
69
-
70
- class LinearHeuristic(HeuristicBase):
71
- """
72
- Pick a random move and increment column index
73
- """
74
-
75
- _rand_choice = random.choice(range(7))
76
- _rand_sign = np.random.choice([-1, 1])
77
-
78
- def _do_compute_actions(self, obs_batch):
79
- def select_action(legal_action):
80
- legal_choices = np.arange(len(legal_action))[legal_action == 1]
81
-
82
- self._rand_choice += 1 * self._rand_sign
83
-
84
- if self._rand_choice not in legal_choices:
85
- self._rand_choice = np.random.choice(legal_choices)
86
-
87
- return self._rand_choice
88
-
89
- return [select_action(x) for x in obs_batch["action_mask"]], [], {}
90
-
91
-
92
- class BeatLastHeuristic(HeuristicBase):
93
- """
94
- Play the move the last move of the opponent.
95
- """
96
-
97
- def _do_compute_actions(self, obs_batch):
98
- def select_action(legal_action, observation):
99
- legal_choices = np.arange(len(legal_action))[legal_action == 1]
100
-
101
- obs_sums = np.sum(observation, axis=0)
102
-
103
- desired_actions = np.squeeze(np.argwhere(obs_sums[:, 0] < obs_sums[:, 1]))
104
- if desired_actions.size == 0:
105
- return np.random.choice(legal_choices)
106
-
107
- if desired_actions.size == 1:
108
- desired_action = desired_actions[()]
109
- else:
110
- desired_action = np.random.choice(desired_actions)
111
- if desired_action in legal_choices:
112
- return desired_action
113
-
114
- return np.random.choice(legal_choices)
115
-
116
- return (
117
- [
118
- select_action(x, y)
119
- for x, y in zip(obs_batch["action_mask"], obs_batch["observation"])
120
- ],
121
- [],
122
- {},
123
- )
124
-
125
-
126
- class RandomHeuristic(HeuristicBase):
127
- """
128
- Just pick a random legal action
129
- The outputted state of the environment needs to be a dictionary with an
130
- 'action_mask' key containing the legal actions for the agent.
131
- """
132
-
133
- def _do_compute_actions(self, obs_batch):
134
- return [self.pick_legal_action(x) for x in obs_batch["action_mask"]], [], {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
connectfour/training/models.py DELETED
@@ -1,119 +0,0 @@
1
- from ray.rllib.models.torch.fcnet import FullyConnectedNetwork as TorchFC
2
- from ray.rllib.models.torch.torch_modelv2 import TorchModelV2
3
- from gymnasium.spaces import Dict
4
- from ray.rllib.utils.torch_utils import FLOAT_MIN
5
- from ray.rllib.utils.framework import try_import_torch
6
- from ray.rllib.algorithms.sac.sac_torch_model import SACTorchModel
7
- from ray.rllib.utils import override
8
-
9
- torch, nn = try_import_torch()
10
-
11
-
12
- class Connect4MaskModel(TorchModelV2, nn.Module):
13
- """PyTorch version of above ActionMaskingModel."""
14
-
15
- def __init__(
16
- self,
17
- obs_space,
18
- action_space,
19
- num_outputs,
20
- model_config,
21
- name,
22
- **kwargs,
23
- ):
24
- orig_space = getattr(obs_space, "original_space", obs_space)
25
-
26
- assert isinstance(orig_space, Dict)
27
- assert "action_mask" in orig_space.spaces
28
- assert "observation" in orig_space.spaces
29
-
30
- TorchModelV2.__init__(
31
- self, obs_space, action_space, num_outputs, model_config, name, **kwargs
32
- )
33
- nn.Module.__init__(self)
34
-
35
- self.internal_model = TorchFC(
36
- orig_space["observation"],
37
- action_space,
38
- num_outputs,
39
- model_config,
40
- name + "_internal",
41
- )
42
-
43
- def forward(self, input_dict, state, seq_lens):
44
- # Extract the available actions tensor from the observation.
45
- action_mask = input_dict["obs"]["action_mask"]
46
-
47
- # Compute the unmasked logits.
48
- logits, _ = self.internal_model({"obs": input_dict["obs"]["observation"]})
49
-
50
- # Convert action_mask into a [0.0 || -inf]-type mask.
51
- inf_mask = torch.clamp(torch.log(action_mask), min=FLOAT_MIN)
52
- masked_logits = logits + inf_mask
53
-
54
- # Return masked logits.
55
- return masked_logits, state
56
-
57
- def value_function(self):
58
- return self.internal_model.value_function()
59
-
60
-
61
- class SacConnect4MaskModel(SACTorchModel):
62
- def __init__(
63
- self,
64
- obs_space,
65
- action_space,
66
- num_outputs,
67
- model_config,
68
- name: str,
69
- policy_model_config=None,
70
- q_model_config=None,
71
- twin_q=False,
72
- initial_alpha=1.0,
73
- target_entropy=None,
74
- **kwargs,
75
- ):
76
- orig_space = getattr(obs_space, "original_space", obs_space)
77
-
78
- assert isinstance(orig_space, Dict)
79
- assert "action_mask" in orig_space.spaces
80
- assert "observation" in orig_space.spaces
81
-
82
- super().__init__(
83
- obs_space,
84
- action_space,
85
- num_outputs,
86
- model_config,
87
- policy_model_config,
88
- q_model_config,
89
- twin_q,
90
- initial_alpha,
91
- target_entropy,
92
- **kwargs,
93
- )
94
-
95
- self.internal_model = TorchFC(
96
- orig_space["observation"],
97
- action_space,
98
- num_outputs,
99
- model_config,
100
- name + "_internal",
101
- )
102
-
103
- @override(SACTorchModel)
104
- def forward(self, input_dict, state, seq_lens):
105
- # Extract the available actions tensor from the observation.
106
- action_mask = input_dict["obs"]["action_mask"]
107
-
108
- # Compute the unmasked logits.
109
- logits, _ = self.internal_model({"obs": input_dict["obs"]["observation"]})
110
-
111
- # Convert action_mask into a [0.0 || -inf]-type mask.
112
- inf_mask = torch.clamp(torch.log(action_mask), min=FLOAT_MIN)
113
- masked_logits = logits + inf_mask
114
-
115
- # Return masked logits.
116
- return masked_logits, state
117
-
118
- def value_function(self):
119
- return self.internal_model.value_function()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
connectfour/training/train.py DELETED
@@ -1,220 +0,0 @@
1
- import argparse
2
- import random
3
-
4
- import ray
5
- import ray.rllib.algorithms.ppo as ppo
6
- from pettingzoo.classic import connect_four_v3
7
- from ray import air, tune
8
- from ray.rllib.policy.policy import PolicySpec
9
- from ray.rllib.utils.framework import try_import_torch
10
- from ray.tune import CLIReporter, register_env
11
- from ray.rllib.algorithms.algorithm import Algorithm
12
-
13
- from connectfour.training.callbacks import create_self_play_callback
14
- from connectfour.training.dummy_policies import (
15
- AlwaysSameHeuristic,
16
- BeatLastHeuristic,
17
- LinearHeuristic,
18
- RandomHeuristic,
19
- )
20
- from connectfour.training.models import Connect4MaskModel
21
- from connectfour.training.wrappers import Connect4Env
22
-
23
- torch, nn = try_import_torch()
24
-
25
-
26
- def get_cli_args():
27
- """
28
- Create CLI parser and return parsed arguments
29
-
30
- python connectfour/training/train.py --num-cpus 4 --num-gpus 1 --stop-iters 10 --win-rate-threshold 0.50
31
- python connectfour/training/train.py --num-gpus 1 --stop-iters 1 --win-rate-threshold 0.50
32
- python connectfour/training/train.py --num-cpus 5 --num-gpus 1 --stop-iters 200
33
- python connectfour/training/train.py --num-cpus 5 --num-gpus 1 --win-rate-threshold 0.95 --stop-iters 2000 > training.log 2>&1
34
- python connectfour/training/train.py --num-cpus 5 --num-gpus 1 --win-rate-threshold 0.96 --stop-iters 10000 > training.log 2>&1
35
- python connectfour/training/train.py --num-cpus 5 --num-gpus 1 --win-rate-threshold 0.99 --stop-iters 5000 --from-checkpoint ~/ray_results/PPO/PPO_connect4_8414a_00000_0_2023-04-03_12-44-31/checkpoint_004000 > training.log 2>&1
36
- """
37
- parser = argparse.ArgumentParser()
38
- parser.add_argument("--num-cpus", type=int, default=0)
39
- parser.add_argument("--num-gpus", type=int, default=0)
40
- parser.add_argument("--num-workers", type=int, default=2)
41
- parser.add_argument(
42
- "--from-checkpoint",
43
- type=str,
44
- default=None,
45
- help="Full path to a experiment directory to resume tuning from "
46
- "a previously saved Algorithm state.",
47
- )
48
- parser.add_argument(
49
- "--stop-iters", type=int, default=200, help="Number of iterations to train."
50
- )
51
- parser.add_argument(
52
- "--stop-timesteps",
53
- type=int,
54
- default=10000000,
55
- help="Number of timesteps to train.",
56
- )
57
- parser.add_argument(
58
- "--win-rate-threshold",
59
- type=float,
60
- default=0.95,
61
- help="Win-rate at which we setup another opponent by freezing the "
62
- "current main policy and playing against a uniform distribution "
63
- "of previously frozen 'main's from here on.",
64
- )
65
- args = parser.parse_args()
66
- print(f"Running with following CLI args: {args}")
67
- return args
68
-
69
-
70
- if __name__ == "__main__":
71
- args = get_cli_args()
72
-
73
- ray.init(
74
- num_cpus=args.num_cpus or None,
75
- num_gpus=args.num_gpus,
76
- include_dashboard=False,
77
- resources={"accelerator_type:RTX": 1},
78
- )
79
-
80
- # define how to make the environment
81
- env_creator = lambda config: connect_four_v3.env(render_mode="rgb_array")
82
-
83
- # register that way to make the environment under an rllib name
84
- register_env("connect4", lambda config: Connect4Env(env_creator(config)))
85
-
86
- def select_policy(agent_id, episode, **kwargs):
87
- if episode.episode_id % 2 == int(agent_id[-1:]):
88
- return "learned"
89
- else:
90
- return random.choice(["always_same", "beat_last", "random", "linear"])
91
-
92
- config = (
93
- (
94
- ppo.PPOConfig()
95
- .environment("connect4")
96
- .framework("torch")
97
- .training(model={"custom_model": Connect4MaskModel})
98
- .rollouts(
99
- num_rollout_workers=args.num_workers,
100
- num_envs_per_worker=5,
101
- )
102
- # .checkpointing(checkpoint_trainable_policies_only=True)
103
- )
104
- .multi_agent(
105
- policies={
106
- "learned": PolicySpec(),
107
- "always_same": PolicySpec(policy_class=AlwaysSameHeuristic),
108
- "linear": PolicySpec(policy_class=LinearHeuristic),
109
- "beat_last": PolicySpec(policy_class=BeatLastHeuristic),
110
- "random": PolicySpec(policy_class=RandomHeuristic),
111
- },
112
- policy_mapping_fn=select_policy,
113
- policies_to_train=["learned"],
114
- )
115
- .callbacks(
116
- create_self_play_callback(
117
- win_rate_thr=args.win_rate_threshold,
118
- opponent_policies=["always_same", "beat_last", "random", "linear"],
119
- opponent_count=15,
120
- )
121
- )
122
- .evaluation(evaluation_interval=1)
123
- )
124
-
125
- if args.from_checkpoint is None:
126
- stop = {
127
- "timesteps_total": args.stop_timesteps,
128
- "training_iteration": args.stop_iters,
129
- }
130
-
131
- results = tune.Tuner(
132
- "PPO",
133
- param_space=config.to_dict(),
134
- run_config=air.RunConfig(
135
- stop=stop,
136
- verbose=2,
137
- progress_reporter=CLIReporter(
138
- metric_columns={
139
- "training_iteration": "iter",
140
- "time_total_s": "time_total_s",
141
- "timesteps_total": "ts",
142
- "episodes_this_iter": "train_episodes",
143
- "policy_reward_mean/learned": "reward",
144
- "win_rate": "win_rate",
145
- "league_size": "league_size",
146
- },
147
- mode="max",
148
- metric="win_rate",
149
- sort_by_metric=True,
150
- ),
151
- checkpoint_config=air.CheckpointConfig(
152
- num_to_keep=10,
153
- checkpoint_at_end=True,
154
- checkpoint_frequency=10,
155
- checkpoint_score_order="max",
156
- ),
157
- ),
158
- ).fit()
159
-
160
- best_checkpoint = results.get_best_result(
161
- metric="win_rate", mode="max"
162
- ).checkpoint
163
- print("Best checkpoint", best_checkpoint)
164
-
165
- else:
166
- algo = Algorithm.from_checkpoint(checkpoint=args.from_checkpoint)
167
-
168
- config = algo.config.copy(False)
169
- config.checkpointing(export_native_model_files=True)
170
-
171
- opponent_policies = list(algo.workers.local_worker().policy_map.keys())
172
- opponent_policies.remove("learned")
173
- opponent_policies.sort()
174
-
175
- config.callbacks(
176
- create_self_play_callback(
177
- win_rate_thr=args.win_rate_threshold,
178
- opponent_policies=opponent_policies,
179
- opponent_count=len(opponent_policies),
180
- )
181
- )
182
- config.evaluation(evaluation_interval=None)
183
-
184
- analysis = tune.run(
185
- "PPO",
186
- config=config.to_dict(),
187
- restore=args.from_checkpoint,
188
- checkpoint_freq=10,
189
- checkpoint_at_end=True,
190
- keep_checkpoints_num=10,
191
- mode="max",
192
- metric="win_rate",
193
- stop={
194
- "win_rate": args.win_rate_threshold,
195
- "training_iteration": args.stop_iters,
196
- },
197
- progress_reporter=CLIReporter(
198
- metric_columns={
199
- "training_iteration": "iter",
200
- "time_total_s": "time_total_s",
201
- "timesteps_total": "ts",
202
- "episodes_this_iter": "train_episodes",
203
- "policy_reward_mean/learned": "reward",
204
- "win_rate": "win_rate",
205
- "league_size": "league_size",
206
- }
207
- ),
208
- )
209
-
210
- algo = Algorithm.from_checkpoint(analysis.best_checkpoint)
211
- ppo_policy = algo.get_policy("learned")
212
-
213
- # Save as torch model
214
- ppo_policy.export_model("models")
215
- # Save as ONNX model
216
- ppo_policy.export_model("models", onnx=11)
217
-
218
- print("Best checkpoint", analysis.best_checkpoint)
219
-
220
- ray.shutdown()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
connectfour/{training/wrappers.py → wrappers.py} RENAMED
File without changes
poetry.lock CHANGED
@@ -1,17 +1,5 @@
1
  # This file is automatically @generated by Poetry and should not be changed by hand.
2
 
3
- [[package]]
4
- name = "absl-py"
5
- version = "1.4.0"
6
- description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py."
7
- category = "main"
8
- optional = false
9
- python-versions = ">=3.6"
10
- files = [
11
- {file = "absl-py-1.4.0.tar.gz", hash = "sha256:d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"},
12
- {file = "absl_py-1.4.0-py3-none-any.whl", hash = "sha256:0d3fe606adfa4f7db64792dd4c7aee4ee0c38ab75dfd353b7a83ed3e957fcb47"},
13
- ]
14
-
15
  [[package]]
16
  name = "aiofiles"
17
  version = "23.1.0"
@@ -194,14 +182,14 @@ trio = ["trio (>=0.16,<0.22)"]
194
 
195
  [[package]]
196
  name = "astroid"
197
- version = "2.15.1"
198
  description = "An abstract syntax tree for Python with inference support."
199
  category = "dev"
200
  optional = false
201
  python-versions = ">=3.7.2"
202
  files = [
203
- {file = "astroid-2.15.1-py3-none-any.whl", hash = "sha256:89860bda98fe2bbd1f5d262229be7629d778ce280de68d95d4a73d1f592ad268"},
204
- {file = "astroid-2.15.1.tar.gz", hash = "sha256:af4e0aff46e2868218502789898269ed95b663fba49e65d91c1e09c966266c34"},
205
  ]
206
 
207
  [package.dependencies]
@@ -290,18 +278,6 @@ d = ["aiohttp (>=3.7.4)"]
290
  jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
291
  uvloop = ["uvloop (>=0.15.2)"]
292
 
293
- [[package]]
294
- name = "cachetools"
295
- version = "5.3.0"
296
- description = "Extensible memoizing collections and decorators"
297
- category = "main"
298
- optional = false
299
- python-versions = "~=3.7"
300
- files = [
301
- {file = "cachetools-5.3.0-py3-none-any.whl", hash = "sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4"},
302
- {file = "cachetools-5.3.0.tar.gz", hash = "sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14"},
303
- ]
304
-
305
  [[package]]
306
  name = "certifi"
307
  version = "2022.12.7"
@@ -573,18 +549,6 @@ files = [
573
  {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"},
574
  ]
575
 
576
- [[package]]
577
- name = "decorator"
578
- version = "5.1.1"
579
- description = "Decorators for Humans"
580
- category = "main"
581
- optional = false
582
- python-versions = ">=3.5"
583
- files = [
584
- {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
585
- {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
586
- ]
587
-
588
  [[package]]
589
  name = "dill"
590
  version = "0.3.6"
@@ -878,72 +842,16 @@ smb = ["smbprotocol"]
878
  ssh = ["paramiko"]
879
  tqdm = ["tqdm"]
880
 
881
- [[package]]
882
- name = "gast"
883
- version = "0.5.3"
884
- description = "Python AST that abstracts the underlying Python version"
885
- category = "main"
886
- optional = false
887
- python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
888
- files = [
889
- {file = "gast-0.5.3-py3-none-any.whl", hash = "sha256:211aac1e58c167b25d3504998f2db694454a24bb1fb1225bce99420166f21d6a"},
890
- {file = "gast-0.5.3.tar.gz", hash = "sha256:cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea"},
891
- ]
892
-
893
- [[package]]
894
- name = "google-auth"
895
- version = "2.17.1"
896
- description = "Google Authentication Library"
897
- category = "main"
898
- optional = false
899
- python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
900
- files = [
901
- {file = "google-auth-2.17.1.tar.gz", hash = "sha256:8f379b46bad381ad2a0b989dfb0c13ad28d3c2a79f27348213f8946a1d15d55a"},
902
- {file = "google_auth-2.17.1-py2.py3-none-any.whl", hash = "sha256:357ff22a75b4c0f6093470f21816a825d2adee398177569824e37b6c10069e19"},
903
- ]
904
-
905
- [package.dependencies]
906
- cachetools = ">=2.0.0,<6.0"
907
- pyasn1-modules = ">=0.2.1"
908
- rsa = {version = ">=3.1.4,<5", markers = "python_version >= \"3.6\""}
909
- six = ">=1.9.0"
910
-
911
- [package.extras]
912
- aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)", "requests (>=2.20.0,<3.0.0dev)"]
913
- enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"]
914
- pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"]
915
- reauth = ["pyu2f (>=0.1.5)"]
916
- requests = ["requests (>=2.20.0,<3.0.0dev)"]
917
-
918
- [[package]]
919
- name = "google-auth-oauthlib"
920
- version = "0.4.6"
921
- description = "Google Authentication Library"
922
- category = "main"
923
- optional = false
924
- python-versions = ">=3.6"
925
- files = [
926
- {file = "google-auth-oauthlib-0.4.6.tar.gz", hash = "sha256:a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a"},
927
- {file = "google_auth_oauthlib-0.4.6-py2.py3-none-any.whl", hash = "sha256:3f2a6e802eebbb6fb736a370fbf3b055edcb6b52878bf2f26330b5e041316c73"},
928
- ]
929
-
930
- [package.dependencies]
931
- google-auth = ">=1.0.0"
932
- requests-oauthlib = ">=0.7.0"
933
-
934
- [package.extras]
935
- tool = ["click (>=6.0.0)"]
936
-
937
  [[package]]
938
  name = "gradio"
939
- version = "3.24.0"
940
  description = "Python library for easily interacting with trained machine learning models"
941
  category = "main"
942
  optional = false
943
  python-versions = ">=3.7"
944
  files = [
945
- {file = "gradio-3.24.0-py3-none-any.whl", hash = "sha256:cedd67f7cbd17764b3613fb4df274a7c450c74e31a2e3229097d43cb4ffa50c7"},
946
- {file = "gradio-3.24.0.tar.gz", hash = "sha256:4ac2bf531b3c0ff5ec9e93959f2d1dbc49eac1767bafa2d80f8950a3bc40c4ed"},
947
  ]
948
 
949
  [package.dependencies]
@@ -1551,24 +1459,6 @@ files = [
1551
  {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"},
1552
  ]
1553
 
1554
- [[package]]
1555
- name = "libclang"
1556
- version = "15.0.6.1"
1557
- description = "Clang Python Bindings, mirrored from the official LLVM repo: https://github.com/llvm/llvm-project/tree/main/clang/bindings/python, to make the installation process easier."
1558
- category = "main"
1559
- optional = false
1560
- python-versions = "*"
1561
- files = [
1562
- {file = "libclang-15.0.6.1-py2.py3-none-macosx_10_9_x86_64.whl", hash = "sha256:8621795e07b87e17fc7aac9f071bc7fe6b52ed6110c0a96a9975d8113c8c2527"},
1563
- {file = "libclang-15.0.6.1-py2.py3-none-manylinux2010_x86_64.whl", hash = "sha256:69b01a23ab543908a661532595daa23cf88bd96d80e41f58ba0eaa6a378fe0d8"},
1564
- {file = "libclang-15.0.6.1-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:4a5188184b937132c198ee9de9a8a2316d5fdd1a825398d5ad1a8f5e06f9b40e"},
1565
- {file = "libclang-15.0.6.1-py2.py3-none-manylinux2014_armv7l.whl", hash = "sha256:f7ffa02ac5e586cfffde039dcccc439d88d0feac7d77bf9426d9ba7543d16545"},
1566
- {file = "libclang-15.0.6.1-py2.py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:aaebb6aa1db73bac3a0ac41e57ef78743079eb68728adbf7e80ee917ae171529"},
1567
- {file = "libclang-15.0.6.1-py2.py3-none-win_amd64.whl", hash = "sha256:85afb47630d2070e74b886040ceea1846097ca53cc88d0f1d7751d0f49220028"},
1568
- {file = "libclang-15.0.6.1-py2.py3-none-win_arm64.whl", hash = "sha256:687d8549c110c700fece58dd87727421d0710fdd111aa7eecb01faf8e3f50d4e"},
1569
- {file = "libclang-15.0.6.1.tar.gz", hash = "sha256:a1a8fe038af2962c787c5bac81bfa4b82bb8e279e61e70cc934c10f6e20c73ec"},
1570
- ]
1571
-
1572
  [[package]]
1573
  name = "linkify-it-py"
1574
  version = "2.0.0"
@@ -1651,24 +1541,6 @@ docs = ["sphinx (>=1.6.0)", "sphinx-bootstrap-theme"]
1651
  flake8 = ["flake8"]
1652
  tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"]
1653
 
1654
- [[package]]
1655
- name = "markdown"
1656
- version = "3.4.3"
1657
- description = "Python implementation of John Gruber's Markdown."
1658
- category = "main"
1659
- optional = false
1660
- python-versions = ">=3.7"
1661
- files = [
1662
- {file = "Markdown-3.4.3-py3-none-any.whl", hash = "sha256:065fd4df22da73a625f14890dd77eb8040edcbd68794bcd35943be14490608b2"},
1663
- {file = "Markdown-3.4.3.tar.gz", hash = "sha256:8bf101198e004dc93e84a12a7395e31aac6a9c9942848ae1d99b9d72cf9b3520"},
1664
- ]
1665
-
1666
- [package.dependencies]
1667
- importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
1668
-
1669
- [package.extras]
1670
- testing = ["coverage", "pyyaml"]
1671
-
1672
  [[package]]
1673
  name = "markdown-it-py"
1674
  version = "2.2.0"
@@ -2322,62 +2194,6 @@ files = [
2322
  setuptools = "*"
2323
  wheel = "*"
2324
 
2325
- [[package]]
2326
- name = "oauthlib"
2327
- version = "3.2.2"
2328
- description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
2329
- category = "main"
2330
- optional = false
2331
- python-versions = ">=3.6"
2332
- files = [
2333
- {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"},
2334
- {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"},
2335
- ]
2336
-
2337
- [package.extras]
2338
- rsa = ["cryptography (>=3.0.0)"]
2339
- signals = ["blinker (>=1.4.0)"]
2340
- signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
2341
-
2342
- [[package]]
2343
- name = "onnx"
2344
- version = "1.12.0"
2345
- description = "Open Neural Network Exchange"
2346
- category = "main"
2347
- optional = false
2348
- python-versions = "*"
2349
- files = [
2350
- {file = "onnx-1.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:bdbd2578424c70836f4d0f9dda16c21868ddb07cc8192f9e8a176908b43d694b"},
2351
- {file = "onnx-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213e73610173f6b2e99f99a4b0636f80b379c417312079d603806e48ada4ca8b"},
2352
- {file = "onnx-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fd2f4e23078df197bb76a59b9cd8f5a43a6ad2edc035edb3ecfb9042093e05a"},
2353
- {file = "onnx-1.12.0-cp310-cp310-win32.whl", hash = "sha256:23781594bb8b7ee985de1005b3c601648d5b0568a81e01365c48f91d1f5648e4"},
2354
- {file = "onnx-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:81a3555fd67be2518bf86096299b48fb9154652596219890abfe90bd43a9ec13"},
2355
- {file = "onnx-1.12.0-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:5578b93dc6c918cec4dee7fb7d9dd3b09d338301ee64ca8b4f28bc217ed42dca"},
2356
- {file = "onnx-1.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c11162ffc487167da140f1112f49c4f82d815824f06e58bc3095407699f05863"},
2357
- {file = "onnx-1.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:341c7016e23273e9ffa9b6e301eee95b8c37d0f04df7cedbdb169d2c39524c96"},
2358
- {file = "onnx-1.12.0-cp37-cp37m-win32.whl", hash = "sha256:3c6e6bcffc3f5c1e148df3837dc667fa4c51999788c1b76b0b8fbba607e02da8"},
2359
- {file = "onnx-1.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8a7aa61aea339bd28f310f4af4f52ce6c4b876386228760b16308efd58f95059"},
2360
- {file = "onnx-1.12.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:56ceb7e094c43882b723cfaa107d85ad673cfdf91faeb28d7dcadacca4f43a07"},
2361
- {file = "onnx-1.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3629e8258db15d4e2c9b7f1be91a3186719dd94661c218c6f5fde3cc7de3d4d"},
2362
- {file = "onnx-1.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d9a7db54e75529160337232282a4816cc50667dc7dc34be178fd6f6b79d4705"},
2363
- {file = "onnx-1.12.0-cp38-cp38-win32.whl", hash = "sha256:fea5156a03398fe0e23248042d8651c1eaac5f6637d4dd683b4c1f1320b9f7b4"},
2364
- {file = "onnx-1.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:f66d2996e65f490a57b3ae952e4e9189b53cc9fe3f75e601d50d4db2dc1b1cd9"},
2365
- {file = "onnx-1.12.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c39a7a0352c856f1df30dccf527eb6cb4909052e5eaf6fa2772a637324c526aa"},
2366
- {file = "onnx-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fab13feb4d94342aae6d357d480f2e47d41b9f4e584367542b21ca6defda9e0a"},
2367
- {file = "onnx-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7a9b3ea02c30efc1d2662337e280266aca491a8e86be0d8a657f874b7cccd1e"},
2368
- {file = "onnx-1.12.0-cp39-cp39-win32.whl", hash = "sha256:f8800f28c746ab06e51ef8449fd1215621f4ddba91be3ffc264658937d38a2af"},
2369
- {file = "onnx-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:af90427ca04c6b7b8107c2021e1273227a3ef1a7a01f3073039cae7855a59833"},
2370
- {file = "onnx-1.12.0.tar.gz", hash = "sha256:13b3e77d27523b9dbf4f30dfc9c959455859d5e34e921c44f712d69b8369eff9"},
2371
- ]
2372
-
2373
- [package.dependencies]
2374
- numpy = ">=1.16.6"
2375
- protobuf = ">=3.12.2,<=3.20.1"
2376
- typing-extensions = ">=3.6.2.1"
2377
-
2378
- [package.extras]
2379
- lint = ["clang-format (==13.0.0)", "flake8", "mypy (==0.782)", "types-protobuf (==3.18.4)"]
2380
-
2381
  [[package]]
2382
  name = "onnxruntime"
2383
  version = "1.14.1"
@@ -2500,39 +2316,37 @@ files = [
2500
 
2501
  [[package]]
2502
  name = "pandas"
2503
- version = "1.5.3"
2504
  description = "Powerful data structures for data analysis, time series, and statistics"
2505
  category = "main"
2506
  optional = false
2507
  python-versions = ">=3.8"
2508
  files = [
2509
- {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"},
2510
- {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"},
2511
- {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"},
2512
- {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"},
2513
- {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"},
2514
- {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"},
2515
- {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"},
2516
- {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"},
2517
- {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"},
2518
- {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"},
2519
- {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"},
2520
- {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"},
2521
- {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"},
2522
- {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"},
2523
- {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"},
2524
- {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"},
2525
- {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"},
2526
- {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"},
2527
- {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"},
2528
- {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"},
2529
- {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"},
2530
- {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"},
2531
- {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"},
2532
- {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"},
2533
- {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"},
2534
- {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"},
2535
- {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"},
2536
  ]
2537
 
2538
  [package.dependencies]
@@ -2540,11 +2354,32 @@ numpy = [
2540
  {version = ">=1.20.3", markers = "python_version < \"3.10\""},
2541
  {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
2542
  ]
2543
- python-dateutil = ">=2.8.1"
2544
  pytz = ">=2020.1"
2545
-
2546
- [package.extras]
2547
- test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2548
 
2549
  [[package]]
2550
  name = "pathspec"
@@ -2586,86 +2421,82 @@ testing = ["AutoROM", "pre-commit", "pynput", "pytest", "pytest-cov"]
2586
 
2587
  [[package]]
2588
  name = "pillow"
2589
- version = "9.4.0"
2590
  description = "Python Imaging Library (Fork)"
2591
  category = "main"
2592
  optional = false
2593
  python-versions = ">=3.7"
2594
  files = [
2595
- {file = "Pillow-9.4.0-1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1"},
2596
- {file = "Pillow-9.4.0-1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12"},
2597
- {file = "Pillow-9.4.0-1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd"},
2598
- {file = "Pillow-9.4.0-1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9"},
2599
- {file = "Pillow-9.4.0-1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858"},
2600
- {file = "Pillow-9.4.0-1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab"},
2601
- {file = "Pillow-9.4.0-1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9"},
2602
- {file = "Pillow-9.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157"},
2603
- {file = "Pillow-9.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47"},
2604
- {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343"},
2605
- {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d"},
2606
- {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57"},
2607
- {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5"},
2608
- {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070"},
2609
- {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28"},
2610
- {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35"},
2611
- {file = "Pillow-9.4.0-cp310-cp310-win32.whl", hash = "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a"},
2612
- {file = "Pillow-9.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391"},
2613
- {file = "Pillow-9.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133"},
2614
- {file = "Pillow-9.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132"},
2615
- {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0"},
2616
- {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35"},
2617
- {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab"},
2618
- {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4"},
2619
- {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d"},
2620
- {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8"},
2621
- {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a"},
2622
- {file = "Pillow-9.4.0-cp311-cp311-win32.whl", hash = "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c"},
2623
- {file = "Pillow-9.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee"},
2624
- {file = "Pillow-9.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493"},
2625
- {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327"},
2626
- {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe"},
2627
- {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57"},
2628
- {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4"},
2629
- {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5"},
2630
- {file = "Pillow-9.4.0-cp37-cp37m-win32.whl", hash = "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e"},
2631
- {file = "Pillow-9.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6"},
2632
- {file = "Pillow-9.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9"},
2633
- {file = "Pillow-9.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011"},
2634
- {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df"},
2635
- {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837"},
2636
- {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b"},
2637
- {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d"},
2638
- {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b"},
2639
- {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f"},
2640
- {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628"},
2641
- {file = "Pillow-9.4.0-cp38-cp38-win32.whl", hash = "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d"},
2642
- {file = "Pillow-9.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a"},
2643
- {file = "Pillow-9.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569"},
2644
- {file = "Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed"},
2645
- {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815"},
2646
- {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264"},
2647
- {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e"},
2648
- {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503"},
2649
- {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6"},
2650
- {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2"},
2651
- {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153"},
2652
- {file = "Pillow-9.4.0-cp39-cp39-win32.whl", hash = "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c"},
2653
- {file = "Pillow-9.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b"},
2654
- {file = "Pillow-9.4.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5"},
2655
- {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286"},
2656
- {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd"},
2657
- {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df"},
2658
- {file = "Pillow-9.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336"},
2659
- {file = "Pillow-9.4.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3"},
2660
- {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa"},
2661
- {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb"},
2662
- {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a"},
2663
- {file = "Pillow-9.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9"},
2664
- {file = "Pillow-9.4.0.tar.gz", hash = "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e"},
2665
- ]
2666
-
2667
- [package.extras]
2668
- docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"]
2669
  tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
2670
 
2671
  [[package]]
@@ -2714,66 +2545,27 @@ testing = ["pytest", "pytest-benchmark"]
2714
 
2715
  [[package]]
2716
  name = "protobuf"
2717
- version = "3.19.6"
2718
- description = "Protocol Buffers"
2719
- category = "main"
2720
- optional = false
2721
- python-versions = ">=3.5"
2722
- files = [
2723
- {file = "protobuf-3.19.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:010be24d5a44be7b0613750ab40bc8b8cedc796db468eae6c779b395f50d1fa1"},
2724
- {file = "protobuf-3.19.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11478547958c2dfea921920617eb457bc26867b0d1aa065ab05f35080c5d9eb6"},
2725
- {file = "protobuf-3.19.6-cp310-cp310-win32.whl", hash = "sha256:559670e006e3173308c9254d63facb2c03865818f22204037ab76f7a0ff70b5f"},
2726
- {file = "protobuf-3.19.6-cp310-cp310-win_amd64.whl", hash = "sha256:347b393d4dd06fb93a77620781e11c058b3b0a5289262f094379ada2920a3730"},
2727
- {file = "protobuf-3.19.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a8ce5ae0de28b51dff886fb922012dad885e66176663950cb2344c0439ecb473"},
2728
- {file = "protobuf-3.19.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90b0d02163c4e67279ddb6dc25e063db0130fc299aefabb5d481053509fae5c8"},
2729
- {file = "protobuf-3.19.6-cp36-cp36m-win32.whl", hash = "sha256:30f5370d50295b246eaa0296533403961f7e64b03ea12265d6dfce3a391d8992"},
2730
- {file = "protobuf-3.19.6-cp36-cp36m-win_amd64.whl", hash = "sha256:0c0714b025ec057b5a7600cb66ce7c693815f897cfda6d6efb58201c472e3437"},
2731
- {file = "protobuf-3.19.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5057c64052a1f1dd7d4450e9aac25af6bf36cfbfb3a1cd89d16393a036c49157"},
2732
- {file = "protobuf-3.19.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:bb6776bd18f01ffe9920e78e03a8676530a5d6c5911934c6a1ac6eb78973ecb6"},
2733
- {file = "protobuf-3.19.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84a04134866861b11556a82dd91ea6daf1f4925746b992f277b84013a7cc1229"},
2734
- {file = "protobuf-3.19.6-cp37-cp37m-win32.whl", hash = "sha256:4bc98de3cdccfb5cd769620d5785b92c662b6bfad03a202b83799b6ed3fa1fa7"},
2735
- {file = "protobuf-3.19.6-cp37-cp37m-win_amd64.whl", hash = "sha256:aa3b82ca1f24ab5326dcf4ea00fcbda703e986b22f3d27541654f749564d778b"},
2736
- {file = "protobuf-3.19.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2b2d2913bcda0e0ec9a784d194bc490f5dc3d9d71d322d070b11a0ade32ff6ba"},
2737
- {file = "protobuf-3.19.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d0b635cefebd7a8a0f92020562dead912f81f401af7e71f16bf9506ff3bdbb38"},
2738
- {file = "protobuf-3.19.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a552af4dc34793803f4e735aabe97ffc45962dfd3a237bdde242bff5a3de684"},
2739
- {file = "protobuf-3.19.6-cp38-cp38-win32.whl", hash = "sha256:0469bc66160180165e4e29de7f445e57a34ab68f49357392c5b2f54c656ab25e"},
2740
- {file = "protobuf-3.19.6-cp38-cp38-win_amd64.whl", hash = "sha256:91d5f1e139ff92c37e0ff07f391101df77e55ebb97f46bbc1535298d72019462"},
2741
- {file = "protobuf-3.19.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c0ccd3f940fe7f3b35a261b1dd1b4fc850c8fde9f74207015431f174be5976b3"},
2742
- {file = "protobuf-3.19.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:30a15015d86b9c3b8d6bf78d5b8c7749f2512c29f168ca259c9d7727604d0e39"},
2743
- {file = "protobuf-3.19.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:878b4cd080a21ddda6ac6d1e163403ec6eea2e206cf225982ae04567d39be7b0"},
2744
- {file = "protobuf-3.19.6-cp39-cp39-win32.whl", hash = "sha256:5a0d7539a1b1fb7e76bf5faa0b44b30f812758e989e59c40f77a7dab320e79b9"},
2745
- {file = "protobuf-3.19.6-cp39-cp39-win_amd64.whl", hash = "sha256:bbf5cea5048272e1c60d235c7bd12ce1b14b8a16e76917f371c718bd3005f045"},
2746
- {file = "protobuf-3.19.6-py2.py3-none-any.whl", hash = "sha256:14082457dc02be946f60b15aad35e9f5c69e738f80ebbc0900a19bc83734a5a4"},
2747
- {file = "protobuf-3.19.6.tar.gz", hash = "sha256:5f5540d57a43042389e87661c6eaa50f47c19c6176e8cf1c4f287aeefeccb5c4"},
2748
- ]
2749
-
2750
- [[package]]
2751
- name = "pyasn1"
2752
- version = "0.4.8"
2753
- description = "ASN.1 types and codecs"
2754
- category = "main"
2755
- optional = false
2756
- python-versions = "*"
2757
- files = [
2758
- {file = "pyasn1-0.4.8-py2.py3-none-any.whl", hash = "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"},
2759
- {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"},
2760
- ]
2761
-
2762
- [[package]]
2763
- name = "pyasn1-modules"
2764
- version = "0.2.8"
2765
- description = "A collection of ASN.1-based protocols modules."
2766
  category = "main"
2767
  optional = false
2768
- python-versions = "*"
2769
  files = [
2770
- {file = "pyasn1-modules-0.2.8.tar.gz", hash = "sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"},
2771
- {file = "pyasn1_modules-0.2.8-py2.py3-none-any.whl", hash = "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74"},
 
 
 
 
 
 
 
 
 
 
 
2772
  ]
2773
 
2774
- [package.dependencies]
2775
- pyasn1 = ">=0.4.6,<0.5.0"
2776
-
2777
  [[package]]
2778
  name = "pydantic"
2779
  version = "1.10.7"
@@ -2934,18 +2726,18 @@ plugins = ["importlib-metadata"]
2934
 
2935
  [[package]]
2936
  name = "pylint"
2937
- version = "2.17.1"
2938
  description = "python code static checker"
2939
  category = "dev"
2940
  optional = false
2941
  python-versions = ">=3.7.2"
2942
  files = [
2943
- {file = "pylint-2.17.1-py3-none-any.whl", hash = "sha256:8660a54e3f696243d644fca98f79013a959c03f979992c1ab59c24d3f4ec2700"},
2944
- {file = "pylint-2.17.1.tar.gz", hash = "sha256:d4d009b0116e16845533bc2163493d6681846ac725eab8ca8014afb520178ddd"},
2945
  ]
2946
 
2947
  [package.dependencies]
2948
- astroid = ">=2.15.0,<=2.17.0-dev0"
2949
  colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
2950
  dill = {version = ">=0.2", markers = "python_version < \"3.11\""}
2951
  isort = ">=4.2.5,<6"
@@ -3278,25 +3070,6 @@ urllib3 = ">=1.21.1,<1.27"
3278
  socks = ["PySocks (>=1.5.6,!=1.5.7)"]
3279
  use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
3280
 
3281
- [[package]]
3282
- name = "requests-oauthlib"
3283
- version = "1.3.1"
3284
- description = "OAuthlib authentication support for Requests."
3285
- category = "main"
3286
- optional = false
3287
- python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
3288
- files = [
3289
- {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"},
3290
- {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"},
3291
- ]
3292
-
3293
- [package.dependencies]
3294
- oauthlib = ">=3.0.0"
3295
- requests = ">=2.0.0"
3296
-
3297
- [package.extras]
3298
- rsa = ["oauthlib[signedtoken] (>=3.0.0)"]
3299
-
3300
  [[package]]
3301
  name = "rfc3986"
3302
  version = "1.5.0"
@@ -3335,21 +3108,6 @@ typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9
3335
  [package.extras]
3336
  jupyter = ["ipywidgets (>=7.5.1,<9)"]
3337
 
3338
- [[package]]
3339
- name = "rsa"
3340
- version = "4.9"
3341
- description = "Pure-Python RSA implementation"
3342
- category = "main"
3343
- optional = false
3344
- python-versions = ">=3.6,<4"
3345
- files = [
3346
- {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"},
3347
- {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"},
3348
- ]
3349
-
3350
- [package.dependencies]
3351
- pyasn1 = ">=0.1.3"
3352
-
3353
  [[package]]
3354
  name = "scikit-image"
3355
  version = "0.20.0"
@@ -3546,96 +3304,22 @@ files = [
3546
  [package.extras]
3547
  widechars = ["wcwidth"]
3548
 
3549
- [[package]]
3550
- name = "tensorboard"
3551
- version = "2.12.0"
3552
- description = "TensorBoard lets you watch Tensors Flow"
3553
- category = "main"
3554
- optional = false
3555
- python-versions = ">=3.8"
3556
- files = [
3557
- {file = "tensorboard-2.12.0-py3-none-any.whl", hash = "sha256:3cbdc32448d7a28dc1bf0b1754760c08b8e0e2e37c451027ebd5ff4896613012"},
3558
- ]
3559
-
3560
- [package.dependencies]
3561
- absl-py = ">=0.4"
3562
- google-auth = ">=1.6.3,<3"
3563
- google-auth-oauthlib = ">=0.4.1,<0.5"
3564
- grpcio = ">=1.48.2"
3565
- markdown = ">=2.6.8"
3566
- numpy = ">=1.12.0"
3567
- protobuf = ">=3.19.6"
3568
- requests = ">=2.21.0,<3"
3569
- setuptools = ">=41.0.0"
3570
- tensorboard-data-server = ">=0.7.0,<0.8.0"
3571
- tensorboard-plugin-wit = ">=1.6.0"
3572
- werkzeug = ">=1.0.1"
3573
- wheel = ">=0.26"
3574
-
3575
- [[package]]
3576
- name = "tensorboard-data-server"
3577
- version = "0.7.0"
3578
- description = "Fast data loading for TensorBoard"
3579
- category = "main"
3580
- optional = false
3581
- python-versions = ">=3.7"
3582
- files = [
3583
- {file = "tensorboard_data_server-0.7.0-py3-none-any.whl", hash = "sha256:753d4214799b31da7b6d93837959abebbc6afa86e69eacf1e9a317a48daa31eb"},
3584
- {file = "tensorboard_data_server-0.7.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:eb7fa518737944dbf4f0cf83c2e40a7ac346bf91be2e6a0215de98be74e85454"},
3585
- {file = "tensorboard_data_server-0.7.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:64aa1be7c23e80b1a42c13b686eb0875bb70f5e755f4d2b8de5c1d880cf2267f"},
3586
- ]
3587
-
3588
- [[package]]
3589
- name = "tensorboard-plugin-wit"
3590
- version = "1.8.1"
3591
- description = "What-If Tool TensorBoard plugin."
3592
- category = "main"
3593
- optional = false
3594
- python-versions = "*"
3595
- files = [
3596
- {file = "tensorboard_plugin_wit-1.8.1-py3-none-any.whl", hash = "sha256:ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe"},
3597
- ]
3598
-
3599
  [[package]]
3600
  name = "tensorboardx"
3601
- version = "2.6"
3602
  description = "TensorBoardX lets you watch Tensors Flow without Tensorflow"
3603
  category = "main"
3604
  optional = false
3605
  python-versions = "*"
3606
  files = [
3607
- {file = "tensorboardX-2.6-py2.py3-none-any.whl", hash = "sha256:24a7cd076488de1e9d15ef25371b8ebf90c4f8f622af2477c611198f03f4a606"},
3608
- {file = "tensorboardX-2.6.tar.gz", hash = "sha256:d4c036964dd2deb075a1909832b276daa383eab3f9db519ad90b99f5aea06b0c"},
3609
  ]
3610
 
3611
  [package.dependencies]
3612
  numpy = "*"
3613
- packaging = "*"
3614
- protobuf = ">=3.8.0,<4"
3615
-
3616
- [[package]]
3617
- name = "tensorflow-probability"
3618
- version = "0.19.0"
3619
- description = "Probabilistic modeling and statistical inference in TensorFlow"
3620
- category = "main"
3621
- optional = false
3622
- python-versions = "*"
3623
- files = [
3624
- {file = "tensorflow_probability-0.19.0-py2.py3-none-any.whl", hash = "sha256:ee70967fbd52b09e9c5ec148a9437c4cf3f9e9d689cdca400a1bc921f21cdcac"},
3625
- ]
3626
-
3627
- [package.dependencies]
3628
- absl-py = "*"
3629
- cloudpickle = ">=1.3"
3630
- decorator = "*"
3631
- dm-tree = "*"
3632
- gast = ">=0.3.2"
3633
- numpy = ">=1.13.3"
3634
- six = ">=1.10.0"
3635
-
3636
- [package.extras]
3637
- jax = ["jax", "jaxlib"]
3638
- tfds = ["tensorflow-datasets (>=2.2.0)"]
3639
 
3640
  [[package]]
3641
  name = "tifffile"
@@ -3839,6 +3523,18 @@ files = [
3839
  {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"},
3840
  ]
3841
 
 
 
 
 
 
 
 
 
 
 
 
 
3842
  [[package]]
3843
  name = "uc-micro-py"
3844
  version = "1.0.1"
@@ -3913,101 +3609,84 @@ test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess
3913
 
3914
  [[package]]
3915
  name = "websockets"
3916
- version = "10.4"
3917
  description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
3918
  category = "main"
3919
  optional = false
3920
  python-versions = ">=3.7"
3921
  files = [
3922
- {file = "websockets-10.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d58804e996d7d2307173d56c297cf7bc132c52df27a3efaac5e8d43e36c21c48"},
3923
- {file = "websockets-10.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc0b82d728fe21a0d03e65f81980abbbcb13b5387f733a1a870672c5be26edab"},
3924
- {file = "websockets-10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ba089c499e1f4155d2a3c2a05d2878a3428cf321c848f2b5a45ce55f0d7d310c"},
3925
- {file = "websockets-10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33d69ca7612f0ddff3316b0c7b33ca180d464ecac2d115805c044bf0a3b0d032"},
3926
- {file = "websockets-10.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62e627f6b6d4aed919a2052efc408da7a545c606268d5ab5bfab4432734b82b4"},
3927
- {file = "websockets-10.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ea7b82bfcae927eeffc55d2ffa31665dc7fec7b8dc654506b8e5a518eb4d50"},
3928
- {file = "websockets-10.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e0cb5cc6ece6ffa75baccfd5c02cffe776f3f5c8bf486811f9d3ea3453676ce8"},
3929
- {file = "websockets-10.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ae5e95cfb53ab1da62185e23b3130e11d64431179debac6dc3c6acf08760e9b1"},
3930
- {file = "websockets-10.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7c584f366f46ba667cfa66020344886cf47088e79c9b9d39c84ce9ea98aaa331"},
3931
- {file = "websockets-10.4-cp310-cp310-win32.whl", hash = "sha256:b029fb2032ae4724d8ae8d4f6b363f2cc39e4c7b12454df8df7f0f563ed3e61a"},
3932
- {file = "websockets-10.4-cp310-cp310-win_amd64.whl", hash = "sha256:8dc96f64ae43dde92530775e9cb169979f414dcf5cff670455d81a6823b42089"},
3933
- {file = "websockets-10.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47a2964021f2110116cc1125b3e6d87ab5ad16dea161949e7244ec583b905bb4"},
3934
- {file = "websockets-10.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e789376b52c295c4946403bd0efecf27ab98f05319df4583d3c48e43c7342c2f"},
3935
- {file = "websockets-10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7d3f0b61c45c3fa9a349cf484962c559a8a1d80dae6977276df8fd1fa5e3cb8c"},
3936
- {file = "websockets-10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f55b5905705725af31ccef50e55391621532cd64fbf0bc6f4bac935f0fccec46"},
3937
- {file = "websockets-10.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00c870522cdb69cd625b93f002961ffb0c095394f06ba8c48f17eef7c1541f96"},
3938
- {file = "websockets-10.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f38706e0b15d3c20ef6259fd4bc1700cd133b06c3c1bb108ffe3f8947be15fa"},
3939
- {file = "websockets-10.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f2c38d588887a609191d30e902df2a32711f708abfd85d318ca9b367258cfd0c"},
3940
- {file = "websockets-10.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:fe10ddc59b304cb19a1bdf5bd0a7719cbbc9fbdd57ac80ed436b709fcf889106"},
3941
- {file = "websockets-10.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:90fcf8929836d4a0e964d799a58823547df5a5e9afa83081761630553be731f9"},
3942
- {file = "websockets-10.4-cp311-cp311-win32.whl", hash = "sha256:b9968694c5f467bf67ef97ae7ad4d56d14be2751000c1207d31bf3bb8860bae8"},
3943
- {file = "websockets-10.4-cp311-cp311-win_amd64.whl", hash = "sha256:a7a240d7a74bf8d5cb3bfe6be7f21697a28ec4b1a437607bae08ac7acf5b4882"},
3944
- {file = "websockets-10.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:74de2b894b47f1d21cbd0b37a5e2b2392ad95d17ae983e64727e18eb281fe7cb"},
3945
- {file = "websockets-10.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3a686ecb4aa0d64ae60c9c9f1a7d5d46cab9bfb5d91a2d303d00e2cd4c4c5cc"},
3946
- {file = "websockets-10.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d15c968ea7a65211e084f523151dbf8ae44634de03c801b8bd070b74e85033"},
3947
- {file = "websockets-10.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00213676a2e46b6ebf6045bc11d0f529d9120baa6f58d122b4021ad92adabd41"},
3948
- {file = "websockets-10.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:e23173580d740bf8822fd0379e4bf30aa1d5a92a4f252d34e893070c081050df"},
3949
- {file = "websockets-10.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:dd500e0a5e11969cdd3320935ca2ff1e936f2358f9c2e61f100a1660933320ea"},
3950
- {file = "websockets-10.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4239b6027e3d66a89446908ff3027d2737afc1a375f8fd3eea630a4842ec9a0c"},
3951
- {file = "websockets-10.4-cp37-cp37m-win32.whl", hash = "sha256:8a5cc00546e0a701da4639aa0bbcb0ae2bb678c87f46da01ac2d789e1f2d2038"},
3952
- {file = "websockets-10.4-cp37-cp37m-win_amd64.whl", hash = "sha256:a9f9a735deaf9a0cadc2d8c50d1a5bcdbae8b6e539c6e08237bc4082d7c13f28"},
3953
- {file = "websockets-10.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c1289596042fad2cdceb05e1ebf7aadf9995c928e0da2b7a4e99494953b1b94"},
3954
- {file = "websockets-10.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0cff816f51fb33c26d6e2b16b5c7d48eaa31dae5488ace6aae468b361f422b63"},
3955
- {file = "websockets-10.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:dd9becd5fe29773d140d68d607d66a38f60e31b86df75332703757ee645b6faf"},
3956
- {file = "websockets-10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45ec8e75b7dbc9539cbfafa570742fe4f676eb8b0d3694b67dabe2f2ceed8aa6"},
3957
- {file = "websockets-10.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f72e5cd0f18f262f5da20efa9e241699e0cf3a766317a17392550c9ad7b37d8"},
3958
- {file = "websockets-10.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:185929b4808b36a79c65b7865783b87b6841e852ef5407a2fb0c03381092fa3b"},
3959
- {file = "websockets-10.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7d27a7e34c313b3a7f91adcd05134315002aaf8540d7b4f90336beafaea6217c"},
3960
- {file = "websockets-10.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:884be66c76a444c59f801ac13f40c76f176f1bfa815ef5b8ed44321e74f1600b"},
3961
- {file = "websockets-10.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:931c039af54fc195fe6ad536fde4b0de04da9d5916e78e55405436348cfb0e56"},
3962
- {file = "websockets-10.4-cp38-cp38-win32.whl", hash = "sha256:db3c336f9eda2532ec0fd8ea49fef7a8df8f6c804cdf4f39e5c5c0d4a4ad9a7a"},
3963
- {file = "websockets-10.4-cp38-cp38-win_amd64.whl", hash = "sha256:48c08473563323f9c9debac781ecf66f94ad5a3680a38fe84dee5388cf5acaf6"},
3964
- {file = "websockets-10.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:40e826de3085721dabc7cf9bfd41682dadc02286d8cf149b3ad05bff89311e4f"},
3965
- {file = "websockets-10.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:56029457f219ade1f2fc12a6504ea61e14ee227a815531f9738e41203a429112"},
3966
- {file = "websockets-10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f5fc088b7a32f244c519a048c170f14cf2251b849ef0e20cbbb0fdf0fdaf556f"},
3967
- {file = "websockets-10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fc8709c00704194213d45e455adc106ff9e87658297f72d544220e32029cd3d"},
3968
- {file = "websockets-10.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0154f7691e4fe6c2b2bc275b5701e8b158dae92a1ab229e2b940efe11905dff4"},
3969
- {file = "websockets-10.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c6d2264f485f0b53adf22697ac11e261ce84805c232ed5dbe6b1bcb84b00ff0"},
3970
- {file = "websockets-10.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9bc42e8402dc5e9905fb8b9649f57efcb2056693b7e88faa8fb029256ba9c68c"},
3971
- {file = "websockets-10.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:edc344de4dac1d89300a053ac973299e82d3db56330f3494905643bb68801269"},
3972
- {file = "websockets-10.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:84bc2a7d075f32f6ed98652db3a680a17a4edb21ca7f80fe42e38753a58ee02b"},
3973
- {file = "websockets-10.4-cp39-cp39-win32.whl", hash = "sha256:c94ae4faf2d09f7c81847c63843f84fe47bf6253c9d60b20f25edfd30fb12588"},
3974
- {file = "websockets-10.4-cp39-cp39-win_amd64.whl", hash = "sha256:bbccd847aa0c3a69b5f691a84d2341a4f8a629c6922558f2a70611305f902d74"},
3975
- {file = "websockets-10.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:82ff5e1cae4e855147fd57a2863376ed7454134c2bf49ec604dfe71e446e2193"},
3976
- {file = "websockets-10.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d210abe51b5da0ffdbf7b43eed0cfdff8a55a1ab17abbec4301c9ff077dd0342"},
3977
- {file = "websockets-10.4-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:942de28af58f352a6f588bc72490ae0f4ccd6dfc2bd3de5945b882a078e4e179"},
3978
- {file = "websockets-10.4-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9b27d6c1c6cd53dc93614967e9ce00ae7f864a2d9f99fe5ed86706e1ecbf485"},
3979
- {file = "websockets-10.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:3d3cac3e32b2c8414f4f87c1b2ab686fa6284a980ba283617404377cd448f631"},
3980
- {file = "websockets-10.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:da39dd03d130162deb63da51f6e66ed73032ae62e74aaccc4236e30edccddbb0"},
3981
- {file = "websockets-10.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389f8dbb5c489e305fb113ca1b6bdcdaa130923f77485db5b189de343a179393"},
3982
- {file = "websockets-10.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09a1814bb15eff7069e51fed0826df0bc0702652b5cb8f87697d469d79c23576"},
3983
- {file = "websockets-10.4-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff64a1d38d156d429404aaa84b27305e957fd10c30e5880d1765c9480bea490f"},
3984
- {file = "websockets-10.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b343f521b047493dc4022dd338fc6db9d9282658862756b4f6fd0e996c1380e1"},
3985
- {file = "websockets-10.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:932af322458da7e4e35df32f050389e13d3d96b09d274b22a7aa1808f292fee4"},
3986
- {file = "websockets-10.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a4162139374a49eb18ef5b2f4da1dd95c994588f5033d64e0bbfda4b6b6fcf"},
3987
- {file = "websockets-10.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c57e4c1349fbe0e446c9fa7b19ed2f8a4417233b6984277cce392819123142d3"},
3988
- {file = "websockets-10.4-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b627c266f295de9dea86bd1112ed3d5fafb69a348af30a2422e16590a8ecba13"},
3989
- {file = "websockets-10.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:05a7233089f8bd355e8cbe127c2e8ca0b4ea55467861906b80d2ebc7db4d6b72"},
3990
- {file = "websockets-10.4.tar.gz", hash = "sha256:eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3"},
3991
- ]
3992
-
3993
- [[package]]
3994
- name = "werkzeug"
3995
- version = "2.2.3"
3996
- description = "The comprehensive WSGI web application library."
3997
- category = "main"
3998
- optional = false
3999
- python-versions = ">=3.7"
4000
- files = [
4001
- {file = "Werkzeug-2.2.3-py3-none-any.whl", hash = "sha256:56433961bc1f12533306c624f3be5e744389ac61d722175d543e1751285da612"},
4002
- {file = "Werkzeug-2.2.3.tar.gz", hash = "sha256:2e1ccc9417d4da358b9de6f174e3ac094391ea1d4fbef2d667865d819dfd0afe"},
4003
  ]
4004
 
4005
- [package.dependencies]
4006
- MarkupSafe = ">=2.1.1"
4007
-
4008
- [package.extras]
4009
- watchdog = ["watchdog"]
4010
-
4011
  [[package]]
4012
  name = "wheel"
4013
  version = "0.40.0"
@@ -4215,4 +3894,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more
4215
  [metadata]
4216
  lock-version = "2.0"
4217
  python-versions = ">=3.8,<3.11"
4218
- content-hash = "81eac0c68b289dd9d22d17dd34ae6bcd31f53c8201f229d31ff96d7094ad2392"
 
1
  # This file is automatically @generated by Poetry and should not be changed by hand.
2
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  [[package]]
4
  name = "aiofiles"
5
  version = "23.1.0"
 
182
 
183
  [[package]]
184
  name = "astroid"
185
+ version = "2.15.2"
186
  description = "An abstract syntax tree for Python with inference support."
187
  category = "dev"
188
  optional = false
189
  python-versions = ">=3.7.2"
190
  files = [
191
+ {file = "astroid-2.15.2-py3-none-any.whl", hash = "sha256:dea89d9f99f491c66ac9c04ebddf91e4acf8bd711722175fe6245c0725cc19bb"},
192
+ {file = "astroid-2.15.2.tar.gz", hash = "sha256:6e61b85c891ec53b07471aec5878f4ac6446a41e590ede0f2ce095f39f7d49dd"},
193
  ]
194
 
195
  [package.dependencies]
 
278
  jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
279
  uvloop = ["uvloop (>=0.15.2)"]
280
 
 
 
 
 
 
 
 
 
 
 
 
 
281
  [[package]]
282
  name = "certifi"
283
  version = "2022.12.7"
 
549
  {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"},
550
  ]
551
 
 
 
 
 
 
 
 
 
 
 
 
 
552
  [[package]]
553
  name = "dill"
554
  version = "0.3.6"
 
842
  ssh = ["paramiko"]
843
  tqdm = ["tqdm"]
844
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
845
  [[package]]
846
  name = "gradio"
847
+ version = "3.24.1"
848
  description = "Python library for easily interacting with trained machine learning models"
849
  category = "main"
850
  optional = false
851
  python-versions = ">=3.7"
852
  files = [
853
+ {file = "gradio-3.24.1-py3-none-any.whl", hash = "sha256:a9b2fb94007b370ba5442159775a0987b27810451582525fe10711517082b1d2"},
854
+ {file = "gradio-3.24.1.tar.gz", hash = "sha256:19f11c8b5d9b23a22a7e0e3a32332146474d215588674afdfdbe2f86fe0a7811"},
855
  ]
856
 
857
  [package.dependencies]
 
1459
  {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"},
1460
  ]
1461
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1462
  [[package]]
1463
  name = "linkify-it-py"
1464
  version = "2.0.0"
 
1541
  flake8 = ["flake8"]
1542
  tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"]
1543
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1544
  [[package]]
1545
  name = "markdown-it-py"
1546
  version = "2.2.0"
 
2194
  setuptools = "*"
2195
  wheel = "*"
2196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2197
  [[package]]
2198
  name = "onnxruntime"
2199
  version = "1.14.1"
 
2316
 
2317
  [[package]]
2318
  name = "pandas"
2319
+ version = "2.0.0"
2320
  description = "Powerful data structures for data analysis, time series, and statistics"
2321
  category = "main"
2322
  optional = false
2323
  python-versions = ">=3.8"
2324
  files = [
2325
+ {file = "pandas-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bbb2c5e94d6aa4e632646a3bacd05c2a871c3aa3e85c9bec9be99cb1267279f2"},
2326
+ {file = "pandas-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b5337c87c4e963f97becb1217965b6b75c6fe5f54c4cf09b9a5ac52fc0bd03d3"},
2327
+ {file = "pandas-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ded51f7e3dd9b4f8b87f2ceb7bd1a8df2491f7ee72f7074c6927a512607199e"},
2328
+ {file = "pandas-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52c858de9e9fc422d25e67e1592a6e6135d7bcf9a19fcaf4d0831a0be496bf21"},
2329
+ {file = "pandas-2.0.0-cp310-cp310-win32.whl", hash = "sha256:2d1d138848dd71b37e3cbe7cd952ff84e2ab04d8988972166e18567dcc811245"},
2330
+ {file = "pandas-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:d08e41d96bc4de6f500afe80936c68fce6099d5a434e2af7c7fd8e7c72a3265d"},
2331
+ {file = "pandas-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:24472cfc7ced511ac90608728b88312be56edc8f19b9ed885a7d2e47ffaf69c0"},
2332
+ {file = "pandas-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ffb14f50c74ee541610668137830bb93e9dfa319b1bef2cedf2814cd5ac9c70"},
2333
+ {file = "pandas-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c24c7d12d033a372a9daf9ff2c80f8b0af6f98d14664dbb0a4f6a029094928a7"},
2334
+ {file = "pandas-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8318de0f886e4dcb8f9f36e45a3d6a6c3d1cfdc508354da85e739090f0222991"},
2335
+ {file = "pandas-2.0.0-cp311-cp311-win32.whl", hash = "sha256:57c34b79c13249505e850d0377b722961b99140f81dafbe6f19ef10239f6284a"},
2336
+ {file = "pandas-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:8f987ec26e96a8490909bc5d98c514147236e49830cba7df8690f6087c12bbae"},
2337
+ {file = "pandas-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b3ba8f5dd470d8bfbc4259829589f4a32881151c49e36384d9eb982b35a12020"},
2338
+ {file = "pandas-2.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fcd471c9d9f60926ab2f15c6c29164112f458acb42280365fbefa542d0c2fc74"},
2339
+ {file = "pandas-2.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9253edfd015520ce77a9343eb7097429479c039cd3ebe81d7810ea11b4b24695"},
2340
+ {file = "pandas-2.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977326039bd1ded620001a1889e2ed4798460a6bc5a24fbaebb5f07a41c32a55"},
2341
+ {file = "pandas-2.0.0-cp38-cp38-win32.whl", hash = "sha256:78425ca12314b23356c28b16765639db10ebb7d8983f705d6759ff7fe41357fa"},
2342
+ {file = "pandas-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:d93b7fcfd9f3328072b250d6d001dcfeec5d3bb66c1b9c8941e109a46c0c01a8"},
2343
+ {file = "pandas-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:425705cee8be54db2504e8dd2a730684790b15e5904b750c367611ede49098ab"},
2344
+ {file = "pandas-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a4f789b7c012a608c08cda4ff0872fd979cb18907a37982abe884e6f529b8793"},
2345
+ {file = "pandas-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bb9d840bf15656805f6a3d87eea9dcb7efdf1314a82adcf7f00b820427c5570"},
2346
+ {file = "pandas-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0778ab54c8f399d83d98ffb674d11ec716449956bc6f6821891ab835848687f2"},
2347
+ {file = "pandas-2.0.0-cp39-cp39-win32.whl", hash = "sha256:70db5c278bbec0306d32bf78751ff56b9594c05a5098386f6c8a563659124f91"},
2348
+ {file = "pandas-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f3320bb55f34af4193020158ef8118ee0fb9aec7cc47d2084dbfdd868a0a24f"},
2349
+ {file = "pandas-2.0.0.tar.gz", hash = "sha256:cda9789e61b44463c1c4fe17ef755de77bcd13b09ba31c940d20f193d63a5dc8"},
 
 
2350
  ]
2351
 
2352
  [package.dependencies]
 
2354
  {version = ">=1.20.3", markers = "python_version < \"3.10\""},
2355
  {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
2356
  ]
2357
+ python-dateutil = ">=2.8.2"
2358
  pytz = ">=2020.1"
2359
+ tzdata = ">=2022.1"
2360
+
2361
+ [package.extras]
2362
+ all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"]
2363
+ aws = ["s3fs (>=2021.08.0)"]
2364
+ clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"]
2365
+ compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"]
2366
+ computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"]
2367
+ excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"]
2368
+ feather = ["pyarrow (>=7.0.0)"]
2369
+ fss = ["fsspec (>=2021.07.0)"]
2370
+ gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"]
2371
+ hdf5 = ["tables (>=3.6.1)"]
2372
+ html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"]
2373
+ mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"]
2374
+ output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"]
2375
+ parquet = ["pyarrow (>=7.0.0)"]
2376
+ performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"]
2377
+ plot = ["matplotlib (>=3.6.1)"]
2378
+ postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"]
2379
+ spss = ["pyreadstat (>=1.1.2)"]
2380
+ sql-other = ["SQLAlchemy (>=1.4.16)"]
2381
+ test = ["hypothesis (>=6.34.2)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"]
2382
+ xml = ["lxml (>=4.6.3)"]
2383
 
2384
  [[package]]
2385
  name = "pathspec"
 
2421
 
2422
  [[package]]
2423
  name = "pillow"
2424
+ version = "9.5.0"
2425
  description = "Python Imaging Library (Fork)"
2426
  category = "main"
2427
  optional = false
2428
  python-versions = ">=3.7"
2429
  files = [
2430
+ {file = "Pillow-9.5.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:ace6ca218308447b9077c14ea4ef381ba0b67ee78d64046b3f19cf4e1139ad16"},
2431
+ {file = "Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3d403753c9d5adc04d4694d35cf0391f0f3d57c8e0030aac09d7678fa8030aa"},
2432
+ {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ba1b81ee69573fe7124881762bb4cd2e4b6ed9dd28c9c60a632902fe8db8b38"},
2433
+ {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe7e1c262d3392afcf5071df9afa574544f28eac825284596ac6db56e6d11062"},
2434
+ {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f36397bf3f7d7c6a3abdea815ecf6fd14e7fcd4418ab24bae01008d8d8ca15e"},
2435
+ {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:252a03f1bdddce077eff2354c3861bf437c892fb1832f75ce813ee94347aa9b5"},
2436
+ {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:85ec677246533e27770b0de5cf0f9d6e4ec0c212a1f89dfc941b64b21226009d"},
2437
+ {file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b416f03d37d27290cb93597335a2f85ed446731200705b22bb927405320de903"},
2438
+ {file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1781a624c229cb35a2ac31cc4a77e28cafc8900733a864870c49bfeedacd106a"},
2439
+ {file = "Pillow-9.5.0-cp310-cp310-win32.whl", hash = "sha256:8507eda3cd0608a1f94f58c64817e83ec12fa93a9436938b191b80d9e4c0fc44"},
2440
+ {file = "Pillow-9.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3c6b54e304c60c4181da1c9dadf83e4a54fd266a99c70ba646a9baa626819eb"},
2441
+ {file = "Pillow-9.5.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:7ec6f6ce99dab90b52da21cf0dc519e21095e332ff3b399a357c187b1a5eee32"},
2442
+ {file = "Pillow-9.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:560737e70cb9c6255d6dcba3de6578a9e2ec4b573659943a5e7e4af13f298f5c"},
2443
+ {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96e88745a55b88a7c64fa49bceff363a1a27d9a64e04019c2281049444a571e3"},
2444
+ {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d9c206c29b46cfd343ea7cdfe1232443072bbb270d6a46f59c259460db76779a"},
2445
+ {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcc2c53c06f2ccb8976fb5c71d448bdd0a07d26d8e07e321c103416444c7ad1"},
2446
+ {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:a0f9bb6c80e6efcde93ffc51256d5cfb2155ff8f78292f074f60f9e70b942d99"},
2447
+ {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8d935f924bbab8f0a9a28404422da8af4904e36d5c33fc6f677e4c4485515625"},
2448
+ {file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fed1e1cf6a42577953abbe8e6cf2fe2f566daebde7c34724ec8803c4c0cda579"},
2449
+ {file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c1170d6b195555644f0616fd6ed929dfcf6333b8675fcca044ae5ab110ded296"},
2450
+ {file = "Pillow-9.5.0-cp311-cp311-win32.whl", hash = "sha256:54f7102ad31a3de5666827526e248c3530b3a33539dbda27c6843d19d72644ec"},
2451
+ {file = "Pillow-9.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfa4561277f677ecf651e2b22dc43e8f5368b74a25a8f7d1d4a3a243e573f2d4"},
2452
+ {file = "Pillow-9.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:965e4a05ef364e7b973dd17fc765f42233415974d773e82144c9bbaaaea5d089"},
2453
+ {file = "Pillow-9.5.0-cp312-cp312-win32.whl", hash = "sha256:22baf0c3cf0c7f26e82d6e1adf118027afb325e703922c8dfc1d5d0156bb2eeb"},
2454
+ {file = "Pillow-9.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:432b975c009cf649420615388561c0ce7cc31ce9b2e374db659ee4f7d57a1f8b"},
2455
+ {file = "Pillow-9.5.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5d4ebf8e1db4441a55c509c4baa7a0587a0210f7cd25fcfe74dbbce7a4bd1906"},
2456
+ {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375f6e5ee9620a271acb6820b3d1e94ffa8e741c0601db4c0c4d3cb0a9c224bf"},
2457
+ {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99eb6cafb6ba90e436684e08dad8be1637efb71c4f2180ee6b8f940739406e78"},
2458
+ {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dfaaf10b6172697b9bceb9a3bd7b951819d1ca339a5ef294d1f1ac6d7f63270"},
2459
+ {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:763782b2e03e45e2c77d7779875f4432e25121ef002a41829d8868700d119392"},
2460
+ {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:35f6e77122a0c0762268216315bf239cf52b88865bba522999dc38f1c52b9b47"},
2461
+ {file = "Pillow-9.5.0-cp37-cp37m-win32.whl", hash = "sha256:aca1c196f407ec7cf04dcbb15d19a43c507a81f7ffc45b690899d6a76ac9fda7"},
2462
+ {file = "Pillow-9.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322724c0032af6692456cd6ed554bb85f8149214d97398bb80613b04e33769f6"},
2463
+ {file = "Pillow-9.5.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:a0aa9417994d91301056f3d0038af1199eb7adc86e646a36b9e050b06f526597"},
2464
+ {file = "Pillow-9.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8286396b351785801a976b1e85ea88e937712ee2c3ac653710a4a57a8da5d9c"},
2465
+ {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c830a02caeb789633863b466b9de10c015bded434deb3ec87c768e53752ad22a"},
2466
+ {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbd359831c1657d69bb81f0db962905ee05e5e9451913b18b831febfe0519082"},
2467
+ {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc330c3370a81bbf3f88557097d1ea26cd8b019d6433aa59f71195f5ddebbf"},
2468
+ {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:7002d0797a3e4193c7cdee3198d7c14f92c0836d6b4a3f3046a64bd1ce8df2bf"},
2469
+ {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:229e2c79c00e85989a34b5981a2b67aa079fd08c903f0aaead522a1d68d79e51"},
2470
+ {file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9adf58f5d64e474bed00d69bcd86ec4bcaa4123bfa70a65ce72e424bfb88ed96"},
2471
+ {file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:662da1f3f89a302cc22faa9f14a262c2e3951f9dbc9617609a47521c69dd9f8f"},
2472
+ {file = "Pillow-9.5.0-cp38-cp38-win32.whl", hash = "sha256:6608ff3bf781eee0cd14d0901a2b9cc3d3834516532e3bd673a0a204dc8615fc"},
2473
+ {file = "Pillow-9.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:e49eb4e95ff6fd7c0c402508894b1ef0e01b99a44320ba7d8ecbabefddcc5569"},
2474
+ {file = "Pillow-9.5.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:482877592e927fd263028c105b36272398e3e1be3269efda09f6ba21fd83ec66"},
2475
+ {file = "Pillow-9.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ded42b9ad70e5f1754fb7c2e2d6465a9c842e41d178f262e08b8c85ed8a1d8e"},
2476
+ {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c446d2245ba29820d405315083d55299a796695d747efceb5717a8b450324115"},
2477
+ {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aca1152d93dcc27dc55395604dcfc55bed5f25ef4c98716a928bacba90d33a3"},
2478
+ {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:608488bdcbdb4ba7837461442b90ea6f3079397ddc968c31265c1e056964f1ef"},
2479
+ {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:60037a8db8750e474af7ffc9faa9b5859e6c6d0a50e55c45576bf28be7419705"},
2480
+ {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:07999f5834bdc404c442146942a2ecadd1cb6292f5229f4ed3b31e0a108746b1"},
2481
+ {file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a127ae76092974abfbfa38ca2d12cbeddcdeac0fb71f9627cc1135bedaf9d51a"},
2482
+ {file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:489f8389261e5ed43ac8ff7b453162af39c3e8abd730af8363587ba64bb2e865"},
2483
+ {file = "Pillow-9.5.0-cp39-cp39-win32.whl", hash = "sha256:9b1af95c3a967bf1da94f253e56b6286b50af23392a886720f563c547e48e964"},
2484
+ {file = "Pillow-9.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:77165c4a5e7d5a284f10a6efaa39a0ae8ba839da344f20b111d62cc932fa4e5d"},
2485
+ {file = "Pillow-9.5.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:833b86a98e0ede388fa29363159c9b1a294b0905b5128baf01db683672f230f5"},
2486
+ {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaf305d6d40bd9632198c766fb64f0c1a83ca5b667f16c1e79e1661ab5060140"},
2487
+ {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0852ddb76d85f127c135b6dd1f0bb88dbb9ee990d2cd9aa9e28526c93e794fba"},
2488
+ {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:91ec6fe47b5eb5a9968c79ad9ed78c342b1f97a091677ba0e012701add857829"},
2489
+ {file = "Pillow-9.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb841572862f629b99725ebaec3287fc6d275be9b14443ea746c1dd325053cbd"},
2490
+ {file = "Pillow-9.5.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c380b27d041209b849ed246b111b7c166ba36d7933ec6e41175fd15ab9eb1572"},
2491
+ {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c9af5a3b406a50e313467e3565fc99929717f780164fe6fbb7704edba0cebbe"},
2492
+ {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5671583eab84af046a397d6d0ba25343c00cd50bce03787948e0fff01d4fd9b1"},
2493
+ {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:84a6f19ce086c1bf894644b43cd129702f781ba5751ca8572f08aa40ef0ab7b7"},
2494
+ {file = "Pillow-9.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1e7723bd90ef94eda669a3c2c19d549874dd5badaeefabefd26053304abe5799"},
2495
+ {file = "Pillow-9.5.0.tar.gz", hash = "sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"},
2496
+ ]
2497
+
2498
+ [package.extras]
2499
+ docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"]
 
 
 
 
2500
  tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
2501
 
2502
  [[package]]
 
2545
 
2546
  [[package]]
2547
  name = "protobuf"
2548
+ version = "4.22.1"
2549
+ description = ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2550
  category = "main"
2551
  optional = false
2552
+ python-versions = ">=3.7"
2553
  files = [
2554
+ {file = "protobuf-4.22.1-cp310-abi3-win32.whl", hash = "sha256:85aa9acc5a777adc0c21b449dafbc40d9a0b6413ff3a4f77ef9df194be7f975b"},
2555
+ {file = "protobuf-4.22.1-cp310-abi3-win_amd64.whl", hash = "sha256:8bc971d76c03f1dd49f18115b002254f2ddb2d4b143c583bb860b796bb0d399e"},
2556
+ {file = "protobuf-4.22.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:5917412347e1da08ce2939eb5cd60650dfb1a9ab4606a415b9278a1041fb4d19"},
2557
+ {file = "protobuf-4.22.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:9e12e2810e7d297dbce3c129ae5e912ffd94240b050d33f9ecf023f35563b14f"},
2558
+ {file = "protobuf-4.22.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:953fc7904ef46900262a26374b28c2864610b60cdc8b272f864e22143f8373c4"},
2559
+ {file = "protobuf-4.22.1-cp37-cp37m-win32.whl", hash = "sha256:6e100f7bc787cd0a0ae58dbf0ab8bbf1ee7953f862b89148b6cf5436d5e9eaa1"},
2560
+ {file = "protobuf-4.22.1-cp37-cp37m-win_amd64.whl", hash = "sha256:87a6393fa634f294bf24d1cfe9fdd6bb605cbc247af81b9b10c4c0f12dfce4b3"},
2561
+ {file = "protobuf-4.22.1-cp38-cp38-win32.whl", hash = "sha256:e3fb58076bdb550e75db06ace2a8b3879d4c4f7ec9dd86e4254656118f4a78d7"},
2562
+ {file = "protobuf-4.22.1-cp38-cp38-win_amd64.whl", hash = "sha256:651113695bc2e5678b799ee5d906b5d3613f4ccfa61b12252cfceb6404558af0"},
2563
+ {file = "protobuf-4.22.1-cp39-cp39-win32.whl", hash = "sha256:67b7d19da0fda2733702c2299fd1ef6cb4b3d99f09263eacaf1aa151d9d05f02"},
2564
+ {file = "protobuf-4.22.1-cp39-cp39-win_amd64.whl", hash = "sha256:b8700792f88e59ccecfa246fa48f689d6eee6900eddd486cdae908ff706c482b"},
2565
+ {file = "protobuf-4.22.1-py3-none-any.whl", hash = "sha256:3e19dcf4adbf608924d3486ece469dd4f4f2cf7d2649900f0efcd1a84e8fd3ba"},
2566
+ {file = "protobuf-4.22.1.tar.gz", hash = "sha256:dce7a55d501c31ecf688adb2f6c3f763cf11bc0be815d1946a84d74772ab07a7"},
2567
  ]
2568
 
 
 
 
2569
  [[package]]
2570
  name = "pydantic"
2571
  version = "1.10.7"
 
2726
 
2727
  [[package]]
2728
  name = "pylint"
2729
+ version = "2.17.2"
2730
  description = "python code static checker"
2731
  category = "dev"
2732
  optional = false
2733
  python-versions = ">=3.7.2"
2734
  files = [
2735
+ {file = "pylint-2.17.2-py3-none-any.whl", hash = "sha256:001cc91366a7df2970941d7e6bbefcbf98694e00102c1f121c531a814ddc2ea8"},
2736
+ {file = "pylint-2.17.2.tar.gz", hash = "sha256:1b647da5249e7c279118f657ca28b6aaebb299f86bf92affc632acf199f7adbb"},
2737
  ]
2738
 
2739
  [package.dependencies]
2740
+ astroid = ">=2.15.2,<=2.17.0-dev0"
2741
  colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
2742
  dill = {version = ">=0.2", markers = "python_version < \"3.11\""}
2743
  isort = ">=4.2.5,<6"
 
3070
  socks = ["PySocks (>=1.5.6,!=1.5.7)"]
3071
  use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
3072
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3073
  [[package]]
3074
  name = "rfc3986"
3075
  version = "1.5.0"
 
3108
  [package.extras]
3109
  jupyter = ["ipywidgets (>=7.5.1,<9)"]
3110
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3111
  [[package]]
3112
  name = "scikit-image"
3113
  version = "0.20.0"
 
3304
  [package.extras]
3305
  widechars = ["wcwidth"]
3306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3307
  [[package]]
3308
  name = "tensorboardx"
3309
+ version = "2.5"
3310
  description = "TensorBoardX lets you watch Tensors Flow without Tensorflow"
3311
  category = "main"
3312
  optional = false
3313
  python-versions = "*"
3314
  files = [
3315
+ {file = "tensorboardX-2.5-py2.py3-none-any.whl", hash = "sha256:b1d8903f8106e2f4484640a293f9680f9757d5f7d2e699e0672bb2382d988e07"},
3316
+ {file = "tensorboardX-2.5.tar.gz", hash = "sha256:5238ac5eac4a26d8f8381d7f54a2fcd530a134db841af9a9a6427beca93c6776"},
3317
  ]
3318
 
3319
  [package.dependencies]
3320
  numpy = "*"
3321
+ protobuf = ">=3.8.0"
3322
+ six = "*"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3323
 
3324
  [[package]]
3325
  name = "tifffile"
 
3523
  {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"},
3524
  ]
3525
 
3526
+ [[package]]
3527
+ name = "tzdata"
3528
+ version = "2023.3"
3529
+ description = "Provider of IANA time zone data"
3530
+ category = "main"
3531
+ optional = false
3532
+ python-versions = ">=2"
3533
+ files = [
3534
+ {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"},
3535
+ {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"},
3536
+ ]
3537
+
3538
  [[package]]
3539
  name = "uc-micro-py"
3540
  version = "1.0.1"
 
3609
 
3610
  [[package]]
3611
  name = "websockets"
3612
+ version = "11.0"
3613
  description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
3614
  category = "main"
3615
  optional = false
3616
  python-versions = ">=3.7"
3617
  files = [
3618
+ {file = "websockets-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:269e3547877a6ca55f62acdf291b256b01bc3469535e892af36afd3e17de284a"},
3619
+ {file = "websockets-11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:70a4e03d2416c1dad16ccfab97c975192337c6481b07167c90221f1926893e1e"},
3620
+ {file = "websockets-11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4100dc8566ea3b9c0528dee73284be524ab053aebd77e3fc7439a90e0d57745b"},
3621
+ {file = "websockets-11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8e0505c556b2b48078291b300d930f2fb8ba81d1e36379b637c060cfa561ae4"},
3622
+ {file = "websockets-11.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d5bc68cec8269b4b52ab6d1d8690f56dba35f7bcb83a5487518406300f81cf1"},
3623
+ {file = "websockets-11.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:067ac1f6153fc5218afc4563491dcbdb7384895cfc588a0afee962ca77fe0b58"},
3624
+ {file = "websockets-11.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:910c84c0cfe4f872905b6ebe1866c579582070331abcb7a58621935eca95c18a"},
3625
+ {file = "websockets-11.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:df0f7769450ca67a53182f917910e2b0b6dd3f8268f88cbfe54ee6be96812889"},
3626
+ {file = "websockets-11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe23605f5c351773b6fb82fcf680549980d63e126fab5213ed875686c0cec25d"},
3627
+ {file = "websockets-11.0-cp310-cp310-win32.whl", hash = "sha256:eb2e7cd654a05c36fccf726385c64a0e1027997d05ba0859f4d84c3d87db1623"},
3628
+ {file = "websockets-11.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb26c333751a1e3805ecc416a85dcfa3657676b185acd515fd6992f0cea898ef"},
3629
+ {file = "websockets-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b4a939963bae1055f14976ef2cf53e797c1997f8835ca9cf23060afc3e7d6718"},
3630
+ {file = "websockets-11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d7fc189fb632f8b31af8a5b32105919662a1bbaac20912320482415b7fed9c96"},
3631
+ {file = "websockets-11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6e3cfc890f1326c95fd7d4cc50f2bd496d3f014fb2da36b4525a10f226be565d"},
3632
+ {file = "websockets-11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9093f4c72c23ed5e475970c6a37e77c4f3a8856223421b9eb405b9fb2170629f"},
3633
+ {file = "websockets-11.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5c56547f97bc76293522ccfcfbdde12442420f1a2c0218ff45d733a0030046df"},
3634
+ {file = "websockets-11.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffb406b4449d4fa41ebc47faa3b9153a082f6fe0e4a0891f596a5ddb69fdeccd"},
3635
+ {file = "websockets-11.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8fad76be2c5e36fb3620ad507ac8004e9f358f5c4a9a1b756dbe7918d58884a0"},
3636
+ {file = "websockets-11.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:17eb1988d320e2f1f20e4a3523f1068a0bb08318ab123962fc99fd90c90ab0d6"},
3637
+ {file = "websockets-11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9873288db9c673a2ba9c0f7b59a130576c50fc75f3336a706fff686009c41631"},
3638
+ {file = "websockets-11.0-cp311-cp311-win32.whl", hash = "sha256:cf4ef6343478bf63098d3060fe06baf54d9c011b4b1b05e65e7957091cc87ef4"},
3639
+ {file = "websockets-11.0-cp311-cp311-win_amd64.whl", hash = "sha256:713cd5fc1fd40436495c90a259274e1a4a39416c65447a256434941ddaf2f424"},
3640
+ {file = "websockets-11.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:649ddddcbafd318d427b843425c92b1c035660c32507645c472c77356226cf07"},
3641
+ {file = "websockets-11.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:564c53d84b95da527e96778f2cc873ef186038924abee601f9e8f12ebda9ad46"},
3642
+ {file = "websockets-11.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d8df2db9801063e4093efe01458b1705c9f76382ad32617c005eeeb201a730"},
3643
+ {file = "websockets-11.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcd876ed166a82d250fcf012b729315489e9d653cb659c2e013c19daba2eb8f"},
3644
+ {file = "websockets-11.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cb00963b49d343210ebbdbe69a35004fbecad73da2158e83d481cd2a6716cf19"},
3645
+ {file = "websockets-11.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3d6f7c2f822e439f47f3492ee3e48c87c7d134d619a42c6dba1a318504501bfb"},
3646
+ {file = "websockets-11.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c4b2ae9c0f1acec5d2f8000eb496eebb9db19055a63716ee166cf0694b945982"},
3647
+ {file = "websockets-11.0-cp37-cp37m-win32.whl", hash = "sha256:2b363e0f9b4247a0c7482e22c70ef39fb3259a14f7c0791c9200b93145f60b4b"},
3648
+ {file = "websockets-11.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3d372c3426f165a0a22be9250526b1cd12e3556e80b4b2afaa6fd6649c99b086"},
3649
+ {file = "websockets-11.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7eb914d37e0574246c63b995f9ca8d7bb7c2f2d53a8d4e9b00200ea856aa43c4"},
3650
+ {file = "websockets-11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a8717a5f3a00cde308e2971064bd5fcb14e0cc08f8234b97f4eb92b505ea95d4"},
3651
+ {file = "websockets-11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a17151722349c4af221616cca2f28e79237738bfbc53e7155240e2a8a7cc02f4"},
3652
+ {file = "websockets-11.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4b60686d9b2ba500847c045595eb5887f4cca7102b4615773b6f490aa611107"},
3653
+ {file = "websockets-11.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eededf25ef6b838e650eeeb1511804b82e9ece566fe6cdc11aa909d2992dcdaf"},
3654
+ {file = "websockets-11.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7587f339f016f0e1b0b6f013e98c83e382c5929774f2b8234c1b2d3f01dd1339"},
3655
+ {file = "websockets-11.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:26369646078e16e7364729ed3e3b1a4315ab1a22ca3c48b4e25dea48fcc1a881"},
3656
+ {file = "websockets-11.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:92f51fbe87381ff76c1791dd44d599152b400f1adfa8453613f1ff6857200ee7"},
3657
+ {file = "websockets-11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b5bb04a77c326d727c0b986c37a76147916d79db95629267307d1be47788a020"},
3658
+ {file = "websockets-11.0-cp38-cp38-win32.whl", hash = "sha256:50ac95111009178e58b9a25aa51702cdaad4ed843b98eb9b58d69b323ccb224e"},
3659
+ {file = "websockets-11.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a4076cd6a3678def988668fc4b1779da598e1e5c9fa26319af5499f00c23e1c"},
3660
+ {file = "websockets-11.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:26559e8a385f71ce2a58f3bb1d005ddd3db7d3328ddbfbff1034f4039d46c4ec"},
3661
+ {file = "websockets-11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f10d283697dec8d91fa983eb8e217c9cac27bc1032057768129b89780009318e"},
3662
+ {file = "websockets-11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f74efe229e078bf5595e207e9a7b135ff37a10858263ed86be66003c4c98d47b"},
3663
+ {file = "websockets-11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f048c88bfcc5bf0e038630cfb970b2c479f913819fd9653db920eef3b105a2b1"},
3664
+ {file = "websockets-11.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceab6c1827fa14ad10c6b0806941d577b21d17012a3648787ac2b946182285b4"},
3665
+ {file = "websockets-11.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:817227e23897808c4bb621da7f57b1f83ee18345bdc44f5c9c1bbd3a094a73f6"},
3666
+ {file = "websockets-11.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6fdcc17348d8697c1f88bba38680cca94131f2a9db727a61fe067284e1e59e8d"},
3667
+ {file = "websockets-11.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8b21ad915b747075f29fe2fa5590111d98988d6730d2cd212acfe52bbe6a2545"},
3668
+ {file = "websockets-11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9ae401ad881d5329062b9b2d8160f0b2a147430974f2a3f32e6cedadddc2d634"},
3669
+ {file = "websockets-11.0-cp39-cp39-win32.whl", hash = "sha256:ee84660927293f449760badfe010e06409edb99d72e1910e2e404d2eeff6990f"},
3670
+ {file = "websockets-11.0-cp39-cp39-win_amd64.whl", hash = "sha256:2b4e704a9dac1faf4994e63dceae9e2f504913ff0f865bd3e5a097cbd5874a8f"},
3671
+ {file = "websockets-11.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c2d6429c9bcd70ed8126a1f9ca6069e4ab95c96a3cc141fc84ce02917f7b45ec"},
3672
+ {file = "websockets-11.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff3f67567862a853af2c0db362ede8249be50c576cd9eaf380736c6fce840414"},
3673
+ {file = "websockets-11.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b86ce3d17bcc4b6556b2a2e1277beed74ff6b1de23f002f9763e9875e8ba361d"},
3674
+ {file = "websockets-11.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59c4b458cc09ea6470a5eee98b06ccaa84f2a193b92e337a879612614df0f8eb"},
3675
+ {file = "websockets-11.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e5e21aeb350906dfcff321bfa6c60541a1d05cadb6d431ecf9d6376365be60d4"},
3676
+ {file = "websockets-11.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8731189f6985b239a6c34a353c36b45cb3c9fed1c287fbcf7f61df9e4a7ac392"},
3677
+ {file = "websockets-11.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee3aa7660ae0d3a4e47517bb5a545b9a02ff7b9632a640f617e755990ef65f66"},
3678
+ {file = "websockets-11.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:027aabfd053715ce0f5f6fc5107e5093e05b3c94fa555fb65375aa09cb845a66"},
3679
+ {file = "websockets-11.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e8c729aa179ef105f096cad12070aef230be9e2ae509eb47c3cdd9257213c14"},
3680
+ {file = "websockets-11.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ff607c6e16409ac83f1ae59cc96167fead577bc652e8dff48f7458ce082372ff"},
3681
+ {file = "websockets-11.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ca3d7c08f472c40f28bb9fb99610d28dc97137612ab5308f80dac7ce79f87fe1"},
3682
+ {file = "websockets-11.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f179deef8288dd8ec227d644ba5b711609093b634008643561f6d9c74938c3c"},
3683
+ {file = "websockets-11.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:269d33f1573a31130da9afd63a2558f60131522d3fe86d0aa2d1612ad065d27c"},
3684
+ {file = "websockets-11.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb0b306c1180d0268341447982b415aca7c072c84b4a59688dbc1d7d2ec25df9"},
3685
+ {file = "websockets-11.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6ae209f11e433575e17d5d6e61a2f77ceda53b4bce07df55af614aa1d618e2e7"},
3686
+ {file = "websockets-11.0-py3-none-any.whl", hash = "sha256:6ebd971b9b2c0aaa2188c472016e4dad93108b3db425a33ad584bdc41b22026d"},
3687
+ {file = "websockets-11.0.tar.gz", hash = "sha256:19d638549c470f5fd3b67b52b2a08f2edba5a04e05323a706937e35f5f19d056"},
 
 
 
 
 
 
 
 
 
 
 
3688
  ]
3689
 
 
 
 
 
 
 
3690
  [[package]]
3691
  name = "wheel"
3692
  version = "0.40.0"
 
3894
  [metadata]
3895
  lock-version = "2.0"
3896
  python-versions = ">=3.8,<3.11"
3897
+ content-hash = "cebae9adbf845433c1a6de1af62a021ecc2c54a22d04aebee7c7959b63511c36"
pyproject.toml CHANGED
@@ -21,12 +21,7 @@ ray = {extras = ["rllib"], version = "^2.2.0"}
21
  pettingzoo = "^1.22.4"
22
  pygame = "^2.3.0"
23
  torch = "^2.0.0"
24
- libclang = "15.0.6.1"
25
- tensorflow-probability = "^0.19.0"
26
- protobuf = "3.19.6"
27
  scipy = ">=1.8,<1.9.2"
28
- onnx = "1.12.0"
29
- tensorboard = "^2.12.0"
30
  onnxruntime = "^1.14.1"
31
 
32
  [tool.poetry.dev-dependencies]
 
21
  pettingzoo = "^1.22.4"
22
  pygame = "^2.3.0"
23
  torch = "^2.0.0"
 
 
 
24
  scipy = ">=1.8,<1.9.2"
 
 
25
  onnxruntime = "^1.14.1"
26
 
27
  [tool.poetry.dev-dependencies]
requirements.txt CHANGED
@@ -1,4 +1,3 @@
1
- absl-py==1.4.0 ; python_version >= "3.8" and python_version < "3.11"
2
  aiofiles==23.1.0 ; python_version >= "3.8" and python_version < "3.11"
3
  aiohttp==3.8.4 ; python_version >= "3.8" and python_version < "3.11"
4
  aiosignal==1.3.1 ; python_version >= "3.8" and python_version < "3.11"
@@ -12,20 +11,21 @@ click==8.1.3 ; python_version >= "3.8" and python_version < "3.11"
12
  cloudpickle==2.2.1 ; python_version >= "3.8" and python_version < "3.11"
13
  cmake==3.26.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
14
  colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.11" and platform_system == "Windows"
 
15
  contourpy==1.0.7 ; python_version >= "3.8" and python_version < "3.11"
16
  cycler==0.11.0 ; python_version >= "3.8" and python_version < "3.11"
17
- decorator==5.1.1 ; python_version >= "3.8" and python_version < "3.11"
18
  distlib==0.3.6 ; python_version >= "3.8" and python_version < "3.11"
19
  dm-tree==0.1.8 ; python_version >= "3.8" and python_version < "3.11"
20
  entrypoints==0.4 ; python_version >= "3.8" and python_version < "3.11"
21
  fastapi==0.95.0 ; python_version >= "3.8" and python_version < "3.11"
22
  ffmpy==0.3.0 ; python_version >= "3.8" and python_version < "3.11"
23
  filelock==3.10.7 ; python_version >= "3.8" and python_version < "3.11"
 
24
  fonttools==4.39.3 ; python_version >= "3.8" and python_version < "3.11"
25
  frozenlist==1.3.3 ; python_version >= "3.8" and python_version < "3.11"
26
  fsspec==2023.3.0 ; python_version >= "3.8" and python_version < "3.11"
27
- gast==0.5.3 ; python_version >= "3.8" and python_version < "3.11"
28
- gradio==3.23.0 ; python_version >= "3.8" and python_version < "3.11"
29
  grpcio==1.49.1 ; python_version >= "3.8" and python_version < "3.11" and sys_platform == "darwin"
30
  grpcio==1.53.0 ; python_version >= "3.8" and python_version < "3.11" and sys_platform != "darwin"
31
  gymnasium-notices==0.0.1 ; python_version >= "3.8" and python_version < "3.11"
@@ -34,6 +34,7 @@ h11==0.14.0 ; python_version >= "3.8" and python_version < "3.11"
34
  httpcore==0.16.3 ; python_version >= "3.8" and python_version < "3.11"
35
  httpx==0.23.3 ; python_version >= "3.8" and python_version < "3.11"
36
  huggingface-hub==0.13.3 ; python_version >= "3.8" and python_version < "3.11"
 
37
  idna==3.4 ; python_version >= "3.8" and python_version < "3.11"
38
  imageio==2.27.0 ; python_version >= "3.8" and python_version < "3.11"
39
  importlib-metadata==6.1.0 ; python_version >= "3.8" and python_version < "3.10"
@@ -42,7 +43,6 @@ jinja2==3.1.2 ; python_version >= "3.8" and python_version < "3.11"
42
  jsonschema==4.17.3 ; python_version >= "3.8" and python_version < "3.11"
43
  kiwisolver==1.4.4 ; python_version >= "3.8" and python_version < "3.11"
44
  lazy-loader==0.2 ; python_version >= "3.8" and python_version < "3.11"
45
- libclang==15.0.6.1 ; python_version >= "3.8" and python_version < "3.11"
46
  linkify-it-py==2.0.0 ; python_version >= "3.8" and python_version < "3.11"
47
  lit==16.0.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
48
  lz4==4.3.2 ; python_version >= "3.8" and python_version < "3.11"
@@ -68,19 +68,21 @@ nvidia-cusolver-cu11==11.4.0.1 ; platform_system == "Linux" and platform_machine
68
  nvidia-cusparse-cu11==11.7.4.91 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
69
  nvidia-nccl-cu11==2.14.3 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
70
  nvidia-nvtx-cu11==11.7.91 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
 
71
  orjson==3.8.8 ; python_version >= "3.8" and python_version < "3.11"
72
  packaging==23.0 ; python_version < "3.11" and python_version >= "3.8"
73
- pandas==1.5.3 ; python_version >= "3.8" and python_version < "3.11"
74
  pettingzoo==1.22.4 ; python_version >= "3.8" and python_version < "3.11"
75
- pillow==9.4.0 ; python_version >= "3.8" and python_version < "3.11"
76
  pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9"
77
  platformdirs==3.2.0 ; python_version >= "3.8" and python_version < "3.11"
78
- protobuf==3.17.0 ; python_version >= "3.8" and python_version < "3.11"
79
  pydantic==1.10.7 ; python_version >= "3.8" and python_version < "3.11"
80
  pydub==0.25.1 ; python_version >= "3.8" and python_version < "3.11"
81
  pygame==2.3.0 ; python_version >= "3.8" and python_version < "3.11"
82
  pygments==2.14.0 ; python_version >= "3.8" and python_version < "3.11"
83
  pyparsing==3.0.9 ; python_version >= "3.8" and python_version < "3.11"
 
84
  pyrsistent==0.19.3 ; python_version >= "3.8" and python_version < "3.11"
85
  python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.11"
86
  python-multipart==0.0.6 ; python_version >= "3.8" and python_version < "3.11"
@@ -95,13 +97,12 @@ scikit-image==0.20.0 ; python_version >= "3.8" and python_version < "3.11"
95
  scipy==1.9.1 ; python_version < "3.11" and python_version >= "3.8"
96
  semantic-version==2.10.0 ; python_version >= "3.8" and python_version < "3.11"
97
  setuptools==67.6.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
98
- six==1.16.0 ; python_version < "3.11" and python_version >= "3.8"
99
  sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.11"
100
  starlette==0.26.1 ; python_version >= "3.8" and python_version < "3.11"
101
  sympy==1.11.1 ; python_version >= "3.8" and python_version < "3.11"
102
  tabulate==0.9.0 ; python_version >= "3.8" and python_version < "3.11"
103
- tensorboardx==2.6 ; python_version >= "3.8" and python_version < "3.11"
104
- tensorflow-probability==0.19.0 ; python_version >= "3.8" and python_version < "3.11"
105
  tifffile==2023.3.21 ; python_version >= "3.8" and python_version < "3.11"
106
  toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.11"
107
  torch==2.0.0 ; python_version >= "3.8" and python_version < "3.11"
@@ -109,11 +110,12 @@ tqdm==4.65.0 ; python_version >= "3.8" and python_version < "3.11"
109
  triton==2.0.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
110
  typer==0.7.0 ; python_version >= "3.8" and python_version < "3.11"
111
  typing-extensions==4.5.0 ; python_version >= "3.8" and python_version < "3.11"
 
112
  uc-micro-py==1.0.1 ; python_version >= "3.8" and python_version < "3.11"
113
  urllib3==1.26.15 ; python_version >= "3.8" and python_version < "3.11"
114
  uvicorn==0.21.1 ; python_version >= "3.8" and python_version < "3.11"
115
  virtualenv==20.21.0 ; python_version >= "3.8" and python_version < "3.11"
116
- websockets==10.4 ; python_version >= "3.8" and python_version < "3.11"
117
  wheel==0.40.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
118
  yarl==1.8.2 ; python_version >= "3.8" and python_version < "3.11"
119
  zipp==3.15.0 ; python_version >= "3.8" and python_version < "3.10"
 
 
1
  aiofiles==23.1.0 ; python_version >= "3.8" and python_version < "3.11"
2
  aiohttp==3.8.4 ; python_version >= "3.8" and python_version < "3.11"
3
  aiosignal==1.3.1 ; python_version >= "3.8" and python_version < "3.11"
 
11
  cloudpickle==2.2.1 ; python_version >= "3.8" and python_version < "3.11"
12
  cmake==3.26.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
13
  colorama==0.4.6 ; python_version >= "3.8" and python_version < "3.11" and platform_system == "Windows"
14
+ coloredlogs==15.0.1 ; python_version >= "3.8" and python_version < "3.11"
15
  contourpy==1.0.7 ; python_version >= "3.8" and python_version < "3.11"
16
  cycler==0.11.0 ; python_version >= "3.8" and python_version < "3.11"
 
17
  distlib==0.3.6 ; python_version >= "3.8" and python_version < "3.11"
18
  dm-tree==0.1.8 ; python_version >= "3.8" and python_version < "3.11"
19
  entrypoints==0.4 ; python_version >= "3.8" and python_version < "3.11"
20
  fastapi==0.95.0 ; python_version >= "3.8" and python_version < "3.11"
21
  ffmpy==0.3.0 ; python_version >= "3.8" and python_version < "3.11"
22
  filelock==3.10.7 ; python_version >= "3.8" and python_version < "3.11"
23
+ flatbuffers==23.3.3 ; python_version >= "3.8" and python_version < "3.11"
24
  fonttools==4.39.3 ; python_version >= "3.8" and python_version < "3.11"
25
  frozenlist==1.3.3 ; python_version >= "3.8" and python_version < "3.11"
26
  fsspec==2023.3.0 ; python_version >= "3.8" and python_version < "3.11"
27
+ gradio-client==0.0.5 ; python_version >= "3.8" and python_version < "3.11"
28
+ gradio==3.24.1 ; python_version >= "3.8" and python_version < "3.11"
29
  grpcio==1.49.1 ; python_version >= "3.8" and python_version < "3.11" and sys_platform == "darwin"
30
  grpcio==1.53.0 ; python_version >= "3.8" and python_version < "3.11" and sys_platform != "darwin"
31
  gymnasium-notices==0.0.1 ; python_version >= "3.8" and python_version < "3.11"
 
34
  httpcore==0.16.3 ; python_version >= "3.8" and python_version < "3.11"
35
  httpx==0.23.3 ; python_version >= "3.8" and python_version < "3.11"
36
  huggingface-hub==0.13.3 ; python_version >= "3.8" and python_version < "3.11"
37
+ humanfriendly==10.0 ; python_version >= "3.8" and python_version < "3.11"
38
  idna==3.4 ; python_version >= "3.8" and python_version < "3.11"
39
  imageio==2.27.0 ; python_version >= "3.8" and python_version < "3.11"
40
  importlib-metadata==6.1.0 ; python_version >= "3.8" and python_version < "3.10"
 
43
  jsonschema==4.17.3 ; python_version >= "3.8" and python_version < "3.11"
44
  kiwisolver==1.4.4 ; python_version >= "3.8" and python_version < "3.11"
45
  lazy-loader==0.2 ; python_version >= "3.8" and python_version < "3.11"
 
46
  linkify-it-py==2.0.0 ; python_version >= "3.8" and python_version < "3.11"
47
  lit==16.0.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
48
  lz4==4.3.2 ; python_version >= "3.8" and python_version < "3.11"
 
68
  nvidia-cusparse-cu11==11.7.4.91 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
69
  nvidia-nccl-cu11==2.14.3 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
70
  nvidia-nvtx-cu11==11.7.91 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
71
+ onnxruntime==1.14.1 ; python_version >= "3.8" and python_version < "3.11"
72
  orjson==3.8.8 ; python_version >= "3.8" and python_version < "3.11"
73
  packaging==23.0 ; python_version < "3.11" and python_version >= "3.8"
74
+ pandas==2.0.0 ; python_version >= "3.8" and python_version < "3.11"
75
  pettingzoo==1.22.4 ; python_version >= "3.8" and python_version < "3.11"
76
+ pillow==9.5.0 ; python_version >= "3.8" and python_version < "3.11"
77
  pkgutil-resolve-name==1.3.10 ; python_version >= "3.8" and python_version < "3.9"
78
  platformdirs==3.2.0 ; python_version >= "3.8" and python_version < "3.11"
79
+ protobuf==4.22.1 ; python_version >= "3.8" and python_version < "3.11"
80
  pydantic==1.10.7 ; python_version >= "3.8" and python_version < "3.11"
81
  pydub==0.25.1 ; python_version >= "3.8" and python_version < "3.11"
82
  pygame==2.3.0 ; python_version >= "3.8" and python_version < "3.11"
83
  pygments==2.14.0 ; python_version >= "3.8" and python_version < "3.11"
84
  pyparsing==3.0.9 ; python_version >= "3.8" and python_version < "3.11"
85
+ pyreadline3==3.4.1 ; sys_platform == "win32" and python_version >= "3.8" and python_version < "3.11"
86
  pyrsistent==0.19.3 ; python_version >= "3.8" and python_version < "3.11"
87
  python-dateutil==2.8.2 ; python_version >= "3.8" and python_version < "3.11"
88
  python-multipart==0.0.6 ; python_version >= "3.8" and python_version < "3.11"
 
97
  scipy==1.9.1 ; python_version < "3.11" and python_version >= "3.8"
98
  semantic-version==2.10.0 ; python_version >= "3.8" and python_version < "3.11"
99
  setuptools==67.6.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
100
+ six==1.16.0 ; python_version >= "3.8" and python_version < "3.11"
101
  sniffio==1.3.0 ; python_version >= "3.8" and python_version < "3.11"
102
  starlette==0.26.1 ; python_version >= "3.8" and python_version < "3.11"
103
  sympy==1.11.1 ; python_version >= "3.8" and python_version < "3.11"
104
  tabulate==0.9.0 ; python_version >= "3.8" and python_version < "3.11"
105
+ tensorboardx==2.5 ; python_version >= "3.8" and python_version < "3.11"
 
106
  tifffile==2023.3.21 ; python_version >= "3.8" and python_version < "3.11"
107
  toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.11"
108
  torch==2.0.0 ; python_version >= "3.8" and python_version < "3.11"
 
110
  triton==2.0.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
111
  typer==0.7.0 ; python_version >= "3.8" and python_version < "3.11"
112
  typing-extensions==4.5.0 ; python_version >= "3.8" and python_version < "3.11"
113
+ tzdata==2023.3 ; python_version >= "3.8" and python_version < "3.11"
114
  uc-micro-py==1.0.1 ; python_version >= "3.8" and python_version < "3.11"
115
  urllib3==1.26.15 ; python_version >= "3.8" and python_version < "3.11"
116
  uvicorn==0.21.1 ; python_version >= "3.8" and python_version < "3.11"
117
  virtualenv==20.21.0 ; python_version >= "3.8" and python_version < "3.11"
118
+ websockets==11.0 ; python_version >= "3.8" and python_version < "3.11"
119
  wheel==0.40.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.8" and python_version < "3.11"
120
  yarl==1.8.2 ; python_version >= "3.8" and python_version < "3.11"
121
  zipp==3.15.0 ; python_version >= "3.8" and python_version < "3.10"