






"""simple docstring"""
import os
from collections.abc import Iterator

def 							snake_case (  A__ = "."		):
			for dir_path, dir_names, filenames in os.walk(A__		):
						UpperCAmelCase_	:					int     	=   [d for d in dir_names if d != "scripts" and d[0] not in "._"]
						for filename in filenames:
									if filename == "__init__.py":
												continue
									if os.path.splitext(A__		)[1] in (".py", ".ipynb"):
												yield os.path.join(A__      ,A__		).lstrip("./"		)

def 							snake_case (  A__		):
			return F"""{i * '  '}*""" if i else "\n##"

def 							snake_case (  A__      ,A__		):
			UpperCAmelCase_	:					Optional[int]     	=   old_path.split(os.sep		)
			for i, new_part in enumerate(new_path.split(os.sep		)		):
						if (i + 1 > len(A__		) or old_parts[i] != new_part) and new_part:
									print(F"""{md_prefix(A__		)} {new_part.replace('_'      ,' '		).title()}"""		)
			return new_path

def 							snake_case (  A__ = "."		):
			UpperCAmelCase_	:					Optional[int]     	=   ""
			for filepath in sorted(good_file_paths(A__		)		):
						UpperCAmelCase_	,      UpperCAmelCase_	:					int     	=   os.path.split(A__		)
						if filepath != old_path:
									UpperCAmelCase_	:					Tuple     	=   print_path(A__      ,A__		)
						UpperCAmelCase_	:					Dict     	=   (filepath.count(os.sep		) + 1) if filepath else 0
						UpperCAmelCase_	:					Dict     	=   F"""{filepath}/{filename}""".replace(" "      ,"%20"		)
						UpperCAmelCase_	:					List[Any]     	=   os.path.splitext(filename.replace("_"      ," "		).title()		)[0]
						print(F"""{md_prefix(A__		)} [{filename}]({url})"""		)


if __name__ == "__main__":
			print_directory_md('''.''')











"""simple docstring"""
from typing import List, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCamelCase_							      = logging.get_logger(__name__)

lowerCamelCase_							      = {
    '''huggingface/informer-tourism-monthly''': (
        '''https://huggingface.co/huggingface/informer-tourism-monthly/resolve/main/config.json'''
    ),
    # See all Informer models at https://huggingface.co/models?filter=informer
}







class      UpperCamelCase_			(__A	):
	__magic_name__       =							'''informer'''
	__magic_name__       =							{
	    '''hidden_size''': '''d_model''',
	    '''num_attention_heads''': '''encoder_attention_heads''',
	    '''num_hidden_layers''': '''encoder_layers''',
	}





	def __init__( self   :					Optional[Any]      ,      lowerCAmelCase_   :					Optional[int] = None      ,      lowerCAmelCase_   :					Optional[int] = None      ,      lowerCAmelCase_   :					str = "student_t"      ,      lowerCAmelCase_   :					str = "nll"      ,      lowerCAmelCase_   :					int = 1      ,      lowerCAmelCase_   :					List[int] = None      ,      lowerCAmelCase_   :					Optional[Union[str, bool]] = "mean"      ,      lowerCAmelCase_   :					int = 0      ,      lowerCAmelCase_   :					int = 0      ,      lowerCAmelCase_   :					int = 0      ,      lowerCAmelCase_   :					int = 0      ,      lowerCAmelCase_   :					Optional[List[int]] = None      ,      lowerCAmelCase_   :					Optional[List[int]] = None      ,      lowerCAmelCase_   :					int = 64      ,      lowerCAmelCase_   :					int = 32      ,      lowerCAmelCase_   :					int = 32      ,      lowerCAmelCase_   :					int = 2      ,      lowerCAmelCase_   :					int = 2      ,      lowerCAmelCase_   :					int = 2      ,      lowerCAmelCase_   :					int = 2      ,      lowerCAmelCase_   :					bool = True      ,      lowerCAmelCase_   :					str = "gelu"      ,      lowerCAmelCase_   :					float = 0.0_5      ,      lowerCAmelCase_   :					float = 0.1      ,      lowerCAmelCase_   :					float = 0.1      ,      lowerCAmelCase_   :					float = 0.1      ,      lowerCAmelCase_   :					float = 0.1      ,      lowerCAmelCase_   :					int = 100      ,      lowerCAmelCase_   :					float = 0.0_2      ,      lowerCAmelCase_   :					List[Any]=True      ,      lowerCAmelCase_   :					str = "prob"      ,      lowerCAmelCase_   :					int = 5      ,      lowerCAmelCase_   :					bool = True      ,      **lowerCAmelCase_   :					Tuple      ,      )		->     Tuple:
				# time series specific configuration
				UpperCAmelCase_	:					str     	=   prediction_length
				UpperCAmelCase_	:					Tuple     	=   context_length or prediction_length
				UpperCAmelCase_	:					Any     	=   distribution_output
				UpperCAmelCase_	:					Union[str, Any]     	=   loss
				UpperCAmelCase_	:					Any     	=   input_size
				UpperCAmelCase_	:					int     	=   num_time_features
				UpperCAmelCase_	:					Union[str, Any]     	=   lags_sequence if lags_sequence is not None else [1, 2, 3, 4, 5, 6, 7]
				UpperCAmelCase_	:					List[Any]     	=   scaling
				UpperCAmelCase_	:					List[str]     	=   num_dynamic_real_features
				UpperCAmelCase_	:					int     	=   num_static_real_features
				UpperCAmelCase_	:					Any     	=   num_static_categorical_features

				# set cardinality
				if cardinality and num_static_categorical_features > 0:
							if len(lowerCAmelCase_		) != num_static_categorical_features:
										raise ValueError(
										    "The cardinality should be a list of the same length as `num_static_categorical_features`"		)
							UpperCAmelCase_	:					Optional[Any]     	=   cardinality
				else:
							UpperCAmelCase_	:					Optional[int]     	=   [0]

				# set embedding_dimension
				if embedding_dimension and num_static_categorical_features > 0:
							if len(lowerCAmelCase_		) != num_static_categorical_features:
										raise ValueError(
										    "The embedding dimension should be a list of the same length as `num_static_categorical_features`"		)
							UpperCAmelCase_	:					Any     	=   embedding_dimension
				else:
							UpperCAmelCase_	:					Optional[Any]     	=   [min(50      ,      (cat + 1) // 2		) for cat in self.cardinality]

				UpperCAmelCase_	:					Dict     	=   num_parallel_samples

				# Transformer architecture configuration
				UpperCAmelCase_	:					Optional[Any]     	=   input_size * len(self.lags_sequence		) + self._number_of_features
				UpperCAmelCase_	:					List[Any]     	=   d_model
				UpperCAmelCase_	:					List[str]     	=   encoder_attention_heads
				UpperCAmelCase_	:					List[str]     	=   decoder_attention_heads
				UpperCAmelCase_	:					Union[str, Any]     	=   encoder_ffn_dim
				UpperCAmelCase_	:					Union[str, Any]     	=   decoder_ffn_dim
				UpperCAmelCase_	:					Tuple     	=   encoder_layers
				UpperCAmelCase_	:					List[Any]     	=   decoder_layers

				UpperCAmelCase_	:					List[str]     	=   dropout
				UpperCAmelCase_	:					Optional[Any]     	=   attention_dropout
				UpperCAmelCase_	:					Any     	=   activation_dropout
				UpperCAmelCase_	:					Union[str, Any]     	=   encoder_layerdrop
				UpperCAmelCase_	:					Optional[int]     	=   decoder_layerdrop

				UpperCAmelCase_	:					Union[str, Any]     	=   activation_function
				UpperCAmelCase_	:					int     	=   init_std

				UpperCAmelCase_	:					Optional[Any]     	=   use_cache

				# Informer
				UpperCAmelCase_	:					int     	=   attention_type
				UpperCAmelCase_	:					List[str]     	=   sampling_factor
				UpperCAmelCase_	:					Union[str, Any]     	=   distil

				super().__init__(is_encoder_decoder=lowerCAmelCase_      ,      **lowerCAmelCase_		)





	@property
	def 	_SCREAMING_SNAKE_CASE ( self   :					List[Any]		)		->     int:
				return (
				    sum(self.embedding_dimension		)
				    + self.num_dynamic_real_features
				    + self.num_time_features
				    + self.num_static_real_features
				    + self.input_size * 2  # the log1p(abs(loc)) and log(scale) features
				)



