code: def from_env(cls) -> "DescriptiveStatisticsConfig":
      env = Env(expand_vars=True)
      parquet_revision = env.str(
          name="PARQUET_AND_INFO_TARGET_REVISION",
          default=PARQUET_AND_INFO_TARGET_REVISION,
      )
      with env.prefixed("DESCRIPTIVE_STATISTICS_"):
          return cls(
              cache_directory=env.str(
                  name="CACHE_DIRECTORY",
                  default=DESCRIPTIVE_STATISTICS_CACHE_DIRECTORY,
              ),
              parquet_revision=parquet_revision,
              histogram_num_bins=env.int(
                  name="HISTOGRAM_NUM_BINS",
                  default=DESCRIPTIVE_STATISTICS_HISTOGRAM_NUM_BINS,
              ),
              max_parquet_size_bytes=env.int(
                  name="MAX_PARQUET_SIZE_BYTES",
                  default=DESCRIPTIVE_STATISTICS_MAX_PARQUET_SIZE_BYTES,
              ),
          )
  
imports: from dataclasses import dataclass, field
  from typing import Optional
  from environs import Env
  from libcommon.config import AssetsConfig, CacheConfig, CommonConfig, LogConfig, ParquetMetadataConfig, QueueConfig, RowsIndexConfig, S3Config
label_desc: Use image node_id 1 for calling the DescriptiveStatisticsConfig obj's underlying member method code with example usage: obj.from_env(cls) and returns: cls