# Copyright 2024 The TensorTrade-NG Authors.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the Licensefrom__future__importannotationsimporttypingfromtensortrade.env.rewards.simple_profitimportSimpleProfitfromtensortrade.env.rewards.risk_adjusted_returnsimportRiskAdjustedReturnsfromtensortrade.env.rewards.pbrimportPBRiftyping.TYPE_CHECKING:fromtensortrade.envimportAbstractRewardScheme_registry={'simple':SimpleProfit,'risk-adjusted':RiskAdjustedReturns,'pbr':PBR,}
[docs]defget(identifier:str)->AbstractRewardScheme:"""Gets the `RewardScheme` that matches with the identifier. Parameters ---------- identifier : str The identifier for the `RewardScheme` Returns ------- `TensorTradeRewardScheme` The reward scheme associated with the `identifier`. Raises ------ KeyError: Raised if identifier is not associated with any `RewardScheme` """ifidentifiernotin_registry.keys():msg=f"Identifier {identifier} is not associated with any `RewardScheme`."raiseKeyError(msg)return_registry[identifier]()