






# Copyright 2023 The HuggingFace Inc. team. All rights reserved.
#
# 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 License.
import re

from ..utils import cached_file


# docstyle-ignore
a		:       str			     = "\nHuman: <<task>>\n\nAssistant: "


a		:       Tuple			     = "huggingface-tools/default-prompts"
a		:       Dict			     = {"chat": "chat_prompt_template.txt", "run": "run_prompt_template.txt"}






def 				lowerCamelCase__      (    __lowerCamelCase			:     List[Any]  ,		__lowerCamelCase			:     int  ,		__lowerCamelCase			:     Optional[Any]="run"		):
  if prompt_or_repo_id is None:
    __UpperCAmelCase							:	Union[str, Any]           =  DEFAULT_PROMPTS_REPO

  # prompt is considered a repo ID when it does not contain any kind of space
  if re.search("""\\s"""  ,		__lowerCamelCase		) is not None:
    return prompt_or_repo_id

  __UpperCAmelCase							:	List[Any]           =  cached_file(
      __lowerCamelCase  ,		PROMPT_FILES[mode]  ,		repo_type="""dataset"""  ,		user_agent={"""agent""": agent_name}		)
  with open(__lowerCamelCase  ,		"""r"""  ,		encoding="""utf-8"""		) as f:
    return f.read()










from math import log

from scipy.constants import Boltzmann, physical_constants

a		:       Any			     = 300  # TEMPERATURE (unit = K)






def 				lowerCamelCase__      (    __lowerCamelCase			:     float  ,		__lowerCamelCase			:     float  ,		__lowerCamelCase			:     float  ,		):

  if donor_conc <= 0:
    raise ValueError("""Donor concentration should be positive"""		)
  elif acceptor_conc <= 0:
    raise ValueError("""Acceptor concentration should be positive"""		)
  elif intrinsic_conc <= 0:
    raise ValueError("""Intrinsic concentration should be positive"""		)
  elif donor_conc <= intrinsic_conc:
    raise ValueError(
        """Donor concentration should be greater than intrinsic concentration"""		)
  elif acceptor_conc <= intrinsic_conc:
    raise ValueError(
        """Acceptor concentration should be greater than intrinsic concentration"""		)
  else:
    return (
        Boltzmann
        * T
        * log((donor_conc * acceptor_conc) / intrinsic_conc**2		)
        / physical_constants["electron volt"][0]
    )


if __name__ == "__main__":
       import doctest

       doctest.testmod()


