

'''simple docstring'''

from __future__ import annotations




def 				UpperCamelCase(					UpperCAmelCase_  ,	UpperCAmelCase_  ,	UpperCAmelCase_  ,	):
 if (stress, tangential_force, area).count(0     ) != 1:
  raise ValueError('You cannot supply more or less than 2 values'     )
 elif stress < 0:
  raise ValueError('Stress cannot be negative'     )
 elif tangential_force < 0:
  raise ValueError('Tangential Force cannot be negative'     )
 elif area < 0:
  raise ValueError('Area cannot be negative'     )
 elif stress == 0:
  return (
      "stress",
      tangential_force / area,
  )
 elif tangential_force == 0:
  return (
      "tangential_force",
      stress * area,
  )
 else:
  return (
      "area",
      tangential_force / stress,
  )


if __name__ == "__main__":
 import doctest

 doctest.testmod()







'''simple docstring'''

# Lint as: python3
import itertools
import os
import re


lowercase__         =      re.compile(r"([A-Z]+)([A-Z][a-z])")
lowercase__         =      re.compile(r"([a-z\d])([A-Z])")

lowercase__         =      re.compile(r"(?<!_)_(?!_)")
lowercase__         =      re.compile(r"(_{2,})")

lowercase__         =      r"^\w+(\.\w+)*$"

lowercase__         =      r"<>:/\|?*"




def 				UpperCamelCase(					UpperCAmelCase_     ):
 UpperCAmelCase	:     List[str]						 =			_uppercase_uppercase_re.sub(R'\1_\2'  ,	UpperCAmelCase_     )
 UpperCAmelCase	:     str						 =			_lowercase_uppercase_re.sub(R'\1_\2'  ,	UpperCAmelCase_     )
 return name.lower()




def 				UpperCamelCase(					UpperCAmelCase_     ):
 UpperCAmelCase	:     List[str]						 =			_single_underscore_re.split(UpperCAmelCase_     )
 UpperCAmelCase	:     Optional[Any]						 =			[_multiple_underscores_re.split(UpperCAmelCase_     ) for n in name]
 return "".join(n.capitalize() for n in itertools.chain.from_iterable(UpperCAmelCase_     ) if n != ''     )




def 				UpperCamelCase(					UpperCAmelCase_     ):
 if os.path.basename(UpperCAmelCase_     ) != name:
  raise ValueError(F"""Should be a dataset name, not a path: {name}"""     )
 return camelcase_to_snakecase(UpperCAmelCase_     )




def 				UpperCamelCase(					UpperCAmelCase_  ,	UpperCAmelCase_     ):
 if os.path.basename(UpperCAmelCase_     ) != name:
  raise ValueError(F"""Should be a dataset name, not a path: {name}"""     )
 if not re.match(_split_re  ,	UpperCAmelCase_     ):
  raise ValueError(F"""Split name should match '{_split_re}'' but got '{split}'."""     )
 return F"""{filename_prefix_for_name(UpperCAmelCase_     )}-{split}"""




def 				UpperCamelCase(					UpperCAmelCase_  ,	UpperCAmelCase_  ,	UpperCAmelCase_  ,	UpperCAmelCase_=None     ):
 UpperCAmelCase	:     Dict						 =			filename_prefix_for_split(UpperCAmelCase_  ,	UpperCAmelCase_     )
 if filetype_suffix:
  prefix += F""".{filetype_suffix}"""
 UpperCAmelCase	:     Optional[int]						 =			os.path.join(UpperCAmelCase_  ,	UpperCAmelCase_     )
 return F"""{filepath}*"""




def 				UpperCamelCase(					UpperCAmelCase_  ,	UpperCAmelCase_  ,	UpperCAmelCase_  ,	UpperCAmelCase_=None  ,	UpperCAmelCase_=None     ):
 UpperCAmelCase	:     Optional[int]						 =			filename_prefix_for_split(UpperCAmelCase_  ,	UpperCAmelCase_     )
 UpperCAmelCase	:     str						 =			os.path.join(UpperCAmelCase_  ,	UpperCAmelCase_     )

 if shard_lengths:
  UpperCAmelCase	:     List[str]						 =			len(UpperCAmelCase_     )
  UpperCAmelCase	:     List[str]						 =			[F"""{prefix}-{shard_id:05d}-of-{num_shards:05d}""" for shard_id in range(UpperCAmelCase_     )]
  if filetype_suffix:
   UpperCAmelCase	:     Dict						 =			[filename + F""".{filetype_suffix}""" for filename in filenames]
  return filenames
 else:
  UpperCAmelCase	:     Optional[Any]						 =			prefix
  if filetype_suffix:
   filename += F""".{filetype_suffix}"""
  return [filename]




