code: def rvs(self, size=None, random_state=None):
      if size is None:
          size = ()
      samples_shape = tuple(np.atleast_1d(size)) + self.alphas.shape
      samples = np.empty(samples_shape)
      alphas_bcast = np.broadcast_to(self.alphas, samples_shape)
  
      for index in np.ndindex(*samples_shape[:-1]):
          samples[index] = random_state.dirichlet(alphas_bcast[index])
  
      return samples
  
imports: import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  import scipy
  import scipy.special
  from pytensor.graph.basic import equal_computations
  from pymc.distributions.continuous import Cauchy, ChiSquared
  from pymc.logprob.basic import conditional_logp, icdf, logcdf, logp
  from pymc.logprob.transforms import ArccoshTransform, ArcsinhTransform, ArctanhTransform, ChainedTransform, CoshTransform, ErfcTransform, ErfcxTransform, ErfTransform, ExpTransform, LocTransform, LogTransform, ScaleTransform, SinhTransform, TanhTransform, Transform
  from pymc.logprob.utils import ParameterValueError
  from pymc.testing import Rplusbig, Vector, assert_no_rvs
  from tests.distributions.test_transform import check_jacobian_det
label_desc: Use image node_id 2 for calling the DirichletScipyDist obj's underlying member method code with example usage: obj.rvs(size, random_state) and returns: samples